mitglieder
70
Bearbeitungen
(headline) |
(Jetzt mit: schoener Geschrieben) |
||
Zeile 25: | Zeile 25: | ||
=== Das einfache drucken: === | === Das einfache drucken: === | ||
Der Drucker spricht | Der Drucker spricht unter anderem, wie auch andere aus der Honeywell Intermec Reihe, die [https://www.barcodedeus.de/artikeldownload/pdf_en/Inter-C4_Guide.pdf Intermec Fingerprint], diese ist aehnlich der Basic Programmiersprache strukturiert. | ||
Diese kann fuer sehr vieles auch komplexes genutzt werden, es gibt | Diese kann fuer sehr vieles auch komplexes genutzt werden, es gibt Funktionen um eingaben von dem in den Drucker eingebauten Touchscreen zu lesen, mit Floats und Zeit zu rechnen. | ||
Doch das alles haben wir (noch) nicht | Doch das alles haben wir (noch) nicht angeruehrt, zuerst wollten wir Bilder drucken, denn sobald das geht, so dachten wir, kann man die eingebauten Textlayout, die 1- und 2-d-Datacodegeneration einfach ignorieren und alles in familliaereren Umgebungen auf unseren Laptops erstellen, ganz ohne eine properitaere Dokumentenbeschreibungssprache zu lernen. | ||
Das Protokoll unterstuetzt das hochladen von Bildern mithilfe des `IMAGE LOAD` Befehls den ich zuerst versucht habe zu implementieren, im nachhinein hat das hochladen wohl funktioniert nur die Befehle `IMAGES` und `IMAGE` haben diese nicht als solche erkannt, war mir aber dann auch zu bloed. | |||
Also habe ich mich dem `PRBUF` Befehl und dem gleichnamigen [https://sps-support.honeywell.com/s/article/How-can-the-Fingerprint-PRBUF-command-used-to-print-an-image Encoding] gewidmet, dieses habe ich in einigen Stunden [https://pkg.go.dev/github.com/rileys-trash-can/libfp/prbuf implementieren] koennen nur um danach zu realisieren, dass unser Drucker (laut doku unterscheidet sich der support bei manchen Modellen) durch den selben Befehl auch (unter anderem) PNG und GIF (ohne animation :/ ) Datein haette lesen koennen. Darum ist der Encoder auch noch etwas verbuggt. | |||
Was macht man nun, wenn man auf einem Geraet mit Numpad und LCD auf den eine shell gefunden wird? - Doom? | Waehrendessen habe ich einen weitere vielversprechenden Befehl entdeckt, die `BEEP` und `SOUND` Befehle, der letztere es ermoeglicht eine Frequenz fuer eine bestimmte Zeit abzuspielen. | ||
Es folgt: Musik (part 1): um diesen auszunutzen habe ich ein script geschrieben dass midi Dateien abspielen kann. | |||
Danach habe ich beim Durch scrollen [https://www.barcodedeus.de/artikeldownload/pdf_en/Inter-C4_Guide.pdf einem der Dokumente] eine sehr komische zeile gelesen und damit einen noch lustigeren Befehl entdeckt:<syntaxhighlight> | |||
RUN "insmod <device><file>" (insert module) | |||
</syntaxhighlight>insmod, ist das nicht Linux kernel bzw. einfach shell command? - Ja!<syntaxhighlight> | |||
RUN "ash" | |||
</syntaxhighlight>liefert eine shell - leider nur als normal-sterblich und nicht root aber immerhin! (insmod als user, richtig gehoert) | |||
Was macht man nun, wenn man auf einem Geraet mit Numpad und LCD auf den eine shell gefunden wird? - Doom? | |||
Eigentlich ja, aber das cross-compilen fuer ein altes ARMv6 Linux ist leider nicht so einfach wie wir gehofft haben :(. | |||
Next up, ist altes Linux, hmm... , Ich hatte grade etwas ueber das Linux Sound-subsystem recherchiert. also.... | |||
* gibt es `/dev/dsp` - ja. | * gibt es `/dev/dsp` - ja. | ||
* `cat rickroll.wav > /dev/dsp` - ja, aber zu langsam | * `cat rickroll.wav > /dev/dsp` - ja, aber zu langsam | ||
* | * re-encoding mit verschiedenen samplerates? (`ffmpeg -ac 1 -ar 32000`) | ||
* tut | * tut | ||
der Drucker kann jetzt echtes Audio! Und der eingebaute Lautsprecher (ein kleines 2W Model) ist gar nicht so schlecht, ABER wir haben ja ne Schublade voll welcher aus Laptops... - TLDR: der Drucker hat jetzt zwei ziemlich grosse Laptop Lautsprecher | der Drucker kann jetzt echtes Audio! Und der eingebaute Lautsprecher (ein kleines 2W Model) ist gar nicht so schlecht, ABER wir haben ja ne Schublade voll welcher aus Laptops... - TLDR: der Drucker hat jetzt zwei ziemlich grosse Laptop Lautsprecher | ||
Resultate: | Resultate: [https://social.schaffenburg.org/@schaffenburg/111691754197457737 social.schaffenburg.org/@schaffenburg/111691754197457737] | ||
Musik: [https://soundcloud.com/meltedmoon/pripyat Pripyat] von [https://soundcloud.com/meltedmoon Melted Moon] | |||
Links zu Zeugs: | |||
* resultierendes [https://github.com/rileys-trash-can/libfp GitHub repo] | |||
* [https://www.barcodedeus.de/artikeldownload/pdf_en/Inter-C4_Guide.pdf Intermec Fingerprint® v8.10] | |||
* [https://prod-edam.honeywell.com/content/dam/honeywell-edam/sps/ppr/ja/public/products/printers/industrial/px4i/documents/sps-ppr-intermec-direct-protocol-860-programmers-reference-manual-60.pdf Intermec Direct Protocol v8.60] |