系统脚本
前言
为了解决多设备数据运算和多设备数据联动,ISM提供了类go语言的格式的系统脚本
新建脚本
执行间隔是脚本的执行间隔时间
输入完脚本后,点击检查,可以检查脚本是否有错误。
脚本函数
GetDeviceData("设备名->数据名") 获取设备的数据
相关信息
参数格式:
设备名->数据名
SetDeviceData("数据名",数据) 设置设备的数据
相关信息
参数格式
参数1:设备名->数据名,
参数2:浮点数
GetModuleDevice("模型名称") 获取系统所有绑定的数据模型设备
相关信息
参数:
模型名称
结果:
返回的数据是对象数组
例子
g = GetModuleDevice("tcp")
for i in g {
Print(i.Name)
f = i.Name+"->功率1"
f1 = i.Name+"->功率2"
f2 = i.Name+"->功率和"
y = GetDeviceData(f)
x = GetDeviceData(f1)
SetDeviceData(f2,x+y)
}
RecordVideo("",100,"path")函数
相关信息
第一个参数:视频名称(这个是添加的视频名称)
第二个参数:录像的时间,单位为秒
第三个参数:保存路径 注意windows下面的路径有反斜杠,要这样表达两个反斜杠表达一个反斜杠
Print(变量名) 打印函数
GetRemoteDbData("数据库类型","用户名","密码",“主机”,端口,“数据库名称”,“SQL语句”)
相关信息
参数:
数据库类型:目前只支持mysql
用户名:连接数据库的用户
密码:连接数据库的用户的密码
主机:数据库主机
端口:数据库主机端口
数据库名称:连接的数据库
SQL语句:执行的SQL语句
例子:
y = GetRemoteDbData("mysql","test","pwd123456","127.0.0.1",3308,"ism","select id ,count from alarm_notice where uuid='feae-dead-eead-erfb'")
for i in y {
Print(i.Name)
Print(y.id)
Print(y.count)
}
BitGet("t->BitValue",5)函数 获取一个整型数据的每个位的值。
相关信息
第一个参数:设备里的数据,格式:设备名->数据名,如t->BitValue
第二个参数:要求获取数据的第几位,如第6位,BitGet("t->BitValue",6)
BitSet("t->BitValue",5,1)函数 设置一个整型数据的某个位的值。
相关信息
第一个参数:设备里的数据,格式:设备名->数据名,如t->BitValue
第二个参数:要求设置数据的第几位
第三个参数:设置此位的值,取值0和1
语法
定义变量
x = 1
y = x + 1
条件
if x < 1 || y < 1 {
println(x)
} else if x < 1 && y < 1 {
Print(y)
} else {
Print(x + y)
}
切片
a = []interface{1, 2, 3}
Print(a) // [1 2 3]
Print(a[0]) // 1
键值对
a = map[interface]interface{"x": 1}
Print(a) // map[x:1]
a.b = 2
a["c"] = 3
Print(a["b"]) // 2
Print(a.c) // 3
结构体
a = make(struct {
A int64,
B float64
})
a.A = 4
a.B = 5.5
Print(a.A) // 4
Print(a.B) // 5.5
函数
func a (x) {
Print(x + 1)
}
a(5) // 6