Saltar al contenido

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.

ts
type Arguments = [
    data: {
      opcodeName: string;
      opcode: number;
      params: string[];
    }
  ];
ts
jsd.on('vision:wrong-cmd', payload => console.log(payload));

vision:machine-status ​

Estado de la máquina; también actualiza la caché local.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      status: MachineStatusName;
      machineInService: boolean;
      doorOpen: boolean;
      availabilityToDispense: MachineAvailableStatus;
      hasLightsOn: boolean;
      temperature: string;
    }
  ];
ts
jsd.on('vision:machine-status', payload => console.log(payload));

vision:channels-progress ​

Progreso de assignChannels(), con selección actual y verificadas.

ts
type Arguments = [
    data: {
      progress: number;
      current: number;
      verified: number;
    }
  ];
ts
jsd.on('vision:channels-progress', payload => console.log(payload));

vision:channels ​

Resultado completo tras verificar las 80 selecciones.

ts
type Arguments = [data: SelectionStatus[]];
ts
jsd.on('vision:channels', payload => console.log(payload));

vision:channel-status ​

Indica si está activo el canal correspondiente a una selección.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      selection: OneTo240;
      active: boolean;
    }
  ];
ts
jsd.on('vision:channel-status', payload => console.log(payload));

vision:status-selection ​

Estado de configuración o asociación de una selección.

ts
type Arguments = [
    data: {
      selection: OneTo240;
      status: StatusSelectionName;
    }
  ];
ts
jsd.on('vision:status-selection', payload => console.log(payload));

vision:dispense-status ​

Estado de dispensado asociado a un token, con detalle extendido opcional.

ts
type Arguments = [
    data: {
      token: DispenseToken;
      status: string;
      machine: MachineValid | null;
      tray: ValidTray | null;
      channel: ValidChannel | null;
      extendedStatus: string | null;
    }
  ];
ts
jsd.on('vision:dispense-status', payload => console.log(payload));

vision:selection-dispense-config ​

Velocidad y tiempo posterior configurados para una selección.

ts
type Arguments = [
    data: {
      selection: OneTo240;
      speed: SpeedOption;
      timePostRun: TimePostRunOption;
    }
  ];
ts
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.

ts
type Arguments = [
    data: {
      selection: OneTo240;
      linkedChannels: {
        machine: MachineValid;
        tray: ValidTray;
        channel: ValidChannel;
      }[];
      status: StatusChannelsLinkedToSelection;
    }
  ];
ts
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.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      model: string;
      serialNumber: string;
      firmwareVersion: string;
    }
  ];
ts
jsd.on('vision:machine-id', payload => console.log(payload));

vision:current-temperature ​

Temperaturas programada, interior y del aire, y estado del refrigerador.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      workingTemperature: string;
      currentTemperatureInsideMachine: string;
      currentTemperatureAir: string;
      coolUnitStatus: 'ON' | 'OFF';
    }
  ];
ts
jsd.on('vision:current-temperature', payload => console.log(payload));

vision:alarm-faults-events ​

Activación o eliminación de una alarma o fallo.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      event: string;
      status: 'ACTIVE' | 'CLEARED';
    }
  ];
ts
jsd.on('vision:alarm-faults-events', payload => console.log(payload));

vision:time-waiting-for-product-collection ​

Intervalos configurados de recogida y dispensado.

ts
type Arguments = [
    data: {
      minutesProductCollection: Range<1, 11>;
      secondsTimeBetweenDispenseManoeuvres: Range<0, 66>;
      secondsBetweenCollectAndStartNextDispense: Range<1, 256>;
    }
  ];
ts
jsd.on('vision:time-waiting-for-product-collection', payload => console.log(payload));

vision:collect ​

Respuesta al ciclo de recogida de producto.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      status: string;
    }
  ];
ts
jsd.on('vision:collect', payload => console.log(payload));

vision:reset-sold-out-channels ​

Resultado del reinicio de canales agotados.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      status: string;
    }
  ];
ts
jsd.on('vision:reset-sold-out-channels', payload => console.log(payload));

vision:time-waiting-after-product-collection ​

Intervalo configurado tras recoger el producto.

