Oszi Remote Screenshots

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Ich würde sagen, wenn sich deren Größe nicht mehr ändert.
Weiß aber nicht, ob das funktioniert.
Benutzeravatar
sukram
Beiträge: 3063
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: Oszi Remote Screenshots

Beitrag von sukram »

Fritzler hat geschrieben: Fr 19. Nov 2021, 08:21 Genau das ist es ja, ich kann das im Linux Userspace nicht.
Ich übergebe dem Treiber den Pfad zur Imagedatei und dann wurschtelt der los:
sudo modprobe g_mass_storage file=/image.bin stall=0 ro=1

Man kanns zwar paralel mounten, aber dann weis ich nicht wann die Datei fertig ist:
sudo mkdir /mnt/usb_share
sudo nano /etc/fstab
/image.bin /mnt/usb_share vfat users,umask=000 0 2
Wenns da trotzdem ne Möglichkeit gäbe wär ich ganz Ohr :geek:
schon mal mit inotify rumprobiert?
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

sukram hat geschrieben: Fr 19. Nov 2021, 10:05 schon mal mit inotify rumprobiert?
GENIAL!
Gibts sogar direkt für die Schlange: https://github.com/seb-m/pyinotify

Jetzt muss ich mal gucken obs auch mit der Sonderrolle klar kommt.
Es gibt ja das Imagefile (FAT32).
Das bekommt der USB Treiber und der schreibt rein.
Zusätzlich wird das Image ins rootFS des Linux OS gemounted und nur darüber kann inotify schnüffeln.
Da muss ich mal gucken ob er dann neu angelegte Billder erkennt und ob diese fertig geschrieben wurden.

Bei bmp und bekannter Auflösung reicht ja die Dateigröße, aber bei png ist das je nach Bildinhalt unterschiedlich.
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Oszi Remote Screenshots

Beitrag von Jannyboy »

Hier steht noch was von einem Userspace Daemon:
https://git.kernel.org/pub/scm/linux/ke ... ?h=v5.15.3

Vielleicht spuckt der noch die gewünschten Informationen als Debug-info aus?

Grüße Jan
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Das mit dem Deamon muss ich dann ausprobieren, direkt nen Zugriff scheints der nicht zu erlauben.

Jedenfalls funktioniert das mit dem "Doppelmounten" schonmal nicht.
Am PC wird der RasPi schonmal als USB Stick erkannt, aber eine draufkopierte Datei taucht dann nicht im mnt Ordner auf.
Erst umount und dann mount lässt neue Dateien erscheinen ... meh.
Bild

Dadurch wird inotify nicht funktionieren.
Dateianhänge
raspiStick.PNG
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Oszi Remote Screenshots

Beitrag von Jannyboy »

Es gibt noch eine Loopback-Option... die ist aber wohl Kernel abhängig.

Ansonsten kann man auch die Sourcen ziehen und die Handles in den userspace mappen (copy).

Grüße Jan
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Da kommt Freude auf :lol:
-> https://github.com/torvalds/linux/blob/ ... _storage.c
Ich les das mal durch.

In Z719 "static int do_write(struct fsg_common *common)"
passiert das Schreiben von den SCSI LBAs zu der Imagedatei.
Wenn ich mir da ein procfs handle aufmache kann ich aus dem Userspace gucken ob jetzt Ruhe ist und dann das Image mounten.
Jannyboy
Beiträge: 1406
Registriert: So 11. Aug 2013, 14:49
Wohnort: Kreis Augsburg

Re: Oszi Remote Screenshots

Beitrag von Jannyboy »

Alternativ könnte mal auch gleich im Kernelmodul die Bilder extrahieren und in den Userspace schieben.
Beim FAT Entry schreiben weiß man ja wie viele Blöcke geschrieben werden oder wurden.

Die meisten Implementierungen schreiben erst die Table und dann die Daten. Es gibt aber auch in Embedded Bereich Implementierungen die es umgekehrt machen.

Grüße Jan
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

So, Kernelgebastel sehe ich mal als "last resort" an.

Was ja noch geht ist per elm chan fat FS direkt in die Imagedatei zu gucken.
Dann muss ichs ja nichtmal mounten.
Das mach ich so alle 5 - 10s und logge gefundene Dateien mit.
Dazu logge ich noch die Dateigröße.
Wenn eine neue Datei gefundne wurde und sich die größe nicht mehr ändert -> Datei extrahieren und zum Python Programm pipen.

Das sollte eigentlich funzen :mrgreen:
Bild
Dateianhänge
datapath.png
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Dinge die man auf 64Bit Linuxen vergisst:
fopen kann auf einem 32Bit OS (genau das hat der Zero 2W ja noch) nur 2GB Dateien und ich wunder mir nen Ast wieso das nicht geht.
ERR: errno: Value too large for defined data type
ERR: could not mount image file (/home/pi/raspiUsbEmuServer/workdir/image.img), fat fs errno: 1
Zum Glück gibts fopen64!
(Ja das Imagefile ist 2048MB groß)

