Разобрать данные с другим ByteLength для набора последовательных команд - PullRequest
0 голосов
/ 25 марта 2019

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

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

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

Проблема в том, что Установить 1 Команды будут выдавать 2 байта и Установить 2 Команды предоставят 4 байта данных, которые независимые значения HEX, и мне нужно выполнить отдельные вычисления на ответ обоих наборов команд. Эти команды также будут отправляться через равные промежутки времени. Я использую синтаксический анализатор, предоставленный в библиотеке 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 не сохраняет данные постоянными, как всякий раз, когда происходит событие данных, он выбрасывает во входящий буфер и начинает конкатенацию.

  1. Правильный ли подход?
  2. Как выбрать переменную ByteLength, поскольку существует только один глобальный анализатор и экземпляр последовательного порта
  3. Является ли SetInterval подходящим для этой ситуации
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...