Hallo, ich möchte mit delphi einen string über die RS232-Schnittstelle senden. Weiß jemand wie das geht? Es wäre sehr nett, wenn mir jemand einen Codeschnipsel oder eine Internetseite, auf der so etwas beschriebn ist, zuschicken könnte. Marcel
:
Gesperrt durch Moderator
Hi Marcel, entweder über fertige Komponenten, wie z.B. die Asyc-Tools oder über die API von Windows (hier Com1): DeviceHandle := CreateFile('\\.\COM1', // name GENERIC_READ or GENERIC_WRITE, // access attributes 0, // no sharing nil, // no security OPEN_EXISTING, // creation action FILE_ATTRIBUTE_NORMAL, // attributes 0); // no template if DeviceHandle = INVALID_HANDLE_VALUE then exit; //Handle gültig?? //Dann daten schreiben WriteFile(FHandle,TByteArray(Data)[DataIndex],WriteCount,BytesWritten,ni l);
Wenn's eine Komponente mit Quelltext sein darf: http://torry.net/pages.php?id=198 z.B. SerialNG, TCiaComPort, TComPort etc.
Also ich kann die Komponente Serial NG empfehlen ^^ hab ich schon verwendet und geht eigentlich Problemlos.
Hallo, Ich habe auch schon die o.g. TComPort library für einen RS232 RFID-Leser verwendet. Dabei musste ich allerdings nichts senden. Allerdings hat immer alles super funktioniert und senden kann man natürlich auch. Grüße, Felix
Hi Mir ist vor kurzem die Zeitschrift 'Toolbox' 1/2008 in die Hände gekommen. Bei der Zeitschrift war eine DVD mit dem Inhalt der letzten 11 Jahrgänge incl. Software ,Quelltexte, Tips und Tricks. Sehr viel Delphi dabei. Unter anderen eine sehr ausgefeilte Komponente 'TSerial' (ca.15000 Zeilen Quelltext). Ansonsten z.B. nach 'CPORT', 'TComport32' suchen. MfG Spess
Ich würde auch über die API gehen, denn viele Module erlauben keine kommerzielle Nutzung oder sind dermaßen abgedreht, dass es schon wieder weh tut, zumal es sich dann auch um nix "eigenes" geht. In Visual Basic 2008 Expression (kostenlos) ist übrigens ne Serialkomponente bereits integriert (wie wir ja alle wissen, ist in Turbodelphi und VS Expression kein Hinzufügen von Komponenten möglich, nur so als Tipp).
Hi >wissen, ist in Turbodelphi und VS Expression kein Hinzufügen von Komponenten >möglich,... Was aber kein Hinderungsgrund ist, andere Komponenten zu benutzen. Gerade nichtvisuelle Komponenten können problemlos genutzt werden. Man muss sie halt nur in der 'Create' des Hauptprogramms initialisieren. MfG Spess
Hallo Leute, Für die ganze Port Problematik hat Js. Payne ein erstklassiges Aktive X geschrieben. ( www.jspayne.com ) das sollte alle Probleme beseitigen. Am schönsten ist das es gleich mit allen Windows Versionen funktioniert.
Hi >Am schönsten ist das es gleich mit allen Windows Versionen funktioniert. Warum auch nicht? Grundlegende API-Funktionen haben sich ..zig Windowsgenerationen nicht geändert. >Ich würde auch über die API gehen, denn viele... Mit ausreichenden API-Kenntnissen und genügend Enthusiasmus und Zeit ist es kein Problem eine eigene Komponente/OCX für diesen Zweck zu erstellen. Das Ergebnis wird dann irgendwo innerhalb der, mit Sicherheit über 100 existierenden, Varianten liegen. Die meisten davon unterscheiden sich hauptsächlich in den Namen der Eigenschaften/Methoden/Events, weniger in der Funktionalität. Aber man kann dann von sich behaupten, das Rad neu erfunden zu haben. Für private und nichtkommerzielle Anwendungen lohnt der Aufwand eigentlich nicht mehr. Für kommerzielle Anwendungen kann man entsprechende Komponenten käuflich erwerben MfG Spess
AktiveX, in die Tonne. Das ist das Schlimmste. Nimm das TPAPRO von oben. Verwende ich schon seit 10 Jahren, ist immer aktuell, immer kompatibel.
Einfach die Unit RS232 einbinden. Dann beim Programmstart mit OPENCOM('COM2: baud=19200 data=8 parity=N stop=1'); oder wie du es brauchst den Port aufmachen, mit CLOSECOM; beim Ende wieder zu. Einen String sendest du ungefähr so: var i:integer; text:String; begin for i:=0 to length(text)-1 do begin SendByte(text[i]); end; Also Sinngemäß so, das ist jetzt aus dem Kopf raus geschrieben. Kann sein das du das Zeichen noch umwandeln musst mit ord() oder sowas: SendByte(ord(text[i])); Mit ReadByte; kannst du vom Port lesen, aber nur pollen. Events kann die DLL leider nicht Gruß
Beitrag #5576476 wurde von einem Moderator gelöscht.
Beitrag #5576477 wurde von einem Moderator gelöscht.
Beitrag #5576478 wurde von einem Moderator gelöscht.
Beitrag #5580413 wurde von einem Moderator gelöscht.
Beitrag #5580414 wurde von einem Moderator gelöscht.
Beitrag #5580415 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.