Nur gibts jetzt wiedern neues Problem:
Die Dateigröße in der FAT selber ist direkt ab Anfang auf die eigentliche Dateigröße gesetzt.
(das wurde mir ja hier auch schon so angedroht)
Da muss ich dann wirklich lowlevel scannen ob auch alle Blöcke verkettet sind.
Bild
Dateianhänge
biggusdiggusFS.PNG
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Es ist wirklich nicht so einfach :twisted:
Im Kernel gucken wann eine Übertragung fertig ist wäre übrigens auch kein hinreichendes Kriterium.
Das würde nämlich nicht funzen, wenn ein Gerät loggt und währenddessen Screenshots gepeichert werden.
Mit Logfiles eröffnet sich nochmal eine eigene Hölle, das verdräng ich erstmal.

Daher mach ichs jetzt mit einer Quersumme.
Wenn eine neue Datei erkannt wird, dann wird dessen Quersumme gebildet und wenn die sich nicht mehr ändert, dann ist es wohl vollständig.
Bei ner 120MB Testdatei dauert das natürlich etwas, aber so groß werden die Bilder ja nicht.
(Nein nicht ewig, aber ne halbe Sekunde isses schon)

Das funzt natürlich nicht wenn eine Datei gelöscht wird und wieder angelegt wird, ein FS löscht ja nicht den Inhalt, sondern nur den Node.
Dies wird jedoch etwas umschifft indem bei jedem Neustart des RasPis ein neues ausgenulltes Imagefile (mit FS Headern am Anfang) erstellt wird.
Die Geräte speichern ja immer neue Dateien und lassen die Alten stehen.

So und jetzt noch ein anderes Problem:
Das RasPi USB MSC Gadget funktioniert an meinem PC, am Keithley DMM, aber nicht am Rigol Oszi *GNARF*.
Das Oszi erkennts einfach nicht.
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Mein 1000er Rigol erkennt auch nicht alle USB-Stifte.
Den 128MB nicht, den 4GB schon, den 8GB auch, auch den dienstlichen 64GB.

Muss man nicht verstehen.

Das Dateisystem muss natürlich passen (Flashdrive not a DOS disk).
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Es wird schon als "USB Stick" aka removable angemeldet am OS:
sudo modprobe g_mass_storage file=/home/pi/raspiUsbEmuServer/workdir/image.img stall=0 ro=0 removable=1
Das Problem kommt wohl von woanders:
Der Raspi Hat die 5V beider USB Buchsen durchverbunden.
Also von USB Power und USB OTG.
Laut USB Spec resettet der USB Host das Device durch einen Powercycle, also er nimmt die 5V kurz weg.
Danach muss sich das Device innerhalb von x ms melden.

Beim Raspi kann ich den USB an den PC stecken und ich sehe kein Laufwerk.
Ich kann nachträglich den obigen modprobe Befehl ausführen und dann machts palim und das Laufwerk taucht auf.
Jetzt kann ich rein/raus stecken und das Laufwerk taucht sofort auf.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Die Dateierkennung wär dann so weit durch.

Hier der Beginn eines Transfers:
--- new scan ---
found: How I Wish (The Hitmen) (128kbit_AAC).m4a, size: 4977 kb

--- new scan ---
found: How I Wish (The Hitmen) (128kbit_AAC).m4a, size: 4977 kb
found: Takt Op. Destiny「AMV」- Clear Skies ᴴᴰ (1080p_30fps_H264-128kbit_AAC).mp4, size: 93046 kb
new file
newSum: 3511780840 vs oldSum: 0


Transfer läuft:
--- new scan ---
found: How I Wish (The Hitmen) (128kbit_AAC).m4a, size: 4977 kb
found: Takt Op. Destiny「AMV」- Clear Skies ᴴᴰ (1080p_30fps_H264-128kbit_AAC).mp4, size: 93046 kb
newSum: 3521437596 vs oldSum: 3508049283

--- new scan ---
found: How I Wish (The Hitmen) (128kbit_AAC).m4a, size: 4977 kb
found: Takt Op. Destiny「AMV」- Clear Skies ᴴᴰ (1080p_30fps_H264-128kbit_AAC).mp4, size: 93046 kb
newSum: 3501105566 vs oldSum: 3521437596


Transfer ist beendet (er hört auf die Checksummen zu berechnen):
--- new scan ---
found: How I Wish (The Hitmen) (128kbit_AAC).m4a, size: 4977 kb
found: Takt Op. Destiny「AMV」- Clear Skies ᴴᴰ (1080p_30fps_H264-128kbit_AAC).mp4, size: 93046 kb
newSum: 3501105566 vs oldSum: 3501105566
we can copy


--- new scan ---
found: How I Wish (The Hitmen) (128kbit_AAC).m4a, size: 4977 kb
found: Takt Op. Destiny「AMV」- Clear Skies ᴴᴰ (1080p_30fps_H264-128kbit_AAC).mp4, size: 93046 kb
Direkt alles mit LFN in UTF-8, man weis ja nie.
Benutzeravatar
sukram
Beiträge: 3063
Registriert: Sa 10. Mär 2018, 18:27
Wohnort: Leibzsch

