mitglieder
53
Bearbeitungen
(Initial unformatted stuffs) |
(Fix Infobox) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Infobox Projekt | |||
|name = Labeldrucker | |||
|status = funktioniert manchmal™; alpha | |||
|beschreibung = Software fuer unseren Labeldrucker (ein Honeywell Intermec PM43) | |||
|autor = [[Benutzer:DerZombiiie|Riley]] | |||
|owner = Riley | |||
|image = labelprinter_image.jpg | |||
|version = 1.0 | |||
}} | |||
=== Vorgeschichte: === | |||
Die heilige elektronische Bucht, ein Ort der Wunder und Geheimnisse. | Die heilige elektronische Bucht, ein Ort der Wunder und Geheimnisse. | ||
An einem einsamen Tag verfiel unser byte erneut in ihrem Bann. | An einem einsamen Tag verfiel unser byte erneut in ihrem Bann. | ||
Zeile 15: | Zeile 24: | ||
Ihn fuer schlechte Witze und auch die Musik missbraucht haben und wie auch du das alles machen kannst. | Ihn fuer schlechte Witze und auch die Musik missbraucht haben und wie auch du das alles machen kannst. | ||
- | === Das einfache drucken: === | ||
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 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 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. | |||
Waehrendessen habe ich einen | 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. | |||
* `cat rickroll.wav > /dev/dsp` - ja, aber zu langsam | |||
* re-encoding mit verschiedenen samplerates? (`ffmpeg -ac 1 -ar 32000`) | |||
* 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] |