Здравствуйте. Мы работаем над приложением узла для управления оборудованием.
Аппаратное обеспечение используется для оплаты счетов.
Связь с последовательным портом осуществляется через шестнадцатеричный код ..
Но мы не уверены, как рассчитать CRC16 и затем отправить данные через последовательный порт.
Ниже приведен код
const SerialPort = require('serialport');
var CRC16 = require('crc16');
const path = "/dev/ttyS0";
var port = new SerialPort(path,
{
autoOpen: false,
Timeout:1000,
EncryptionStatus: 0,
BaudRate:9600,
RetryLevel : 3 ,
SSPAddress : 0,
PortNumber : 0,
CommandDataLength : 1,
}, function (err) {
if (err) {
return console.log('Error: ', err.message);
}
});
port.open(function (err) {
if (err) {
return console.log('Error opening port: ', err.message);
}} );
port.on("open", function (err) {
if(err) console.log(err);
port.on('data', function (data) {
console.log('Data: on data : ', data);
console.log("from data ", data.toString('hex'));
let json = JSON.stringify(data);
console.log(json);
});
write_data = Buffer.from('7F80010A3F82','hex');
port.write(Buffer.from('7F8001051D82','hex'), function(err) { console.log('message written')});
});
port.on('close', function() { console.log(' DISCONNECTED ') });
port.on('error', function(err) {
console.log('Error: ', err.message);
})
Ниже приведены инструкции Таблица данных о транспортном уровне
вот он-лайн документ: https://sensis.ru/files/bv50-ssp-manual.pdf