Re: Oszi Remote Screenshots

Beitrag von sukram »

Kannst du die +5V vom Raspi "hochohmig" machen, also auf der Platine auftrennen und dann an einen GPIO brücken?
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Ein weiterer kleiner Fortschritt.
Aus einem Pythonscript wird ein Prozess geforkt, welcher das C Programm ist.
(Dieses scannt und extrahiert, wie weiter oben beschrieben, das FAT32 Image.)
Dann wird in Python auf einer named pipe gelauscht.
Danach schiebt das c Prog den Dateipfad in eine named pipe, mit inem kleinen Textprotokoll.
pi@raspberrypi:~/raspiUsbEmuServer $ python3 main.py
opening old install progress
NEWFILE;26;../workdir/files/pipeing.h

NEWFILE;32;../workdir/files/fileExtractor.c

NEWFILE;33;../workdir/files/datapath.graphml

NEWFILE;124;../workdir/files/SABATON - Great War (Live from the 20th Anniversary Show at Wacken 2019) (1080p_25fps_H264-128kbit_AAC).mp4



sukram hat geschrieben: So 28. Nov 2021, 12:29 Kannst du die +5V vom Raspi "hochohmig" machen, also auf der Platine auftrennen und dann an einen GPIO brücken?
Das wäre die Hardwareseite.
Dann muss man noch am kernel fummeln, dass der auf nem GPIO fürs USB Start sucht, das wird sicher gruselig.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Heute habe ichs mal als systemd service installiert
Kleiner Fallstrick: Dann brauchste absolute Pfade überall, auch im Programm, weils offensichtlich nicht mehr in /home/pi ausgeführt wird.
Da muss ich mir beim installscript noch eine "wo hat man mich hinkopiert" Erkennung einbauen.

Dazu dann noch das eh geplante OLED angeschlossen um zu sehen (ob) was passiert.
Damit lässt sich dann auch mal checken was passiert wenn der Raspi über selbe Gerät mit Strom versorgt wird über das es auch ans Endgerät angeschlossen wird.
Bild

Rigol MSO5000 -> hat immernoch kein Bock
Keithley DMM6500 -> OK
Windoof7 -> will jetzt auch nicht mehr, das geht nur wenn der RasPi schon läuft und dann das USB Datenkabel gesteckt wird.

Damit kann ich eigentlich aufhören den Raspi Zero 2W Weg zu gehen.
Dateianhänge
1.jpg
manawyrm
Beiträge: 133
Registriert: Sa 3. Okt 2015, 23:09
Wohnort: Kiel
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von manawyrm »

Fritzler hat geschrieben: Sa 4. Dez 2021, 13:27 Kleiner Fallstrick: Dann brauchste absolute Pfade überall
Das passiert, weil dein Skript jetzt plötzlich ein anderes Arbeitsverzeichnis hat.
Die einfachste Lösung ist, dass dein Skript beim Start direkt in das Verzeichnis "cd"'t, wo es selbst liegt. Das geht z.B. so:

Code: Alles auswählen

cd "$(dirname "$0")"
Alternativ kannst du bei deinem Systemd-Service den Parameter WorkingDirectory= mitgeben, in etwa so:

Code: Alles auswählen

 WorkingDirectory=/home/pi/meinSkriptOrdner/
Viele Grüße,
Manawyrm
Zuletzt geändert von manawyrm am Fr 4. Aug 2023, 18:30, insgesamt 2-mal geändert.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

manawyrm hat geschrieben: Sa 4. Dez 2021, 13:56 Das passiert, weil dein Skript jetzt plötzlich ein anderes Arbeitsverzeichnis hat.
Ja, so siehts aus.
manawyrm hat geschrieben: Sa 4. Dez 2021, 13:56 Die einfachste Lösung ist, dass dein Skript beim Start direkt in das Verzeichnis "cd"'t, wo es selbst liegt. Das geht z.B. so:
Es läuft ja nicht nurn Pythonscript, sondern auch ein C Programm (von Python gestartet).
Das C prog kann nicht einfach mal wo in cd'en.
manawyrm hat geschrieben: Sa 4. Dez 2021, 13:56 Alternativ kannst du bei deinem Systemd-Service den Parameter WorkingDirectory= mitgeben
Ja, das klingt super!
Die Servicebeschreibungsdatei erzeuge ich eh aus nem Install Python Script, also kann das da direkt rein.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Ein kleiner Zwischenstand:

Beim RasPi muss ich wohl mal in die USB Leitung lauschen.
Dafür darf ich mir von der Arbeit nen Sniffer ausleihen, aber den hat grad wer im Homeoffice.
Daher ist das fraglich ob das diesjahr noch klappt.

Daher wird grade am PC Python Script zum Remoteauslesen weitergearbeitet.
Das war ja bisher eher ein proof of concept.

