Я использую пакет jsmodbus для доступа к серверу TCP Modbus для чтения регистра 126 (номер Modbus 40126), который является 16-разрядным двоичным числом со знаком.
С помощью следующего кода я получаю результаты ниже в ReadHoldingRegistersResponseBody. Я получаю 10, ожидая увидеть 10,1; Как я могу заставить его возвращать число с плавающей точкой вместо int?
Заранее спасибо.
Код:
// create a tcp modbus client
let Modbus = require("jsmodbus");
let net = require("net");
let socket = new net.Socket();
let client = new Modbus.client.TCP(socket);
let options = {
host: "xxxxxx",
port: xxxx
};
socket.on("connect", function() {
client
.readHoldingRegisters(125,1)
.then(function(resp) {
console.log(resp.response._body);
socket.end();
})
.catch(function() {
console.error(
require("util").inspect(arguments, {
depth: null
})
);
socket.end();
});
});
socket.on("error", console.error);
socket.connect(options);
Результат:
ReadHoldingRegistersResponseBody { _fc: 3, _byteCount: 2, _values: [ 10 ], _bufferLength: 4, _valuesAsArray: [ 10 ], _valuesAsBuffer: <Buffer 00 0a> }