本文介绍在本地环境调试数据解析脚本的代码示例,和物联网平台不能正常使用脚本解析数据时的排错方法。
本地环境调试脚本
目前,物联网平台数据解析支持在线测试脚本是否能解析数据,但不支持调试。建议先在本地编写脚本、调试完成后,再将脚本拷贝到物联网控制台的脚本编辑器中。
以下本地调试代码基于物模型数据解析使用示例中的示例脚本。您在实际使用时,请按照您的脚本需求进行具体参数设置。
//Test Demo
function Test()
{
//0x001232013fa00000
var rawdata_report_prop = new Buffer([
0x00, //固定command头,0代表是上报属性。
0x00, 0x22, 0x33, 0x44, //对应id字段,标记请求的序号。
0x12, 0x32, //两字节int16,对应属性prop_int16。
0x01, //一字节bool,对应属性prop_bool。
0x3f, 0xa0, 0x00, 0x00 //四字节float,对应属性prop_float。
]);
rawDataToProtocol(rawdata_report_prop);
var setString = new String('{"method":"thing.service.property.set","id":"12345","version":"1.0","params":{"prop_float":123.452, "prop_int16":333, "prop_bool":1}}');
protocolToRawData(JSON.parse(setString));
}
Test();
线上问题排查
设备端连接物联网平台,上报属性数据后,若数据解析运行正常,在设备列表单击该设备对应的查看,进入设备详情页,在 页签下,可以看到设备上报的数据。
若设备已经上报了数据,但是却没有显示对应的数据,可选择
,通过日志排查问题。问题排查过程如下:
- 选择对应产品,输入DeviceName,单击搜索,业务类型选择物模型上报,查询该设备的相关日志。
- 查看日志记录,日志中会显示脚本转化后的数据和原数据。
- 结合日志说明文档,查看错误码的信息。
- 按照错误码提示,结合脚本和设备上报的数据排查问题。
下面列举一些错误:
- 脚本不存在。
日志中显示错误码为6200。访问日志说明文档,查看错误的具体含义。错误码6200表示脚本不存在。请在控制台检查脚本是否已提交。
- Alink method不存在。
日志中显示错误码为6450。日志说明文档中有该错误码解释:错误码6450表示Alink协议格式的数据中method不存在。 原因是设备上报的自定义/透传格式数据,经过脚本解析为Alink标准格式数据后无method。
日志内容如:
可以从日志内容中看到,错误消息为17:54:19.064, A7B02C60646B4D2E8744F7AA7C3D9567, upstream-error - bizType=OTHER_MESSAGE,params={"params":{}},result=code:6450,message:alink method not exist,...
alink method not exist
,即Alink协议格式的数据中method不存在。这是解析脚本中method定义有问题,需修改脚本。