Hallo Leute, ausnahmsweise frage ich nunmal nichts für mich: Ein Klassenkamerad sendet in seinem Projekt via UART 3 Zeilen an eine Ausgabesoftware. Dies geschieht via Tastendruck. Sein Problem dabei ist, dass jedes Mal 3 neue Zeilen geschrieben werden und nicht die drei Zeilen überschrieben werden. mit /n springt er in die nächste zeile, mit /r würde der Wagen an den Zeilenanfang springen. Dies geht mit der Software jedoch nicht. nun die Frage: Gibt es eien Befehl, den man senden kann via UART, der die Ausgabe löscht? also ein clearAll Befehl? Gruß
Sven Weinmann schrieb: > nun die Frage: Gibt es eien Befehl, den man senden kann via UART, der > die Ausgabe löscht? also ein clearAll Befehl? Formfeed könnte man probieren. Aber wenn schon die Trennung aus Carriage Return und Line Feed nicht funktioniert, dann wird wohl Form Feed auch nichts sinnvolles machen. Daher die Antwort: Da musst du die Leute fragen, die diese andere Software gebaut haben. Die wissen ob und wie es geht. Derjenige, der die Zeichen empfängt bestimmt, was er damit macht. Dir als Sender ist das vorgegeben und es gibt nichts was du dagegen tun kannst.
> Gibt es eien Befehl, den man senden kann via UART, der die Ausgabe > löscht? also ein clearAll Befehl? Das hängt von dem Empfänger und dessen Terminal-Emulation ab. Bei VT100 [0] isses afair
1 | \033[2J |
Gibt aber (fast) beliebig viele verschiedene Emulationen und insbesondere nicht-so-richtig-überwältigend-gute Software unterstützt wenig oder keine davon oder es ist nicht dokumentiert.. HTH [0] http://www.csie.ntu.edu.tw/~r92094/c++/VT100.html
habe es weitergeleitet und er hat sich mal mit dem programm support in verbindung gesetzt. dachte nur, dass es ggf möglich sei z.b. befehle zu senden, wie z.b. verbinden/trennen [..] starten/stoppen o.Ä. ich lese auch bei verschiedenen programmen von handshakes oder LF, CR, CR/LF usw, wobei ich jetzt nicht weiß, ob das überhaupt was damit zutun hat, oder ob das nur(!) softwareseitige befehle sind!
Sven Weinmann schrieb: > habe es weitergeleitet und er hat sich mal mit dem programm support in > verbindung gesetzt. > > dachte nur, dass es ggf möglich sei z.b. befehle zu senden, wie z.b. > verbinden/trennen [..] starten/stoppen o.Ä. > > ich lese auch bei verschiedenen programmen von handshakes oder LF, CR, > CR/LF usw, wobei ich jetzt nicht weiß, ob das überhaupt was damit zutun > hat, oder ob das nur(!) softwareseitige befehle sind! Schau. Die Sache ist die. Du (der Sender) hebt den Hörer ab, am anderen Ende der Telefonleitung hebt auch wer ab. Und dann palaverst du deine Befehle in den Hörer hinein. Ob und wenn ja wie deine Gegenstelle mit dem gehörten was anfangt oder nicht, das liegt nicht in deiner Hand. Wenn dort jemand sitzt, der Deutsch spicht, dann stehen die Chancen nicht schlecht, dass er auf das Kommando "Fenster aufmachen" auch tatsächlich das Fenster aufmacht. Sitzt dort aber ein Amerikaner, dann wird der nur mit den Schultern zucken. Dem musst du das Kommando "open window" schicken, damit das von dir gewünschte passiert. Und wenn dort ein Buschmann sitzt, dann wird der weder mit dem einen noch mit dem anderen Kommando was anfangen können. In der Savanne gibt es keine Fenster. Der Empfänger schreibt dir vor, was du zu schicken hast, damit das von dir gewünschte passiert. Und wenn der Empfänger eine gewisse Funktion nicht unterstützt, dann kannst du dich Kopf stellen. Nutzt nur nichts. Nicht unterstützt ist nicht unterstützt. Dass ein Terminal ein paar Pixel auf schwarz setzt, wenn du den Code 0x41 schickst und der Mensch vor dem Monitor das als 'A' liest, ist ja auch nichts anderes als eine Konvention, die vom Terminal (also dem Empfänger) diktiert wird. Das Terminal könnte ja auch bei Erhalt von 0x41 wie wild mit dem Buzzer rumtröten. Es ist halt nur eine Konvention, die (heutzutage) von vielen unterstützt wird. Das war nicht immer so! Die halbe EDV besteht aus Konventionen. Das ist ja alles nicht Gott gegeben und in Stein gemeisselt. Es gibt auch keine Polizei, die den Programmierer verhaftet, wenn sein Programm keine Steuerzeichen zur Cursorpositionierung auswertet.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.