1)
Es wird nicht immer nach der Configdatei gefragt, er merkt sich die letzte für ein noch schnelleres öffnen.
Wird keine gefunden, dann wird ein Scan nach VISA/LXI Geräten ausgeführt.
Das funktioniert aber nur für USB Geräte.
Für Netzwerkgeräte wird mDNS genutzt, was ab LXI 1.3 eh pflicht ist, das funktioniert auch schon.
Es nervt nur, dass mein Rigol MSO5000 mDNS immer abschaltet beim Starten... :roll:

2)
Autodetektion des angeschlossenen Geräts.
Je nachdem wird auch die passende Interfacing Klasse geladen.
zB um dem schwachbrüstigen DSO1000 nicht langsam die Bilder per LXI rauszuziehen, sondern schneller übern Raw Socket bzw Telnet.

3)
Erweiterung zu get/set setups.
Was am Oszi einstellen kann ja mal recht fummlig sein und dann will man sich das speichern.
Aber unter einem Dateinamen, der was aussagt und das geht besser per PC Tasta anstatt auf dem Oszi :mrgreen:
manawyrm
Beiträge: 133
Registriert: Sa 3. Okt 2015, 23:09
Wohnort: Kiel
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von manawyrm »

Das C prog kann nicht einfach mal wo in cd'en.
Naja, das WorkingDirectory wird ja "vererbt".
Wenn das dein eigenes C Programm ist, könntest du drin auch einfach cd'en:
https://man7.org/linux/man-pages/man2/chdir.2.html

Aber ja, WorkingDirectory= (oder noch besser, nur absolute Pfade) geht schon ganz gut :)
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

manawyrm hat geschrieben: Mo 13. Dez 2021, 03:26 https://man7.org/linux/man-pages/man2/chdir.2.html
Ha! geht ja doch, danke für den link zur manpage!

Momentan merke ich mir die Pfade noch parallel im Pythonscript und dem C-Prog, da muss eh noch ne gepflegte Übergabe stattfinden.
Das C-prog is auch von mir, das wurschtelt im FAT32 Image rum.
Bitwackeln ist nix für Python.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Da hab ich jetzt mal mein altes Rigol DS2000 aus dem Keller gekramt.
Das ist doch tatsächlich beim Screenshot lesen mit LXI auch sacklahm!
150 Sekunden, aber hallöchen!
Laut Wireshark wird da gut hin und her gequatscht.
Der Prozessor im Oszi braucht wohl etwas bis es ein Paket mal anfasst?
Jedenfalls gehts über Sockets und Port 5555 mal eben in unter 2 Sekunden :lol:
Da wird nur angefragt und dann kotzt sich der Socket vom Oszi nurnoch aus bis ihm die Puste ausgeht.

Das DS1000Z sollte auch gehen, kann das mal wer testen?
https://git.fritzler-avr.de/fritzler/re ... -/releases

In die xml Datei muss nochn weiterer Eintrag:
https://git.fritzler-avr.de/fritzler/remote-screenshot
<otherpath>False</otherpath>
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Die Zeile in der xml war bei mir schon drinnen.

Die Parameter in der schreibsel.txt scheinen noch nicht zu funktionieren, das muss wohl derzeit so.


Wenn ich einen anderen Pfad als das Programmverzeichnis selbst auswähle, dann erhalte ich

Code: Alles auswählen

$ python3 main.py
Traceback (most recent call last):
  File "main.py", line 288, in <module>
    confFound, pathConfig = startupHandle.Startup(gemDict['path'])
  File "/media/ramdisk/remote-screenshot-v0.1/utils/startupHandle.py", line 42, in Startup
    openable = self.__fileOpenable(path + '/' + self.__fileName)
  File "/media/ramdisk/remote-screenshot-v0.1/utils/startupHandle.py", line 55, in __fileOpenable
    f.close()
UnboundLocalError: local variable 'f' referenced before assignment
nach dem Klick auf OK und das Programm beendet sich.
Screenshot_20211214_182500.png

Für kleine Monitore ist das Fenster defaultmäßig etwas groß, aber da arbeitest du ja noch dran.
Der Platz für die Tabelle ist auch etwas zu klein, da fehlt die letzte Zahl der IP.
Screenshot_20211214_181550.png
Feinheiten, Pfff.

Die Übertragung beim 1000er Rigol geht schnell, wie man sieht.

Edit: Jetzt muss ich per VPN auf das Heimnetzwerk, weil sonst die Bilder nicht funktionieren... Also nochmal.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Da gibts dann wohl zwischen Tk Win und Lin Pixelunterschiede?
Die Tabelle ist eigentlich immer gleich breit und daher sollte auch die IP passen.
Aber auch im Logfenster fehlt der Pfeil nach unten.
Hat dein System nicht die Schiftart "Helvetica" ?
Bzw wo ich grade gucke, is die nich allzu offen, ich sollt mal "FreeSans" nutzen.
Von der Schriftart und dessen Größe leitet sich so einiges ab ;)

