Kennt jemand ein Terminal-Programm für PCs (Win!) mit dem ich einfach durch Tastendruck eine vorher definierte Codefolge (BIN) über RS-232 raussenden kann und speichern kann, was empfangen wird? Ich verfüge über ein Messgerät mit telemetrischer Schnittstelle, für welches die Steuercodes bekannt sind, wofür es aber keine Software mehr gibt, weil der Hersteller pleite ist. Ich muss nun dem Operator die Möglichkeit schaffen, bei Eintreten eines speziellen Ereignisses, manuell eine Reihe von Daten rauszuholen. Ich brauche also einen Knopf am PC, der die Abfrage Codes sendet und alles an binären Daten speichert, was kommt. Die Abfolge ist in etwa so: "Lese ab Adresse 7 die nächsten 31 Daten " 0x80 0x07 0x1f 0xPP Ich habe es schon mit Hyperterminal hingefummelt, aber es ist zu umständlich, jedesmal auf Senden zu gehen und eine Datei zu senden. Ein kopmlettes Programm zu schreiben, wäre mir jetzt aber auch zu aufwändig zumal ich meine, dass es sowas geben müsste. Kriegt man das alternativ mit Putty irgendwie hin?
Wow, super, Danke. hterm habe ich schon mal gehört, aber noch nie verwendet. Das andere sieht auch super aus. Werde ich checken.
Berndl schrieb: > Ich muss nun dem Operator die Möglichkeit schaffen, bei Eintreten eines > speziellen Ereignisses, manuell eine Reihe von Daten rauszuholen. Ich > brauche also einen Knopf am PC, der die Abfrage Codes sendet und alles > an binären Daten speichert, was kommt. Die andere Lösung wäre ein eigenes Programm/Skript zu schreiben. Entweder als eigenständige EXE oder als z.B. Python-Skript.
Teraterm Pro ist skriptbar. Nein, "Pro" bedeutet nicht, daß das 'ne kommerzielle Variante wäre.
Dennis Heynlein schrieb: > Die andere Lösung wäre ein eigenes Programm/Skript zu schreiben. > Entweder als eigenständige EXE oder als z.B. Python-Skript. Das muss nicht viel komplizierter sein als ein Script für ein Terminalprogramm, und man ist nicht auf die Funktionalität beschränkt, die der Autor des Terminalprogramms für sinnvoll gehalten hat. Z.B. wie unten, falls du kein GUI brauchst und damit leben kannst, dass nach dem Doppelklick auf die .py-Datei ein Konsolenfenster aufgeht. Aus zwei meiner Basteltools direkt ins Forum zusammencopypastet, natürlich anpassungsbedürftig und mangels Deiner Hardware ungetestet.
1 | # fuer Python 2.7, nicht 3.x |
2 | # auch pyserial installieren |
3 | |
4 | import serial |
5 | import time |
6 | |
7 | request_string = '\x80\x07\x1f' #usw |
8 | output_dir = 'C:/Users/Berndl/Desktop' |
9 | |
10 | #dateiname aus datum, uhrzeit, _daten.dat |
11 | def create_filename(): |
12 | day = time.strftime('%Y-%m-%d') |
13 | tim = time.strftime('%H.%M.%S') #windows kann keine doppelpunkte... |
14 | return output_dir + '/' + day + '_' + tim + '_daten.dat' |
15 | |
16 | def get_data(xyz): |
17 | ser = serial.Serial('COM1', 9600, timeout=1, parity=serial.PARITY_NONE, rtscts=1) |
18 | ser.write(xyz) |
19 | time.sleep(1) |
20 | response = ser.read(1000) # read up to 1000 bytes (timeout) |
21 | ser.close() |
22 | return response |
23 | |
24 | def save_data(data, filename): |
25 | outfile = open(filename, 'wb') |
26 | outfile.write(data) |
27 | outfile.close() |
28 | |
29 | if __name__ == '__main__': |
30 | data = get_data(request_string) |
31 | print '%d bytes gelesen...' % len(data) |
32 | filename = create_filename() |
33 | save_data(data, filename) |
34 | print '... und gespeichert in %s' % filename |
35 | raw_input("Press Enter to continue...") |
Die Einrückung bei create_filename() ist verrutscht.
Tom schrieb: > nach dem Doppelklick auf die .py-Datei ein Konsolenfenster aufgeht. Aus Man kann die .py unter windows auch .pyw nennen -> kein Konsolen-fenster. Für eine GUI reicht das Tkinter/Tix, welches bei Python für Windows dabei ist.
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.