#ifndef _HIK_NET_SDK_DEFINE_H_ #define _HIK_NET_SDK_DEFINE_H_ #if defined(_WIN32) || defined(_WIN64) #if (defined HK_NET_LIBRARY) #define HK_NET_API __declspec(dllexport) bool __stdcall #else #define HK_NET_API __declspec(dllimport) bool __stdcall #endif #define CALLBACK __stdcall #else #define HK_NET_API bool #define CALLBACK #endif #ifdef __cplusplus extern "C" { #endif #ifndef _HK_DEFINE_HKHANDLE_ #define _HK_DEFINE_HKHANDLE_ typedef void *HKHANDLE; typedef void **PHKHANDLE; #endif #ifndef _HK_DEVICE_TYPE_DEF_ #define _HK_DEVICE_TYPE_DEF_ enum { DEVICE_TYPE_HKDQ = 0, DEVICE_TYPE_HIKVISION = 1, //暂未支持 DEVICE_TYPE_MAX, }; #endif #ifndef _HK_SSADP_INFO_DEF_ #define _HK_SSADP_INFO_DEF_ typedef struct tagSADPInfo { int i_type; char sseries[64]; char szSerialNO[64]; char szMac[64]; char szIPv4[64]; char szSubnetMask[64]; char szSoftVersion[64]; char szDSPVersion[64]; char szRelevanceSerialNo[64]; char szGateWay[64]; int i_dhcp; }SSADPINFO, *PSSADPINFO; #endif #ifndef _HK_REALTIME_TEMPERATURE_INFO_DEF_ #define _HK_REALTIME_TEMPERATURE_INFO_DEF_ struct HK_STREAM_FRAME_INFO_S { unsigned int ui_magic_no; unsigned int ui_header_size;//结构体长度 unsigned int ui_stream_type;//0-h264,1-h265,2-jpeg,3-aud,4-meta,5-update,6-rtdata unsigned int ui_stream_len;//数据长度 //rt data info unsigned int ui_rt_data_type;//1-14bit裸数据,2-全屏测温结果数据,3-YUV数据 unsigned int ui_frame_no; unsigned int ui_std_stamp;//DSP相对时间戳 unsigned short us_year; unsigned short us_month; unsigned short us_dayofweek;//0-周日,6-周六 unsigned short us_day; unsigned short us_hour; unsigned short us_minute; unsigned short us_second; unsigned short us_millisecond; unsigned int ui_width; unsigned int ui_height; unsigned int ui_len; unsigned int ui_fps; unsigned int ui_chan; //fs support info unsigned int ui_tm_data_mode;//4字节 or 2字节 unsigned int ui_tm_scale;//测温缩放比例 unsigned int ui_tm_offset;//测温偏移量 unsigned int ui_tm_res; unsigned int ui_res[12]; unsigned int uc_crc_val;//crc校验码 }; #endif #ifndef _HK_REALTIME_VIDEO_CB_FUNC_DEF_ #define _HK_REALTIME_VIDEO_CB_FUNC_DEF_ typedef bool(CALLBACK *REALTIME_VIDEO_CB_FUNC)(unsigned int ui_channel_no, unsigned int ui_stream_type, unsigned char *puc_data, unsigned int ui_len, void *p_user_data); #endif #ifndef _HK_REALTIME_TEMPERATURE_STREAM_CB_FUNC_DEF_ #define _HK_REALTIME_TEMPERATURE_STREAM_CB_FUNC_DEF_ typedef bool(CALLBACK *REALTIME_TEMPERATURE_STREAM_CB_FUNC)(HK_STREAM_FRAME_INFO_S st_frame_info, unsigned char *puc_data, void *p_user_data); #endif #ifndef _HK_VIDEO_RESOLUTION_INFO_DEF_ #define _HK_VIDEO_RESOLUTION_INFO_DEF_ struct video_resolution{ unsigned short us_width; unsigned short us_height; }; #endif #ifndef _HK_REALTIME_TEMPERATURE_RULE_DEF_ #define _HK_REALTIME_TEMPERATURE_RULE_DEF_ struct STRU_ANA_INFO { char pc_ana[128]; }; #endif #ifndef _HK_NET_DEV_SDK_POINT_DEF_ #define _HK_NET_DEV_SDK_POINT_DEF_ struct STRU_POINT { unsigned short us_x; unsigned short us_y; }; #endif #ifndef _HK_LOCAL_TEMPERATURE_INFO_DEF_ #define _HK_LOCAL_TEMPERATURE_INFO_DEF_ typedef struct STRU_TEMPERTURE_INFO { int iType; //0, point, 1 rect, 2 line float fMax; int fMaxX; int fMaxY; float fMin; int fMinX; int fMinY; float fAvg; float fTemp; //iType point int fX; //iType point int fY; //iType point STRU_TEMPERTURE_INFO() { iType = -1; fMax = 0; fMaxX = 0; fMaxY = 0; fMin = 0; fMinX = 0; fMinY = 0; fAvg = 0; fTemp = 0; fX = 0; fY = 0; } }LOCAL_TEMPERATURE_INFO; #endif #ifndef _HK_ANA_TEMPERATURE_DEF_ #define _HK_ANA_TEMPERATURE_DEF_ struct STRU_ANA_TEMPERATURE{ float fp_max; unsigned short us_max_x; unsigned short us_max_y; float fp_min; unsigned short us_min_x; unsigned short us_min_y; float fp_avg; }; #endif //自动切换测温档相关接口 #ifndef _HK_NET_MEAS_RANGE_ #define _HK_NET_MEAS_RANGE_ struct HK_NET_MEAS_RANGE{ unsigned char uc_range_type; float f_range_min; float f_range_max; }; #endif #ifndef _HK_OSD_CONFIG_ #define _HK_OSD_CONFIG_ struct STRU_OSD_CONFIG{ unsigned char uc_show_chan;//0:不显示, 1:显示 unsigned char puc_chan_name[32]; unsigned short us_chan_name_x; unsigned short us_chan_name_y; unsigned char uc_show_time;//0:不显示, 1:显示 unsigned short us_time_x; unsigned short us_time_y; unsigned char uc_time_type;//0: XXXX-XX-XX 年月日, 1: XX-XX-XXXX 月日年, 2: XXXX年XX月XX日, 3: XX月XX日XXXX年, 4: XX-XX-XXXX 日月年, 5: XX日XX月XXXX年, 6: xx/xx/xxxx(月/日/年), 7: xxxx/xx/xx(年/月/日),8: xx/xx/xxxx(日/月/年) unsigned char uc_show_week;//是否显示星期 0:不显示, 1:显示 unsigned char uc_time_attrib;// 1: 透明,闪烁, 2, 透明,不闪烁, 3: 不透明,闪烁, 4: 不透明,不闪烁 unsigned char uc_time_hour_type;//OSD小时制:0-24小时制,1-12小时制 }; #endif #ifndef _HK_PRESET_CONFIG_ #define _HK_PRESET_CONFIG_ struct STRU_PRESET_CONFIG{ unsigned int ui_enable; //1 enable, 0 disable unsigned int ui_especial; //1 especial, 0 normal unsigned int ui_no; unsigned char puc_preset_name[64]; }; #endif #ifndef _HK_NVR_FILE_DEF_ #define _HK_NVR_FILE_DEF_ struct HK_NVR_FILE_COND{ unsigned int ui_start_year; unsigned int ui_start_month; unsigned int ui_start_day; unsigned int ui_start_hour; unsigned int ui_start_minute; unsigned int ui_start_second; unsigned int ui_stop_year; unsigned int ui_stop_month; unsigned int ui_stop_day; unsigned int ui_stop_hour; unsigned int ui_stop_minute; unsigned int ui_stop_second; }; struct HK_NVR_FILE_INFO{ char pc_file_name[128]; unsigned int ui_file_size; unsigned int ui_start_year; unsigned int ui_start_month; unsigned int ui_start_day; unsigned int ui_start_hour; unsigned int ui_start_minute; unsigned int ui_start_second; unsigned int ui_stop_year; unsigned int ui_stop_month; unsigned int ui_stop_day; unsigned int ui_stop_hour; unsigned int ui_stop_minute; unsigned int ui_stop_second; }; #endif #ifndef _HK_NVR_IP_CHANNEL_ #define _HK_NVR_IP_CHANNEL_ struct STRU_NVR_IP_CHANNEL{ char pc_ip[16]; unsigned int ui_channel[2]; }; #endif #ifndef _HK_PLAY_BACK_PACKET_ES_INFO_ #define _HK_PLAY_BACK_PACKET_ES_INFO_ struct HK_PLAY_BACK_PACKET_ES_INFO{ unsigned short us_width; //宽度 unsigned short us_height; //调试 unsigned long ul_time_stamp; //时间戳低位 unsigned long ul_time_stamp_high; //时间戳高位 unsigned short us_year; //时间 unsigned short us_month; unsigned short us_day; unsigned short us_hour; unsigned short us_minute; unsigned short us_second; unsigned short us_millisecond; unsigned int ui_frame_num; //帧号 unsigned int ui_frame_rate; //帧率 unsigned int ui_packet_type; //包类型:0- 文件头,1- 视频I帧,2- 视频B帧, 3- 视频P帧, 10- 音频数据包, 11- 私有数据包 unsigned int ui_packet_size; //包大小 unsigned char *puc_packet_buffer; //缓冲区 }; #endif #ifndef _HK_NDSWN_CHANNEL_ #define _HK_NDSWN_CHANNEL_ struct STRU_NDSWN_CHANNEL{ int i_id; char pc_ip[16]; int i_channel; int i_manage_port; char pc_protocol_type[32]; char pc_dev_sn[64]; }; #endif //设置与获取测温规则 #ifndef _HK_NDSWN_POINT_ #define _HK_NDSWN_POINT_ struct STRU_NDSWN_POINT { float fX; // X轴坐标, 0.000~1 float fY; //Y轴坐标, 0.000~1 }; #endif #ifndef _HK_NDSWN_RULE_ #define _HK_NDSWN_RULE_ struct STRU_NDSWN_RULE{ int i_id; float f_emiss; float f_dist; int i_rule_type;//规则标定类型 0-点,1-框,2-线 STRU_NDSWN_POINT pt_start; STRU_NDSWN_POINT pt_end; }; #endif //报警规则 #ifndef _HK_NDSWN_ALARM_ #define _HK_NDSWN_ALARM_ struct STRU_NDSWN_ALARM{ int i_id; int i_rule;//报警温度比较方式 0-高温大于,1-高温小于,2-低温大于,3-低温小于,4-平均温大于,5-平均温小于,6-温差大于,7-温差小于 float f_alarm;//报警温度 }; #endif //区域报警规则 #ifndef _HK_NDSWN_DIFF_ALARM_ #define _HK_NDSWN_DIFF_ALARM_ struct STRU_NDSWN_DIFF_ALARM{ int i_rule_id1; int i_rule_id2; int i_rule;//报警温度比较方式0-高温大于,1-高温小于,2-低温大于,3-低温小于,4-平均温大于,5-平均温小于,6-温差大于,7-温差小于 float f_diff_alarm;//报警温度 }; #endif #ifndef _HK_NDSWN_TEMPERATURE_UPLOAD_ #define _HK_NDSWN_TEMPERATURE_UPLOAD_ struct STRU_NDSWN_TEMPERATURE_UPLOAD{ int i_id; int i_rule_type;//规则标定类型 0-点,1-框,2-线 int i_temperature_unit;//测温单位: 0-摄氏度(℃),1-华氏度(℉),2-开尔文(K) float f_max; float f_avg; float f_min; STRU_NDSWN_POINT st_max_pt; STRU_NDSWN_POINT st_min_pt; }; #endif //实时温度回调 #ifndef _HK_NDSWN_REALTIME_TEMPERATURE_CB_FUNC_DEF_ #define _HK_NDSWN_REALTIME_TEMPERATURE_CB_FUNC_DEF_ typedef bool(CALLBACK *NDSWN_REALTIME_TEMPERATURE_CB_FUNC)(int i_channel, int i_preset, STRU_NDSWN_TEMPERATURE_UPLOAD *pst_temperature_data, unsigned int ui_len, void *p_user); #endif #ifndef _HK_NDSWN_TEMPERATURE_ALARM_UPLOAD_ #define _HK_NDSWN_TEMPERATURE_ALARM_UPLOAD_ struct STRU_NDSWN_TEMPERATURE_ALARM_UPLOAD{ int i_type;//0普通报警,1温差告警 int i_id1;//规则ID int i_id2;//如果i_type为1则有第二个规则ID,如果i_type为0则本字段不启用 int i_rule_type;//规则标定类型 0-点,1-框,2-线 int i_temperature_unit;//测温单位: 0-摄氏度(℃),1-华氏度(℉),2-开尔文(K) int i_alarm_type;//报警类型 0-最高温度 1-最低温度 2-平均温度 3-温差 int i_alarm_rule;//0-大于,1-小于 float f_rule_temperature;//报警条件的报警温度 float f_curr_temperature;//实际温度 }; #endif //布防回调 #ifndef _HK_NDSWN_REALTIME_TEMPERATURE_ALARM_CB_FUNC_DEF_ #define _HK_NDSWN_REALTIME_TEMPERATURE_ALARM_CB_FUNC_DEF_ typedef bool(CALLBACK *NDSWN_REALTIME_TEMPERATURE_ALARM_CB_FUNC)(int i_channel, int i_preset, STRU_NDSWN_TEMPERATURE_ALARM_UPLOAD *pst_temperature_alarm_data, unsigned int ui_len, void *p_user); #endif //NVR回放回调 #ifndef _HK_PLAY_BACK_VIDEO_CB_FUNC_DEF_ #define _HK_PLAY_BACK_VIDEO_CB_FUNC_DEF_ typedef bool(CALLBACK *PLAY_BACK_VIDEO_CB_FUNC)(unsigned int i_handle, HK_PLAY_BACK_PACKET_ES_INFO *pst_es_info, void *p_user_data); #endif #ifdef __cplusplus } #endif #endif