Как перевести кастомный набор команд для serialport (RS485) в байты?
Есть физичнская железяка, которая принимает набор комманд. Обмен ведется ASCII символами.
Из документации: "все байты передаются в виде двух ASCII символов старшим байтом вперед. Например команда "A" 34h,31h"
Тут непонятно как эти символьные команды переводить в два байта в nodejs. Как из "A", например сделать, 0x34 0x31
И контрольная сумма считается как XOR по всем символам до поля CRC. Тут тоже вопрос. Та же "A" переводится через charCodeAt(0) сразу в 65. Боюсь побитовое сравнение будет тоже неверным.
Пока взываете к помощи телепатов. Давайте ссылки на всю доступную документацию по железяке. Будем надеяться, что там что-то прояснится. А пока получается по классике:
Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит.
(c): "Понедельник начинается в субботу", 1965, А.Стругацкий, Б.Стругацкий
Еще один вопрос, если можно.
Передача данных там осуществляется в hex. Пример команды задания цены выглядит так:
@105003010B32
CRC считаем последовательно xor от ascii каждого символа
40 ^ 31 ^ 30 ^ 35 ^ 30 ^ 30 ^ 33 ^ 30 ^ 31 ^ 30 ^ 42 ^ 33 ^ 32 у меня 31
У них полная комманда 35
Они считают в hex, вы считаете в десятичной системе. Если подходить к вопросу формально, то вы правы. :)
Потому что у вас правильно записано, а они должны были в своем пруфе написать:
40h xor 31h xor ... xor 32h = 35h
А они написали так, как будто и они в десятичной системе считают - жульство.