SR1568 и noname RS232/485 proto

Добрый день.
Вместо serial_tool я бы сразу использоваал RPC вызов штатного драйвера, так: Dooya DT82 (Onviz MR-2234F) - #15 от пользователя BrainRoot
Это немного удобнее чем вручную конвертировать.
Для примера:

//08_29_test_01.js
var inputStr = "4144533132333a4745545f50524f44554354200d0a";
inputStr = inputStr.replace(/ /g, '')

var outStr = "";

for (var i = 0; i < inputStr.length; i=i+2){
  var tempStr = inputStr.slice(i, i+2)
  outStr = outStr +"|"+ String.fromCharCode("0x"+tempStr);
  //log.info(i, tempStr)
}

log.info("outStr", outStr);

Выдает:

2024-08-29 12:37:29outStr |A|D|S|1|2|3|:|G|E|T|_|P|R|O|D|U|C|T| | |

Что ожидаемо.
Но вот для “41 11 9A 29 23 46 46 1D 47 15 A2 E9 09 25 4A 12 A4 95 43 51 02 34 49 A5 8C 35 D9 84 D4 90 C1”

outStr |A||š|)|#|F|F||G||¢|é| |%|J||¤|•|C|Q||4|I|¥|Œ|5|Ù|„|Ô||Á

Вместо (ожидаемых) байтов, кроме первого/
41 (верно)
44 → 11
53 ->9A
31 → 29

для 44(0b00100010) получаем 11(0b10001000)
Что видим? Сдвиг на 2 бит.
для 53(0b11001010) - (0b01011001) - тоже сдвиг но на 4. Банально похоже на то что устройство одает два стопбита.
Советую подключить логанализатор и снять обмен.

1 лайк