Как я могу преобразовать следующий код Java в Node.js? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть следующий код Java:

int data = Float.floatToIntBits(4.2);
sendCommand(0x50, data);

public void sendCommand(byte type, int data) {
  byte[] cmd = new byte[FRAME_LENGTH];
  cmd[0] = type;
  cmd[1] = (byte)(data);
  cmd[2] = (byte)(data >>> 8);
  cmd[3] = (byte)(data >>> 16);
  cmd[4] = (byte)(data >>> 24);
  printFrame(cmd);
}

Мне нужно преобразовать его в Node.js. Сначала я подумал об использовании модуля Buffer, но я понятия не имею, как интерпретировать приведенный выше код. Вот моя попытка, но она не выглядит правильной:

const type = 0x50;
const data = 25;
function sendCommand(type, data) {
  const buff = Buffer.from([type, data, data >>> 8, data >>> 16, data >>> 24]);
  console.debug(buff);
}

Можете ли вы посоветовать?

1 Ответ

0 голосов
/ 22 мая 2019

Я был довольно близок ...
Поскольку JavaScript на лету преобразует шестнадцатеричные данные в целые, нам нужно установить их в виде строки.Таким образом, вместо:

const type = 0x50;

Мы должны использовать:

const type = '0x50';

Итак, эквивалент программы Node.js для программы Java, опубликованной в вопросе, будет:

const type = '0x50';
const data = 25;
sendCommand(type, data);

function sendCommand(type, data) {
  const buff = Buffer.from([type, data, data >>> 8, data >>> 16, data >>> 24]);
  console.debug(buff);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...