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.
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.
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.
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.
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/
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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.