Saltar al contenido

Instalar y empezar a usar JSD ​

Instala el paquete público compilado en tu propia aplicación Node.js. El repositorio fuente es privado; usar el paquete no requiere acceso a él. No necesitas compilar la biblioteca, iniciar sesión en el registro ni publicar nada.

Usa Node.js 20+ para hardware o 20.6+ para el simulador incluido.

1. Instalar en tu aplicación ​

Si tienes un proyecto Node, usa su carpeta. De lo contrario crea uno:

sh
mkdir my-jsd-app
cd my-jsd-app
npm init -y

Instala el cliente y sus dependencias de ejecución con el gestor que prefieras:

sh
npm install @danidoble/serial-node-jsd "serial-core@^0.3.0" "serialport@^13.0.0"
sh
pnpm add @danidoble/serial-node-jsd "serial-core@^0.3.0" "serialport@^13.0.0"
sh
bun add @danidoble/serial-node-jsd "serial-core@^0.3.0" "serialport@^13.0.0"
sh
yarn add @danidoble/serial-node-jsd "serial-core@^0.3.0" "serialport@^13.0.0"

Bun puede administrar las dependencias; estos ejemplos ejecutan Node, no el runtime Bun.

2. Probar sin una máquina ​

El paquete instalado incluye un ejemplo completo y un equipo virtual. Ejecútalo desde la carpeta de tu aplicación, sin clonar nada:

sh
npx --no-install jsd-example simulate
sh
pnpm exec jsd-example simulate
sh
bun run jsd-example simulate
sh
yarn jsd-example simulate

Se conecta a un puerto virtual, imprime eventos JSD reales, consulta la máquina, lee registros, simula una entrega y cierra automáticamente. No abre puertos físicos.

Continúa con el ejemplo completo para explorar comandos, resultados fallidos y el script que puedes copiar.

3. Usar una máquina real ​

Enumera los puertos disponibles:

sh
npx --no-install jsd-example ports

Proporciona después la ruta y velocidad reales:

sh
JSD_PORT=/dev/ttyUSB0 JSD_BAUD_RATE=9600 npx --no-install jsd-example connect
powershell
$env:JSD_PORT = "COM3"
$env:JSD_BAUD_RATE = "9600"
npx --no-install jsd-example connect

En macOS usa tu ruta /dev/cu.usbserial-... en lugar de /dev/ttyUSB0. Con pnpm, Bun o Yarn, usa el ejecutor del paso 2 y cambia simulate por ports o connect.

Escribe help, status, version, id o temperature. El ejemplo mantiene deshabilitado el dispensado real por defecto. Usa quit o Ctrl+C para cerrar.

4. Escribir tu aplicación ​

Importa desde la raíz del paquete y registra los listeners antes de iniciar:

ts
import { JSD } from '@danidoble/serial-node-jsd';

const jsd = new JSD({
  path: '/dev/ttyUSB0', // Sustituye por la ruta real.
  baudRate: 9600,
  autoConnect: false,
  maxReconnectAttempts: 3
});

jsd.on('serial:error', error => console.error(error.message));
jsd.on('serial:jsd-error', message => console.error(message));
jsd.on('serial:connected', info => {
  console.log('Ready:', info.path);
  void jsd.vision.requestMachineIdentification({ machine: 1 })
    .catch(error => console.error(error));
});
jsd.on('vision:machine-id', data => console.log(data));
jsd.on('vision:machine-status', data => {
  console.log(data.machine, data.availabilityToDispense);
});

const shutdown = () => {
  void jsd.stop().catch(error => {
    console.error(error);
    process.exitCode = 1;
  });
};
process.once('SIGINT', shutdown);
process.once('SIGTERM', shutdown);

jsd.start();

También es JavaScript válido: guárdalo como connect.mjs y ejecuta node connect.mjs. El bloque ts activa resaltado y verificación de tipos; no implica compilar la biblioteca.

start() devuelve void. La disponibilidad serial llega en serial:connected y la disponibilidad de máquina por separado. JSD consulta automáticamente las máquinas 1–4 tras conectar. Espera stop() en el flujo de cierre de tu aplicación.

Para plazos, comandos, simulación y limpieza completa, copia el script completo.

CommonJS ​

js
const { JSD, SerialStatus } = require('@danidoble/serial-node-jsd');

El paquete incluye declaraciones ESM y CommonJS. Continúa con configuración de conexión, eventos tipados y errores y recuperación.

Protocolo explícito, eventos tipados y transporte aislado.