Анализировать данные с разной длиной байта для набора последовательных команд

#node.js #serial-communication #node-serialport

#node.js #последовательная связь #узел-serialport

Вопрос:

Мне нужно получить значения для набора команд, которые будут выполняться через регулярные промежутки времени, например

Количество команд Set 1: 10

Количество команд из набора 2: 4

Проблема в том, что команды Set 1 выдадут 2 байта, а команды Set 2 предоставят 4 байта данных, которые являются независимыми шестнадцатеричными значениями, и мне нужно выполнить отдельные вычисления для ответа обоих наборов команд. Эти команды также будут отправляться через регулярные промежутки времени. Я использую анализатор, предоставляемый в библиотеке node serialport

 const ByteLength = require('@serialport/parser-byte-length');
parser = myPort.pipe(new ByteLength({ length: 2})); // pipe the serial stream to the parser
  
 parser.on('data', console.log);
  

Длина байта при изменении с 2 на 4 не сохраняет данные постоянными, как всякий раз, когда происходит событие data, оно загружается во входящий буфер и начинается объединение.

  1. Правильный ли подход?
  2. Как выбрать переменную длину байта, поскольку существует только один глобальный анализатор и экземпляр последовательного порта
  3. Хорошо ли подходит setInterval для этой ситуации