Sprachen: English · Nederlands · Deutsch · Español · Français · Italiano · Português · Papiamentu · Frysk

Index / Beiträge / Arbeiten mit spezieller Hardware aus China

Arbeiten mit spezieller Hardware aus China

Software entwickeln ohne Handbuch

Veröffentlicht
Aktualisiert
(erstellt )
Geschrieben von
Willem L. Middelkoop
Themen
android · Hacking · lemmid-store · Programmierung · snake · Arbeit
Menschliche Version dieses Beitrags
https://willem.com/de/2020-12-31_arbeiten-mit-spezieller-hardware-aus-china/
English
Working with special hardware from China
Nederlands
Werken met speciale hardware uit China
Español
Trabajar con hardware especial de China
Français
Travailler avec du matériel spécial venu de Chine
Italiano
Lavorare con hardware speciale dalla Cina
Português
Trabalhar com hardware especial da China
Papiamentu
Traha ku hardware special for di Sina
Frysk
Wurkje mei bysûndere hardware út Sina
Sprachen
Aus dem englischen Original von einem Sprachmodell in zwei Durchgängen (Übersetzung und Korrektur) mit Glossar und Rechtschreibprüfung übersetzt; noch nicht von einem Muttersprachler gelesen.

Zusammenfassung

Diesen Monat kam eine Lieferung aus China mit spezieller Hardware bei mir an: Android-Geräte mit eingebautem Drucker! Damit es die Restaurant- und Ladenbesitzer, die meine Bestell-App nutzen, leichter haben, sollen diese Geräte neue Bestellungen automatisch ausdrucken. Wenn ich diese Maschinen nur mit meiner Software zum Laufen bekomme... Herausforderung angenommen!

Volltext

Bestell-App für Essen

Über einen hochoptimierten Webshop können Leute Essen zum Mitnehmen und zur Lieferung bestellen. Meine Kunden sind Restaurants und Ladenbesitzer, die ihre Produkte über die App verkaufen. Die Bestellungen gehen an das Küchen- und Lieferpersonal, damit alles zubereitet und geliefert wird.

Leute bestellen Essen über die App, die Bestellungen gehen an Küche und Lieferpersonal
Leute bestellen Essen über die App, die Bestellungen gehen an Küche und Lieferpersonal

Ein Drucker muss her

In den letzten Monaten habe ich neue Funktionen eingebaut, damit meine Kunden ihre Online-Shops besser verwalten können. Ein häufiger Wunsch: den Computer oder das Tablet in der Küche loswerden, mit dem sie jetzt die Online-Bestellungen abrufen müssen. Statt eines großen, sperrigen Computers suchte ich also eine kompakte Alternative.

Android mit eingebautem Drucker

Nachdem ich auf verschiedenen internationalen Marktplätzen gestöbert hatte, konnte ich einen chinesischen Hardware-Anbieter kontaktieren, der ein Android-Gerät mit integriertem Drucker gebaut hat! Ein paar Wochen später kam es aus China an. In was für einer wundervollen Welt wir leben!

Android-Handterminal, OEM-Hardware direkt aus China
Android-Handterminal, OEM-Hardware direkt aus China

Das ist ein interessantes Stück Hardware, denn es ist:

  • kompakt (verglichen mit einem normalen PC, Tablet oder Laptop)
  • es läuft mit Akku und mit Netzstrom
  • es funktioniert per WiFi und optional mit mobilem 4G-Internet
  • es hat einen großen Touchscreen
  • es führt native Android-Apps aus
  • es kann ins Web
  • es hat einen eingebauten Drucker!
Es läuft Android, mit etwas chinesischer Soße obendrauf (im übertragenen Sinn...)
Es läuft Android, mit etwas chinesischer Soße obendrauf (im übertragenen Sinn...)

Der eingebaute Drucker ist super praktisch, denn so wird das Gerät zur Komplettlösung für Online-Bestellungen. Über den Touchscreen kann man die Bestellungen abrufen, und das Gerät lässt sich so einstellen, dass es sie automatisch ausdruckt. So gehen sie einfach an das Küchen- und Lieferpersonal weiter.

