Daten von serieller Schnittstelle mitschreiben?
Verfasst: Sa 5. Dez 2015, 09:07
Hallöchen!
Folgender Sachverhalt: Ich habe hier ein Funkmodul, was per serieller Schnittstelle (9600 oder 115200 Baud, Kein Handshake) konfiguriert und abgefragt werden kann. Man hängt sich einfach per HyperTerminal (ja, ich weiß - das ist nicht unter DOS) drauf, tippt den Befehl ein, schließt in mit ENTER ab und man erhält 'ne Antwort. Soweit so einfach.
Nun bietet mir das Modul einige Diagnosemöglichkeiten über diese Befehle. So kann ich mir beispielsweise die Uhrzeit mit einem Befehl ausgeben lassen - oder die Empfangspegel. Der Befehl für den Empfangspegel unterscheidet sich etwas von den normalen Befehlen, denn tippt man ihn einmal ein, so erhält man kontinuierlich den aktuellen Pegel ausgegeben, ohne, dass ein neuer Befehl gesendet werden müsste. Das passiert solange, bis man einen weiteren Befehl sendet.
Jetzt würde ich gerne eben diese Ausgaben mitschneiden wollen, um bspw. mal 'n Diagramm draus zu bauen. Leider fehlen dazu aber Uhrzeit-Angaben. Nun wäre meine Idee folgende:
Programm sendet Befehl "Ausgabe Uhrzeit" an die Serielle Schnittstelle und wartet die Antwort ab. Die Antwort wird in 'ne Datei geschrieben. Danach sendet das Programm den Befehl "Ausgabe Empfangspegel" an das Modul und zeichnet wiederum die Antworten in der selben Datei auf (ohne die bisherigen Daten zu überschreiben, jede empfangene Zeile mit 'nem Zeilenvorschub beenden). Nach einiger Zeit (5...10 Sekunden) schickt das Programm den Befehl "Ausgabe Empfangspegel beenden" an das Modul - und es herrscht Ruhe. Nach einer einstellbaren Zeit beginnt das Ganze wieder von vorn. Optional wäre noch, dass bspw. nach einem Tag oder so eine neue Datei angelegt wird, die dann auch 'nen automatisch generierten Namen hätte.
Wie ließe sich sowas umsetzen? Ließe sich sowas vielleicht sogar als Batch-Datei realisieren? Wen es programmiertechnisch Richtung Hochsprache geht, hätte ich Turbo Pascal 6.0 und 7.0 hier - wobei es bei 6.0 wimre die Probleme mit schnelleren Rechnern gab (ab 200 MHz oder was das war). Bei 7.0 weiß ich nicht, ob der Fehler da vorhanden ist. Mit rudimentären Basic- oder C-Kenntnissen könnte ich auch aufwarten - meine Pascal-Kenntnisse sind aber auch nicht sonderlich toll. Ich habe aber keine Entwicklungsumgebung für Basic/C unter DOS hier, nur für Windows (MS Visual Studio ab 2003), bei denen man selbstlauffähige Programme schreiben kann. Eine Lösung, die auch unter Windows 2000 und neuer im CMD-Fenster liefe, wäre ganz prima - wenn es eine reine DOS-Lösung ist, ist das aber auch nicht schlimm. Einen alten DOS-Rechner finde ich dafür sicher auch :)
Hat jemand eine Idee, wie das umzusetzen sein könnte?
Besten Dank schonmal!
Folgender Sachverhalt: Ich habe hier ein Funkmodul, was per serieller Schnittstelle (9600 oder 115200 Baud, Kein Handshake) konfiguriert und abgefragt werden kann. Man hängt sich einfach per HyperTerminal (ja, ich weiß - das ist nicht unter DOS) drauf, tippt den Befehl ein, schließt in mit ENTER ab und man erhält 'ne Antwort. Soweit so einfach.
Nun bietet mir das Modul einige Diagnosemöglichkeiten über diese Befehle. So kann ich mir beispielsweise die Uhrzeit mit einem Befehl ausgeben lassen - oder die Empfangspegel. Der Befehl für den Empfangspegel unterscheidet sich etwas von den normalen Befehlen, denn tippt man ihn einmal ein, so erhält man kontinuierlich den aktuellen Pegel ausgegeben, ohne, dass ein neuer Befehl gesendet werden müsste. Das passiert solange, bis man einen weiteren Befehl sendet.
Jetzt würde ich gerne eben diese Ausgaben mitschneiden wollen, um bspw. mal 'n Diagramm draus zu bauen. Leider fehlen dazu aber Uhrzeit-Angaben. Nun wäre meine Idee folgende:
Programm sendet Befehl "Ausgabe Uhrzeit" an die Serielle Schnittstelle und wartet die Antwort ab. Die Antwort wird in 'ne Datei geschrieben. Danach sendet das Programm den Befehl "Ausgabe Empfangspegel" an das Modul und zeichnet wiederum die Antworten in der selben Datei auf (ohne die bisherigen Daten zu überschreiben, jede empfangene Zeile mit 'nem Zeilenvorschub beenden). Nach einiger Zeit (5...10 Sekunden) schickt das Programm den Befehl "Ausgabe Empfangspegel beenden" an das Modul - und es herrscht Ruhe. Nach einer einstellbaren Zeit beginnt das Ganze wieder von vorn. Optional wäre noch, dass bspw. nach einem Tag oder so eine neue Datei angelegt wird, die dann auch 'nen automatisch generierten Namen hätte.
Wie ließe sich sowas umsetzen? Ließe sich sowas vielleicht sogar als Batch-Datei realisieren? Wen es programmiertechnisch Richtung Hochsprache geht, hätte ich Turbo Pascal 6.0 und 7.0 hier - wobei es bei 6.0 wimre die Probleme mit schnelleren Rechnern gab (ab 200 MHz oder was das war). Bei 7.0 weiß ich nicht, ob der Fehler da vorhanden ist. Mit rudimentären Basic- oder C-Kenntnissen könnte ich auch aufwarten - meine Pascal-Kenntnisse sind aber auch nicht sonderlich toll. Ich habe aber keine Entwicklungsumgebung für Basic/C unter DOS hier, nur für Windows (MS Visual Studio ab 2003), bei denen man selbstlauffähige Programme schreiben kann. Eine Lösung, die auch unter Windows 2000 und neuer im CMD-Fenster liefe, wäre ganz prima - wenn es eine reine DOS-Lösung ist, ist das aber auch nicht schlimm. Einen alten DOS-Rechner finde ich dafür sicher auch :)
Hat jemand eine Idee, wie das umzusetzen sein könnte?
Besten Dank schonmal!