Habe hier fertige C# Funktionen die Befehle per RS232 senden. Das
Protokoll basiert bisher komplett auf ASCII Zeichen. Jetzt kommen neue
Befehle hinzu. Die sind aber nicht mehr ASCII, sondern z.B. einfach der
Wert 0x80.
VS2010 gibt zwar keine Fehlermeldung raus, aber per RS232 wird, egal was
ich mache, immer nur '?', also 0x3F anstatt 0x80 gesendet. Ich nehme an
das das Encoding Probleme macht, weil es eben kein ASCII Zeichen mehr
ist. Ich würde ungern den Code großflächig ändern wollen.
Gibt es eine Möglichkeit dem Programm beizubringen einfach alles so zu
senden wie es ist?
Vereinfacherter Code:
1 | char cmd;
|
2 | char[] datatx = new char[4];
|
3 | char[] datarx = new char[4];
|
4 |
|
5 | // Kommando
|
6 | cmd = (char)0x80;// 'a'; // 'a' geht, 0x80 nicht!
|
7 |
|
8 | // Senden
|
9 | SendRecCommand(cmd, ref datatx, ref datarx);
|
Die Unterfunktion SendRecCommand fügt das cmd Char in ein weiteres Char
Array ein und sendet alles per COMPort.Write raus.