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
Selbst auslesen (File oder UART/COM), den Punkt suchen, zwei Zeichen weiter ist deine Zahl zuende. Im eigenen Programm kannst die Antworten auch einzelnd in ein Array schieben (nach Konvertierung in Zahlen), wenn du pro Anfrage nur eine Antwort bekommst.
:
Bearbeitet durch User
> Im eigenen Programm kannst...
Leider kann ICH nicht :(
Da fehlen mir die Kenntnisse in der Programmierung, sry
Karls Q. schrieb: > Leider kann ICH nicht :( Und wie soll das denn gehen ohne Random .. schrieb: > Im eigenen Programm ? Gruss Chregu
Ich hatte gehofft, dass es doch noch eine Funktion in Hterm/ tera term gibt, um die Daten, so wie man sie sieht, auch abspeichern kann. Gruß
Du kannst die Werte als ASCII-Datei abspeichern und mit notepad++ weiterverarbeiten (Makro: finde Punkt, 2x Cursor rechts, setze \n bds. \r\n ein)
Und was passiert, wenn Du Deinem Sensor etwas anderes als die "9" sendest? Vielleicht gibt der dann ja was sinnvoll als Trennzeichen verwendbares aus; was steht denn in dessen Dokumentation?
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.
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
:
Bearbeitet durch User
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.
In Hterm kannst du doch auch Zeitstempel in die logdatei einfügen lassen. Neben save gibt es ein Drop down Menü...
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
Hmkay, das liegt dann wohl an deinem Sender. Dann empfehle ich Python und Pyserial.
das ist zwar geany und nicht notepad++, aber ich bin mir zu 99.9% sicher, dass es suchen/ersetzen mit regex auch in notepad++ gibt. alternativ geany für windows.
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.
> 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
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...
@Thosch Tool gerade getestet und ich bin begeistert! Danke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.