Vision: eventos
Referencia completa. La firma muestra una tupla de argumentos del listener, no un objeto envolvente.
vision:wrong-cmd
El equipo rechazó el formato; opcodeName identifica el comando.
type Arguments = [
data: {
opcodeName: string;
opcode: number;
params: string[];
}
];jsd.on('vision:wrong-cmd', payload => console.log(payload));vision:machine-status
Estado de la máquina; también actualiza la caché local.
type Arguments = [
data: {
machine: MachineValid;
status: MachineStatusName;
machineInService: boolean;
doorOpen: boolean;
availabilityToDispense: MachineAvailableStatus;
hasLightsOn: boolean;
temperature: string;
}
];jsd.on('vision:machine-status', payload => console.log(payload));vision:channels-progress
Progreso de assignChannels(), con selección actual y verificadas.
type Arguments = [
data: {
progress: number;
current: number;
verified: number;
}
];jsd.on('vision:channels-progress', payload => console.log(payload));vision:channels
Resultado completo tras verificar las 80 selecciones.
type Arguments = [data: SelectionStatus[]];jsd.on('vision:channels', payload => console.log(payload));vision:channel-status
Indica si está activo el canal correspondiente a una selección.
type Arguments = [
data: {
machine: MachineValid;
selection: OneTo240;
active: boolean;
}
];jsd.on('vision:channel-status', payload => console.log(payload));vision:status-selection
Estado de configuración o asociación de una selección.
type Arguments = [
data: {
selection: OneTo240;
status: StatusSelectionName;
}
];jsd.on('vision:status-selection', payload => console.log(payload));vision:dispense-status
Estado de dispensado asociado a un token, con detalle extendido opcional.
type Arguments = [
data: {
token: DispenseToken;
status: string;
machine: MachineValid | null;
tray: ValidTray | null;
channel: ValidChannel | null;
extendedStatus: string | null;
}
];jsd.on('vision:dispense-status', payload => console.log(payload));vision:selection-dispense-config
Velocidad y tiempo posterior configurados para una selección.
type Arguments = [
data: {
selection: OneTo240;
speed: SpeedOption;
timePostRun: TimePostRunOption;
}
];jsd.on('vision:selection-dispense-config', payload => console.log(payload));vision:channels-linked-to-selection
Canales asociados a una selección y estado de la respuesta.
type Arguments = [
data: {
selection: OneTo240;
linkedChannels: {
machine: MachineValid;
tray: ValidTray;
channel: ValidChannel;
}[];
status: StatusChannelsLinkedToSelection;
}
];jsd.on('vision:channels-linked-to-selection', payload => console.log(payload));vision:machine-id
Modelo, número de serie y firmware de la máquina.
type Arguments = [
data: {
machine: MachineValid;
model: string;
serialNumber: string;
firmwareVersion: string;
}
];jsd.on('vision:machine-id', payload => console.log(payload));vision:current-temperature
Temperaturas programada, interior y del aire, y estado del refrigerador.
type Arguments = [
data: {
machine: MachineValid;
workingTemperature: string;
currentTemperatureInsideMachine: string;
currentTemperatureAir: string;
coolUnitStatus: 'ON' | 'OFF';
}
];jsd.on('vision:current-temperature', payload => console.log(payload));vision:alarm-faults-events
Activación o eliminación de una alarma o fallo.
type Arguments = [
data: {
machine: MachineValid;
event: string;
status: 'ACTIVE' | 'CLEARED';
}
];jsd.on('vision:alarm-faults-events', payload => console.log(payload));vision:time-waiting-for-product-collection
Intervalos configurados de recogida y dispensado.
type Arguments = [
data: {
minutesProductCollection: Range<1, 11>;
secondsTimeBetweenDispenseManoeuvres: Range<0, 66>;
secondsBetweenCollectAndStartNextDispense: Range<1, 256>;
}
];jsd.on('vision:time-waiting-for-product-collection', payload => console.log(payload));vision:collect
Respuesta al ciclo de recogida de producto.
type Arguments = [
data: {
machine: MachineValid;
status: string;
}
];jsd.on('vision:collect', payload => console.log(payload));vision:reset-sold-out-channels
Resultado del reinicio de canales agotados.
type Arguments = [
data: {
machine: MachineValid;
status: string;
}
];jsd.on('vision:reset-sold-out-channels', payload => console.log(payload));vision:time-waiting-after-product-collection
Intervalo configurado tras recoger el producto.
type Arguments = [
data: {
secondsBetweenCollectAndStartNextDispense: Range<15, 121>;
}
];jsd.on('vision:time-waiting-after-product-collection', payload => console.log(payload));vision:jsd-version
Identificación y datos de compilación de JSD.
type Arguments = [
data: {
name: string;
compileNumber: string;
compileDate: string;
description: string;
}
];jsd.on('vision:jsd-version', payload => console.log(payload));vision:active-faults
Registro de fallo con contadores, duración y fecha.
type Arguments = [
data: {
machine: MachineValid;
status: 'ACTIVE' | 'CLEARED';
fault: number;
appearancesNumber: number;
partialNumberActivated: number;
minutesActive: number;
date: string;
}
];jsd.on('vision:active-faults', payload => console.log(payload));vision:jsd-dispensing-queue
Conteos de posiciones libres, procesadas y pendientes en la cola.
type Arguments = [
data: {
free: number;
processed: number;
notProcessed: number;
}
];jsd.on('vision:jsd-dispensing-queue', payload => console.log(payload));vision:special-characteristics-selection
Opciones de perecedero, fragilidad y elevador de una selección.
type Arguments = [
data: {
selection: OneTo240;
perishable: boolean;
fragileOrHeavy: boolean;
typeAdjustElevator: 'lower' | 'upper';
timeAdjustElevator: number;
}
];jsd.on('vision:special-characteristics-selection', payload => console.log(payload));vision:perishable-products-config
Límite de temperatura, caducidad y alarma de perecederos.
type Arguments = [
data: {
machine: MachineValid;
perishableActive: boolean;
alarmPerisableTriggered: boolean;
maxTemperature: string;
minutesBeforeExpire: number;
}
];jsd.on('vision:perishable-products-config', payload => console.log(payload));vision:active-faults-list
Códigos y descripciones de los fallos actuales de una máquina.
type Arguments = [
data: {
machine: MachineValid;
faults: {
code: number;
description: string;
}[];
ok: boolean;
}
];jsd.on('vision:active-faults-list', payload => console.log(payload));vision:jsd-status-reset
Confirmación o estado de finalización del reinicio JSD.
type Arguments = [
data: {
type: JsdResetStatus;
}
];jsd.on('vision:jsd-status-reset', payload => console.log(payload));vision:extended-dispense-status-data
Indica si están habilitados los datos extendidos de dispensado.
type Arguments = [
data: {
enabled: boolean;
}
];jsd.on('vision:extended-dispense-status-data', payload => console.log(payload));vision:trays-positioning-phototransistors-status
Lecturas de fototransistores de posicionamiento de bandejas.
type Arguments = [
data: {
machine: MachineValid;
trays: { [key: number]: string | null };
}
];jsd.on('vision:trays-positioning-phototransistors-status', payload => console.log(payload));vision:jsd-license-error
Una restricción de licencia o de control de precios rechazó la operación.
type Arguments = [
data: {
type: 'unknown' | 'expired-license' | 'app-number-not-licensed' | 'price-control-active-direct-dispense-not-allowed';
opcode: number;
actionName: string;
params: string[];
}
];jsd.on('vision:jsd-license-error', payload => console.log(payload));vision:dispensing
Un dispensado está en curso.
type Arguments = [
data: {
token: DispenseToken;
machine: MachineValid | null;
tray: ValidTray | null;
channel: ValidChannel | null;
selection: Range0To81 | null;
}
];jsd.on('vision:dispensing', payload => console.log(payload));vision:waiting-collection
Un dispensado sin carrito alcanzó recogida o espera de recogida.
type Arguments = [
data: {
machine: MachineValid | null;
}
];jsd.on('vision:waiting-collection', payload => console.log(payload));vision:door
Estado de puerta emitido en cada respuesta de máquina, aunque no cambie.
type Arguments = [
data: {
machine: MachineValid;
open: boolean;
}
];jsd.on('vision:door', payload => console.log(payload));vision:connection
Conexión de máquina emitida en cada respuesta de estado, aunque no cambie.
type Arguments = [
data: {
machine: MachineValid;
connected: boolean;
}
];jsd.on('vision:connection', payload => console.log(payload));Los alias usados en estas firmas se definen en tipos de referencia.