---
title: "Travailler avec du matériel spécial venu de Chine"
date: 2020-12-31
language: fr
topics: ["android", "hacking", "lemmid-store", "programming", "snake", "work"]
source_url: https://willem.com/fr/2020-12-31_travailler-avec-du-materiel-special-venu-de-chine/
---
# Travailler avec du matériel spécial venu de Chine

*Développer du logiciel sans mode d'emploi*

> Ce mois-ci, j'ai reçu un colis de Chine contenant du matériel spécial : des appareils Android avec imprimante intégrée ! Pour faciliter la vie des restaurateurs et commerçants qui utilisent mon appli de commande de repas, je veux que ces appareils impriment automatiquement les nouvelles commandes. Si seulement j'arrive à faire marcher ces machines avec mon logiciel... défi relevé !

## Appli de commande de repas

Grâce à une boutique_en_ligne_ultra-optimisée (https://lemmid-store.com), les gens peuvent commander des repas à emporter ou à se faire livrer. Mes clients sont des restaurateurs et des commerçants qui vendent leurs produits via l'appli. Les commandes sont transmises à la cuisine et aux livreurs, pour que tout soit préparé et livré.

![Les gens utilisent l'appli pour commander des repas, et les commandes sont transmises à la cuisine et aux livreurs](https://willem.com/global/images/d9984fd291cb.webp)

### Besoin d'une imprimante

Ces derniers mois, j'ai ajouté_des_fonctions (https://willem.com/blog/lemmid-store/) pour aider mes clients à mieux gérer leurs boutiques en ligne. Une demande revient souvent : se débarrasser de l'ordinateur ou de la tablette qu'ils doivent aujourd'hui utiliser en cuisine pour accéder aux commandes en ligne. Au lieu d'un gros ordinateur encombrant, j'ai cherché une alternative compacte.

## Android avec imprimante intégrée

Après avoir fouillé plusieurs places de marché internationales, j'ai réussi à contacter un fabricant chinois qui a créé un appareil Android avec imprimante intégrée ! Quelques semaines plus tard, il est arrivé de Chine : quel monde merveilleux que le nôtre !

![Terminal Android portable, du matériel OEM directement venu de Chine](https://willem.com/global/images/be106b0b6553.webp)

C'est un matériel intéressant parce qu'il est :

- compact (comparé à un PC, une tablette ou un ordinateur portable classique)

- il fonctionne sur batterie *et* sur secteur

- il marche en WiFi *et* propose l'option internet mobile 4G

- il a un grand écran tactile

- il peut exécuter des applis Android natives

- il peut accéder au web

- il a une imprimante intégrée !

![Il tourne sous Android, avec une petite sauce chinoise (au sens figuré...)](https://willem.com/global/images/4ca3fdca17db.webp)

L'imprimante intégrée est super pratique, car elle fait de l'appareil une solution complète pour gérer les commandes en ligne. L'écran tactile permet d'accéder aux commandes, et l'appareil peut être configuré pour les imprimer automatiquement. Cela facilite leur transmission à la cuisine et aux livreurs.

![Son tour de magie, c'est l'imprimante intégrée, super utile pour traiter les commandes (en ligne)](https://willem.com/global/images/c22d0497647e.webp)

## Faire tourner quelque chose / du logiciel

Pour que tout cela fonctionne, je dois pouvoir y exécuter mon propre logiciel. Même s'il tourne sous Android, les appareils sont arrivés sans manuel, sans guide ni kit de développement logiciel. J'ai donc dû faire de la rétro-ingénierie pour entrer dans cet appareil.

Le mieux à faire alors, c'est d'essayer quelque chose que tu connais bien, de voir si tu peux faire tourner une autre de tes applis sur l'appareil. J'ai connecté l'appareil à ma_tablette_Linux (https://willem.com/en/2020-09-28_refining-my-tablet-os-experience/) et je me suis mis à bricoler ! Il se trouve que j'avais déjà créé une petite_appli_Android (https://snake97.com)... elle semblait parfaite pour tester ma liaison de développement avec l'appareil.

![Snake '97 sur l'imprimante Lemmid, ha !](https://willem.com/global/images/490062964133.webp)

L'avantage de faire tourner quelque chose de bien connu sur du matériel inconnu, c'est qu'on obtient une sorte de référence sur ce que le matériel sait faire. Et il s'avère que l'imprimante Android est très capable !

## Pas de documentation ni de SDK

Pour exploiter pleinement les capacités du matériel, je devais comprendre comment programmer l'imprimante intégrée. Le fabricant chinois a intégré l'imprimante d'une façon non standard pour Android (pour autant qu'il existe *une façon standard* sur Android..). Les appareils reçus n'avaient ni logiciel ni code source, vraiment embêtant !

J'ai examiné les numéros de série et de modèle de l'appareil OEM. J'ai cherché le moindre indice et j'ai fouillé internet pour trouver des appareils similaires. Peut-être trouverais-je un morceau de code source (apparenté) qui me donnerait un point de départ pour travailler sur cet appareil.

## Rétro-ingénierie de code Java

Après des heures de recherche, j'ai trouvé dans un recoin lointain d'internet un paquet contenant du code source pour un appareil similaire ! Le problème, c'est que... tout était en chinois !

![Du code chinois pour faire marcher l'imprimante... comment peut-on y comprendre quoi que ce soit ?](https://willem.com/global/images/e8928f950eb8.webp)

![Google Translate à la rescousse !](https://willem.com/global/images/f0cc5bc39dcb.webp)

J'ai analysé le code source et compris rapidement les bases. Avec Google Translate, j'ai découvert que certaines parties du code étaient limitées ou pas entièrement prises en charge. Mais au moins, j'avais un point de départ ! Finalement, je n'ai pas seulement réussi à lire le code source chinois, j'ai aussi pu écrire du logiciel pour cet appareil !

![Du code Java pour piloter l'imprimante](https://willem.com/global/images/31571969ba3a.webp)

L'étape suivante a été de créer un programme de test pour vérifier si le code chinois adapté fonctionnerait vraiment. Si j'y arrivais, je pourrais commencer à écrire du vrai logiciel pour l'imprimante Android, un logiciel que mes clients utiliseront un jour. Eh bien... ça a marché, incroyable ! L'imprimante s'est mise à faire du bruit et hop : un logo Lemmid est apparu !

![OUI ! L'imprimante imprime le logo « Lemmid » sur un ticket !](https://willem.com/global/images/25e13cb105b2.webp)

## Conclusion

C'est génial ! Je suis vraiment content d'avoir trouvé comment écrire du logiciel pour ce matériel spécial. Cela me permet d'intégrer le matériel à la plateforme que je construis pour mes clients.

S'il y a une chose à retenir de cet article, c'est qu'il faut parfois simplement essayer et voir si on trouve un moyen de faire marcher les choses. Car c'est seulement quand tu n'essaies pas que tu peux être vraiment certain que ça ne marchera pas !
