![]() |
RS232 Schnittstelle Daten senden
Hallo,
ich habe ein Funksender (POCSAG), womit ich Daten versenden möchte. Zur Verfügung steht eine RS232 Schnittstelle. Ich experimentiere mit Delphi 11 und der Komponente (nrComm) herum. Leider habe ich keine Ahnung von RS232 Schnittstellen und dem beigefügten Protokoll. Kann mir vielleicht einer weiterhelfen? Möchte über ein Memo (Text) und Button (Senden) Daten versenden. Hier das Protokoll : By sending data to serial port. PC serial port : 9600 BPS 8 bits data 1 stop bit NO Parity Receive data format of transmitter: 0x19-------->Start of message 1byte ------>'R' 7 bytes ---->capcode ( ascii format '0'-->0x30,'1'--->0x31 ) 1 byte ---->control bit ( bit 7----> 1 bit 6----> 1---->Chinese,0--->not Chinese bit 5,4--> 00-->A TONE,01-->B TONE,10-->C TONE,11-->D TONE, bit 3----> 0---->numeric message,1---->Alpha message bit 2,1--> POCSAG baud 00->512,01--->1200,10-->2400 bit 0----> Polarity 0--->normal, 1--->reverse N Bytes ---->Content of message , not more than 300 characters,8bit ascii. 0X18-------->Message end Attention: When a message succed, the transmitter will reply 0x19,"RXOK",0X18 to PC Example: Using capcode 1234567,normal,1200BPS,A call send "ABCDEFGH" Send by serial port of PC: 0x19,"R1234567",0X8A,"ABCDEFGH",0X18 HEX DATA: 19 52 31 32 33 34 35 36 37 8A 41 42 43 44 45 46 18 |
AW: RS232 Schnittstelle Daten senden
Ich kenne nrComm nicht, da ich mit TMS Async32 arbeite. Kostet ein wenig, ist aber gut.
Da musst du zuerst die Parameter zuweisen PC serial port : 9600 BPS 8 bits data 1 stop bit NO Parity und bei Async32 geht das dann so:
Delphi-Quellcode:
Damit kann man einzelne Zeichen an die Schnittstelle senden. Im Protokoll ist das aber auch ganz gut beschrieben.
VaComm1.WriteChar(c);
|
AW: RS232 Schnittstelle Daten senden
Auch TComPortDrv sollte das können. Ist in GetIt frei verfügbar.
Besitzt sowohl Methoden zum binären Datenversand als auch für Textprotokolle. Und ja, auch da muss man zuerst 9600 Baud einstellen, 8 Datenbits und 1 Stoppbit und keine Parität. Die Komponente hat auch ein Event in dem die Empfangenen Daten eingehen. Und ein kleines Terminalprogramm als Beispiel kommt auch mit. Dein Protokoll scheint ja ein ASCII basiertes zu sein, richtig? Da solltest du mit diesem Testterminal das mal testhalber eintippen können... |
AW: RS232 Schnittstelle Daten senden
Beachten sollte man auch die Datenflusssteuerung:
Hardware (TxD, RxD, GND, RTS und CTS) Software Xon/Xoff (Xon=0x19/Xoff=0X18) kann man bei 'nrcomm' mit der Eigenschaft 'StreamProtokol' angeben. als Bps.(Baud) würde ich 512,1200 oder 2400 probieren. einige Links zu Info ![]() ![]() ![]() ein eifaches Programm
Delphi-Quellcode:
for i:=0 to memo1.Lines.count-1 do
begin nrComm1.SendString(Memo1.Lines[i]); nrComm1.SendChar(#13); nrComm1.SendChar(#10); end; nrComm1.SendChar(#4); |
AW: RS232 Schnittstelle Daten senden
Ich benutze AsycPro :
![]() Ist kostenfrei und funktioniert sehr zuverlässig. |
AW: RS232 Schnittstelle Daten senden
Ja auch dass gibt's im GetIt.
Jetzt bleibt halt die Frage ob dem OP die bisher gegebenen Tipps schon was geholfen haben. |
AW: RS232 Schnittstelle Daten senden
hallo, vielen dank für die vielen antworten! hatte leider noch keine zeit, alles zu lesen und zu testen.
ich werde aber die tage mal alles ausprobieren und testen. hier und da werde ich bestimmt noch fragen haben! danke :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz