根据文档提取原始数据



我必须从原始六角字符串中提取数据,例如:800200217FFF8000BF5E0000如您所见,我的数据具有12个字节,因此,根据此,我在网上寻找解决方案,我找到了此解决方案:

var s = "800200217fff8000bf5e0000"
var result = [];
for(var i = 0; i < s.length; i+=2)
{
    result.push(parseInt(s.substring(i, i + 2), 16));
}
result = Uint8Array.from(result)

现在,我有:

800200217FFF8000BF5E0000 => 128,2,0,33,127,255,128,128,0,191,94,0,0,0

这是一个好点。但是现在,我在数据提取方面遇到麻烦。根据发送框架的设备的文档,我在第一个字节上的描述中阅读了此信息:

比特|名称|描述

7 |停车插槽状态|0->空,1->占领

6 |电池状态|0->良好的水平,1->不良级别

5-4 |保留|不要考虑

3-2-1-0 |框架类型|0-信息框架,1-保持框架等...

所以我的第一个字节有128,但我真的不认为这会对我有很大帮助。我有一个解决方案,例如除以128、64、32等,如果位是1或0,则可以找到每个解决方案,但我认为这不是一个好的解决方案。

您知道执行我的数据解析的好方法吗?

使用位算子:

var parking_slot_status = result[0] & 1;
var battery_state = result[0] & 2;

获得第七位使用蒙版0x00000001(1(,以获得第六位使用0x00000010(2(等。

相关内容

最新更新