Skip to content

环境变量

外部会传递环境变量到脚本,在脚本中可以直接调用,环境变量都是用大驼峰模式

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.addrobject
Dev.addr.ipstring设备IP地址
Dev.addr.portstring设备端口
Dev.addr.idstring设备id
Dev.childrenobject如果当前设备是网关设备,可以访问设备子设备

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);
参数值类型说明
requint8 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