Hier mal ein kleines Quick&Dirty Programm um aus einem RTB2004 einen Screenshot ueber Netzwerk auszulesen. Dokumentation: Read the source Anpassung: IP-Adresse im Source eingeben, Oszi auf PNG stellen Installation: make Aufruf: rtb2000 test.png Kein Linux: Dein Problem :-) Olaf
Dein Prog könnte aber auch beim starten einmal ein "HCOP:FORM PNG" senden. Dann kanns da nicht zu Fehlern kommen.
Ja, ich weiss. Ich hab das aber einer Stunde zusammengehackt und wollt erstmal nicht uebertreiben. Sonst ist das am Ende so ein Agilent-Programm wo man 1GByte installieren muss bis der Screenshot da ist. Das ist dann nicht nachhaltig! :-) Olaf
Noch was, ich kanns nicht ausprobieren weil ich dafuer keine Netzwerkkarte habe, aber ich vermute das es fuer die HMOs auch so geht weil die Kommandos sehr aehnlich sind. Eventuell muss man die Übergabe der Dateigrösse anfassen wenn ungleich 5Stellen, da hab ich was dirty gehackt. Leider hat R&S das im Handbuch nicht vernuenftig dokumentiert! Die geben wohl erst die Anzahl der Stellen und dann die Filelaenge in Bytes aus. Olaf
Das muss im DB nicht nochmal dokumentiert werden, Binärkrams wird im GPIB Format übertragen. Mit GPIB (hieß sogar mal HPIB, weil die das erfunden haben). Der GPIB Krams mit SCPI wurde dann nur auf immer modernere Übertragungsarten umgemünzt. Inzwischen eben LXI über Netzwerk oder USB. Hier mal etwas Phythoncode aus meinem Remote Oszi Screenshot ausleser. Der ist aber in Python und für ein Rigol MSO5000. Der Header fürs Binäre ist aber gleich.
1 | # decodes the header from bytestream returning functions (like screenshot)
|
2 | # IEEE binary data block
|
3 | # -> https://na.support.keysight.com/pxi/help/latest/Programming/Learning_about_GPIB/Getting_Data_from_the_Analyzer.htm
|
4 | # returns dictionary of num of headerbytes and databytes
|
5 | def DecodeHeader(byteStream): |
6 | |
7 | # first byte is the start of header ('#')
|
8 | # second byte is the len of the header following
|
9 | # example: '#9001843254'
|
10 | |
11 | retDict = {} |
12 | retDict['headerbytes'] = 2 |
13 | retDict['headerbytes'] += int(chr(byteStream[1])) |
14 | retDict['databytes'] = int(byteStream[2:retDict['headerbytes']].decode('ascii')) |
15 | return retDict |
> Der ist aber in Python und für ein Rigol MSO5000.
Gott, was ich diese Schludersprache hasse, aber ganz identisch ist das
nicht. Mit fuehrenden Nullen hat es R&S nicht so.
Olaf
Is ja auch egal ob da jetzt Nullen führen oder nicht. Der Header startet immer mit '#', dann kommt ein char welches die Restlänge des Headers anzeigt. Die Restlänge sind eine Zahl in asci wieviele Bytes denn jetzt binär kommen werden. Ist mit sscanf also auch gut verdaubar, das ignoriert ja führende Nullen wenn es zu ner Zahl umwandeln soll.
Olaf K. schrieb: > Hier mal ein kleines Quick&Dirty Programm um aus einem RTB2004 einen > Screenshot ueber Netzwerk auszulesen. > > Dokumentation: Read the source > > Anpassung: IP-Adresse im Source eingeben, Oszi auf PNG stellen > > Installation: make > > Aufruf: rtb2000 test.png > > Kein Linux: Dein Problem :-) > > > Olaf Vom Peter Dreisiebner gibts eine SW die das auch periodisch macht. Unter Windows. Und nicht nur für das RTB sondern IIRC auch für andere Oszis. Sehr praktisch wenn man Dauertests macht und alle 60s einen Screenshot braucht :-) auf diesem Weg einen herzlichen Dank an Peter. Such müsst ihr selber, er versteckt das auf seiner Website recht gut.
So, die Entwicklungsabteilung hier hat keine Muehen gescheut und ein weiteres Qualitaetsprogramm fuer die Freunde der gepflegten Kommandozeile rausgehauen. :-) Anpassung: Im Source die IP-Adresse einstellen. Installation: make Nutzung: rtblabel 1 hallo Schaltet das Label fuer Kanal 1 ein und setzt es auf "hallo". rtblabel 4 Schaltet das Label fuer Kanal 4 aus. Es geht also fuer alle Kanaele. Das ist doch etwas einfacher als am Oszi selber rumzutueddeln. Olaf
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.