ts
type Arguments = [
    data: {
      secondsBetweenCollectAndStartNextDispense: Range<15, 121>;
    }
  ];
ts
jsd.on('vision:time-waiting-after-product-collection', payload => console.log(payload));

vision:jsd-version ​

Identificación y datos de compilación de JSD.

ts
type Arguments = [
    data: {
      name: string;
      compileNumber: string;
      compileDate: string;
      description: string;
    }
  ];
ts
jsd.on('vision:jsd-version', payload => console.log(payload));

vision:active-faults ​

Registro de fallo con contadores, duración y fecha.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      status: 'ACTIVE' | 'CLEARED';
      fault: number;
      appearancesNumber: number;
      partialNumberActivated: number;
      minutesActive: number;
      date: string;
    }
  ];
ts
jsd.on('vision:active-faults', payload => console.log(payload));

vision:jsd-dispensing-queue ​

Conteos de posiciones libres, procesadas y pendientes en la cola.

ts
type Arguments = [
    data: {
      free: number;
      processed: number;
      notProcessed: number;
    }
  ];
ts
jsd.on('vision:jsd-dispensing-queue', payload => console.log(payload));

vision:special-characteristics-selection ​

Opciones de perecedero, fragilidad y elevador de una selección.

ts
type Arguments = [
    data: {
      selection: OneTo240;
      perishable: boolean;
      fragileOrHeavy: boolean;
      typeAdjustElevator: 'lower' | 'upper';
      timeAdjustElevator: number;
    }
  ];
ts
jsd.on('vision:special-characteristics-selection', payload => console.log(payload));

vision:perishable-products-config ​

Límite de temperatura, caducidad y alarma de perecederos.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      perishableActive: boolean;
      alarmPerisableTriggered: boolean;
      maxTemperature: string;
      minutesBeforeExpire: number;
    }
  ];
ts
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.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      faults: {
        code: number;
        description: string;
      }[];
      ok: boolean;
    }
  ];
ts
jsd.on('vision:active-faults-list', payload => console.log(payload));

vision:jsd-status-reset ​

Confirmación o estado de finalización del reinicio JSD.

ts
type Arguments = [
    data: {
      type: JsdResetStatus;
    }
  ];
ts
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.

ts
type Arguments = [
    data: {
      enabled: boolean;
    }
  ];
ts
jsd.on('vision:extended-dispense-status-data', payload => console.log(payload));

vision:trays-positioning-phototransistors-status ​

Lecturas de fototransistores de posicionamiento de bandejas.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      trays: { [key: number]: string | null };
    }
  ];
ts
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.

ts
type Arguments = [
    data: {
      type: 'unknown' | 'expired-license' | 'app-number-not-licensed' | 'price-control-active-direct-dispense-not-allowed';
      opcode: number;
      actionName: string;
      params: string[];
    }
  ];
ts
jsd.on('vision:jsd-license-error', payload => console.log(payload));

vision:dispensing ​

Un dispensado está en curso.

ts
type Arguments = [
    data: {
      token: DispenseToken;
      machine: MachineValid | null;
      tray: ValidTray | null;
      channel: ValidChannel | null;
      selection: Range0To81 | null;
    }
  ];
ts
jsd.on('vision:dispensing', payload => console.log(payload));

vision:waiting-collection ​

Un dispensado sin carrito alcanzó recogida o espera de recogida.

ts
type Arguments = [
    data: {
      machine: MachineValid | null;
    }
  ];
ts
jsd.on('vision:waiting-collection', payload => console.log(payload));

vision:door ​

Estado de puerta emitido en cada respuesta de máquina, aunque no cambie.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      open: boolean;
    }
  ];
ts
jsd.on('vision:door', payload => console.log(payload));

vision:connection ​

Conexión de máquina emitida en cada respuesta de estado, aunque no cambie.

ts
type Arguments = [
    data: {
      machine: MachineValid;
      connected: boolean;
    }
  ];
ts
jsd.on('vision:connection', payload => console.log(payload));

Los alias usados en estas firmas se definen en tipos de referencia.

Protocolo explícito, eventos tipados y transporte aislado.