AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Verbindung mit COM-Schnittstelle aufbauen über TComPort
Thema durchsuchen
Ansicht
Themen-Optionen

Verbindung mit COM-Schnittstelle aufbauen über TComPort

Ein Thema von Dark Angel · begonnen am 15. Jul 2008 · letzter Beitrag vom 17. Jul 2008
Antwort Antwort
Seite 1 von 3  1 23      
Dark Angel
(Gast)

n/a Beiträge
 
#1

Verbindung mit COM-Schnittstelle aufbauen über TComPort

  Alt 15. Jul 2008, 16:22
Hallo,

ich werd einfach nicht schlauer aus den Forenbeiträgen. Kann mir jmd helfen? Ich bin eher Anfäger in Delphi 2007.

Ich habe bereits ein Programm und will jetzt noch eine Verbindung über COM dazu bauen. Ich bin schon soweit, dass ich die TComPort Componente installiert hab und jetzt 6 neue visualle ...ähm Dinge in meiner Tool-Palette habe.

ich will dass ich auswählen kann zwischen den COM Verbindungen mit der COMCombobox nur leider zeigt die mir nur 5mal "COM" an und nicht "COM1, COM2,...) wie kann ich das ändern. DAs ist mein verwendeter code dafür:

Das ganze ist in der On Create Form drin, hat da jmd ne bessere Idee. Das Problem ist ja wenn sich unter dem Programm noch einen neue Schnittstelle auftut dann muss ich das ganze Programm erst neu starten bis die Combobox aktualisiert wird.

Delphi-Quellcode:
  EnumComPorts(COMComboBox1.Items);
  // do some stuff
  if COMComboBox1.ItemIndex > -1 then
    ComPort1.Port := COMComboBox1.Items[COMComboBox1.ItemIndex];
Dann weiß ich nicht mehr weiter. Weil wenn ich einen BUtton mir "..connected:=true" setzte stürzt das Programm ab.

Ich will, was mir sehr gut gefallen hat in dem Forum, ein OnRX damit er die Eingänge überwacht und dann das SIgnal abfängt.
Ich will senden und empfangen. Empfnagen werde ich eine Stringkette mit 22strings und zwar alle 0,5sec und senden will ich einen einfachen Befehl zB. ein byte mit 0b11001010 so in etwa.

Wie mach ich das am besten?

Vielen Dank schon mal
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort

  Alt 15. Jul 2008, 17:57
Was Du da machst, sieht nach einer nicht existierenden Verbindung aus.
Du platzierst ein TComport (ComPort1) auf dem Form, ebenso die TComComboBox. In den Properties der ComComboBox1 stellst Du als ComPort "ComPort1" ein. Dann die Property "ComProperty" au cpPort setzen. Zur Laufzeit wird dann ComPort1 genau der Port zugewiesen, den Du aus der Liste ausgewählt hast. Das musst Du also nicht extra machen wie von Dir beschrieben.
Ich weiß noch nicht, was passiert wenn der Port beim Auswählen offen ist, weil ich das nicht verwende. Wenn Du vorher ein ComPort1.Close ausführst, ist das sicher. Nach der Auswahl kannst Du dann ComPort1.Open probieren. Am Besten Du machst das bis dahin und testest an zwei Ports oder Rechnern mit Hyperterminal.

Grüße, Messie
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#3

Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort

  Alt 15. Jul 2008, 23:12
Ich komm einfach nicht weiter. Ich füge die Elemente (COMCombobox,...) und kann dann aber nur zeischen (COM, COM und COM3) wählen obwohl ich COM3, COM4 und COM 6 habe, laut HTerm. COM4 und COM6 sind Bluetooth module, aber das kann ja keinen Unterschied machen oder??
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 00:22
Zitat von Dark Angel:
Ich komm einfach nicht weiter. Ich füge die Elemente (COMCombobox,...) und kann dann aber nur zwischen (COM, COM und COM3) wählen obwohl ich COM3, COM4 und COM 6 habe, laut HTerm. COM4 und COM6 sind Bluetooth module, aber das kann ja keinen Unterschied machen oder??
Im Prinzip nicht, wenn die Ports vernünftig vom Treiber angemeldet sind.
Ich häng' mal mein Beispiel an: Du solltest die Ports alle sehen, wenn sie vernünftig beim System angemeldet sind. Siehst Du sie da auch nicht, riecht es eher nach einem Treiberproblem...

Grüße, Messie

