Re: RS232 ESC-Sequenzen an Terminal schicken Kategorie: Programmierung C (von PeterS - 5.05.2014 15:38) | |
Als Antwort auf Re: RS232 ESC-Sequenzen an Terminal schicken von PeterS - 5.05.2014 15:17
| |
> > > > > > > > > > > > Das sieht alles so richtig aus. Bist Du sicher, das das Terminalprogramm > > > > > > VT100 beherrscht und es aktiviert ist? > > > > > > > > > > > > Gruss Peter > > > > > > > > > > > > > > > > Hallo Peter! > > > > > > > > > > Ich benutze diese IDE: > > > > > C-Control IDE Version:2.31.0.89 > > > > > Compact-C Compiler Version:1.70.0.14 > > > > > Bootloader Version: 1.10 Interpreter Version: 1.60 > > > > > Hardware:C-Control MEGA 32 Hardware Rev:01 > > > > > Connection Type:Serieller Port (115kbd) > > > > > > > > > > wie kann ich überprüfen, ob das Terminal VT100 beherrscht? > > > > > > > > > > diese Befehle werden ausgeführt: > > > > > Serial_WriteText(0,"Test1 nr"); > > > > > Serial_WriteText(0,"Test2 nr"); > > > > > Serial_WriteText(0,"Test3 nr"); > > > > > doch alles was ich per ESC-Sequenz übertrage nicht; da werden nur die Steuerzeichen angezeigt > > > > > > > > > > im Forum hatte ich gesehen, dass auch andere User mit den ESC-Sequenzen Probleme hatten; > > > > > doch der Thread wurde beendet > > > > > > > > > > hast du noch eine Idee? > > > > > > > > > > > > Hallo! > > > > > > > > Jetzt habe ich das Hyperterminalprogramm von Windows ausprobiert. Die Verbindung zum Board > > > > hat geklappt. Leider wird auch hier nur "Datenmüll" angezeigt: �ã[1;1f[2JHallo Welt > > > > > > > > Es liegt also wohl nicht am Terminalprogramm, sondern an einem Parameter (wüsste aber nicht, > > > > wo ich ihn finde oder wie ich ihn ändern könnte) - oder an einem Codefehler in meinem > > > > Programm (aber ich habe auch die Beispiele von CCPro getestet) - oder ??? > > > > > > > > Könnt ihr mir weiterhelfen? > > > > > > > > Dank und Gru�, Thorsten > > > > > > > > Wie habt ihr das Problem bei euch behoben? > > > > > > Hast du das in der C-Control PRO IDE integrierte Terminal probiert? > > > Gib mal ein paar Dummyzeichen aus (123 Test) und mach eine Pause bevor Du die ESC Sequenz schickst... > > > > > > > > > > Hallo! > > Ja, ich benutze das integrierte Terminal der CCPRO IDE. Das mit der HyterTerminal von Windows war > > ein Versuch. > > > > //########## ASCIIwerte definieren ############################################# > > #define SPACE 0x20 > > #define LF 0x0A > > #define FF 0x0C > > #define CR 0x0D > > #define ESC 0x1B > > > > byte buffer[220]; > > char str[80]; > > > > Serial_Init_IRQ(0,buffer,20,200,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200); > > > > Serial_Write(0,ESC); // ESC-Sequenz starten > > AbsDelay(250); > > Serial_WriteText(0,"[1;1f"); // Cursor auf Terminalposition 1;1 > > AbsDelay(250); > > Serial_Write(0,ESC); // ESC-Sequenz starten > > AbsDelay(250); > > Serial_WriteText(0,"[2J"); // Terminal löschen > > AbsDelay(250); > > Serial_Write(0,ESC); // ESC-Sequenz starten > > AbsDelay(250); > > Serial_Write(0,FF); // form feed > > AbsDelay(250); > > > > Serial_WriteText(0,"f"); // Cursor Home > > Serial_WriteText(0,"1234567890 A nr"); > > Serial_WriteText(0,"1234567890 B nr"); > > Serial_WriteText(0,"1234567890 C nr"); > > > > �ã[1;1f[2J1234567890 A > > 1234567890 B > > 1234567890 C > > > > auf dem Terminal wird folgendes ausgegeben: > > erst: �ã > > dann: [1;1f > > dann: [2J > > dann: 1234567890 A > > neue Zeile > > dann: 1234567890 B > > neue Zeile > > dann: 1234567890 C > > neue Zeile > > > > sieht so aus, als ob die ESC-Sequenz nur als Text angezeigt wird; alles was in "" steht, > > erscheint auch so auf dem Terminal > > > > diese Befehle werden korrekt ausgeführt: > > Serial_WriteText(0,"1234567890 A nr"); > > > > diese Befehle werden anscheinend ignoriert, bzw auf dem Terminal gibt es keine Entsprechung: > > Serial_Write(0,FF); > > Serial_WriteText(0,"f"); > > > > habe ich die richtige Syntax? Pausen an der richtigen Stelle? die variablen richtig dimensioniert? > > gibt es eine �bersicht, welche ESC-Sequenzen CCPRO unterstützt? > > > > Für weitere Hilfe bin ich sehr dankbar. > > > > Gru�, Thorsten > > Hallo, > > ich habe das nochmal überprüft, Dein Programm arbeitet richtig. Lass bitte > auch die AbsDelay Pausen weg. In die VT100 Komponente im Terminalprogramm > der IDE hat sich nur ein Bug eingeschlichen, und es interpretiert die > Sequenzen nicht korrekt. Das werde ich im nächsten Update korrigieren. > > Aber jedes andere Terminalprogramm mit VT100 sollte damit funktionieren. > > siehe http://en.wikipedia.org/wiki/List_of_terminal_emulators > > Gruss Peter Hallo Thorsten, ein Nachtrag. In Deinem Demoprogramm ist der Buffer 6 byte zu klein. Schau mal in die Anleitung, Du mu�t Empfangs + Sendepuffer + 6 Byte reservieren. Oder nimm das SERIAL_BUF Macro aus der Anleitung. Gruss Peter | |
Antwort schreiben Antworten: Re: RS232 ESC-Sequenzen an Terminal schicken (von karwenzman - 11.05.2014 15:41) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum