单元 2:创建数据解析脚本¶
由于创建 人体感应器产品 时 接入方式 为 支持 EnOS IoT 和自定义,该产品下的设备可以上传任何格式的数据(例如,二进制数据)至 EnOS。
本单元展示如何创建数据解析脚本以对上游数据进行编码和解码,以及如何将其上传至 EnOS。
更多信息,参见 解析非 EnOS 标准 JSON 格式的数据。
创建解析脚本¶
到 设备管理 > 产品管理 并点击 人体感应器产品 的 查看 图标。
在产品详情页面里点击 数据解析 标签页。
在 编辑脚本 部分添加以下脚本处理来自设备的非标准上行数据。
function rawDataToJsonStr(bytes) { var uint8Array = new Uint8Array(bytes.length); for (var i = 0; i < bytes.length; i++) { uint8Array[i] = bytes[i] & 0xff; } return hex2str(uint8Array); } function hex2str(arr) { var str = ""; for (var i = 0; i < arr.length; i++) { str += String.fromCharCode(arr[i]); } return str; }
测试脚本¶
为验证解析脚本的有效性,可通过模拟数据的方式测试脚本解析的功能。 参照以下以用作模拟数据。
将以下 JSON 转换为 Hex 数据。
{ "id": "1", "version": "1.0", "params": { "events": { "humanMoved": "target" }, "time": 1635865450177 }, "method": "thing.event.HumanMoved.post" }
在 模拟输入 部分输入以下转换后的 Hex 数据,然后单击 运行。
0x7b0a20202020226964223a202231222c0a202020202276657273696f6e223a2022312e30222c0a2020202022706172616d73223a207b0a2020202020202020226576656e7473223a207b0a2020202020202020202020202268756d616e4d6f766564223a20226d6f766564220a20202020202020207d2c0a20202020202020202274696d65223a20313633353836353435303137370a202020207d2c0a20202020226d6574686f64223a20227468696e672e6576656e742e48756d616e4d6f7665642e706f7374220a7d
JSON 输出将显示在 运行结果 中。