Automatisch CRLF bei Print anhängen / bei Input abfragen

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

    • Update

      Ich habe jetzt beide Möglichkeiten an einer realen Schaltung ausprobiert.
      1) mit Config Input = CRLF, echo = CRLF
      und Echo OFF

      2) mit Input var NoEcho

      Bei beiden Varianten hat das Echo nur auf das zurückgesendete Byte bei der Eingabe einen Einfluss.
      Das CRLF am ende mit einem Print (im Falle von 1) läßt sich nicht abstellen.

      Fazit, es geht wohl nicht.
      Bitte korrigieren, wenn ich falsch liege!
    • Ja aber jetzt bin ich ganz verwirrt.

      was macht denn dann das Echo bei
      Config Input = CRLF, echo = CRLF

      Im übrigen kann ich die Eingabe auch abschließen nur mit LF, muss also kein CR voraus eingeben

      hier der Codeschnipsel

      BASCOM Source Code

      1. ' Erste Gehversuche mit ESP-01
      2. $Regfile = "m168def.dat"
      3. $HWStack = 64
      4. $SWStack = 64
      5. $Framesize = 64
      6. $Crystal = 14745600
      7. '$SIM
      8. $Baud = 19200
      9. Config Base = 0
      10. Config SubMode = New
      11. Const TRUE = 1
      12. Const FALSE = 0
      13. 'Config SerialIn = Buffered , Size = 40
      14. Config Input = CRLF , echo = CRLF
      15. $Timeout = 5000000
      16. Dim ESP_Buffer as String * 20
      17. ' zu Debug-Zwecken ein Soft-Uart zum PC
      18. 'Open "COMB.0:19200,8,N,1" for Output as #1
      19. '$Include "Include\ESP-01_Client.inc"
      20. Wait 1
      21. Enable Interrupts
      22. Wait 1
      23. Print "Test für Input (Echo)"
      24. Do
      25. Input "mit Echo:>" , ESP_Buffer NoEcho
      26. If ESP_Buffer = "" then
      27. Print "Timeout"
      28. Else
      29. Print "Eingabe:" ; ESP_Buffer
      30. End If
      31. Wait 5
      32. Loop
      Display All
    • Michael wrote:

      was nun, mit oder ohne Echo?
      Ich habe beides probiert. Das war eben der letzte Stand meiner Software von vor 7 Minuten.
      Das hat nix zu bedeuten.


      Michael wrote:

      es wird mit CRLF abgeschlossen
      Das echo wird mit CRLF abgeschlossen?
      Also doch gesendet, auch ohne Print?

      Warum ich mich da so festbeiße?
      Wenn ich einen String vom ESP-01 mit konfiguriertem Empfangsbuffer empfange, habe ich im Buffer immer ein CRLF nach dem String.

      Wenn ich aber den Buffer mit Input auslese bleibt immer das LF im Buffer zurück. Das muss aber weg, denn der nächste Sting beginnt ja nach dem LF.

      Deshalb dachte ich, ich kann mit dem Input variable das CRLF gleich mit eliminieren und muss es nicht jedes mal explizit zu Fuß löschen.
      Um das zu erreichen kann man Config Input verwenden.
      Bleibt aber die Frage, was passiert mit dem echo=parameter.

      Denn wenn ein AVR dem ESP ein Kommando schickt, soll der dem ESP nicht wieder irgendwas antworten.
      Deswegen bohre ich da so nach.
    • Im Moment ist der ESP abgehängt.
      Ich schicke also im Moment nur Daten vom PC zum AVR und das Response geht zurück an den PC.

      Später soll aber der AVR mit dem ESP kommunizieren.
      Daher ist es mir wichtig zu wissen, was da zwischen den beiden ausgetauscht wird.

      Also meine Teste ergeben, dass das echo=parameter bei Config Input keinen Einfluss hat auf das Echo.
      Es wird also beim Echo kein RC LF oder CRLF angehängt.
      Angehängt wird nur beim Print und zwar immer CRLF.

      Ich konnte also kein Effekt feststellen, was das echo= bewirken soll.

      Bei Echo Off oder bei Input var noecho wird die Eingabe nicht zurück gesendet.

      Müsste also im Falle mit ESP so sein, dass wenn ich was per print an den ESP sende und per Input das Response lese wird, wird kein CR, LF oder sonstwas an des ESP als Echo gesendet. Sollte also save sein.

      Bleibt die Frage, wozu das echo=parameter beim Befehl Config Input gut sein soll.

      Ich konnte kein Effekt feststellen.

      Übrigens hat @Pluto25 recht. Selbst wenn man nur ein LF an den ESP schickt, erkennt der keinen gültigen Befehl und schickt ein "ERROR" zurück.
    • Mitch64 wrote:

      Also meine Teste ergeben, dass das echo=parameter bei Config Input keinen Einfluss hat auf das Echo.
      Meine Tests ergaben, dass der Parameter Echo genau das bewirkt, was er soll.
      Ein Config Input = Crlf , Echo = Crlf
      sendet ein CRLF nach dem Echo.

      Mitch64 wrote:

      Es wird also beim Echo kein RC LF oder CRLF angehängt.
      Das liegt dann an deinem Programm, möglicherweise hast du das Noecho noch hinter dem Input-Befehl stehen
    • ...und hier in der Hilfe steht: LINK

      Zitat:
      When you use INPUT to retrieve values for variables, all info you type can be echoed back. In this case you will see each character you enter. When ECHO is OFF, you will not see the characters you enter.
      In versions 1.11.6.2 and earlier the ECHO options were controlled by an additional parameter on the INPUT statement line like : INPUT "Hello " , var NOECHO
      This would suppress the ECHO of the typed data. The new syntax works by setting ECHO ON and OFF. For backwards compatibility, using NOECHO on the INPUT statement line will also work. In effect it will turn echo off and on automatic.
      By default, ECHO is always ON.
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.