Abfrage bzw. Vergleich von seriellen Eingaben

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Abfrage bzw. Vergleich von seriellen Eingaben

      Moin Zusammen.
      Ich habe folgendes Problem,
      ich möchte Eingaben von Tastatur (Teraterm) über UART machen,in eine Variable schreiben und die dann auswerten.
      Dazu würde ich folgende Tasten drücken: zb. W11 oder W20.
      Also Buchstaben und Zahlen gemischt.
      Nun meine Frage, welche Art müsste meine Variable haben, wenn sie W11 oder W20 nach der Eingabe beinhaltet? a_27_b277ca12
      Gruss Olaf
    • Hallo!

      Du brauchst eine String-Variable mit passender Länge. Wenn maximal drei Zeichen in die Variable sollen:


      Source Code

      1. dim Das_ist_die_Testvariable as string*3
      2. Das_ist_die_Testvariable = "W10" 'statt dieser Zeile muss Deine Engaberoutine erfolgen
      3. if Das_ist_die_Testvariable = "W10" then
      4. 'tu was
      5. else
      6. 'tu was anderes
      7. end if
      Display All
      Wenn mehr Zeichen in die Variable sollen, dann musst Du die Zahl nach string *... entsprechend erhöhen.

      Das Auswerten ist dann eine andere Geschichte. Da helfen Befehle, wie "left", "mid", "right"... eventuell weiter.

      Grüße und viel Spass!

      Andy
    • Hallo Olaf,

      Die Auswertung des ASCII Codes des empfangenen Zeichens wäre eine Möglichkeit, mit select case zu arbeiten, direkt mit Strings geht das nicht.
      schau mal hier wird eine Zeichenkette von TeraTerm nach bestimmten Kriterien zusammengebaut.

      Inputroutine mit Eingabekontrolle über vordefinierten Parameter-String und RS232 Kontrolle

      Gruß Rudi
      Immer Glück haben ist fast wie können..
    • Ich schreibe immer CASE Is = "W11" : 'machwasanderes
      Funktioniert (obwohl ich dafür schon einen Rüffel kassiert habe)
      die Variable muß jedoch präzise passen " W11", "W11 " würden nicht treffen. Vielleicht nach case else
      Print "Hier ist Käse angekommen :" ; Das_ist_die_Testvariable ; "*"
      das * um angehängte Leerzeichen zu sehen.
    • So liebe Leute,
      mit
      case "w11" hats geklappt. Danke Andy!!!
      case is="w11" geht auch. Danke Pluto25!!!

      Ist ja soooo einfach... a_45_132ca9f5
      Zum Abschluss aber noch ne Fräge...
      Da ich ja nun im Terminal arbeite würde mich mal interessieren,wie man die ESC-Codes sendet.
      Also print chr(27);"[7m" zB. schreibt ja wirklich chr(27);"[7m".
      Also als Text und nicht als Befehl....
      Gruss Olaf
    • Moin Pluto!
      Danke für deine schnelle Antwort.
      Ich meinte eigentlich, dass das Programm die ESC-Codes zum Terminal sendet.
      Also in etwa so:

      print "Die nächste Zeile ist in Fettschrift!"
      print (jetzt die ECS-Codes für Fett + der Text der dann folgen soll)

      Gruss Olaf
    • Also um ESC-Sequenzen im Terminal zu verarbeiten muss dieses VT100 kompatibel sein. Putty kann das, wir bauen damit in unserer Firma die kompletten Servicemasken für die von uns entwickelten Geräte auf. Damit können wir sowohl die gespeicherten Daten des Gerätes als auch die direkte Abarbeitung des Programms visuaalisieren. Außerdem kann aus diesem "Serviceterminal" per Tastatureingabe Daten an das Gerät geschickt werden.

      Also sieh Dir mal Putty an, ist sowieso das Beste Terminalprogramm da es ohne Schnickschnack das meiste kann.
      Wem ich nicht ausdrücklich widerspreche, der darf das bis auf Widerruf als "Gefällt mir" verstehen.
    • Moin Zusammen,
      danke für Eure Antworten.
      Das mit dem Terminal habe ich bis jetzt nur im Bascom Simulator getestet.

      hasta wrote:

      Also um ESC-Sequenzen im Terminal zu verarbeiten muss dieses VT100 kompatibel sein. Putty kann das, wir bauen damit in unserer Firma die kompletten Servicemasken für die von uns entwickelten Geräte auf. Damit können wir sowohl die gespeicherten Daten des Gerätes als auch die direkte Abarbeitung des Programms visuaalisieren. Außerdem kann aus diesem "Serviceterminal" per Tastatureingabe Daten an das Gerät geschickt werden.

      Also sieh Dir mal Putty an, ist sowieso das Beste Terminalprogramm da es ohne Schnickschnack das meiste kann.
      Genau das würde mich mal interessieren wie Ihr die Masken damit entwerft.
      Ist das dann so wie eine IDE??
      Ich möchte ja im Terminal (TERATERM) mehrere Bildschirmausgaben haben, da ist es ja dann blöd wenn der Bildschirminhalt irgendwann nach oben scrollt...
      Das wollte ich ja mit den ESC-Codes anders machen.
      Gruss Olaf
    • Haupti65 wrote:

      wie Ihr die Masken damit entwerft.
      Also print chr(27);"[7m" zB. schreibt ja wirklich chr(27);"[7m"
      Der AVR soll die Bildschirmsteuerung von Teraterm übernehmen?

      Bei mir (hterm zu Putty) schreibt das gar nichts, sorgt aber dafür dass die nächsten Zeichen Invers dargestellt werden, (Hinter dem "[7m" muß auch ein ; damit er kein CrLf ausgibt.
      Auch der Cursor läßt sich beliebig über den Bildschirm (des Putty) verschieben.
      Wieviel Teraterm nun wirklich mitmacht sollte in der Hilfe stehen ? Oder austesten.