终端通信协议
一、消息格式
1.消息头格式
typedef struct _MSG_HEADER{
unsigned short usCmd; //消息命令
unsigned short usVersion; //协议版本
unsigned long ulSessionID; //注册成功后由Server返回,以后的会话都需要携带unsigned long ulSerial; //由发起消息方生成,递增,返回相同的值
unsigned long ulLength; //消息体长度
unsigned short usStatus; //成功返回0,其他值请查错误码
unsigned short usReserved; //保留字
}MSG_HEADER;
2.消息体
通信协议消息是:消息头+消息体;
每个消息请求都必须有一个应答消息,如果没有应答消息或者应答消息表示命令操作失败;
二、消息命令
#define MSG_LOGIN_REQ 0x0001 //终端登录请求
#define MSG_LOGIN_RESP 0x8001 //登录应答
#define MSG_LOGOFF_REQ 0x0002 //终端登出请求
#define MSG_LOGOFF_RESP 0x8002 //登出应答
#define MSG_KEEPALIVE_REQ 0x0003 //终端心跳请求
#define MSG_KEEPALIVE_RESP 0x8003 //心跳应答
#define MSG_GET_BASE_REQ 0x0004 //获取基本参数请求
#define MSG_GET_BASE_RESP 0x8004 //获取基本参数应答
#define MSG_SET_BASE_REQ 0x0005 //设置基本参数请求
#define MSG_SET_BASE_RESP 0x8005 //设置基本参数应答
#define MSG_SET_SYS_REQ 0x0006 //设置系统参数请求
#define MSG_SET_SYS_RESP 0x8006 //设置系统参数应答
#define MSG_GET_ANALYSIS_REQ 0x0007 //获取分析参数请求
#define MSG_GET_ANALYSIS_RESP 0x8007 //获取分析参数应答
#define MSG_SET_ANALYSIS_REQ 0x0008 //设置分析参数请求
#define MSG_SET_ANALYSIS_RESP 0x8008 //设置分析参数应答
#define MSG_GET_CHN_REQ 0x0009 //获取通道参数请求
#define MSG_GET_CHN_RESP 0x8009 //获取通道参数应答
#define MSG_SET_CHN_REQ 0x0010 //设置通道参数请求
#define MSG_SET_CHN_RESP 0x8010 //设置通道参数应答
#define MSG_GET_NET_REQ 0x0011 //获取网络参数请求
#define MSG_GET_NET_RESP 0x8011 //获取网络参数应答
#define MSG_SET_NET_REQ 0x0012 //设置网络参数请求
#define MSG_SET_NET_RESP 0x8012 //设置网络参数应答
#define MSG_GET_PT_REQ 0x0013 //获取平台参数请求
#define MSG_GET_PT_RESP 0x8013 //获取平台参数应答
#define MSG_SET_PT_REQ 0x0014 //设置平台参数请求
#define MSG_SET_PT_RESP 0x8014 //设置平台参数应答
三、消息体说明
1.登录请求
客户端向设备发送登录请求的消息,消息内容如下:
typedef struct _stLoginRequest{
unsigned int dwDeviceID; //该设备ID
unsigned char ucChanNum; //该设备的视频通道数
unsigned char ucDevType; //设备类型(客户端)
unsigned short usReserved; //保留
char szUserName[8]; //登录用户名
char szPassword[8]; //登录密码
}stLoginRequest;
2.登录响应
当设备收到客户端的登录请求后,响应该设备的登录结果;消息内容如下:typedef struct _stGeneralResp{
unsigned short usResult; //结果(0/其他: 成功/失败原因)
unsigned short usReserved; //保留
} stGeneralResp;
3.登出请求
客户端登出时,应向设备发送一个登出请求,消息体为空;
4.登出响应
设备收到客户端登出,对客户端进行登出响应;
5.心跳请求消息
客户端登录设备成功后,在30s之内须向设备发送心跳请求;(设备收到心跳请求后,立即发送心跳响应,如果设备在规定的时间暂定为30s没有收到心跳响应,则认为该链路出现故障,断开此链路。)消息内容为空;
6.心跳响应消息
设备收到客户端心跳请求后,立即发送心跳响应;消息内容为空;
7.获取基本参数
服务器向设备发送获取基本参数请求;消息内容为空;
8.获取基本参数响应
typedef struct _stBaseParamResp{
unsigned short nResult; //结果(0:成功,1:失败)
unsigned short nReserved; //保留
BASEPARAM stBaseParam; //基本参数
} stBaseParamResp;
typedef struct _stBaseParam{
char dwDeviceID[7];
char byFormat;
char szDevName[24];
}BASEPARAM;
9.设置基本参数
服务器向设备发送设置基本参数请求;消息内容为BASEPARAM结构;
8.设置基本参数响应
设备对服务器发送的设置基本参数请求发送响应;消息内容stGeneralResp结构;