Kleine Monitore?
Die Fenstergröße zum ersten Start hab ich an 1366x768 Laptopkrückenmonitore angepasst :mrgreen:
Noch wird die Fenstergröße nicht zurückgeschrieben, aber das kommt noch.
Dann merkt er sich Fensterpostion und Größe.

Wenn du ein Pfad angibst, in dem die config xml nicht wohnt, dann sollte f.close() eigentlich kein Error werfen.
Ich guck mir das mal an.

In der schreibsel.txt stehen ein paar todos, natürlich geht das noch nicht. :lol:
sysconsol hat geschrieben: Di 14. Dez 2021, 19:31 Die Übertragung beim 1000er Rigol geht schnell, wie man sieht.
Das war der Sinn darin direkt auf Sockets rumzuklimpern.
150s kannste doch keinen warten lassen.
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Helvetica ist nicht installiert, ist kein Windows:
Systeminformation.png
Die Standardschriftarten, scheinen folgende zu sein:
Screenshot_20211215_081538.png
Das macht aber sicher auch jede Distribution anders.
Ich denke, dass ich da nichts geändert habe. Aus den von dir bereits genannten Gründen (btw. das geht auch unter Windows schief :twisted: ).

Ich habe keine Ahnung, ob man die Breite der Schriftarten per Python abfragen kann und dementsprechend die GUI einstellen kann.
Man könnte immerhin in den Anforderungen die Installation einer Schriftart empfehlen.

Was den Pfeil angeht: Bei Python konnte man - so glaube ich mich zu erinnern - keine relativen Angaben zur Größe der Elemente machen. Oder doch?
Ich hatte einmal mit GUI zu tun. Und das war nicht so wirklich schön.

Mein Monitor hat 1280x800 Bildpunkte (Thinkpad X201 Tablet) :lol:
Da hängen aber noch nicht mir gehörende 2560x1440 dran.

Den Oszi-Screenshot herunterskalieren sieht blöd aus, ich weiß.
Man könnte aber den Log abschalten und nur eine Art Statusleiste einbauen.
Der Benutzer will doch nur wissen, ob der Befehl fertig ausgeführt wurde (Oszi gefunden? Verbindung aufgebaut? Screenshot gespeichert?)
Aber das sind Feinheiten - wie ich bereits schrieb :lol:


Rein wegen der Neugierde:
Bei mir sind folgende installiert, wobei die TGL- und Amptmann-Schriften sicher nachinstalliert wurden:
schriften1.png
schriften2.png
schriften3.png
schriften4.png
schriften5.png
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Es gibt ne Statuszeile, die siehst du nur nicht wegen dem fuckup :twisted:

Der Witz ist, dass es eigentlich in Tk eingebaute Schriftarten gibt und in den Tutorials wird Helvetica genutzt.
Das hab ich eiskalt so übernommen.
Ich werde mal gucken wie ich eine Schriftart direkt mitliefern kann, damit es nicht zu solchen Problemen kommt in der Zukunft.
Es ist leider so, dass nicht alle Widgets Größenangaben in Pixeln haben.
Die Textbox zB in dargestellten Zeilen und Zeichen statt Px (LMAA!).

Hmm, das Logfenster ausknipsen, wenns noch kleiner wird.
Ob das wirklich viel bringt?
zB das MSO5000 hat 1024x600px, da ist bei dir auch so alles zugespammt.
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Ja bei mir...
... ich nutze ja weiterhin olle PCs und am Oszi einen USB-Stift :lol:

Keine Ahnung, wie groß die Monitore anderer Benutzer sind.
Eine Variante wäre noch, dass man einen wählbaren Ausschnitt aus dem Screenshot anzeigt.

So, dass man sich sicher sein kann, dass er neu abgefragt wurde.
Den Ausschnitt legt sich dann der Benutzer so fest, dass er in dem Bereich liegt, wo sich etwas ändert.
Für den Status könnte man ja auch die Farbe einer Schaltfläche/Feld ändern (rot -> Fehler, gelb -> beschäftigt, grün -> fertig, bereit für nächste Anweisung).

Feinheiten, alles Feinheiten.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Ja, Details! Details!
Jetzt kommt mir doch nicht mit Details! :lol:

Was man eigentlich recht fix umsetzen könnte wäre die Ausblenung der Menüs in der Vorschau.
Aber nur wenn der Bildschirm klein ist.
Das sind dann wieder diverse Abfragen und Codepfade.

In Tk auf Win kannste ne ttf reinladen auf der Linuxversion geht das nicht, meh.

Code: Alles auswählen

import pyglet, tkinter
pyglet.font.add_file('file.ttf')
root = tkinter.Tk()
MyLabel = tkinter.Label(root,text="test",font=('font name',25))
Mal abgesehen davon, dass pyglet wohl etwas overkill ist um nur ne Schriftart zu laden: :twisted:
https://pyglet.readthedocs.io/en/latest/

Aber Arial solls wohl fast überall geben.
Es betrifft ja eigentlich alle meine Python Progs mit Tk.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