Sein Clou ist der eingebaute Drucker, super nützlich für die Abwicklung von (Online-)Bestellungen
Sein Clou ist der eingebaute Drucker, super nützlich für die Abwicklung von (Online-)Bestellungen

Irgendwas zum Laufen bringen

Damit das alles klappt, muss ich eigene Software darauf laufen lassen. Das Gerät läuft zwar mit Android, kam aber ohne Handbuch, ohne Anleitung und ohne Software Development Kit. Ich musste mich also per Reverse Engineering in das Gerät hineinarbeiten.

Das Beste, was man dann tun kann: etwas ausprobieren, das man gut kennt, und sehen, ob sich eine andere eigene App auf dem Gerät zum Laufen bringen lässt. Ich habe das Gerät an mein Linux-Tablet angeschlossen und angefangen zu tüfteln! Zufällig hatte ich schon einmal eine kleine Android-App gebaut... die schien mir der perfekte Kandidat, um meine Entwicklungsverbindung zum Gerät zu testen.

Snake '97 auf dem Lemmid-Drucker, ha!
Snake '97 auf dem Lemmid-Drucker, ha!

Der Vorteil, etwas Bekanntes auf unbekannter Hardware laufen zu lassen: Du bekommst eine Art Referenz dafür, was die Hardware kann. Es zeigt sich, dass der Android-Drucker ziemlich leistungsfähig ist!

Keine Dokumentation, kein SDK

Um die Möglichkeiten der Hardware voll auszuschöpfen, musste ich herausfinden, wie man den eingebauten Drucker programmiert. Der chinesische Anbieter hat den Drucker nicht auf die übliche Android-Art integriert (soweit es auf Android eine übliche Art gibt..). Die Geräte kamen ohne Software und ohne Quellcode, ein echter Dämpfer!

Ich sah mir die Serien- und Modellnummern auf dem OEM-Gerät an. Ich suchte nach jedem Hinweis und durchforstete das Internet nach ähnlichen Geräten. Vielleicht fände ich ja ein Stück (verwandten) Quellcode, der mir einen Ausgangspunkt für die Arbeit an diesem Gerät gäbe.

Java-Code per Reverse Engineering verstehen

Nach Stunden der Recherche fand ich in einer entlegenen Ecke des Internets ein Paket mit Quellcode für ein ähnliches Gerät! Das Problem: Alles war auf Chinesisch!

Chinesischer Code, damit der Drucker läuft... wie soll man das nur verstehen?
Chinesischer Code, damit der Drucker läuft... wie soll man das nur verstehen?
Google Translate zur Rettung!
Google Translate zur Rettung!

Ich analysierte den Quellcode und verstand schnell, wie die Grundlagen funktionieren. Mit Google Translate stellte ich fest, dass manche Teile des Quellcodes eingeschränkt waren oder nicht vollständig unterstützt wurden. Aber immerhin hatte ich einen Ausgangspunkt! Am Ende konnte ich den chinesischen Quellcode nicht nur lesen, sondern auch selbst Software dafür schreiben!

Java-Code zur Ansteuerung des Druckers
Java-Code zur Ansteuerung des Druckers

Der nächste Schritt war ein Testprogramm, das zeigen sollte, ob der angepasste chinesische Quellcode wirklich funktioniert. Wenn das klappte, konnte ich echte Software für den Android-Drucker schreiben, Software, die am Ende meine Kunden nutzen würden. Und siehe da: Es hat funktioniert! Der Drucker begann zu rattern, und voilà: ein Lemmid-Logo erschien!

JA! Der Drucker druckt das „Lemmid“-Logo auf einen Bon!
JA! Der Drucker druckt das „Lemmid“-Logo auf einen Bon!

Fazit

Das ist großartig! Ich bin richtig froh, dass ich einen Weg gefunden habe, Software für diese spezielle Hardware zu schreiben. So kann ich die Hardware in die Plattform einbinden, die ich für meine Kunden baue.

Wenn du aus diesem Beitrag eines mitnimmst, dann das: Manchmal musst du einfach versuchen, einen Weg zu finden, damit etwas funktioniert. Denn nur wenn du es nicht versuchst, kannst du ganz sicher sein, dass es nicht klappt!

Maschinenformate dieser Seite