<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
    <link>http://forum.geizhals.at/feed.jsp?id=889098</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(5): Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7801033.html#7801033</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Ich verstehe zwar nicht warum, aber Hauptsache es funktioniert. &lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Wahrscheinlich liegt die Antwort im Detailverhalten bei mehreren Befehlen hintereinander und das kann bei einer anderen Implementierung wie erwartet funktionieren. &lt;br&gt;Zeilenenden, Whitespaces, NUL usw. sind immer gut für Probleme und Mehrdeutigkeiten bei Parsern. &lt;br/&gt;</description>
      <pubDate>Sat, 17 Jun 2017 20:06:29 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7801033.html#7801033</guid>
      <dc:creator>user86060</dc:creator>
      <dc:date>2017-06-17T20:06:29Z</dc:date>
    </item>
    <item>
      <title>Re(4): Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800959.html#7800959</link>
      <description>&lt;blockquote&gt;&lt;em&gt; Ich würde sicherheitshalber noch einmal mit so einer Konstruktion&lt;br&gt;cat &amp;lt; /dev/ttyUSB0 | tee raw.log | od .... | tee hexdump.log | sed&amp;nbsp;&amp;nbsp;... | tee&lt;br&gt;prefiltered.log | usw.&lt;br&gt;prüfen, ob da schon was im ersten Schritt verlorengeht oder ob sich da die&lt;br&gt;Pipe&lt;br&gt;verschluckt.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Tatsächlich... Im hexdump.log sind die Botschaften noch drin, nach dem mehrfachen sed sind sie weg.&lt;br&gt;Habe jetzt weiter debugged und siehe da, offenbar ist der letzte Teil vom sed, der die Botschaften mit den Geräte-IDs löschen soll, ursächlich. &lt;br&gt;&lt;br&gt;Gelöscht wird beispielsweise diese Zeile, die ich aber behalten möchte:&lt;br&gt;&lt;blockquote&gt;55 01 07 21 0f 24 11 06 11 7d 00&lt;/blockquote&gt;&lt;br&gt;Der schuldige Teil von sed ist&lt;br&gt;&lt;blockquote&gt;/00 08 01 f3/d;/00 0b f2/d;/00 09 01 f2/d;/00 0e 01 ed/d;/00 0c f1/d;/55 f0 00/d&lt;/blockquote&gt;&lt;br&gt;Der ganze Befehl lautet: &lt;br&gt;&lt;blockquote&gt;sed '/00 55/ s//00\n55/g;/00 08 01 f3/d;/00 0b f2/d;/00 09 01 f2/d;/00 0e 01 ed/d;/00 0c f1/d;/55 f0 00/d' -u&lt;/blockquote&gt;&lt;br&gt;Im ersten Teil mache ich nochmal bewusst Zeilenschaltungen, dann lösche ich die Botschaften. Wenn ich das nochmal auf 2 seds aufteile, klappt's komischerweise:&lt;br&gt;&lt;blockquote&gt;sed '/00 55/ s//00\n55/g' -u | sed '/00 08 01 f3/d;/00 0b f2/d;/00 09 01 f2/d;/00 0e 01 ed/d;/00 0c f1/d;/55 f0 00/d' -u&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Ich verstehe zwar nicht warum, aber Hauptsache es funktioniert. &lt;img src="crazy.gif" width="16" height="19" align="absmiddle" alt="%-)"/&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 17 Jun 2017 14:42:31 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800959.html#7800959</guid>
      <dc:creator>TheTrumpeter</dc:creator>
      <dc:date>2017-06-17T14:42:31Z</dc:date>
    </item>
    <item>
      <title>Re(3): Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800923.html#7800923</link>
      <description>&lt;blockquote&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;Zu Kontrollzwecken habe ich natürlich auch schon ungefiltert aus der Pipe&lt;br&gt;geschrieben und anschliessend mit Textverarbeitung "gefiltert". Auch da fehlen&lt;br&gt;schon die Botschaften, d.h. das anschliessende sed ist unschuldig.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Ich würde sicherheitshalber noch einmal mit so einer Konstruktion&lt;br&gt;&lt;br&gt;cat &amp;lt; /dev/ttyUSB0 | tee raw.log | od .... | tee hexdump.log | sed&amp;nbsp;&amp;nbsp;... | tee prefiltered.log | usw.&lt;br&gt;&lt;br&gt;prüfen, ob da schon was im ersten Schritt verlorengeht oder ob sich da die Pipe verschluckt.&lt;br&gt;&lt;br&gt;Danach überprüfen, was die Schnittstelle so macht bzw. herausfinden, was minicom anders macht (Baudrate und Buffer), als eine Pipe direkt aus /dev/ttyUSB0 = Detaileinstellungen von minicom nachlesen (wie initialisiert es die Schnittstelle?) &lt;br&gt;&lt;br&gt;Welcher USB-Adapter/Chip hängt denn dran? FTDI, Prolific, Silabs, CH34x? FTDI-Treiber sind um einiges mächtiger (auch wenn minicom da nicht speziell drauf eingeht) und haben debug-Möglichkeiten ( &lt;a href="http://ftdi-usb-sio.sourceforge.net/" rel="noopener" target="_blank"&gt;http:/&lt;wbr/&gt;/&lt;wbr/&gt;ftdi-usb-sio.sourceforge.net/&lt;wbr/&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;).&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Sat, 17 Jun 2017 11:56:11 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800923.html#7800923</guid>
      <dc:creator>user86060</dc:creator>
      <dc:date>2017-06-17T11:56:11Z</dc:date>
    </item>
    <item>
      <title>Re(2): Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800899.html#7800899</link>
      <description>&lt;blockquote&gt;&lt;em&gt; dein Input ist ASCII-Text und du filterst mit ein und demselben pattern&lt;br&gt;entweder das minicom-Log&lt;br&gt;ODER den od-hexdump?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Minicom habe ich auf Hex-Anzeige umgestellt, damit filter ich immer dasselbe Format.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Sind deine Daten zeilenorierentiert oder ein Stream ohne Zeilensprünge?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Letzteres.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Poste mal ein paar Zeilen von beiden Quellen.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;So sieht das Minicom-Capture aus:&lt;br&gt;&lt;blockquote&gt;3 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 &lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Und so sieht's direkt mit od in der Pipe gelesen aus:&lt;br&gt;&lt;blockquote&gt; 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00&lt;br&gt; 55 03 03 00 0c f1 00 20 01 f3 00 55 01 04 00 0e&lt;br&gt; 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1&lt;br&gt; 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00&lt;br&gt; 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00&lt;br&gt; 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01&lt;br&gt; f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04&lt;br&gt; 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 32&lt;br&gt; 04 c7 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00&lt;br&gt; 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02&lt;br&gt; 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00&lt;br&gt; 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55&lt;br&gt; 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03&lt;br&gt; 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00&lt;br&gt; 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00&lt;br&gt; 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04&lt;br&gt; 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3&lt;br&gt; 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00&lt;br&gt; 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55&lt;/blockquote&gt;&lt;br&gt;(Sind natürlich unterschiedliche Schnipsel, Minicom ist von gestern Abend, od von gerade eben.)&lt;br&gt;&lt;br&gt;Im ersten Schritt ersetze ich mit sed jedes Vorkommen von "00 55" durch "00\n55", weil jede Botschaft mit 00 endet und mit 55 beginnt. Anschliessend lösche ich nochmal alle Zeilenschaltungen, weil durch die Pipe-Ausgabe immer am Zeilenende automatisch Zeilenschaltungen gemacht werden, die ich nicht will/brauche. Danach nochmal das erste Kommando, dann habe ich jede Botschaft in einer separaten Zeile.&lt;br&gt;&lt;blockquote&gt;sed 's/\n//g;s/00 55/00\n55/g' | sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' | sed 's/00 55/00\n55/g'&lt;/blockquote&gt;&lt;br&gt;Danach filtere ich noch die Botschaften mit den Geräte-IDs weg, weil ich nur die "echten Botschaften" brauche. Zum Schluss setze ich vor jede Zeile noch den aktuellen Zeitstempel. &lt;br&gt;Alle sed-Kommandos laufen mit Option -u, damit der Stream sofort gefiltert wird. (Deshalb das wirre Konstrukt mit dem doppelten "s/00 55/00\n55/g".)&lt;br&gt;&lt;br&gt;Ich habe gestern Abend begonnen mit Minicom ein Capture aufzuzeichnen und das gerade mit derselben sed-Pipe von oben gefiltert. &lt;br&gt;Das Ergebnis ist makellos, es scheinen keine Botschaften zu fehlen. (Eines der Geräte auf dem Bus überträgt jede Minute die akuelle Uhrzeit. Lese ich direkt in der Pipe mit od, fehlen immer wieder einzelne dieser Botschaften, mal alle paar Minuten, mal 1-2x pro Stunde. Im Minicom-Output sind seit gestern Abend alle Minuten drin.)&lt;br/&gt;</description>
      <pubDate>Sat, 17 Jun 2017 10:58:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800899.html#7800899</guid>
      <dc:creator>TheTrumpeter</dc:creator>
      <dc:date>2017-06-17T10:58:12Z</dc:date>
    </item>
    <item>
      <title>Re(2): Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800903.html#7800903</link>
      <description>&lt;blockquote&gt;&lt;em&gt; dein Input ist ASCII-Text und du filterst mit ein und demselben pattern&lt;br&gt;entweder das minicom-Log&lt;br&gt;ODER den od-hexdump?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Minicom habe ich auf Hex-Anzeige umgestellt, damit filter ich immer dasselbe Format.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Sind deine Daten zeilenorierentiert oder ein Stream ohne Zeilensprünge?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Letzteres.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Poste mal ein paar Zeilen von beiden Quellen.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;So sieht das Minicom-Capture aus:&lt;br&gt;&lt;blockquote&gt;3 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 &lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Und so sieht's direkt mit od in der Pipe gelesen aus:&lt;br&gt;&lt;blockquote&gt; 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00&lt;br&gt; 55 03 03 00 0c f1 00 20 01 f3 00 55 01 04 00 0e&lt;br&gt; 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1&lt;br&gt; 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00&lt;br&gt; 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00&lt;br&gt; 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01&lt;br&gt; f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04&lt;br&gt; 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 32&lt;br&gt; 04 c7 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00&lt;br&gt; 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02&lt;br&gt; 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00&lt;br&gt; 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55&lt;br&gt; 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03&lt;br&gt; 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00&lt;br&gt; 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00&lt;br&gt; 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04&lt;br&gt; 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3&lt;br&gt; 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00&lt;br&gt; 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55&lt;/blockquote&gt;&lt;br&gt;(Sind natürlich unterschiedliche Schnipsel, Minicom ist von gestern Abend, od von gerade eben.)&lt;br&gt;&lt;br&gt;Im ersten Schritt ersetze ich mit sed jedes Vorkommen von "00 55" durch "00\n55", weil jede Botschaft mit 00 endet und mit 55 beginnt. Anschliessend lösche ich nochmal alle Zeilenschaltungen, weil durch die Pipe-Ausgabe immer am Zeilenende automatisch Zeilenschaltungen gemacht werden, die ich nicht will/brauche. Danach nochmal das erste Kommando, dann habe ich jede Botschaft in einer separaten Zeile.&lt;br&gt;&lt;blockquote&gt;sed 's/\n//g;s/00 55/00\n55/g' | sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' | sed 's/00 55/00\n55/g'&lt;/blockquote&gt;&lt;br&gt;Danach filtere ich noch die Botschaften mit den Geräte-IDs weg, weil ich nur die "echten Botschaften" brauche. Zum Schluss setze ich vor jede Zeile noch den aktuellen Zeitstempel. &lt;br&gt;Alle sed-Kommandos laufen mit Option -u, damit der Stream sofort gefiltert wird. (Deshalb das wirre Konstrukt mit dem doppelten "s/00 55/00\n55/g".)&lt;br&gt;&lt;br&gt;Ich habe gestern Abend begonnen mit Minicom ein Capture aufzuzeichnen und das gerade mit derselben sed-Pipe von oben gefiltert. &lt;br&gt;Das Ergebnis ist makellos, es scheinen keine Botschaften zu fehlen. (Eines der Geräte auf dem Bus überträgt jede Minute die akuelle Uhrzeit. Lese ich direkt in der Pipe mit od, fehlen immer wieder einzelne dieser Botschaften, mal alle paar Minuten, mal 1-2x pro Stunde. Im Minicom-Output sind seit gestern Abend alle Minuten drin.)&lt;br&gt;&lt;br&gt;&lt;br&gt;EDIT: Zu Kontrollzwecken habe ich natürlich auch schon ungefiltert aus der Pipe geschrieben und anschliessend mit Textverarbeitung "gefiltert". Auch da fehlen schon die Botschaften, d.h. das anschliessende sed ist unschuldig.&lt;br/&gt;</description>
      <pubDate>Sat, 17 Jun 2017 10:58:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800903.html#7800903</guid>
      <dc:creator>TheTrumpeter</dc:creator>
      <dc:date>2017-06-17T10:58:12Z</dc:date>
    </item>
    <item>
      <title>Re(2): Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800904.html#7800904</link>
      <description>&lt;blockquote&gt;&lt;em&gt; dein Input ist ASCII-Text und du filterst mit ein und demselben pattern&lt;br&gt;entweder das minicom-Log&lt;br&gt;ODER den od-hexdump?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Minicom habe ich auf Hex-Anzeige umgestellt, damit filter ich immer dasselbe Format.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Sind deine Daten zeilenorierentiert oder ein Stream ohne Zeilensprünge?&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;Letzteres.&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;em&gt; Poste mal ein paar Zeilen von beiden Quellen.&lt;br&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br&gt;So sieht das Minicom-Capture aus:&lt;br&gt;&lt;blockquote&gt;3 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 &lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Und so sieht's direkt mit od in der Pipe gelesen aus:&lt;br&gt;&lt;blockquote&gt; 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00&lt;br&gt; 55 03 03 00 0c f1 00 20 01 f3 00 55 01 04 00 0e&lt;br&gt; 01 ed 00 55 02 03 00 0b f2 00 55 03 03 00 0c f1&lt;br&gt; 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00 04 00&lt;br&gt; 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02 03 00&lt;br&gt; 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00 09 01&lt;br&gt; f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55 01 04&lt;br&gt; 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03 03 32&lt;br&gt; 04 c7 00 55 04 04 00 09 01 f2 00 55 f0 00 55 00&lt;br&gt; 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00 55 02&lt;br&gt; 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04 04 00&lt;br&gt; 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3 00 55&lt;br&gt; 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00 55 03&lt;br&gt; 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55 f0 00&lt;br&gt; 55 00 04 00 08 01 f3 00 55 01 04 00 0e 01 ed 00&lt;br&gt; 55 02 03 00 0b f2 00 55 03 03 00 0c f1 00 55 04&lt;br&gt; 04 00 09 01 f2 00 55 f0 00 55 00 04 00 08 01 f3&lt;br&gt; 00 55 01 04 00 0e 01 ed 00 55 02 03 00 0b f2 00&lt;br&gt; 55 03 03 00 0c f1 00 55 04 04 00 09 01 f2 00 55&lt;/blockquote&gt;&lt;br&gt;(Sind natürlich unterschiedliche Schnipsel, Minicom ist von gestern Abend, od von gerade eben.)&lt;br&gt;&lt;br&gt;Im ersten Schritt ersetze ich mit sed jedes Vorkommen von "00 55" durch "00\n55", weil jede Botschaft mit 00 endet und mit 55 beginnt. Anschliessend lösche ich nochmal alle Zeilenschaltungen, weil durch die Pipe-Ausgabe immer am Zeilenende automatisch Zeilenschaltungen gemacht werden, die ich nicht will/brauche. Danach nochmal das erste Kommando, dann habe ich jede Botschaft in einer separaten Zeile.&lt;br&gt;&lt;blockquote&gt;sed '/00 55/ s//00\n55/g' -u | sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' -u | sed '/00 55/ s//00\n55/g'&lt;/blockquote&gt;&lt;br&gt;Danach filtere ich noch die Botschaften mit den Geräte-IDs weg, weil ich nur die "echten Botschaften" brauche. Zum Schluss setze ich vor jede Zeile noch den aktuellen Zeitstempel. &lt;br&gt;Alle sed-Kommandos laufen mit Option -u, damit der Stream sofort gefiltert wird. (Deshalb das wirre Konstrukt mit dem doppelten "s/00 55/00\n55/g".)&lt;br&gt;&lt;br&gt;Ich habe gestern Abend begonnen mit Minicom ein Capture aufzuzeichnen und das gerade mit derselben sed-Pipe von oben gefiltert. &lt;br&gt;Das Ergebnis ist makellos, es scheinen keine Botschaften zu fehlen. (Eines der Geräte auf dem Bus überträgt jede Minute die akuelle Uhrzeit. Lese ich direkt in der Pipe mit od, fehlen immer wieder einzelne dieser Botschaften, mal alle paar Minuten, mal 1-2x pro Stunde. Im Minicom-Output sind seit gestern Abend alle Minuten drin.)&lt;br&gt;&lt;br&gt;&lt;br&gt;EDIT: Zu Kontrollzwecken habe ich natürlich auch schon ungefiltert aus der Pipe geschrieben und anschliessend mit Textverarbeitung "gefiltert". Auch da fehlen schon die Botschaften, d.h. das anschliessende sed ist unschuldig.&lt;br/&gt;</description>
      <pubDate>Sat, 17 Jun 2017 10:58:12 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800904.html#7800904</guid>
      <dc:creator>TheTrumpeter</dc:creator>
      <dc:date>2017-06-17T10:58:12Z</dc:date>
    </item>
    <item>
      <title>Re: Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800773.html#7800773</link>
      <description>Verstehe ich jetzt nicht ganz: &lt;br&gt;dein Input ist ASCII-Text und du filterst mit ein und demselben pattern entweder das minicom-Log&lt;br&gt;ODER den od-hexdump? Also ohne im Vergleich das minicom-log durch od zu pipen und auf gleiche&lt;br&gt;Zeilenlänge/Blockung zu schauen???&lt;br&gt;&lt;br&gt;Sind deine Daten zeilenorierentiert oder ein Stream ohne Zeilensprünge?&lt;br&gt;&lt;br&gt;Poste mal ein paar Zeilen von beiden Quellen.&lt;br&gt;&lt;br&gt;Mit der Priorität der beteiligten Programme hat es jedenfalls nichts zu tun, für den "backpressure" &lt;br&gt;bzw. Pufferung ist die Pipe zuständig - einzig: wenn dein serielles Gerät, wie heute üblich, seine &lt;br&gt;Daten ohne flow control liefert, könnten schon welche verlorengehen, bei höheren Datenraten&lt;br&gt;(&gt;&gt;115kb).&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Fri, 16 Jun 2017 20:56:35 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800773.html#7800773</guid>
      <dc:creator>user86060</dc:creator>
      <dc:date>2017-06-16T20:56:35Z</dc:date>
    </item>
    <item>
      <title>Minicom-Output bei Laufzeit filtern bzw. serielle Schnittstelle filtern</title>
      <link>http://forum.geizhals.at/t889098,7800758.html#7800758</link>
      <description>Ich möchte den Datenverkehr der seriellen Schnittstelle mitlauschen und bei Laufzeit (bzw. zumindest alle paar Sekunden) filtern. Die gefilterten Informationen sollen in eine Datei geschrieben werden.&lt;br&gt;&lt;br&gt;Ich habe versucht direkt von der seriellen Schnittstelle mit "od" in hexadezimal umzuwandeln und dann mittels sed zu filtern. Leider verliere ich da immer wieder Botschaften, nur weiss ich nicht warum. &lt;br&gt;Mein Kommando lautet &lt;br&gt;&lt;blockquote&gt;od -tx1 -An &amp;lt; /dev/ttyUSB0 | sed 'bla bla bla' &lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;sed ist nicht die Ursache für den Datenverlust, denn auch im ungefilterten Mitschnitt fehlen die Botschaften bereits. &lt;br&gt;Ich habe versucht die Priorität von od raufzusetzen, aber das bringt gar nichts.&lt;br&gt;&lt;br&gt;&lt;br&gt;Wenn ich hingegen den Datenverkehr mit Minicom logge und die Log-Datei danach filtere, sind die Botschaften da. &lt;br&gt;Hier mache ich zuerst&lt;br&gt;&lt;blockquote&gt;minicom -w -C bla.log&lt;/blockquote&gt;&lt;br&gt;und anschliessend &lt;br&gt;&lt;blockquote&gt;cat bla.log | sed 'bla bla bla'&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Natürlich könnte ich einen cron-job einrichten, der die Log-Datei aus minicom nachträglich filtert, aber das gefällt mir nicht.&lt;br&gt;&lt;br&gt;Gesucht ist also eine Alternative zu minicom, mit dem ich das Filtern vor der Ausgabe in die Datei hinkriege oder ein Shell-Befehl, mit dem ich keine Botschaften verliere.&lt;br&gt;&lt;br&gt;Habe seit 15 Jahren nichts mehr mit Linux gemacht, deshalb bin ich für jeden Tipp dankbar. &lt;br/&gt;</description>
      <pubDate>Fri, 16 Jun 2017 20:07:13 GMT</pubDate>
      <guid>http://forum.geizhals.at/t889098,7800758.html#7800758</guid>
      <dc:creator>TheTrumpeter</dc:creator>
      <dc:date>2017-06-16T20:07:13Z</dc:date>
    </item>
  </channel>
</rss>
