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

Indice / Articoli / Lavorare con hardware speciale dalla Cina

Lavorare con hardware speciale dalla Cina

Sviluppare software senza un manuale

Pubblicato
Aggiornato
(creato )
Scritto da
Willem L. Middelkoop
Argomenti
android · hacking · lemmid-store · programmazione · snake · lavoro
Versione umana di questo articolo
https://willem.com/it/2020-12-31_lavorare-con-hardware-speciale-dalla-cina/
English
Working with special hardware from China
Nederlands
Werken met speciale hardware uit China
Deutsch
Arbeiten mit spezieller Hardware aus China
Español
Trabajar con hardware especial de China
Français
Travailler avec du matériel spécial venu de Chine
Português
Trabalhar com hardware especial da China
Papiamentu
Traha ku hardware special for di Sina
Frysk
Wurkje mei bysûndere hardware út Sina
Lingue
Tradotto dall’originale inglese da un modello linguistico in due passaggi (traduzione e correzione) con un glossario e un controllo ortografico; non ancora letto da un madrelingua.

Riassunto

Questo mese mi è arrivata dalla Cina una spedizione con hardware speciale: dispositivi Android con stampanti integrate! Per rendere la vita più facile ai ristoratori e ai commercianti che usano la mia app per ordinare cibo, voglio che questi dispositivi stampino automaticamente i nuovi ordini. Se solo riuscissi a far funzionare queste macchine con il mio software... sfida accettata!

Testo completo

App per ordinare cibo

Con un negozio online altamente ottimizzato le persone possono ordinare cibo da asporto e a domicilio. I miei clienti sono ristoranti e negozianti che vendono i loro prodotti tramite l’app. Gli ordini vengono inoltrati al personale di cucina e di consegna, per essere sicuri che tutto venga preparato e consegnato.

Le persone usano l’app per ordinare cibo: gli ordini vengono inoltrati al personale di cucina e di consegna
Le persone usano l’app per ordinare cibo: gli ordini vengono inoltrati al personale di cucina e di consegna

Serve una stampante

Negli ultimi mesi ho aggiunto funzionalità per aiutare i miei clienti a gestire meglio i loro negozi online. Una richiesta frequente è di eliminare il computer o il tablet che ora devono tenere in cucina per vedere gli ordini online. Al posto di un computer grande e ingombrante ho cercato un’alternativa compatta.

Android con stampante integrata

Dopo aver scavato in vari mercati online internazionali, sono riuscito a contattare un produttore cinese di hardware che ha creato un dispositivo Android con stampante integrata! Poche settimane dopo è arrivato dalla Cina: che mondo meraviglioso!

Terminale Android portatile: hardware OEM direttamente dalla Cina
Terminale Android portatile: hardware OEM direttamente dalla Cina

È un hardware interessante perché:

  • è compatto (rispetto a un PC, un tablet o un laptop tradizionale)
  • funziona a batteria e con alimentazione diretta
  • funziona con WiFi e ha l’opzione per internet mobile 4G
  • ha un grande schermo touch
  • può eseguire app Android native
  • può accedere al web
  • ha una stampante integrata!
Gira su Android, con un po’ di salsa cinese (in senso figurato...)
Gira su Android, con un po’ di salsa cinese (in senso figurato...)

La stampante integrata è super pratica, perché rende il dispositivo una soluzione completa per gestire gli ordini online. Con lo schermo touch si accede agli ordini e il dispositivo può essere configurato per stamparli automaticamente. Così è facile inoltrarli al personale di cucina e di consegna.

Il suo asso nella manica è la stampante integrata, super utile per gestire gli ordini (online)
Il suo asso nella manica è la stampante integrata, super utile per gestire gli ordini (online)

Far girare qualcosa / software

Per far succedere tutto questo devo poter eseguire software personalizzato sul dispositivo. Anche se ha Android, i dispositivi sono arrivati senza manuali, istruzioni o kit di sviluppo software. Quindi ho dovuto farmi strada in questo dispositivo con il reverse engineering.

La cosa migliore da fare è provare qualcosa che conosci bene e vedere se riesci a far girare un’altra delle tue app sul dispositivo. Ho collegato il dispositivo al mio tablet Linux e ho iniziato a smanettare! Per caso avevo già creato una piccola app Android... mi sembrava la candidata perfetta per provare il mio collegamento di sviluppo con il dispositivo.

Snake '97 sulla stampante Lemmid, ahah!
Snake '97 sulla stampante Lemmid, ahah!

Il vantaggio di eseguire qualcosa di ben noto su hardware sconosciuto è che puoi stabilire una specie di riferimento per le capacità dell’hardware. Si scopre che la stampante Android è molto capace!

Nessuna documentazione né SDK

Per sfruttare fino in fondo l’hardware dovevo capire come programmare la stampante integrata. Il produttore cinese ha integrato la stampante in modo non standard per Android (per quanto esista un modo standard su Android..). I dispositivi che ho ricevuto non avevano software né codice sorgente, una vera seccatura!

Ho analizzato i numeri di serie e di modello del dispositivo OEM. Ho cercato qualsiasi indizio e ho setacciato internet in cerca di dispositivi simili. Magari trovavo qualche pezzo di codice sorgente (correlato) che mi desse un punto di partenza per lavorare su questo dispositivo.

Reverse engineering del codice Java

Dopo ore di ricerche ho trovato in un angolo remoto di internet un pacchetto con del codice sorgente per un dispositivo simile! Il problema era... che era tutto in cinese!

Codice cinese per far funzionare la stampante... come si fa a capirlo?
Codice cinese per far funzionare la stampante... come si fa a capirlo?
Google Translate in soccorso!
Google Translate in soccorso!

Ho analizzato il codice sorgente e ho capito subito come funzionavano le basi. Con Google Translate ho scoperto che alcune parti del codice sorgente erano limitate o non pienamente supportate. Ma almeno avevo un punto di partenza! Alla fine non solo sono riuscito a leggere il codice sorgente cinese, ma anche a scriverci software!

Codice Java per pilotare la stampante
Codice Java per pilotare la stampante

Il passo successivo è stato creare un programma di prova per verificare se il codice sorgente cinese adattato funzionasse davvero. Se ci fossi riuscito, avrei potuto iniziare a scrivere software vero per la stampante Android, software che alla fine avrebbero usato i miei clienti. Ebbene... guarda un po’, ha funzionato! La stampante ha iniziato a fare rumore ed ecco: è apparso un logo Lemmid!

SÌ! La stampante stampa il logo "Lemmid" su uno scontrino!
SÌ! La stampante stampa il logo "Lemmid" su uno scontrino!

Conclusione

È roba geniale! Sono davvero contento di aver trovato il modo di scrivere software per questo hardware speciale. Mi permette di integrare l’hardware nella piattaforma che sto costruendo per i miei clienti.

Se c’è una cosa da portarsi a casa da questo articolo è che a volte devi semplicemente provare e vedere se trovi il modo di far funzionare le cose. Perché solo se non provi puoi essere davvero sicuro che non funzionerà!

Formati per macchine di questa pagina