Добрый день
В шаблоне стороннего устройства который я создал есть регистр u64
{
"id": "key_number",
"name": "Key Number",
"reg_type": "holding",
"address": 0,
"group": "general",
"readonly": true,
"format": "u64"
}
С командной строки читается правильно.
>modbus_client_rpc -mrtu -pnone -b57600 -s2 /dev/ttyRS485-2 -o200 -a128 -t3 -r0 -c4
SUCCESS: read 4 elements:
Data: 0x8601 0x3e64 0x0009 0xb800
В Устройствах отображается правильно
А в скрипте через
var key_id = dev['tractavt-301-003_128/key_number'];
получается тип number со значением 9656067675277343000 - последние цифры не совпадают.
Попытки сделать строку типа dev[...].toString или dev[...]+"" результат не улучшают.
Для разных ключей то 3 последние цифры зануляются, то две.
Похоже на окргуление , но у одного ключа отброшено (через float что-ли где-то конвертируется ?)
4321777056153896448 4321777056153896400 - тут две цифры
10314784504942266624 10314784504942266000 - тут отброшено, а не округлено
3025810019250769152 3025810019250769000
5982130486717159424 5982130486717159000
18302978955533733888 18302978955533734000
9656067675277342720 9656067675277343000
2666426404434275328 2666426404434275300 - тут две цифры
Я в javascript почти ни какой специалист, но выглядит багой.
