Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Com Port auslesen (https://www.delphipraxis.net/105731-com-port-auslesen.html)

Masteric 28. Dez 2007 16:33


Com Port auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich habe zwar schon im Forum gesucht, aber nicht das richtige gefunden....

Ich habe eine über USB angeschlossene 10 Bit 8 Kanal - Karte, mit der man die Spannung von den 8 Pins einlesen kann.
Da mir das Demo-Programm ein bisschen mager ist, wollte ich mir selber eins in Delphi schreiben. :-D

ABER WIE??? :gruebel: Hatte mich schon mal mit dem Seriellen Port auseinandergesetzt, aber wie lese ich die Bit's ein oder sende welche.....


Hoffe einer von euch hat davon Ahnung.


Gruß Masteric


PS: Hab im Anhang mal die Anleitung angehängt.

dominikkv 28. Dez 2007 16:37

Re: Com Port auslesen
 
Zitat:

Zitat von Masteric
PS: Hab im Anhang mal die Anleitung angehängt.



such hier mal nach der Komponente CPort, damit geht das eigendlich ganz leicht.
Wird diese USB-Karte als COM angezeigt (Treiber?)

Masteric 28. Dez 2007 16:40

Re: Com Port auslesen
 
sry, die datei wurde irgendwie nicht hochgeladen, ich habe jetzt eine kleinere Version mit allem wichtigen, was die Anleitung hergibt hochgeladen, und die USB Karte ist ein virtueller Com Port.

Gruß Masteric

dominikkv 28. Dez 2007 16:48

Re: Com Port auslesen
 
Dann würde ich mal im Gerätemanager schauen welcher COM Port das ist.
Dann kannst du das in CPort einstellen, Baudrate usw und dann dannst du ihm eben 's5' usw schicken.

edit: CPort

Masteric 28. Dez 2007 17:06

Re: Com Port auslesen
 
kannst du mir sagen, wie ich die installen soll. Ich bekomm das nicht so ganz hin....

Gruß Masteric

dominikkv 28. Dez 2007 17:34

Re: Com Port auslesen
 
1) Bibliothek runterladen
2) In sources.zip sind die benötigten Units. Diese entweder in den Ordner von deinem Projekt entpacken oder in einen beliebigen Ordner, dann aber als Such-Pfad von Delphi diesen Ordner angeben.
3) In die Uses kommt CPort, CPortCtl
4) Variable deklarieren, am besten als Feld einer Klasse:
Delphi-Quellcode:
private
  ComPort: TComPort;
5) Ereignis festlegen
Delphi-Quellcode:
private
  ComPort: TComPort;
  procedure ComPortRxChar(Sender: TObject; Count: Integer);

{...}

procedure TKlasse.ComPortRxChar(Sender: TObject; Count: Integer);
var
  MyStr: String;
begin
  ComPort.ReadStr(MyStr, Count);
  showmessage(MyStr);
end;
6) Instanz erzeugen, zB im Constructor der Klasse / onFormCreate
Delphi-Quellcode:
  ComPort := TComPort.Create(self);
  ComPort.OnRxChar := ComPortRxChar;
  ComPort.Port := 'COM1'; // Im Gerätemanager nachgugn!
  ComPort.BaudRate := br115200;
  ComPort.StopBits := sbOneStopBit;

  ComPort.Open;
7) Befehl senden
Delphi-Quellcode:
ComPort.WriteStr('s5');
8) Freuen
9) Freigeben nicht vergessen

Es kann sein das das Ereignis ComPortRxChar mehrmals aufgerufen wird und nur jeweils die hälfte der Informationen enthält...
Außerdem sind in dem runtergeladenen ZIP auch Beispiele dabei.

Masteric 28. Dez 2007 17:36

Re: Com Port auslesen
 
schonmal großen DANK! :thumb:

Gruß Masteric

Kendro 10. Jun 2011 11:30

AW: Com Port auslesen
 
Hallo,

ich bin gerade dabei eine Software zur Ansteuerung eines Messgerätes mit der TcomPort Komponente zu realisieren. Über google bin ich hier auf dem Post gelandet.

Kann mir einer sagen warum das Ereignis ComPortRxChar mehrmals aufgerufen wird? Meine Empfangene Daten, die mir das Messgerät sendet, sind ca 450 zeichen lang. Liegt dass an der Komponente oder an meinem Messgerät? oder hab ich was vergessen einzustellen?

Danke euch für eure Hilfe

mkinzler 10. Jun 2011 11:32

AW: Com Port auslesen
 
Der Event scheint, dem Namen nach, auch pro Zeichen getriggert zu werden.

Kendro 10. Jun 2011 11:42

AW: Com Port auslesen
 
Hallo,

danke für deine rasche Antwort!

das ist schon richtig aber es sollte eigentlich nur einmal ausgelöst werden, weil das Gerät den String von ca 450 zeichen auf einmal überträgt. ich habe das Problem, das dass Event 2 mal ausgelöst wird. Beim ersten mal kommen so ca 8 Zeichen(+-2) dann die restlichen zeichen. Kann es irgendwie am Speicher liegen.

Benutze Delphi 2006

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 1 von 2  1 2      

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