温湿度采集系统命令格式.docx
《温湿度采集系统命令格式.docx》由会员分享,可在线阅读,更多相关《温湿度采集系统命令格式.docx(15页珍藏版)》请在冰豆网上搜索。
温湿度采集系统命令格式
温湿度系统数据协议
传感器与显示终端的通信协议:
温湿度探头协议:
0x7eADDR3ADDR2ADDR1ADDR0T1T2T3T4H1H2H3H4BaterryCHECKSUM
0x7e:
数据包头标志,一个字节表示
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
T1:
温度数据1
T2:
温度数据2
T3:
温度数据3
T4:
温度数据4
H1:
湿度数据1
H2:
湿度数据2
H3:
湿度数据3
H4:
湿度数据4
Baterry:
电池电量百分比,一个字节表示,最大100,最小0,例如:
为100时,表示电池电量为100%,为80时,表示此时电池电量为80%
CHECKSUM:
校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
注:
温度与湿度为float型,分别占用4个字节来表示。
具体算法如下:
buffer[0]=0x7e;
buffer[1]=address3;
buffer[2]=address2;
buffer[3]=address1;
buffer[4]=address0;
p=(unsignedchar*)&temperature_f;//温度数据,浮点型
buffer[5]=*p;
p++;
buffer[6]=*p;
p++;
buffer[7]=*p;
p++;
buffer[8]=*p;
p=(unsignedchar*)&humidity_f;//湿度数据,浮点型
buffer[9]=*p;
p++;
buffer[10]=*p;
p++;
buffer[11]=*p;
p++;
buffer[12]=*p;
buffer[13]=100;//电池电量值
buffer[14]=0;
for(i=0;i<15;i++)
{
buffer[15]=buffer[i];
}
显示终端与上位机的通信协议:
---------------------------------------------------------------------------------------------------------------------
1.液晶终端主动向上位机传送一帧实时的温湿度数据格式:
0x7eframeLENTHmonitorAADR1monitorAADR00x01ADDR3ADDR2ADDR1ADDR0T1T2T3T4H1H2H3H4BaterryCHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x01:
液晶终端主动向上位机传送一帧实时的温湿度数据命令字
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
T1:
温度数据1
T2:
温度数据2
T3:
温度数据3
T4:
温度数据4
H1:
湿度数据1
H2:
湿度数据2
H3:
湿度数据3
H4:
湿度数据4
Baterry:
电池电量百分比,一个字节表示,最大100,最小0,例如:
为100时,表示电池电量为100%,为80时,表示此时电池电量为80%
CHECKSUM:
校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
---------------------------------------------------------------------------------------------------------------------
2.液晶终端主动向上位机传送一帧实时的温湿度数据格式之后,上位机应答液晶终端命令:
0x7eframeLENTHmonitorAADR1monitorAADR00x02CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x02:
上位机应答液晶终端主动发送实时温湿度数据命令字
CHECKSUM:
校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
******************************************************************************
3.上位机向液晶终端发送命令读取历史温度:
(上位机发送一次此命令给下位机,下位机就返回一条历史数据给上位机,上位机在不超过规定时间内每下发一次此命令(2秒),终端依次返回下一条历史数据,直到数据读完)
0x7eframeLENTHmonitorAADR1monitorAADR00x03CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x03:
读取温湿度命令
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
4.液晶终端应答上位机读取历史温湿度:
0x7eframeLENTHmonitorAADR1monitorAADR00x04YearMonthDateHourMinuteSecondADDR3ADDR2ADDR1ADDR0T1T2T3T4H1H2H3H4BaterryCHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x04:
液晶终端主动向上位机传送一帧实时的温湿度数据命令字
Year:
历史记录年
Month:
历史记录月
Date:
历史记录日
Hour:
历史记录小时
Minute:
历史记录分
Second:
历史记录秒
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
T1:
温度数据1
T2:
温度数据2
T3:
温度数据3
T4:
温度数据4
H1:
湿度数据1
H2:
湿度数据2
H3:
湿度数据3
H4:
湿度数据4
Baterry:
电池电量百分比,一个字节表示,最大100,最小0,例如:
为100时,表示电池电量为100%,为80时,表示此时电池电量为80%
CHECKSUM:
校验和,一个字节,除校验和本身以外,以上所有字节得累加和,取低字节
******************************************************************************
5.停止读取历史数据:
0x7eframeLENTHmonitorAADR1monitorAADR00x05CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x05:
停止读取历史数据命令
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
6.应答停止读取历史数据命令:
0x7eframeLENTHmonitorAADR1monitorAADR00x06CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x06:
停止读取历史数据命令
CHECKSUM:
校验
******************************************************************************
7.停止报警:
0x7eframeLENTHmonitorAADR1monitorAADR00x07CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x07:
停止报警命令
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
8.应答停止报警:
0x7eframeLENTHmonitorAADR1monitorAADR00x08CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x08:
停止报警命令
CHECKSUM:
校验
******************************************************************************
9.启动报警:
0x7eframeLENTHmonitorAADR1monitorAADR00x09CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x09:
启动报警命令
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
10.应答启动报警:
0x7eframeLENTHmonitorAADR1monitorAADR00x0aCHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x0a:
启动报警命令
CHECKSUM:
校验
******************************************************************************
11.上位机发送命令设置温度报警
0x7eframeLENTHmonitorAADR1monitorAADR20x0b/0x0cADDR3ADDR2ADDR1ADDR0T1T2T3T4CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x0b:
最低温度报警0x0c:
最高温度报警
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
T1:
T2:
T3:
T4:
温度数据
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
12.应答上位机发送命令设置温度报警
0x7eframeLENTHmonitorAADR1monitorAADR20x1d/0x1eADDR3ADDR2ADDR1ADDR0CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x1d:
应答上位机发送命令设置温度报警上限值。
0x1e应答设置下限值
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
CHECKSUM:
校验
******************************************************************************
13.上位机发送命令设置湿度报警
0x7emonitorAADR1monitorAADR20x0e/0x0fADDR3ADDR2ADDR1ADDR00x01H1H2H3H4CHECKSUM
0x7e:
数据包头标志,一个字节表示
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x0e:
最低湿度报警0x0f:
最高湿度报警
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
H1:
H2:
H3:
H4:
湿度数据
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
14.应答上位机发送命令设置湿度报警
0x7eframeLENTHmonitorAADR1monitorAADR20x1f/0x20ADDR3ADDR2ADDR1ADDR0CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x1f:
应答上位机发送命令设置湿度报警上限值。
0x20应答设置下限值
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
CHECKSUM:
校验
******************************************************************************
15.上位机向液晶终端添加一个温湿度探头
0x7eframeLENTHmonitorAADR1monitorAADR20x11ADDR3ADDR2ADDR1ADDR0CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x11:
上位机发送添加探头命令
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
16.应答上位机添加探头命令
0x7eframeLENTHmonitorAADR1monitorAADR20x12/0x13ADDR3ADDR2ADDR1ADDR0CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x12/0x13:
应答上位机发送添加探头命令,设置添加成功应答0x12,设置添加失败应答0x13,
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
CHECKSUM:
校验
******************************************************************************
17.上位机向液晶终端删除一个温湿度探头
0x7eframeLENTHmonitorAADR1monitorAADR20x14ADDR3ADDR2ADDR1ADDR0CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x14:
上位机删除探头命令
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
18.应答上位机向液晶终端删除一个温湿度探头
0x7eframeLENTHmonitorAADR1monitorAADR20x15/0x16ADDR3ADDR2ADDR1ADDR0CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x15/0x16:
应答上位机删除探头命令,0x15删除成功,0x16删除失败
ADDR3:
采集点地址最高字节
ADDR2:
采集点地址
ADDR1:
采集点地址
ADDR0:
采集点地址最低字节
CHECKSUM:
校验
******************************************************************************
19.上位机发送查询液晶终端系统时间
0x7eframeLENTHmonitorAADR1monitorAADR20x17CHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x17:
查询液晶终端系统时间命令
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
20.液晶终端上位机发送查询液晶终端系统时间
0x7eframeLENTHmonitorAADR1monitorAADR20x18yearmonthdatehourminutesecondCHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x18:
应答上位机查询液晶终端系统时间
Year:
年
Month:
月
Date:
日
Hour:
小时
Minute:
分
Second:
秒
CHECKSUM:
校验
******************************************************************************
21.上位机设置液晶终端系统时间
0x7eframeLENTHmonitorAADR1monitorAADR20x19yearmonthdatehourminutesecondCHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x19:
上位机设置液晶终端系统时间
Year:
年
Month:
月
Date:
日
Hour:
小时
Minute:
分
Second:
秒
CHECKSUM:
校验
---------------------------------------------------------------------------------------------------------------------
22.液晶终端应答上位机设置液晶终端系统时间
0x7eframeLENTHmonitorAADR1monitorAADR20x1aCHECKSUM
0x7e:
数据包头标志,一个字节表示
frameLENTH:
帧长度,除去包头与frameLENTH本生之外,余下所有字节的个数
monitorAADR1:
液晶屏地址高字节
monitorAADR0:
液晶屏地址低字节
0x1a:
液晶终端应答上位机设置液晶终端系统时间
CHECKSUM:
校验
*******************************************************************