Serielle Schnittstelle vom Terminal aus ansprechen?

Dieses Thema im Forum "Mac OS - Unix & Terminal" wurde erstellt von hairyguy, 18.03.2008.

  1. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Moin UNIX-Auskenner!

    Ich würde gern an die serielle Schnittstelle (also zB Device "/dev/serial0") ein "%"-Zeichen schicken und die Zeile, die dann zurückgesendet wird, an eine Datei anhängen, und das so oft, bis auf das "%" nichts mehr zurückkommt. Dazu muss eventuell vorher die serielle Schnittstelle noch auf 9600baud, no parity, also der ganze Standard-Schnack, eingestellt werden.

    Kann mir da jemand weiterhelfen? Schonmal Dank im Voraus!
     
  2. aXon

    aXon MacUser Mitglied

    Beiträge:
    727
    Zustimmungen:
    37
    Mitglied seit:
    04.01.2004
    es gibt minicom, was sich einfach per fink installieren lässt und die genannten einstellungsmöglichkeiten bietet. ist auch das was ich zZ verwende.
    dann noch c-kermit, was noch mehr als nur serielle schnittstellen unterstützt, aber selber noch nicht getestet.
    oder ZTerm, eine etwas betagtere PPC version, die sich zumindest starten lässt auf einem intel mac mit 10.5.2, auch noch nicht getestet von mir.
     
  3. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Genannte Terminal-Programme sind mir bekannt, mir geht es jedoch um einen automatischen Ablauf der genannten Funktion, möglichst als Shell-Script oder in Perl oder sowas. Ich will einfach ein Script starten, welches ein Gerät ausliest und eine entsprechende Datei um die gelesenen Zeilen erweitert, ohne selbst eine Eingabe machen zu müssen. Da ich mich leider mit *nix kaum auskenne, weiß ich nicht so recht, wie ich das realisieren soll, bin mir aber ziemlich sicher, dass ein *nixer das in Sekunden formulieren kann.
     
  4. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.715
    Zustimmungen:
    602
    Mitglied seit:
    24.09.2003
    Es gibt ein Perl Modul: Device::SerialPort
    Ich nehme mal an, das könnte Dir helfen.
    Alternativ kommst Du vielleicht mit expect weiter (s. 'man expect')
     
  5. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Sehe erst jetzt deine Antwort, maceis, sorry. Sag mal, könnte man denn nicht einfach mittels Pipe-Zeichen oder so ein Zeichen an ein Device schicken und die Antwort vom Device an eine Textdatei anhängen, und das ganze in einer Schleife so lange, bis keine Antwort mehr kommt?
     
  6. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.715
    Zustimmungen:
    602
    Mitglied seit:
    24.09.2003
    Probier's halt aus und schau was passiert ;).
     
  7. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Also einfach schreiben:

    "%" > /dev/serial0 > Textdatei.txt

    ?? Aber wie an die Datei anhängen als letzte Zeile? Sind die Anführungszeichen und die > richtig so?

    (Wie schon im Ausgangsposting gesagt: Ich bin Unix-Nixkenner...)
     
  8. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.715
    Zustimmungen:
    602
    Mitglied seit:
    24.09.2003
    Sagtest Du nicht etwas von Pipe Zeichen?
    Ich seh' in Deinem Kommando kein Pipe-Zeichen.
    Als letzte Zeile Anhängen geht mit '>>'. Mit '>' wird die Datei jedesmal überschrieben.
    außerdem ist "%" kein Kommando.

    Also wenn überhaupt, dann müsste das so aussehen:
    Code:
    echo "%" | /dev/serial0 >> Textdatei.txt
    Ausgehend von der Voraussetzung, dass '/dev/serial0' die Gerätedatei für die serielle Schnittstelle ist. Ich habe da aber so meine Zweifel, ob das funktioniert. Aber "Versuch macht kluch" ;). Zum Ausprobieren würde ich mal auf die Umleitung in eine Datei verzichten und sehen, was am terminal passiert.
     
  9. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Ah siehst du, genau dieses "Syntax-Fachwissen" ;) hat mir gefehlt! Vielen Dank dafür und ich werde berichten!
     
  10. hairyguy

    hairyguy Thread Starter MacUser Mitglied

    Beiträge:
    1.013
    Zustimmungen:
    14
    Mitglied seit:
    06.12.2004
    Mm, anscheinend muss auf das |-Zeichen auch ein Command folgen und nicht bloß eine Datei oder Device? Ich bekomme nämlich die Fehlermeldung:

    /dev/serial0: Command not found.

    Und ja, anstelle "serial0" steht dort die (lange) Bezeichnung des Serial-Devices.
     
Die Seite wird geladen...

Diese Seite empfehlen