So, ne neue Version um mal ein paar der GUI Schweinereien anzugehen.
Die Schriftart ist jetzt mal auf TkFixedFont gesetzt, wenn die Tk nicht in jedem System selber mitbringt, dann ...
Was mir auch noch auffiel waren Trauerränder wenn ich vom MSO5000 mit großem Bildschirm zum DS2000 mit kleinem Bildschirm umgeschaltet habe.

Weiterhin merkt er sich jetzt Fenstergrößen und das letzte Configfile.
(was er eigentlich schon tun sollte, aber ich vergessen habe)

Neue Version hier:
https://git.fritzler-avr.de/fritzler/re ... -/releases
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Huch, das gin dann doch schneller als gedacht.
Jetzt auch mit argparser über die Kommandozeile.

Das hat folgenden Gedanken:
Damit lässt sich eine Script der eigenen Sprachwahl in einem ordner erstellen.
Das öffnet dann per Doppelklick das Screenshotprogram.
Dann musste nicht erst das Programm öffnen und dem dann den Speicherorder in der GUI durchklicken.

Code: Alles auswählen

$ main.py
$ main.py -h
$ main.py -p <path to config files and save files (autosave always active)>
$ main.py -r <visa ressource string> -p <path to save files (autosave always active)> [-t]
$ main.py -t use timestamp instead of upcounting number
Alle Argumentangaben überstimmen eventuelle Einstellungen der config.
So wird hier im Screenshot zwar die config geladen, aber dor endet die IP auf 42 nicht 50 -> überstimmt.
Zudem würde er aufzählend speichern, das hab ich mal mit dem Timestamp überstimmt.

https://git.fritzler-avr.de/fritzler/re ... -/releases
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Funktioniert. Die Parameter und die Speicherung der Einstellungen.

Code: Alles auswählen

bnutzer@i7-debian:/media/ramdisk/remote-screenshot-v0.2.0$ python3 main.py
bnutzer@i7-debian:/media/ramdisk/remote-screenshot-v0.2.0$ python3 main.py -p /media/ramdisk/
bnutzer@i7-debian:/media/ramdisk/remote-screenshot-v0.2.0$ python3 main.py -r TCPIP::192.168.2.116::INSTR -p /media/ramdisk/
bnutzer@i7-debian:/media/ramdisk/remote-screenshot-v0.2.0$ python3 main.py -r TCPIP::192.168.2.116::INSTR -p /media/ramdisk/ -t
Nur die Feinheiten mit der Breite der Tabelle nicht.
Screenshot_20211218_165408.png
Auch der dienstliche Monitor hilft da nicht.
Screenshot_20211218_170731.png
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Das mit der Schriftart geht mir jetz aber echt langsam aufn S*ck Ò_Ó.
LMAA, dann mach ich die Spalte eben fest breiter unter Linux :evil:.

Zur RasPi Edition:
Vonner Arbeit durft ich mirn LeCroy Mercury T2C USB Analyzer ausborgen.
Ich bin mal gespannt was das zu Tage bringt.
Wie mans im Linuxkernel fixen könnte is noch ne ganz andere Geschichte.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Ich nutz ja grade meinen "Zwangsurlaub" (ich soll nicht so viele übrige Urlaubstage ins nächste Jahr nehmen) um hier mal den USB zu sniffen.
Jetz weis ich wieder wieso ich damals dagegen war den Sniffer von LeShit zu kaufen.

Zwangregistrierung beim Hersteller zum Sw DL is ja leider schon normal :roll:
Aber die treibens ja hier echt auf die Spitze!
Sollst als Zwangsfeld alles angeben wie Firmenadresse, Job in der Firma, Telenummer...
BS Eintippen wird auch direkt gecheckt und abgelehnt, zum Glück gibts http://bugmenot.com/
Funktioniert sogar.
Aber dann sowas:
Bild
Kost ja nur 1000€ das Teil und dann habens die nicht nötig das signieren zu lassen,
ich schalte jetzt mal in den Würgaroundmodus...
Dateianhänge
leshit.PNG
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Das brachte auch nix, aber eine ältere SW Version von 2020 schon.

Was ist zu sehen?
Sowas hier, da kann man sich dann durch die Transfers durchklicken und gucken was die so tun:
Bild

Soll heißen die grundlegende Kommunikation funktioniert schonmal!
Denn er tauscht die USB Descriptoren aus und erhält, dass es ein MSC ist.

Weiter unten werden dann auch schon SCSI Befehle über USB Übertragen.
Hier mal im Protokolldekoder wie das Oszi die "USB Stick Größe" anfragt:
Bild
512Byte große Blöcke und davon 4194303 -> 2048MB -> kommt schonmal hin :mrgreen:

Hier wird sogar schon das Dateisystem gelesen, die ersten 4kbyte:
Bild
Da kommt zurück, dass das FAT32 mit mkfs geshrieben wurde (wer hätts gedacht!)
Ist das eventuell garkein USB Problem, sondern das Oszi mag das Dateisystem nicht?
Denn danach kommt kein weiteres READ mehr.
Dateianhänge
MSO5000_scsi_firstread.png
MSO5000_scsi_capacity.png
MSO5000_gadget.png
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

