Senden "ENTER" - Taste über den seriellen port
Hi ich will senden Sie einen Befehl an mein Gerät angeschlossen ist, über die serielle Schnittstelle. Wie schicken?
Zum Beispiel fand ich das auf google Suche, aber für mich ist es nutzlos.
Einstellungen + E Tastatur-shortcut für 5, also:
serial.Write(new byte[]{ 5 }, 0, 1);
Wir brauchen mehr Informationen über das Protokoll das Gerät kommuniziert mit Ihrem computer und Umgekehrt.
serial.WriteLine("");
serial.WriteLine("");
InformationsquelleAutor Mustafa İrer | 2011-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird die microsoft-version von enter oder neue Zeile
\r\n
die0x0d 0x0a
im hex.\r
ist das carriage returnIn eine Schale oder einen Drucker würde dies bringen Sie den cursor wieder an den Anfang der Zeile.
\n
ist das line-feedSetzt den cursor eine Zeile darunter, in einigen Schalen auch dies setzt den cursor an den Anfang der nächsten Zeile. einen Drucker würde einfach Blättern Sie das Papier ein bisschen.
So viel für den Geschichtsunterricht. Aktuelle windows-Systeme immer noch diese Zeichen benutzen, um anzuzeigen, dass ein Zeilenende. Dos erzeugt diesen code, wenn die Taste enter.
Den Schlüssel-code ist ein wenig anders. Beginnend mit der esc - Taste wird die 1. Enter 28.
Quelle: linux hlkeycodes aus http://www.comptechdoc.org
InformationsquelleAutor matthias.lukaszek
Senden Sie die enter-Taste, die Sie verwenden würde
Vorausgesetzt, Ihre syntax für Einstellungen + E ist korrekt. Die enter-Taste interpretiert wird und in der Regel in einer Datei gespeichert, wie
CR-LF
. Allerdings, je nach Gerät, kann es nur verlangenCR=13
oderLF=10
. Sie sollten versuchen, alle 3-Kombinationen, die mit dem Gerät, um zu sehen, was es erwartet.Wenn Sie auf der Suche für die eigentliche scan-code der enter-Taste, es ist "43" auf einer PC-102/104-Taste der Tastatur. Abhängig von der tatsächlich computer, den Sie verwenden, kann es anders sein. Zum Beispiel auf einem Commodore 64 der scan-code für die Zurück Taste "1" ist, die die entsprechende Verwendung von Enter auf einer PC-Tastatur.
Wahrscheinlich Recht, werde ich ändern. Ich weiß nicht, die API in diesem Fall, aber das ist eine gute Annahme.
InformationsquelleAutor Kibbee
Danke Jungs.
Dies funktioniert:
Hinweis: wenn Sie möchten, senden Sie einen Befehl über den seriellen port, ich nutze die untere Zeile funktioniert bei mir.
InformationsquelleAutor Mustafa İrer
Was die vorherigen Antworten gesagt haben, Sie ist wie das senden einer neue-Zeile-Zeichen - das ist nicht das gleiche wie "enter-Taste". Wenn das, was Sie wollen zu tun ist, um tatsächlich an den remote-Computer, dass die "enter-Taste" auf der Tastatur gedrückt wurde, dass ganz anders ist, und kann nicht möglich sein, abhängig von Ihrem Betriebssystem und hardware.
InformationsquelleAutor mickeyf
Es hängt davon ab, was GEBEN Sie für Ihr Gerät. In Windows ist es CRLF (13 und 10), Linux ist LF (nur 10.) Es ist nur eine Frage, was Ihr Gerät erwartet, denn es kann nicht sehen, GEBEN Sie einfach "byte 10, byte 13 byte, was auch immer..."
InformationsquelleAutor kaoD
Müssen Sie senden Sie die Befehle CR (Carriage Return) und LF (Line Feed oder new line).
Dafür ist Sie einfach zu senden-Befehl plus dem der CR-und LF-so:
\r\n = CR + LF - - > als ein neue-Zeile-Zeichen in Windows
InformationsquelleAutor Butzke
Ich angehängt "\r\n" im string und der Aufruf Write () - Methode und es funktioniert für mich. Zum Beispiel,
serial.Write("abcd\r\n");
InformationsquelleAutor Pabitra Dash
Senden Sie die enter-Taste, die Sie verwenden würde
SerialPort.NewLine Eigenschaft - Ein Wert, der repräsentiert das Ende einer Zeile
Für ein vollständiges Beispiel für das arbeiten mit serieller Schnittstelle, siehe hier.
InformationsquelleAutor Andrei Krasutski