在JavaScript中组合8个高位和8个低位

时间:2019-03-11 23:27:55

标签: javascript node-red 16-bit 8-bit

我正在将以毫米为单位的水深发送到我的NodeRed服务器,我目前正在其中尝试重建一个16位Int,该Int被分为8个高位和8个低位。

我尝试只将高位存储在var中,然后将其左移8个空格,然后通过对二者进行“或”运算将低位添加到变量中,但是我没有成功。

我在某处看到有人建议尝试这个

var _firstNumber = (((number8Bit2 & 0xff) << 8) | (number8Bit1 & 0xff));

有没有建议的朋友?

这是节点红色功能

msg1 = {};
msg2 = {};

var buf1 = msg.payload.slice(0,1);
var buf2 = msg.payload.slice(1, 2);

var lvl = (((buf2 & 0xff) << 8) | (buf1 & 0xff));

var buf3 = msg.payload.slice(2,3);
var batt = buf3.readUInt8();

batt = (batt + 127)/100;

msg1.payload = lvl;
msg1.topic = 'waterlevel';
msg2.payload = batt;
msg2.topic = 'battery';

return [msg1, msg2];

0 个答案:

没有答案