Files
dvr/include/hk-net-sdk-define.h
2026-02-08 08:58:29 +08:00

397 lines
12 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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