Daten über serielle Schnittstelle senden
-
Hallo liebe User,
ich habe folgendes Problem:
an meiner Seriellen schnittstelle habe ich ein led wallboard angeschlossen. Diesem möchte ich nun Befehle schicken, damit ein neuer Text angezeigt wird. Das Board kann verschiedene Steuercodes verarbeiten (<NUL> , <ETX> , <EOT> usw.). Via Hyperterminal habe ich es auch schon geschafft einzelne Buchstaben zu verschicken, welche aber nicht auf das Board geschrieben werden. In einem Diagnose Programm habe ich die Schnittstelle auslesen lassen und weiß, dass die Verbindung zum Wallboard generell besteht.Meine Frage ist nun: Ist es möglich diese Steuercodes mit einem Programm so zu senden, dass sie auch als Befehl angenommen werden und nich als einzelne Zeichen?
mfg r00kie
-
Selbstverständlich.
Ein Befehl ist nichts anderes eine aufeinanderfolgende Sequenz von einzelnen Bytes. Und Du kannst jedes beliebige Bytewert, also auch die Steuercodes übertragen.r00kie schrieb:
Via Hyperterminal habe ich es auch schon geschafft einzelne Buchstaben zu verschicken, welche aber nicht auf das Board geschrieben werden.
Der Satz ist irgendwie nicht eindeutig. Mit einzelnen Buchstaben hast Du's geschafft aber konnten nicht aufs Board geschrieben werden? Klingt irgendwie nach Widerspruch in einem Satz.
Hast Du schon mal versucht, eine Text-Datei mit genau diesen Befehl-Bytes zu erstellen, und diese Datei per Hyperterminal an das Board zu übertragen? Damit MUSS es funktionieren.
Martin
-
NUL, ETX, EOT sind sogenannte nicht drruckbare Zeichen. Deshalb auch nicht einfach so ohne weiteres mit Hyperterminal und einer Tastatur senden kannst.
In einem Programm kannst du aber solche Zeichen sehr einfach in einen String Befehlsstring einbauen.
Z. B. so:#define NUL 0x00 #define ETX 0x03 #define EOT 0x04 char Commandstring[]={NUL,ETX,EOT,'H','a','l','l','o','!'}; SendCommandToCom(Commandstring);
-
LIFO schrieb:
NUL, ETX, EOT sind sogenannte nicht drruckbare Zeichen. Deshalb auch nicht einfach so ohne weiteres mit Hyperterminal und einer Tastatur senden kannst.
In einem Programm kannst du aber solche Zeichen sehr einfach in einen String Befehlsstring einbauen.
Z. B. so:#define NUL 0x00 #define ETX 0x03 #define EOT 0x04 char Commandstring[]={NUL,ETX,EOT,'H','a','l','l','o','!'}; SendCommandToCom(Commandstring);
@mmacher, habe via Hyperterminal z.B. das steuerzeichen NUL gesendet (habe strg+@ eingegeben) dann erschien auf dem monitor einfach nur WRITE "<" dann WRITE <N usw.
@Lifo: reicht dieser Code oder muss ich noch mehr beachten?
danke schonmal, werde es morgen gleich probieren und mich dann melden.
-
Nein, Du mußt viel mehr machen, bevor Du das erste Zeichen überhaupt ausgeben kannst. Wie z.B. Baudrate einstellen, DCB-Struktur definieren, usw.
Wenn Du das erste mal damit machst, dann empfehle ich Dir eine fertige Klasse wie z.B. CSerialPort auf www.codeproject.com.
Oder benutze die Suche hier im Forum, hier wirst Du auch fündig.martin