自定义下发类任务
约 668 字大约 2 分钟
自定义下发类任务
自定义下发类任务用来构造自定义数据,通过自定义数据流下发给设备。
提示
关于 自定义数据流 的详细介绍,请浏览 自定义数据流
自定义下发推送方式
当使用自定义下发任务时,您需要指定下发推送方式:
- MQTT:用于设备通过 MQTT 接入自定义数据流。
- TCP:用于设备通过 TCP 接入自定义数据流。
如下图:

静态自定义下发
直接填写要下发的自定义数据,支持自定义数据流的几种数据格式。
例如,下发一个自定义的 JSON 格式消息:

例如,下发一个 Modbus RTU 查询消息:

云函数自定义下发
同样也支持通过云函数来实时构造要下发的自定义数据。如下图:

构造二进制数据
- type:- hex
- msg:- string类型,用十六进制字符串形式表示二进制消息。
例如:
module.exports = function () {
    var data = {
        type: "hex",
        msg: "010300ff8312"
    }
    
    return data;
}
构造 JSON 数据
- type:- json
- msg:- object类型,表示- JSON消息。
例如:
module.exports = function () {
    var data = {
        type: "json",
        msg: {
            "data": {
                "code": "2021",
                "params": {
                    "brightness": 10000
                }
            }
        }
    }
    
    return data;
}
构造 Plaintext 文本消息
- type:- text
- msg:- string类型,表示消息文本。
例如:
module.exports = function () {
    var data = {
        type: "text",
        msg: "control,relay1:0,relay2:1"
    }
    
    return data;
}
Modbus RTU 下发
针对 Modbus RTU 协议快速生成下发消息,支持功能码包括:
- 0x01:读取线圈状态
- 0x02:读取输入状态
- 0x03:读取保持寄存器
- 0x04:读取输入寄存器
- 0x05:写入单个线圈寄存器
- 0x06:写入单个保持寄存器
- 0x10:写入多个保持寄存器

使用非常简单,可以快速生成任务,向设备(或通过 DTU 透传)下发 Modbus 查询指令,同时利用消息规则的 Modbus 解析操作,将从机设备上报的 Modbus 消息直接解析为设备属性。
写入多个保持寄存器
对于 0x10 功能码,可以设置将多个静态数据写入指定的寄存器地址,例如:

也可以设置将设备的指定属性值,作为数据写入指定的寄存器地址,这样便可以实现和设备属性的同步,例如:

有了这样的特性,我们便可以通过 ThingsCloud 提供的通用应用软件及交互组件,快捷的更新设备属性值,然后一键下发 Modbus 指令给设备。