Eventos tipados
Los eventos se emiten en la instancia JSD, no en jsd.vision ni en las otras aplicaciones. El catálogo de 67 eventos detalla sus campos.
import type { JSDEvents } from '@danidoble/serial-node-jsd';
const onStatus = (...[status]: JSDEvents['vision:machine-status']) => {
console.log(status.machine, status.availabilityToDispense);
};
jsd.on('vision:machine-status', onStatus);
jsd.once('serial:connected', info => console.log(info.path));
jsd.off('vision:machine-status', onStatus);Los mapas contienen tuplas de argumentos. Extrae la carga útil con JSDEvents['vision:machine-status'][0] y la firma de listener con (...args: JSDEvents['vision:machine-status']) => void.
| Espacio de nombres | Eventos | Significado |
|---|---|---|
| serial: | 11 | Sesión, recuperación, tramas y errores de validación |
| vision: | 30 | Máquinas, canales, dispensado y configuración |
| licensing: | 6 | Funciones, licencias, semilla e identificación |
| manifest: | 4 | Líneas del registro y transferencia de manifiestos |
| mdbCardHolder: | 16 | Lector, pagos y sesiones |
Encolado y finalización
La mayoría de los métodos Promise<void> solo encolan el comando. Suscríbete antes de enviarlo; la respuesta llega después por eventos. Ni un ACK ni una promesa de encolado resuelta demuestran que un pago o dispensado terminó bien.
requestLogs(), assignChannels() y las operaciones de dispensado esperan resultados de dominio. No tienen tiempos límite propios; consulta recuperación.
Propiedad de los listeners
EventEmitter de Node ejecuta listeners de forma síncrona. Mantén callbacks breves, elimina solo los listeners de tu componente y captura rechazos dentro de callbacks asíncronos. El evento propio serial:error es distinto del evento especial error de Node.