Biblioteca de comunicação com balanças seriais para Node.js.
yarn add felps-dev/nodebalimport { BalancaPadraoKilo } from "nodebal";
// No Windows, o caminho da porta serial é algo como "COM1"
const balanca = new BalancaPadraoKilo("/dev/tty.usbserial-2130");
balanca
.lerPeso(300) // 300 é o valor do preço enviado a balança
.then((peso) => {
console.log(`Peso lido: ${peso}`);
})
.catch((err) => {
console.error(err);
});porta: string - Caminho da porta serialserialConfig: object - Configurações da porta serialbaudRate: number - Taxa de transmissão (em bauds)dataBits: number - Número de bits de dadosstopBits: number - Número de bits de paradaparity: string - Paridade
timeout: number - Tempo limite para leitura da porta serial (em milissegundos)
preco: number - Valor do preço enviado a balança
- Urano US 31/2 POP-S (Testada usando BalancaPadraoKilo)
- Toledo Prix 3/16 (Testada usando BalancaPadraoGrama)
- Urano POP-Z (Testada usando BalancaPadraoGrama com protocolo PRT1)
- Toledo Prix 3 fit (Testada usando BalancaPadraoGrama com protocolo PRT1)
Para adicionar uma nova balança, crie uma nova classe que estenda a classe BalancaBase
e implementeos metodos escreverPreco e processaPeso, e alimente a variável enqCommand.
É opicional também alimentar a variável defaultConfig com as configurações padrões da balança.
Sendo:
escreverPreco: Método que escreve o preço na balança, deve retornar umBuffercom o comando a ser enviado a balança.processaPeso: Método que processa o peso retornado pela balança, recebe umBuffercom o peso retornado pela balança e deve retornar umnumbercom o peso processado.enqCommand:Buffercom o comando de requisição de peso.defaultConfig: Objeto com as configurações padrões da balança.
import { BalancaBase } from "./base";
export class BalancaPadraoKilo extends BalancaBase {
defaultConfig = {
baudRate: 9600 as const,
dataBits: 8 as const,
stopBits: 1 as const,
parity: "none" as const
};
enqCommand = Buffer.from([0x05]);
escreverPreco(preco: number): Buffer {
// Escrever o preço na balança
return Buffer.from([0x02, 0x50, 0x03]);
}
processaPeso(data: Buffer): number {
// Processar o peso retornado pela balança
return 0;
}
}Feito isso basta adicionar o export dela no arquivo index.ts e pronto, sua balança já está suportada.