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

Índice / Artículos / Trabajar con hardware especial de China

Trabajar con hardware especial de China

Sobre desarrollar software sin manual

Publicado
Actualizado
(creado )
Escrito por
Willem L. Middelkoop
Temas
android · hacking · lemmid-store · programación · snake · trabajo
Versión humana de este artículo
https://willem.com/es/2020-12-31_trabajar-con-hardware-especial-de-china/
English
Working with special hardware from China
Nederlands
Werken met speciale hardware uit China
Deutsch
Arbeiten mit spezieller Hardware aus 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
Idiomas
Traducido del original en inglés por un modelo de lenguaje en dos pasadas (traducción y corrección) con un glosario y un corrector ortográfico; aún no revisado por un hablante nativo.

Resumen

Este mes me llegó un envío de China con hardware muy especial: ¡dispositivos Android con impresora integrada! Para facilitarles la vida a los dueños de restaurantes y negocios que usan mi app de pedidos de comida, quiero que estos dispositivos impriman solos los pedidos nuevos. Solo me falta conseguir que estas máquinas funcionen con mi software... ¡reto aceptado!

Texto completo

App de pedidos de comida

A través de una tienda online muy optimizada la gente puede pedir comida para llevar y a domicilio. Mis clientes son restaurantes y dueños de tiendas que venden sus productos con la app. Los pedidos se reenvían al personal de cocina y de reparto para que todo se prepare y se entregue.

La gente usa la app para pedir comida: los pedidos se reenvían al personal de cocina y de reparto
La gente usa la app para pedir comida: los pedidos se reenvían al personal de cocina y de reparto

Hace falta una impresora

En los últimos meses he ido añadiendo funciones para ayudar a mis clientes a gestionar mejor sus tiendas online. Una petición muy habitual es librarse del ordenador o la tableta que ahora tienen en la cocina para ver los pedidos online. En vez de un ordenador grande y aparatoso, busqué una alternativa compacta.

Android con impresora integrada

Tras rastrear varios mercados internacionales, conseguí contactar con un proveedor chino de hardware que ha creado un dispositivo Android con impresora integrada. Unas semanas después llegó de China: ¡qué mundo tan maravilloso el nuestro!

Terminal Android de mano: hardware OEM directo de China
Terminal Android de mano: hardware OEM directo de China

Es un hardware interesante porque:

  • es compacto (comparado con un PC, una tableta o un portátil convencionales)
  • funciona con batería y enchufado a la corriente
  • va con WiFi y tiene opción de internet móvil 4G
  • tiene una pantalla táctil grande
  • puede ejecutar apps nativas de Android
  • puede acceder a la web
  • ¡lleva una impresora integrada!
Lleva Android, con un toque chino (en sentido figurado...)
Lleva Android, con un toque chino (en sentido figurado...)

La impresora integrada es superpráctica, porque convierte el dispositivo en una solución completa para gestionar pedidos online. Desde la pantalla táctil se accede a los pedidos y se puede configurar el dispositivo para que los imprima automáticamente. Así es fácil pasárselos al personal de cocina y de reparto.

Su truco estrella es la impresora integrada: utilísima para gestionar pedidos (online)
Su truco estrella es la impresora integrada: utilísima para gestionar pedidos (online)

Hacer que ejecute algo: software

Para que todo esto funcione, necesito poder ejecutar software propio en el dispositivo. Aunque lleva Android, llegó sin manuales, sin guías y sin kit de desarrollo de software. Es decir, tuve que hacer ingeniería inversa para poder entrar.

Lo mejor que puedes hacer entonces es probar algo que conoces bien y ver si consigues que otra de tus apps funcione en el dispositivo. Conecté el aparato a mi tableta con Linux y me puse a trastear. Resulta que ya había creado una pequeña app para Android... y me pareció la candidata perfecta para probar mi enlace de desarrollo con el dispositivo.

¡Snake '97 en la impresora Lemmid, ja!
¡Snake '97 en la impresora Lemmid, ja!

La ventaja de ejecutar algo que conoces bien en un hardware desconocido es que así tienes una referencia de lo que el hardware puede hacer. ¡Resulta que la impresora Android es bastante capaz!

Sin documentación ni SDK

Para aprovechar a fondo el hardware, necesitaba averiguar cómo programar la impresora integrada. El proveedor chino la integró de una forma poco estándar en Android (en la medida en que exista una forma estándar en Android...). Los dispositivos llegaron sin software ni código fuente: ¡un fastidio!

Investigué los números de serie y de modelo del dispositivo OEM. Busqué cualquier pista y rastreé internet en busca de dispositivos parecidos. Quizá encontrara algún fragmento de código fuente (relacionado) que me diera un punto de partida para trabajar con este aparato.

Ingeniería inversa de código Java

Tras horas de investigación, ¡encontré en un rincón remoto de internet un paquete con código fuente de un dispositivo parecido! El problema era que... ¡estaba todo en chino!

Código chino para hacer funcionar la impresora... ¿cómo se puede entender esto?
Código chino para hacer funcionar la impresora... ¿cómo se puede entender esto?
¡Google Translate al rescate!
¡Google Translate al rescate!

Analicé el código fuente y enseguida entendí cómo funcionaba lo básico. Con Google Translate descubrí que algunas partes del código eran limitadas o no estaban del todo soportadas. ¡Pero al menos tenía un punto de partida! Al final no solo conseguí leer el código fuente chino, sino también escribir software para él.

Código Java para controlar la impresora
Código Java para controlar la impresora

El siguiente paso fue crear un programa de prueba para comprobar si el código chino adaptado funcionaba de verdad. Si lo conseguía, podría empezar a escribir software de verdad para la impresora Android, software que acabarán usando mis clientes. Pues bien... ¡funcionó! La impresora empezó a hacer ruido y, voilà: ¡apareció un logotipo de Lemmid!

¡SÍ! ¡La impresora imprime el logotipo de «Lemmid» en un ticket!
¡SÍ! ¡La impresora imprime el logotipo de «Lemmid» en un ticket!

Conclusión

¡Esto es genial! Estoy muy contento de haber encontrado la manera de escribir software para este hardware tan especial. Me permite integrarlo en la plataforma que estoy construyendo para mis clientes.

Si te llevas una cosa de este artículo, que sea esta: a veces hay que intentarlo y ver si encuentras la manera de que las cosas funcionen. ¡Porque solo si no lo intentas puedes estar completamente seguro de que no funcionará!

Formatos legibles por máquinas de esta página