Сохраняйте нулевой символ при преобразовании из DEC в HEX в Node JS - PullRequest
1 голос
/ 10 марта 2019

Я сейчас читаю идентификационный номер счетчика энергии с Node JS и библиотекой последовательного порта.Идентификатор измерителя мощности имеет следующий формат: xx xx xx xx xx xx.Когда я отправляю команду и получаю данные, я получаю следующие номера DEC: 0 0 24 1 104 115.Следуя инструкциям производителя, я должен преобразовать эту последовательность в HEX.Я добавил его в массив и экспортировал в консоль следующим образом:

console.log(
        (arrID[0]).toString(16)+
          (arrID[1]).toString(16) +
          (arrID[2]).toString(16) +
          (arrID[3]).toString(16) +
          (arrID[4]).toString(16) +
          (arrID[5].toString(16)
      );

, и он вернулся ко мне следующим образом 001816873.Это неправильный идентификатор, правильный номер для показа должен быть 000018016873.Я знаю, что причина в том, что преобразование чисел с первым символом равно 0. Я с нетерпением жду совета от вас.

1 Ответ

0 голосов
/ 10 марта 2019

Я использовал обычный JS, надеюсь, это поможет вам.

var arrID =[0, 0, 24, 1, 104, 115];
var arrID2 = ['','','','','',''];
for(var i=0;i<6;i++)
{
    arrID2[i]=(arrID[i]).toString(16);
    if(arrID2[i].length==1)arrID2[i]='0'+arrID2[i];
}

console.log(
  (arrID2[0])+
  (arrID2[1])+
  (arrID2[2])+
  (arrID2[3])+
  (arrID2[4])+
  (arrID2[5])
)

вывод

000018016873
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...