Edit: Du solltest den Tippfehler in Deinem Titel verbessern, damit man den Thread später auch mit der Suche finden kann.
Angehängte Dateien
Dateityp: zip project3_801.zip (241,4 KB, 40x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Verbindung mit COM-Schlittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 09:01
Zeig doch bitte mal den Teil, wo du die Verbindung aufbaust.

Zitat von Dark Angel:
Weil wenn ich einen BUtton mir "..connected:=true" setzte stürzt das Programm ab.
Die Eigenschaft Connected kannst du nicht setzen, die kannst du abfragen, ob der Port geöffnet ist.

So kannst du den Com-Port öffnen:

Delphi-Quellcode:
 
ComPort.Port := 'COM1'; // hier der Port als String
ComPort.BaudRate := br19200;
ComPort.DataBits := dbSeven;
ComPort.StopBits := sbOneStopBit;
ComPort.Parity.Bits := prEven;
ComPort.Buffer.InputSize := 1024; // musst du anpassen
ComPort.Buffer.OutputSize := 1024; // musst du anpassen

try
  ComPort.Open;
except
  ShowMessage('Fehler: COM-Port konnte nicht geöffnet werden...'); // Fehlermeldung
end;
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#6

Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 09:19
@messie

bei deinem Programm hab ich den se´lben fehler, dass die beiden BluetoothCOMports nicht richtig angezeigt werden. allerdings hab ich bei Hterm da keine Probleme es richtig anzuzeigen und im Gerätemanager ist auch alles okay und die funktionieren ja auch alle einwandfrei.

Und, ja mein Zeitplan ist echt knapp, aber daran kann ich leider nichts ändern.

VIELEN DANK an alle


Erste Erfolge stellen sich ein. Die Verbindung steht aber die Anzeige der Comports spinnt trotzdem. Komisch.

GIbts bei Async Pro auch so ne Combobox zu anziegen der Ports, dann könnt ichs mit dem mal versuchen, aber ich find keine passende visualle Konponente dafür.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 09:46
Klick' mal doppelt zur Entwurfszeit auf Deinen TComport. Da wird ja das Setup-Fenster für den Port geöffnet und die zur Verfügung stehenden Ports angezeigt. Siehst Du dort auch nur verstümmelte Einträge?

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 09:57
Versuch doch mal eine normale ComboBox zu nehmen. EnumComPorts gibt ja TStrings zurück, das kannst du einer normalen ComboBox zuweisen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ComPorts: TStrings;
begin
  ComPorts := TStringlist.Create;
  try
    EnumComPorts(ComPorts);
  except
    ShowMessage('Fehler: Keine Com-Ports gefunden...');
  end;
  
  ComboBox1.Items := ComPorts;
  ComPorts.Free;
end;
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Dark Angel
(Gast)

n/a Beiträge
 
#9

Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 12:03
Vielen Dank Leute es ist überall das selbe die BT COM's werden nicht richtig angezeigt.

Aber ich hab jetzt einfach eine normale COmbobox genommen und die richtigen COMnamen eingetragen und diese dann zum verbidungsaufbau genützt und sieh da es funzt.

Nun kommen wir zu den weiteren Problemen, die sich ergeben haben bei dem Programmcode..

Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject); // ComPort2 ist schon richtig
begin
  ComPort2.Port := Combobox2.text; // das ist COM4
  ComPort2.BaudRate := br19200;
  ComPort2.DataBits := dbSeven;
  ComPort2.StopBits := sbOneStopBit;
  ComPort2.Parity.Bits := prEven;
  ComPort2.Buffer.InputSize := 1024;
  ComPort2.Buffer.OutputSize := 1024;
try
  ComPort2.Open;

except
  ShowMessage('Fehler: Bluetooth-COM-Port konnte nicht geöffnet werden...'); // Fehlermeldung
end;
..wird mir beim ausführen als erstes diese Nachricht "Erste Gelegenheit für Exception bei $776742EB. Exception-Klasse EComPort mit Meldung 'Unable to open com port (win error code: 121)'. Prozess Geschwindigkeitsmessung.exe (8848)" mit einer Programmunterbrechung angezeigt und wenn ich dann auf "fortsetzen" klicke kommt est die Fehlermeldung " ShowMessage('Fehler: Bluetooth-COM-Port konnte nicht geöffnet werden...'); // Fehlermeldung" die ich in except eingetragen habe zum vorschein.

was mache ich falsch??
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Verbindung mit COM-Schnittstelle aufbauen über TComPort

  Alt 16. Jul 2008, 12:13
Hast Du jetzt ein Problem mit dem ComPort.Open oder mit der Meldung?

Die Exception-Meldungen sind aus dem Online-Debugger. Da wird das Programm beim Fehler angehalten, erst wenn Du fortsetzt, wird Deine Fehlermeldung angezeigt. Wenn Du das mit der exe probierst, verhält sich das anders.

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz