Saltar al contenido

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.

ts
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 nombresEventosSignificado
serial:11Sesión, recuperación, tramas y errores de validación
vision:30Máquinas, canales, dispensado y configuración
licensing:6Funciones, licencias, semilla e identificación
manifest:4Líneas del registro y transferencia de manifiestos
mdbCardHolder:16Lector, 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.

Protocolo explícito, eventos tipados y transporte aislado.