环境变量
外部会传递环境变量到脚本,在脚本中可以直接调用,环境变量都是用大驼峰模式
db - 数据库对象
db是一个内置的全局变量,可以调用相关数据库操作
javascript
db.insert("温控器.温度","2023-12-25 11:30:00",24.5); //插入浮点
db.insert("温控器.开关","2023-12-25 11:30:00",true); //插入布尔
db.insert("温控器.模式","2023-12-25 11:30:00",1); //插入整形http - 网络请求对象
目前tds脚本当中所有的脚本执行都是同步的,不使用回调函数
以下演示通过脚本,调用http请求监控点数据
javascript
//http的请求参数
var opt = {
hostname: 'localhost',
port: 667,
path: '/rpc',
method: 'POST'
};
//http是tds脚本环境的内置对象,使用http.request函数发起http请求
//http.request是一个同步函数,无需设置回调函数,阻塞代码运行
var resp = http.request(opt);
if(resp!=null){
console.log(resp.body);
}
else{
console.log("请求失败");
}Dev - 当前设备
当脚本被IO设备调用时,会传入该变量
| 属性 | 类型 | 说明 |
|---|---|---|
| Dev.addr | object | |
| Dev.addr.ip | string | 设备IP地址 |
| Dev.addr.port | string | 设备端口 |
| Dev.addr.id | string | 设备id |
| Dev.children | object | 如果当前设备是网关设备,可以访问设备子设备 |
Dev.input 输入设备采集值
自定义脚本采集到数据之后,可以调用该函数将采集值输入到设备通道
javascript
Dev.input({
"temp": 23.1, //temp为通道地址
"humidity": 65.2
})Dev.childInput 输入子设备采集值
网关设备的脚本采集到数据后,解析输入到指定子设备
javascript
Dev.input("dev1", //设备地址 devAddrString
{
"temp": 23.1, //temp为通道地址
"humidity": 65.2
})Dev.doTransaction 请求并等待响应
该函数可以用来进行一些自定义二进制通信协议的请求响应式通信
javascript
//16进制值数组模式请求
var req = [0x01,0x01];
var resp = Dev.doTransaction(req);
//16进制字符串模式请求
var req = "01 01";
var resp = Dev.doTransaction(req);| 参数 | 值类型 | 说明 |
|---|---|---|
| req | uint8 array | 请求二进制数据包,字节数组 |
RecvData 当前接收到的设备主动上送数据
数据接收脚本支持
uint8 array 收到的二进制数据包,字节数组
TdsNotify 接收通知
格式
json
{
"jsonrpc": "2.0",
"method": "onDataUpdate",
"params": [
{
"file": "null",
"tag": "Main.telemetry.core_tailNumber",
"time": "2025-12-31 10:54:24.291",
"val": 5,
"valDesc": "5.0"
}
]
}MqttMsg 接收MQTT消息
可以取 MqttMsg.topic MqttMsg.data