RS232 nur erste Übertragung korrekt

mOzZin

Neues Mitglied
Hallo Leute,

ich versuche mit RXTX eine Kommunikation über RS232 hinzubekommen. Das klappt auch soweit ganz gut. Also ich kann senden und empfangen. Das Problem ist jetzt, dass sobald ich einen Befehl gesendet habe, die folgenden Befehle nicht mehr richtig ankommen. Die Daten die zurück kommen stimmen jedoch.
Beende ich mein Programm und versuche mit HTerm zu zugreifen, stimmt der erste Befehl auch nicht aber ab dem 2. Befehle kann ich wieder ganz normal senden.
Anscheinden sendet HTerm noch irgendetwas mit, dass die Übertragung beendet?? Ich habe jetzt schon ein paar Tage das Interner durchforstet, finde aber leider nichts. Auch habe ich gerade erst angefangen mit RS232 zu arbeiten.
Hat vielleicht jemand eine Idee? Wenn noch mehr Informationen benötigt werden, bitte einfach schreiben, ich versuche dann so präzise wie möglich zu antworten 🙂

Vielen Dank 🙂
 
Hallo

Schau dir mal die gesendeten/Empfangenen Daten Bit-für-Bit an, evtl ja ein synchronisationsproblem, also wie du sagst evtl wird ja noch zusätzliches zeugs gesendet und beim Empfangen bist du dann mit den Bytes "aus dem Takt".

mfg
 
Hallo,

habe mir mal ein Monitorprogramm zugelegt und HTerm und mein Programm verglichen. Hier die Screenshots von einem Sendebefehl ("LED 1 an"):

HTerm:
Directupload.net - D8nr58un2.png

Programm:
Directupload.net - Dwpjehpyy.png

Was auffällt ist, das bei HTerm noch direkt nach dem Befehl diese "..." gesendet werden? (Zeile 179). Bei meinem Programm ist da schon Ende mit dem Senden. Darüber hinaus sendet Hterm noch einiges mehr wie "@..." usw.
Bei HTerm hört die Übertragung dann auch relativ schnell auf (nach ein paar weiteren Zeilen). Bei meinem Programm wiederholt sich sich die Zeile 154 endlos. Selbst wenn ich mein Programm beende. Da könnte der Fehler liegen aber ich ich verstehe das im Moment noch nicht 🙁

Hat jemand eine Idee?

Grüße
 
Zuletzt bearbeitet:
Mein Idee ist, dass es relativ schwierig ist, in einem unbekannten Programm einen Fehler zu suchen ...
Weil so könnte es eigentlich an allem liegen 😱
😀

Wie wärs mit dem kompletten sourcecode?
 
Moin,

ich habe mit RXTX einen Drucker angesteuert.
Dabei lief die Kommunikation so ab, dass ich einen Befehl gesendet habe und der Drucker
mit einem ACK geantwortet hat. Kann als Antwort ein NAK, muss der Befehl erneut gesendet werden
bis ein ACK folgte.
Erst danach konnte man den nächsten Befehl senden.

Möglicherweise sendest du die Befehle so schnell hintereinander, dass der Empfänger
nicht reagieren kann.

Abhilfe könnte das Warten auf ein ACK (sofern es gesendet wird) schaffen oder die Befehle verzögert senden.
 
Klafft vielleicht die bitrate zwischen Sender und Empfänger zu stark auseinander? Laut wikipedia sind nur einige Prozent Differenz erlaubt
 
Was für ein Gerät ist das, mit dem zu versuchst zu kommunizieren?
Möglicherweise gibt es eine Anleitung im Internet.
Ich kann mir auch nicht vorstellen, dass es reicht einen Befehl wie "LED 1 an" zu senden.
Vermutlich muss dieser Befehl in Steuerzeichen ( sog. ESC Sequenzen) eingebettet werden.
Code:
SOH + Befehl + EOT

Das wäre zum Beispiel eine Befehlsfolge an den von mir angesteuerten Drucker.
 

Neue Themen


Zurück
Oben