Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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)