So wies aussieht erwartet das Rigol einen MBR und somit Partitionstabellen.
Sonst verweigert es die Zusammenarbeit.
Eigentlich brauchts das nicht bei "removable Devices", aber USB Sticks und SD Karten habens dann doch.

Windoof und das Keithley haben aber auch so ihre Schwierigkeiten das erstellte Image zu laden.
Das ist dadurch ersichtlich, dass mehrfach der Cluster0 geladen wird und dann wird nach hinten gewandert bis es "einrastet".

Soll heißen diese ganzen Anleitungen zum "Raspi Zero as USB Stick" sind Fehlerhaft, nunja kommt ja auch von Makern.
Die erstellen alle nur ein Imagefile und erstellen darin ein FAT32 ohne MBR.
mkfs hat in manchen Versionen einen --mbr Befehl, der auf dem PI Zero Raspbian leider nicht. :evil:
Mit fdisk könnt ich ein MBR erstellen, aber mkfs kann ich kein Offset übergeben ab wo er reinschreiben soll.

Das geht nur umständlich indem man dann das Image als Loopback mountet und dann die Partition formatiert.
Naja ne, dann machen wir das eben auch in dem C Programm.
Das ElmChan FatFS kann auch fdisk und mkfs :mrgreen:
Ich wollt ja eh noch commandline Params einbauen ins C Subprogramm, dann kommt da jetzt auch ne Imageerstellung rein.
sysconsol
Beiträge: 4059
Registriert: Fr 8. Jul 2016, 17:22

Re: Oszi Remote Screenshots

Beitrag von sysconsol »

Rigol und MBR...

Wenn ich wieder in der Unterkunft (soll ich das Wohnung nennen?) bin, dann muss ich mir mal den 128MB-USB-Stick ansehen, den das Rigol DS1000 ablehnt.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

So,
da das ja nun so langsam funktioniert muss ich mir mal Gedanken über die Konfigurierbarkeit machen.

Eigentlich wollt ich ja nen Webserver auf dem Ding laufen lassen.
Wär mir im Nachhinein jetzt zu viel Arbeit fürs erste.
Das kommt dann später, alleine wegen Wohlfühlfeatures wie:
- Logs lesen
- Verbindungen live testen

Ein Kollege meinte ich solle doch eine Konfigurationsdatei auf diesen "USB Stick" packen.
Steckste am PC an und fummelst an der Konfig rum.
Nur dann sieht ja jeder die Logindaten zu FTP/SMB etc. :evil:
-> Keepass!
Das Konfigfile ist eine Keepassdatenbank und somit hat man auch gleich eine Oberfläche zum Einstellen. :mrgreen:
-> Geht sogar in Python: https://pypi.org/project/pykeepass/
Das Masterpasswort wird dann eben beim Installscript abgefragt.
So wie ich das gelesen habe lässt sich das auch halbwegs sicher im Userordner verstecken/speichern.

Über das URL Feld ist dann eben codiert wo die Reise hingeht:
SMB://
FTP://
FTPS://
SFTP://
HTTPS:// <- nextcloud
sysconsol hat geschrieben: Mi 22. Dez 2021, 20:24 dann muss ich mir mal den 128MB-USB-Stick ansehen, den das Rigol DS1000 ablehnt.
fdisk kann sich das ja auch angucken
-> https://wiki.ubuntuusers.de/fdisk/
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

So, funktioniert würd ich ma sagen:
https://youtu.be/UeqNZ9kmRz8
Leider nur mit Handykartoffelcam, meine alte is ja im Eimer und ich hab noch kein Neue gekauft.

Der FTP ist noch fest reingecoded, das mit der Konfigdatei muss ich noch einbauen.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Heute früh gings dann noch etwas weiter.
Die Konfigurationsdatei wohnt jetzt im Image und ist daher per USB auslesbar/änderbar.
Die keepass lib war/ist gut nutzbar.
Nur dauerts etwas keepass Datenbanken zu öffnen, da macht sich der ARM Kern ohne Cryptoextensions bemerkbar.
Aber das passiert ja nicht so oft.

Das soll ja ne Keepassdatei sein, damit es am PC ne Oberfläche der Wahl des Nutzers gibt und die Passwörter nicht im Klartext auf einem "USB Stick" stehen.
Das Masterpasswort der Keepass Datenbank wird im Installscript abgefragt sowie die initale Kofiguration.

Als nächstes dann mal SMB (Netzlaufwerke).
Das sieht doch auch nach ner gut nutzbaren lib aus:
https://github.com/jborean93/smbprotoco ... agement.py

Oder gleich SSHFS?
https://pypi.org/project/sshfs/
(quasi SFTP auf Sterioden)

