Serielle Daten ohne Trennzeichen auftrennen

OP #5452517
Lesenswert?

Hallo,

ich habe hier einen Kraftmesser, dessen Daten ich mit einer seriellen 
Schnittstelle (COM-Port) auslesen kann.

Dafür muss man eine "9" als Ascii senden und zurück kommen die Daten.

Das sieht dann so aus
1010.12 entspricht +10,12N
0010.12 entspricht -10,12N

Soweit sogut...

Dummerweise werden die Daten ohne Trennung hintereinander weg gesendet 
bei mehrfachabfrage.
Das sieht dann so aus:
1010.121010.121010.121010.121010.121010.121010.12

In HTerm kann ich mir die Daten untereinander schreiben lassen, indem 
ich eine feste Zeilenlänge (7) angebe oder nach Zeit gehe.

Doch leider werden die Daten nicht so abgespeichert wie ist sie dann 
sehe, sondern hängen wieder wie oben aneinander.

Gibt es eine Möglichkeit dies zu trennen, zb durch ein \n nach 7 
Zeichen?

Hab auch schon Tera Term probiert, aber da habe ich kein Macro 
hinbekommen.

Gruß
Johannes
OP #5452651
Lesenswert?

Rufus Τ. F. schrieb:
> Und was passiert, wenn Du Deinem Sensor etwas anderes als die "9"
> sendest?

Habe alle Zahlen und Buchstaben durch. Er sendet nur bei der "9"

> Vielleicht gibt der dann ja was sinnvoll als Trennzeichen verwendbares
> aus; was steht denn in dessen Dokumentation?

In der Doku steht leider auch nicht mehr, nur die 
Schnittstellenparameter, der Sendebefehl und wie die Antwort zu deuten 
ist.

Es gibt auch keine Möglichkeit im Menü was umzustellen.
OP #5452715
Lesenswert?

So habs über eine Krücke, ähnlich wie bingo gesagt, über notepad++ 
geschafft.

Hab die Datei mit Notepad++ gehöffnet, die Makro-Aufzeichnung gestartet, 
den Cursor über die Pfeiltasten an die richtige Position gesetzt, einmal 
Enter gedrückt und die Aufzeichnung beendet.
Danach habe ich das Makro 1000 mal ausführen lassen und schon standen 
die Werte alle schön untereinander.

Das geht natürlich nur, wenn alle Werte gleich lang sind.

Danke für die Hilfe
Moderator #5452739
Lesenswert?

Falls du sed installiert hast (sollte eigentlich jeder haben ;-)), hilft
evtl. dieses Kommando in der Konsole:

1
sed 's/\(\...\)/\1\n/g' COMx

Es fügt jeweils nach der Zeichenfolge ".xx" einen Zeilenvorschub ein.
Vorher musst du mit MODE noch die richtigen Schnittstellenparameter
einstellen.
OP #5452811
Lesenswert?

Hauke Haien schrieb:
> In Hterm kannst du doch auch Zeitstempel in die logdatei einfügen
> lassen.
> Neben save gibt es ein Drop down Menü...

Ja das stimmt, aber hast du das mal ausprobiert?

Das sieht dann für 1010.12 etwa so aus:

1 [Zeitstempel]
0 [Zeitstempel]
10 [Zeitstempel]
. [Zeitstempel]
12 [Zeitstempel]

Also nicht zu gebrauchen!

Tera Term macht das besser, indem es nur hinter jedes \n einen Stempel 
setzt
Gast #5452883
Lesenswert?

In HTERM gibts doch die schöne Option
"Newline after ... ms"

Da stellst Du einfach einen Wert ein, der groß genug ist daß nur 
zwischen den Antworten ein Newline eingefügt wird, also z.B. 50ms.

mit dem ASEND Button kannst du dann noch die "9" z.B. alle 250ms senden,
dann sollten sich die Antworten im Terminalfenstre hübsch untereinander 
einsortieren, immer eine Antwort pro Zeile.
OP #5452950
Lesenswert?

> In HTerm kann ich mir die Daten untereinander schreiben lassen, indem
> ich eine feste Zeilenlänge (7) angebe oder nach Zeit gehe.

@Tosch: Schaust du oben in meinen Post, da habe ich das beschrieben. 
Habe das also schon ausprobiert. Allerdings fügt der da kein Newline 
ein, sondern sortiert das nur am Bildschirm. Speicher ich die Datei ab, 
ist wieder alles hintereinander
Gast #5452976
Lesenswert?

Upps, stimmt.
HTerm hat da leider ein Defizit, die eingefügten LineFeeds per Anzahl 
Zeichen und Timeout tun nur auf dem Bildschirm.

Mit ScriptCommunicator (05.08) tut's, da kann man in unter
Settings | log options
ein Logfile eintragen und einen Wert für
"new line after ms pause" eintragen. Der machts dann nur im LogFile 
und nicht auf dem Bildschirm ;-)

Sollte genau das leisten, was du wolltest.

achja, unter den "log options" im Feld "general" den Haken bei "send"
rausnehmen, sonst schreibt er die neuner die er sendet mit ins Logfile.

Der ScriptCommunicator ist ein Projekt auf Sourceforge:
https://sourceforge.net/projects/scriptcommunicator/

Das ist ein unglaublich mächtiges Tool...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren