******** 数据处理 ******** 1. **数据预处理** .. image:: /_static/images/data_process.png :width: 800 - 作用:可以非常方便的二次加工处理设备上报的数据,可以大大减少协议层解析的数据处理工作量,只要属性配置一下就可以。 - 支持的 **预处理** 函数: - ``XML XPath``: 可以非常方便的读取 XML 格式的某个节点数据。 - ``JSONPATH``: 类似于 XML XPath,读取 Json串的 某个属性,比如:$.user.name - ``In range``: 属于验证类,就是满足条件的数据 就进入到平台,不满足的就忽略。 - ``JavaScript``:JS脚本,可以处理任意类型的数据,自定义脚本进行处理。function(value){xxxx; return result;} - ``Replace``: 替换。 - ``Trim``:开头和结尾 移除特定的字符串。 - ``Right trim``:结尾移除特定的字符串。 - ``Left trim``:开头移除特定的字符串。 - ``自定义倍数``:可以方便数据按照指定的倍数放大和缩小。 - ``八进制转十进制``:进制转换。 - ``十六进制转十进制``:进制转换。 .. note:: **注意事项**: 设备属性的 值 类型,字符串 还是 整形 还是 浮点数 是最终需要 ``和 预处理 的返回结果一致`` 2. **属性:依赖项** .. image:: /_static/images/data_process_2.png :width: 800 - 作用:在一个设备每次上报时,如果将所有的测点的数据都作为一个数据包传送到平台的时候来使用,就非常方便派生出具体的各个属性。 - 举例说明: 1. 比如:某个网关设备将 温度 湿度 作为一个数据包上传到平台,数据包解析后 json 文本为:{"wd": 28.6, "sd": 50} 2. 那么针对这种情况,我们只需要建一个属性用来接收 协议层 传送的数据(暂存数据),比如 属性 A。 3. 真正的属性: 温度(属性B),湿度(属性C)都是选择是 【根据单个属性预处理】, ``依赖属性`` 选择 属性A ,并且结合上一步的 ``预处理`` ,属性B 选择 JSONPATH: ``$.wd``, 属性C:``$.sd`` 。