Für NFS scheints nur leider nichts brauchbares zu geben.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Sooo, SMB geht nun auch!
Dann teste ich jetzt mal mit nem frischen Image ob die Installationsanleitung stimmt und baue die automatische SystemD Service Erstellung ein.

Dann gibts heute Abend/Nachmittag vllt nen erstes Release, das ihr kaputt testen dürft :lol:
Insofern ihr noch RasPi Zeros bekommt. :lol:
Ich teste auch direkt mal obs auch auf nem W statt 2W auch läuft.


Aber eine Frage stellt sich noch:
Was soll mit Bildern passieren bei einem Uploadfehler?
Bisher würde er es ein paar mal versuchen.
Aber bei einem Neustart des RasPi wären die Bilder dann erstmal weg.
Soll ich die in einem Ordner vorhalten und wenn dann die Config repariert ist (oder der Server wieder online ist) gibts nen Upload in einem Rutsch?

Was ich wohl noch einbauen werde ist, dass bei einem Start oder einer Änderung der Config ein Loginversuch auf dem Server stattfindet um gleich zu sehen, dass das nicht funzen wird.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

pi@raspberrypi:~/rasPiUsbEmuServer $ sudo python3 install.py
Illegal instruction
Äh was :shock:
Der Zero W ohne 2 will wohl nicht so richtig.

Es gibt ja nur ein "Raspberry Pi OS Lite", daher sollts ja auf allen RasPis laufen.
Aber erst beim python parsen geht ja wohl was kaputt.

Aber der ZeroW ist eh arschlahm
Beim durchgehen meiner Installanweisung gibts da echt riesige bemerkbare Performanceunterschiede.
Also fliegt der ZeroW eh raus und nur der 2W wird unterstützt.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Bittesehr, hier das erste Release:
https://git.fritzler-avr.de/fritzler/ra ... -/releases

Die Anleitung ist hier:
https://git.fritzler-avr.de/fritzler/ra ... /README.md

Wenn irgendwas zickt wird hier gerne supported.

---
Da musste ich noch einiges umbauen, damit es auf einem naggischen Image läuft.
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

Jetzt als Version 0.2.0

Dateien werden nun zwischengespeichert wenn ein Upload nicht geklappt hat.
Ein erneuter Versuch findet bei einem Neustart des RasPi statt oder einer Änderung der Config.

-> https://git.fritzler-avr.de/fritzler/ra ... -/releases
Dateianhänge
raspi.jpg
bilder.PNG
b0n3
Beiträge: 399
Registriert: Mo 12. Aug 2013, 11:15

Re: Oszi Remote Screenshots

Beitrag von b0n3 »

Fritzler hat geschrieben: Do 30. Dez 2021, 15:57 Jetzt als Version 0.2.0

Dateien werden nun zwischengespeichert wenn ein Upload nicht geklappt hat.
Ein erneuter Versuch findet bei einem Neustart des RasPi statt oder einer Änderung der Config.
Das würd ich mir bei vielen sachen wünschen.
Vorschlag: Ich würds 2x im Minutenabstand probieren, falls Server oder WLAN schluckauf haben, dann zu restart und config erst wechseln.

Geht das mit nem normalen Raspi auch, man kriegt ja nix..... :twisted:
Benutzeravatar
Fritzler
Beiträge: 12579
Registriert: So 11. Aug 2013, 19:42
Wohnort: D:/Berlin/Adlershof/Technologiepark
Kontaktdaten:

Re: Oszi Remote Screenshots

Beitrag von Fritzler »

b0n3 hat geschrieben: Do 30. Dez 2021, 16:26 Geht das mit nem normalen Raspi auch, man kriegt ja nix.....
Ja, kaum bin ich fertig gibts keine Zero 2W mehr.
Eine Verschwörung! *Aluhutaufsetz*

Wir hatten doch rausgefunden, dass der RasPi4 am USB-C auch Device kann?
Konnte ich aber nicht testen, weil ich kein passendes Kabel habe.
Fühl dich frei was Versuchskanickel zu spielen.
b0n3 hat geschrieben: Do 30. Dez 2021, 16:26 Vorschlag: Ich würds 2x im Minutenabstand probieren, falls Server oder WLAN schluckauf haben, dann zu restart und config erst wechseln.
Meh, glatt vergessen.
Hatte ich eigentlich vor, dass er auch minütlich pingt.
Beim restart macht ers aber trotzdem immer, vllt hat man hn ja beim Upload abgeschaltet.
Oder die Config war falsch und daher wirds nach ner neuen config auch immer versucht.
bastl_r
Beiträge: 1746
Registriert: Mo 12. Aug 2013, 15:58
Wohnort: Net weit vo Schtuagert

Re: Oszi Remote Screenshots

Beitrag von bastl_r »

Hi
Ich häng mich mal hier dran. Falls nicht gewünscht bitte verschieben oder was sagen.
Gibts in UltraScope einen Modus mit dem man auch die ganzen Softkeys und alle anderen (temporären) Anzeigen des Oszibildschirms auf dem PC bedienbar vorhanden hat?

bastl_r
Antworten