JS Преобразование 32-разрядного числа с плавающей запятой одинарной точности в одно 16-разрядное UINT - PullRequest
0 голосов
/ 15 апреля 2020

для моего нового проекта. Мне нужно преобразовать число с плавающей запятой одинарной точности в один 16-битный UINT. В настоящее время я программирую с Javascript.

Фон:

Я получаю значения из двух измерительных приборов. Каждый из них отправляет 2x16 бит UInt. Я говорю это для 1 32-битного Float с одинарной точностью, и теперь, чтобы переключить мой двигатель, мне нужно преобразовать этот Float с одинарной точностью в один 16-битный UInt. Связь работает через ModBus.

Извините за плохой английский sh. Это не мой родной язык.

Привет Дитер

Код для преобразования UINT в Float 2x16bit:

// Create a buffer
var buf = new ArrayBuffer(4);
// Create a data view of it
var view = new DataView(buf);
// Write the ints to it
view.setUint16(0, msg.payload.data[0]);
view.setUint16(2, msg.payload.data[1]);
// Read the bits as a float; note that by doing this, we're implicitly
// converting it from a 32-bit float into JavaScript's native 64-bit double
msg.payload.Float = view.getFloat32(0);
// Done
return msg;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...