Saltar al contenido

Vision ​

La API de alto nivel usa máquinas 1–4, bandejas 11–18 y canales 0–9. Los índices de máquina del protocolo empiezan en cero y se traducen internamente.

Consultar antes de dispensar ​

ts
jsd.on('vision:machine-status', status => {
  console.log(status.machine, status.availabilityToDispense);
});
await jsd.vision.requestMachineStatus({ machine: 1 });

getMachineStatus(1) lee la caché, no el equipo. Para que isAvailableToDispense({ machine: 1 }) devuelva true, la máquina debe estar conectada, en servicio, con puerta cerrada y disponible como AVAILABLE-TO-DISPENSE o ELEVATOR-COLLECTION-POSITION.

Dispensado y finalización ​

ts
jsd.on('vision:dispense-status', result => console.log(result.token, result.status));
if (jsd.vision.isAvailableToDispense({ machine: 1 })) {
  const delivered = await jsd.vision.dispense({ machine: 1, selection: 12 });
  console.log(delivered);
}

dispense() convierte la selección a bandeja/canal. La velocidad predeterminada es 5 y el tiempo posterior 0. dispenseFromSelection() envía una selección JSD directamente; las operaciones por canal comprueban la disponibilidad almacenada. dispenseFromChannelExtended() añade fragilidad y ajustes del elevador.

Sin cart, COLLECTED o WAITING-COLLECTION resuelve true. Con cart: true, DISPENSED-CAN-MULTIPLE resuelve true. Los fallos resuelven false; los demás estados mantienen pendiente la promesa.

CódigoEstado
0RECEIVED
1IN-PROGRESS
2WAITING-COLLECTION
3COLLECTED
4NO-PERFORMED
5TOKEN-NOT-FOUND
6QUEUE-FULL
7CHANNEL-NO-CONNECTED
8SELECTION-UNAVAILABLE
9FAILED-DISPENSE
10UNCOLLECTED
11DISPENSED-CAN-MULTIPLE
12DISPENSE-CANCELLED
13PRODUCT-EXPIRED

extendedStatus detalla puerta, motor, sensores, elevador, existencias, comunicación o caducidad. Valores desconocidos producen UNKNOWN; sin detalle extendido, el valor es null. Consulta la carga útil.

Canales y carrito ​

ts
jsd.on('vision:channels-progress', data => console.log(data.progress));
const channels = await jsd.vision.assignChannels({ machine: 1 });

La asignación verifica 80 selecciones y emite vision:channels al completar. Solo se admite una asignación simultánea. dispenseCart() procesa lotes de diez, espera disponibilidad entre lotes y devuelve resultados por selección. Registra las excepciones del lote y continúa; no tiene plazo de cancelación.

Configuración y mantenimiento ​

La referencia completa incluye asociaciones de canales, configuración de selección, identificación, temperatura, tiempos, fallos activos e inactivos, perecederos, luces, recogida, cola, autoprueba y reinicio JSD. Consulta todos los eventos Vision.

El estado CONNECTED de una máquina y la conexión serial describen capas distintas.

Protocolo explícito, eventos tipados y transporte aislado.