Package designed to handle commercial scales, in an abstract way and using OO, so the user can build on top of what has already been made.
npm install node-balances
// const { VidPidBalanceManager } = require('node-balances')
import { VidPidBalanceManager } from 'node-balances';
// change path and balanceModel relative to the connected balance
const manager = new VidPidBalanceManager([{
balanceModel: 'UranoPop',
portId: {
vendorId: 'vendor',
productId: 'product',
},
}]);
manager.start();
manager.addListener('connect', (balance) => console.log(balance.balanceId.port));
manager.addListener('disconnect', (balance) => console.log(balance.balanceId.model));
manager.addListener('reading', (data) => console.log(data));
manager.addListener('error', (err) => console.log(err));
You can use the emulator when you don't have a scale to test with.
Ts:
import type { PortInfo } from 'serialport';
import { GenericEmulator, VidPidBalanceManager } from 'node-balances';
const port: Partial<PortInfo> = {
path: 'path',
locationId: 'locationId',
manufacturer: 'balanceManufacturer',
pnpId: 'pnpId',
productId: 'productId',
serialNumber: 'serialNumber',
vendorId: 'vendorId',
};
const manager = new VidPidBalanceManager([
{ balanceModel: 'Prix3', portId: port },
{ balanceModel: 'UranoPop', portId: port },
]);
const emulator = new GenericEmulator([port], manager);
emulator.connect();
manager.addListener('connect', (balance) => console.log(balance.balanceId.port));
manager.addListener('disconnect', (balance) => console.log(balance.balanceId.model));
manager.addListener('reading', (data) => console.log(data));
manager.addListener('error', (err) => console.log(err));
Js:
const { GenericEmulator, VidPidBalanceManager } = require('node-balances');
const port = {
path: 'path',
locationId: 'locationId',
manufacturer: 'balanceManufacturer',
pnpId: 'pnpId',
productId: 'productId',
serialNumber: 'serialNumber',
vendorId: 'vendorId',
};
const manager = new VidPidBalanceManager([
{ balanceModel: 'Prix3', portId: port },
{ balanceModel: 'UranoPop', portId: port },
]);
const emulator = new GenericEmulator([port], manager);
emulator.connect();
manager.addListener('connect', (balance) => console.log(balance.balanceId.port));
manager.addListener('disconnect', (balance) => console.log(balance.balanceId.model));
manager.addListener('reading', (data) => console.log(data));
manager.addListener('error', (err) => console.log(err));
TODO