-
        

Ergebnis 1 bis 1 von 1

Thema: "Einfachstes" Terminalprogramm für Windo.. und Lin

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199

    "Einfachstes" Terminalprogramm für Windo.. und Lin

    Anzeige

    Hallo,

    nachdem manchmal das Hyperterminal etwas komisch reagierte, und ich in anderen Beiträgen las, daß auch unter Linux das Ansprechen des USB-Transceivers Probleme bereitet,
    http://www.roboternetz.de/phpBB2/zei...=145922#145922
    begann ich nach einem "einfachsten" Terminalprogramm zu googlen.

    Und siehe da, hier fand ich es, sogar als C-Quelltext:
    http://www.c-plusplus.de/forum/viewt...53.html#285453

    Folgende Änderung war zu tun, und schon funktionierte das Terminalprogramm unter Linux mit meinem USB-Transceiver:
    Code:
    /cygdrive/c/ASURO_src/terminal
    $ diff terminal.c terminalLinux.c
    11,12c11,12
    < # define TERM_DEVICE "/dev/ttyS0"   /* = COM1 */
    < # define TERM_SPEED B19200      /* Bit/Sek */
    ---
    > # define TERM_DEVICE "/dev/ttyUSB0"   /* = USB? */
    > # define TERM_SPEED B2400      /* Bit/Sek */
    /cygdrive/c/ASURO_src/terminal
    Hier die Änderungen für Windows mit Cygwin für die Ports COM1, COM2 und COM4 (USB):
    Code:
    $ diff terminal.c terminal1.c
    12c12
    < # define TERM_SPEED B19200      /* Bit/Sek */
    ---
    > # define TERM_SPEED B2400      /* Bit/Sek */
    /cygdrive/c/ASURO_src/terminal
    $ diff terminal.c terminal2.c
    11,12c11,12
    < # define TERM_DEVICE "/dev/ttyS0"   /* = COM1 */
    < # define TERM_SPEED B19200      /* Bit/Sek */
    ---
    > # define TERM_DEVICE "/dev/ttyS1"   /* = COM2 */
    > # define TERM_SPEED B2400      /* Bit/Sek */
    /cygdrive/c/ASURO_src/terminal
    $ diff terminal.c terminal4.c
    11,12c11,12
    < # define TERM_DEVICE "/dev/ttyS0"   /* = COM1 */
    < # define TERM_SPEED B19200      /* Bit/Sek */
    ---
    > # define TERM_DEVICE "/dev/ttyS3"   /* = COM4 */
    > # define TERM_SPEED B2400      /* Bit/Sek */
    /cygdrive/c/ASURO_src/terminal
    Leider klappte zumindest das Setzen der Baudrate für COM4 nicht richtig.
    Also ein kleines Batch-file asuroterm.bat drumherum, welches mittels mode dieses Problem löst:
    Code:
    /cygdrive/c/ASURO_src/terminal
    $ cat asuroterm.bat
    mode com%1: baud=2400 parity=n data=8 stop=1
    terminal%1
    /cygdrive/c/ASURO_src/terminal
    Letzte (notwendige) Zutat ist natürlich cygwin1.dll, damit terminal?.exe auch unter Windows laufen kann. Alles zusammen ist als Attachement nur 720KB groß (die Linuxer können das Programm sicher selber übersetzen). Hier der Inhalt des .zip-files:
    Code:
    /cygdrive/c/ASURO_src/terminal
    $ unzip -l terminal.zip
    Archive:  terminal.zip
      Length     Date   Time    Name
     --------    ----   ----    ----
           58  05-30-07 20:17   terminal/asuroterm.bat
      1875258  05-30-07 22:00   terminal/cygwin1.dll
        11854  05-30-07 20:13   terminal/terminal1.exe
        11854  05-30-07 20:13   terminal/terminal2.exe
        11854  05-30-07 20:14   terminal/terminal4.exe
     --------                   -------
      1910730                   5 files
    /cygdrive/c/ASURO_src/terminal
    Der Aufruf für COM4 ist asuroterm 4 und liefert:
    Code:
    C:\ASURO_src\terminal\terminal>asuroterm 4
    
    C:\ASURO_src\terminal\terminal>mode com4: baud=2400 parity=n data=8 stop=1
    
    Status for device COM4:
    -----------------------
        Baud:            2400
        Parity:          None
        Data Bits:       8
        Stop Bits:       1
        Timeout:         OFF
        XON/XOFF:        OFF
        CTS handshaking: ON
        DSR handshaking: OFF
        DSR sensitivity: OFF
        DTR circuit:     ON
        RTS circuit:     HANDSHAKE
    
    
    C:\ASURO_src\terminal\terminal>terminal4
    
    -?
    call         C address [args]
    dump         D memtype range
    enter        E memtype address bytes
    return       R 1|2|4
    help         ?
    quit         Q
    address = 0000..01FF|1FFF|03FF  ; EEPROM/FLASH/SRAM
    arg     = 00..FF|0000..FFFF|00000000..FFFFFFFF
    args    = arg|arg args
    byte    = 00..FF
    bytes   = byte|byte bytes
    memtype = E|F|S                 ; EEPROM/FLASH/SRAM
    range   = address [address]
    -
    Wie gesagt, dies ist das "einfachste" Terminalprogramm, welches ich für den Asuro finden konnte, und es funktioniert sogar Plattformübergreifend ...

    <NACHTRAG>
    Und so sieht asuroterm richtig aus (mit blinkendem Cursor, der Output hinter dem '?' kommt vom Asuro):

    </NACHTRAG>

    Nun noch das Problem mit der Attachementgröße:
    Leider sind Attachements in diesem Forum auf 400KB begrenzt

    Also beinhaltet das Attachement NICHT die cygwin1.dll.

    Diese muß man sich selber holen, der Snapshot 2006-06-26 funktioniert, zu finden hier:
    http://cygwin.com/snapshots/
    Und hier zum direkten Download, nur 668KB, aber zum Preis des .bz2-Formats.

    Einen .bz2-Dekomprimierer für Windows findet man auf der bzip2 homepage:
    http://www.digistar.com/bzip2/

    Jetzt noch zwei Schritte:
    • Dekomprimieren der Datei cygwin1-20060622.dll.bz2 mittels bzip2-100-x86-win32.exe -d cygwin1-20060626.dll.bz2
    • Umbenennen zu cygwin1.dll und Kopieren in das Verzeichnis mit asuroterm.bat
    Uff, das war's!
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •