======================================================================================= 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