开发者社区 > 物联网 > 正文

JavaScript脚本示例

问题描述

/* 示例数据: 设备上报属性数据: 传入参数:  0x000000000100320100000000 输出结果:  {"method":"thing.event.property.post","id":"1","params":{"prop_float":0,"prop_int16":50,"prop_bool":1},"version":"1.0"} 属性设置的返回结果: 传入参数:  0x0300223344c8 输出结果:  {"code":"200","data":{},"id":"2241348","version":"1.0"} */ function rawDataToProtocol(bytes) {     var uint8Array = new Uint8Array(bytes.length);     for (var i = 0; i < bytes.length; i++) {         uint8Array[i] = bytes[i] & 0xff;     }     var dataView = new DataView(uint8Array.buffer, 0);     var jsonMap = new Object();     var fHead = uint8Array[0]; // commandif (fHead == COMMAND_REPORT) {         jsonMap['method'] = ALINK_PROP_REPORT_METHOD; //ALink JSON格式,属性上报topic。         jsonMap['version'] = '1.0'//ALink JSON格式,协议版本号固定字段。         jsonMap['id'] = '' + dataView.getInt32(1); //ALink JSON格式,标示该次请求id值。var params = {};         params['prop_int16'] = dataView.getInt16(5); //对应产品属性中prop_int16。         params['prop_bool'] = uint8Array[7]; //对应产品属性中prop_bool。         params['prop_float'] = dataView.getFloat32(8); //对应产品属性中prop_float。         jsonMap['params'] = params; //ALink JSON格式,params标准字段。     } else if(fHead == COMMAND_SET_REPLY) {         jsonMap['version'] = '1.0'//ALink JSON格式,协议版本号固定字段。         jsonMap['id'] = '' + dataView.getInt32(1); //ALink JSON格式,标示该次请求id值。         jsonMap['code'] = ''+ dataView.getUint8(5);         jsonMap['data'] = {};     }     return jsonMap; }

期望结果

这个函数如果用c语言在设备解析上传云端该如何编写?占用资源多吗?

.

展开
收起
游客gppnylnkzwgty 2022-09-02 15:13:06 183 0
2 条回答
写回答
取消 提交回答

物联网领域前沿技术分享与交流

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载