上面的图片是数据转换说明的截图
终端发送至网关数据格式如表1
表1
数据长度 | 地址(终端ID) | 温度数据 | 湿度 数据 | 工作 电压 | 模拟数据通道 | 数字数据通道 | 校验 |
XX(<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0C) | XX | XX | XX | XX | 7个字节 | XX | XX |
校验:除“数据长度”外的所有字节的异或。
模拟数据通道:
字节1 | 字节2 | 字节3 | 字节4 | 字节5 | 字节6 | 字节7 |
模拟数据口1数据 | 模拟数据口2数据 | 模拟数据口3数据 | 模拟数据口4数据 | 模拟数据口5数据 | 模拟数据口6数据 | 模拟数据口7数据 |
模拟数据口0的数据默认为终端电池电压。
电池电压计算:1)读取终端上报电池电压数据,此时数据为16进制。
2)将读取的16进制数据转换为10进制数据,设此时的10进制数据为N。
3)电池电压的计算公式为:VCC= N×14.85Mv。当上报的16进制电压数据为FF时,VCC的电压达到最大3.787V。
数字数据通道:数字通道由低到高依次为
数字通道 口0数据 | 数字通道 口1数据 | 数字通道 口2数据 | 数字通道 口3数据 | 数字通道 口4数据 | 数字通道 口5数据 | 数字通道 口6数据 | 数字通道 口7数据 |
例:如果数字数据通道上报数据为0F,则表示
数字通道 口0数据 | 数字通道 口1数据 | 数字通道 口2数据 | 数字通道 口3数据 | 数字通道 口4数据 | 数字通道 口5数据 | 数字通道 口6数据 | 数字通道 口7数据 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
其中通道数据“1”表示相应的端口为高电平,通道数据“0”表示相应的端口为低电平。
终端采集的温湿度传感器数据为两个字节,其中一个字节为温度,一个字节为湿度。温度和湿度都是十六进制的数,需要进行计算才能得到实际的数值。
1温度值的计算
1)读取出终端温度传感器上报的温度数据,此时的数据为16进制(设此时的数据为W1)。
2)将W1转换为2进制(设此时的数据为W2),并在W2后面补“011111”(设此时的数据为W3)。
3)将W3再次转换为10进制数据。设此时的10进制数据为SO<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />。
4)根据传感器温度计算公式:Temperature= -39.60+0.01×SO ℃,计算得到实际温度。
例:设读取出的温度传感器上报的16进制温度数据为55。
即W1=55 ;
W2=1010101;
W3=1010101011111 ;
SO=5471
Temperature= -39.60+0.01×SO=-39.60+54.71=15. 11℃
2相对湿度值计算
1)读取出终端温度传感器上报的湿度数据,此时的数据为16进制(设此时的数据为S1)。
2)将S1换为2进制(设此时的数据为S2),并在转换后的2进制数据后面补“0111”(设此时的数据为S3)。
3)将S3再次转换为10进制数据。设此时的10进制数据为SO。
4)根据传感器湿度计算公式:RH=-4+0.0405×SO-2.8×10×SO %,计算得到相对湿度。
例:设读取出的温度传感器上报的16进制温度数据为55。
即S1=55 ;
S2=1010101;
S3=10101010111 ;
SO=1367
RH=-4+0.0405×SO-2.8×10×SO=-4+55.36-5.23=46.13%
5)如果需要根据测得的温度数值对湿度进行修正。那么根据公式:RH=(T℃-25)×(0.01+0.00008×SO)+ RH 可以得到湿度修正后的值。
例:如果需要通过以上的温湿度值来计算修正后的值,则
RH=(T℃-25)×(0.01+0.00008×SO)+ RH
=-9.89×0.11936+46.13
=44.95 %
jizzll_617398179 2008-7-3 20:56
用户160754 2008-6-27 12:21