Plugin ESC POS v3

Emitir sonido y parpadear LED en impresora térmica

Algunas impresoras térmicas ESC POS tienen un buzzer o zumbador que puede emitir sonidos, también conocidos como pitidos o como “hacer beep“. Otras impresoras, además del buzzer, tienen un LED para enviar notificaciones al momento de imprimir, avisando que un trabajo de impresión está por empezar o por terminar.

Luz y sonido en impresora térmica (Buzzer y LED)

En este post te voy a enseñar cómo hacer que una impresora térmica emita un sonido y envíe una notificación usando su luz LED, teniendo la opción de solo usar sonido, solo el LED o ambos.

Vas a poder hacer que la impresora emita sonidos o encienda su LED incluso si no envías ningún trabajo de impresión, así que puedes usar la POS printer para avisarle al usuario sobre alguna notificación usando sonido.

Recuerda que no todas las impresoras tienen el mismo hardware, en mi caso mi GOOJPRT PT-210 cuenta tanto con un buzzer para hacer pitidos (beep) como con un LED.

Hacer sonido

Para hacer un sonido debemos indicar la cantidad de pitidos o beeps y la duración de los mismos. En este caso hay que usar la operación Beep pasando los 2 argumentos numéricos: la cantidad de beeps y la duración que será multiplicada por 50 milisegundos.

Aquí hay un ejemplo de invocación con JavaScript que después puedes migrar a otros lenguajes de programación:

const cargaUtil = {
  "serial": "",
  "nombreImpresora": "Termica",
  "operaciones": [
    {
      "nombre": "Beep",
      "argumentos": [
        3,
        2
      ]
    }
  ]
};
const respuestaHttp = await fetch("http://localhost:8000/imprimir", {
    method: "POST",
    body: JSON.stringify(cargaUtil)
});
const respuesta = await respuestaHttp.json();
if (respuesta.ok) {
    console.log("Impreso correctamente")
} else {
    console.error("Petición ok pero error en el plugin: " + respuesta.message);
}

Con este código de programación, la impresora emitirá un sonido 3 veces, durando 100 milisegundos cada uno de ellos. Es importante que sepas que al menos en mi GOOJPRT PT-210 el parámetro de duración no tiene efecto, pero seguramente en otras impresoras sí lo tiene.

Que la duración no funcione con Beep no presenta ningún problema, pues para eso existe la función de las impresoras térmicas que permite hacer un beep y “encender la alarma” que básicamente es hacer pitidos y parpadear el LED.

Beep y LED en impresora térmica

Esta operación sí funciona en mi thermal printer. Lo que me gusta es que es una alternativa perfecta a la operación que hace que la impresora emita sonidos, pues aquí sí podemos cambiar la duración de cada sonido, así como elegir si queremos solo usar el LED (alarma), solo el buzzer o ambos.

Veamos un ejemplo a continuación con JavaScript, mismo que puedes usar más adelante con otros lenguajes de programación.

const cargaUtil = {
  "serial": "",
  "nombreImpresora": "Termica",
  "operaciones": [
    {
      "nombre": "BeepAndAlarm",
      "argumentos": [
        3,
        2,
        3
      ]
    }
  ]
};
const respuestaHttp = await fetch("http://localhost:8000/imprimir", {
    method: "POST",
    body: JSON.stringify(cargaUtil)
});
const respuesta = await respuestaHttp.json();
if (respuesta.ok) {
    console.log("Impreso correctamente")
} else {
    console.error("Petición ok pero error en el plugin: " + respuesta.message);
}

En este caso estoy indicando que quiero que se emita un sonido y se parpadee el LED 3 veces con una duración de 100 milisegundos (2 x 50ms), además de indicar que quiero que se use la alarma (LED) y el buzzer para hacer un pitido, siguiendo la descripción de los parámetros de la documentación.

Configurar impresora y descargar servidor HTTP a ESC POS

Para que el código funcione necesitas el servidor local de la API ESC POS ejecutándose y que tu impresora esté compartida. Por favor, sigue los pasos que aparecen en la página previamente enlazada, ya que ahí está la API unificada.

La documentación completa está en: https://parzibyte.me/http-esc-pos-desktop-docs/es/

Notas adicionales

Por alguna extraña razón, solo se puede hacer un beep o beep y alarma una vez por trabajo de impresión. No es necesario imprimir nada, pero sí es necesario enviar un nuevo conjunto de comandos ESC POS cada vez que se quiera emitir sonidos y encender el LED.

Lo he intentado reiniciar con la operación Iniciar y similares, pero me parece que no es posible al menos en mi impresora.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.