Abrir cajón portamonedas en linux

Cómo abrir un cajón portamonedas desde la consola de comandos en linux

Ya vimos hace tiempo como instalar una impresora de tickets en linux mint, pero ¿Cuándo necesitamos una impresora de tickets? En la mayoría de los casos es por que nos hace falta tanto imprimir los recibos como cobrarlos, y lo que vamos a aprender en este artículo es a abrir un cajón portamonedas desde la consola de comandos de linux.

Me gustaría aclarar que a pesar de que no lo he necesitado hacer en windows en un principio la teoría sería la misma y bastaría con ejecutar el comando adaptado a ese sistema operativo, pero lo que nos atañe aquí es linux.

Un cajón portamonedas, o cash drawer en inglés (por si te hace falta), normalmente se controla a través de una impresora de tickets, esto significa que vas a necesitar los dos para poder realizar la maniobra de apertura. Si estás pensando en conectar el cajón portamonedas al pc desgraciadamente no vas a poder hacerlo de forma sencilla, ya que si te fijas el conector de este tipo de cajones es un rj11 similar a los de los teléfonos, con la diferencia de que tiene más hilos de conexión.

Para conseguir abrir el cajón portamonedas vamos a tener que mandarle un comando, el único inconveniente es que no es el cajón portamonedas el que ejecuta ese comando, sino la impresora a la que lo tengamos conectado que lo que hará será mandar corriente para encender un electroimán que libera el cajón para que el muelle lo empuje.

Abrir un cajón portamonedas con una impresora de tickets Epson TM-T20II desde consola de comandos

Como he comentado antes, la instrucción de apertura depende de cada impresora, así que deberás revisar la documentación de tu fabricante o el manual donde suele venir el valor que hay que mandarle a la impresora para que ejecute la orden de apertura.

Léete también  "device eth0 does not seem to be present, delaying initialization" Error en CentOS 6.x al clonar con VMware

En caso de que no aparezca en la documentación puedes ponerte en contacto directamente con el soporte de tu máquina y que te den la instrucción, bastará con que cambies el código por el que indico en el siguiente comando.

Con la impresora conectada y el cajón portamonedas también abriremos una ventana de terminal en linux, y desde cualquier carpeta (es indiferente por que vamos a ejecutar una orden al puerto de la impresora), escribiremos lo siguiente:

echo -en '\033p011' | lp -d EPSON_TM_T20 -o raw

Explicación de las partes:

  • echo -en ‘\033p011‘ : esta parte se encarga de preparar la instrucción que vamos a mandar, donde \033p011 es el código de nuestro fabricante. En este caso es para las impresoras de tickets Epson TM-T20 y TM-T20II (aunque creo que funciona también en otros modelos). Si averiguas el modelo de tu fabricante que funciona por favor deja un comentario con el código y haremos una lista con todos para ayudar a otros usuarios.
  • lp -d EPSON_TM_T20 -o raw : esta instrucción envía el código que hemos preparado antes en formato raw a la impresora que le indiquemos, en este caso EPSON_TM_T20, el cual cambiaremos por el nombre que hayamos dado a nuestra impresora en su configuración.

Al lanzar el comando con el código y la impresora que toca veremos que el cajón portamonedas hace un chasquido y se abre. He de comentar que tarda entre 1 y 2 segundos en realizarse la apertura del cajón, por lo que ese pequeño retraso es normal. Podemos reducirlo simplemente poniendo el comando de abrir antes que el de imprimir en el programa que estemos haciendo.

Léete también  Cómo apagar y encender el PC desde Android

Como anotación dejo aquí un comando que lanzaría una orden de apertura del cajón y otra de impresión de un documento en un solo comando:

echo -en '\033p011' | lp -d EPSON_TM_T20-o raw &  lp -d EPSON_TM_T20 documento.pdf

¿Has averiguado qué comando es el de tu impresora? Si no era el que hemos usado por favor deja el comando completo en los comentarios para que otros usuarios puedan aprovecharlo.


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.