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

137 lines
5.8 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_D_H_
#define _HIK_NET_SDK_D_H_
#ifndef LIBRARY_SUPPORT_ONLY_HEIKA
#include "hk-net-sdk.h"
#ifdef __cplusplus
extern "C"
{
#endif
//广播发现接口
HK_NET_API hk_net_dev_d_discovery_init(PHKHANDLE p_h, DISCOVERY_DEVICE_CB_FUNC p_func, void *p_user);
HK_NET_API hk_net_dev_d_discovery_send_inquiry(HKHANDLE h);
HK_NET_API hk_net_dev_d_discovery_stop(PHKHANDLE p_h);
//总的初始化与反初始化接口,无论设备多少只调用一次
HK_NET_API hk_net_dev_d_sdk_init(const char *pc_path);//"/usr/local/HKNetDeviceSDK"
HK_NET_API hk_net_dev_d_sdk_uninit();
HK_NET_API hk_net_dev_d_get_last_error(unsigned int *pui_last_error);
HK_NET_API hk_net_dev_d_init(PHKHANDLE p_h);
HK_NET_API hk_net_dev_d_uninit(PHKHANDLE p_h);
HK_NET_API hk_net_dev_d_login(HKHANDLE h, const char *pc_ip, const char *pc_user, const char *pc_pwd);
HK_NET_API hk_net_dev_d_logout(HKHANDLE h);
HK_NET_API hk_net_dev_d_reboot(HKHANDLE h);
//获取温度矩阵宽高
HK_NET_API hk_net_dev_d_get_temperature_resolution(HKHANDLE h, unsigned short *pus_width, unsigned short *pus_height);
//获取红外/可见光实时图像
HK_NET_API hk_net_dev_d_set_realplay_callback(HKHANDLE h, REALTIME_VIDEO_CB_FUNC p_func, void *p_user);
HK_NET_API hk_net_dev_d_start_realplay(HKHANDLE h, unsigned int ui_channel_no, int i_stream_type);//i_stream_type: STREAM_TYPE_MAIN/STREAM_TYPE_SUB
HK_NET_API hk_net_dev_d_stop_realplay(HKHANDLE h, unsigned int ui_channel_no);
//实时温度流
HK_NET_API hk_net_dev_d_set_temperature_stream_callback(HKHANDLE h, REALTIME_TEMPERATURE_STREAM_CB_FUNC p_func, void *p_user);
HK_NET_API hk_net_dev_d_start_temperature_stream_realplay(HKHANDLE h);
HK_NET_API hk_net_dev_d_stop_temperature_stream_realplay(HKHANDLE h);
//预置位测温规则任意预置位其规则数量必须小于30个
HK_NET_API hk_net_dev_d_del_temperature_rules(HKHANDLE h, unsigned int ui_preset_no);
HK_NET_API hk_net_dev_d_set_temperature_rules(HKHANDLE h, unsigned int ui_preset_no, float pf_emiss, float pf_dist, const char *pc_rules, unsigned int ui_rules_len);
HK_NET_API hk_net_dev_d_get_temperature_rules(HKHANDLE h, unsigned int ui_preset_no, float *pf_emiss, float *pf_dist, char *pc_rules, unsigned int *pui_rules_len);
//非预置位测温规则,一经设置永久生效,不随预置位的变化而变化,测温规则ID从101开始,切不可与预置位测温规则ID相冲突
//非预置位测温规则与任意预置位测温规则总数相加不能大于30,否则不会应用
HK_NET_API hk_net_dev_d_del_private_temperature_rules(HKHANDLE h);
HK_NET_API hk_net_dev_d_set_private_temperature_rules(HKHANDLE h, float pf_emiss, float pf_dist, const char *pc_rules, unsigned int ui_rules_len);
HK_NET_API hk_net_dev_d_get_private_temperature_rules(HKHANDLE h, float *pf_emiss, float *pf_dist, char *pc_rules, unsigned int *pui_rules_len);
#ifndef _HK_CALLBACK_RULE_INFO_DEF_
#define _HK_CALLBACK_RULE_INFO_DEF_
typedef struct STRU_CALLBACK_RULE_INFO
{
int id;
char pc_rule[128];
float f_max;
int i_max_x;
int i_max_y;
float f_min;
int i_min_x;
int i_min_y;
float f_avg;
}LOCAL_CALLBACK_RULE_INFO;
typedef struct STRU_CALLBACK_RULES_INFO
{
unsigned int ui_preset_no;
unsigned int ui_rule_counts;
LOCAL_CALLBACK_RULE_INFO st_rule_result[30];
LOCAL_CALLBACK_RULE_INFO st_fullscreen;
}LOCAL_CALLBACK_RULES_INFO;
typedef bool(CALLBACK *RULES_TEMPERATURE_CB_FUNC)(LOCAL_CALLBACK_RULES_INFO st_rules_temperature_data, void *p_user_data);
#endif
HK_NET_API hk_net_dev_d_set_temperature_rules_callback(HKHANDLE h, RULES_TEMPERATURE_CB_FUNC pc_func, void *pc_user);
//抓图
HK_NET_API hk_net_dev_d_capture_jpg(HKHANDLE h, unsigned char ui_channel_no, char *pc_name);
HK_NET_API hk_net_dev_d_capture_temperature_data(HKHANDLE h, char *puc_temperature_data, unsigned int *pui_temp_len);
//pc_data, 14位时间,例:"20230108151515"
HK_NET_API hk_net_dev_d_append_temperature_to_national_grid_image(HKHANDLE h, const char *pc_date, const char *pc_file);
//调色板设置
HK_NET_API hk_net_dev_d_set_palette(HKHANDLE h, int i_palette);
HK_NET_API hk_net_dev_d_get_palette(HKHANDLE h, int *pi_palette);
//调焦-
HK_NET_API hk_net_dev_d_zoom_in(HKHANDLE h, unsigned int ui_channel_no, int i_stop);
//调焦+
HK_NET_API hk_net_dev_d_zoom_out(HKHANDLE h, unsigned int ui_channel_no, int i_stop);
//聚焦-
HK_NET_API hk_net_dev_d_focus_near(HKHANDLE h, unsigned int ui_channel_no, int i_stop);
//聚焦+
HK_NET_API hk_net_dev_d_focus_far(HKHANDLE h, unsigned int ui_channel_no, int i_stop);
//光圈-
HK_NET_API hk_net_dev_d_iris_close(HKHANDLE h, unsigned int ui_channel_no, int i_stop);
//光圈+
HK_NET_API hk_net_dev_d_iris_open(HKHANDLE h, unsigned int ui_channel_no, int i_stop);
//云台控制
HK_NET_API hk_net_dev_d_ptz_control(HKHANDLE h, int ptz_control_type, int i_speed, int i_stop);//i_speed: 1~7
//预置点设置
HK_NET_API hk_net_dev_d_ptz_set_preset(HKHANDLE h, int i_preset_index);
//召回预置点
HK_NET_API hk_net_dev_d_ptz_goto_preset(HKHANDLE h, int i_preset_index);
//删除预置点
HK_NET_API hk_net_dev_d_ptz_del_preset(HKHANDLE h, int i_preset_index);
//清空预置点
HK_NET_API hk_net_dev_d_ptz_clear_all_preset(HKHANDLE h);
//预置位自动校准
HK_NET_API hk_net_dev_d_preset_auto_calibrate(HKHANDLE h);
//白光补光灯模式设置黑卡相机没有白光补光灯此接口固定返回false
HK_NET_API hk_net_dev_d_set_white_light_fill_light_mode(HKHANDLE h, int i_mode);
//白光补光开关黑卡相机没有白光补光灯此接口固定返回false
HK_NET_API hk_net_dev_d_white_light_ctrl(HKHANDLE h, int i_open);
#ifdef __cplusplus
}
#endif
#endif
#endif