Ergebnis 1 bis 5 von 5
  1. #1
    Alkmene
    Themenstarter

    Registriert
    12.2009
    Beiträge
    30

    Serielle Schnittstelle in Datei umleiten

    Hallo zusammen. Ich möchte gerne die empfangenen Daten von einer RS232 Schnittstelle in eine Datei umleiten.
    Umgesetzt habe ich es folgendermaßen: cat /dev/ttyS0 > datei.txt
    Alles soweit so gut. Was mich nun stört ist, das jeder empfangene String der Datei hinzugefügt wird und die Datei damit ständig wächst. Ich möchte eig das immer nur eine Zeile in der Datei steht und diese durch ein neu empfangenen String immer überschrieben wird.

    Kann mir jemand helfen?

  2. #2
    Charlamowsky Avatar von Rastafari
    Registriert
    03.2005
    Beiträge
    12.966
    Ein Mac mit OS X und RS-232 Port? Du machst gerne Insider-Witze?

    Mit simplen Shellbefehlen wird das überraschend kniffelig.
    Was kömmt denn über die serielle rein? 7-bittiges ASCII oder 8-bittige Binärdaten? Undefiniert vielleicht?

  3. #3
    Alkmene
    Themenstarter

    Registriert
    12.2009
    Beiträge
    30
    Das ganze ist ein Debian-Derivat auf einem Embedded System.
    Zu Testzwecken habe ich einfach über Hyperterm beliebige ASCII-Strings über RS232 verschickt.
    Ich möchte eben einfach das jeder empfange String den vorherigen in der Datei überschreibt.

    > dieser Umleitungsoperator ist doch genau dafür gedacht, im Gegensatz zu >>

    Warum geht es trotzdem nicht?

  4. #4
    Alkmene
    Themenstarter

    Registriert
    12.2009
    Beiträge
    30
    Kann mir keiner helfen?
    Brauche die Sache dringend.

  5. #5
    Charlamowsky Avatar von Rastafari
    Registriert
    03.2005
    Beiträge
    12.966
    Zitat Zitat von olnol Beitrag anzeigen
    > dieser Umleitungsoperator ist doch genau dafür gedacht, im Gegensatz zu >>
    Warum geht es trotzdem nicht?
    Weil der bestehende Inhalt der Datei erst dann durch > überschrieben wird, sobald du sie erneut öffnest.
    Du hältst sie jedoch die ganze Zeit offen. Hereinkommende Daten werden damit bis in alle Ewigkeit nur hinten angefügt.

    Du solltest erst mal klarstellen, welche Datentypen du damit verarbeiten willst. Es macht einen gewaltigen Unterschied, ob das mit "Newlines" separierte Textzeilen einer Unix Maschine, mit CR/LF terminierte Textzeilen einer DOS/Win Maschine, mit NUL-Bytes terminierte "C-Strings" oder vielleicht sogar nur "unsepariert" hereinkommende Datenpakete von immer wieder fester Grösse sind, die da mal an der Schnittstelle reinpurzeln werden. Oder vielleicht auch so was *richtig* exotisches wie die Kommunikation mit einem Modem, gesteuert durch Start/Stop-Bits und bestimmten vordefinierten, speziellen Zeichen-Sequenzen... die Möglichkeiten wie diese Daten strukturiert sein können sind schier unendlich, und alles davon wird irgendwo für irgendwas über solche Ports verwendet.
    Danach muss man sich die passende Methode wählen um herauszufinden, wo genau deine "letzte Zeile" überhaupt beginnt und endet. Was du zu "Testzwecken" benutzt muss im finalen Einsatz nicht unbedingt das passende sein. Stimmt das nicht überein, ist die ganze Mühe für die Katz.

    Ausserdem habe ich sowieso nicht den geringsten Dunst, was dir auf diesem Embedded-System überhaupt an installierten Tools und Features zur Verfügung steht, das machts doppelt spannend.
    Hilfst du mir bitte etwas dabei, dir helfen zu können?
    Also: Wer oder was genau ist der Absender dieser Daten? Ein bestimmtes Stück recht spezieller Peripherie-Hardware vielleicht, oder möchtest du das direkt an den gleichartigen Port eines PC koppeln?
    Beschreib doch mal in einem einigermassen nachvollziehbaren Aufriss, was du dir da eigentlich zusammenbasteln möchtest, und mit welchen Mitteln.

Berechtigungen

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