=======================================================================================
2020年3月20日更新说明：
1、cmd_type_e命令增加获取温度信息的命令；
2、fd_resp_info增加人脸的跟踪ID；
3、增加获取温度的协议；
4、增加设备时间同步CGI命令；
=======================================================================================
采用TCP协议，网络端口90，长连接。

1、客户端请求公共头：
	typedef struct
	{
		unsigned char startCode[3];	//固定“INF”
		unsigned char cmdType; //命令类型，如cmd_type_e所示
		short packetSN;
		short packetNum;
		int dataLength;
	}common_headr;

2、命令类型定义：
	typedef enum
	{
		LOGONReq = 1,	
		LOGONResp = 2,
		FACERectReq = 53,
		FACERectResp = 54,
		GetTempInfoReq = 66,		//新增获取温度信息
		GetTempInfoResp = 67,
	}cmd_type_e;
	
3、客户端登录设备请求相关数据结构：
	typedef struct
	{
		unsigned char userName[32];
		unsigned char password[32];
		int auth_flag;
	}logon_req_info;

4、设备应答客户端登录请求相关数据结构：
	typedef struct
	{
		int userID;
		short errorCode;
		short extLength;
	}logon_resp_info;

5、客户端向设备成功请求人脸坐标设备应答数据结构：
	typedef struct
	{
		int cmdType;	//默认填0
		unsigned char reserved;
	}fd_req_info;
	
	typedef struct
	{
		short left;
		short top;
		short right;
		short bottom;
	}rect_st;
	
	typedef struct
	{
		int face_num;
		unsigned long long trackid[32];		//此处有更新，增加跟踪ID
		rect_st rect_list[32];
	}fd_resp_info;

6、客户端向设备请求人脸坐标失败设备应答数据结构：
	typedef struct
	{
		short errorCode;
		short extLength;
	}fd_resp_error_info;

7、客户端向设备发送温度请求相关数据结构：
	typedef struct
	{
		char devType;	//测温模块类型，此处默认1
		char res[3];
	}temp_info_req;

6、客户端向设备请求温度信息失败设备应答数据结构：
	typedef struct
	{
		short errorCode;
		short extLength;
	}temp_resp_error_info;

9、设备应答温度数据：
	整帧图像的温度数据，如对于热成像的分辨率为256*192，每个像素点对应的温度由一个unsigned short型表示，即
	整帧图像的温度数据长度为256*192*sizeof(unsigned short).
	另外，需要通过下面公式将每个像素点的温度转换成摄氏度，公式为：T（℃）=DATA/16-273.15 。

   备注：
	获取到温度数据之后需要先将256*192的温度数据进行垂直镜像，然后再向右旋转90度。


一、人脸坐标获取命令交互步骤：
1、客户端向设备发送登录请求：
	common_headr + logon_req_info
	
2、设备应答客户端登录请求：
	common_headr + logon_resp_info ，登录成功logon_resp_info中的errorCode=0，其余非零；

3、客户端向设备发送获取人脸坐标请求：
	common_headr + fd_req_info

4、获取人脸坐标请求失败，设备应答：
	common_headr + fd_resp_error_info，其中fd_resp_error_info中errorCode非零；
	
5、获取人脸坐标请求成功，设备应答：
	common_headr + fd_resp_info

二、温度数据获取命令交互步骤：
1、客户端向设备发送登录请求：
	common_headr + logon_req_info
	
2、设备应答客户端登录请求：
	common_headr + logon_resp_info ，登录成功logon_resp_info中的errorCode=0，其余非零；

3、客户端向设备发送获取温度信息的请求：
	common_headr + temp_info_req

4、获取温度信息请求失败，设备应答：
	common_headr + temp_resp_error_info，其中temp_resp_error_info中errorCode非零；

5、获取温度数据请求成功，设备应答：
	common_headr + 整帧图像的温度数据
	
三、客户端同步设备时间CGI命令：
	http://ipaddr/cgi/sys_set?Group=TimeInfo&TimeMethod=0&CameraTime=UTCTime

四、rtsp获取视频流的URL：
1、获取可见光的URL：
   rtsp://ipaddr/1/h264major

2、获取热成像的URL：
   rtsp://ipaddr/1/h264minor










	

