openGW配置计算公式

网关支持对读取数据和写入数据进行数据运算;运算符

运算符功能说明
+,-,/,*加减乘除
&,|,^按位与,按位或,异或
**乘方
%取模
>>,<<左移,右移
||逻辑或
&&逻辑与

属性名称命名规则1. 属性名称的组成 标识符可以由以下字符组成: 字母(Unicode 字母,包括大写和小写字母,如 A-Z、a-z)。 数字(0-9)。 下划线 _。 标识符不能包含其他特殊字符(如 @、#、$、%、空格 等)。2. 属性名称的开头 标识符必须以字母或下划线 _ 开头。 标识符不能以数字开头。3. 属性名称区分大小写 区分大小写的。例如: name 和 Name 是两个不同的标识符。 myVar 和 myvar 也是两个不同的标识符。4. 关键字不能作为属性名称 有 25 个保留关键字,这些关键字不能用作标识符。以下是关键字列表: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var5. 预定义属性名称 有一些预定义的标识符(如 int、string、true、false 等),虽然它们不是关键字,但建议避免将它们用作自定义标识符,以免引起混淆。使用举例:在设备模型属性的”读取计算公式“和”写入计算公式“输入框中填写注)计算公式不能出现非法字符,原属性用字符‘’(t)‘’代入运算,不要用属性标签代入运算公式,如noise*10(非法)。 另外:关注具有读写属性的变量,读取公式和写入公式运算公式应为逆运算逻辑,例如:读公式(t)*10,写公式(t)/101、加减乘除运算

(t)+2
(t)-1
(t)*100
(t)/100

2、取位运算取某一位值可以采用>> 和 &

取第15位((t)>>15)&1
取第14位((t)>>14)&1
取第13位((t)>>13)&1
取第12位((t)>>12)&1
取第11位((t)>>11)&1
取第10位((t)>>10)&1
取第9位((t)>>9)&1
取第8位((t)>>8)&1
取第7位((t)>>7)&1
取第6位((t)>>6)&1
取第5位((t)>>5)&1
取第4位((t)>>4)&1
取第3位((t)>>3)&1
取第2位((t)>>2)&1
取第1位((t)>>1)&1
取第0位(t)&1

取高8位

Plain Text复制代码

1

((t)&240)>>8取低8位

Plain Text复制代码

1

(t)&153、BCD转10进制

uint16

Plain Text复制代码

1

(((t)>>12)&15)*1000+(((t)>>8)&15)*100+(((t)>>4)&15)*10+(((t))&15)

uint32

Plain Text复制代码

1

(((t)>>28)&15)*10000000+(((t)>>24)&15)*1000000+(((t)>>20)&15)*100000+(((t)>>16)&15)*10000+(((t)>>12)&15)*1000+(((t)>>8)&15)*100+(((t)>>4)&15)*10+(((t))&15)4、逻辑判断例子:当采集的值==100时就把值设置成-1

Go运行代码复制代码

1

(t)==100?-1:(t)5、10进制转BCD

Plain Text复制代码

1

((((t)/1000)%10)<<12)+((((t)/100)%10)<<8)+((((t)/10)%10)<<4)+((t)%10)

本网站所收集的公开资料部分来源于互联网,其版权归原作者本人所有,本站只是转载和摘录,目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其的真实性能做到合理的研判负责,也不构成任何其他建议,如果有任何侵犯您权益和知识产权的地方,请来邮或来电告知本站,经过核实,我们会及时的进行整理删除,谢谢!
评论 共0条
取消回复 发布评论