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:

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
und natürlich RS232.open()

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:
Code:
Trying to write: test!
Bytes to write: 0
Senden von PC zu PDA funktioniert, wie gesagt, einwandfrei.
Die RS232-Schnittstelle am Laptop (über PCMCIA-Card) funktioniert auch komplett. Habe bei "kurzegschlossenen" RX/TX-Leitungen das empfangen, was ich gesendet habe da 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 !

DTR 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)
irgendwie logisch

was mich noch wundert, dass die BytesToWrite angeblich 0 waren...