Moin, ich bin hier schon seit einiger Zeit am rumprobieren und ich bekomme es einfach nicht hin von meinem PDA (Acer n50) über RS232 Daten zu senden.
Empfangen klappt absolut problemlos![]()
Folgende Einstellungen werden getätigt:
und natürlich RS232.open()Code:RS232.PortName = "COM1" RS232.Parity = IO.Ports.Parity.None RS232.DataBits = 8 RS232.StopBits = IO.Ports.StopBits.One RS232.Handshake = IO.Ports.Handshake.None RS232.RtsEnable = False RS232.DtrEnable = False RS232.ReceivedBytesThreshold = 1
Zum senden benutze ich folgenden Code
Code:If RS232.IsOpen Then Debug.WriteLine("Trying to write: " + Message) Bytes_Sent += Message.Length RS232.Write(Message) Debug.WriteLine("Bytes to write: " + RS232.BytesToWrite.ToString) End If
Also Ausgabe bekomme ich:
Senden von PC zu PDA funktioniert, wie gesagt, einwandfrei.Code:Trying to write: test! Bytes to write: 0
Die RS232-Schnittstelle am Laptop (über PCMCIA-Card) funktioniert auch komplett. Habe bei "kurzegschlossenen" RX/TX-Leitungen das empfangen, was ich gesendet habeda liegt das Problem nicht
![]()
Muss es also am PDA, an der Verbindung (Cradle, DOckingstation) oder an der Software liegen.
Ich benutze für die ganze Sache das hTerm-Terminal und da gibt es so 4 Lämpchen: CTS, DSR, RI und DCD
Wenn ich bei den Einstellungen:
RS232.Handshake = IO.Ports.Handshake.None
ändere auf:
RS232.Handshake = IO.Ports.Handshake.RequestToSend
dann geht das CTS-Lämpchen im hTerm an.
Soweit funktioniert das also schonmal ^^
\/ \
/ \
/
oh siehe da, während des schreibens habe ich noch ein wenig rumgefummelt und plötzlich gehts und zwar mit folgenden Einstellungen kann ich nun auch empfangen:
Code:RS232.PortName = "COM1" RS232.Parity = IO.Ports.Parity.None RS232.DataBits = 8 RS232.StopBits = IO.Ports.StopBits.One RS232.Handshake = IO.Ports.Handshake.RequestToSend RS232.RtsEnable = False RS232.DtrEnable = True 'Hieran hats gelegen !
irgendwie logischDTR bedeutet: Data Terminal Ready
Über diese Leitung signalisiert der PC dem Gerät, dass er betriebsbereit ist. Damit kann ein Gerät eingeschaltet oder zurückgesetzt werden. (Üblicherweise schaltet ein Gerät z.B. Modem diese Leitung auf DSR durch, wenn es einsatzbereit ist)![]()
was mich noch wundert, dass die BytesToWrite angeblich 0 waren...







Zitieren

Lesezeichen