Skip to content

Instantly share code, notes, and snippets.

@fbstj
Last active September 12, 2025 16:10
Show Gist options
  • Save fbstj/8cccdc7010d93510311b565295ff16d5 to your computer and use it in GitHub Desktop.
Save fbstj/8cccdc7010d93510311b565295ff16d5 to your computer and use it in GitHub Desktop.
#ifndef NETMODULE_H
#define NETMODULE_H
#ifdef WIN32
#ifdef NETMODULE_EXPORTS
#define H264_DVR_API extern "C" __declspec(dllexport)
#else
#define H264_DVR_API extern "C" __declspec(dllimport) //VC 用
#endif
#ifndef CALL_METHOD
#define CALL_METHOD __stdcall //Cdecl
#endif
#define DEF_PARAM(x) = x
#define DEF_0_PARAM = 0
#else //Linux
#define Bool int
#define TYPE_USER_DATA unsigned long
#define TYPE_USER_DATA2 long
#define LOGD printf
#ifdef OS_IOS
#define H264_DVR_API
#define DEF_PARAM(x)
#define DEF_0_PARAM
#else
#define H264_DVR_API extern "C"
#define DEF_PARAM(x) = x
#define DEF_0_PARAM = 0
#endif
#define CALL_METHOD
#define CALLBACK
#define WORD unsigned short
#define DWORD unsigned long
#define LPDWORD DWORD*
#define BOOL int
#define TRUE 1
#define FALSE 0
#define BYTE unsigned char
#define LONG long
#define UINT unsigned int
#define HDC void*
#define HWND void*
#define LPVOID void*
#define LPCSTR char*
#define LPCTSTR const char*
#endif
#ifdef _NAMESPACE_
namespace JF_NETSDK{
#endif
enum SDK_RET_CODE
{
H264_DVR_NOERROR = 0, //没有错误
H264_DVR_SUCCESS = 1, //返回成功
H264_DVR_SDK_NOTVALID = -10000, //非法请求
H264_DVR_NO_INIT = -10001, //SDK未经初始化
H264_DVR_ILLEGAL_PARAM = -10002, //用户参数不合法
H264_DVR_INVALID_HANDLE = -10003, //句柄无效
H264_DVR_SDK_UNINIT_ERROR = -10004, //SDK清理出错
H264_DVR_SDK_TIMEOUT = -10005, //等待超时
H264_DVR_SDK_MEMORY_ERROR = -10006, //内存错误,创建内存失败
H264_DVR_SDK_NET_ERROR = -10007, //网络错误
H264_DVR_SDK_OPEN_FILE_ERROR = -10008, //打开文件失败
H264_DVR_SDK_UNKNOWNERROR = -10009, //未知错误
H264_DVR_DEV_VER_NOMATCH = -11000, //收到数据不正确,可能版本不匹配
H264_DVR_SDK_NOTSUPPORT = -11001, //版本不支持
H264_DVR_ANAS_EXIST = -11130, //NAS地址已存在
H264_DVR_ANAS_ALIVE = -11131, //路径被使用,无法操作
H264_DVR_ANAS_FULL = -11132, //NAS已达到支持的最大值
H264_DVR_OPEN_CHANNEL_ERROR = -11200, //打开通道失败,可能检测到设备已经不在线
H264_DVR_CLOSE_CHANNEL_ERROR = -11201, //关闭通道失败
H264_DVR_SUB_CONNECT_ERROR = -11202, //建立媒体子连接失败,网络出错或者设备可能不在线
H264_DVR_SUB_CONNECT_SEND_ERROR = -11203, //媒体子连接通讯失败,可能检测到设备已经不在线
H264_DVR_NATCONNET_REACHED_MAX = -11204, //Nat视频链接达到最大,不允许新的Nat视频链接
H264_DVR_NOTSUPPORT = -11205, //版本不支持
H264_DVR_NOTVALID = -11206, //请求非法,主连接可能已断开
H264_DVR_TCPCONNET_REACHED_MAX = -11207, //Tcp视频链接达到最大,不允许新的Tcp视频链接
H264_DVR_OPENEDPREVIEW = -11208, //该通道已经打开预览(通道的打开关闭需要一一对应,打开几次需要关闭几次;不一致会打开提示该错误;预防客户端开发逻辑上的不合理设计增加该错误值)
/// 用户管理部分错误码
H264_DVR_NOPOWER = -11300, //无权限
H264_DVR_PASSWORD_NOT_VALID = -11301, //账号密码不对
H264_DVR_LOGIN_USER_NOEXIST = -11302, //用户不存在
H264_DVR_USER_LOCKED = -11303, //该用户被锁定
H264_DVR_USER_IN_BLACKLIST = -11304, //该用户不允许访问(在黑名单中)
H264_DVR_USER_HAS_USED = -11305, //该用户已登陆
H264_DVR_USER_NOT_LOGIN = -11306, //该用户没有登陆
H264_DVR_CONNECT_DEVICE_ERROR = -11307, //可能设备不存在
H264_DVR_ACCOUNT_INPUT_NOT_VALID = -11308, //用户管理输入不合法
H264_DVR_ACCOUNT_OVERLAP = -11309, //索引重复
H264_DVR_ACCOUNT_OBJECT_NONE = -11310, //不存在对象, 用于查询时
H264_DVR_ACCOUNT_OBJECT_NOT_VALID = -11311, //不存在对象
H264_DVR_ACCOUNT_OBJECT_IN_USE = -11312, //对象正在使用
H264_DVR_ACCOUNT_SUBSET_OVERLAP = -11313, //子集超范围 (如组的权限超过权限表,用户权限超出组的权限范围等等)
H264_DVR_ACCOUNT_PWD_NOT_VALID = -11314, //密码不正确
H264_DVR_ACCOUNT_PWD_NOT_MATCH = -11315, //密码不匹配
H264_DVR_ACCOUNT_RESERVED = -11316, //保留帐号
H264_DVR_ACCOUNT_SYS_MAINTAIN = -11317, //系统维护中,不可登陆
H264_DVR_EE_DVR_PASSWORD_NOT_VALID2 = -11318, //账号密码不对
/// 配置管理相关错误码
H264_DVR_OPT_RESTART = -11400, //保存配置后需要重启应用程序
H264_DVR_OPT_REBOOT = -11401, //需要重启系统
H264_DVR_OPT_FILE_ERROR = -11402, //写文件出错
H264_DVR_OPT_CAPS_ERROR = -11403, //配置特性不支持
H264_DVR_OPT_VALIDATE_ERROR = -11404, //配置校验失败
H264_DVR_OPT_CONFIG_NOT_EXIST = -11405, //请求或者设置的配置不存在
//
H264_DVR_CTRL_PAUSE_ERROR = -11500, //暂停失败
H264_DVR_SDK_NOTFOUND = -11501, //查找失败,没有找到对应文件
H264_DVR_CFG_NOT_ENABLE = -11502, //配置未启用
H264_DVR_DECORD_FAIL = -11503, //解码失败
//DNS协议解析返回错误码
H264_DVR_SOCKET_ERROR = -11600, //创建套节字失败
H264_DVR_SOCKET_CONNECT = -11601, //连接套节字失败
H264_DVR_SOCKET_DOMAIN = -11602, //域名解析失败
H264_DVR_SOCKET_SEND = -11603, //发送数据失败
H264_DVR_ARSP_NO_DEVICE = -11604, //没有获取到设备信息,设备应该不在线
H264_DVR_ARSP_BUSING = -11605, //ARSP服务繁忙
H264_DVR_ARSP_BUSING_SELECT = -11606, //ARSP服务繁忙,select失败
H264_DVR_ARSP_BUSING_RECVICE = -11607, //ARSP服务繁忙,recvice失败
H264_DVR_CONNECTSERVER_ERROR = -11608, //连接服务器失败
H264_DVR_CONNECT_AGNET = -11609, //代理
H264_DVR_CONNECT_NAT = -11610, //穿透
H264_DVR_CONNECT_FAILED = -11611, //连接失败
H264_DVR_CONNECT_FULL = -11612, //服务器连接数已满
H264_DVR_CLOUD_LOGIN_ERR = -11613, //云登陆具体的错误码,说明:当登陆接口的error=-11613时,通过H264_DVR_DEVICEINFO成员sCloudErrCode获取错误码,底层增加错误码时上层不用增加代码
H264_DVR_NO_CONNECT_FRONT = -11614, //前端设备未连接或者连接的前端设备分辨率未知
H264_DVR_LOGIN_FULL = -11615, //登录句柄已达到最大值,无法再登录
H264_DVR_ARSP_USER_NOEXIST = -11619, //用户不存在
H264_DVR_ARSP_PASSWORD_ERROR = -11620, //账号密码不对
H264_DVR_ARSP_QUERY_ERROR = -11621, //查询失败
//版权相关
H264_DVR_PIRATESOFTWARE = -11700, //设备盗版
H264_DVR_AUTH_TIMEOUT = -11800, //鉴权超时
H264_DVR_AUTH_FILE_FAILED = -11801, //鉴权文件失败
H264_DVR_GAIN_LIST_TIMEOUT = -11802, //获取服务器列表超时
H264_DVR_AUTH_CODE_ERR = -11803, //鉴权码错误
//升级错误码
H264_DVR_NOENOUGH_MEMORY = -11804, //内存不足
H264_DVR_INVALID_FORMAT = -11805, //升级文件格式不对
H264_DVR_UPDATE_PART_FAIL = -11806, //某个分区升级失败
H264_DVR_INVALID_HARDWARE = -11807, //硬件型号不匹配
H264_DVR_INVALID_VENDOR = -11808, //客户信息不匹配
H264_DVR_INVALID_COMPALIBLE = -11809, //升级程序的兼容版本号比设备现有的小,不允许设备升级回老程序
H264_DVR_INVALID_VERSION = -11810, //非法的版本
H264_DVR_INVALID_WIFI_DRIVE = -11811, //升级程序里wifi驱动和设备当前在使用的wifi网卡不匹配
H264_DVR_INVALID_CUR_FLASH = -11812, //升级程序不支持设备使用的Flash
//超时
H264_DVR_NAT_INIT_TIMEOUT = -12000, //云登录初始化超时用于区别一般超时情况
};
//云台操作类型
enum PTZ_ControlType
{
TILT_UP = 0, //上
TILT_DOWN, //下
PAN_LEFT, //左
PAN_RIGHT, //右
PAN_LEFTTOP, //左上
PAN_LEFTDOWN, //左下
PAN_RIGTHTOP, //右上
PAN_RIGTHDOWN, //右下
ZOOM_OUT_1, //变倍小//ZOOM_OUT/ZOOM_IN在VS2010与系统定义的冲突了
ZOOM_IN_1, //变倍大
FOCUS_FAR, //焦点后调
FOCUS_NEAR, //焦点前调
IRIS_OPEN, //光圈扩大
IRIS_CLOSE, //光圈缩小13
EXTPTZ_OPERATION_ALARM, //报警功能
EXTPTZ_LAMP_ON, //灯光开
EXTPTZ_LAMP_OFF, //灯光关
EXTPTZ_POINT_SET_CONTROL, //设置预置点
EXTPTZ_POINT_DEL_CONTROL, //清除预置点
EXTPTZ_POINT_MOVE_CONTROL, //转预置点
EXTPTZ_STARTPANCRUISE, //开始水平旋转 20
EXTPTZ_STOPPANCRUISE, //停止水平旋转
EXTPTZ_SETLEFTBORDER, //设置左边界
EXTPTZ_SETRIGHTBORDER, //设置右边界
EXTPTZ_STARTLINESCAN, //自动扫描开始
EXTPTZ_CLOSELINESCAN, //自动扫描开停止
EXTPTZ_ADDTOLOOP, //加入预置点到巡航 p1巡航线路 p2预置点值
EXTPTZ_DELFROMLOOP, //删除巡航中预置点 p1巡航线路 p2预置点值
EXTPTZ_POINT_LOOP_CONTROL, //开始巡航 28
EXTPTZ_POINT_STOP_LOOP_CONTROL, //停止巡航
EXTPTZ_CLOSELOOP, //清除巡航 p1巡航线路
EXTPTZ_FASTGOTO, //快速定位
EXTPTZ_AUXIOPEN, //辅助开关,关闭在子命令中//param1 参见SDK_PtzAuxStatus,param2传入具体数值
EXTPTZ_OPERATION_MENU, //球机菜单操作,其中包括开,关,确定等等
EXTPTZ_REVERSECOMM, //镜头翻转
EXTPTZ_OPERATION_RESET, //云台复位
EXTPTZ_TOTAL,
};
/// 云台辅助功能
enum SDK_PtzAuxStatus
{
EXTPTZ_AUX_ON, // 开
EXTPTZ_AUX_OFF, // 关
EXTPTZ_AUX_NR,
};
#define PAN_AUTO 29 /* 云台以SS的速度左右自动扫描 */
//#define EXTPTZ_FASTGOTO 30 //三维定位
#define NET_MAX_CHANNUM 64 //最大通道个数
#define NET_DECORDR_CH 64 //最大解码通道个数
#define NET_MAX_USER_NUM 60 //最多用户数
#define NET_MAX_RIGTH_NUM 200 //最多权限数
#define NET_MAX_GROUP_NUM 50 //最多组数
#define NET_MAX_USER_LENGTH 32 //用户名密码最大长度
#define NET_MAX_COMBINE_NUM 2 //最大组合编码通道数
#define NET_MAX_DECORDR_CH 64 //最大解码通道个数
#define NET_MAX_DDNS_TYPE 5 //支持的DDNS种类
#define NET_MAX_ARSP_TYPE 5
#define NET_MAX_ALARMSERVER_TYPE 5 //支持报警中心种类
#define NET_MAX_SYSFUNC 20 //最多系统功能个数
#define NET_MAX_PTZ_PROTOCOL_LENGTH 32 //云台协议名称最大长度
#define NET_N_WEEKS 7 //星期数
#define NET_N_TSECT 6 //时间段数
#define NET_MD_REGION_ROW 32 //动态检测区域行数
#define NET_COVERNUM 8 //覆盖区域数
#define NET_MAX_FILTERIP_NUM 64 //IP地址最大过滤数
#define NET_NAME_PASSWORD_LEN 64 //用户名密码最大长度
#define NET_MAX_PATH_LENGTH 260 //路径长度
#define NET_N_MIN_TSECT 2
#define NET_MAX_RETURNED_LOGLIST 128 //最多日志条数
#define NET_MAX_MAC_LEN 32 //MAC地址字符最大长度
#define NET_IW_ENCODING_TOKEN_MAX 128
#define NET_MAX_AP_NUMBER 32 //SID最大数量,暂定10
#define NET_MAX_INFO_LEN 128
#define NET_MAX_USERNAME_LENGTH 128
#define NET_MAX_SERIALNO_LENGTH 128 //最大解码通道个数
#define NET_CHANNEL_NAME_MAX_LEN 64 //通道名称最大长度
#define NET_MAX_LINE_PER_OSD_AREA 12 //编码中一个OSD区域最多可以显示的字符行数
//DDNS参数
#define DDNS_MAX_DDNS_NAMELEN 64 //主机名长度
#define DDNS_MAX_DDNS_PWDLEN 32 //密码长度
#define DDNS_MAX_DDNS_IPSIZE 64 //IP地址长度
#define DDNS_MAX_DDNS_IDSIZE 32 //设备标识长度
#define DDNS_MAX_SERIALINFO_SIZE 16 //序列号以及用户名长度
#define NET_MAX_MSK_SIZE 128 //掩码数组的大小
//摄象机参数
#define CAMERAPARA_MAXNUM 16 //曝光能力中目前最大长度
//短信最大数量
#define NET_MAX_RECIVE_MSG_PHONE_COUNT 3 ///<最大发生短信数量
//VGA分辨率
#define VGA_MAXNUM 32 //分辨率 种类
#define VGA_NAME_LENGTH 10 //分辨率 长度
//显示的设备列表(设备端搜索)
#define DEV_LIST_SHOW 256
//IP SIZE
#define IP_SIZE 16
//#define MAX_HVR_CHNCAP 16
//DDNS服务器设备的信息
//通道模式
#define MAX_HVR_CHNCAP_CHN 32
#define NET_NAME_TOKEN_LEN 128
#define NET_NAME_URL_LEN 128
#define NET_NAME_ID_LEN 64
#define NET_MAX_POS_FUNC_KEYWORDS 4 //POS功能中最多支持的关键字个数
#define NET_MAX_TITLE_DOT_BUF_LEN 64*24*24
//硬盘信息
#define NET_FSLEN 8 //从IConstraint::FS_LEN拷过来
//车牌图片信息大小
#define MAX_PLATE_NUM 7
#define LPR_MAX_LED_CONTENT 120
#define LPR_MAX_LED_COUNT 8
//地址大小和pin码大小
#define NAME_TOKEN_LEN 128
#define NAME_URL_LEN 128
typedef struct _DDNS_INFO
{
char ID[64]; //设备标识
char Alias[DDNS_MAX_DDNS_NAMELEN];
char IP[DDNS_MAX_DDNS_IPSIZE]; //外网IP
char LanIP[DDNS_MAX_DDNS_IPSIZE]; //内网IP
int WebPort; //Web端口,默认为80
int MediaPort; //媒体端口,默认为34567
int MobilePort; //手机监控端口,默认为34599
int UPNPWebPort; //UPNP启动下Web端口,UPNP不开启为0
int UPNPMediaPort; //UPNP启动下媒体端口,UPNP不开启为0
int UPNPMobilePort; //UPNP启动下手机监控端口,UPNP不开启为0
int ChannelNum; //通道数
int Status; //状态
char Username[DDNS_MAX_DDNS_NAMELEN]; //用户名
char Password[DDNS_MAX_DDNS_PWDLEN]; //密码
}DDNS_INFO,*pDDNS_INFO;
//DDNS信息查询模式
typedef struct _SearchMode
{
int nType; //查询类型,见SearchModeType
char szSerIP[DDNS_MAX_DDNS_IPSIZE]; //服务器地址
int nSerPort; //服务器端口号
char szSerialInfo[DDNS_MAX_SERIALINFO_SIZE]; //如果是按序列号,则为序列号,如果是用户名,则为用户名
char szPassWord[DDNS_MAX_DDNS_PWDLEN]; //按用户名登陆时候的密码
}SearchMode;
//DDNS信息查询类型
enum SearchModeType
{
DDNS_SERIAL = 0,//按序列号
DDNS_USERNAME, //按用户名
};
//实时预览扩展接口增加的参数:预览类型
typedef enum _H264_DVR_RealPlayType
{
NET_RType_Realplay = 0, //实时预览
NET_RType_Main_Realplay2, //实时监视-主码流,等同于NET_RType_Realplay
NET_RType_Main_Realplay3,
NET_RType_Sub_Realplay_1, //实时监视-从码流1
NET_RType_Sub_Realplay_2, //实时监视-从码流2
NET_RType_Sub_Realplay_3, //实时监视-从码流3
NET_RType_Multiplay_1, //多画面预览-1画面
NET_RType_Multiplay_4, //多画面预览-4画面
NET_RType_Multiplay_6, //多画面预览-6画面
NET_RType_Multiplay_8, //多画面预览-8画面
NET_RType_Multiplay_9, //多画面预览-9画面
NET_RType_Multiplay_12, //多画面预览-12画面
NET_RType_Multiplay_16, //多画面预览-16画面
} NET_RealPlayType;
/// 组合编码模式
enum NetCombinType
{
NET_COMBIN_NONE,
NET_COMBIN_1,
NET_COMBIN_2,
NET_COMBIN_3,
NET_COMBIN_4,
NET_COMBIN_5,
NET_COMBIN_6,
NET_COMBIN_7,
NET_COMBIN_8,
NET_COMBIN_9,
NET_COMBIN_10,
NET_COMBIN_11,
NET_COMBIN_12,
NET_COMBIN_13,
NET_COMBIN_14,
NET_COMBIN_15,
NET_COMBIN_16,
NET_COMBIN_1_4,
NET_COMBIN_5_8,
NET_COMBIN_9_12,
NET_COMBIN_13_16,
NET_COMBIN_1_8,
NET_COMBIN_9_16,
NET_COMBIN_1_9,
NET_COMBIN_8_16,
NET_COMBIN_1_16
};
//这些结构体和枚举是提供给外部使用,所有可能会和设备那边定义了2次,所以都在前面加了SDK_
enum SDK_CAPTURE_SIZE_t {
SDK_CAPTURE_SIZE_D1, ///< 720*576(PAL) 720*480(NTSC) 800*480
SDK_CAPTURE_SIZE_HD1, ///< 352*576(PAL) 352*480(NTSC)
SDK_CAPTURE_SIZE_BCIF, ///< 720*288(PAL) 720*240(NTSC)
SDK_CAPTURE_SIZE_CIF, ///< 352*288(PAL) 352*240(NTSC)
SDK_CAPTURE_SIZE_QCIF, ///< 176*144(PAL) 176*120(NTSC)
SDK_CAPTURE_SIZE_VGA, ///< 640*480(PAL) 640*480(NTSC)
SDK_CAPTURE_SIZE_QVGA, ///< 320*240(PAL) 320*240(NTSC)
SDK_CAPTURE_SIZE_SVCD, ///< 480*480(PAL) 480*480(NTSC)
SDK_CAPTURE_SIZE_QQVGA, ///< 160*128(PAL) 160*128(NTSC)
SDK_CAPTURE_SIZE_ND1 = 9, ///< 240*192
SDK_CAPTURE_SIZE_650TVL, ///< 926*576
SDK_CAPTURE_SIZE_720P, ///< 1280*720
SDK_CAPTURE_SIZE_1_3M, ///< 1280*960
SDK_CAPTURE_SIZE_UXGA , ///< 1600*1200
SDK_CAPTURE_SIZE_1080P, ///< 1920*1080
SDK_CAPTURE_SIZE_WUXGA, ///< 1920*1200
SDK_CAPTURE_SIZE_2_5M, ///< 1872*1408
SDK_CAPTURE_SIZE_3M, ///< 2048*1536
SDK_CAPTURE_SIZE_5M, ///< 3744*1408
SDK_CAPTURE_SIZE_NR =19,
SDK_CAPTURE_SIZE_1080N = 19,///< 960*1080
SDK_CAPTURE_SIZE_4M, ///< 2592*1520
SDK_CAPTURE_SIZE_6M, ///< 3072×2048
SDK_CAPTURE_SIZE_8M, ///< 3264×2448
SDK_CAPTURE_SIZE_12M, ///< 4000*3000
SDK_CAPTURE_SIZE_4K, ///< 4096 * 2160通用/3840*2160海思
SDK_CAPTURE_SIZE_EXT_V2_NR =25,
SDK_CAPTURE_SIZE_720N = 25, ///< 640*720
SDK_CAPTURE_SIZE_WSVGA, ///< 1024*576
SDK_CAPTURE_SIZE_NHD, ///< Wifi IPC 640*360
SDK_CAPTURE_SIZE_3M_N, ///< 1024*1536
SDK_CAPTURE_SIZE_4M_N, ///< 1296*1520
SDK_CAPTURE_SIZE_5M_N, ///< 1872*1408
SDK_CAPTURE_SIZE_4K_N, ///< 2048 * 2160通用/1920*2160海思
SDK_CAPTURE_SIZE_EXT_V3_NR,
};
/// 捕获码流控制模式类型
enum SDK_capture_brc_t {
SDK_CAPTURE_BRC_CBR, ///< 固定码流。
SDK_CAPTURE_BRC_VBR, ///< 可变码流。
SDK_CAPTURE_BRC_MBR, ///< 混合码流。
SDK_CAPTURE_BRC_NR ///< 枚举的码流控制模式数目。
};
/// 捕获压缩格式类型
enum SDK_CAPTURE_COMP_t {
SDK_CAPTURE_COMP_DIVX_MPEG4, ///< DIVX MPEG4。
SDK_CAPTURE_COMP_MS_MPEG4, ///< MS MPEG4。
SDK_CAPTURE_COMP_MPEG2, ///< MPEG2。
SDK_CAPTURE_COMP_MPEG1, ///< MPEG1。
SDK_CAPTURE_COMP_H263, ///< H.263
SDK_CAPTURE_COMP_MJPG, ///<Majpag
SDK_CAPTURE_COMP_FCC_MPEG4, ///< FCC MPEG4
SDK_CAPTURE_COMP_H264, ///< H.264
SDK_CAPTURE_COMP_H265, ///< H.265
SDK_CAPTURE_COMP_NR ///< 枚举的压缩标准数目。
};
/// 捕获通道类型
enum SDK_CAPTURE_CHANNEL_t {
SDK_CHL_MAIN_T = 0, ///< 主通道 - 主码流1
SDK_CHL_2END_T = 1, ///< 辅通道 - 出辅码流2
SDK_CHL_3IRD_T = 2, ///< 辅通道 - 出辅码流3
SDK_CHL_4RTH_T = 3, ///< 辅通道 - 出辅码流4
SDK_CHL_JPEG_T = 4, ///< 辅通道 - 出JPEG抓图
SDK_CHL_FUNCTION_NUM
};
/// 音频编码类型
enum SDK_AudioEncodeTypes
{
SDK_AUDIO_ENCODE_NONE = 0,
SDK_AUDIO_ENCODE_G729_8KBIT,
SDK_AUDIO_ENCODE_G726_16KBIT,
SDK_AUDIO_ENCODE_G726_24KBIT,
SDK_AUDIO_ENCODE_G726_32KBIT,
SDK_AUDIO_ENCODE_G726_40KBIT,
SDK_AUDIO_ENCODE_PCM_8TO16BIT,
SDK_AUDIO_ENCODE_PCM_ALAW,
SDK_AUDIO_ENCODE_PCM_ULAW,
SDK_AUDIO_ENCODE_ADPCM8K16BIT,
SDK_AUDIO_ENCODE_ADPCM16K16BIT,
SDK_AUDIO_ENCODE_G711_ALAW,
SDK_AUDIO_ENCODE_MPEG2_LAYER1,
SDK_AUDIO_ENCODE_AMR8K16BIT,
SDK_AUDIO_ENCODE_G711_ULAW,
SDK_AUDIO_ENCODE_IMA_ADPCM_8K16BIT,
SDK_AUDIO_ENCODE_TYPES_NR,
};
typedef enum _SDK_CONFIG_TYPE
{
E_SDK_CONFIG_NOTHING = 0,
E_SDK_CONFIG_USER, //用户信息,包含了权限列表,用户列表和组列表 对应结构体USER_MANAGE_INFO
E_SDK_CONFIG_ADD_USER, //增加用户---对应结构体USER_INFO
E_SDK_CONFIG_MODIFY_USER, //修改用户---对应结构体CONF_MODIFYUSER
E_SDK_CONFIG_DELETE_USER, //对应结构体USER_INFO
E_SDK_CONFIG_ADD_GROUP, //增加组---对应结构体USER_GROUP_INFO
E_SDK_CONFIG_MODIFY_GROUP, //修改组---对应结构体CONF_MODIFYGROUP
E_SDK_COFIG_DELETE_GROUP, //对应结构体---USER_GROUP_INFO
E_SDK_CONFIG_MODIFY_PSW, //修改密码---对应结构体_CONF_MODIFY_PSW
E_SDK_CONFIG_ABILITY_SYSFUNC = 9, //支持的网络功能---对应结构体SDK_SystemFunction
E_SDK_CONFIG_ABILTY_ENCODE = 10, //首先获得编码能力---对应结构体CONFIG_EncodeAbility
E_SDK_CONFIG_ABILITY_PTZPRO, //云台协议---对应结构体SDK_PTZPROTOCOLFUNC
E_SDK_COMFIG_ABILITY_COMMPRO, //串口协议---对应结构体SDK_COMMFUNC
E_SDK_CONFIG_ABILITY_MOTION_FUNC, //动态检测块---对应结构体SDK_MotionDetectFunction
E_SDK_CONFIG_ABILITY_BLIND_FUNC, //视频遮挡块---对应结构体SDK_BlindDetectFunction
E_SDK_CONFIG_ABILITY_DDNS_SERVER, //DDNS服务支持类型---对应结构体SDK_DDNSServiceFunction
E_SDK_CONFIG_ABILITY_TALK, //对讲编码类型---对应结构体SDK_DDNSServiceFunction
E_SDK_CONFIG_SYSINFO = 17, //系统信息---对应结构体H264_DVR_DEVICEINFO
E_SDK_CONFIG_SYSNORMAL, //普通配置---对应结构体SDK_CONFIG_NORMAL
E_SDK_CONFIG_SYSENCODE, //编码配置---对应结构体SDK_EncodeConfigAll
E_SDK_CONFIG_SYSNET = 20, //网络设置---对应结构体SDK_CONFIG_NET_COMMON
E_SDK_CONFIG_PTZ, //云台页面---对应结构体SDK_STR_PTZCONFIG_ALL
E_SDK_CONFIG_COMM, //串口页面---对应结构体SDK_CommConfigAll
E_SDK_CONFIG_RECORD, //录像设置界面---对应结构体SDK_RECORDCONFIG
E_SDK_CONFIG_MOTION, //动态检测页面---对应结构体SDK_MOTIONCONFIG
E_SDK_CONFIG_SHELTER, //视频遮挡---对应结构体SDK_BLINDDETECTCONFIG
E_SDK_CONFIG_VIDEO_LOSS, //视频丢失---对应结构体SDK_VIDEOLOSSCONFIG
E_SDK_CONFIG_ALARM_IN, //报警输入---对应结构体SDK_ALARM_INPUTCONFIG
E_SDK_CONFIG_ALARM_OUT, //报警输出---对应结构体SDK_AlarmOutConfigAll
E_SDK_CONFIG_DISK_MANAGER, //硬盘管理界面---对应结构体SDK_StorageDeviceControl
E_SDK_CONFIG_OUT_MODE = 30, //输出模式界面---对应结构体SDK_VideoWidgetConfigAll
E_SDK_CONFIG_CHANNEL_NAME, //通道名称---对应结构体SDK_ChannelNameConfigAll
E_SDK_CONFIG_AUTO, //自动维护界面配置---对应结构体SDK_AutoMaintainConfig
E_SDK_CONFIG_DEFAULT, //恢复默认界面配置---对应结构体SDK_SetDefaultConfigTypes
E_SDK_CONFIG_DISK_INFO, //硬盘信息---对应结构体SDK_StorageDeviceInformationAll
E_SDK_CONFIG_LOG_INFO, //查询日志---对应结构体SDK_LogList
E_SDK_CONFIG_NET_IPFILTER, //黑名单配置---对应结构体SDK_NetIPFilterConfig
E_SDK_CONFIG_NET_DHCP, //DHCP配置---对应结构体SDK_NetDHCPConfigAll
E_SDK_CONFIG_NET_DDNS, //DDNS信息---对应结构体SDK_NetDDNSConfigALL
E_SDK_CONFIG_NET_EMAIL, //EMAIL---对应结构体SDK_NetEmailConfig
E_SDK_CONFIG_NET_MULTICAST = 40, //组播---对应结构体SDK_NetMultiCastConfig
E_SDK_CONFIG_NET_NTP, //NTP---对应结构体SDK_NetNTPConfig
E_SDK_CONFIG_NET_PPPOE, //PPPOE---对应结构体SDK_NetPPPoEConfig
E_SDK_CONFIG_NET_DNS, //DNS---对应结构体SDK_NetDNSConfig
E_SDK_CONFIG_NET_FTPSERVER, //FTP---对应结构体SDK_FtpServerConfig
E_SDK_CONFIG_SYS_TIME, //系统时间---对应结构体SDK_SYSTEM_TIME(接口H264_DVR_SetSystemDateTime也可以实现)
E_SDK_CONFIG_CLEAR_LOG, //清除日志(接口H264_DVR_ControlDVR)
E_SDK_REBOOT_DEV, //重启启动设备(接口H264_DVR_ControlDVR)
E_SDK_CONFIG_ABILITY_LANG, //支持语言---对应结构体SDK_MultiLangFunction
E_SDK_CONFIG_VIDEO_FORMAT,
E_SDK_CONFIG_COMBINEENCODE = 50, //组合编码---对应结构体SDK_CombineEncodeConfigAll
E_SDK_CONFIG_EXPORT, //配置导出
E_SDK_CONFIG_IMPORT, //配置导入
E_SDK_LOG_EXPORT, //日志导出
E_SDK_CONFIG_COMBINEENCODEMODE, //组合编码模式---对应结构体SDK_CombEncodeModeAll
E_SDK_WORK_STATE, //运行状态---SDK_DVR_WORKSTATE(接口H264_DVR_GetDVRWorkState也可以获取)
E_SDK_ABILITY_LANGLIST, //实际支持的语言集---对应结构体SDK_MultiLangFunction
E_SDK_CONFIG_NET_ARSP, //ARSP---对应结构体SDK_NetARSPConfigAll
E_SDK_CONFIG_SNAP_STORAGE, //抓图设置---对应结构体SDK_SnapshotConfig
E_SDK_CONFIG_NET_3G, //3G拨号---对应结构体SDK_Net3GConfig
E_SDK_CONFIG_NET_MOBILE = 60, //手机监控---对应结构体SDK_NetMoblieConfig
E_SDK_CONFIG_UPGRADEINFO, //获取升级信息/参数/文件名---对应结构体SDK_UpgradeInfo
E_SDK_CONFIG_NET_DECODER, //解码器地址设置V1(弃用)---对应结构体SDK_NetDecoderConfigAll
E_SDK_ABILITY_VSTD, //实际支持的视频制式---对应结构体SDK_MultiVstd
E_SDK_CONFIG_ABILITY_VSTD, //支持视频制式---对应结构体SDK_MultiVstd
E_SDK_CONFIG_NET_UPNP, //UPUN设置---对应结构体SDK_NetUPNPConfig
E_SDK_CONFIG_NET_WIFI, //WIFI---对应结构体SDK_NetWifiConfig
E_SDK_CONFIG_NET_WIFI_AP_LIST, //搜索到的wifi列表---对应结构体SDK_NetWifiDeviceAll
E_SDK_CONFIG_SYSENCODE_SIMPLIIFY, //简化的编码配置---对应结构SDK_EncodeConfigAll_SIMPLIIFY
E_SDK_CONFIG_ALARM_CENTER, //告警中心---对应结构体SDK_NetAlarmServerConfigAll
E_SDK_CONFIG_NET_ALARM = 70, //网络告警---对应结构体SDK_NETALARMCONFIG_ALL
E_SDK_CONFIG_NET_MEGA, //互信互通---对应结构体SDK_CONFIG_NET_MEGA
E_SDK_CONFIG_NET_XINGWANG, //星望---对应结构体SDK_CONFIG_NET_XINGWANG
E_SDK_CONFIG_NET_SHISOU, //视搜---对应结构体SDK_CONFIG_NET_SHISOU
E_SDK_CONFIG_NET_VVEYE, //VVEYE---对应结构体SDK_CONFIG_NET_VVEYE
E_SDK_CONFIG_NET_PHONEMSG, //短信---对应结构体SDK_NetShortMsgCfg
E_SDK_CONFIG_NET_PHONEMEDIAMSG, //彩信---对应结构体SDK_NetMultimediaMsgCfg
E_SDK_VIDEO_PREVIEW, //
E_SDK_CONFIG_NET_DECODER_V2, //解码器地址设置V2(弃用)---对应结构体SDK_NetDecorderConfigAll_V2
E_SDK_CONFIG_NET_DECODER_V3, //解码器地址设置V3---对应结构体SDK_NetDecorderConfigAll_V3
E_SDK_CONFIG_ABILITY_SERIALNO = 80, //序列号---对应结构体SDK_AbilitySerialNo(经测试不是设备序列号(暂弃用),序列号可以从登陆接口获取到)
E_SDK_CONFIG_NET_RTSP, //RTSP---对应结构体SDK_NetRTSPConfig
E_SDK_GUISET, //本地GUI输出设置---对应结构体SDK_GUISetConfig
E_SDK_CATCHPIC, //抓图
E_SDK_VIDEOCOLOR, //视频颜色设置---对应结构体SDK_VideoColorConfigAll
E_SDK_CONFIG_COMM485, //串口485协议配置---对应结构体SDK_STR_RS485CONFIG_ALL
E_SDK_COMFIG_ABILITY_COMMPRO485, //串口485协议---对应结构体SDK_COMMFUNC
E_SDK_CONFIG_SYS_TIME_NORTC, //设置系统时间noRtc---对应结构体SDK_SYSTEM_TIME
E_SDK_CONFIG_REMOTECHANNEL, //远程通道---弃用
E_SDK_CONFIG_OPENTRANSCOMCHANNEL , //打开透明串口---对应结构体TransComChannel
E_SDK_CONFIG_CLOSETRANSCOMCHANNEL = 90,//关闭透明串口
E_SDK_CONFIG_SERIALWIRTE, //写入透明串口信息
E_SDK_CONFIG_SERIALREAD, //读取透明串口信息
E_SDK_CONFIG_CHANNELTILE_DOT, //点阵信息-修改IPC通道名需要点阵信息---对应结构体SDK_TitleDot
E_SDK_CONFIG_CAMERA, //摄象机参数---对应结构体SDK_CameraParam
E_SDK_CONFIG_ABILITY_CAMERA, //曝光能力级---对应结构体SDK_CameraAbility
E_SDK_CONFIG_BUGINFO, //命令调试
E_SDK_CONFIG_STORAGENOTEXIST, //硬盘不存在---对应结构体SDK_VIDEOLOSSCONFIG
E_SDK_CONFIG_STORAGELOWSPACE, //硬盘容量不足---对应结构体SDK_StorageLowSpaceConfig
E_SDK_CONFIG_STORAGEFAILURE, //硬盘出错---对应结构体SDK_StorageFailConfig
E_SDK_CFG_NETIPCONFLICT = 100, //IP冲突---对应结构体SDK_VIDEOLOSSCONFIG
E_SDK_CFG_NETABORT, //网络异常---对应结构体SDK_VIDEOLOSSCONFIG
E_SDK_CONFIG_CHNSTATUS, //通道状态---对应结构体SDK_NetDecorderChnStatusAll
E_SDK_CONFIG_CHNMODE, //通道模式---对应结构体SDK_NetDecorderChnModeConfig
E_SDK_CONFIG_NET_DAS, //主动注册---对应结构体SDK_DASSerInfo
E_SDK_CONFIG_CAR_INPUT_EXCHANGE, //外部信息输入与车辆状态的对应关系---对应结构体SDK_CarStatusExchangeAll
E_SDK_CONFIG_DELAY_TIME, //车载系统延时配置---对应结构体SDK_CarDelayTimeConfig
E_SDK_CONFIG_NET_ORDER, //网络优先级---对应结构体SDK_NetOrderConfig
E_SDK_CONFIG_ABILITY_NETORDER , //网络优先级设置能力---对应结构体SDK_NetOrderFunction
E_SDK_CONFIG_CARPLATE, //车牌号配置---对应结构体SDK_CarPlates
E_SDK_CONFIG_LOCALSDK_NET_PLATFORM = 110, //网络平台信息设置---对应结构体SDK_LocalSdkNetPlatformConfig
E_SDK_CONFIG_GPS_TIMING, //GPS校时相关配置---对应结构体SDK_GPSTimingConfig
E_SDK_CONFIG_VIDEO_ANALYZE, //视频分析(智能DVR)---对应结构体SDK_ANALYSECONFIG
E_SDK_CONFIG_GODEYE_ALARM, //神眼接警中心系统---对应结构体SDK_GodEyeConfig
E_SDK_CONFIG_NAT_STATUS_INFO, //nat状态信息---对应结构体SDK_NatStatusInfo
E_SDK_CONFIG_BUGINFOSAVE, //命令调试(保存)
E_SDK_CONFIG_MEDIA_WATERMARK, //水印设置---对应结构体SDK_WaterMarkConfigAll
E_SDK_CONFIG_ENCODE_STATICPARAM, //编码器静态参数---对应结构体SDK_EncodeStaticParamAll
E_SDK_CONFIG_LOSS_SHOW_STR, //视频丢失显示字符串
E_SDK_CONFIG_DIGMANAGER_SHOW, //通道管理显示配置---对应结构体SDK_DigManagerShowStatus
E_SDK_CONFIG_ABILITY_ANALYZEABILITY = 120,//智能分析能力---对应结构体SDK_ANALYZEABILITY
E_SDK_CONFIG_VIDEOOUT_PRIORITY, //显示HDMI VGA优先级别配置
E_SDK_CONFIG_NAT, //NAT功能,MTU值配置---对应结构体SDK_NatConfig
E_SDK_CONFIG_CPCINFO, //智能CPC计数数据信息---对应结构体SDK_CPCDataAll
E_SDK_CONFIG_STORAGE_POSITION, // 录像存储设备类型---对应结构体SDK_RecordStorageType
E_SDK_CONFIG_ABILITY_CARSTATUSNUM,//车辆状态数---对应结构体SDK_CarStatusNum
E_SDK_CFG_VPN, //VPN---对应结构体SDK_VPNConfig
E_SDK_CFG_VIDEOOUT, //VGA视频分辨率---对应结构体SDK_VGAresolution
E_SDK_CFG_ABILITY_VGARESOLUTION,//支持的VGA分辨率列表---对应结构体SDK_VGAResolutionAbility
E_SDK_CFG_NET_LOCALSEARCH, //搜索设备,设备端的局域网设备---对应结构体SDK_NetDevList
E_SDK_CFG_NETPLAT_KAINENG = 130,//客户配置---对应结构体SDK_CONFIG_KAINENG_INFO
E_SDK_CFG_ENCODE_STATICPARAM_V2,//DVR编码器静态参数---对应结构体SDK_EncodeStaticParamV2
E_SDK_ABILITY_ENC_STATICPARAM, //静态编码能力集---对应结构体SDK_EncStaticParamAbility (掩码)
E_SDK_CFG_C7_PLATFORM, //C7平台配置---对应结构体SDK_C7PlatformConfig
E_SDK_CFG_MAIL_TEST, //邮件测试---对应结构体SDK_NetEmailConfig
E_SDK_CFG_NET_KEYBOARD, //网络键盘服务---对应结构体SDK_NetKeyboardConfig
E_SDK_ABILITY_NET_KEYBOARD, //网络键盘协议---对应结构体SDK_NetKeyboardAbility
E_SDK_CFG_SPVMN_PLATFORM, //28181协议配置---对应结构体SDK_ASB_NET_VSP_CONFIG
E_SDK_CFG_PMS, //手机服务---对应结构体SDK_PMSConfig
E_SDK_CFG_OSD_INFO, //屏幕提示信息---对应结构体SDK_OSDInfoConfigAll
E_SDK_CFG_KAICONG = 140, //客户配置---对应结构体SDK_KaiCongAlarmConfig
E_SDK_CFG_DIGITAL_REAL, //真正支持的通道模式---对应结构体SDK_VideoChannelManage
E_SDK_ABILITY_PTZCONTROL, //PTZ控制能力集---对应结构体SDK_PTZControlAbility
E_SDK_CFG_XMHEARTBEAT, //对应结构体SDK_XMHeartbeatConfig
E_SDK_CFG_MONITOR_PLATFORM, //平台配置---对应结构体SDK_MonitorPlatformConfig
E_SDK_CFG_PARAM_EX, //摄像头扩展参数---对应结构体SDK_CameraParamEx
E_SDK_CFG_NETPLAT_ANJU_P2P, //安巨P2P---对应结构体SDK_NetPlatformCommonCfg
E_SDK_GPS_STATUS, //GPS连接信息---对应结构体SDK_GPSStatusInfo
E_SDK_WIFI_STATUS, //Wifi连接信息---对应结构体SDK_WifiStatusInfo
E_SDK_3G_STATUS, //3G连接信息---对应结构体SDK_WirelessStatusInfo
E_SDK_DAS_STATUS = 150, //主动注册状态---对应结构体SDK_DASStatusInfo
E_SDK_ABILITY_DECODE_DELEY, //解码策略能力---对应结构体SDK_DecodeDeleyTimePrame
E_SDK_CFG_DECODE_PARAM, //解码最大延时---对应结构体SDK_DecodeParam
E_SDK_CFG_VIDEOCOLOR_CUSTOM, //Sdk videocolor param custom
E_SDK_ABILITY_ONVIF_SUB_PROTOCOL,//onvif子协议---对应结构体SDK_AbilityMask
E_SDK_CONFIG_EXPORT_V2, //导出设备默认配置,即出厂的配置
E_SDK_CFG_CAR_BOOT_TYPE, //车载开关机模式---对应结构体SDK_CarBootTypeConfig
E_SDK_CFG_IPC_ALARM, //IPC网络报警---对应结构体SDK_IPCAlarmConfigAll
E_SDK_CFG_NETPLAT_TUTK_IOTC, //TUTK IOTC平台配置---对应结构体SDK_NetPlatformCommonCfg
E_SDK_CFG_BAIDU_CLOUD, //百度云---对应结构体SDK_BaiduCloudCfg
E_SDK_CFG_PMS_MSGNUM = 160, //手机订阅数---对应结构体SDK_PhoneInfoNum
E_SDK_CFG_IPC_IP, //控制DVR去修改设备IP---对应结构体SDK_IPSetCfg
E_SDK_ABILITY_DIMEN_CODE, //二维码点阵---对应结构体SDK_DimenCodeAll
E_SDK_CFG_MOBILE_WATCH, //中国电信手机看店平台配置---对应结构体SDK_MobileWatchCfg
E_SDK_CFG_BROWSER_LANGUAGE, //使用浏览器时使用的语言---对应结构体SDK_BrowserLanguageType
E_SDK_CFG_TIME_ZONE, //时区配置---对应结构体SDK_TimeZone
E_SDK_CFG_NETBJTHY, //客户配置---对应结构体SDK_MonitorPlatformConfig
E_SDK_ABILITY_MAX_PRE_RECORD, //最大可设置预录时间1~30---对应结构体SDK_AbilityMask
E_SDK_CFG_DIG_TIME_SYN, //数字通道时间同步配置(决定前端同步方式)---对应结构体SDK_TimeSynParam
E_SDK_CONFIG_OSDINFO_DOT, //3行OSD
E_SDK_CFG_NET_POS = 170, //POS机配置---对应结构体SDK_NetPosConfigAll
E_SDK_CFG_CUSTOMIZE_OEMINFO, //定制OEM客户版本信息---对应结构体SDK_CustomizeOEMInfo
E_SDK_CFG_DIGITAL_ENCODE, //数字通道精简版编码配置---对应结构体SDK_EncodeConfigAll_SIMPLIIFY
E_SDK_CFG_DIGITAL_ABILITY, //数字通道的编码能力---对应结构体SDK_DigitDevInfo
E_SDK_CFG_ENCODECH_DISPLAY, //IE端编码配置显示的前端通道号---对应结构体SDK_EncodeChDisplay
E_SDK_CFG_RESUME_PTZ_STATE, //开机云台状态---对应结构体SDK_ResumePtzState
E_SDK_CFG_LAST_SPLIT_STATE, //最近一次的画面分割模式,用于重启后恢复之前的分割模式
E_SDK_CFG_SYSTEM_TIMING_WORK, //设备定时开关机时间配置。隐藏在自动维护页面里,要用超级密码登陆才能看到界面
E_SDK_CFG_GBEYESENV, //宝威环境监测平台配置---对应结构体SDK_NetPlatformCommonCfg
E_SDK_ABILITY_AHD_ENCODE_L, //AHDL能力集---对应结构体SDK_AHDEncodeLMask
E_SDK_CFG_SPEEDALARM = 180, //速度报警---对应结构体SDK_SpeedAlarmConfigAll
E_SDK_CFG_CORRESPONDENT_INFO, //用户自定义配置---对应结构体SDK_CorrespondentOwnInfo
E_SDK_SET_OSDINFO, //OSD信息设置---对应结构体SDK_OSDInfo,(此项功能只支持模拟通道)
E_SDK_SET_OSDINFO_V2, //OSD信息叠加,不保存配置---对应结构体SDK_OSDInfoConfigAll,(此项功能只支持模拟通道)
E_SDK_ABILITY_SUPPORT_EXTSTREAM,//支持辅码流录像---对应结构体SDK_AbilityMask
E_SDK_CFG_EXT_RECORD, //辅码流配置---对应结构体SDK_RECORDCONFIG_ALL/SDK_RECORDCONFIG
E_SDK_CFG_APP_DOWN_LINK, //用于用户定制下载链接---对应结构体SDK_AppDownloadLink
E_SDK_CFG_EX_USER_MAP, //用于保存明文数据---对应结构体SDK_UserMap
E_SDK_CFG_TRANS_COMM_DATA, //串口数据主动上传到UDP或TCP服务器,其中TCP服务器可以支持双向通信---对应结构体SDK_NetTransCommData
E_SDK_EXPORT_LANGUAGE, //语言导出
E_SDK_IMPORT_LANGUAGE = 190, //语言导入
E_SDK_DELETE_LANGUAGE, //语言删除
E_SDK_CFG_UPGRADE_VERSION_LIST, //云升级文件列表---对应结构体SDK_CloudUpgradeList
E_SDK_CFG_GSENSORALARM, //GSENSOR报警
E_SDK_CFG_USE_PROGRAM, //启动客户小程序---对应结构体SDK_NetUseProgram
E_SDK_CFG_FTP_TEST, //FTP测试---对应结构体SDK_FtpServerConfig
E_SDK_CFG_FbExtraStateCtrl, //消费类产品的录像灯的状态---对应结构体SDK_FbExtraStateCtrl
E_SDK_CFG_PHONE, //手机用
E_SDK_PicInBuffer, //手机抓图,弃用
E_SDK_GUARD, //布警 弃用
E_SDK_UNGUARD = 200, //撤警,弃用
E_SDK_CFG_START_UPGRADE, //开始升级,弃用
E_SDK_CFG_AUTO_SWITCH, //插座定时开关---获取配置都用H264_DVR_GetDevConfig_Json,配置使用H264_DVR_SetDevConfig_Json(配置时的格式见智能插座用到的命令.doc)(两个接口简称Json接口,下面用简称) "Name":"PowerSocket.AutoSwitch"
E_SDK_CFG_POWER_SOCKET_SET, //控制插座开关---Json接口 "Name":"OPPowerSocketGet"
E_SDK_CFG_AUTO_ARM, //插座的定时布撤防---Json接口 "Name":"PowerSocket.AutoArm"
E_SDK_CFG_WIFI_MODE, //Wifi模式配置,用于行车记录仪切换AP模式---对应结构体SDK_NetWifiMode
E_SDK_CFG_CIENT_INFO, //传递手机客户端信息---Json接口 "Name":"PowerSocket.ClientInfo"
E_SDK_CFG_ATHORITY, //SDK_Authority---Json接口 "Name":"PowerSocket.Authority"
E_SDK_CFG_ARM , //SDK_Arm---Json接口 "Name":"PowerSocket.Arm"
E_SDK_CFG_AUTOLIGHT, //设置夜灯的定时开关功能 --Json接口 "Name" : "PowerSocket.AutoLight",
E_SDK_CFG_LIGHT = 210, //使能和禁止夜灯的动检响应功能---Json接口 "Name" : "PowerSocket.Light",
E_SDK_CFG_WORKRECORD, //进行电量统计---Json接口 "Name" : "PowerSocket.WorkRecord",
E_SDK_CFG_SYSTEMTIME, //设置时间的命令 ,当局域网连接的时候,连接的时候,发送对时命令 --Json接口 "Name":"System.Time"
E_SDK_CFG_USB, //usb接口控制功能---Json接口 "Name":"PowerSocket.Usb"
E_SDK_CFG_NETPLAT_BJHONGTAIHENG,//北京鸿泰恒平台---对应结构体SDK_CONFIG_NET_BJHONGTAIHENG
E_SDK_CFG_CLOUD_STORAGE, //云存储相关配置---对应结构体SDK_CloudRecordConfigAll
E_SDK_CFG_IDLE_PTZ_STATE, //云台空闲动作相关配置---对应结构体SDK_PtzIdleStateAll
E_SDK_CFG_CAMERA_CLEAR_FOG, //去雾功能配置---对应结构体SDK_CameraClearFogAll
E_SDK_CFG_WECHATACCOUNT, //---对应json "Name":"PowerSocket.WechatAccount"
E_SDK_CFG_WECHATRENEW, //---对应json "Name":"PowerSocket.WechatRenew"
E_SDK_CFG_POWERSOCKET_WIFI = 220,//---对应json "Name":"PowerSocket.WiFi"
E_SDK_CFG_CAMERA_MOTOR_CONTROL, //机器人马达控制---对应结构体SDK_CameraMotorCtrl
E_SDK_CFG_ENCODE_ADD_BEEP, //设置编码加入每隔30秒beep声---对应结构体SDK_EncodeAddBeep
E_SDK_CFG_DATALINK, //datalink客户在网络服务中的执行程序使能配置---对应结构体 SDK_DataLinkConfig
E_SDK_CFG_FISH_EYE_PARAM, //鱼眼功能参数配置---对应结构体SDK_FishEyeParam
E_SDK_OPERATION_SET_LOGO, //视频上叠加厂家的LOGO---对应结构体SDK_SetLogo
E_SDK_CFG_SPARSH_HEARTBEAT, //Sparsh客户的心跳功能配置---对应结构体 SDK_SparshHeartbeat
E_SDK_CFG_LOGIN_FAILED, //登录失败时发送邮件,使用结构体:基本事件结构---对应结构体 SDK_VIDEOLOSSCONFIG
E_SDK_CFG_NETPLAT_SPVMN_NAS, //安徽超清客户的nas服务器配置---对应结构体SDK_SPVMN_NAS_SERVER
E_SDK_CFG_DDNS_APPLY, //ddns 按键功能测试---对应结构体SDK_NetDDNSConfigALL
E_SDK_OPERATION_NEW_UPGRADE_VERSION_REQ = 230, //新版云升级版本查询请求---对应结构体SDK_CloudUpgradeVersionRep
E_SDK_CFG_IPV6_ADDRESS, //ipv6------对应的结构体SDK_IPAddressV6
E_SDK_CFG_DDNS_IPMSG, //DDNS外网IP地址
E_SDK_CFG_ONLINE_UPGRADE, //在线升级相关配置-----对应的结构体SDK_OnlineUpgradeCfg
E_SDK_CFG_CONS_SENSOR_ALARM, //家用产品433报警联动项配置-----对应的SDK_ConsSensorAlarmCfg
E_SDK_OPEARTION_SPLIT_CONTROL, //画面分割模式-----对应的结构体SDK_SplitControl
E_SDK_CFG_Netinfo_TRANS_COMM, //Netinfo_cctv客户增加串口数据到指定服务器配置-----对应的结构体SDK_NetinfoNetTransComm
E_SDK_CFG_RECORD_ENABLE, //是否准备好开始录像和抓图,现在用于日本客户通过串口控制开启和关闭录像功能
E_SDK_CFG_NAS, //nas配置 //SDK_NAS_LIST
E_SDK_CFG_NKB_DEVICE_LIST, //网络键盘设备链表
E_SDK_CFG_PARKING_PORT = 240, //泊车系统端口号配置 SDK_PortService
E_SDK_CFG_NET_GBEYES, //信产全球眼平台 SDK_GbEyesCfg
E_SDK_CFG_GLOBALEYE, //全球眼配置 SDK_DefaultResponse
E_SDK_OPERATION_FISHEYE_MODIFY_CENTER, //鱼眼圆心校正 SDK_Point
E_SDK_OPERATION_UTC_TIME_SETTING = 244, //设置UTC时间---对应结构体SDK_SYSTEM_TIME
E_SDK_CFG_INTELBRAS_SPECIAL_INFO, //interbras 特殊tcp端口号-----SDK_IntelBrasSpecialInfo
E_SDK_CFG_SPVMN_PLATFORM_SIP, //28181协议配置sip板卡ip-------SDK_SIP_NET_IP_CONFIG
E_SDK_CFG_FISH_LENS_PARAM, //魚眼鏡頭參數------SDK_FishLensParam
E_SDK_CFG_PTZCTRLMODE, //模拟通道云台控制的控制方式选择-----SDK_PTZControlModeAll
E_SDK_CFG_ENCODE_SmartH264, //SmartH264+配置------SDK_SmartH264ParamAll
E_SDK_CFG_WIFI_INFO, //无线WIFI信息--SDK_WifiInfo
E_SDK_CFG_NET_RTMP, //RTMP协议--SDK_NetRTMPConfig
E_SDK_CFG_SNAP_SCHEDULE, //定时抓图配置--SDK_SnapConfigAll
E_SDK_OPERATION_SET_LANGUAGE, //设置一种语言
E_SDK_CFG_PTZPRESET, //预置点配置--SDK_PtzPreset
E_SDK_CFG_PTZTOUR, //巡航配置--SDK_PtzTour
E_SDK_CFG_PWD_SAFETY, //安全问题相关配置(用于重置密码)--SDK_PasswordSafety
E_SDK_ABILITY_QUESTION_DELIVERY, //获取密码找回问题--SDK_QuestionDelivery
E_SDK_CFG_TUTK_VERSION, //TUTK客户定制版本信息--SDK_TutkVersion
E_SDK_CFG_BREVIARY, //缩略图配置
E_SDK_CFG_SERIALPORT_ALARM, //串口报警配置--SDK_SerialPortAlarm
E_SDK_OPEARTION_SET_LEARN_CODE, //支持串口报警设置才能设置学码--SDK_AMIRLearnCode
E_SDK_CFG_PIR_ALARM, //客户定制PIR报警配置--SDK_PIRConfigAll
E_SDK_OPEARTION_CAMERA_VISCA, //亿嘉和Visca协议修改,设置和获取倍率焦距等--SDK_CameraViscaControl
E_SDK_OPERATION_TIME_SETTING_NEW_WAY, //设置系统时间(想关掉时间同步的程序可以用这个命令,并禁用之前的时间设置命令)
E_SDK_OPERATION_UTC_TIME_SETTING_NEW_WAY,//设置UTC时间(用于其他协议设置UTC时间)
E_SDK_CFG_DDNSADDRINFO, //DDNS状态信息
E_SDK_CFG_THXY_VERION_INFO, //天宏旭鹰定制版本信息--SDK_THXY_VersionInfo
E_SDK_CFG_ALARM_BLUR_CHECK, //图像模糊检测--SDK_BlurCheckAlarmAll
E_SDK_CFG_INTEL_ENCODE, //智能编码--SDK_IntelEnCodeCfgAll
E_SDK_CFG_PLATE_DETECT_WHITE_LIST, //车牌识别白名单--SDK_PlateDetectWhiteList
E_SDK_OPERATION_PLATE_DETECT_LIFT, //车牌侦测抬杆--SDK_PlateDetectLiftBar
E_SDK_CFG_ALARM_PLATE_DETECT, //车牌侦测报警--SDK_PlateDetectAll
E_SDK_CFG_ALARM_FACE_DETECT, //人脸识别报警--SDK_FaceDetectAll
E_SDK_CFG_NET_IPADAPTIVE, //ip自适应网关功能使能配置--SDK_IPAdaptiveCfg
E_SDK_CFG_OEM_GETINFO, //客户定制获取系统信息--SDK_OemGetInfo
E_SDK_CFG_433_ALARM_DEV, //客户定制433报警配置--SDK_ConsumerAlarm433DevList
E_SDK_CFG_NET_ONVIF_PWD_CHECKOUT, //onvif 密码校验--SDK_IpcOnvifPwdCheckout
E_SDK_CFG_BALL_CAMERA_TRACK_DETECT, //球机跟踪识别配置--SDK_BallCameraTrackDetectParamAll
E_SDK_CFG_CAMERA_SPECIAL_NIGHT, //夜晚情景特殊模式--SDK_CameraSpecialNightCtrl
E_SDK_CFG_LPR_LIGHT_CONTROL, //车牌识别白光灯控制--SDK_LPRLigthControl
E_SDK_CFG_LPR_RECOGNIZE_TRIGGERMODE, //车牌识别触发方式--SDK_LPRRecognizeTriggerMode
E_SDK_CFG_LPR_TEMP_CAR_CHARGE_RULE, //临时车收费规则--SDK_LPRTempCarChargeRule
E_SDK_OPERATION_LPR_FORCE_RECOGNIZE, //强制开始识别车牌--SDK_LprForceTrigRecognize
E_SDK_CFG_LPR_DISPLAY, //车牌识别 LED显示屏配置--SDK_LprLedSet
E_SDK_CFG_LPR_BLACK_WHITE_LIST_WORK_MODE,//车牌收费系统黑白名单工作模式--SDK_LprBlackWhiteListModeAll
E_SDK_OPERATION_LPR_LED_SHOW, //显示屏显示收费金额,空余车位--SDK_LprLedShow
E_SDK_CFG_LPR_AUTO_CONTRL_GATE, //车牌收费系统针对临时车收费自动抬杆配置--SDK_LprAutoContrlGate
E_SDK_LPR_ENTRY_EXIT_EXPORT, //停车收费系统出入记录导出--
E_SDK_CFG_LPR_ENTRY_EXIT, //车牌收费系统出入场配置--SDK_LprEntryExitSet
E_SDK_CFG_LPR_PARKING_LOT_INFO, //车牌收费系统停车场信息--SDK_LprParkingLotInfo
E_SDK_CFG_HARDWARE_ABILITY, //发送数据
E_SDK_CFG_URL_LOAD, //上海熠知二次开发获取上传路径--SDK_CustomURLCfg
E_SDK_CFG_LPR_HTTP_COMMUNICATION, //车牌识别结果通过http协议推送配置--SDK_LprHttpCommunication
E_SDK_CFG_PIRDETECT, //PIR 检测--SDK_PIRDetectV2Config
E_SDK_CFG_SERIAL_TRANS, //杭州庄贤串口透传获取web 端的配置--SDK_SerialTransConfig
E_SDK_CFG_CAMERA_SET_AWB, //西安知象定制白平衡--SDK_AWB_ATTR
E_SDK_CFG_ControlPTZ, //控制云台
E_SDK_OPERATION_SET_SENSOR_ABILITY, //设置合封模组sensor等级信息
E_SDK_OPERATION_GET_SENSOR_ABILITY, //获取合封模组sensor等级信息
E_SDK_OPERATION_SWITCH_WIFI_MODE, //切换AP模式--SDK_SWITCH_WIFI_MODE
E_SDK_DEVICE_INFO_LPR_VERSION, //车牌识别版本信息--SDK_LPR_VERSION
}SDK_CONFIG_TYPE;
/// 报警事件码
enum SDK_EventCodeTypes
{
SDK_EVENT_CODE_INIT = 0,
SDK_EVENT_CODE_LOCAL_ALARM = 1, //本地报警(外部报警)
SDK_EVENT_CODE_NET_ALARM, //网络报警
SDK_EVENT_CODE_MANUAL_ALARM, //手动报警
SDK_EVENT_CODE_VIDEO_MOTION, //动态检测
SDK_EVENT_CODE_VIDEO_LOSS, //视频丢失
SDK_EVENT_CODE_VIDEO_BLIND, //视频遮挡
SDK_EVENT_CODE_VIDEO_TITLE,
SDK_EVENT_CODE_VIDEO_SPLIT,
SDK_EVENT_CODE_VIDEO_TOUR,
SDK_EVENT_CODE_STORAGE_NOT_EXIST, //存储设备不存在
SDK_EVENT_CODE_STORAGE_FAILURE, //存储设备访问失败
SDK_EVENT_CODE_LOW_SPACE, //存储设备容量过低
SDK_EVENT_CODE_NET_ABORT,
SDK_EVENT_CODE_COMM,
SDK_EVENT_CODE_STORAGE_READ_ERROR, //存储设备读错误
SDK_EVENT_CODE_STORAGE_WRITE_ERROR, //存储设备写错误
SDK_EVENT_CODE_NET_IPCONFLICT, //ip冲突
SDK_EVENT_CODE_ALARM_EMERGENCY,
SDK_EVENT_CODE_DEC_CONNECT,
SDK_EVENT_CODE_UPGRADE,
SDK_EVENT_CODE_BACK_UP,
SDK_EVENT_CODE_SHUT_DOWN,
SDK_EVENT_CODE_REBOOT,
SDK_EVENT_CODE_NEWFILE,
SDK_EVENT_CODE_VideoAnalyze,
SDK_EVENT_CODE_IPC_ALARM,
SDK_EVENT_CODE_SPEED_ALARM,
SDK_EVENT_CODE_GSENSOR_AlARM,
SDK_EVENT_CODE_LOGIN_FAILED, //登录失败
SDK_EVENT_CODE_SERIAL_ALARM,
SDK_EVENT_CODE_PIR_ALARM, //客户定制PIR报警
SDK_EVENT_CODE_CONSSENSOR_ALARM, //消费类产品绑定的外部设备报警
SDK_EVENT_CODE_WORDDETECT, //家用产品,语音识别敏感词报警
SDK_EVENT_CODE_BLURCHECK_ALARM, //模糊检测报警
SDK_EVENT_CODE_PLATEDETECT, //车牌检测报警
SDK_EVENT_CODE_FACEDETECT, //人脸检测报警
SDK_EVENT_CODE_433ALARM, //客户定制433报警
SDK_EVENT_CODE_PIRDetect = 38, //PIR检测
SDK_EVENT_CODE_NR,
};
//! 编码配置的类型
enum SDK_ENCODE_TYPE_BY_RECORD
{
SDK_ENCODE_TYPE_TIM = 0,
SDK_ENCODE_TYPE_MTD = 1,
SDK_ENCODE_TYPE_ALM = 2,
SDK_ENCODE_TYPE_NUM = 3,
SDK_ENCODE_TYPE_SNAP_TIMER = 0,
SDK_ENCODE_TYPE_SNAP_TRIGGER = 1,
};
#define SDK_EXTRATYPES 3 //辅码流类型
//网络传输策略
enum SDK_TransferPolicy
{
SDK_TRANSFER_POLICY_AUTO, ///< 自适应
SDK_TRANSFER_POLICY_QUALITY, ///< 质量优先
SDK_TRANSFER_POLICY_FLUENCY, ///< 流量优先
SDK_TRANSFER_POLICY_TRANSMISSION, ///< 网传优先
SDK_TRANSFER_POLICY_NR,
};
/// 网络传输协议类型
enum SDK_NetTransProtocolType
{
SDK_NET_TRANS_PRO_TCP = 0,
SDK_NET_TRANS_PRO_UDP = 1,
};
typedef struct {
int left;
int top;
int right;
int bottom;
}sdkRect;
/// 音频输入格式,语音对讲用
typedef struct SDK_AudioInFormatConfig
{
int iBitRate; ///< 码流大小,kbps为单位,比如192kbps,128kbps
int iSampleRate; ///< 采样率,Hz为单位,比如44100Hz
int iSampleBit; ///< 采样的位深
int iEncodeType; ///< 编码方式,参照AudioEncodeTypes定义
}SDK_AudioInFormatConfig;
//语音对讲格式
typedef enum __TALK_CODING_TYPE
{
TALK_DEFAULT = 0,
TALK_PCM = 1, //Pcm
TALK_G711a, //G711a
TALK_AMR, //Amr
TALK_G711u, //G711 and
TALK_G726, //G726
}TALK_CODING_TYPE;
//语音对讲
typedef struct H264_DVR_TALKDECODE_INFO
{
TALK_CODING_TYPE encodeType; //编码类型
int nAudioBit; //用实际的值表示,如8位 则填值为8
unsigned int dwSampleRate; //采样率,如16k 则填值为16000
char reserved[64];
}H264_DVR_TALKDECODE_INFO;
/// 系统时间结构
typedef struct SDK_SYSTEM_TIME{
int year; ///< 年。
int month; ///< 月,January = 1, February = 2, and so on.
int day; ///< 日。
int wday; ///< 星期,Sunday = 0, Monday = 1, and so on
int hour; ///< 时。
int minute; ///< 分。
int second; ///< 秒。
int isdst; ///< 夏令时标识。
}SDK_SYSTEM_TIME;
//录像设置相关结构体
typedef struct SDK_TIMESECTION
{
//!使能
int enable;
//!开始时间:小时
int startHour;
//!开始时间:分钟
int startMinute;
//!开始时间:秒钟
int startSecond;
//!结束时间:小时
int endHour;
//!结束时间:分钟
int endMinute;
//!结束时间:秒钟
int endSecond;
}SDK_TIMESECTION;
typedef struct{
int dwYear; //年
int dwMonth; //月
int dwDay; //日
int dwHour; //时
int dwMinute; //分
int dwSecond; //秒
}H264_DVR_TIME,*LPH264_DVR_TIME;
//时间结构
typedef struct _NEW_NET_TIME
{
unsigned int second :6; // 秒 1-60
unsigned int minute :6; // 分 1-60
unsigned int hour :5; // 时 1-24
unsigned int day :5; // 日 1-31
unsigned int month :4; // 月 1-12
unsigned int year :6; // 年 2000-2063
}NEW_NET_TIME, *LPNET_TIME;
///< 夏令时结构
typedef struct DSTPoint
{
int iYear;
int iMonth;
int iWeek; ///<周1:first to2 3 4 -1:last one 0:表示使用按日计算的方法[-1,4]
int iWeekDay; ///<weekday from sunday=0 [0, 6]
int Hour;
int Minute;
}DSTPoint;
typedef struct SDK_VIDEO_FORMAT
{
int iCompression; // 压缩模式(视频格式) 参照enum SDK_CAPTURE_COMP_t
int iResolution; // 分辨率 参照枚举SDK_CAPTURE_SIZE_t
int iBitRateControl; // 码流控制 参照枚举SDK_capture_brc_t
int iQuality; // 码流的画质 档次1-6
int nFPS; // 帧率值,NTSC/PAL不区分,负数表示多秒一帧
int nBitRate; // 0-4096k,该列表主要由客户端保存,设备只接收实际的码流值而不是下标。
int iGOP; // 描述两个I帧之间的间隔时间,2-12
} SDK_VIDEO_FORMAT;
typedef struct SDK_AUDIO_FORMAT
{
int nBitRate; // 码流kbps
int nFrequency; // 采样频率
int nMaxVolume; // 最大音量阈值
}SDK_AUDIO_FORMAT;
// 媒体格式
typedef struct SDK_MEDIA_FORMAT
{
SDK_VIDEO_FORMAT vfFormat; // 视频格式定义
SDK_AUDIO_FORMAT afFormat; // 音频格式定义
bool bVideoEnable; // 开启视频编码
bool bAudioEnable; // 开启音频编码
} SDK_MEDIA_FORMAT;
typedef union { //IP addr
unsigned char c[4];
unsigned short s[2];
unsigned int l;
}CONFIG_IPAddress;
///////////////////用户帐号管理相关结构体/////////////////////////////////
typedef struct _OPR_RIGHT
{
char name[NET_MAX_USER_LENGTH];
}OPR_RIGHT;
typedef struct _USER_INFO
{
int rigthNum;
char rights[NET_MAX_RIGTH_NUM][NET_MAX_USER_LENGTH];
char Groupname[NET_MAX_USER_LENGTH];
char memo[NET_MAX_USER_LENGTH];
char name[NET_MAX_USER_LENGTH];
char passWord[NET_MAX_USER_LENGTH];
bool reserved; //是否保留
bool shareable; //本用户是否允许复用 1-复用,0-不复用
}USER_INFO;
typedef struct _USER_GROUP_INFO
{
int rigthNum;
char memo[NET_MAX_USER_LENGTH];
char name[NET_MAX_USER_LENGTH];
char rights[NET_MAX_RIGTH_NUM][NET_MAX_USER_LENGTH]; //权限列表
}USER_GROUP_INFO;
//用户信息配置结构
typedef struct _USER_MANAGE_INFO
{
int rigthNum;
OPR_RIGHT rightList[NET_MAX_RIGTH_NUM];
int groupNum;
USER_GROUP_INFO groupList[NET_MAX_GROUP_NUM];
int userNum;
USER_INFO userList[NET_MAX_USER_NUM];
}USER_MANAGE_INFO;
//修改用户
typedef struct _CONF_MODIFYUSER
{
char UserName[NET_MAX_USER_LENGTH];
USER_INFO User;
}CONF_MODIFYUSER;
//修改组
typedef struct _CONF_MODIFYGROUP
{
char GroupName[NET_MAX_USER_LENGTH];
USER_GROUP_INFO Group;
}CONF_MODIFYGROUP;
/// 修改用户密码请求
struct _CONF_MODIFY_PSW
{
char sUserName[NET_MAX_USER_LENGTH];
char Password[NET_MAX_USER_LENGTH];
char NewPassword[NET_MAX_USER_LENGTH];
};
//普通配置页结构体
typedef struct _SDK_CONFIG_NORMAL
{
SDK_SYSTEM_TIME sysTime; //系统时间
int iLocalNo; ///< 本机编号:[0, 998] */
int iOverWrite; ///< 硬盘满时处理 "OverWrite(iOverWrite=1)", "StopRecord(iOverWrite=0)" */
char cIranCalendarEnable; ///< 是否启用伊朗日历,1表示启用,0表示不启用
char cFontSize; ///< 矢量字体大小
char reserved[2];
char sMachineName[64]; ///< 机器名
int iVideoStartOutPut; ///< 输出模式 */
int iAutoLogout; ///< 本地菜单自动注销(分钟) [0, 120]
int iVideoFormat; ///< 视频制式:“PAL”:0, “NTSC”:1, “SECAM” */
int iLanguage; ///< 语言选择:“English”, “SimpChinese”, “TradChinese”, “Italian”, “Spanish”, “Japanese”, “Russian”, “French”, “German” */
int iDateFormat; ///< 日期格式:“YYMMDD”, “MMDDYY”, “DDMMYY” */
int iDateSeparator; ///< 日期分割符:“.”, “-”, “/” */
int iTimeFormat; ///< 时间格式:“12”, “24” */
int iDSTRule; ///< 夏令时规则
int iWorkDay; ///< 工作日
DSTPoint dDSTStart;
DSTPoint dDSTEnd;
}SDK_CONFIG_NORMAL;
//以下编码配置相关
// 编码设置
typedef struct SDK_CONFIG_ENCODE
{
SDK_MEDIA_FORMAT dstMainFmt[SDK_ENCODE_TYPE_NUM]; // 主码流格式
SDK_MEDIA_FORMAT dstExtraFmt[SDK_EXTRATYPES]; // 辅码流格式
SDK_MEDIA_FORMAT dstSnapFmt[SDK_ENCODE_TYPE_NUM]; // 抓图格式
}SDK_CONFIG_ENCODE;
typedef struct SDK_EncodeConfigAll
{
SDK_CONFIG_ENCODE vEncodeConfigAll[NET_MAX_CHANNUM];
}SDK_EncodeConfigAll;
// 简化版本编码配置
/// 媒体格式
typedef struct SDK_MEDIA_FORMAT_SIMPLIIFY
{
SDK_VIDEO_FORMAT vfFormat; // 视频格式定义
bool bVideoEnable; // 开启视频编码
bool bAudioEnable; // 开启音频编码
}SDK_MEDIA_FORMAT_SIMPLIIFY;
/// 编码设置
typedef struct SDK_CONFIG_ENCODE_SIMPLIIFY
{
SDK_MEDIA_FORMAT dstMainFmt; // 主码流格式
SDK_MEDIA_FORMAT dstExtraFmt; // 辅码流格式
}SDK_CONFIG_ENCODE_SIMPLIIFY;
/// 全通道编码配置
typedef struct SDK_EncodeConfigAll_SIMPLIIFY
{
SDK_CONFIG_ENCODE_SIMPLIIFY vEncodeConfigAll[NET_MAX_CHANNUM];
}SDK_EncodeConfigAll_SIMPLIIFY;
typedef struct SDK_CombineEncodeConfigAll
{
SDK_CONFIG_ENCODE vEncodeConfigAll[NET_MAX_COMBINE_NUM];
}SDK_CombineEncodeConfigAll;
/// 组合编码模式
typedef struct SDK_CombEncodeParam
{
int iEncodeMode; //见CombineEncodeMode
}SDK_CombEncodeParam;
typedef struct SDK_CombEncodeModeAll
{
SDK_CombEncodeParam vEncodeParam[NET_MAX_COMBINE_NUM];
}SDK_CombEncodeModeAll;
//!视频物件结构
typedef struct SDK_VIDEO_WIDGET
{
unsigned int rgbaFrontground; ///< 物件的前景MakeRGB,和透明度
unsigned int rgbaBackground; ///< 物件的后景MakeRGB,和透明度
sdkRect rcRelativePos; ///< 物件边距与整长的比例*8191
bool bPreviewBlend; ///< 预览叠加,是否显示,1:显示 0:隐藏
bool bEncodeBlend; ///< 编码叠加
}SDK_VIDEO_WIDGET;
//!视频物件设置
typedef struct SDK_CONFIG_VIDEOWIDGET
{
SDK_VIDEO_WIDGET dstCovers[NET_COVERNUM];
SDK_VIDEO_WIDGET ChannelTitle; //通道名称
SDK_VIDEO_WIDGET TimeTitle; //设备时间
struct
{
char strName[NET_NAME_PASSWORD_LEN];
#ifdef WIN32
__int64 iSerialNo;
#else
long long iSerialNo;
#endif
}ChannelName; ///< 通道名称
int iCoverNum; ///< 当前该通道有几个叠加的区域 */
}SDK_CONFIG_VIDEOWIDGET;
/// 视频物件(输出模式对话框)
typedef struct SDK_VideoWidgetConfigAll
{
SDK_CONFIG_VIDEOWIDGET vVideoWidegetConfigAll[NET_MAX_CHANNUM];
}SDK_VideoWidgetConfigAll;
//视频颜色
typedef struct SDK_VIDEOCOLOR_PARAM
{
int nBrightness; ///< 亮度 0-100
int nContrast; ///< 对比度 0-100
int nSaturation; ///< 饱和度 0-100
int nHue; ///< 色度 0-100
int mGain; ///< 增益 0-100 第7位置1表示自动增益
int mWhitebalance; ///< 自动白电平控制,bit7置位表示开启自动控制.0x0,0x1,0x2分别代表低,中,高等级
int nAcutance; ///< 锐度 0-15
}SDK_VIDEOCOLOR_PARAM;
///< 视频颜色设置
typedef struct SDK_VIDEOCOLOR
{
SDK_TIMESECTION tsTimeSection; /// 时间段
SDK_VIDEOCOLOR_PARAM dstColor; /// 颜色定义
int iEnable;
}SDK_VIDEOCOLOR;
typedef struct SDK_CONFIG_VIDEOCOLOR
{
SDK_VIDEOCOLOR dstVideoColor[NET_N_MIN_TSECT];
}SDK_CONFIG_VIDEOCOLOR;
typedef struct SDK_VideoColorConfigAll
{
SDK_CONFIG_VIDEOCOLOR vVideoColorAll[NET_MAX_CHANNUM];
}SDK_VideoColorConfigAll;
/// 所有通道名称标题
typedef struct SDK_ChannelNameConfigAll
{
char channelTitle[NET_MAX_CHANNUM][NET_NAME_PASSWORD_LEN];
}SDK_ChannelNameConfigAll;
//输出模式
typedef struct SDK_GUISetConfig
{
int iWindowAlpha; ///< 窗口透明度 [128, 255]
bool bTimeTitleEn; ///< 时间标题显示使能
bool bChannelTitleEn; ///< 通道标题显示使能
bool bAlarmStatus; ///< 报警状态
bool bRecordStatus; ///< 录像状态显示使能
bool bChanStateRecEn; ///< 录像标志显示使能
bool bChanStateVlsEn; ///< 视频丢失标志显示使能
bool bChanStateLckEn; ///< 通道锁定标志显示使能
bool bChanStateMtdEn; ///< 动态检测标志显示使能
bool bBitRateEn; ///< 码流显示使能
bool bRemoteEnable; ///< 遥控器使能
bool bDeflick; ///< 抗抖动
}SDK_GUISetConfig;
////!普通网络设置
typedef struct SDK_CONFIG_NET_COMMON
{
//!主机名
char HostName[NET_NAME_PASSWORD_LEN];
//!主机IP
CONFIG_IPAddress HostIP;
//!子网掩码
CONFIG_IPAddress Submask;
//!网关IP
CONFIG_IPAddress Gateway;
//!HTTP服务端口
int HttpPort;
//!TCP侦听端口
int TCPPort;
//!SSL侦听端口
int SSLPort;
//!UDP侦听端口
int UDPPort;
//!最大连接数
int MaxConn;
//!监视协议 {"TCP","UDP","MCAST","NAT","DaHua","RTSP","IPV6",…}
int MonMode;
//!限定码流值
int MaxBps;
//!传输策略
//char TransferPlan[NET_NAME_PASSWORD_LEN];
int TransferPlan;
//!是否启用高速录像下载测率
bool bUseHSDownLoad;
//!MAC地址
char sMac[NET_MAX_MAC_LEN];
}SDK_CONFIG_NET_COMMON;
typedef enum SDK_DevType
{
SDK_DEV_TYPE_IPC,
SDK_DEV_TYPE_DVR,
SDK_DEV_TYPE_HVR,
SDK_DEV_TYPE_POEIPC,
SDK_DEV_TYPE_NVR,
SDK_DEV_TYPE_RTSPIPC,
SDK_DEV_TYPE_NR
}SDK_DevType;
enum SDK_Manufacturer
{
MF_XIONGMAI = 0,
MF_HIKVISION,
MF_DAHUA,
MF_JOVISION,
};
///< 杭州庄贤串口透传获取web 端的配置
typedef struct SDK_SerialTransConfig
{
bool Enable;
char pServerAddr[64]; ///< ip
int ServerPort; ///< port
}SDK_SerialTransConfig;
////!普通网络设置 --
typedef struct SDK_CONFIG_NET_COMMON_V2
{
//!主机名
char HostName[NET_NAME_PASSWORD_LEN];
//!主机IP
CONFIG_IPAddress HostIP;
//!子网掩码
CONFIG_IPAddress Submask;
//!网关IP
CONFIG_IPAddress Gateway;
char pLocalLinkAddr[32]; //本地链路地址
char pAddr[64]; //ipv6地址
char pGateway[64];
//!HTTP服务端口
int HttpPort;
//!TCP侦听端口
int TCPPort;
//!SSL侦听端口
int SSLPort;
//!UDP侦听端口
int UDPPort;
//!最大连接数
int MaxConn;
//!监视协议 {"TCP","UDP","MCAST",…}
int MonMode;
//!限定码流值
int MaxBps;
//!传输策略
//char TransferPlan[NET_NAME_PASSWORD_LEN];
int TransferPlan; ///传输策略
bool bUseHSDownLoad; ///是否启用高速录像下载测率
char sMac[NET_MAX_MAC_LEN]; ///MAC地址
char sSn[NET_MAX_MAC_LEN]; ///序列号(大华和中维设备搜索中用到,用来保存修改IP所需数据)
#ifndef WIN32
int DeviceType; ///设备类型,手机区分是插座还是普通设备
#endif
int ChannelNum; ///通道数
int Device_Type; ///设备类型,见enum SDK_DevType
#ifdef OME
char Version[NET_MAX_INFO_LEN]; //版本信息
SDK_SYSTEM_TIME BuildDate; //版本日期
#endif
char OtherFunction[49]; ///用来保存修改其它厂家IP所需信息
char Manufacturer; ///设备生产商,见枚举SDK_Manufacturer
char Resume[6]; ///reserve
}SDK_CONFIG_NET_COMMON_V2;
////!跨网段设置IP需 --
typedef struct SDK_CONFIG_NET_COMMON_V3
{
char HostName[NET_NAME_PASSWORD_LEN]; ///主机名
CONFIG_IPAddress HostIP; ///主机IP
CONFIG_IPAddress Submask; ///子网掩码
CONFIG_IPAddress Gateway; ///网关IP
int HttpPort; ///HTTP服务端口
int TCPPort; ///TCP侦听端口
int SSLPort; ///SSL侦听端口
int UDPPort; ///UDP侦听端口
int MaxConn; ///最大连接数
int MonMode; ///监视协议 {"TCP","UDP","MCAST",?}
int MaxBps; ///限定码流值
//char TransferPlan[NET_NAME_PASSWORD_LEN];
int TransferPlan; ///传输策略
bool bUseHSDownLoad; ///是否启用高速录像下载测率
char sMac[NET_MAX_MAC_LEN]; ///MAC地址
char UserName[NET_NAME_PASSWORD_LEN]; ///设备用户名
char Password[NET_NAME_PASSWORD_LEN]; ///设备密码
char LocalMac[NET_MAX_MAC_LEN];
int nPasswordType;
char Resume[92]; ///reserve
}SDK_CONFIG_NET_COMMON_V3;
//Dhcp
#define SDK_MAX_ETH_NUM 4
typedef struct SDK_NetDHCPConfig
{
bool bEnable;
char ifName[32];
}SDK_NetDHCPConfig;
/// 所有网卡的DHCP配置
typedef struct SDK_NetDHCPConfigAll
{
SDK_NetDHCPConfig vNetDHCPConfig[SDK_MAX_ETH_NUM];
}SDK_NetDHCPConfigAll;
///< DNS设置
typedef struct SDK_NetDNSConfig
{
CONFIG_IPAddress PrimaryDNS;
CONFIG_IPAddress SecondaryDNS;
}SDK_NetDNSConfig;
///< 服务器结构定义
typedef struct SDK_RemoteServerConfig
{
char ServerName[NET_NAME_PASSWORD_LEN]; ///< 服务名
CONFIG_IPAddress ip; ///< IP地址
int Port; ///< 端口号
char UserName[NET_NAME_PASSWORD_LEN]; ///< 用户名
char Password[NET_NAME_PASSWORD_LEN]; ///< 密码
bool Anonymity; ///< 是否匿名登录
}SDK_RemoteServerConfig;
///< IP权限设置
typedef struct SDK_NetIPFilterConfig
{
bool Enable; ///< 是否开启
CONFIG_IPAddress BannedList[NET_MAX_FILTERIP_NUM]; ///< 黑名单列表
CONFIG_IPAddress TrustList[NET_MAX_FILTERIP_NUM]; ///< 白名单列表
}SDK_NetIPFilterConfig;
///< 组播设置
typedef struct SDK_NetMultiCastConfig
{
bool Enable; ///< 是否开启
SDK_RemoteServerConfig Server; ///< 组播服务器
}SDK_NetMultiCastConfig;
///< pppoe设置
typedef struct SDK_NetPPPoEConfig
{
bool Enable; ///< 是否开启
SDK_RemoteServerConfig Server; ///< PPPOE服务器
CONFIG_IPAddress addr; ///< 拨号后获得的IP地址
}SDK_NetPPPoEConfig;
///< DDNS设置
typedef struct SDK_NetDDNSConfig
{
bool Enable; ///< 是否开启
bool Online; ///< 是否在线
char DDNSKey[NET_NAME_PASSWORD_LEN]; ///< DDNS类型名称, 目前有: JUFENG
char HostName[NET_NAME_PASSWORD_LEN]; ///< 主机名
SDK_RemoteServerConfig Server; ///< DDNS服务器
}SDK_NetDDNSConfig;
///< DDNS设置
typedef struct SDK_NetDDNSConfigALL
{
SDK_NetDDNSConfig ddnsConfig[NET_MAX_DDNS_TYPE];
}SDK_NetDDNSConfigALL;
///< FTP设置
typedef struct SDK_FtpServerConfig{
bool bEnable; ///< 服务器使能
SDK_RemoteServerConfig Server; ///< FTP服务器
char cRemoteDir[NET_MAX_PATH_LENGTH]; ///< 远程目录
int iMaxFileLen; ///< 文件最大长度
}SDK_FtpServerConfig;
///< NTP设置
typedef struct SDK_NetNTPConfig
{
///< 是否开启
bool Enable;
///< PPPOE服务器
SDK_RemoteServerConfig Server;
///< 更新周期
int UpdatePeriod;
///< 时区
int TimeZone;
}SDK_NetNTPConfig;
#define NET_MAX_EMAIL_TITLE_LEN 64
#define NET_MAX_EMAIL_RECIEVERS 5
#define NET_EMAIL_ADDR_LEN 64
///< EMAIL设置
typedef struct SDK_NetEmailConfig
{
///< 是否开启
bool Enable;
///< smtp 服务器地址使用字符串形式填充
///< 可以填ip,也可以填域名
SDK_RemoteServerConfig Server;
bool bUseSSL;
///< 发送地址
char SendAddr[NET_EMAIL_ADDR_LEN];
///< 接收人地址
char Recievers[NET_MAX_EMAIL_RECIEVERS][NET_EMAIL_ADDR_LEN];
///< 邮件主题
char Title[NET_MAX_EMAIL_TITLE_LEN];
///< email有效时间
SDK_TIMESECTION Schedule[NET_N_MIN_TSECT];
}SDK_NetEmailConfig;
///< ARSP(主动注册服务器)设置
typedef struct SDK_NetARSPConfig
{
bool bEnable; ///< 是否开启
char sARSPKey[NET_NAME_PASSWORD_LEN]; ///< DNS类型名称
int iInterval; ///< 保活间隔时间
char sURL[NET_NAME_PASSWORD_LEN]; ///< 本机域名
SDK_RemoteServerConfig Server; ///< DDNS服务器
int nHttpPort; ///< 服务器HTTP端口
}SDK_NetARSPConfig;
typedef struct SDK_NetARSPConfigAll
{
SDK_NetARSPConfig vNetARSPConfigAll[NET_MAX_ARSP_TYPE];
}SDK_NetARSPConfigAll;
///< 解码器地址设置
typedef struct SDK_NetDecoderConfig
{
bool Enable; ///< 是否开启
char UserName[NET_NAME_PASSWORD_LEN]; ///< DDNS类型名称, 目前有: JUFENG
char PassWord[NET_NAME_PASSWORD_LEN]; ///< 主机名
char Address[NET_NAME_PASSWORD_LEN];
int Protocol;
int Port; ///< 解码器连接端口
int Channel; ///< 解码器连接通道号
int Interval; ///< 轮巡的间隔时间(s)
}SDK_NetDecoderConfig;
/// 所有通道的解码器地址设置
typedef struct SDK_NetDecoderConfigAll
{
SDK_NetDecoderConfig vNetDecoderConfig[NET_MAX_DECORDR_CH];
}SDK_NetDecoderConfigAll;
/// 解码器地址设置V2版本
typedef struct SDK_NetDecoderConfig_V2
{
int nTotalNum; //有效的数组个数,最大为NET_MAX_CHANNUM
SDK_NetDecoderConfig vNetDecoderConfig[NET_MAX_CHANNUM];
}SDK_NetDecoderConfig_V2;
/// 所有通道的解码器地址设置V2版本
typedef struct SDK_NetDecoderConfigAll_V2
{
SDK_NetDecoderConfig_V2 vNetDecoderArray[NET_MAX_DECORDR_CH];
}SDK_NetDecoderConfigAll_V2;
/// 捕获通道类型
enum SDK_CaptureChannelTypes
{
SDK_CAPTURE_CHN_MAIN = 0, ///< 主通道 - 主码流1
SDK_CAPTURE_CHN_2END = 1, ///< 辅通道 - 出辅码流2
SDK_CAPTURE_CHN_3IRD = 2, ///< 辅通道 - 出辅码流3
SDK_CAPTURE_CHN_4RTH = 3, ///< 辅通道 - 出辅码流4
SDK_CAPTURE_CHN_JPEG = 4, ///< 辅通道 - 出JPEG抓图
SDK_CAPTURE_CHN_NR,
};
///< 解码器地址设置
typedef struct SDK_NetDecorderConfigV3
{
bool Enable; ///< 是否开启
char UserName[NET_NAME_PASSWORD_LEN]; ///< DDNS类型名称, 目前有: JUFENG
char PassWord[NET_NAME_PASSWORD_LEN]; ///< 主机名
char Address[NET_NAME_URL_LEN];
int Protocol; ///见enum SDK_TransferProtocol_V2
int Port; ///< 解码器连接端口
int Channel; ///< 解码器连接通道号
int Interval; ///< 轮巡的间隔时间(s),0:表示永久
char ConfName[NET_NAME_PASSWORD_LEN]; ///<配置名称
int DevType; ///<设备类型
int StreamType; ///<连接的码流类型 见enum SDK_CaptureChannelTypes
char MainRtspUrl[NET_NAME_URL_LEN]; ///<rtsp协议时表示前端设备的主码流地址
char SubRtspUrl[NET_NAME_URL_LEN]; ///<rtsp协议时表示前端设备的辅码流地址
}SDK_NetDecorderConfigV3;
/*解码器连接类型*/
enum SDK_DecorderConnType
{
SDK_CONN_SINGLE = 0, /*单连接*/
SDK_CONN_MULTI = 1, /*多连接轮巡*/
SDK_CONN_TYPE_NR,
};
/*数字通道的配置*/
typedef struct SDK_NetDigitChnConfig
{
bool Enable; /*数字通道是否开启*/
int ConnType; /*连接类型,取DecoderConnectType的值*/
int TourIntv; /*多连接时轮巡间隔*/
unsigned int SingleConnId; /*单连接时的连接配置ID, 从1开始,0表示无效*/
bool EnCheckTime; /*开启对时*/
SDK_NetDecorderConfigV3 NetDecorderConf[32]; /*网络设备通道配置表*/
int nNetDeorde; /* 有多少个 */
bool EnSynchResolution; //同步分辨率使能开关,0表示打开,1表示关闭
}SDK_NetDigitChnConfig;
/*所有数字通道的配置*/
typedef struct SDK_NetDecorderConfigAll_V3
{
SDK_NetDigitChnConfig DigitChnConf[NET_MAX_DECORDR_CH];
}SDK_NetDecorderConfigAll_V3;
typedef struct SDK_HVR_CHNCAP
{
int nD1Chn; // 支持的D1路数
int n960HChn; // 支持的960H路数
int n720PChn; // 支持的720P路数
int n1080PChn; // 支持的1080P路数
int nCIFChn; //支持的CIF通道数
int nHD1Chn; //支持的HD1通道数
unsigned char nPlayChn; //支持回放路数
unsigned char nDigiTalChn; //支持最大数字通道路数
unsigned char n960PChn; //支持的960P通道数
unsigned char n3MChn; //支持的3M通道数
unsigned char n5MChn; //支持的5M通道数
unsigned char nWUXGAChn; //支持的WUXGA通道数
unsigned char n1080NChn; //支持1080N通道数
unsigned char n4MChn; //支持4M通道数
//unsigned char nResChar[2]; //冗余
}SDK_HVR_CHNCAP, *SDK_PHVR_CHNCAP;
typedef struct SDK_HVR_CHNCAPV2
{
unsigned char nD1Chn; // 支持的D1路数
unsigned char n960HChn; // 支持的960H路数
unsigned char n720PChn; // 支持的720P路数
unsigned char n1080PChn; // 支持的1080P路数
unsigned char nCIFChn; //支持的CIF通道数
unsigned char nHD1Chn; //支持的HD1通道数
unsigned char nPlayChn; //支持回放路数
unsigned char nDigiTalChn; //支持最大数字通道路数
unsigned char n960PChn; //支持的960P通道数
unsigned char n3MChn; //支持的3M通道数
unsigned char n5MChn; //支持的5M通道数
unsigned char nWUXGAChn; //支持的WUXGA通道数
unsigned char n1080NChn; //支持1080N通道数
unsigned char n4MChn; //支持4M通道数
unsigned char n720NChn; //支持720N通道数
unsigned char nWSVGAChn; //支持WSVGA(1024*576)通道数
unsigned char n4KChn; //支持的4K通道数
unsigned char n3M_NChn; //支持的3M_N通道数
unsigned char n4M_NChn; //支持的4M_N通道数
unsigned char n5M_NChn; //支持的5M_N通道数
unsigned char n4K_NChn; //支持的4K_N通道数
unsigned char nRes[11];
}SDK_HVR_CHNCAPV2, *SDK_PHVR_CHNCAPV2;
typedef struct SDK_CAPTURE_HVRCAP //改用CAPTURE_HVRCAPV2,为了兼容老的保留
{
SDK_HVR_CHNCAP DigitalCap; // 支持的数字通道信息
SDK_HVR_CHNCAP AnalogCap; // 支持的模拟通道信息
}SDK_CAPTURE_HVRCAP, *SDK_PCAPTURE_HVRCAP;
typedef struct SDK_CAPTURE_HVRCAPV2
{
SDK_HVR_CHNCAPV2 DigitalCap; // 支持的数字通道信息
SDK_HVR_CHNCAPV2 AnalogCap; // 支持的模拟通道信息
}SDK_CAPTURE_HVRCAPV2, *SDK_PCAPTURE_HVRCAPV2;
typedef struct SDK_CAPTURE_TOTAL_HVRCAP //改用CAPTURE_TOTAL_HVRCAPV2,为了兼容老的保留
{
int nHVRCap; // 实际支持的模式
SDK_CAPTURE_HVRCAP HVRCap[MAX_HVR_CHNCAP_CHN]; // 所有模式的汇总
}SDK_CAPTURE_TOTAL_HVRCAP, *SDK_PCAPTURE_TOTAL_HVRCAP;
typedef struct SDK_CAPTURE_TOTAL_HVRCAPV2
{
int nHVRCap; // 实际支持的模式
SDK_CAPTURE_HVRCAPV2 HVRCap[MAX_HVR_CHNCAP_CHN]; // 所有模式的汇总
}SDK_CAPTURE_TOTAL_HVRCAPV2, *SDK_PCAPTURE_TOTAL_HVRCAPV2;
//通道模式配置
typedef struct SDK_NetDecorderChnModeConfig
{
SDK_CAPTURE_TOTAL_HVRCAPV2 HVRTotalCap;
int HVRCurCapMode;
}SDK_NetDecorderChnModeConfig;
/*数字通道状态*/
typedef struct SDK_NetDecorderChnStatus
{
char ChnName[NET_NAME_PASSWORD_LEN];
char pMaxResName[50];
char pCurResName[50];
char pStatus[50];
}SDK_NetDecorderChnStatus;
/*所有数字通道状态*/
typedef struct SDK_NetDecorderChnStatusAll
{
SDK_NetDecorderChnStatus ChnStatusAll[NET_MAX_DECORDR_CH];
}SDK_NetDecorderChnStatusAll;
//Pos设备类型
enum SDK_PosDevType
{
SDK_POS_TYPE_MANY_LINES, //计算完总金额后才把商品信息一起发送过来
SDK_POS_TYPE_ONE_LINE, //每统计一件商品就把该商品的信息发送过来
SDK_POS_NR
};
//文字编码格式
enum SDK_WordEncode
{
SDK_WORD_ENCODE_GB2312, //汉字编码GB2312
SDK_WORD_ENCODE_UNICODE, //万国码 Unicode
SDK_WORD_ENCODE_UTF8, //Utf 8
};
#define SDK_MAX_POS_FUNC_KEYWORDS 4
// pos相关配置
typedef struct SDK_NetPosConfig
{
bool Enable; /*pos机通道使能*/
int Devtype; //pos机类型
int Protocol; //通信协议
int Port; //协议端口号
bool SnapEnable; //抓拍使能
int StartLine; //对收到的信息从多少行开始显示
int WordEncodeType; //文字编码格式,如枚举值 WordEncodeType 所示
bool KeyWordEnable; //关键字写日志功能使能
char SearchWrod[SDK_MAX_POS_FUNC_KEYWORDS][16]; //需要添加到日志里的单词
int HideTime; //隐藏通道显示的pos信息的时间,单位是秒,0表示不自动隐藏
int res; //reserve
}SDK_NetPosConfig;
//所有pos机相关配置
typedef struct SDK_NetPosConfigAll
{
SDK_NetPosConfig PosConfig[MAX_HVR_CHNCAP_CHN];
}SDK_NetPosConfigAll;
///< 3G拨号设置
typedef struct SDK_Net3GConfig
{
bool bEnable; ///< 无线模块使能标志
int iNetType; ///< 无线网络类型
char sAPN[NET_NAME_PASSWORD_LEN]; ///< 接入点名称
char sDialNum[NET_NAME_PASSWORD_LEN]; ///< 拨号号码
char sUserName[NET_NAME_PASSWORD_LEN]; ///< 拨号用户名
char sPassword[NET_NAME_PASSWORD_LEN]; ///< 拨号密码
CONFIG_IPAddress addr; ///< 拨号后获得的IP地址
char sOperators[NET_NAME_PASSWORD_LEN]; ///< 运营商(上层使用)
char strSubNetMask[NET_NAME_PASSWORD_LEN];///< 拨号子网掩码
char strGateWay[NET_NAME_PASSWORD_LEN]; ///< 拨号默认网关
bool bSIMState; ///< SIM卡的状态
}SDK_Net3GConfig;
///< 手机监控设置包括
typedef struct SDK_NetMoblieConfig
{
bool bEnable; ///< 是否开启
SDK_RemoteServerConfig Server; ///< 服务器
}SDK_NetMoblieConfig;
//Rtsp
typedef struct SDK_NetRTSPConfig
{
bool bServer;
bool bClient;
SDK_RemoteServerConfig Server; ///< 服务器模式
SDK_RemoteServerConfig Client; ///< 客户端模式
}SDK_NetRTSPConfig;
///< UPNP设置
typedef struct SDK_NetUPNPConfig
{
bool bEnable; ///< 使能标志
bool bState; ///< 状态, 1: OK 0: NOK
int iHTTPPort; ///< HTTP连接映射后的端口
int iMediaPort; ///< 媒体连接映射后的端口
int iMobliePort; ///< 手机监控映射后的端口
}SDK_NetUPNPConfig;
///< WIFI设置
typedef struct SDK_NetWifiConfig
{
bool bEnable;
char sSSID[36]; ///< SSID Number
int nChannel; ///< channel
char sNetType[32]; ///< Infra, Adhoc
char sEncrypType[32]; ///< NONE, WEP, TKIP, AES
char sAuth[32]; ///< OPEN, SHARED, WEPAUTO, WPAPSK, WPA2PSK, WPANONE, WPA, WPA2
int nKeyType; ///< 0:Hex 1:ASCII
char sKeys[NET_IW_ENCODING_TOKEN_MAX];
CONFIG_IPAddress HostIP; ///< host ip
CONFIG_IPAddress Submask; ///< netmask
CONFIG_IPAddress Gateway; ///< gateway
}SDK_NetWifiConfig;
enum SDK_RSSI_SINGNAL
{
SDK_RSSI_NO_SIGNAL, //<= -90 bear
SDK_RSSI_VERY_LOW, //<= -81db
SDK_RSSI_LOW, //<= -71 bear
SDK_RSSI_GOOD, //<= Steel
SDK_RSSI_VERY_GOOD, //<= Khadb
SDK_RSSI_EXCELLENT //<= Khadb
};
typedef struct SDK_NetWifiDevice
{
char sSSID[36]; //SSID Number
int nRSSI; //SEE SDK_RSSI_SINGNAL
int nChannel;
char sNetType[32]; //Infra, Adhoc
char sEncrypType[32]; //NONE, WEP, TKIP, AES
char sAuth[32]; //OPEN, SHARED, WEPAUTO, WPAPSK, WPA2PSK, WPANONE, WPA, WPA2
}SDK_NetWifiDevice;
typedef struct SDK_NetWifiDeviceAll
{
int nDevNumber;
SDK_NetWifiDevice vNetWifiDeviceAll[NET_MAX_AP_NUMBER];
}SDK_NetWifiDeviceAll;
///< 报警中心设置
typedef struct SDK_NetAlarmCenterConfig
{
bool bEnable; ///< 是否开启
char sAlarmServerKey[NET_NAME_PASSWORD_LEN]; ///< 报警中心协议类型名称,
SDK_RemoteServerConfig Server; ///< 报警中心服务器
bool bAlarm;
bool bLog;
}SDK_NetAlarmCenterConfig;
typedef struct SDK_NetAlarmServerConfigAll
{
SDK_NetAlarmCenterConfig vAlarmServerConfigAll[NET_MAX_ALARMSERVER_TYPE];
}SDK_NetAlarmServerConfigAll;
//互信互通
typedef struct SDK_CONFIG_NET_MEGA
{
bool bEnable;
bool bNetManEnable;
CONFIG_IPAddress ServerIP;
int iServerPort;
char sDeviceId[32];
char sUserName[24];
char sPasswd[32];
int iMaxCon;
int iVideoPort;
int iAudioPort;
int iMsgPort;
int iUpdatePort;
}SDK_CONFIG_NET_MEGA;
// 新望平台
typedef struct SDK_CONFIG_NET_XINGWANG
{
bool bEnable;
bool bSyncTime;
bool bSubStream;
CONFIG_IPAddress ServerIP;
int iServerPort;
int iDownLoadPort;
char sPasswd[32];
char szSID[32];
}SDK_CONFIG_NET_XINGWANG;
// 视搜平台
typedef struct SDK_CONFIG_NET_SHISOU
{
bool bEnable;
SDK_RemoteServerConfig Server;
char szSID[NET_MAX_USERNAME_LENGTH];
}SDK_CONFIG_NET_SHISOU;
// VVEYE平台
typedef struct SDK_CONFIG_NET_VVEYE
{
bool bEnable;
bool bCorpEnable; //只有在使用企业服务器时才需要设置Server
SDK_RemoteServerConfig Server;
char szDeviceName[NET_MAX_USERNAME_LENGTH];
}SDK_CONFIG_NET_VVEYE;
// 报警中心消息类型
enum SDK_AlarmCenterMsgType
{
SDK_ALARMCENTER_ALARM,
SDK_ALARMCENTER_LOG,
};
// 报警中心消息类型
enum SDK_AlarmCenterStatus
{
SDK_AC_START,
SDK_AC_STOP,
};
// 告警中心消息内容
typedef struct SDK_NetAlarmCenterMsg
{
CONFIG_IPAddress HostIP; ///< 设备IP
int nChannel; ///< 通道
int nType; ///< 类型 见AlarmCenterMsgType
int nStatus; ///< 状态 见AlarmCenterStatus
SDK_SYSTEM_TIME Time; ///< 发生时间
char sEvent[NET_MAX_INFO_LEN]; ///< 事件
char sSerialID[NET_MAX_MAC_LEN]; ///< 设备序列号
char sDescrip[NET_MAX_INFO_LEN]; ///< 描述
}SDK_NetAlarmCenterMsg;
/// 编码信息
typedef struct SDK_EncodeInfo
{
bool bEnable; ///< 使能项
bool bHaveAudio; ///< 是否支持音频
int iStreamType; ///< 码流类型,capture_channel_t
unsigned int uiCompression; ///< capture_comp_t的掩码
unsigned int uiResolution; ///< SDK_CAPTURE_SIZE_t的掩码
}SDK_EncodeInfo;
/// 编码能力
typedef struct CONFIG_EncodeAbility
{
unsigned int iMaxEncodePower; ///< 支持的最大编码能力
int iChannelMaxSetSync; ///< 每个通道分辨率是否需要同步 0-不同步, 1 -同步
unsigned int nMaxPowerPerChannel[NET_MAX_CHANNUM]; ///< 每个通道支持的最高编码能力
unsigned int ImageSizePerChannel[NET_MAX_CHANNUM]; ///< 每个通道支持的图像分辨率
unsigned int ExImageSizePerChannel[NET_MAX_CHANNUM]; ///< 每个通道支持的辅码流图像分辨率
unsigned int CompressionMask[NET_MAX_CHANNUM]; ///< 编码模式capture_comp_t掩码
unsigned int ThridImageSize[NET_MAX_CHANNUM]; ///< CHL_3IRD_T码流支持的图像分辨率
unsigned int FourthImageSize[NET_MAX_CHANNUM]; ///< CHL_4RTH_T码流支持的图像分辨率
SDK_EncodeInfo vEncodeInfo[SDK_CHL_FUNCTION_NUM]; ///< 编码信息,暂时最大就4中码流
SDK_EncodeInfo vCombEncInfo[SDK_CHL_FUNCTION_NUM]; ///< 组合编码信息,暂时最大就4中码流
int iMaxBps; ///< 最高码流Kbps
unsigned int ExImageSizePerChannelEx[NET_MAX_CHANNUM][SDK_CAPTURE_SIZE_EXT_V3_NR]; ///< 每个通道支持的辅码流图像分辨率
}CONFIG_EncodeAbility;
// 串口协议
enum SDK_CommProtocol
{
SDK_CONSOLE = 0,
SDK_KEYBOARD,
SDK_COM_TYPES,
};
/// 串口协议
typedef struct SDK_COMMFUNC
{
//每个协议最多由64个字符组成
int nProNum;
char vCommProtocol[100][32];
}SDK_COMMFUNC;
/// 云台协议
typedef struct SDK_PTZPROTOCOLFUNC
{
//每个协议最多由64个字符组成
int nProNum;
char vPTZProtocol[100][NET_MAX_PTZ_PROTOCOL_LENGTH];
}SDK_PTZPROTOCOLFUNC;
/// 区域遮挡能力集
typedef struct SDK_BlindDetectFunction
{
int iBlindConverNum; ///< 区域遮挡块数
}SDK_BlindDetectFunction;
/// 动检区域能力集
typedef struct SDK_MotionDetectFunction
{
int iGridRow;
int iGridColumn;
}SDK_MotionDetectFunction;
/// 支持的DDNS类型
typedef struct SDK_DDNSServiceFunction
{
int nTypeNum;
char vDDNSType[NET_MAX_DDNS_TYPE][64];
}SDK_DDNSServiceFunction;
/// 支持语言
typedef struct SDK_MultiLangFunction
{
//每个协议最多由64个字符组成
int nLangNum;
char vLanguageName[128][64];
}SDK_MultiLangFunction;
/// 支持的视频制式
typedef struct SDK_MultiVstd
{
//每个协议最多由3个字符组成
int nVstdNum;
char vVstdName[3][64];
}SDK_MultiVstd;
/// 编码功能
enum SDK_EncodeFunctionTypes
{
SDK_ENCODE_FUNCTION_TYPE_DOUBLE_STREAM, ///< 双码流功能
SDK_ENCODE_FUNCTION_TYPE_COMBINE_STREAM, ///< 组合编码功能
SDK_ENCODE_FUNCTION_TYPE_SNAP_STREAM, ///< 抓图功能
SDK_ENCODE_FUNCTION_TYPE_WATER_MARK, ///< 水印功能
SDK_ENCODE_FUNCTION_TYPE_IFRAME_RANGE, ///< I帧间隔
SDK_ENCODE_FUNCTION_TYPE_LOW_BITRATE, ///< 低码流
SDK_ENCODE_FUNCTION_TYPE_SmartH264, ///< H264+
SDK_ENCODE_FUNCTION_TYPE_INTELLIGENT_ENCODE,///< 智能编码
SDK_ENCODE_FUNCTION_TYPE_NR,
};
/// 报警功能
enum SDK_AlarmFucntionTypes
{
SDK_ALARM_FUNCTION_TYPE_MOTION_DETECT, ///< 动态检测
SDK_ALARM_FUNCTION_TYPE_BLIND_DETECT, ///< 视屏遮挡
SDK_ALARM_FUNCTION_TYPE_LOSS_DETECT, ///< 视屏丢失
SDK_ALARM_FUNCTION_TYPE_LOCAL_ALARM, ///< 本地报警
SDK_ALARM_FUNCTION_TYPE_NET_ALARM, ///< 网络报警
SDK_ALARM_FUNCTION_TYPE_IP_CONFLICT, ///< IP地址冲突
SDK_ALARM_FUNCTION_TYPE_NET_ABORT, ///< 网络异常
SDK_ALARM_FUNCTION_TYPE_STORAGE_NOTEXIST, ///< 存储设备不存在
SDK_ALARM_FUNCTION_TYPE_STORAGE_LOWSPACE, ///< 存储设备容量不足
SDK_ALARM_FUNCTION_TYPE_STORAGE_FAILURE, ///< 存储设备访问失败
SDK_ALARM_FUNCTION_TYPE_VIDEOANALYSE, ///< 视频分析
SDK_ALARM_FUNCTION_TYPE_NET_ABORT_EXTEND, ///< 网络异常扩展
SDK_ALARM_FUNCTION_TYPE_IPC_ALARM, ///< IPC报警
SDK_ALARM_FUNCTION_TYPE_CONSUMER_433ALARM, ///< 家用产品433设备报警
SDK_ALARM_FUNCTION_TYPE_CONSUMER_REMOTE, ///< 家用产品2.4G 遥控器
SDK_ALARM_FUNCTION_TYPE_SERIAL_ALARM, ///< 串口报警
SDK_ALARM_FUNCTION_TYPE_NEW_VIEDO_ANALYZE, ///< 新老智能
SDK_ALARM_FUNCTION_TYPE_PIR_ALARM, ///< PIR报警
SDK_ALARM_FUNCTION_TYPE_BLUR_CHECK, ///< 模糊检测报警
SDK_ALARM_FUNCTION_TYPE_433_ALARM, ///< 客户定制433报警
SDK_ALARM_FUNCTION_TYPE_PIR_DETECT, ///< PIR 检测
SDK_ALARM_FUNCTION_TYPE_NR
};
/// 网络服务功能
enum SDK_NetServerTypes
{
SDK_NET_SERVER_TYPES_IPFILTER, ///< 白黑名单
SDK_NET_SERVER_TYPES_DHCP, ///< DHCP功能
SDK_NET_SERVER_TYPES_DDNS, ///< DDNS功能
SDK_NET_SERVER_TYPES_EMAIL, ///< Email功能
SDK_NET_SERVER_TYPES_MULTICAST, ///< 多播功能
SDK_NET_SERVER_TYPES_NTP, ///< NTP功能
SDK_NET_SERVER_TYPES_PPPOE,
SDK_NET_SERVER_TYPES_DNS,
SDK_NET_SERVER_TYPES_ARSP, ///< 主动注册服务
SDK_NET_SERVER_TYPES_3G, ///< 3G拨号
SDK_NET_SERVER_TYPES_MOBILE=10, ///< 手机监控
SDK_NET_SERVER_TYPES_UPNP, ///< UPNP
SDK_NET_SERVER_TYPES_FTP, ///< FTP
SDK_NET_SERVER_TYPES_WIFI, ///< WIFI
SDK_NET_SERVER_TYPES_ALARM_CENTER, ///< 告警中心
SDK_NET_SERVER_TYPES_NETPLAT_MEGA, ///< 互信互通
SDK_NET_SERVER_TYPES_NETPLAT_XINWANG, ///< 星望
SDK_NET_SERVER_TYPES_NETPLAT_SHISOU, ///< 视搜
SDK_NET_SERVER_TYPES_NETPLAT_VVEYE, ///< 威威眼
SDK_NET_SERVER_TYPES_RTSP, ///< RTSP
SDK_NET_SERVER_TYPES_PHONEMSG=20, ///< 手机信息发送配置
SDK_NET_SERVER_TYPES_PHONEMULTIMEDIAMSG,///< 手机信息发送配置
SDK_NET_SERVER_TYPES_DAS, ///< 主动注册
SDK_NET_SERVER_TYPES_LOCALSDK_PLATFORM, ///< 网络平台信息设置
SDK_NET_SERVER_TYPES_GOD_EYE, ///< 神眼接警中心系统
SDK_NET_SERVER_TYPES_NAT, ///< NAT穿透,MTU配置
SDK_NET_SERVER_TYPES_VPN, ///< VPN
SDK_NET_SERVER_TYPES_NET_KEYBOARD, ///< 网络键盘配置
SDK_NET_SERVER_TYPES_SPVMN, ///< 28181协议配置
SDK_NET_SERVER_TYPES_PMS, ///< 手机服务
SDK_NET_SERVER_TYPE_KAICONG, ///< 凯聪配置
SDK_NET_SERVER_TYPE_PROTOCOL_MAC, ///< 支持MAC协议
SDK_NET_SERVER_TYPE_XMHEARTBEAT, ///< 心跳
SDK_NET_SERVER_TYPES_MONITOR_PLATFORM, ///< 神州数码监控平台
SDK_NET_SERVER_TYPES_ANJUP2P, ///<
SDK_NET_SERVER_TYPES_TUTKIOTC, ///< TUTK IOTC平台
SDK_NET_SERVER_TYPES_BAIDUCLOUD, ///< 百度云
SDK_NET_SERVER_TYPES_MOBILWATCH, ///< 手机看店
SDK_NET_SERVER_TYPES_BJLTHY, ///< 北京龙腾访问服务器平台
SDK_NET_SERVER_TYPES_OPENVPN, ///< openvpn配置
SDK_NET_SERVER_TYPES_PROTOCOL_NAT, ///< 支持NAT协议
SDK_NET_SERVER_TYPES_PLATFORM_GBEYES, ///< 支持环保数据叠加
SDK_NET_SERVER_TYPES_GBEYES, ///< 信产全球眼平台
SDK_NET_SERVER_TYPES_DATALINK, ///< DataLink客户网络服务中执行程序使能配置
SDK_NET_SERVER_TYPES_WIFI_MODE, ///< 是否支持wifi模式相关配置
SDK_NET_SERVER_TYPES_IPV6, ///< 支持ipv6
SDK_NET_SERVER_TYPES_PMS_V2, ///< 新版PMS页面
SDK_NET_SERVER_TYPES_4G, ///< 无线拨号的协议下拉框是否显示4G
SDK_NET_SERVER_TYPES_SPVMN_SIP, ///< 28181配置显示SIP 板卡地址
SDK_NET_SERVER_TYPES_RTMP, ///< RTMP协议
SDK_NET_SERVER_TYPES_IPADAPTIVE, ///< IP自适应网络能力
SDK_NET_SERVER_TYPES_ONVIF_PWD_CHECKOUT,///< ONVIF密码校验
SDK_NET_SERVER_TYPES_SERIAL_TRANS, //杭州庄贤串口透传获取web 端的配置
SDK_NET_SERVER_TYPES_NR,
};
/// 预览功能
enum SDK_PreviewTypes
{
SDK_PREVIEW_TYPES_TOUR, ///< 轮巡
SDK_PREVIEW_TYPES_TALK, ///< GUI界面配置
SDK_PREVIEW_TYPES_NR
};
///串口类型
enum SDK_CommTypes
{
SDK_COMM_TYPES_RS485, ///<485串口
SDK_COMM_TYPES_RS232, ///<232串口
SDK_COMM_TYPES_NR
};
//输入法限制
enum SDK_InPutMethod
{
SDK_NO_SUPPORT_CHINESE, //不支持中文输入
SDK_NO_SUPPORT_NR
};
//报警中标签显示
enum SDK_TipShow
{
SDK_NO_BEEP_TIP_SHOW, //蜂鸣提示
SDK_NO_FTP_TIP_SHOW, //FTP提示
SDK_NO_EMAIL_TIP_SHOW, //EMAIL提示
SDK_NO_DISK_MANAGER_SHOW, //不显示硬盘管理页面的分区和类型修改等按钮
SDK_NO_TIP_SHOW_NR
};
///车载功能
enum SDK_MobileCar
{
SDK_MOBILEDVR_STATUS_EXCHANGE, //车辆状态
SDK_MOBILEDVR_DELAY_SET, //延时设置
SDK_MOBILEDVR_CARPLATE_SET,
SDK_MOBILEDVR_GPS_TIMING, //GPS校时
SDK_MOBILEDVR_DVR_BOOT_TYPE_SET,
SDK_MOBILEDVR_NR
};
///其他功能
enum SDK_OtherFunction
{
SDK_OTHER_DOWNLOADPAUSE, //录像下载暂停功能
SDK_OTHER_USB_SUPPORT_RECORD, //USB支持录像功能
SDK_OTHER_SD_SUPPORT_RECORD, //SD支持录像功能
SDK_OTHER_ONVIF_CLIENT_SUPPORT, //是否支持ONVIF客户端
SDK_OTHER_NET_LOCALSEARCH_SUPPORT, //是否支持远程搜索
SDK_OTHER_MAXPLAYBACK_SUPPORT, //是否支持最大回放通道数显示
SDK_OTHER_NVR_SUPPORT, //是否是专业NVR
SDK_OTHER_C7_PLATFORM_SUPPORT, //支持C7平台
SDK_OTHER_MAIL_TEST_SUPPORT, //支持邮件测试
SDK_OTHER_SHOW_OSD_INFO, //支持显示3行OSD信息
SDK_OTHER_HIDE_DIGITAL, //通道模式屏蔽功能
SDK_OTHER_ACUTANCE_HORIZONTAL, //锐度
SDK_OTHER_ACUTANCE_VERTIAL,
SDK_OTHER_BROAD_TRENDS, //宽动态功能
SDK_OTHER_NO_TALK, //对讲能力
SDK_OTHER_ALTER_DIGITAL_NAME, //修改数字通道名称
SDK_OTHER_SHOW_CONNECT_STATUS, //支持显示wifi 3G 主动注册等的连接状态
SDK_OTHER_SUPPORT_ECACT_SEEK, //支持回放精准定位
SDK_OTHER_UPLOAD_TITLEANDSTATE, //通道标题和数字通道状态上传能力集
SDK_OTHER_NO_HDD_RECORD, //无硬盘录像
SDK_OTHER_MUSICFILE_PLAY, //播放音频文件
SDK_OTHER_SUPPORT_SET_DIG_IP, //设置前端ip能力
SDK_OTHER_VERSION_PRODUCT_TYPE, //支持在版本信息里显示设备型号
SDK_OTHER_SUPPORT_CAMERA_IMG_STYLE, //支持摄像机图像风格
SDK_OTHER_SUPPORT_TITLE_ABILITY, //支持修改onvif标题
SDK_OTHER_SUPPORT_DIMEN_CODE, //支持二维码
SDK_OTHER_STORAGE_NAS_SUPPORT, //是否支持NAS存储功能
SDK_OTHER_SHOWFALSE_CHECKTIME, //屏蔽解码器时间同步功能
SDK_OTHER_SUPPORT_TIME_ZONE, //时区配置
SDK_OTHER_SHOW_ALARM_LEVEL_REGION, //显示数字通道报警功能的灵敏度和区域设置
SDK_OTHER_SUPPORT_POS, //支持POS
SDK_OTHER_HDD_LOWSPACE_USE_MB, //硬盘空间不足报警下限用MB
SDK_OTHER_SUPPORT_CUSTOMIZE_OEMINFO, //定制OEM客户版本信息
SDK_OTHER_DIGITAL_ENCODE, //数字通道编码配置
SDK_OTHER_RESUME_PTZ_STATE, //开机恢复云台状态
SDK_OTHER_SUPPORT_SNAP_CFG, //支持抓图配置
SDK_OTHER_ABNORMITY_SEND_EMAIL, //存储设备存在及存储异常及存储空间不足发邮件
SDK_OTHER_SUPPORT_DIGITAL_PRE, //支持数字通道预录
SDK_OTHER_SUPPORT_WRITE_LOG, //报警页面添加是否写日志勾选框
SDK_OTHER_SUPPORT_CHANGE_ONVIF_PORT, //支持修改onvif端口
SDK_OTHER_SUPPORT_COMM_DATA_UPLOAD, //支持串口数据上传到指定服务器
SDK_OTHER_SUPPORT_TEXT_PASSWORD, //记录明文密码
SDK_OTHER_SUPPORT_CLOUD_UPGRADE, // 支持云升级
SDK_OTHER_SUPPORT_USER_PROGRAM, //支持启动客户小程序
SDK_OTHER_SUPPORT_MODIFY_FRONT_CFG, //支持修改前端配置
SDK_OTHER_SUPPORT_FTP_TEST, //新程序支持FTP支持FTP测试,老程序不支持。
SDK_OTHER_SUPPORT_PTZ_IDLE_STATE, //云台空闲时执行何种操作的配置
SDK_OTHER_SUPPORT_IMP_RCD, //web端是否提供关键录像搜索的选项
SDK_OTHER_SUPPORT_CAMERA_MOTOR_CTRL, //支持机器人马达控制
SDK_OTHER_SUPPORT_ENCODE_ADD_BEEP, // 视频编码每隔30秒加入beep声
SDK_OTHER_SUPPORT_FISH_EYE, //鱼眼功能能力集
SDK_OTHER_SUPPORT_SPVMN_NAS_SERVER, //安徽超清客户的nas服务器配置
SDK_OTHER_SUPPORT_SMALL_CHN_TITLE_FONT, //IE端传12*18的通道标题点阵
SDK_OTHER_SUPPORT_CFG_CLOUD_UPGRADE, //支持新的云升级功能配置
SDK_OTHER_SUPPORT_STORAGE_FAIL_REBOOT, //全部硬盘出错后自动重启
SDK_OTHER_SUPPORT_SPLIT_CONTROL, //支持CMS客户端画面分割
SDK_OTHER_RTSP_CLIENT_SUPPORT, //数字通道是否支持通过RTSP连接前端设备
SDK_OTHER_LOW_LUX_MODE, //微光模式
SDK_OTHER_SUPPORT_Switch_Resolution, //修改前端数字通道分辨率
SDK_OTHER_LOW_MOTION, //运动相机慢动作
SDK_OTHER_SUPPORT_CORRIDOR_MODE, //支持走廊模式
SDK_OTHER_WIFINVR_SUPPORT, //是否是WIFINVR
SDK_OTHER_SUPPORT_SNAP_SCHEDULE, //是否支持定时抓图
SDK_OTHER_SUPPORT_PWD_SAFETY, //是否支持密码找回
SDK_OTHER_SUPPORT_PLATE_DETECT, //是否支持车牌侦测
SDK_OTHER_SUPPORT_BREVIARY, //是否支持缩略图
SDK_OTHER_SUPPORT_INTELLIGENT_PLAYBACK, //是否支持智能快放
SDK_OTHER_SUPPORT_FACE_DETECT, //人脸识别功能
SDK_OTHER_SUPPORT_DEVICE_INFO, //是否支持新设备信息
SDK_OTHER_SUPPORT_BALL_CAMERA_TRACK_DETECT,//支持球机跟踪识别
SDK_OTHER_SPECIAL_NIGHT_CONTROAL, //夜晚特殊情景控制
SDK_OTHER_SUPPORT_SET_HARDWARE_ABILITY, //支持设置设备硬件能力集
SDK_OTHER_SUPPORT_SAFETY_EMAIL, //支持安全邮箱重置密码功能
SDK_OTHER_SUPPORT_SENSOR_ABILITY_SETTING,//支持合封模组支持的sensor等级
SDK_OTHER_NR
};
///支持的系统功能
typedef struct SDK_SystemFunction
{
bool vEncodeFunction[SDK_ENCODE_FUNCTION_TYPE_NR]; ///< 编码功能SDK_EncodeFunctionTypes
bool vAlarmFunction[SDK_ALARM_FUNCTION_TYPE_NR]; ///< 报警功能AlarmFucntionTypes
bool vNetServerFunction[SDK_NET_SERVER_TYPES_NR]; ///< 网络服务功能NetServerTypes
bool vPreviewFunction[SDK_PREVIEW_TYPES_NR]; ///< 预览功能PreviewTypes
bool vCommFunction[SDK_COMM_TYPES_NR]; ///< 串口类型SDK_CommTypes
bool vInputMethodFunction[SDK_NO_SUPPORT_NR]; ///< 输入法限制SDK_InPutMethod>
bool vTipShowFunction[SDK_NO_TIP_SHOW_NR]; ///< 报警标签显示SDK_TipShow>
bool vMobileCarFunction[SDK_MOBILEDVR_NR]; ///< 车载功能
bool vOtherFunction[SDK_OTHER_NR]; ///< 其他功能OtherFunction
}SDK_SystemFunction;
typedef struct SDK_COMMATTRI
{
int iDataBits; // 数据位取值为5,6,7,8
int iStopBits; // 停止位
int iParity; // 校验位
int iBaudRate; // 实际波特率
}SDK_COMMATTRI;
// 串口配置
typedef struct SDK_CONFIG_COMM_X
{
char iProtocolName[32]; // 串口协议:“Console”
int iPortNo; // 端口号
SDK_COMMATTRI aCommAttri; // 串口属性
}SDK_CONFIG_COMM_X;
typedef struct SDK_CommConfigAll
{
SDK_CONFIG_COMM_X vCommConfig[SDK_COM_TYPES];
}SDK_CommConfigAll;
// 云台设置
typedef struct SDK_STR_CONFIG_PTZ
{
char sProtocolName[NET_MAX_PTZ_PROTOCOL_LENGTH]; // 协议名称
int ideviceNo; // 云台设备地址编号
int iNumberInMatrixs; // 在矩阵中的统一编号
int iPortNo; // 串口端口号 [1, 4]
SDK_COMMATTRI dstComm; // 串口属性
}SDK_STR_CONFIG_PTZ;
//所有通道云台协议
typedef struct SDK_STR_PTZCONFIG_ALL
{
SDK_STR_CONFIG_PTZ ptzAll[NET_MAX_CHANNUM];
}SDK_STR_PTZCONFIG_ALL;
//R S485
typedef struct SDK_STR_RS485CONFIG_ALL
{
SDK_STR_CONFIG_PTZ ptzAll[NET_MAX_CHANNUM];
}SDK_STR_RS485CONFIG_ALL;
typedef struct SDK_CONFIG_WORKSHEET
{
SDK_TIMESECTION tsSchedule[NET_N_WEEKS][NET_N_TSECT]; /*!< 时间段 */
}SDK_CONFIG_WORKSHEET;
/// 录像模式种类
enum SDK_RecordModeTypes
{
SDK_RECORD_MODE_CLOSED, ///< 关闭录像
SDK_RECORD_MODE_MANUAL, ///< 手动录像
SDK_RECORD_MODE_CONFIG, ///< 按配置录像
SDK_RECORD_MODE_NR,
};
///< 录像设置
typedef struct SDK_RECORDCONFIG
{
int iPreRecord; ///< 预录时间,为零时表示关闭
bool bRedundancy; ///< 冗余开关
//bool bSnapShot; ///< 快照开关
int iPacketLength; ///< 录像打包长度(分钟)[1, 255]
int iRecordMode; ///< 录像模式,0 关闭,1 禁止 2 配置
SDK_CONFIG_WORKSHEET wcWorkSheet; ///< 录像时间段
unsigned int typeMask[NET_N_WEEKS][NET_N_TSECT]; ///< 录像类型掩码
}SDK_RECORDCONFIG;
//录像设置结构体
typedef struct SDK_RECORDCONFIG_ALL
{
SDK_RECORDCONFIG vRecordConfigAll[NET_MAX_CHANNUM];
}SDK_RECORDCONFIG_ALL;
///< 图片设置
typedef struct SDK_SnapshotConfig
{
int iPreSnap; ///< 预抓图片数
bool bRedundancy; ///< 冗余开关
int iSnapMode; ///< 录像模式,见RecordModeTypes
SDK_CONFIG_WORKSHEET wcWorkSheet; ///< 录像时间段
unsigned int typeMask[NET_N_WEEKS][NET_N_TSECT]; ///< 录像类型掩码,见enum RecordTypes
}SDK_SnapshotConfig;
typedef struct SDK_SnapshotConfigAll
{
SDK_SnapshotConfig vSnapshotConfigAll[NET_MAX_CHANNUM];
}SDK_SnapshotConfigAll;
//报警相关结构体
// 云台联动类型
enum PtzLinkTypes
{
PTZ_LINK_NONE, // 不需要联动
PTZ_LINK_PRESET, // 转至预置点
PTZ_LINK_TOUR, // 巡航
PTZ_LINK_PATTERN // 轨迹
};
// 云台联动结构
typedef struct SDK_PtzLinkConfig
{
int iType; // 联动的类型--对应结构体PtzLinkTypes
int iValue; // 联动的类型对应的值
}SDK_PtzLinkConfig;
#define CHANNELNAME_MAX_LEN 64 //通道名称最大长度
//由于要兼容多通道设备,所以需要修改结构体类型
typedef struct SDK_EventHandler
{
char dwRecord[NET_MAX_MSK_SIZE]; // 录象掩码
int iRecordLatch; // 录像延时:10?300 sec
char dwTour[NET_MAX_MSK_SIZE]; // 轮巡掩码
char dwSnapShot[NET_MAX_MSK_SIZE]; // 抓图掩码
char dwAlarmOut[NET_MAX_MSK_SIZE]; // 报警输出通道掩码
char dwMatrix[NET_MAX_MSK_SIZE]; // 矩阵掩码
int iEventLatch; // 联动开始延时时间,s为单位
int iAOLatch; // 报警输出延时:10?300 sec
SDK_PtzLinkConfig PtzLink[NET_MAX_CHANNUM]; // 云台联动项
SDK_CONFIG_WORKSHEET schedule; // 录像时间段
bool bRecordEn; // 录像使能
bool bTourEn; // 轮巡使能
bool bSnapEn; // 抓图使能
bool bAlarmOutEn; // 报警使能
bool bPtzEn;
// 云台联动使能
bool bTip; // 屏幕提示使能
bool bMail; // 发送邮件
bool bMessage; // 发送消息到报警中心
bool bBeep; // 蜂鸣
bool bVoice; // 语音提示
bool bFTP; // 启动FTP传输
bool bMatrixEn; // 矩阵使能
bool bLog; // 日志使能
bool bMessagetoNet; // 消息上传给网络使能
bool bShowInfo; // 是否在GUI上和编码里显示报警信息
char dwShowInfoMask[NET_MAX_MSK_SIZE]; // 要联动显示报警信息的通道掩码
char pAlarmInfo[CHANNELNAME_MAX_LEN]; //要显示的报警信息
bool bShortMsg; //发送短信
bool bMultimediaMsg; //发送彩信
}SDK_EventHandler;
enum SDK_ANALYSE_MODE
{
SDK_ANALYSE_TRIPWIRE = 0, //单绊线
SDK_ANALYSE_PERIMETER //周界检测
};
/** 周界检测模式 */
enum SDK_URP_PERIMETER_MODE_E
{
SDK_URP_PMODE_INTRUSION = 0, /**< 入侵 */
SDK_URP_PMODE_ENTER, /**< 进入 */
SDK_URP_PMODE_EXIT /**< 离开 */
};
/** 最大边界点数 */
#define SDK_MAX_BOUNDARY_POINT_NUM 8
#define SDK_MAX_POINT_NUM 4
#define SDK_NAME_BUF_SIZE 16
/** 坐标点 */
typedef struct URP_SDK_POINT_S
{
short X; /**< x */
short Y; /**< y */
}URP_SDK_POINT_S;
/** 线结构 */
typedef struct SDK_URP_LINE_S
{
URP_SDK_POINT_S stStartPt; /**< 线段起点 */
URP_SDK_POINT_S stEndPt; /**< 线段终点 */
}SDK_URP_LINE_S;
typedef struct SDK_URP_POLYGON_REGION_S
{
int iValid;
int iPointNum;
URP_SDK_POINT_S astPoint[SDK_MAX_BOUNDARY_POINT_NUM];
}SDK_URP_POLYGON_REGION_S;
/** URP周界检测边界点 */
typedef struct SDK_URP_PERIMETER_LIMIT_BOUNDARY_S
{
int iBoundaryPtNum; /**< 边界点数目 */
URP_SDK_POINT_S astBoundaryPts[SDK_MAX_BOUNDARY_POINT_NUM]; /**< 边界点集合 */
}SDK_URP_PERIMETER_LIMIT_BOUNDARY_S;
/** URP周界检测限制参数 */
typedef struct SDK_URP_PERIMETER_LIMIT_PARA_S
{
int iMinDist; /**< 最小像素距离 */
int iMinTime; /**< 最短时间 */
int iDirectionLimit; /**< 是否做方向限制 */
int iForbiddenDirection; /**< 禁止方向角度(单位: 角度) */
SDK_URP_PERIMETER_LIMIT_BOUNDARY_S stBoundary; /**< 周界边界区域 */
}SDK_URP_PERIMETER_LIMIT_PARA_S;
/** URP周界检测规则参数 */
typedef struct SDK_URP_PERIMETER_RULE_PARA_S
{
int iTypeLimit; /**< 目标类型限制 */
int iTypeHuman; /**< 目标类别:人(限定类型时使用) */
int iTypeVehicle; /**< 目标类别:车 */
int iMode; /**< 周界模式 */
SDK_URP_PERIMETER_LIMIT_PARA_S stLimitPara; /**< 周界限制参数 */
}SDK_URP_PERIMETER_RULE_PARA_S;
// ----------------------------------------------------------------------
// 绊线数据结构
/** URP单绊线最多条数 */
#define SDK_URP_MAX_TRIPWIRE_CNT 8
/** URP单绊线结构 */
typedef struct SDK_URP_TRIPWIRE_S
{
int iValid; /**< 是否有效 */
int iIsDoubleDirection; /**< 表示该绊线是否为双向绊线(0: 否, 1: 是) */
int iForbiddenDirection; /**< 单绊线禁止方向*/
SDK_URP_LINE_S stLine; /**< 单绊线位置 */
}SDK_URP_TRIPWIRE_S;
/** URP单绊线限制参数 */
typedef struct SDK_URP_TRIPWIRE_LIMIT_PARA_S
{
int iMinDist; /**< 最小像素距离 */
int iMinTime; /**< 最短时间 */
}SDK_URP_TRIPWIRE_LIMIT_PARA_S;
/** URP单绊线规则参数 */
typedef struct SDK_URP_TRIPWIRE_RULE_PARA_S
{
int iTypeLimit; /**< 目标类型限制 */
int iTypeHuman; /**< 目标类别:人(限定类型时使用) */
int iTypeVehicle; /**< 目标类别:车 */
SDK_URP_TRIPWIRE_S astLines[SDK_URP_MAX_TRIPWIRE_CNT]; /**< 单绊线 */
SDK_URP_TRIPWIRE_LIMIT_PARA_S stLimitPara; /**< 单绊线限制参数 */
}SDK_URP_TRIPWIRE_RULE_PARA_S;
/** URP目标输出灵敏度级别 */
enum SDK_SENSITIVITY_LEVEL_E
{
SDK_HIGH_LEVEL_SENSITIVITY, /**< 高灵敏度 */
SDK_MIDDLE_LEVEL_SENSITIVITY, /**< 中灵敏度 */
SDK_LOW_LEVEL_SENSITIVITY /**< 低灵敏度 */
};
/** 算法模块 */
enum SDK_MODULE_TYPE
{
SDK_MODULE_TYPE_PEA = 0,
SDK_MODULE_TYPE_OSC,
SDK_MODULE_TYPE_AVD,
SDK_MODULE_TYPE_CPC,
SDK_MODULE_TYPE_BCT,
SDK_MODULE_TYPE_ALL,
};
// ----------------------------------------------------------------------
// 下面开始是自定义结构
typedef struct SDK_PEA_RULE_S
{
int iShowTrack; /// 是否显示轨迹
int iShowRule; /// 是否显示规则
int iLevel; /// 警戒级别(灵敏度)0:高级(默认值);1:中级;2:低级;
int iPerimeterEnable; /// 周界规则使能
SDK_URP_PERIMETER_RULE_PARA_S stPerimeterRulePara;/**< 周界检测 */
int iTripWireEnable; /// 单绊线规则使能
SDK_URP_TRIPWIRE_RULE_PARA_S stTripwireRulePara; /**< 单绊线检测 */
}SDK_PEA_RULE_S;
/// 算法能力结构
typedef struct SDK_CAPS /// 置1表示该通道支持对应的智能算法,置0表示不支持。
{
int dwPEA;
int dwAVD;
int dwVFD;
int dwAAI;
int dwOSC;
int iResv[3];
}SDK_CAPS;
typedef struct SDK_PEA_STATUS_S
{
int dwPerimeter; /// 入侵检测状态,包括了伴线和周界,,uint值是各个报警输入通道报警状态的掩码。
/// 低通道在低位,高通道在高位。报警置1,无报警置0,不存在的通道置0。
int iResv[4];
int avdStatue;
}SDK_PEA_STATUS_S;
//物品遗留-begin
#define NET_MAX_OSC_NUM 4
#define NET_MAX_POINT_NUM 4
#define NET_NAME_BUF_SIZE 16
typedef struct SDK_URP_OSC_SPECL_REGIONS_S
{
int nValid; //是否有效
char chName[NET_NAME_BUF_SIZE]; //区域名称
SDK_URP_POLYGON_REGION_S stOscRg; //要检测区域定义
SDK_URP_POLYGON_REGION_S astSubRgA; //检测区域中的无效子区域
SDK_URP_POLYGON_REGION_S astSubRgB; //检测区域中的无效子区域
SDK_URP_POLYGON_REGION_S astSubRgC; //检测区域中的无效子区域
}SDK_URP_OSC_SPECL_REGIONS_S;
typedef struct SDK_URP_OSC_LMT_PARA_S
{
int nTimeMin; //时间约束
int nSizeMin; //最小尺寸
int nSizeMax; //最大尺寸
}SDK_URP_OSC_LMT_PARA_S;
typedef struct SDK_URP_OSC_RULE_PARA_S
{
int nSceneType; //场景类型
int nCameraType; //相机类型
SDK_URP_OSC_SPECL_REGIONS_S astSpclRgs[NET_MAX_OSC_NUM]; //要处理的区域个数
SDK_URP_OSC_LMT_PARA_S stOscPara; //一些约束
}SDK_URP_OSC_RULE_PARA_S;
typedef struct SDK_OSC_RULE_S
{
int iShowTrack; /// 是否显示轨迹
int iShowRule; /// 是否显示规则
int iLevel; /// 警戒级别0:非警报(默认值);1:低级;2:中级;3: 高级
int iAbandumEnable; /// 物品遗留使能
SDK_URP_OSC_RULE_PARA_S stObjAbandumRulePara; /// 物品遗留参数
int iStolenEnable; /// 物品被盗使能
SDK_URP_OSC_RULE_PARA_S stObjStolenRulePara; /// 物品被盗参数
int iNoParkingEnable; /// 非法停车使能
SDK_URP_OSC_RULE_PARA_S stNoParkingRulePara; /// 非法停车参数
}SDK_OSC_RULE_S;
typedef struct SDK_AVD_RULE_S
{
int iLevel; /// 灵敏度档位,1-5档,数值越大越灵敏越易报警
int itBrightAbnmlEnable; ///< 亮度异常使能
int iClarityEnable; ///< 清晰度检测使能
int iNoiseEnable; ///< 噪声检测使能
int iColorEnable; ///< 偏色检测使能
int iFreezeEnable; ///< 画面冻结检测使能
int iNosignalEnable; ///< 信号缺失检测使能
int iChangeEnable; ///< 场景变换检测使能
int iInterfereEnable; ///< 人为干扰检测使能
int iPtzLoseCtlEnable; ///< PTZ失控检测使能
}SDK_AVD_RULE_S;
/** 坐标点 */
typedef struct SDK_URP_IMP_POINT_S
{
short s16X; /**< x */
short s16Y; /**< y */
}SDK_URP_IMP_POINT_S;
typedef struct SDK_CPC_RULE_S
{
SDK_URP_IMP_POINT_S stRulePoint[4]; ///检测规则,需要画满4个点
int s32Sizemin; ///最小像距(0,height/2)
int s32Sizemax; ///最大像距(sizemin, height/2)
int s32Countmax; ///最大目标数[1~15],
int s32Sensitivity; /// 灵敏度档位,1-5档,数值越大越灵敏越易报警
unsigned int u32Flag; ///标志位,用来判断进出,默认设0
int s32EnterDirection; ///进入的方向
}SDK_CPC_RULE_S;
//球机守望点分析
typedef struct SDK_PresetPointTrack //预置点跟踪
{
int iWatchPoint; //守望点
int iTrackTimeoutTime; //跟踪超时时间
int iAllowedInterruptEnable; //允许打断使能
char resv[16]; //保留字节
}SDK_PresetPointTrack;
typedef struct SDK_CruisePresePointParam
{
char cPresePoint; //预置点
char cIntervalTime; //点间巡航间隔时间
}SDK_CruisePresePointParam;
typedef struct SDK_CruiseTrack //巡航跟踪
{
int iWatchPoint; //守望点
int iTrackTimeoutTime; //跟踪超时时间
int iAllowedToInterruptEnable; //允许打断使能
int iCruiseLine; //巡航路线
SDK_CruisePresePointParam tCruisePresePointParam[6][20];
char resv[16]; //保留字节
}SDK_CruiseTrack;
typedef struct SDK_tagBCT_RULE_S
{
int iShowTrack; // 是否显示轨迹
int iBallCameraTrackEnable; //球机追踪使能
int iChooseYype; //选择的配置类型
int iTrackSpeed; //跟踪速度类型,其值为类似覶RACK_SPEED_HIGH的枚举量
int iTrackSize; //跟踪目标大小,其值为类似覶TRACK_SIZE_BIG的枚举量
int iChangeRatioLimit; //变倍限制
SDK_PresetPointTrack tPresetPointTrack; //预置点跟踪配置
SDK_CruiseTrack tCruiseTrack; //巡航跟踪配置
char resv[64]; //保留字节
}SDK_BCT_RULE_S;
//各种算法的规则配置集合
typedef struct SDK_RULECONFIG
{
SDK_PEA_RULE_S stRulePea; //周界检测与绊线配置
SDK_OSC_RULE_S stRuleOSC; //物品盗移、滞留,非法停车配置
SDK_AVD_RULE_S stRuleAVD; //异常视频信号诊断配置
SDK_CPC_RULE_S stRuleCPC; //人头计数算法配置
SDK_BCT_RULE_S stRuleBCT; //追踪球算法配置
}SDK_RULECONFIG;
//一个通道的智能分析配置
typedef struct SDK_ANALYSECONFIG
{
bool bEnable; //是否启用视频分析功能
int moduleType; //使用的那种算法模块
SDK_EventHandler hEvent; //联动事件
SDK_RULECONFIG stRuleConfig; //各种算法的规则配置
}SDK_ANALYSECONFIG;
//所有通道的智能分析配置
typedef struct SDK_ANALYSECONFIG_ALL
{
SDK_ANALYSECONFIG vAnalyzeAll[NET_MAX_CHANNUM];
}SDK_ANALYSECONFIG_ALL;
enum SDK_E_TRACK_SPEED_TYPE //跟踪速度
{
TRACK_SPEED_HIGH, //快速
TRACK_SPEED_MEDIUM, //中速
TRACK_SPEED_LOW, //慢速
};
enum SDK_E_TRACK_SIZE
{
TRACK_SIZE_BIG, //大型目标
TRACK_SIZE_MEDIUM, //中等目标
TRACK_SIZE_SMALL, //小型目标
};
//PEA支持的算法类型
enum SDK_PEA_TYPE{
PEA_TYPE_TRIPWIRE = 0, //绊线
PEA_TYPE_PERIMETER, //周界保护
PEA_TYPE_ALL
};
//OSC支持的算法类型
enum SDK_OSC_TYPE{
OSC_TYPE_ABANDUM = 0, //遗弃物检测
OSC_TYPE_OBJSTOLEN, //被盗物检测
OSC_TYPE_NOPARKING, //非法停车检测
OSC_TYPE_ALL
};
//AVD支持的算法类型
enum SDK_AVD_TYPE{
AVD_TYPE_BRIGHTABNML = 0, //亮度异常
AVD_TYPE_CLARITY, //清晰度检测
AVD_TYPE_NOISE, //噪声检测
AVD_TYPE_COLOR, //偏色检测
AVD_TYPE_FREEZE, //画面冻结检测AVD_TYPE_NOSIGNAL, //信号缺失检测
AVD_TYPE_CHANGE, //场景变换检测
AVD_TYPE_INTERFERE, //人为干扰检测
AVD_TYPE_PTZLOSECTL, //PTZ失控检测
AVD_TYPE_ALL
};
//新智能分析增加的配置
typedef struct SDK_PEALimit
{
int rectangle; //区域是否必须是矩形,1:必须是 0:可以不是
char areaMaxLineNum;//一个区域最多有多少条边
char lineNum; //支持的警戒线条数
char areaNum; //支持的警戒区域个数
char rev;
}SDK_PEALimit;
typedef struct SDK_OSCLimit
{
int rectangle; //区域是否必须是矩形,1:必须是 0:可以不是
char areaMaxLineNum;//一个区域最多有多少条边
char areaNum; //支持检测区域个数
char Resv[2];
}SDK_OSCLimit;
//智能分析能力 //新智能配置需要SDK_ALARM_FUNCTION_TYPE_NEW_VIEDO_ANALYZE能力级为TRUE
typedef struct SDK_ANALYZEABILITY
{
char uIntelPEA[NET_MAX_MSK_SIZE]; //智能PEA支持,位对应通道 1个字节代表一个通道
UINT uAlgorithmPEA; //PEA支持的算法类型--见SDK_PEA_TYPE枚举
char uIntelOSC[NET_MAX_MSK_SIZE]; //智能OSC支持,位对应通道 1个字节代表一个通道
UINT uAlgorithmOSC; //OSC支持的算法类型--见SDK_OSC_TYPE枚举
char uIntelAVD[NET_MAX_MSK_SIZE]; //智能AVD支持,位对应通道 1个字节代表一个通道
UINT uAlgorithmAVD; //AVD支持的算法类型--见SDK_AVD_TYPE枚举
char uIntelCPC[NET_MAX_MSK_SIZE]; //人流量记数支持,位对应通道 1个字节代表一个通道
UINT uAlgorithmCPC; //CPC支持的算法类型
SDK_PEALimit uPEALimit; //新智能库的PEA限制条件
SDK_OSCLimit uOSCLimit; //新智能库里OSC限制条件
char uIntelBCT[NET_MAX_MSK_SIZE]; //智能BCT支持,位对应通道
UINT uAlgorithmBCT; //BCT支持的算法类型
}SDK_ANALYZEABILITY;
///< 动态检测设置
typedef struct SDK_MOTIONCONFIG
{
bool bEnable; // 动态检测开启
int iLevel; // 灵敏度
unsigned int mRegion[NET_MD_REGION_ROW]; // 区域,每一行使用一个二进制串
SDK_EventHandler hEvent; // 动态检测联动
}SDK_MOTIONCONFIG;
/// 全通道动态检测配置
typedef struct SDK_MOTIONCONFIG_ALL
{
SDK_MOTIONCONFIG vMotionDetectAll[NET_MAX_CHANNUM];
}SDK_MOTIONCONFIG_ALL;
///PIR 检测设置
typedef struct SDK_PIRDetectV2Config
{
bool bEnable; // PIR 检测开启
bool bInfraredEnable; // 红外灯开启
bool bInfraredRelevanceEnable; // 红外灯关联开启
SDK_EventHandler hEvent; // PIR 检测联动
}SDK_PIRDetectV2Config;
/// 全通道PIR 检测配置
typedef struct SDK_PIRDetectV2ConfigAll
{
SDK_PIRDetectV2Config vPIRDetectAll[NET_MAX_CHANNUM];
}SDK_PIRDetectV2ConfigAll;
///< 遮挡检测配置
typedef struct SDK_BLINDDETECTCONFIG
{
bool bEnable; ///< 遮挡检测开启
int iLevel; ///< 灵敏度:1?6
SDK_EventHandler hEvent; ///< 遮挡检测联动
}SDK_BLINDDETECTCONFIG;
/// 全通道遮挡检测配置
typedef struct SDK_BLINDDETECTCONFIG_ALL
{
SDK_BLINDDETECTCONFIG vBlindDetectAll[NET_MAX_CHANNUM];
}SDK_BLINDDETECTCONFIG_ALL;
///< 基本事件结构
typedef struct SDK_VIDEOLOSSCONFIG
{
bool bEnable; ///< 使能
SDK_EventHandler hEvent; ///< 处理参数
}SDK_VIDEOLOSSCONFIG;
/// 所有通道的基本时间结构
typedef struct SDK_VIDEOLOSSCONFIG_ALL
{
SDK_VIDEOLOSSCONFIG vGenericEventConfig[NET_MAX_CHANNUM];
}SDK_VIDEOLOSSCONFIG_ALL;
///< 报警输入配置
typedef struct SDK_ALARM_INPUTCONFIG
{
bool bEnable; ///< 报警输入开关
int iSensorType; ///< 传感器类型常开 or 常闭
SDK_EventHandler hEvent; ///< 报警联动
}SDK_ALARM_INPUTCONFIG;
///< 所有通道的报警输入配置
typedef struct SDK_ALARM_INPUTCONFIG_ALL
{
SDK_ALARM_INPUTCONFIG vAlarmConfigAll[NET_MAX_CHANNUM];
}SDK_ALARM_INPUTCONFIG_ALL;
///< 网路报警
typedef struct SDK_NETALARMCONFIG
{
bool bEnable; ///< 使能
SDK_EventHandler hEvent; ///< 处理参数
}SDK_NETALARMCONFIG;
/// 所有通道的网路报警结构
typedef struct SDK_NETALARMCONFIG_ALL
{
SDK_NETALARMCONFIG vNetAlarmConfig[NET_MAX_CHANNUM];
}SDK_NETALARMCONFIG_ALL;
///< 本地报警输出配置
typedef struct SDK_AlarmOutConfig
{
int nAlarmOutType; ///< 报警输出类型: 配置,手动,关闭
int nAlarmOutStatus; ///< 报警状态: 0:打开 1;闭合
}SDK_AlarmOutConfig;
//< 硬盘容量不足事件剩余容量类型
enum SDK_StorageLowSpaceType
{
SDK_PERSENT = 0,
SDK_MB,
SDK_GB,
};
///< 硬盘容量不足事件结构
typedef struct SDK_StorageLowSpaceConfig
{
bool bEnable;
int iLowerLimit; ///< 硬盘剩余容量下限, 百分数
SDK_EventHandler hEvent; ///< 处理参数
bool bRecordTimeEnable;
int iRecordTime; ///<录像天数
int iLowerLimitSpace; ///< 硬盘剩余容量MB或者GB为单位
int EnableType; ///< 0为用百分比,1为用MB,见枚举StorageLowSpaceType
}SDK_StorageLowSpaceConfig;
///< 所有通道的报警输出配置
typedef struct SDK_AlarmOutConfigAll
{
SDK_AlarmOutConfig vAlarmOutConfigAll[NET_MAX_CHANNUM];
}SDK_AlarmOutConfigAll;
/// 所有通道的解码器地址设置V2版本
typedef struct SDK_AbilitySerialNo
{
char serialNo[NET_MAX_SERIALNO_LENGTH];
char productType[NET_MAX_SERIALNO_LENGTH];
}SDK_AbilitySerialNo;
///< 驱动器信息结构
typedef struct SDK_DriverInformation
{
int iDriverType; ///< 驱动器类型
bool bIsCurrent; ///< 是否为当前工作盘
unsigned int uiTotalSpace; ///< 总容量,MB为单位
unsigned int uiRemainSpace; ///< 剩余容量,MB为单位
int iStatus; ///< 错误标志,文件系统初始化时被设置
int iLogicSerialNo; ///< 逻辑序号
SDK_SYSTEM_TIME tmStartTimeNew; ///< 新录像时间段的开始时间
SDK_SYSTEM_TIME tmEndTimeNew; ///< 新录像时间段的结束时间
SDK_SYSTEM_TIME tmStartTimeOld; ///< 老录像时间段的开始时间
SDK_SYSTEM_TIME tmEndTimeOld; ///< 老录像时间段的结束时间
char fsType[NET_FSLEN]; ///<文件类型
}SDK_DriverInformation;
enum
{
SDK_MAX_DRIVER_PER_DISK = 4, ///< 每个磁盘最多的分区数
SDK_MAX_DISK_PER_MACHINE = 8, ///< 最多支持8块硬盘
};
//硬盘管理
typedef struct SDK_STORAGEDISK
{
int iPhysicalNo;
int iPartNumber; // 分区数
SDK_DriverInformation diPartitions[SDK_MAX_DRIVER_PER_DISK];
}SDK_STORAGEDISK;
typedef struct SDK_StorageDeviceInformationAll
{
int iDiskNumber;
SDK_STORAGEDISK vStorageDeviceInfoAll[SDK_MAX_DISK_PER_MACHINE];
}SDK_StorageDeviceInformationAll;
/// 存储设备控制类型
enum SDK_StorageDeviceControlTypes
{
SDK_STORAGE_DEVICE_CONTROL_SETTYPE, ///< 设置类型
SDK_STORAGE_DEVICE_CONTROL_RECOVER, ///< 恢复错误
SDK_STORAGE_DEVICE_CONTROL_PARTITIONS, ///< 分区操作
SDK_STORAGE_DEVICE_CONTROL_CLEAR, ///< 清除操作
SDK_STORAGE_DEVICE_CONTROL_ADDNAS, ///<添加NAS
SDK_STORAGE_DEVICE_CONTROL_CHANGENAS, ///修改NAS
SDK_STORAGE_DEVICE_CONTROL_DELNAS, ///<删除NAS
SDK_STORAGE_DEVICE_CONTROL_NR,
};
/// 清除磁盘数据类型
enum SDK_StorageDeviceClearTypes
{
SDK_STORAGE_DEVICE_CLEAR_DATA, ///< 清除录像数据
SDK_STORAGE_DEVICE_CLEAR_PARTITIONS, ///< 清除分区
SDK_STORAGE_DEVICE_CLEAR_NR,
};
/// 驱动器类型
enum SDK_FileSystemDriverTypes
{
SDK_DRIVER_READ_WRITE = 0, ///< 读写驱动器
SDK_DRIVER_READ_ONLY = 1, ///< 只读驱动器
SDK_DRIVER_EVENTS = 2, ///< 事件驱动器
SDK_DRIVER_REDUNDANT = 3, ///< 冗余驱动器
SDK_DRIVER_SNAPSHOT = 4, ///< 快照驱动器
SDK_DRIVER_TYPE_NR = 5, ///< 驱动器类型个数
SDK_DRIVER_UNUSED = 0xff, ///< 没有使用的驱动器结构
};
/// 存储设备控制
typedef struct SDK_StorageDeviceControl
{
int iAction; ///< 见enum SDK_StorageDeviceControlTypes
int iSerialNo; ///< 磁盘序列号
int iPartNo; ///< 分区号
int iType; ///< enum SDK_StorageDeviceClearTypes或者SDK_FileSystemDriverTypes
int iPartSize[4/*Max driver per disk*/]; ///< 各个分区的大小
}SDK_StorageDeviceControl;
/// 设备类型
typedef enum SDK_DeviceType
{
SDK_DEVICE_TYPE_DVR, ///< 普通DVR设备
SDK_DEVICE_TYPE_NVS, ///< NVS设备
SDK_DEVICE_TYPE_IPC, ///< IPC设备
SDK_DEVICE_TYPE_HVR, ///<混合dvr
SDK_DEVICE_TYPE_IVR, ///<智能dvr
SDK_DEVICE_TYPE_MVR, ///<车载dvr
SDK_DEVICE_TYPE_NR
}SDK_DeviceType;
/// 设备信息
typedef struct _H264_DVR_DEVICEINFO
{
char sSoftWareVersion[64]; ///< 软件版本信息
char sHardWareVersion[64]; ///< 硬件版本信息
char sEncryptVersion[64]; ///< 加密版本信息
SDK_SYSTEM_TIME tmBuildTime;///< 软件创建时间
char sSerialNumber[64]; ///< 设备序列号
int byChanNum; ///< 视频输入通道数
int iVideoOutChannel; ///< 视频输出通道数
int byAlarmInPortNum; ///< 报警输入通道数
int byAlarmOutPortNum; ///< 报警输出通道数
int iTalkInChannel; ///< 对讲输入通道数
int iTalkOutChannel; ///< 对讲输出通道数
int iExtraChannel; ///< 扩展通道数
int iAudioInChannel; ///< 音频输入通道数
int iCombineSwitch; ///< 组合编码通道分割模式是否支持切换
int iDigChannel; ///<数字通道数
unsigned int uiDeviceRunTime;///<系统运行时间
SDK_DeviceType deviceTye; ///设备类型
char sHardWare[64]; ///<设备型号
char uUpdataTime[20]; ///<更新日期 例如 2013-09-03 14:15:13
unsigned int uUpdataType; ///<更新内容
char sDeviceModel[16]; //设备型号(底层库从加密里获得,sHardWare针对多个设备用同一个程序这种情况区分不了)
int nLanguage;//国家的语言ID,0英语 1中文 2中文繁体 3韩语 4德语 5葡萄牙语 6俄语
char sCloudErrCode[NET_MAX_PATH_LENGTH];//云登陆具体错误内容
int status[32];
//判断新过来的连接是不是通过代理转发的,如果是那么按照服务器3
//返回的限制条件来限制。
//status[0] 路数限制:0代表不限制, n代表限制n路
//status[1]码流限制。0 :不限制。1限制不能观看主码流。
//status[2]限制时间。0:不限制。n:限制n分钟。
//status[3]限制码率,目前分为四档。0:不限制。1:限制为CIF 6帧 100K ,后续待定
//status[4]保留位,后续扩充。
//其中status[0]和status[1]在此处体现。
//status[2]和status[3]在传输码流的过程中体现
}H264_DVR_DEVICEINFO,*LPH264_DVR_DEVICEINFO;
//主动服务回调数据
typedef struct H264_DVR_ACTIVEREG_INFO
{
char deviceSarialID[64]; //设备序列号,如果大于64位则赋值0
H264_DVR_DEVICEINFO deviceInfo; //设备信息
char IP[IP_SIZE]; //外网IP
}H264_DVR_ACTIVEREG_INFO;
///< 自动维护设置
typedef struct SDK_AutoMaintainConfig
{
int iAutoRebootDay; ///< 自动重启设置日期
int iAutoRebootHour; ///< 重启整点时间 [0, 23]
int iAutoDeleteFilesDays; ///< 自动删除文件时间[0, 30]
}SDK_AutoMaintainConfig;
/// 默认配置种类
enum SDK_DefaultConfigKinds
{
SDK_DEFAULT_CFG_GENERAL, // 普通配置
SDK_DEFAULT_CFG_ENCODE, // 编码配置
SDK_DEFAULT_CFG_RECORD, // 录像配置
SDK_DEFAULT_CFG_NET_SERVICE, // 网络服务
SDK_DEFAULT_CFG_NET_COMMON, // 通用网络
SDK_DEFAULT_CFG_ALARM, // 报警
SDK_DEFAULT_CFG_PTZCOMM, // 云台,串口
SDK_DEFAULT_CFG_USERMANAGER, // 用户管理
SDK_DEFAULT_CFG_PREVIEW, // 预览配置
SDK_DEFAULT_CFG_CAMERA_PARAM, // 网络摄像头配置
SDK_DEFAULT_CFG_END,
};
/// 恢复的默认配置种类
typedef struct SDK_SetDefaultConfigTypes
{
bool vSetDefaultKinds[SDK_DEFAULT_CFG_END];
bool vDefaultFactory; //恢复出厂设置配置
}SDK_SetDefaultConfigTypes;
typedef struct H264_DVR_CLIENTINFO{
int nChannel; //通道号
int nStream; //0表示主码流,为1表示子码流
int nMode; //0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-音视频分开(TCP)
int nComType; //只对组合编码通道有效, 组合编码通道的拼图模式
void* hWnd;
#ifndef OS_IOS
H264_DVR_CLIENTINFO()
{
hWnd=0;
}
#endif
}*LPH264_DVR_CLIENTINFO;
enum SDK_File_Type
{
SDK_RECORD_ALL = 0,
SDK_RECORD_ALARM = 1, //外部报警录像
SDK_RECORD_DETECT, //视频侦测录像
SDK_RECORD_REGULAR, //普通录像
SDK_RECORD_MANUAL, //手动录像
SDK_RECORD_KEY, //关键录像
SDK_PIC_ALL = 10,
SDK_PIC_ALARM, //外部报警图片
SDK_PIC_DETECT, //视频侦测图片
SDK_PIC_REGULAR, //普通图片
SDK_PIC_MANUAL, //手动图片
SDK_PIC_IDXIMG, //索引图片
SDK_TYPE_NUM
};
//查询录像条件
typedef struct H264_DVR_FINDINFO
{
int nChannelN0; //通道号
int nFileType; //文件类型, 见SDK_File_Type
H264_DVR_TIME startTime;//开始时间
H264_DVR_TIME endTime; //结束时间
char szFileName[32]; //文件名,为空的话,系统处理,有值,系统采用
void *hWnd;
int StreamType; //查询的码流类型,主码流:0,辅码流:1
#ifndef OS_IOS
H264_DVR_FINDINFO()
{
hWnd=0;
StreamType =0;
}
#endif
}H264_DVR_FINDINFO;
//录像文件返回结构体
typedef struct H264_DVR_FILE_DATA
{
int ch; //通道号
int size; //文件大小
char sFileName[108]; //文件名
SDK_SYSTEM_TIME stBeginTime;//文件开始时间
SDK_SYSTEM_TIME stEndTime; //文件结束时间
void *hWnd; //窗口句柄
int StreamType; //码流类型是回放主码流(0)还是辅助码流(1)
#ifndef OS_IOS
H264_DVR_FILE_DATA()
{
hWnd=0;
StreamType =0;
};
#endif
}H264_DVR_FILE_DATA;
//回放动作
enum SDK_PlayBackAction
{
SDK_PLAY_BACK_PAUSE, /*<! 暂停回放 */
SDK_PLAY_BACK_CONTINUE, /*<! 继续回放 */
SDK_PLAY_BACK_SEEK, /*<! 回放定位,时间s为单位 */
SDK_PLAY_BACK_FAST, /*<! 加速回放 */
SDK_PLAY_BACK_SLOW, /*<! 减速回放 */
SDK_PLAY_BACK_SEEK_PERCENT, /*<! 回放定位百分比 */
SDK_PLAY_SET_TYPE, /*<! 回放智能定位*/
};
//按时间段查询
typedef struct SDK_SearchByTime
{
int nHighChannel; ///< 33~64录像通道号掩码
int nLowChannel; ///< 1~32录像通道号掩码
int nFileType; ///< 文件类型, 见SDK_File_Type
SDK_SYSTEM_TIME stBeginTime;///< 查询开始时间
SDK_SYSTEM_TIME stEndTime; ///< 查询结束时间
int iSync; ///< 是否需要同步
unsigned int nHighStreamType;///< 33~64录像的码流类型,二进制位为0代表主码流,1代表辅码流
unsigned int nLowStreamType;///< 1~32录像的码流类型,二进制位为0代表主码流,1代表辅码流
}SDK_SearchByTime;
//每个通道的录像信息
typedef struct SDK_SearchByTimeInfo
{
int iChannel; ///< 录像通道号
///< 录像记录用720个字节的5760位来表示一天中的1440分钟
///< 0000:无录像 0001:F_COMMON 0002:F_ALERT 0003:F_DYNAMIC 0004:F_CARD 0005:F_HAND
unsigned char cRecordBitMap[720];
}SDK_SearchByTimeInfo;
typedef struct SDK_SearchByTimeResult
{
int nInfoNum; ///< 通道的录像记录信息个数
SDK_SearchByTimeInfo ByTimeInfo[NET_MAX_CHANNUM]; ///< 通道的录像记录信息
}SDK_SearchByTimeResult;
//报警信息
typedef struct SDK_ALARM_INFO
{
int nChannel;
int iEvent; //报警事件码:见枚举SDK_EventCodeTypes
int iStatus;//0:报警开始,1:报警结束
SDK_SYSTEM_TIME SysTime;
char pExtInfo[128]; //附加信息,发送者和接收者对各种报警类型进行格式约定
}SDK_AlarmInfo;
/// 日志查询条件
typedef struct SDK_LogSearchCondition
{
int nType; ///< 日志类型
int iLogPosition; ///< 从上次查询的结束时的日志指针
SDK_SYSTEM_TIME stBeginTime; ///< 查询日志开始时间
SDK_SYSTEM_TIME stEndTime; ///< 查询日志结束时间
}SDK_LogSearchCondition;
typedef struct SDK_LogItem
{
char sType[24]; ///< 日志类型
char sUser[32]; ///< 日志用户
char sData[68]; ///< 日志数据
SDK_SYSTEM_TIME stLogTime; ///< 日志时间
int iLogPosition; ///< 从上次查询的结束时的日志指针
}SDK_LogItem;
//日志返回信息
typedef struct SDK_LogList
{
int iNumLog;
SDK_LogItem Logs[NET_MAX_RETURNED_LOGLIST];
}SDK_LogList;
/// 语音对讲格式
typedef struct SDK_AudioInFormatConfigAll
{
SDK_AudioInFormatConfig vAudioInFormatConfig[SDK_AUDIO_ENCODE_TYPES_NR];
}SDK_AudioInFormatConfigAll;
/// 告警状态
typedef struct SDK_DVR_ALARMSTATE
{
char iVideoMotion[NET_MAX_MSK_SIZE]; ///< 移动侦测状态,用掩码表示通道号,byte0代表通道一,以此类推 1: 有告警 0: 无告警
char iVideoBlind[NET_MAX_MSK_SIZE]; ///< 视频遮挡状态,用掩码表示通道号,byte0代表通道一,以此类推 1: 有告警 0: 无告警
char iVideoLoss[NET_MAX_MSK_SIZE]; ///< 视频丢失状态,用掩码表示通道号,byte0代表通道一,以此类推 1: 有告警 0: 无告警
char iAlarmIn[NET_MAX_MSK_SIZE]; ///< 告警输入状态,用掩码表示通道号,byte0代表通道一,以此类推 1: 有告警 0: 无告警
char iAlarmOut[NET_MAX_MSK_SIZE]; ///< 告警输出状态,用掩码表示通道号,byte0代表通道一,以此类推 1: 有告警 0: 无告警
}SDK_DVR_ALARMSTATE;
// 通道状态
typedef struct SDK_DVR_CHANNELSTATE
{
bool bRecord; ///< 是否正在录像
int iBitrate; ///< 当前码率
}SDK_DVR_CHANNELSTATE;
// DVR工作状态
typedef struct SDK_DVR_WORKSTATE
{
SDK_DVR_CHANNELSTATE vChnState[NET_MAX_CHANNUM];
SDK_DVR_ALARMSTATE vAlarmState;
}SDK_DVR_WORKSTATE;
/// 按键值, 不能随便更改
enum SDK_NetKeyBoardValue
{
SDK_NET_KEY_0, SDK_NET_KEY_1, SDK_NET_KEY_2, SDK_NET_KEY_3, SDK_NET_KEY_4, SDK_NET_KEY_5, SDK_NET_KEY_6, SDK_NET_KEY_7, SDK_NET_KEY_8, SDK_NET_KEY_9,
SDK_NET_KEY_10, SDK_NET_KEY_11, SDK_NET_KEY_12, SDK_NET_KEY_13, SDK_NET_KEY_14, SDK_NET_KEY_15, SDK_NET_KEY_16, SDK_NET_KEY_10PLUS,SDK_NET_KEY_DIGIT,
SDK_NET_KEY_UP = 20, // 上或者云台向上
SDK_NET_KEY_DOWN, // 下或者云台向下
SDK_NET_KEY_LEFT, // 左或者云台向左
SDK_NET_KEY_RIGHT, // 右或者云台向右
SDK_NET_KEY_SHIFT,
SDK_NET_KEY_PGUP, // 上一页
SDK_NET_KEY_PGDN, // 下一页
SDK_NET_KEY_RET, // 确认
SDK_NET_KEY_ESC, // 取消或退出
SDK_NET_KEY_FUNC, // 切换输入法
SDK_NET_KEY_PLAY, // 播放/暂停
SDK_NET_KEY_BACK, // 倒放
SDK_NET_KEY_STOP, // 停止
SDK_NET_KEY_FAST, // 快放
SDK_NET_KEY_SLOW, // 慢放
SDK_NET_KEY_NEXT, // 下一个文件
SDK_NET_KEY_PREV, // 上一个文件
SDK_NET_KEY_PAUSE, // 暂停
SDK_NET_KEY_FUNC_A, // 功能键A
SDK_NET_KEY_FUNC_B, // 功能键B(在消费类产品上,A和B的功能会根据设备的不同而有不同的表现)
SDK_NET_KEY_REC = 40, // 录像设置
SDK_NET_KEY_SEARCH, // 录像查询
SDK_NET_KEY_INFO, // 系统信息
SDK_NET_KEY_ALARM, // 告警输出
SDK_NET_KEY_ADDR, // 遥控器地址设置
SDK_NET_KEY_BACKUP, // 备份
SDK_NET_KEY_SPLIT, // 画面分割模式切换,每按一次切换到下一个风格模式
SDK_NET_KEY_SPLIT1, // 单画面
SDK_NET_KEY_SPLIT4, // 四画面
SDK_NET_KEY_SPLIT8, // 八画面
SDK_NET_KEY_SPLIT9, // 九画面
SDK_NET_KEY_SPLIT16, // 16画面
SDK_NET_KEY_SHUT, // 关机
SDK_NET_KEY_MENU, // 菜单
SDK_NET_KEY_SPLIT25, // 25画面
SDK_NET_KEY_SPLIT36, // 36画面
SDK_NET_KEY_PTZ = 60, // 进入云台控制模式
SDK_NET_KEY_TELE, // 变倍减
SDK_NET_KEY_WIDE, // 变倍加
SDK_NET_KEY_IRIS_SMALL, // 光圈增
SDK_NET_KEY_IRIS_LARGE, // 光圈减
SDK_NET_KEY_FOCUS_NEAR, // 聚焦远
SDK_NET_KEY_FOCUS_FAR, // 聚焦近
SDK_NET_KEY_BRUSH, // 雨刷
SDK_NET_KEY_LIGHT, // 灯光
SDK_NET_KEY_SPRESET, // 设置预置点
SDK_NET_KEY_GPRESET, // 转至预置点
SDK_NET_KEY_DPRESET, // 清除预置点
SDK_NET_KEY_PATTERN, // 模式
SDK_NET_KEY_AUTOSCAN, // 自动扫描开始结束
SDK_NET_KEY_AUTOTOUR, // 自动巡航
SDK_NET_KEY_AUTOPAN, // 线扫开始/结束
};
/// 按键状态
enum SDK_NetKeyBoardState
{
SDK_NET_KEYBOARD_KEYDOWN, // 按键按下
SDK_NET_KEYBOARD_KEYUP, // 按键松开
};
typedef struct SDK_NetKeyBoardData
{
int iValue; //枚举SDK_NetKeyBoardValue
int iState; //枚举SDK_NetKeyBoardState
}SDK_NetKeyBoardData;
// 升级信息获取
typedef struct SDK_UpgradeInfo
{
char szSerial[64];
char szHardware[64];
char szVendor[64];
unsigned int uiLogoArea[2];
char szLogoPartType[64];
}SDK_UpgradeInfo;
/// 网络报警
typedef struct SDK_NetAlarmInfo
{
int iEvent; //目前未使用
int iState; //每bit表示一个通道,bit0:第一通道,0-无报警 1-有报警, 依次类推
}SDK_NetAlarmInfo;
typedef enum SERIAL_TYPE
{
RS232 = 0,
RS485 = 1,
}SERIAL_TYPE;
enum MEDIA_PACK_TYPE
{
FILE_HEAD = 0, // File header
VIDEO_I_FRAME = 1, // Video i frame
VIDEO_B_FRAME = 2, // Video b frame
VIDEO_P_FRAME = 3, // Video p-frame
VIDEO_BP_FRAME = 4, // Video bp frame
VIDEO_BBP_FRAME = 5, // Video b frame b frame p frame
VIDEO_J_FRAME = 6, // Picture frames
AUDIO_PACKET = 10, // Audio package
};
enum SDK_ENCODE_TYPE
{
SDK_StreamTypeEmpty = 0,
SDK_StreamTypeH264 = 2,
SDK_StreamTypeJpeg = 3,
SDK_StreamTypeGeneral = 4,
SDK_StreamTypeH265 = 5,
SDK_StreamTypePCM8 = 7,
SDK_StreamTypeStd = 8
};
typedef struct
{
int nPacketType; // 包类型,见MEDIA_PACK_TYPE
char* pPacketBuffer; // Buffer area address
unsigned int dwPacketSize; // Package size
unsigned int nEncodeType; ///数据格式类型见SDK_ENCODE_TYPE
// Absolute time mark
int nYear; // Time scale: year
int nMonth; // Time scale: month
int nDay; // Time scale: day
int nHour; // Time scale: time
int nMinute; // Time scale: minute
int nSecond; // Timescale: seconds
unsigned int dwTimeStamp; // Low relative to the time scale, unit in milliseconds
unsigned int dwTimeStampHigh; //相对时标高位,单位为毫秒
unsigned int dwFrameNum; //Frame number
unsigned int dwFrameRate; //Frame rate
unsigned short uWidth; //Image Width
unsigned short uHeight; //Image height
unsigned int Reserved[6]; //reserve
} PACKET_INFO_EX;
typedef struct SDK_OEMInfo
{
int nOEMID; //OEM Eid
char sCompanyName[NET_MAX_USERNAME_LENGTH]; //公司名
char sTel[NET_MAX_USERNAME_LENGTH]; //电话
char sAddr[NET_MAX_USERNAME_LENGTH]; //地址
}SDK_OEMInfo;
typedef struct __TransComChannel//透明串口
{
SERIAL_TYPE TransComType; //Serial type
unsigned int baudrate;
unsigned int databits;
unsigned int stopbits;
unsigned int parity;
} TransComChannel;
typedef enum SDK_State_Type
{
DEV_STATE_DDNS=0,
}SDK_State_Type;
//摄象机参数.....
//曝光配置
typedef struct SDK_ExposureCfg
{
int level; //曝光等级
unsigned int leastTime; //自动曝光时间下限或手动曝光时间,单位微秒
unsigned int mostTime; //自动曝光时间上限,单位微秒
}SDK_ExposureCfg;
//增益配置
typedef struct SDK_GainCfg
{
int gain; //自动增益上限(自动增益启用)或固定增益值
int autoGain;//自动增益是否启用,0:不开启 1:开启
}SDK_GainCfg;
//网络摄像机配置
typedef struct SDK_CameraParam
{
unsigned int whiteBalance; //白平衡
unsigned int dayNightColor; //日夜模式,取值有彩色、自动切换和黑白
int elecLevel; //参考电平值
unsigned int apertureMode; //自动光圈模式
unsigned int BLCMode; //背光补偿模式
SDK_ExposureCfg exposureConfig; //曝光配置
SDK_GainCfg gainConfig; //增益配置
unsigned int PictureFlip; //图片上下翻转
unsigned int PictureMirror; //图片左右翻转(镜像)
unsigned int RejectFlicker; //日光灯防闪功能
unsigned int EsShutter; //电子慢快门功能
int ircut_mode; //IR-CUT切换 0 = 红外灯同步切换 1 = 自动切换
int dnc_thr; //日夜转换阈值
int ae_sensitivity; //ae灵敏度配置
int Day_nfLevel; //noise filter 等级,0-5,0不滤波,1-5 值越大滤波效果越明显
int Night_nfLevel;
int Ircut_swap; //ircut 正常序= 0 反序= 1
int high_light; //强光抑制功能 0~255,默认是16
}SDK_CameraParam;
//所有摄象机配置
typedef struct SDK_AllCameraParam
{
SDK_CameraParam vCameraParamAll[NET_MAX_CHANNUM]; //所有的通道
}SDK_AllCameraParam;
//曝光能力级
typedef struct SDK_CameraAbility
{
int count; //支持曝光速度数量
unsigned int speeds[CAMERAPARA_MAXNUM]; //曝光速度
int status; //工作状态 >= 0 正常 < 0 异常
int elecLevel; //参考电平值
int luminance; //平均亮度
char pVersion[64]; //xm 2a版本
char isFishLens; //是否是鱼眼镜头,如果是,则需要app和PC端做图像校正
char isSupportIntellDoubleLight; //是否支持智能双光
char isSupportPreventOverExpo; //是否支持防过曝
char resv1[1]; //保留,如果增加char型的成员先用这里的
char reserve[28];//保留,如果增加int型的成员用这里
}SDK_CameraAbility;
//本地播放控制
enum SDK_LoalPlayAction
{
SDK_Local_PLAY_PAUSE, /*<! 暂停播放 */
SDK_Local_PLAY_CONTINUE, /*<! 继续正常播放 */
SDK_Local_PLAY_FAST, /*<! 加速播放 */
SDK_Local_PLAY_SLOW, /*<! 减速播放 */
};
//短信配置
typedef struct SDK_NetShortMsgCfg
{
bool bEnable; //发送手机短信的功能是否启用
char pDesPhoneNum[NET_MAX_RECIVE_MSG_PHONE_COUNT][16];
int sendTimes; //需要向每个手机发送多少次短信
}SDK_NetShortMsgCfg;
//手机彩信配置
typedef struct SDK_NetMultimediaMsgCfg
{
bool bEnable; // 发送手机彩信的功能是否启用
char pDesPhoneNum[NET_MAX_RECIVE_MSG_PHONE_COUNT][16]; //接收彩信的手机号,现支持3个手机号
char pGateWayDomain[40]; // 网关地址,域名或IP
int gateWayPort; // 网关端口
char pMmscDomain[40]; // 彩信服务器地址,IP或域名
int mmscPort; // 彩信服务器端口号
}SDK_NetMultimediaMsgCfg;
typedef struct SDK_DASSerInfo
{
bool enable;
char serAddr[NET_NAME_PASSWORD_LEN];
int port;
char userName[NET_NAME_PASSWORD_LEN];
char passwd[NET_NAME_PASSWORD_LEN];
char devID[NET_NAME_PASSWORD_LEN];
}SDK_DASSerInfo;
typedef enum UploadDataType //上传数据类型
{
VEHICLE=0, //车载信息
SDK_RECORD_STATE, //录像状态
SDK_DIGITCHN_STATE, //数字通道连接状态
SDK_TITLE_INFO, //通道标题
SDK_FUNCTION_STATE, //功能状态例如运动相机录像,延时拍等
SDK_ELECT_STATE, //电量
SDK_MUSICBOX_STATE, //wifi音乐盒
SDK_ADD_433DEV_RESULT, //433报警配对数据
}UploadDataType;
//车载相关************************************************************************
//车辆状态
enum SDK_CAR_STATUS_TYPE
{
SDK_CAR_WORKING, //是否在运行
SDK_CAR_LIGHT_LEFT_TURN, //左转灯是否点亮
SDK_CAR_LIGHT_RIGHT_TURN, //右转灯是否点亮
SDK_CAR_DOOR_LEFT_FRONT, //左前门是否打开
SDK_CAR_DOOR_RIGHT_FRONT, //右前门是否打开
SDK_CAR_DOOR_LEFT_BACK, //左后门是否打开
SDK_CAR_DOOR_RIGHT_BACK, //右后门是否打开
SDK_CAR_DOOR_BACK, //后门是否打开
SDK_CAR_BRAKE, //是否踩刹车
SDK_CAR_URGENCY_ALARM, //紧急报警
SDK_CAR_STATUS_NR, //状态种类数目
};
//外部输入类型
enum SDK_IO_INPUT_TYPE
{
SDK_LOCAL_ALARM_INPUT,//本地报警输入
SDK_RS232_INPUT, //通过232串口输入
SDK_RS485_INPUT, //通过485串口输入
};
//外部信息输入与车辆状态的对应关系
typedef struct SDK_CarStatusExchange
{
int statusType; //哪一种车辆状态,比如左转灯
bool bExist; //是否有该种状态的信息输入,根据车辆的实际情况进行设置
bool bEnable; //是否检测该种状态
int inputType; //该种状态对应的信息输入类型,从IO_INPUT_TYPE枚举的值中取
int addr; //地址,比如是本地报警输入口一对应0,输入口二对应1
int sensorType; //常开(NO)或常闭(NC),当inputType是本地报警输入时有效
}SDK_CarStatusExchange;
typedef struct SDK_CarStatusExchangeAll
{
SDK_CarStatusExchange exchangeAll[16];
}SDK_CarStatusExchangeAll;
typedef struct SDK_CarStatusNum
{
int iCarStatusNum;
}SDK_CarStatusNum;
typedef struct SDK_CarDelayTimeConfig
{
bool bStartDelay;
bool bCloseDelay;
int timeStartDelay; //单位:分钟
int timeCloseDelay; //单位:分钟
}SDK_CarDelayTimeConfig;
enum SDK_network_media {
SDK_NM_WIRED = 0, //有线网卡
SDK_NM_WLAN, //Wifi
SDK_NM_3G, //3G网卡
SDK_NM_NR, //种类数
};
//网络连接优先级
typedef struct SDK_tagNetLinkOrder
{
int netType; //取值是network_media类型的
int netOrder; //数字越小,优先级越高,0是最高优先级
}SDK_NetLinkOrder;
//网络优先级
typedef struct SDK_NetOrderConfig
{
bool bEnable; //是否设置网络优先级
int netCount; //网络类型数目
SDK_NetLinkOrder pNetOrder[SDK_NM_NR]; //网络优先级
SDK_NetLinkOrder pReserve[7-SDK_NM_NR]; //给新的网络类型预留
}SDK_NetOrderConfig;
///网络优先级能力
typedef struct SDK_NetOrderFunction
{
bool bNetOrder;
}SDK_NetOrderFunction;
#define MAX_CAR_INFOR 24
/// 车载牌号
struct SDK_CarPlates
{
char sPlateName[MAX_CAR_INFOR];
};
enum NET_ISP
{
ISP_AUTO, //自动选择
ISP_TELCOM, //电信
ISP_UNIONCOM, //联通
ISP_CNC, //网通
ISP_MOBILE, //移动,铁通
ISP_USER, //自定义
};
//网络平台信息设置
typedef struct SDK_LocalSdkNetPlatformConfig
{
int Enable;
int nISP; ///参见NET_ISP
char sServerName[32];
char ID[32];
char sUserName[32];
char sPassword[32];
CONFIG_IPAddress HostIP; ///< host ip
int port;
}SDK_LOCALSDK_NET_PLATFORM_CONFIG;
//GPS校时配置
typedef struct SDK_GPSTimingConfig
{
bool bEnable; // 是否启用
int timeChange; // 相对于UTC时间需要改变多少,单位:秒
int updatePeriod; // 更新周期 单位:分钟
}SDK_GPSTimingConfig;
//神眼接警中心系统
typedef struct SDK_GodEyeConfig
{
bool bEnable;
char MainSeverName[NET_NAME_PASSWORD_LEN]; //主域名
int MainPort; //主端口
char ExSeverName[NET_NAME_PASSWORD_LEN]; //备用域名
int ExPort; //备用端口
}SDK_GodEyeConfig;
enum SDK_DigManagerShowStatus
{
SDK_DM_SHOW_NONE,
SDK_DM_SHOW_ALL,
};
//数字通道显示状态
typedef struct SDK_DigitalManagerShow
{
int nDigitalManagerShowSta;
}SDK_DigitalManagerShow;
//NAT传输,MTU值
typedef struct SDK_NatConfig
{
bool bEnable;
#if 0
bool CloudpushEnable;
#endif
int nMTU; // 范围 (100,1400)
char serverAddr[64]; //云服务的域名或者IP地址。
int serverPort; //云服务的端口;
CONFIG_IPAddress dnsSvr1; //云服务的DNS服务器地址
CONFIG_IPAddress dnsSvr2;
#if 0
char pResv[16]; //reserve
#endif
}SDK_NatConfig;
typedef enum SubConnType
{
conn_realTimePlay=1,
conn_talk,
conn_playback,
conn_push
}SubConnType;
//*** */向设备注册
enum SocketStyle
{
TCPSOCKET=0,
UDPSOCKET,
PLUGLANSOCKET=4, //插座局域网登陆
PLUGOUTERSOCKET, //插座外网登陆
P2P_TUTKSOCKET, //Tutu p2p
SOCKETNR
};
enum SDK_NatStatusType
{
SDK_NAT_STATUS_DISENABLE, //未开启
SDK_NAT_STATUS_PROBING, //正在探测DNS
SDK_NAT_STATUS_CONNECTING, //正在连接服务器
SDK_NAT_STATUS_CONNECTED, //连接成功
};
//nat状态信息
typedef struct SDK_NatStatusInfo
{
int iNatStatus;
char NatInfoCode[256];//增加内容,加大
}SDK_NatStatusInfo;
/// 数字水印配置
typedef struct SDK_WaterMarkConfig
{
bool bEnable; // 开启水印
char sKey[8];
char sUserData[16];
}SDK_WaterMarkConfig;
typedef struct SDK_WaterMarkConfigAll
{
SDK_WaterMarkConfig vWaterMarkConfigAll[NET_MAX_CHANNUM];
}SDK_WaterMarkConfigAll;
///编码器静态参数
typedef struct SDK_EncodeStaticParam
{
int profile;
int level;
int reserved1[4];
}SDK_EncodeStaticParam;
typedef struct SDK_EncodeStaticParamAll
{
SDK_EncodeStaticParam EncodeStaticParamAll[NET_MAX_CHANNUM];
}SDK_EncodeStaticParamAll;
enum
{
sdk_maxCPCDataItem = 2048,
sdk_maxCPCDataReturn = 512,
sdk_itemtotalLength = 96, //2位通道号,20位开始时间,20位结束时间,和两个13位的数据,加冗余
sdk_maxpack=4,// Sdk max cpc data item/sdk max cpc data return
};
typedef struct SDK_CPCDataItem //人数统计项结构体
{
int channel; //对应的通道号
SDK_SYSTEM_TIME startTime; //开始时间
SDK_SYSTEM_TIME endTime; //结束时间
int inNum; //进入人数
int outNum; //离开人数
}SDK_CPCDataItem;
typedef struct SDK_CPCData
{
int nItemNum;
SDK_CPCDataItem CPCData[sdk_maxCPCDataReturn];
}SDK_CPCData;
typedef struct SDK_CPCDataAll
{
int nCount;
SDK_CPCData nCpcData[sdk_maxpack] ;
}SDK_CPCDataAll;
/// 录像存储设备类型,以下类型的一种或者多种
typedef struct SDK_RecordStorageType
{
bool SATA_as;
bool USB_as;
bool SD_as;
bool DVD_as;
}SDK_RecordStorageType;
//VPN结构体
typedef struct SDK_VPNConfig
{
bool Enable; ///< 是否开启
CONFIG_IPAddress ServiceIp; ///< 服务器IP地址
char UserName[NET_NAME_PASSWORD_LEN]; ///< 用户名
char Password[NET_NAME_PASSWORD_LEN]; ///< 密码
CONFIG_IPAddress addr; ///< 拨号后获得的IP地址
char ServerName[NET_NAME_PASSWORD_LEN]; ///< openvpn服务器地址
int port;
}SDK_VPNConfig;
//当前VGA分辨率
typedef struct SDK_VGAresolution
{
int nHeight;
int nWidth;
}SDK_VGAresolution;
//支持VGA分辨率列表
typedef struct SDK_VGAResolutionAbility
{
int vVGANum;
char vVGAList[VGA_MAXNUM][VGA_NAME_LENGTH];
}SDK_VGAResolutionAbility;
//设备列表(设备搜索的)
typedef struct SDK_NetDevList
{
int vNetDevNum;
SDK_CONFIG_NET_COMMON_V2 vNetDevList[DEV_LIST_SHOW];
}SDK_NetDevList;
//温州凯能平台
/***用户信息***/
typedef struct SDK_CONFIG_KAINENG_USERINFO
{
char szUserName[16]; //用户姓名:5个汉字或十个字母;
char szUserAddr[128]; //用户地址:30个汉字或60个字母;
char szUserAttr[16]; //用户性质:5个汉字或十个字母;
char szBelongUnit[64]; //归管单位:15个汉字或30个字母;
char szBelongUnitPhone[16]; //归管单位电话:14位数字;分机用"-" 隔离符;
char szPoliceUnit[64]; //出警单位:15个汉字或30个字母;
char szPoliceUnitAddr[128]; //出警单位地址:30个汉字或60个字母;
char szPoliceUnitPhone[16]; //出警单位电话:14位数字;分机用"-"隔离符;
char szPolicePhone[4][16];
char szPolOrCenPhone[2][16]; //警联/中心电话1、2:14位数字;分机用"-" 隔离符;
char szFTP[64]; //FTP:50个字符;
char szEMail[64]; //E-Mail: 50个字符;
CONFIG_IPAddress PoliceIP; //接警中心IP地址
int nHttpPort; //接警中心IP端口
}SDK_CONFIG_KAINENG_USERINFO;
/***设备信息***/
//闲置布防类型枚举
typedef enum SDK_GuardType
{
SDK_FORBID = 0, //禁止
SDK_TEN_MIN, //十分钟
SDK_THIRTY_MIN, //三十分钟
SDK_SIXTY_MIN, //六十分钟
SDK_MAX,
}SDK_GUARDTYEP;
typedef struct SDK_CONFIG_KAINENG_DEVINFO
{
char ProbeNum1; //条件布防:两个下拉框,每个下拉框从 1号到10号探测器选择 ;默认两个为 <1号探测器>
char ProbeNum2; //条件布防:两个下拉框,每个下拉框从 1号到10号探测器选择 ;默认两个为 <1号探测器>
char nProbeType; //条件:下拉框 可选择3种为 [禁止] [AND] [OR] 默认为 [禁止]
char nGuardType; //闲置布防, 参照GUARDTYEP
int AlarmTime; //警笛开启时间:三位数字从000-999 默认为:180
int nGuardArea; //有线防区类型:八位数字,每位最小0最大3,即00000000 到33333333; 默认:00000000;
char szRemConAddr[4][4]; //遥控器1-4号地址 :八位16进制字符允许空(即0-9 A-F),默认为空;
char szLinDevAddr[6][4]; //联运设备地1-6地址:八位16进制字符允许空(即0-9 A-F),默认为空;
char szProbeAddr[10][4]; //探测器1-10号地址:八位16进制字符允许空(即0-9 A-F),默认为空;
//定时布撤防
char szGuardTime[3][9]; //定时布撤防,每组都为char [8] 类型 即00 00 00 00,表达由开始时分到结束时分,不需要年月日期
}SDK_CONFIG_KAINENG_DEVINFO;
/***联动设置***/
//联动动作枚举
typedef enum SDK_KNAlarmLink
{
SDK_LINK_EMPTY = 0,
SDK_LINK_SWITH,
SDK_LINK_10S,
SDK_LINK_30S,
SDK_LINK_60S,
SDK_LINK_200S,
SDK_LINK_600S,
SDK_LINK_METHOD_1,
SDK_LINK_METHOD_2,
SDK_LINK_MAX_1,
}SDK_KNALARMLINK;
typedef struct SDK_CONFIG_KAINENG_LINKINFO
{
char eLink[10][7]; //联动设置,取值为联动动作枚举
}SDK_CONFIG_KAINENG_LINKINFO;
//凯能定制,3个界面信息全在这里。
typedef struct SDK_CONFIG_KAINENG_INFO
{
SDK_CONFIG_KAINENG_USERINFO UserInfo;
SDK_CONFIG_KAINENG_DEVINFO DevInfo;
SDK_CONFIG_KAINENG_LINKINFO LinkInfo;
}SDK_CONFIG_KAINENG_INFO;
//搜索设备协议
typedef enum SDK_TransferProtocol_V2
{
SDK_TRANSFER_PROTOCOL_NETIP,
SDK_TRANSFER_PROTOCOL_ONVIF,
SDK_TRANSFER_PROTOCOL_MAC,
SDK_TRANSFER_PROTOCOL_NAT,
SDK_TRANSFER_PROTOCOL_DAHUA,
SDK_TRANSFER_PROTOCOL_RTSP,
SDK_TRANSFER_PROTOCOL_NETIPV6,
SDK_TRANSFER_PROTOCOL_NR_V2,
SDK_TRANSFER_PROTOCOL_ONVIF_DEFAULT = 128,
SDK_TRANSFER_PROTOCOL_ONVIF_NR_V2
}SDK_TransferProtocol_V2;
typedef struct SDK_EncodeStaticParamV2
{
int profile; //当前静态编码
int reserved1[4]; //保留字段
}SDK_EncodeStaticParamV2;
/*
== DVR静态编码能力集,现在3种
== 0 不支持 1 支持baseline 2 支持main profile 4 支持high profile
== 掩码操作
*/
typedef struct SDK_EncStaticParamAbility
{
unsigned int encStaticParam;
}SDK_EncStaticParamAbility;
//安徽创世C7平台配置
typedef struct SDK_C7PlatformConfig
{
char pServerAddr[64];//平台地址,IP地址或域名
int servPort; //平台端口
char pPUID[32]; //Trees
char pPassword[32]; //密码
char pStatus[64]; //接入状态,在LocalSDK中是可读可写的,其它地方是只读
char pResv[60]; //reserve
}SDK_C7PlatformConfig;
///网络键盘
typedef struct SDK_NetKeyboardConfig
{
bool Enable; //是否开启
char sTransProtocol[4]; //传输协议
int ListenPort; //监听端口
char sParserProtocol[32];
int deviceaddr; //设备地址
}SDK_NetKeyboardConfig;
////// 网络键盘协议
typedef struct SDK_NetKeyboardAbility
{
//每个协议最多由64个字符组成
int nTransPNum;
char vTransProtocol[32][NET_MAX_PTZ_PROTOCOL_LENGTH];
int nParserNum;
char vParserProtocol[32][NET_MAX_PTZ_PROTOCOL_LENGTH];
}SDK_NetKeyboardAbility;
//28181协议配置
typedef struct SDK_ASB_NET_VSP_CONFIG
{
bool bCsEnable; //使能标记
char szCsIP[64]; //服务器地址
short sCsPort; //服务器端口
short sUdpPort; //本地绑定udp端口
char szServerNo[64]; //服务器序列号
char szServerDn[64]; //服务器所在的域名称
char szDeviceNO[64]; //设备序列号
char szConnPass[64]; //设备接入密码
int iHsIntervalTime; //心跳间隔时间,单位是秒
int iRsAgedTime; //重新发送注册时间间隔,单位为秒
char Camreaid[NET_MAX_CHANNUM][64]; //设备中摄像头ID
int CamreaLevel[NET_MAX_CHANNUM]; //报警等级
char Alarmid[NET_MAX_CHANNUM][64]; //设备中摄像头ID
int AlarmLevel[NET_MAX_CHANNUM]; //报警等级
unsigned int uiAlarmStateGpinEnable; //外部报警使能
unsigned int uiAlarmStateLoseEnable; //视频丢失告警使能
unsigned int uiAlarmStateMotionEnable; //视频动态侦测告警使能
unsigned int uiAlarmStateBlindEnable; //屏幕遮挡告警使能
unsigned int uiAlarmStatePerformanceEnable; //系统异常告警使能
unsigned int uiAlarmStateConnectEnable; //用户连接告警使能
}SDK_ASB_NET_VSP_CONFIG;
//手机服务配置
typedef struct SDK_PMSConfig
{
bool Enable; ///< 是否开启
char servname[64];
int port;
char boxid[128];
char resume[24]; //reserve
}SDK_PMSConfig;
//屏幕提示信息
typedef struct SDK_OSDInfoConfig
{
SDK_VIDEO_WIDGET OSDInfoWidget;
char ppInfo[NET_MAX_LINE_PER_OSD_AREA][NET_CHANNEL_NAME_MAX_LEN];
}SDK_OSDInfoConfig ;
typedef enum SDK_wordEncType
{
SDK_wordEnc_GB2312, //汉字编码GB2312
SDK_wordEnc_Unicode, //万国码 Unicode
SDK_wordEnc_UTF8, //Utf 8
SDK_wordEnc_NR,
}SDK_wordEncType;
//所有通道的屏幕提示信息
typedef struct SDK_OSDInfoConfigAll
{
SDK_OSDInfoConfig vOSDInfoAll[NET_MAX_CHANNUM];
int strEnc;//编码格式,默认为UTF-8,不做任何处理;主要用于客户特殊需求,枚举参见SDK_wordEncType
}SDK_OSDInfoConfigAll;
//
typedef struct SDK_KaiCongAlarmConfig
{
bool Enable; ///< 是否开启
char ServerName[NET_NAME_PASSWORD_LEN]; ///< 服务名
int Port; ///< 端口号
char UserName[NET_NAME_PASSWORD_LEN]; ///< 用户名
char Password[NET_NAME_PASSWORD_LEN]; ///< 密码
}SDK_KaiCongAlarmConfig;
//
typedef struct SDK_VideoChannelManage
{
int nHVRCap;
int curMode;
bool bhide[MAX_HVR_CHNCAP_CHN];
SDK_CAPTURE_HVRCAPV2 HVRCap[MAX_HVR_CHNCAP_CHN];
}SDK_VideoChannelManage ;
//PTZ控制能力集
typedef struct SDK_PTZControlAbility
{
unsigned int nPTZPosition;
}SDK_PTZControlAbility;
typedef struct SDK_PositionPoint
{
int iPointStart_x;
int iPointStart_y;
int iPointEnd_x;
int iPointEnd_y;
}SDK_PositionPoint;
typedef struct SDK_XMHeartbeatConfig
{
bool bEnable; ///< 是否开启
int iInterval; ///< 保活间隔时间
char ServerName[NET_NAME_PASSWORD_LEN]; ///< 服务名
int Port; ///< 端口号
char UserName[NET_NAME_PASSWORD_LEN]; ///< 用户名
char Password[NET_NAME_PASSWORD_LEN]; ///< 密码
char resume[24];
}SDK_XMHeartbeatConfig;
typedef struct SDK_MonitorPlatformConfig
{
int Enable; ///< 是否开启
char servname[NET_NAME_PASSWORD_LEN];
int port;
char resume[24];
char agentid[128]; //客户端id,深广平台使用(以SSJC开头)
char type[128]; //
}SDK_MonitorPlatformConfig;
typedef enum SDK_IMG_TYPE
{
SDK_IMG_TYPE_DEFAULT,
SDK_IMG_TYPE_1,
SDK_IMG_TYPE_2,
SDK_IMG_TYPE_NR,
}SDK_IMG_TYPE;
//网络摄像头扩展参数
typedef struct SDK_CameraParamEx
{
SDK_GainCfg broadTrends; //宽动态
int style; //enum SDK_IMG_TYPE
unsigned int exposureTime; //实际生效的曝光时间
int Dis ; //电子防抖设置 0:关闭 1:开启**/
int Ldc; //镜头畸变校正 0:关闭 1:开启**/
int AeMeansure; //测光模式校正 0:平均测光 1:中央测光**/
int LowLuxMode; //微光模式 mode:0 关闭 1开启 ==only imx291
int corridor_mode; //1:走廊模式 0:普通模式
int lightRestrainLevel; // 强光抑制功能0~255,默认16
int preventOverExpo; // 防过曝 0:关闭 1:开启
int res[55]; //冗余
}SDK_CameraParamEx;
// 摄像头所有扩展参数
typedef struct SDK_CameraParamExAll
{
SDK_CameraParamEx vCameraParamExAll[NET_MAX_CHANNUM];
}SDK_CameraParamExAll;
//网络服务定制平台通用配置,以后定制都用这个
typedef struct SDK_NetPlatformCommonCfg
{
int Enable;
int Port; ///< 端口号
char ServerName[NET_NAME_PASSWORD_LEN]; ///< 服务名
char ID[NET_NAME_PASSWORD_LEN];
char UserName[NET_NAME_PASSWORD_LEN]; ///< 用户名
char Password[NET_NAME_PASSWORD_LEN]; ///< 密码
char resume[128]; ///预留
}SDK_NetPlatformCommonCfg;
typedef enum SDK_INFO_NET_LINK_STATUS
{
SDK_INFO_NET_LINK_OK = 0,
SDK_INFO_NET_LINK_FAILED = 1,
SDK_INFO_NET_LINK_NO_DEVICE = 2,
SDK_INFO_NET_LINK_INVALID = 9,
}SDK_INFO_NET_LINK_STATUS;
typedef enum SDK_POSITIONING_DIRECTION
{
SDK_POS_DIRECTION_EAST = 'E',
SDK_POS_DIRECTION_WEST = 'W',
SDK_POS_DIRECTION_SOUTH = 'S',
SDK_POS_DIRECTION_NORTH = 'N'
}SDK_POSITIONING_DIRECTION;
typedef struct SDK_POSITIONING_POS//经纬度
{
int degree; //以(度/1000)为单位
char direction; //方位 取值如枚举值POSITIONING_DIRECTION所示
char res[3];
}SDK_POSITIONING_POS;
//GPS状态
typedef struct SDK_GPSStatusInfo
{
int positioningStatus; //定位状态,取值如枚举SDK_INFO_NET_LINK_STATUS所述
SDK_POSITIONING_POS longitudePos; //经度
SDK_POSITIONING_POS latitudePos; //纬度
char rev[12];
}SDK_GPSStatusInfo;
//wifi状态
typedef struct SDK_WifiStatusInfo
{
int connectStatus; //wifi连接状态 如枚举SDK_INFO_NET_LINK_STATUS所述
int strength; //信号强度
char rev[24];
}SDK_WifiStatusInfo;
//3G状态
typedef struct SDK_WirelessStatusInfo
{
int connectStatus; //3G连接状态 如枚举SDK_INFO_NET_LINK_STATUS所述
int strength; //信号强度
char rev[24];
}SDK_WirelessStatusInfo;
//主动注册状态
typedef struct SDK_DASStatusInfo
{
int connectStatus; //DAS连接状态 如枚举SDK_INFO_NET_LINK_STATUS所述
char rev[28];
}SDK_DASStatusInfo;
typedef struct SDK_RecordStorageInfo
{
unsigned int bStart; //是否录像标志位
SDK_SYSTEM_TIME beginTime; //录像开始时间
SDK_SYSTEM_TIME endTime; //录像结束时间
unsigned int storageCapacity; //硬盘总容量
unsigned int useCapacity; //使用容量
int res[16]; //冗余
}SDK_RecordStorageInfo;
/// 解码延时等级
typedef enum SDK_DecodeDeleyTypes
{
SDK_DecodeDeley_0 = 0,
SDK_DecodeDeley_1,
SDK_DecodeDeley_2,
SDK_DecodeDeley_3,
SDK_DecodeDeley_4,
SDK_DecodeDeley_5,
SDK_DecodeDeley_6,
SDK_DecodeDeley_TYPE_NR,
}SDK_DecodeDeleyTypes;
typedef struct SDK_DecodeDeleyTimePrame
{
unsigned int DecodeDeleyTime[SDK_DecodeDeley_TYPE_NR];
}SDK_DecodeDeleyTimePrame;
// 数字通道
typedef struct SDK_DecodeParam
{
int iMaxDeleyTime[NET_MAX_CHANNUM]; // 最大的解码延时
}SDK_DecodeParam;
typedef struct SDK_RecordStateInfo
{
int nchannel;
int RecordState;
}SDK_RecordStateInfo;
//定制视频颜色结构
typedef struct SDK_VIDEOCOLOR_PARAM_EX
{
int BrightnessRef; ///< 亮度ref1,取值0-100。
int ContrastRef; ///< 对比度ref1,取值0-100。
int ContrastThRef; ///< 对比度阀值ref1,取值0-100。
int ContrastSlopeRef; ///< 对比度斜率ref1,取值0-100。
int DarkBlfRef;
int DarkNfRef;
int DarkEcPthRef;
int DarkEcMthRef;
int DarkDcRef;
int CbGain; ///high low middle
int CrGain; ///higg low middle
int reserved; ///reserve
}SDK_VIDEOCOLOR_PARAM_EX;
typedef struct SDK_VIDEOCOLOR_PARAM_CUSTOM
{
SDK_VIDEOCOLOR_PARAM_EX VideoColor[3];
int Saturation; ///< 饱和度,取值0-100。
int Gain; ///< 增益,取值0-100。bit7置位表示自动增益,其他位被忽略。
int Acutance; ///< 锐度,取值0-100
int AeWight; //背光补偿
}SDK_VIDEOCOLOR_PARAM_CUSTOM;
typedef enum SDK_FileControlType
{
SDK_FILE_DEL, //删除文件
SDK_FILE_DIR_DEL, //删除文件夹
SDK_FILE_DIR_CLEAR, //清空文件夹
SDK_RUNTIME_CLEAR, //清除运行时间
SDK_FILE_NR,
}SDK_FileControlType;
typedef struct SDK_NetFileControl
{
int iAction; //enum FileControlType
char strfile[256];
}SDK_NetFileControl;
typedef enum SDK_DecChnStateType
{
SDK_DEC_STA_NONE, //无用
SDK_DEC_STA_NOCONFIG, //未配置
SDK_DEC_STA_NOLOGIN, //未登陆
SDK_DEC_STA_NOCONNECT, //未连接
SDK_DEC_STA_CONNECTED, //已连接
SDK_DEC_STA_LOGIN_FAILED, //登录失败
SDK_DEC_STA_OFFLINE, //前端设备不在线
}SDK_DecChnStateType;
typedef struct SDK_DigitStateInfo
{
int nchannel;
int DigitState; //Sdk dec chn state type
}SDK_DigitStateInfo;
typedef struct SDK_TitleNameInfo
{
int nchannel;
char titleName[256];
}SDK_TitleNameInfo;
typedef struct SDK_Add433DevResult
{
int nchannel;
int n433DevChn;
int AddRet;
char DevID[8];
}SDK_Add433DevResult;
typedef struct SDK_AbilityMask
{
unsigned int AbilityPram;
}SDK_AbilityMask;
typedef enum SDK_Music_Play_Action
{
SDK_MUSIC_ACTION_PLAY,
SDK_MUSIC_ACTION_STOP,
SDK_MUSIC_ACTION_PAUSE,
SDK_MUSIC_ACTION_CONTINUE
}SDK_Music_Play_Action;
typedef struct SDK_LocalMusicControl
{
int iAction; //参考SDK_Music_Play_Action
char sFileName[20];
}SDK_LocalMusicControl;
/// 音频文件列表信息
typedef struct SDK_MusicFileList
{
int iNumFiles; ///< 文件数量
char sFileName[8][20];
}SDK_MusicFileList;
typedef enum SDK_CAR_BOOT_TYPE
{
SDK_CAR_BOOT_TYPE_SPARK, //点火熄火开关机
SDK_CAR_BOOT_TYPE_TIMING, //定时开关机
SDK_CAR_BOOT_TYPE_NR,
}SDK_CAR_BOOT_TYPE;
//点火开关机延时配置
typedef struct SDK_CarSparkWork
{
int bootDelayMinute; //开机延时分钟数
int shutDelayMinute; //关机延时分钟数
char resv[24]; //reserve
}SDK_CarSparkWork;
//车载定时开关机配置
typedef struct SDK_CarTimingWork
{
SDK_TIMESECTION workSection1; //工作时间段1
SDK_TIMESECTION workSection2; //工作时间段2
char resv[32]; //reserve
}SDK_CarTimingWork;
typedef struct SDK_CarBootTypeConfig
{
int bootType; //如枚举 SDK_CAR_BOOT_TYPE 所述
SDK_CarSparkWork sparkWorkConfig; //点火开关机配置
SDK_CarTimingWork timingWorkConfig; //定时开关机时间段1
char resv[48];
}SDK_CarBootTypeConfig;
//单个IPC
typedef struct SDK_ALARM_IPCCONFIG
{
bool bEnable; ///< 报警输入开关
int iSensorType; ///< 传感器类型常开 or 常闭
SDK_EventHandler hEvent; ///< 报警联动
}SDK_ALARM_IPCCONFIG;
///< 所有数字通道的报警配置
typedef struct SDK_IPCAlarmConfigAll
{
SDK_ALARM_IPCCONFIG vAlarmConfigAll[NET_DECORDR_CH];
}SDK_IPCAlarmConfigAll;
//百度云
typedef struct SDK_BaiduCloudCfg
{
bool enable;
char APIKey[NET_NAME_TOKEN_LEN]; //应用API密钥
char SecretKey[NET_NAME_TOKEN_LEN]; //应用密钥
char AuthorizationCode[NET_NAME_TOKEN_LEN]; //授权码
char accessToken[NET_NAME_TOKEN_LEN]; //访问权限码
char refreshToken[NET_NAME_TOKEN_LEN]; //刷新权限码
char deviceID[NET_NAME_TOKEN_LEN]; //设备ID
char userCode[NET_NAME_TOKEN_LEN]; //用户授权码
char qrcodeUrl[NET_NAME_TOKEN_LEN]; //二维码
char streamID[NET_NAME_TOKEN_LEN]; //流ID
char describe[NET_NAME_TOKEN_LEN]; //设备名称
int state; //状态
SDK_SYSTEM_TIME refreshTime; //上次刷新Token时间
int channelMain[NET_MAX_CHANNUM]; //是否开启标记
int channelExtra[NET_MAX_CHANNUM]; //是否开启标记
int recordFileMode; //配置录像模式
int recordFileSize; //录像文件大小
int recordFileTime; //录像最长时间
char resume[128]; //预留
}SDK_BaiduCloudCfg;
//手机订阅数
typedef struct SDK_PhoneInfoNum
{
int nNum;
}SDK_PhoneInfoNum;
typedef struct SDK_LOGIN_CFG//修改前端ip登录用
{
char sUserName[NET_MAX_USER_LENGTH]; ///< 登陆名字
char sPassword[NET_MAX_USER_LENGTH]; ///< 登陆密码
int iEncryptType; ///< 密码加密方式 固定值 1
}SDK_LOGIN_CFG;
typedef struct SDK_IPSetCfg
{
int ch;
int devtype;
SDK_CONFIG_NET_COMMON netcfg;
SDK_LOGIN_CFG loginPram;
}SDK_IPSetCfg;
#define SDK_LONG_PATH_LEN 256 // 远程路径(挂载源)
#define SDK_SHORT_PATH_LEN 64 // 本地挂载点
#define SDK_FS_TYPE_LEN 8 //文件系统类型(eg: ext3)名字长度上限
#define SDK_USERNAME_LEN 32
#define SDK_PASSWD_LEN 32
#define SDK_MAX_NAS_NUM 8 //最多支持NAS个数
#define SDK_MAX_DEV_NUM 16 // 支持本地设备个数
#define SDK_MAX_PART_NUM 4 // 单个硬盘支持的分区数量上限
struct SDK_NAS_INFO // NAS信息
{
char mountSrc[SDK_LONG_PATH_LEN]; // 远程路径(挂载源)
char fsType[SDK_FS_TYPE_LEN];
char mountOn[SDK_SHORT_PATH_LEN]; // 本地挂载点
char username[SDK_USERNAME_LEN];
char password[SDK_PASSWD_LEN];
unsigned int DirType; //如枚举IStorageDirectory::DIR_TYPE描述
};
typedef struct SDK_NAS_LIST // NAS(samba, nfs)列表
{
unsigned int count;
SDK_NAS_INFO nasInfo[SDK_MAX_NAS_NUM];
}SDK_NAS_LIST;
//二维
typedef struct SDK_DimenCode
{
int size;
unsigned char code[3920];// 177*177/32*4=3920,局部变量
}SDK_DimenCode;
typedef struct SDK_DimenCodeAll
{
SDK_DimenCode sn;
SDK_DimenCode appIOS;
SDK_DimenCode appAndroid;
SDK_DimenCode otherInfo; //客户自定义信息
}SDK_DimenCodeAll;
//中国电信手机看店平台
typedef struct SDK_MobileWatchCfg
{
int Enable;
char DevID[NET_NAME_ID_LEN]; // 设备编码
char DevKey[NET_NAME_ID_LEN]; // 设备验证码
char ManufacturerNo[NET_NAME_ID_LEN]; // 厂商编号
char Mode[NET_NAME_ID_LEN]; // 设备型号
char GroupAddr[NET_NAME_URL_LEN]; // 集团平台地址
char ProvinceAddr[NET_NAME_URL_LEN]; // 省平台地址
char NatIP[NET_NAME_ID_LEN]; // 设备主服务器接入地址
int NatPort; // 设备主服务器接入端口
char BackupNatIP[NET_NAME_ID_LEN]; // 设备备用服务器接入地址
int BackupNatPort; // 设备备用服务器接入端口
char TurnIP[NET_NAME_ID_LEN]; // TurnServer服务器地址
int TurnPort; // TurnServer服务器端口
char BackupTurnIP[NET_NAME_ID_LEN]; // TurnServer备份服务器地址
int BackupTurnPort; // TurnServer备份服务器端口
char FtpIP[NET_NAME_ID_LEN]; // 图片上传FTP服务器地址
int FtpPort; // 图片上传FTP服务器端口
char FtpAccount[NET_NAME_ID_LEN]; // 图片上传FTP服务器帐号
char FtpPassword[NET_NAME_ID_LEN]; // 图片上传FTP服务器密码
char resume[NET_NAME_URL_LEN]; // 预留
}SDK_MobileWatchCfg;
typedef struct SDK_BrowserLanguageType
{
int type;
}SDK_BrowserLanguageType;
typedef struct SDK_TimeZone
{
int minuteswest; //跟UTC时间的差值,单位分钟,可以为负
int FistFlag; //用于保证第一次使用的时候时间不变
}SDK_TimeZone;
typedef enum SDK_TimeSynTypes
{
SDK_TST_OFF = 0,
SDK_TST_TIME_UTC,
SDK_TST_TIME_LOCAL,
SDK_TST_TIME_ALL,
SDK_TST_NR,
}SDK_TimeSynTypes;
// 数字通道时间同步
typedef struct SDK_TimeSynParam
{
int iTimeModel[NET_MAX_CHANNUM]; //参考SDK_TimeSynTypes
}SDK_TimeSynParam;
typedef struct SDK_CustomizeOEMInfo
{
unsigned int typeMask;//类型: BITMSK(BURN_OEM_ID),BITMSK(BURN_OEM_PRODUCT),BITMSK(BURN_OEM_SERIAL)
unsigned int oemID;
unsigned int oemProduct;
unsigned int oemSerial;
}SDK_CustomizeOEMInfo;
typedef struct SDK_IFrameRange
{
int main_min;
int main_max;
int sub_min;
int sub_max;
}SDK_IFrameRange;
typedef struct SDK_DigitDevInfo
{
bool enable; //配置是否可用,本地设备使用
int nCapture; //模拟通道数
int nAudio; //音频通道数
int videoFormat; //视频制式
CONFIG_EncodeAbility ability; //编码能力
SDK_IFrameRange iGOPRange; //主辅码流的I帧间隔范围
}SDK_DigitDevInfo;
typedef struct SDK_EncodeChDisplay
{
char displayChanelMask[NET_MAX_MSK_SIZE]; //IE显示的编码配置通道号掩码
}SDK_EncodeChDisplay;
//点间巡航
typedef struct SDK_TourState
{
bool bRunning;
int lineID; //点间巡航线路编号
}SDK_TourState;
//巡迹
typedef struct SDK_PatternState
{
bool bRunning;
int lineID; //巡迹线路编号 (未使用)
}SDK_PatternState;
//线扫
typedef struct SDK_ScanState
{
bool bRunning;
int lineID; //线扫线路编号 (未使用)
}SDK_ScanState;
//水平旋转
typedef struct SDK_PanonState
{
bool bRunning;
int lineID; //水平旋转线路编号 (未使用)
}SDK_PanonState;
//开机转到指定预置点
typedef struct SDK_PresetState
{
bool bEnable;
int iPresetID;
}SDK_PresetState;
//断电前位置
typedef struct SDK_PoweroffState
{
bool bEnable;
int iPresetID;
}SDK_PoweroffState;
//一个通道的云台操作状态
typedef struct SDK_PtzState
{
SDK_TourState tourState;
SDK_PatternState patternState;
SDK_ScanState scanState;
SDK_PanonState panonState;
SDK_PresetState presetState;
SDK_PoweroffState poweroffState;
}SDK_PtzState;
//重启后恢复之前的云台操作状态
typedef struct SDK_ResumePtzState
{
bool bEnable; //是否启用设备重启后恢复云台状态功能
SDK_PtzState ptzStateAll[NET_MAX_CHANNUM];
}SDK_ResumePtzState;
/// 速度报警类型
typedef enum SDK_SpeedAlarmTypes
{
SDK_SPEED_ALARM_HIGH, // 高速报警
SDK_SPEED_ALARM_LOW, // 低速报警
SDK_SPEED_ALARM_NR
}SDK_SpeedAlarmTypes;
///< 速度报警配置
typedef struct SDK_SpeedAlarmConfig
{
bool bEnable; ///< 速度报警开启
int iSpeed; ///< 速度
SDK_EventHandler hEvent; ///< 速度报警联动参数
}SDK_SpeedAlarmConfig;
/// 全部类型的速度报警配置
typedef struct SDK_SpeedAlarmConfigAll
{
SDK_SpeedAlarmConfig vSpeedAlarmAll[SDK_SPEED_ALARM_NR];
}SDK_SpeedAlarmConfigAll;
typedef struct SDK_CorrespondentOwnInfo
{
char brand[64];
char pModel[32];
char pFirmwareVersion[32];
char pHardwareId[32];
int port;
int scopeNum;
char vScopeInfo[32][64];
}SDK_CorrespondentOwnInfo;
typedef struct SDK_OSDInfo
{
int index;//设置通道标题和时间标题之外的区域,取值0和1
int nX;//范围0-1000
int nY;//范围0-1000
int nChannel;//要设置的通道
char pOSDStr[1024];//要叠加的字符串
}SDK_OSDInfo;
typedef struct SDK_AppDownloadLink
{
bool IOSEnable; //是否显示iphone客户端二维码
bool AndroidEnable; //是否显示安卓客户端二维码
bool SNEnable; //是否显示序列号对应的二维码
bool OtherEnable; //是否显示客户自定义二维码
char inkIOS[128];
char linkAndroid[128];
char nameOther[128]; //客户自定义二维码名称
char linkOther[128]; //客户自定义二维码
}SDK_AppDownloadLink;
typedef struct SDK_UserMap
{
int size;
USER_INFO UserCfg[64];
}SDK_UserMap;
//上传串口数据到指定服务器
typedef struct SDK_NetTransCommData
{
bool bEnable; ///< 是否开启
int SerialType; //串口类型,0表示RS232,1表示RS485
int ServerType; ///协议类型名称,0表示TCP,1表示UDP
char ServerAddr[NET_NAME_PASSWORD_LEN]; //域名或者IP地址。
int ServerPort; //端口;
int ReportTime; //状态消息发送间隔时间,单位分钟
}SDK_NetTransCommData;
//Netinfo_cctv客户增加串口数据到指定服务器配置
typedef struct SDK_NetinfoNetTransComm
{
char LastReportTime[32]; //最后一次报告时间
char KeyPadNu[16]; //设备编号
int ConnStatus; //连接状态(1:连接成功0:未连接)
int ReportTime; //状态消息发送间隔时间,单位分钟
} SDK_NetinfoNetTransComm;
typedef struct SDK_PhoneInfo
{
char command[NET_NAME_PASSWORD_LEN];
char type[12];
char asid[128];
char username[NET_NAME_PASSWORD_LEN];
char password[NET_NAME_PASSWORD_LEN];
char acme[NET_NAME_PASSWORD_LEN];
char resume[24];
}SDK_PhoneInfo;
#define SDK_MAX_VERSION_NUM 20
typedef struct SDK_CloudUpgradeVersion
{
char name[128]; // 版本名
char date[12]; //版本日期,格式:"2014-08-26"
unsigned int length; // 升级文件长度
}SDK_CloudUpgradeVersion;
typedef struct SDK_CloudUpgradeList
{
int num;
SDK_CloudUpgradeVersion versions[SDK_MAX_VERSION_NUM];
}SDK_CloudUpgradeList;
//启动客户demo
typedef struct SDK_NetUseProgram
{
bool bEnable; ///是否开启
char UserName[NET_NAME_PASSWORD_LEN]; ///< 用户名
char Password[NET_NAME_PASSWORD_LEN]; ///< 密码
int Port; ///< 端口号
char ServerAddr[NET_NAME_PASSWORD_LEN]; ///域名或者IP地址。
char Describe[NET_MAX_RIGTH_NUM]; ///设备名称
}SDK_NetUseProgram;
typedef struct I_VERSION_INFO_T
{
char name[128]; // 版本名
char date[12]; //版本日期,格式:"2014-08-26"
unsigned int length; // 升级文件长度
}I_VERSION_INFO_T;
//wifi模式相关配置,用于行车记录仪自动切换AP模式
typedef struct SDK_NetWifiMode
{
int autoSwitchAPMode; //取值 1:自动切换成AP模式(家用模式) 0:不自动切换
int reserve[7];
}SDK_NetWifiMode;
//消费类产品的录像灯的状态
typedef struct SDK_FbExtraStateCtrl
{
int ison;
}SDK_FbExtraStateCtrl;
typedef struct SDK_AutoSwitch
{
int nStartTime;
int nStopTime;
int nStartDay;
int nStopDay;
bool bEnable;
}SDK_AutoSwitch;
typedef struct SDK_AutoSwitchAll
{
SDK_AutoSwitch Aswitch[10];
}SDK_AutoSwitchAll;
typedef struct SDK_tagPoint
{
int x;
int y;
}SDK_Point;
typedef struct SDK_TitleDot
{
int width;
int height;
char pDotBuf[NET_MAX_TITLE_DOT_BUF_LEN];
}SDK_TitleDot;
typedef struct SDK_PowerSocketSet
{
int nSwitch;
int nLight;
}SDK_PowerSocketSet;
typedef struct SDK_ClientInfo
{
char Description[NET_NAME_PASSWORD_LEN];
char Uuid[NET_NAME_PASSWORD_LEN];
char Phone[NET_NAME_PASSWORD_LEN];
char LoginTime[NET_NAME_PASSWORD_LEN];
char Number[NET_NAME_PASSWORD_LEN];
int Permission;
bool DeleThisClient;
}SDK_ClientInfo;
typedef struct SDK_ClientInfoAll
{
SDK_ClientInfo info[10];
}SDK_ClientInfoAll;
typedef struct SDK_Authority
{
int Level;
int Ability;
}SDK_Authority;
typedef struct SDK_Arm
{
int Guard;
}SDK_Arm;
typedef struct SDK_AlarmInfo_V2
{
char Descrip[64];
char SerialID[64];
char Type[32];
char iEvent[20];
char iStatus[20];
SDK_SYSTEM_TIME SysTime;
}SDK_AlarmInfo_V2;
/// 用户登陆方式
typedef enum SDK_LoginType
{
H264_DVR_LOGIN_TYPE_WEB, ///< WEB登陆(默认)
H264_DVR_LOGIN_TYPE_LOCALUPGRADE, ///< 升级工具(局域网升级)登陆
H264_DVR_LOGIN_TYPE_CLOUDUPGRADE, ///< 云升级登陆
H264_DVR_LOGIN_TYPE_PCCLIENT, ///< PC客户端登陆
H264_DVR_LOGIN_TYPE_MOBILE, ///< 移动终端(IPhone)登陆
H264_DVR_LOGIN_TYPE_FUTRUE_HOME, ///未来家庭客户端登陆
H264_DVR_LOGIN_TYPE_XM030, ///xmeye客户端登陆
H264_DVR_LOGIN_TYPE_NR, ///< 登陆类型
}SDK_LoginType;
typedef struct SDK_Xpms_Search_AlarmInfo_Req
{
char Uuid[100];
char authCode[100];
SDK_SYSTEM_TIME StarTime; //报警信息查询起始时间
SDK_SYSTEM_TIME EndTime; //报警信息查询结束时间,全0表示当前时间
int Channel; //Channel < 0 表示全部查询,通道号是从0开始的
int AlarmType; //报警类型(暂时无用)
int Number; //请求要查的报警条数 ,Number <= 0 表示查全部
int Index; //需要从查询的结果中哪一条开始取
char Res[32];
}SDK_XPMS_SEARCH_ALARMINFO_REQ;
typedef struct SDK_Xpms_Search_AlarmPic_Req
{
char Uuid[100];
char authCode[100];
#ifdef WIN32
__int64 ID;
#else
long long ID; //报警信息ID号
#endif
char Res[32];
}SDK_XPMS_SEARCH_ALARMPIC_REQ;
// 北京鸿泰恒平台
typedef struct SDK_CONFIG_NET_BJHONGTAIHENG
{
bool bEnable;
char ServerUrl[64]; //服务器地址
char DevID[16]; //设备id
char Password[16]; //设备验证码
char DevModel[16]; //设备型号
char SerialNo[20]; //设备序列号
}SDK_CONFIG_NET_BJHONGTAIHENG;
typedef enum
{
SDK_LocalAlarm = (int)0x00001,
SDK_MotionDetect = (int)0x00002,
}SDK_AlarmRecType;
//云存储配置相关结构体
typedef struct SDK_CloudRecordConfig
{
int EnableMsk; //0全不存,1是定时存,2报警存,3定时&& 报警
int StreamType; //Code stream type
int AlarmRecTypeMsk; //需要上传录像的报警类型,AlarmRecType类型掩码
SDK_CONFIG_WORKSHEET wcWorkSheet; //普通录像需存储的时间段
}SDK_CloudRecordConfig;
typedef struct SDK_CloudRecordConfigAll
{
SDK_CloudRecordConfig vRecordConfigAll[NET_MAX_CHANNUM];
}SDK_CloudRecordConfigAll;
// 空闲动作
typedef struct SDK_PtzIdleState
{
bool bEnable; // 空闲动作使能位
int iTime; // 空闲时间 单位: 秒
int iIdleState; // 空闲动作类型
int iId; // 相应空闲动作类型的动作编号
}SDK_PtzIdleState;
typedef struct SDK_PtzIdleStateAll
{
SDK_PtzIdleState pPtzIdleStateAll[NET_MAX_CHANNUM];
}SDK_PtzIdleStateAll;
typedef struct SDK_CameraClearFog
{
bool enable; //0 打开,1 不打开
int level ; // 强度等级[0,100]
char rev[4];
}SDK_CameraClearFog;
typedef struct SDK_CameraClearFogAll
{
SDK_CameraClearFog vCameraClearFogAll[NET_MAX_CHANNUM];
}SDK_CameraClearFogAll;
//机器人马达控制
typedef struct SDK_CameraMotorCtrl
{
bool UDDireOverturn; //上下方向翻转
bool LRDireOverturn; //左右方向翻转
bool UDRestOverturn; //上下限位翻转
bool LRRestOverturn; //左右限位翻转
int rev[8];
}SDK_CameraMotorCtrl;
typedef struct SDK_EncodeAddBeep
{
int Enable; //置1 视频编码每隔30秒beep声,置0没有此功能
char res[4];
}SDK_EncodeAddBeep;
typedef struct SDK_DataLinkConfig
{
int DoProgramEnable;
int NIP2Enable;
}SDK_DataLinkConfig;
//安装位置
typedef enum SDK_FISHEYE_APP_TYPE_E
{
SDK_FISHEYE_APP_CEIL = 0, //天花板
SDK_FISHEYE_APP_TABL = 1, //桌上
SDK_FISHEYE_APP_WALL = 2, //墙上
}SDK_FISHEYE_APP_TYPE_E;
//鱼眼模式
typedef enum SDK_FISHEYE_SECENE_E
{
SDK_FISHEYE_SECENE_ORIG = 0,
SDK_FISHEYE_SECENE_R = 1,
SDK_FISHEYE_SECENE_P180_ALL = 2,
SDK_FISHEYE_SECENE_P180_ONE = 3,
SDK_FISHEYE_SECENE_P180_TWO = 4,
SDK_FISHEYE_SECENE_P360_FULL = 5,
SDK_FISHEYE_SECENE_P360_SEPE = 6,
SDK_FISHEYE_SECENE_P360_HALF = 7,
SDK_FISHEYE_SECENE_ROP_R = 8,
SDK_FISHEYE_SECENE_RORR_R = 9,
SDK_FISHEYE_SECENE_RRRR_R = 10,
SDK_FISHEYE_SECENE_RRP_R = 11
}SDK_FISHEYE_SECENE_E;
//鱼眼镜头工作模式
typedef enum{
FISHEYE_BULB_MODE_TIMING = 0,//定时模式
FISHEYE_BULB_MODE_OPEN = 1,//手动模式开
FISHEYE_BULB_MODE_CLOSE = 2, //手动模式关
FISHEYE_BULB_MODE_NR,
}SDK_FISHEYE_BULB_MODE_E;
typedef struct SDK_FishEyeParam
{
int appType; //如枚举SDK_FISHEYE_APP_TYPE_E
int secene; //如枚举SDK_FISHEYE_SECENE_E
int duty; // 灯泡亮度 0~100级
char bulbWorkMode; //灯泡工作模式,如枚举SDK_FISHEYE_BULB_MODE_E
char resv[3];
SDK_TIMESECTION ligthOnSection; // 灯泡自动工作时间段
unsigned int reserv[5];
}SDK_FishEyeParam;
//是否叠加OSD logo
typedef struct SDK_SetLogo
{
int Enable;
int reserve[8];
}SDK_SetLogo;
typedef struct SDK_SparshHeartbeat
{
bool bEnable; ///是否启用
int IntevalTime; ///间隔上报时间
char AlarmType[NET_NAME_PASSWORD_LEN]; ///名称
}SDK_SparshHeartbeat;
typedef struct SDK_SDevicesState
{
int num; //设备数量
char uuid[32][32]; //最大32个序列号
int state[32]; //0:不在线,1:在线
}SDK_SDevicesState;
typedef enum SDK_EncMode
{
WIFI_ENC_OPEN = 0,
WIFI_ENC_AES = 1,
WIFI_ENC_TKIP = 2,
WIFI_ENC_WEP =3
}SDK_EncMode;
typedef struct SDK_SWifiInfo
{
char wifiSsid[64];
char wifiPassword[64];
char wifiMac[64]; // 以:分隔的十六进制字符串
char wifiGateWay[64]; // 网关
char wifiSubmark[64]; // 子网掩码
char wifiDNS1[64]; // DN S1
char wifiDNS2[64]; // Dn s2
int wifiEncMode; // 加密方式--EncMode
char mobileIp[32];
char mobileMac[32];
}SDK_SWifiInfo;
//客户的nas服务配置
typedef struct SDK_SPVMN_NAS_SERVER
{
char ServerIP[16];
int Port;
char RootDir[256];
char DowloadIP[16];
char DowloadPath[256];
}SDK_SPVMN_NAS_SERVER;
//IE端请求获取升级版本信息
typedef struct SDK_CloudUpgradeVersionReq
{
char uuid[20]; //设备序列号
char devID[32]; //设备类型的ID号
char curVersion[16]; //当前版本日期
char Language[32]; //语言类型
char devType; //类型
char expect; //0表示最新版本1表示查询重要版本
char manual; //1表示手动查询,0表示自动查询
char rev;
}SDK_CloudUpgradeVersionReq;
//后端回复给IE端获取的升级版本信息
typedef struct SDK_CloudUpgradeVersionRep
{
char FileName[128]; //文件名,下载请求时需填这个值
char DevID[32]; //设备类型的ID号
char Date[16]; //版本日期
int FileSize; //升级文件的大小
int FileLevel; //版本重要程度
char ChangeLog[512]; //change log,加到512字节,日志可能有很多
}SDK_CloudUpgradeVersionRep;
//web端发送给后端的升级程序请求
typedef struct SDK_CloudUpgradeStartReq
{
char uuid[20]; //设备序列号
char DevID[32]; //设备类型ID号
char FileName[128]; //升级文件名
char Date[16]; //版本日期
bool manual; //1表示用户手动的升级,0表示自动升级,手机端该值一般传1即可
}SDK_CloudUpgradeStartReq;
//IPVSH
typedef struct SDK_IPAddressV6
{
bool bEnable; //是否启用ipv6
char pLocalLinkAddr[32]; //本地链路地址
char pAddr[64]; //ipv6地址
char pGateway[64]; //网关
int iPrefix; //ipv6前缀长度
} SDK_IPAddressV6;
typedef struct SDK_OnlineUpgradeCfg
{
char cEnable; //是否启用在线升级功能
char pServerAddr[63];
int serverPort;
char cAutoCheck; //是否开启自动检测
char cAutoUpgradeImp; //只自动升级重要更新
char cIgnoreAllVersion; //忽略所有版本的页面提示
char cIgnoreCurVersion; //忽略当前版本的页面提示,发现更新的版本后也只提示一次
unsigned int IgnoreCurTime; //忽略掉的当前版本的时间,与 bIgnoreCurVersion联用
char cJustImpVersion; //只有重要版本提示
char rev[3];
} SDK_OnlineUpgradeCfg;
//家用产品433报警联动项配置
typedef struct SDK_ConsSensorAlarmCfg
{
bool bEnable; // 动态检测开启
SDK_EventHandler hEvent; // 动态检测联动
} SDK_ConsSensorAlarmCfg;
///<硬盘出错事件结构
typedef struct SDK_StorageFailConfig
{
bool bEnable;
SDK_EventHandler hEvent; ///< 处理参数
bool bRebootEnable; //系统重启全能:hutianhao
int bRebooted; //是否出错重启过;0:未出错重启过;非0:出错重启过
int NoBitRateCnt; //无码流设备自动重启次数
}SDK_StorageFailConfig;
//CMS客户端端发来的画面分割条件
typedef struct SDK_SplitControl
{
int iSplitChannel;//分割通道
int iSplitWinType;//分割类型(如:四通道)
char rev[8];
}SDK_SplitControl;
typedef enum _SDK_EXCEPTION_TYPE
{
SDK_EXCEPTION_DISCONNECTED,//设备断线
SDK_EXCEPTION_RECCONNECTED,//设备恢复重连
}SDK_EXCEPTION_TYPE;
//重连设备的相关信息
typedef struct SDK_ReconInfo
{
LPH264_DVR_DEVICEINFO deviceInfo; //重新登录后的设备信息(切换模式了设备通道等信息可能会变(例如通道模式变化了),所以重连成功后要返回出来)
void* pWnd; //重连视频时通道对应的窗口句柄
int nType; //见枚举SDK_EXCEPTION_TYPE
}SDK_ReconInfo;
//子连接重连设备的相关信息
typedef struct SDK_SubConnectInfo
{
long lRealHandle; //预览视频子连接断开后重连视频成功的播放句柄
bool bSubOnline; //预览视频子连接是否重连上,true代表子连接重连上了
void* pWnd; //预览视频子连接断开后重连视频时通道对应的窗口句柄;bSubOnline为trie时调用H264_DVR_RealPlay时传入窗口句柄时pWnd才有值,否则都为NULL
}SDK_SubConnectInfo;
typedef struct SDK_IntelBrasSpecialInfo
{
int TCPPort; ///< TCP侦听端口
char bEnableCloud; //interbras 云功能
char rev2[3];
int searchPort; //搜索端口号
int vvMinPort; //vv 云最小端口
int vvMaxPort; //vv 云最大端口
int rev[14];
}SDK_IntelBrasSpecialInfo;
//sip 设备板卡地址
typedef struct SDK_SIP_NET_IP_CONFIG
{
char SIPDevIP[64];
}SDK_SIP_NET_IP_CONFIG;
typedef struct SDK_registersercfg
{
bool enable;
char serAddr[NET_NAME_PASSWORD_LEN];//PAG配置
int port;
int factorycode;//厂商代码
char userName[NET_NAME_PASSWORD_LEN];
char passwd[NET_NAME_PASSWORD_LEN];
char puid[NET_NAME_PASSWORD_LEN];//设备id
char mainid[NET_NAME_PASSWORD_LEN];//域id
int TaskID;//存储相关
int TaskName;//存储相关
char MainRecordPath[256];//主用地址
char BakRecordPath[256];//备用地址
int FileMode;//文件打包格式 0:按时长,1:按大小
int FileLength;//文件值10,FileMode为0表示10分钟,为1时表示10M
int VideoTransMode;//实时传输视频的模式【实时视频发流模式】(0-UDP ,1-TCP)
char Reserved[NET_NAME_PASSWORD_LEN];
}SDK_GbEyesCfg;
//AHDL通道掩码,该通道为AHDL置1
typedef struct SDK_AHDEncodeLMask
{
char AHDLMask[NET_MAX_MSK_SIZE];
}SDK_AHDEncodeLMask;
typedef struct SDK_PortService
{
BOOL Enable; ///< 是否开启
int port;
}SDK_PortService;
/// 默认响应包格式
typedef struct SDK_DefaultResponse
{
unsigned int uiSessionId; ///< 会话ID
int iRet; ///< 返回值
char sName[64]; ///< 配置名称
}SDK_DefaultResponse;
typedef enum SDK_CloudRecType
{
SDK_TimeRec = (int)0x00001,
SDK_AlarmRec = (int)0x00002,
}SDK_CloudRecType;
//合封模组中IPC分辨率支持的类型
typedef enum SDK_SENSOR_RESOUTION_TYPE
{
SDK_SENSOR_RESOLUTION_NORMAL = 0, //默认,不支持通过Reslution判别
SDK_SENSOR_RESOLUTION_1M = 1, //1 m
SDK_SENSOR_RESOLUTION_1_3M = 2, //1.3 m
SDK_SENSOR_RESOLUTION_2M = 3, //2 m
SDK_SENSOR_RESOLUTION_3M = 4, //3 m
SDK_SENSOR_RESOLUTION_4M = 5, //4 m
SDK_SENSOR_RESOLUTION_5M = 6, //5 m
SDK_SENSOR_RESOLUTION_6M = 7, //6 m
SDK_SENSOR_RESOLUTION_8M = 8, //8 m
SDK_SENSOR_RESOLUTION_12M = 9, //12 m
SDK_SENSOR_RESOLUTION_16M = 10, //16 m
}SDK_SENSOR_RESOUTION_TYPE;
//合封模组中IPC支持的设备类型
typedef enum SDK_SENSOR_DEVICE_TYPE_ALL
{
SDK_SENSOR_DEVICE_Normal = 0, //默认,不支持通过Reslution判别
SDK_SENSOR_DEVICE_Plain = 1, //普通
SDK_SENSOR_DEVICE_Plain_Color = 2, //普通 彩色
SDK_SENSOR_DEVICE_WDR = 3, //宽动态
SDK_SENSOR_DEVICE_Low_Light = 4, //低照度
SDK_SENSOR_DEVICE_Stellar = 5, //星光
SDK_SENSOR_DEVICE_Double_Light = 6, //双光
}SDK_SENSOR_DEVICE_TYPE_ALL;
//鱼眼镜头类型枚举
typedef enum SDK_E_FISH_LENS_TYPE
{
SDK_FISH_LENS_NORMAL, //普通镜头,不用app端做图像校正
SDK_FISH_LENS_360VR,
SDK_FISH_LENS_360LVR,
SDK_FISH_LENS_180VR,
SDK_FISH_LENS_DUAL_360VR,
SDK_FISH_LENS_DUAL_180VR,
SDK_FISH_LENS_NR,
}SDK_E_FISH_LENS_TYPE;
//鱼眼镜头配置参数
typedef struct SDK_FishLensParam
{
char version; //结构体的版本号(如果修改下面的成员导致app需要对新老程序分开处理时,则需要让扩展部将参数设置工具中的版本号加1,并修改设备上的默认配置)
char lensType; //镜头类型,如枚举SDK_E_FISH_LENS_TYPE
short centerOffsetX; //圆心偏差横坐标 单位:像素点
short centerOffsetY; //圆心偏差纵坐标 单位:像素点
short radius; //半径 单位:像素点
short imageWidth; //圆心校正时的图像宽度 单位:像素点
short imageHeight; //圆心校正时的图像高度 单位:像素点
char viewAngle; //视角 0:俯视 1:平视
char viewMode; //显示模式 0:360VR
short zoom; //缩放比例。为了传输方便,这里将原值放大了100倍
char pPCMac[16]; //校正设备时使用的电脑的MAC地址
char resv[8];
} SDK_FishLensParam;
//所有通道的鱼眼镜头参数配置
typedef struct SDK_FishLensParamAll
{
SDK_FishLensParam vLensParamAll[NET_MAX_CHANNUM];
}SDK_FishLensParamAll;
//云台配置的控制方式设置
typedef enum SDK_PTZ_CTRL_TYPE
{
PTZ_CTRL_COAX = 0,//通过同轴线
PTZ_CTRL_RS485, //通过485线
PTZ_CTRL_BOTH, //同轴线和485线都发送控制命令
}SDK_PTZ_CTRL_TYPE;
typedef struct SDK_PTZControlMode
{
int ctrlMode; //云台控制的方式【PTZ_CTRL_TYPE 三个枚举值】
} SDK_PTZControlMode;
typedef struct SDK_PTZControlModeAll
{
SDK_PTZControlMode CtrlModeAll[NET_MAX_CHANNUM];
}SDK_PTZControlModeAll;
typedef struct SDK_SmartH264Param
{
bool SmartH264;
}SDK_SmartH264Param;
typedef struct SDK_SmartH264ParamAll
{
SDK_SmartH264Param SmartH264All[NET_MAX_CHANNUM];
}SDK_SmartH264ParamAll;
typedef struct SDK_WifiInfo
{
char ssid[32]; //无线SSID信息
char wifiVersion[32]; //无线模块的版本信息
int advance; //性能增强模式
}SDK_WifiInfo;
typedef struct SDK_NetRTMPConfig
{
bool bEnable; //是否开启
char Directory[NET_MAX_PATH_LENGTH]; //RTMP的地址
}SDK_NetRTMPConfig;
///< 按间隔抓图
struct SDK_IntervalSnapMode
{
int iFTPTime;
int iEmailTime;
int iStorageTime;
};
///< 按定时抓图
struct SDK_TriggerSnapMode
{
SDK_SYSTEM_TIME TriggerTime;
bool bFTP;
bool bEmail;
bool bStorage;
};
///< 抓图计划
struct SDK_SnapSchedule
{
int iSnapType; // 0:间隔抓图;1:定时抓图 2:关闭
int iTriggerNum; //定时抓图的个数
SDK_IntervalSnapMode intervalMode;
SDK_TriggerSnapMode vTriggerMode[256];
};
//所有通道的计划抓图配置
struct SDK_SnapConfigAll
{
SDK_SnapSchedule vSnapScheduleAll[NET_MAX_CHANNUM];
};
// 缩略图
struct SDK_BreviaryConfig
{
bool bBreviaryEn; //缩略图使能
int iBreviaryInteSec; //缩略图抓图间隔时间
};
//预置点数据配置
struct SDK_PtzPreset
{
int nPresetId[256];
};
//所有通道的预置点数据配置
struct SDK_PtzPresetAll
{
SDK_PtzPreset nPresetAll[NET_MAX_CHANNUM];
};
//预置点的数据配置
struct SDK_PtzTour_Preset
{
int nPresetId; //预置点Id
int nPresetTime; //间隔时间
};
//巡航路线的数据配置
struct SDK_PtzTour
{
int nTourId; //线路Id
SDK_PtzTour_Preset nTourNum[20]; //对应的所有预置点和时间间隔
};
//所有巡航的数据配置
struct SDK_PtzTours
{
SDK_PtzTour nPtzTours[20];
};
//所有通道巡航的数据配置
struct SDK_PtzTourAll
{
SDK_PtzTours vPtzTour[NET_MAX_CHANNUM];
};
//安全问题配置
struct SDK_PwdPresetQsPair
{
int questionIndex; //问题序号
char strAnswer[256]; //答案
};
struct SDK_PasswordSafety
{
bool bTipPageHide; //是否隐藏密码为空时的提示页面
SDK_PwdPresetQsPair PwdResetQs[4]; //安全问题和答案
char resetMailAddr[64]; //用于接收超级密码的邮箱
char resv[20];
};
//获取找回密码的问题
struct SDK_QuestionDelivery
{
int nStrNum; //问题个数
char vQuestionStr[7][256];
};
struct SDK_TutkVersion
{
char Product[32]; //设备型号
int version; //设备版本
};
///< 串口报警
typedef struct SDK_SerialPortAlarm
{
bool bEnable; ///< 使能
int iSensorType; ///< 传感器类型常开 or 常闭
SDK_EventHandler hEvent; ///< 处理参数
}SDK_SerialPortAlarm;
/// 所有通道的串口报警结构
typedef struct SDK_SerialPortAlarm_ALL
{
SDK_SerialPortAlarm vSerialAlarmConfig[NET_MAX_CHANNUM];
}SDK_SerialPortAlarm_ALL;
/// 客户定制学码功能
typedef struct SDK_AMIRLearnCode
{
int iValue;
}SDK_AMIRLearnCode;
///网络获取缩略图
typedef struct SDK_NetBreviaryPic
{
int iChannel; //通道号
int iNumJpg; //请求获取的图片数
SDK_SYSTEM_TIME startTime;
SDK_SYSTEM_TIME endTime;
}SDK_NetBreviaryPic;
///亿嘉和Visca协议修改,设置和获取倍率焦距等
enum SDK_CameraViscaCommand
{
SDK_SET_CAM_ZOOM, //设置倍率
SDK_SET_CAM_FOCUS, //设置焦距
SDK_SET_CAM_ZOOM_FOCUS, //设置倍率和焦距
SDK_GET_CAM_ZOOM, //获取倍率
SDK_GET_CAM_FOCUS, //获取焦距
};
//亿嘉和Visca协议修改,设置和获取倍率焦距等
typedef struct SDK_CameraViscaControl
{
int iChannel; //通道号
int iCommand; //命令,枚举 SDK_CameraViscaCommand
int iCameraZoom; //倍率
int iCameraFocus; //焦距
}SDK_CameraViscaControl;
typedef struct SDK_PIRConfig
{
bool bEnable; ///< PIR使能开关
int iLevel; ///< 灵敏度:1~6
SDK_EventHandler hEvent;///< PIR联动参数
}SDK_PIRConfig;
/// 全通道PIR配置,模拟通道才支持
typedef struct SDK_PIRConfigAll
{
SDK_PIRConfig vPIRAll[NET_MAX_CHANNUM];
}SDK_PIRConfigAll;
//智能回放定位的类型,掩码例如:1010—>IPC报警类型=1,断网报警=0,网络报警=1,本地报警=0
enum SDK_PLAY_BACK_SETTYPE
{
F_SUB_COMMON,
F_SUB_LOCALALARM, ///< 本地报警
F_SUB_NETALARM, ///< 网络报警
F_SUB_NETABORT, ///< 断网报警
F_SUB_IPCALARM, ///< IPC报警
F_SUB_SPEEDALARM, ///< 超速报警
F_SUB_GSENSORALARM, ///< SENSOR报警
F_SUB_SERIALALARM, ///< 串口报警
F_SUB_MOTIONDETECT, ///< 移动侦测
F_SUB_LOSSDETECT, ///< 视频丢失
F_SUB_BLINDDETECT, ///< 视频遮挡
F_SUB_PIRALARM, ///< 红外检测
F_SUB_CARDNUMBER, ///< 卡号录像
F_SUB_PERIMETER, ///< 周界检测
F_SUB_TRIPWIRE, ///< 单绊线检测
F_SUB_ABANDUM, ///< 物品遗留
F_SUB_STOLEN, ///< 物品被盗
F_SUB_CHANGE, ///< 场景变换
F_SUB_NR,
};
//DDNS实时状态
typedef struct SDK_NetDDNSInConfig
{
char IP[32];
int state; //state 0 表示未连接 1表示连接成功
char resv[8];
}SDK_NetDDNSInConfig;
//天宏旭鹰定制版本信息
typedef struct SDK_THXY_VersionInfo
{
char productType[64]; //产品型号
char serialNo[64]; //设备序列号
char ManuDate[64]; //出厂日期
char VersionNum[64]; //版本号
char buildDate[64]; //版本日期
char hardVersion[64]; //固件版本
int chnNum; //通道数
int handDiskNum; //硬盘数
int alarmIn; //报警输入
int alarmOut; //报警输出
int reserve[32];
}SDK_THXY_VersionInfo;
//模糊检测报警
typedef struct SDK_BlurCheckAlarm
{
bool bEnable; //true:开启,false:关闭
int iLevel; //灵敏度:1~6
int iCheckFrequency; //检测频率,单位:分钟
SDK_EventHandler hEvent;//模糊检测联动参数
}SDK_BlurCheckAlarm;
//全通道模糊检测报警
typedef struct SDK_BlurCheckAlarmAll
{
SDK_BlurCheckAlarm vBlurCheckAlarm[NET_MAX_CHANNUM];
}SDK_BlurCheckAlarmAll;
typedef struct SDK_IntelEnCodeCfg
{
bool bEnable; //接口使能销毁标志
int highQP; //高邋背景邋QP值
int lowQP; //前景邋QP值
int highFPS; //背景fps
int lowFPS; //前景fps
int Channel; //编码码流类型:0主,1辅
}SDK_IntelEnCodeCfg;
//智能编码
typedef struct SDK_IntelEnCodeCfgAll
{
SDK_IntelEnCodeCfg vEncodeCfg[NET_MAX_CHANNUM];
}SDK_IntelEnCodeCfgAll;
/*===================车牌识别配置功能=======begin======================*/
typedef struct SDK_PlateDetectWhiteList
{
int iAddrCount; //车牌个数
char vWhiteListAddr[256][256]; // 车牌白名单地址
}SDK_PlateDetectWhiteList;
//车牌侦测升降杆控制
typedef struct SDK_PlateDetectLiftBar
{
bool bLiftBarCmd;
int iChannel;
}SDK_PlateDetectLiftBar;
//报警回调类型
enum {
ALARM_TYPE = 1,
PUSH_TYPE,
};
enum SDK_INTEL_PUSH_TYPE
{
SDK_INTEL_PUSH_TYPE_CAR_PLATE = 0, //表示车牌类型
SDK_INTEL_PUSH_TYPE_FACE = 1, //表示人脸类型
SDK_INTEL_PUSH_TYPE_ALL = 255,//表示全部类型
};
enum SDK_INTEL_PUSH_IMG_TYPE
{
SDK_INTEL_PUSH_IMG_TYPE_FULL = 1, //表示只要大图
SDK_INTEL_PUSH_IMG_TYPE_TARGET = 2, //表示只要小图
SDK_INTEL_PUSH_IMG_TYPE_NR //表示两种图都要
};
//车牌区域
typedef struct SDK_RECT_S
{
int leftX;
int topY;
int width;
int height;
} SDK_RECT_S;
typedef struct SDK_PLATE_DETECT
{
char acPlateCode[20]; //车牌号码,尾部有字符串结束符"\0"
char acPlateColor[4]; //车牌颜色,黄蓝黑白或"无"代表未知,字符串结束符"\0",字符编码格式为
float acfConfidence; //置信度
}SDK_PLATE_DETECT;
typedef struct SDK_FACE_DETECT
{
char sex;//性别
char age;//年龄
char resv[26];
}SDK_FACE_DETECT;
typedef struct SDK_FR_TARGET_INFO
{
SDK_RECT_S stRect;
SDK_FACE_DETECT face;
char resv[12];
}SDK_FR_TARGET_INFO;
typedef struct SDK_LPR_TARGET_INFO
{
SDK_RECT_S stRect;
SDK_PLATE_DETECT plate;
char resv[12];
}SDK_LPR_TARGET_INFO;
typedef struct SDK_IA_COMM_RES_S
{
char resultType; //识别类型类型 0:车牌 1:人脸识别
char picSubType; //0:大图 1:小图
char picFormat; //0:jpg 1:bmp 2:yuv
char tagNum; //目标个数
char reserved[16];
}SDK_IA_COMM_RES_S;
typedef struct SDK_IA_LPR_REC_S
{
SDK_IA_COMM_RES_S comm;
int iCount;
void *pTargetInfo; // Lpr target info
}SDK_IA_LPR_REC_S;
typedef struct SDK_IA_FR_REC_S
{
SDK_IA_COMM_RES_S comm;
int index; //当前图片的索引号
void *pTargetInfo; // Fr target info
}SDK_IA_FR_REC_S;
typedef enum SDK_PushData_IA_Type
{
SDK_PUSHDATA_IA_PLATE,
SDK_PUSHDATA_IA_FACE,
}SDK_PushData_IA_Type;
typedef struct SDK_PushRetData
{
int nPushIAType; //Sdk push data ia type,
char* pPushIAData; //推送的智能数据,根据nPushType找相应类型的结构体
int nChannel; //通道号
int nLenSize; //图片大小
unsigned char* pBuffer; //图片数据
}SDK_PushRetData;
//车牌类型
enum SDK_E_LPR_PALTE_TYPE
{
E_LPR_PLATE_TYPE_NULL=0, //未知
E_LPR_PLATE_TYPE_BLUE, //普通蓝牌
E_LPR_PLATE_TYPE_BLACK, //普通黑牌
E_LPR_PLATE_TYPE_YELLOW, //普通黄牌
E_LPR_PLATE_TYPE_YELLOW2, //双层黄牌
E_LPR_PLATE_TYPE_POLICE, //警察车牌
E_LPR_PLATE_TYPE_ARMYPOLICE, //武警车牌
E_LPR_PLATE_TYPE_INDIVIDUALITY, //个性车牌
E_LPR_PLATE_TYPE_ARMY, //单层军牌
E_LPR_PLATE_TYPE_ARMY2, //双层军牌
E_LPR_PLATE_TYPE_COACH, //教练牌
E_LPR_PLATE_TYPE_NEW_ENERGY, //新能源牌
E_LPR_PLATE_TYPE_NR
};
//车身颜色
enum SDK_E_LPR_CAR_COLOR_TYPE
{
E_LPR_CAR_COLOR_BULE, //蓝色
E_LPR_CAR_COLOR_YELLO, //黄色
E_LPR_CAR_COLOR_WHITE, //白色
E_LPR_CAR_COLOR_BLACK, //黑色
E_LPR_CAR_COLOR_OTHER, //其他颜色
E_LPR_CAR_COLOR_TYPE_ALL
};
//车标类型
enum SDK_E_LPR_VEHICLE_BROND_TYPE
{
E_LPR_VEHICLE_BROND_UNKNOWN, //不识别的车标
E_LPR_VEHICLE_BROND_TOYOTA, //丰田
E_LPR_VEHICLE_BROND_VOLKSWAGEN, //大众
E_LPR_VEHICLE_BROND_HONDA, //本田
E_LPR_VEHICLE_BROND_PEUGEOT, //标致
E_LPR_VEHICLE_BROND_HYUNDAI, //现代
E_LPR_VEHICLE_BROND_BUICK, //别克
E_LPR_VEHICLE_BROND_AUDI, //奥迪
E_LPR_VEHICLE_BROND_KIA, //起亚
E_LPR_VEHICLE_BROND_JEEP, //吉普
E_LPR_VEHICLE_BROND_TORD, //福特
E_LPR_VEHICLE_BROND_BENZ, //奔驰
E_LPR_VEHICLE_BROND_BMW, //宝马
E_LPR_VEHICLE_BROND_MAZDA, //马自达
E_LPR_VEHICLE_BROND_SUZUKI, //铃木
E_LPR_VEHICLE_BROND_CITROEN, //雪铁龙
E_LPR_VEHICLE_BROND_NISSAN, //尼桑
E_LPR_VEHICLE_BROND_MITSUBISHI, //三菱
E_LPR_VEHICLE_BROND_LEXUS, //雷克萨斯
E_LPR_VEHICLE_BROND_CHEVROLET, //雪佛兰
E_LPR_VEHICLE_BROND_VOLVO, //沃尔沃
E_LPR_VEHICLE_BROND_FIAT, //菲亚特
E_LPR_VEHICLE_BROND_BYD, //比亚迪
E_LPR_VEHICLE_BROND_CHERY, //奇瑞
};
//车型
enum SDK_E_LPR_VEHICLE_SIZE_TYPE
{
E_LPR_VEHICLE_SIZE_CAR, //小轿车
E_LPR_VEHICLE_SIZE_MINIBUS, //面包车
E_LPR_VEHICLE_SIZE_TYPE_ALL
};
//开闸分割线坐标
struct SDK_LprGateSplitLine
{
int iLeftX;
int iLeftY;
int iRightX;
int iRightY;
};
typedef struct SDK_PlateDetectCfg
{
int iDefaultL; //默认字母,比如"A"
int iDefaultP; //默认汉字,比如"浙" ,采用gb2312编码
char chPlateType; //车牌类型--见enum SDK_E_LPR_PALTE_TYPE
char chVehicleColor;//车身颜色见--enum SDK_E_LPR_CAR_COLOR_TYPE
char chVehicleSize; //车型--见enum SDK_E_LPR_VEHICLE_SIZE_TYPE
char reserv; //保留位
int chVehicleBrond; //车标--见enum SDK_E_LPR_VEHICLE_BROND_TYPE
SDK_LprGateSplitLine stGateSplitLine;//开闸分割线坐标
SDK_RECT_S astLpRect[7];
int iMaxWidth;
int iMinWidth;
int iSceneMode; //场景模式选择,0:出入口, 1:卡口
}SDK_PlateDetectCfg;
//车牌检测
typedef struct SDK_PlateDetect
{
bool bEnable; //true:开启,false:关闭
SDK_PlateDetectCfg stPlateParam;//车牌检测参数设置
SDK_EventHandler hEvent; //车牌检测联动参数
}SDK_PlateDetect;
//全通道车牌检测
typedef struct SDK_PlateDetectAll
{
SDK_PlateDetect vPlateDetect[NET_MAX_CHANNUM];
}SDK_PlateDetectAll;
//人脸相关结构体:
typedef struct SDK_FaceRect
{
int s32X;
int s32Y;
int u32Width;
int u32Height;
}SDK_FaceRect;
//人脸检测
typedef struct SDK_FaceDetect
{
bool bEnable; //true:开启,false:关闭
SDK_FaceRect stFaceParam; //人脸检测参数设置
SDK_EventHandler hEvent; //人脸检测联动参数
}SDK_FaceDetect;
//全通道人脸检测
typedef struct SDK_FaceDetectAll
{
SDK_FaceDetect vFaceDetect[NET_MAX_CHANNUM];
}SDK_FaceDetectAll;
//车辆收费系统收费规则
enum SDK_E_LRP_CHARGE_TYPE
{
E_LPR_NO_CHARGE,//不收费
E_LPR_CHARGE, //收费
};
enum SDK_E_FIXCARD_CAR_CHARGE_CYCLE_TYPE
{
E_FIXCARD_CAR_CHARGE_BY_YEAR,
E_FIXCARD_CAR_CHARGE_BY_MONTH,
E_FIXCARD_CAR_CHARGE_BY_DAY,
E_FIXCARD_CAR_CHARGE_BY_HOUR,
};
typedef struct SDK_LRPChargeRule
{
int isNeedCharge; //停车是否收费
int fixedCarChargeCycle; //固定车收费周期类型,如枚举E_FIXCARD_CAR_CHARGE_CYCLE_TYPE
int fixedCarMoneyEveryCycle; //在上面的计费周期下,一个周期收多少钱。 单位元
int tempCarFreeMinutes; //免费停车时长,单位分钟
int tempCarChargeMostHour; //收费停车最多多少个小时封顶
int tempCarMinutesFirstSec; //开始计费后首段长度,单位分钟
int tempCarMoneyFirstSec; //首段总收费金额,单位元
int tempCarMinutesEverySec; //首段之后的每段时长,单位分钟
int tempCarMoneyEverySec; //后面每段收费金额,单位元
}SDK_LRPChargeRule;
//照明灯设置
enum SDK_E_LPR_LIGHT_WORKMODE
{
LPR_LIGHT_KEEP_CLOSE, //关闭
LPR_LIGHT_KEEP_OPEN, //常开
LPR_LIGHT_AUTO_ADJUST, //根据环境亮度自动调节
};
typedef struct SDK_LPRLigthControl
{
char workMode; //工作模式,如枚举 SDK_E_LPR_LIGHT_WORKMOD
char lighteness; //亮度,在常开模式下有效。0表示关闭补光
char resv[2];
}SDK_LPRLigthControl;
//车牌识别触发方式
enum SDK_E_LPR_RECOGNIZE_TRIGGERMODE
{
E_LPR_RECOGNIZE_TRIGGER_BY_VIDEO, //视频自动检测
E_LPR_RECOGNIZE_TRIGGER_BY_GROUND_COIL, //地感线圈触发
E_LPR_RECOGNIZE_TRIGGER_BY_AUTO, //视频+地感
};
typedef struct SDK_LPRRecognizeTriggerMode
{
char triggerMode; //触发方式,如枚举E_LPR_RECOGNIZE_TRIGGERMODE
char resv[3];
}SDK_LPRRecognizeTriggerMode;
//临时车收费规则
enum SDK_E_LPR_TEMP_CAR_CHARGE_MODE
{
E_LPR_TEMP_CAR_CHARGE_BY_TIME, //按时长收费--对应结构体-SDK_LPRChargeOnTimeRule
E_LPR_TEMP_CAR_CHARGE_BY_TIMES, //按次数收费--对应结构体-SDK_LPRChargeOnTimesRule
E_LPR_TEMP_CAR_CHARGE_BY_TIMESECTIONS, //按时长收费,但支持多个时间段设置不同的收费标准--对应结构体-SDK_LPRChargeOnTimeSectionRule
E_LPR_TEMP_CAR_CHARGE_MODE_NR
};
enum SDK_E_LPR_CAR_TYPE
{
E_LPR_CAR_TYPE_INVALID,
E_LPR_CAR_TYPE_LITTLE_CAR,
E_LPR_CAR_TYPE_NR
};
typedef struct SDK_LPRChargeOnTimeRule
{
char ucEnable;
char ucVehType; /*车辆类型*/
char aucReserved[2];
short usCyclePay;/* 周期收费金额*/
short usStartPay;/* 起步金额*/
short usFreeTime;/* 免费时长*/
short usCycleTime;/* 计费周期*/
short usStartTime;/* 起步时长*/
short usTotalPreDay;/* 封顶金额*/
}SDK_LPRChargeOnTimeRule;
typedef struct SDK_LPRChargeOnTimesRule
{
char ucEnable;
char ucVehType;/*车辆类型*/
char ucMaxTime;/*封顶次数*/
char ucReserved;
short usPayOne;/*一次收费金额*/
short usFreeTime;/*免费时长*/
short usFreeStartTime; /*免费开始时间,以分钟为单位*/
short usFreeEndTime; /*免费结束时间,以分钟为单位*/
short usPayStartTime; /*收费开始时间,以分钟为单位*/
short usPayEndTime;/*收费结束时间,以分钟为单位*/
}SDK_LPRChargeOnTimesRule;
typedef struct SDK_LPRChargeOnTimeSectionRule
{
char ucEnable;
char ucVehType; /*车辆类型*/
char aucReserved[2];
short usCyclePay;/* 周期收费金额*/
short usStartPay;/* 起步金额*/
short usFreeTime;/* 免费时长*/
short usCycleTime;/* 计费周期*/
short usStartTime;/* 起步时长*/
short usTotalPreDay;/* 时段封顶金额*/
short usSectionStartTime; /*时段开始时间,以分钟为单位*/
short usSectionEndTime;/*时段结束时间,以分钟为单位*/
}SDK_LPRChargeOnTimeSectionRule;
typedef struct SDK_LPRTempCarChargeRule
{
char isCharge; //0:不收费 1:收费
char chargeMode; //收费模式,如枚举E_LPR_TEMP_CAR_CHARGE_MODE
SDK_LPRChargeOnTimeRule atOnTimePay[8];
SDK_LPRChargeOnTimesRule atTimesPay[8];
SDK_LPRChargeOnTimeSectionRule atTimeSectionPay[8][4];
}SDK_LPRTempCarChargeRule;
//强制识别车牌
typedef struct SDK_LprForceTrigRecognize
{
bool bForceRecognizeCmd;
}SDK_LprForceTrigRecognize;
enum SDK_LPR_LED_SHOW_MODE
{
LPR_LED_MODE_TIME, //时间显示
LPR_LED_MODE_VEH_LEFT, //剩余车位显示
LPR_LED_MODE_PLATE_CODE,//车牌显示
LPR_LED_MODE_WELCOME, //欢迎语显示
LPR_LED_MODE_VEH_PAY, //停车付费显示
LPR_LED_MODE_VEH_TIME, //停车时间显示
LPR_LED_MODE_VEH_PERIOD,//月租有效期显示
LPR_LED_MODE_CUSTOM, //用户自定义显示
LPR_LED_SHOW_MODE_MAX
};
enum SDK_LPR_LED_SHOW_COLOR
{
LPR_LED_COLOR_RED, //红色
LPR_LED_COLOR_GREEN, //绿色
LPR_LED_COLOR_YELLOW, //黄色
LPR_LED_COLOR_MAX
};
typedef struct SDK_LprLedShowSet
{
char chEnable; //显示使能
char chInterVal; //时间间隔(秒)
char chLedLine; //行号
char chMode; //显示内容模式--见enum SDK_LPR_LED_SHOW_MODE
char pContent[LPR_MAX_LED_CONTENT];//自定义模式时显示内容
}SDK_LprLedShowSet;
typedef struct SDK_LprLedSet
{
char chAudioEnable; //语音使能
char chReserverd[3];//保留字段
SDK_LprLedShowSet stLedInIdle[LPR_MAX_LED_COUNT];//闲时入口显示屏内容
SDK_LprLedShowSet stLedInBusy[LPR_MAX_LED_COUNT];//忙时入口显示屏内容
SDK_LprLedShowSet stLedOutIdle[LPR_MAX_LED_COUNT];//闲时出口显示屏内容
SDK_LprLedShowSet stLedOutBusy[LPR_MAX_LED_COUNT];//忙时出口显示屏内容
}SDK_LprLedSet;
//黑白名单类型
enum SDK_LPR_LIST_TYPE
{
LPR_LIST_WHITE,//白名单
LPR_LIST_BLACK,//黑名单
LPR_LIST_TYPE_ALL
};
//黑白名单操作类型
enum SDK_LPR_LIST_OPT_TYPE
{
LPR_LIST_OPT_ADD,//增加车牌
LPR_LIST_OPT_DELETE,//删除车牌
LPR_LIST_OPT_UPDATE,//修改车牌信息
LPR_LIST_OPT_SEEK,//查找车牌信息
LPR_LIST_OPT_IMPORT,//批量导入黑白名单
LPR_LIST_OPT_EXPORT,//批量导出黑白名单
LPR_LIST_OPT_TYPE_ALL
};
//名单
typedef struct SDK_LprBlackWhiteList
{
char pPlateCode[20];//车牌号
char pStartTime[24];//开始时间 格式:2017-07-14
char pEndTime[24];//截止时间
}SDK_LprBlackWhiteList;
enum SDK_LPR_BLACK_WHITE_LIST_WORK_MODE
{
LPR_LIST_WORK_MODE_CLOSE,//不开启
LPR_LIST_WORK_MODE_OFFLINE_WORK,//脱机工作
LPR_LIST_WORK_MODE_ALWAYS_WORK,//脱机联机都工作
LPR_LIST_WORK_MODE_ALL
};
enum SDK_LPR_BLACK_WHITE_LIST_MATCH_MODE
{
LPR_LIST_MATCH_MODE_EXACT,//精确匹配
LPR_LIST_MATCH_MODE_IGNORE_CHINESE,//忽略汉字,不比较车牌中的汉字
LPR_LIST_MATCH_MODE_SIMILAR_CHAR,//相似字符匹配 0-D 8-B O-Q E-F
LPR_LIST_MATCH_MODE_PLAIN_CHAR,//普通字符匹配
LPR_LIST_MATCH_MODE_ALL
};
struct SDK_LprBlackWhiteListMatchMode
{
char chFuzzyMatchMode;//模糊匹配模式如LPR_BLACK_WHITE_LIST_MATCH_MODE
char chValue;//普通字符匹配模式时,允许字符不同的最大数
};
struct SDK_LprBlackWhiteListMode
{
char chListType;//0 黑名单;1 白名单
char chWorkMode;//工作模式如枚举 LPR_BLACK_WHITE_LIST_WORK_MODE
SDK_LprBlackWhiteListMatchMode stFuzzyMatchMode;//
};
struct SDK_LprBlackWhiteListModeAll
{
SDK_LprBlackWhiteListMode stLprBlackListWorkMode;
SDK_LprBlackWhiteListMode stLprWhiteListWorkMode;
};
//设置LED显示数据
struct SDK_LprLedShow
{
char chShowType;//0:余位;1:金额
char chLineNo;//行号
char chInterval;//时间间隔,显示多长时间(秒)
int iValue;//显示屏显示内容,显示金额 、剩余车位
};
//针对临时车收费自动抬杆
struct SDK_LprAutoContrlGate
{
char chEntryEnable;//入口抬杆使能
char chExitEnable;//出口抬杆使能
};
//出入场配置
enum SDK_LPR_ENTRY_EXIT_TYPE
{
LPR_TYPE_ENTRY,
LPR_TYPE_EXIT,
LPR_ENTRY_EXIT_TYPE_ALL
};
//车牌识别智能收费系统出入场配置
struct SDK_LprEntryExitSet
{
char chEntryExit; //设置该相机是出场还是入场使用
char pEntryExitName[24];//出入口名称
};
//车牌收费系统停车场信息
struct SDK_LprParkingLotInfo
{
char chParkingType; //停车场类型
char pParkingName[64]; //停车场名称
char pPhoneNo[24]; //联系电话
int iTotalParkingSpace; //总车位
int iUsedParkingSpace; //已停车数
};
enum SDK_SendType
{
LPR_CHARGE_RULE=1, //收费规则--见struct SDK_LRPChargeRule
LPR_CHARGE_MODE, //收费模式--见struct SDK_LPRTempCarChargeRule
LPR_AUTO_CONTRL, //自动抬杆--见struct SDK_LprAutoContrlGate
};
struct SDK_LprHttpCommunication
{
char pServerAddr[24]; //服务器地址
int iPort; //端口
int iTimeOut; //超时时间
char chPushResultEnable; //是否推送识别结果
char pPushResultAddr[128]; //识别结果推送地址
char chPushPicEnable; //推送大图片使能
char chPushSmallPicEnable; //推送小图片使能
};
struct SDK_LPR_VERSION
{
char pLprVersion[64];
};
/*===================车牌识别配置功能=======end======================*/
//ipc onvif搜索时自动修改ip为局域网ip
typedef struct SDK_IPAdaptiveCfg
{
bool bIPAdaptive; //IP自适应配置
}SDK_IPAdaptiveCfg;
//查询日历条件
typedef struct SDK_SearchCalendar
{
int year;
int month;
int nFileType; //文件类型, 见SDK_File_Type
}SDK_SearchCalendar;
//一个月内哪些天有符合要求的录像或图片
typedef struct SDK_SearchCalendarMask
{
int mask; //每位代表一天从低位开始,1:有录像, 0:无录像
}SDK_SearchCalendarMask;
typedef struct SDK_HardDiskInfo{
bool bIsCurrent; ///< 是否为当前工作盘
unsigned int uiTotalSpace; ///< 总容量,MB为单位
unsigned int uiRemainSpace; ///< 剩余容量,MB为单位
}SDK_HardDiskInfo;
typedef struct SDK_OemGetInfo
{
int iConnectNum; //连接数
int iDisk; //硬盘个数
SDK_HardDiskInfo cHardDisk[SDK_MAX_DISK_PER_MACHINE];//硬盘剩余容量
char cRecordState[NET_MAX_CHANNUM]; //录像状态
char cVersion[64]; //版本信息
}SDK_OemGetInfo;
typedef enum {
DEV_TYPE3_DOOR_CONTACT = 0, //门磁
DEV_TYPE3_INFRA = 1, //红外
DEV_TYPE3_SHOCK = 2, //震动
DEV_TYPE3_BROKEN_GLASS = 3, //破碎
DEV_TYPE3_SMOKE_SENSOR = 4, //烟感
DEV_TYPE3_GAS_SENSOR = 5, //气感
DEV_TYPE3_WATER_SENSOR = 6, //漏水
DEV_TYPE3_REMOTE_CONTROL = 7, //遥控器
DEV_TYPE3_ENVIRO_SENSOR = 8, //温度
DEV_TYPE3_NR, //其他
}SDK_DEVICE_TYPE3;
typedef enum {
DEFENCE_TYPE_24HOUR_STEAL = 0, //24小时窃盗防区
DEFENCE_TYPE_STOP, //傍路
DEFENCE_TYPE_FIRE, //24小时火警防区
DEFENCE_TYPE_SILENT, //24小时无声劫盗防区
DEFENCE_TYPE_VOICE, //24小时有声劫盗防区
DEFENCE_TYPE_INTIME_STEAL, //延时窃盗防区
DEFENCE_TYPE_DELAYED_STEAL, //即时窃盗防区
DEFENCE_TYPE_NR,
}SDK_DEFENCE_TYPE;
//433消费类产品添加的报警设备
typedef struct SDK_ConsumerAlarm433Dev
{
int nChannel; //通道
int nDefenceType; //防区类型--见枚举SDK_DEFENCE_TYPE
char pDevID[16]; //报警设备ID,包括遥控器ID
char pDevName[32]; //报警设备昵称
int pDevType; //报警设备类型--见枚举SDK_DEVICE_TYPE3
bool bEnable; //动态检测开启
SDK_EventHandler hEvent;//动态检测联动
}SDK_ConsumerAlarm433Dev;
typedef struct SDK_ConsumerAlarm433DevList
{
SDK_ConsumerAlarm433Dev vAlarm433DevList[32]; //IPC连接的传感器个数
}SDK_ConsumerAlarm433DevList;
enum SDK_ConsumerProCmd
{
CONSUMER_PRO_ADD_DEV = 0, ///< 添加报警设备
CONSUMER_PRO_STOP_ADD_DEV = 1, ///< 停止添加报警设备
CONSUMER_PRO_DEL_DEV = 2, ///< 删除已经添加的报警设备
CONSUMER_PRO_CHANGE_DEV_NAME = 3, ///< 修改已经添加设备的名称
CONSUMER_PRO_INQUIRY_STATUS = 4, ///< 获取传感器的电量和状态
//CONSUMER_PRO_INQUIRY_INFO = 5, ///< 查询设备信息
CONSUMER_PRO_GET_DEV_LIST = 5, ///< 获取设备列表
CONSUMER_PRO_CHANGE_DEV_STATUS = 6, ///< 修改传感器的状态 open or close
CONSUMER_PRO_GET_DEVLIST_STATUS = 7,///< 获取已经在线的设备列表
CONSUMER_PRO_CHANGE_MODE = 8, ///< 切换场景模式
CONSUMER_PRO_GET_MODE_CFG = 9, ///< 获取对应模式的状态
CONSUMER_PRO_GET_MODE_LIST = 10, ///< 获取模式列表
CONSUMER_PRO_CHANGE_MODE_NAME = 11, ///< 修改模式名字
CONSUMER_PRO_GET_LINK_STATE = 12, ///< 判断设备是否在线
CONSUMER_PRO_NR ///< 命令个数
};
typedef struct SDK_ConsumerProOpr
{
int cmd; //如枚举SDK_ConsumerProCmd
char pArg1[20]; //设备的类型--SDK_DEVICE_TYPE3
char pArg2[32]; //设备名称
int Channel; //对应的设备通道
int nDefenceType;//防区类型
char res[4];
}SDK_ConsumerProOpr;
//关于ipc功能的密码校验
typedef struct SDK_IpcOnvifPwdCheckout
{
bool cEnable;
}SDK_IpcOnvifPwdCheckout;
//上海熠知二次开发需要配置
//只用来IE端设置获取设置,没有本地端
typedef struct SDK_CustomURLCfg
{
char pautoupload[NAME_URL_LEN];//自动上传地址
char pvideoupload[NAME_URL_LEN];//视频上传地址
char pcameraupload[NAME_URL_LEN];//摄像头上传地址
char ppincode[NAME_TOKEN_LEN];//PIN码
}SDK_CustomURLCfg;
typedef struct SDK_hiIVE_RECT_S
{
int u16X; //左上角x
int u16Y; //左上角y
int u16Width;
int u16Hight;
}SDK_IVE_RECT_S;
typedef struct SDK_BALLCAMERA_COVER_S
{
int MainStatus; // 1表示开屏蔽; 2表示关屏蔽
int iRectEnable[6]; // 1表示框有效; 2表示框无效
SDK_IVE_RECT_S astMaskRect[6];
}SDK_BALLCAMERA_COVER_S;
//球机跟踪识别参数设置
typedef struct SDK_BallCameraTrackDetectParamAll
{
SDK_BALLCAMERA_COVER_S vTrackDetect[NET_MAX_CHANNUM];
}SDK_BallCameraTrackDetectParamAll;
//夜晚情景特殊模式
typedef struct SDK_CameraSpecialNightCtrl
{
bool bEnable; //false表示关闭,true为打开
}SDK_CameraSpecialNightCtrl;
typedef struct SDK_AWB_ATTR
{
int enOpType;
short u16Rgain;
short u16Grgain;
short u16Gbgain;
short u16Bgain;
}SDK_AWB_ATTR;
typedef struct SDK_CameraSensorAbility
{
char CheckValue[64];
char SensorResolution[64];
char SensorType[64];
}SDK_CameraSensorAbility;
typedef struct SDK_SWITCH_WIFI_MODE
{
char actionMode[10]; //ToAP:切换到AP模式
int channel; //通道值的范围[0-13]
}SDK_SWITCH_WIFI_MODE;
// 数据上传通道回调函数原型
typedef void (CALL_METHOD *fUploadDataCallBack) (long lLoginID, long UploadType, char *pBuffer, unsigned long dwBufSize, unsigned long dwUser);
// 透明串口回调函数原形
typedef void (CALL_METHOD *fTransComCallBack) (long lLoginID, long lTransComType, char *pBuffer, unsigned long dwBufSize, unsigned long dwUser);
//服务器断开回调原形
typedef void (CALL_METHOD *fDisConnect)(long lLoginID, char *pchDVRIP, long nDVRPort, unsigned long dwUser);
//原始数据回调原形
typedef int(CALL_METHOD *fRealDataCallBack) (long lRealHandle, long dwDataType, unsigned char *pBuffer,long lbufsize,long dwUser);
typedef int(CALL_METHOD *fRealDataCallBack_V2) (long lRealHandle, const PACKET_INFO_EX *pFrame, long dwUser);
// 回放录像进度回调原形
typedef void(CALL_METHOD *fDownLoadPosCallBack) (long lPlayHandle, long lTotalSize, long lDownLoadSize, long dwUser);
//消息(报警,主动注册)回调原形
/*
1.报警,pBuf说明--ntype = ALARM_TYPE
SDK_AlarmInfo alarmInfo;
memcpy ( &alarmInfo, pBuf, dwBufLen );
2.主动注册,pBuf说明,
H264_DVR_ACTIVEREG_INFO activeInfo;
memcpy ( &activeInfo, pBuf, dwBufLen );
3.图片推送,pBuf说明--nType=PUSH_TYPE
SDK_PushRetData PushDetect;
memcpy(&PushDetect, pBuf, sizeof(SDK_PushRetData));
*/
typedef bool (CALL_METHOD *fMessCallBack)(long lLoginID, char *pBuf, unsigned long dwBufLen, long dwUser, int nType);
//升级设备程序回调原形
/*
nSendSize = -1 说明升级完成
nSendSize = -2 说明升级出错
nTotalSize = -1时, nSendSize:1-99返回升级进度
nTotalSize =0时,nSendSize = H264_DVR_NOENOUGH_MEMORY-H264_DVR_INVALID_WIFI_DRIVE 升级错误具体码
其他就是发送进度
云升级增加了这一步:nTotalSize=-2时,nSendSize:0 - 100=下载进度,没有发送进度
*/
typedef void(CALL_METHOD *fUpgradeCallBack) (long lLoginID, long lUpgradechannel,
int nTotalSize, int nSendSize, long dwUser);
// 语音对讲的音频数据回调函数原形
typedef void (CALL_METHOD *pfAudioDataCallBack)(long lVoiceHandle, char *pDataBuf,
long dwBufSize, char byAudioFlag, long dwUser);
//本地播放结束回调原形
typedef void (CALL_METHOD * fLocalPlayFileCallBack)(long lPlayHand, long nUser);
//信息帧回调设置
typedef void (CALL_METHOD *InfoFramCallBack)(long lPlayHand, long nType, LPCSTR pBuf,long nSize, long nUser);
//子连接断线回调
typedef void (CALL_METHOD *fSubDisConnectCallBack)(long lLoginID, SubConnType type, long nChannel, long dwUser);
#ifdef WIN32
//RigisterDraw回调原形
typedef void (CALL_METHOD * fPlayDrawCallBack)(long lPlayHand,HDC hDc,long nUser);
#else//linux没用到这个回调
typedef void (CALL_METHOD * fPlayDrawCallBack)(long lPlayHand,void* hDc,long nUser);
#endif // Wi n32
/*
描述:SDK初始化
参数:
cbDisConnect[out]:断线回调函数
dwUser[in]:回调函数参数
返回值:
=1: 成功
<=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_Init(fDisConnect cbDisConnect, unsigned long dwUser);
/*
描述:SDK退出清理
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_Cleanup();
/*
描述:获取错误信息
返回值:
错误码
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetLastError();
/*
描述:设置登录设备超时时间和尝试次数
参数:
nWaitTime[in]:单位ms不设置时默认5000ms,
nTryTimes[in]:次数,不设置时默认3次
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetConnectTime(long nWaitTime, long nTryTimes);
/*
描述:登陆设备
参数:
sDVRIP[in]: ip
wDVRPort[in]: 端口
sUserName[in]: 用户名
sPassword[in]: 密码
lpDeviceInfo[out]:返回设备信息
error[out]: 返回登陆错误码
socketType[in]: 登陆方式
返回值:
>0: 成功,从1开始到n,每次登录一台设备返回值+1
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_Login(char *sDVRIP, unsigned short wDVRPort, char *sUserName, char *sPassword,
LPH264_DVR_DEVICEINFO lpDeviceInfo, int *error,int socketType DEF_PARAM(0));
/*
描述:登陆设备扩展接口
参数:
sDVRIP[in]: ip
wDVRPort[in]: 端口
sUserName[in]: 用户名
sPassword[in]: 密码
lpDeviceInfo[out]:返回设备信息
nType[in]: 登陆类型,0==web 1 ==升级工具 2 == 搜索工具 102 == 外部加密,内部就不用加密了
error[out]: 返回登陆错误码
返回值:
>0: 成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_LoginEx(char *sDVRIP, unsigned short wDVRPort, char *sUserName, char *sPassword,
LPH264_DVR_DEVICEINFO lpDeviceInfo, int nType, int *error);
/*
描述:登陆接口V2版本,可以指定客户端类型登陆
参数:
sDVRIP[in]: ip
wDVRPort[in]: 端口
sUserName[in]: 用户名
sPassword[in]: 密码
lpDeviceInfo[out]:返回设备信息
nType[in]: 登陆类型,见enum SDK_LoginType
error[out]: 返回登陆错误码
socketType[in]: 登陆方式
返回值:
>0: 成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_LoginEx_V2(char *sDVRIP, unsigned short wDVRPort, char *sUserName, char *sPassword,
LPH264_DVR_DEVICEINFO lpDeviceInfo, int nType, int *error,int socketType);
/*
描述:客户云登陆接口
参数:
sDVRIP[in]: 设备序列号
wDVRPort[in]: 端口
sUserName[in]: 用户名
sPassword[in]: 密码
lpDeviceInfo[out]:返回设备信息
error[out]: 返回登陆错误码
uuid[in]: uuid
返回值:
>0: 成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_Login_Cloud(char *sDVRIP, unsigned short wDVRPort, char *sUserName, char *sPassword,
LPH264_DVR_DEVICEINFO lpDeviceInfo, int *error,char* uuid);
/*
描述:向设备注销,登出设备
参数:
lLoginID[in]:登陆句柄
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_Logout(long lLoginID);
/*
描述:设置接收DVR信息回调, 例如报警信息,以ID号区分
参数:
cbAlarmcallback[out]:回调函数
lUser[in]: 回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetDVRMessCallBack(fMessCallBack cbAlarmcallback, unsigned long lUser);
/*
描述:建立报警上传通道
参数:
lLoginID[in]:登陆句柄
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetupAlarmChan(long lLoginID);
/*
描述:关闭报警上报
参数:
lLoginID[in]:登陆句柄
返回值:
=1:成功
=0:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CloseAlarmChan(long lLoginID);
/*
描述:远程获取配置参数
参数:
lLoginID[in]: 登陆句柄
dwCommand[in]: 控制命令,见enum SDK_CONFIG_TYPE
nChannelNO[in]: -1代表全通道,0-n代表单个通道
lpOutBuffer[out]: 接收缓冲
dwOutBufferSize[in]: 接收缓冲大小
lpBytesReturned[out]:返回的数据大小
waittime[in]: 等待时间
返回值:
=1:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetDevConfig(long lLoginID, unsigned long dwCommand, int nChannelNO, char * lpOutBuffer, unsigned long dwOutBufferSize, unsigned long* lpBytesReturned,int waittime DEF_PARAM(1000));
/*
描述:远程设置配置参数
参数:
lLoginID[in]: 登陆句柄
dwCommand[in]: 控制命令,见enum SDK_CONFIG_TYPE
nChannelNO[in]: -1代表全通道,0-n代表单个通道
lpInBuffer[out]: 输入缓冲
dwInBufferSize[in]: 输入缓冲大小
waittime[in]: 等待时间
返回值:
=1:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetDevConfig(long lLoginID, unsigned long dwCommand, int nChannelNO, char * lpInBuffer, unsigned long dwInBufferSize, int waittime DEF_PARAM(1000));
/*
描述:跨网段设置设备配置,目前只支持对网络配置进行设置
参数:
dwCommand[in]: E_SDK_CONFIG_SYSNET
nChannelNO[in]: 1临时保存,其他为永久保存
lpInBuffer[in]: SDK_CONFIG_NET_COMMON_V3结构体地址
dwInBufferSize[in]:sizeof(SDK_CONFIG_NET_COMMON_V3)
waittime[in]: 等待时间
返回值:
=0:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetConfigOverNet(unsigned long dwCommand, int nChannelNO, char * lpInBuffer, unsigned long dwInBufferSize, int waittime DEF_PARAM(1000));
/*
描述:日志查询
参数:
lLoginID[in]:登陆句柄
pFindParam[in]:查询条件
pRetBuffer[out]:日志返回信息
lBufSize[in]:接收日志信息大小
waittime:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_FindDVRLog(long lLoginID, SDK_LogSearchCondition *pFindParam, SDK_LogList *pRetBuffer, long lBufSize, int waittime DEF_PARAM(2000));
/*
描述:打开实时预览
参数:
lLoginID[in]: 登陆句柄
lpClientInfo[in]:播放信息
返回值:
>0或<0:成功,预览播放句柄
=0:失败,经常出现的错误码分析例如-11202见文档
*/
H264_DVR_API long CALL_METHOD H264_DVR_RealPlay(long lLoginID, LPH264_DVR_CLIENTINFO lpClientInfo);
/*
描述:停止实时预览
参数:
lRealHandle[in]: 预览播放句柄
lpClientInfo[in]:播放信息
返回值:
>0或<0:成功
=0:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopRealPlay(long lRealHandle,void*hWnd DEF_PARAM(0));
/*
描述:控制实时预览
参数:
lRealHandle[in]:预览播放句柄
bPause[in]: 暂停或继续 1-暂停 0-继续
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_PauseRealPlay(long lRealHandle, bool bPause);
/*
描述:设置数据回调
参数:
lRealHandle[in]:预览播放句柄
cbRealData[out]:实时数据回调
dwUser[in]: 回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetRealDataCallBack(long lRealHandle,fRealDataCallBack cbRealData, long dwUser);
/*
描述:数据经过码流分析过,带有帧的具体信息,其他与H264_DVR_SetRealDataCallBack相同
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetRealDataCallBack_V2(long lRealHandle,fRealDataCallBack_V2 cbRealData, long dwUser);
/*
描述:清除回调函数,该函数需要在H264_DVR_StopRealPlay前调用
参数:
lRealHandle[in]:预览播放句柄
cbRealData[in]: 实时回调函数
dwUser[in]: 实时回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_DelRealDataCallBack(long lRealHandle,fRealDataCallBack cbRealData, long dwUser);
/*
描述:清除回调函数V2版本
参数:
lRealHandle[in]:预览播放句柄
cbRealData[in]: 实时回调函数V2版本
dwUser[in]: 实时回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_DelRealDataCallBack_V2(long lRealHandle,fRealDataCallBack_V2 cbRealData, long dwUser);
/*
描述:按文件名查询录像
参数:
lLoginID[in]:登陆句柄
lpFindInfo[in]:查询条件
lpFileData[out]:查询结果
lMaxCount[in]:查询的最大录像数量
findcount[out]:查询到的录像数量
waittime[in]:等待时间
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_FindFile(long lLoginID, H264_DVR_FINDINFO* lpFindInfo, H264_DVR_FILE_DATA *lpFileData, int lMaxCount, int *findcount, int waittime DEF_PARAM(5000));
/*
描述:按时间查询录像文件
参数:
lLoginID[in]:登陆句柄
lpFindInfo[in]:查询条件
lpFileData[out]:查询结果
waittime[in]:等待时间
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_FindFileByTime(long lLoginID, SDK_SearchByTime* lpFindInfo, SDK_SearchByTimeResult *lpFileData, int waittime DEF_PARAM(10000));
/*
描述:按文件名回放录像
参数:
lLoginID[in]: 登陆句柄
sPlayBackFile[in]: 回放的文件参数
cbDownLoadPos[out]:进度回调,用户通知用户设备是否已经将数据发送完毕,回调中的lDownLoadSize=-1代表数据发送完毕
客户如果想实时显示进度,应该从码流里面获取时间来计算网络部分不分析码流,如果以当前接收数据大小/总大小来计算进度的话不是很准,应该以当前时间,根据开始时间和结束时间来计算进度
fDownLoadDataCallBack[out]:回放数据回调
dwDataUser[in]: 数据回调参数
返回值:
>0或<0:成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_PlayBackByName(long lLoginID, H264_DVR_FILE_DATA *sPlayBackFile, fDownLoadPosCallBack cbDownLoadPos, fRealDataCallBack fDownLoadDataCallBack, long dwDataUser);
/*
描述:按文件名回放录像
参数:
lLoginID[in]: 登陆句柄
sPlayBackFile[in]: 回放的文件参数
cbDownLoadPos[out]:进度回调,用户通知用户设备是否已经将数据发送完毕,回调中的lDownLoadSize=-1代表数据发送完毕
客户如果想实时显示进度,应该从码流里面获取时间来计算网络部分不分析码流,如果以当前接收数据大小/总大小来计算进度的话不是很准,应该以当前时间,根据开始时间和结束时间来计算进度
fDownLoadDataCallBack[out]:回放数据回调,数据经过码流分析
dwDataUser[in]: 数据回调参数
返回值:
>0或<0:成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_PlayBackByName_V2(long lLoginID, H264_DVR_FILE_DATA *sPlayBackFile, fDownLoadPosCallBack cbDownLoadPos, fRealDataCallBack_V2 fDownLoadDataCallBack, long dwDataUser);
/*
描述:按时间回放录像
参数:
lLoginID[in]: 登陆句柄
lpFindInfo[in]: 查询录像条件
cbDownLoadPos[out]:进度回调,用户通知用户设备是否已经将数据发送完毕,回调中的lDownLoadSize=-1代表数据发送完毕
fDownLoadDataCallBack[out]:回放数据回调
dwDataUser[in]: 数据回调参数
返回值:
>0或<0:成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_PlayBackByTime(long lLoginID, H264_DVR_FINDINFO* lpFindInfo, fDownLoadPosCallBack cbDownLoadPos, fRealDataCallBack fDownLoadDataCallBack, long dwDataUser);
/*
描述:按时间回放录像Ex,进度回调和数据回调用不同的回调参数,其他与H264_DVR_PlayBackByTime相同
*/
H264_DVR_API long CALL_METHOD H264_DVR_PlayBackByTimeEx(long lLoginID, H264_DVR_FINDINFO* lpFindInfo,fRealDataCallBack fDownLoadDataCallBack, long dwDataUser,
fDownLoadPosCallBack cbDownLoadPos, long dwPosUser);
/*
描述:fDownLoadDataCallBack数据回调出来的数据的码流分析过,其他与H264_DVR_PlayBackByTimeEx相同
*/
H264_DVR_API long CALL_METHOD H264_DVR_PlayBackByTime_V2(long lLoginID, H264_DVR_FINDINFO* lpFindInfo,fRealDataCallBack_V2 fDownLoadDataCallBack, long dwDataUser,
fDownLoadPosCallBack cbDownLoadPos, long dwPosUser);
/*
描述:停止录像回放
参数:
lPlayHandle[in]:回放句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopPlayBack(long lPlayHandle);
/*
描述:回放控制
参数:
lPlayHandle[in]:回放句柄
lControlCode[in]:控制命令,见enum SDK_PlayBackAction
lCtrlValue[in]:控制值
itype[in]:类型--仅智能回放定位才有效,各类型的掩码--见enum SDK_PLAY_BACK_SETTYPE
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_PlayBackControl(long lPlayHandle, long lControlCode,long lCtrlValue, int itype DEF_PARAM(0));
/*
描述:按文件名下载,用户可以不使用回调,自己通过H264_DVR_GetDownloadPos获取进度
参数:
lLoginID[in]: 登陆句柄
sPlayBackFile[in]: 下载的录像信息
sSavedFileName[in]: 保存的文件路径
cbDownLoadPos[out]:下载进度回调
dwDataUser[in]: 回调函数参数
fDownLoadDataCallBack[out]:数据回调
返回值:
<0或>0:成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetFileByName(long lLoginID,H264_DVR_FILE_DATA *sPlayBackFile,char *sSavedFileName,
fDownLoadPosCallBack cbDownLoadPos DEF_0_PARAM, long dwDataUser DEF_0_PARAM,fRealDataCallBack fDownLoadDataCallBack DEF_0_PARAM);
/*
描述:按文件名下载V2版本,数据回调是经过码流分析过,其他与H264_DVR_GetFileByName相同
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetFileByName_V2(long lLoginID,H264_DVR_FILE_DATA *sPlayBackFile,char *sSavedFileName,
fDownLoadPosCallBack cbDownLoadPos DEF_0_PARAM, long dwDataUser DEF_0_PARAM,fRealDataCallBack_V2 fDownLoadDataCallBack_V2 DEF_0_PARAM);
/*
描述:按时间下载V2版本
参数:
lLoginID[in]: 登陆句柄
lpFindInfo[in]: 录像查询条件
sSavedFileDIR[in]: 录像文件保存路径
bMerge[in]: 文件是否合并
cbDownLoadPos[out]: 进度回调,用户通知用户设备是否已经将数据发送完毕,回调中的lDownLoadSize=-1代表数据发送完毕
dwDataUser[in]: 回调函数参数
fDownLoadDataCallBack[in]:数据回调
返回值:
>0或<0:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetFileByTime(long lLoginID, H264_DVR_FINDINFO* lpFindInfo, char *sSavedFileDIR, bool bMerge DEF_PARAM(0),
fDownLoadPosCallBack cbDownLoadPos DEF_0_PARAM, long dwDataUser DEF_0_PARAM,fRealDataCallBack fDownLoadDataCallBack DEF_0_PARAM);
/*
描述:数据回调出来的数据的码流分析过,其他与H264_DVR_GetFileByTime相同
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetFileByTime_V2(long lLoginID, H264_DVR_FINDINFO* lpFindInfo, char *sSavedFileDIR, bool bMerge
,fDownLoadPosCallBack cbDownLoadPos DEF_0_PARAM,long dwDataUser DEF_0_PARAM,fRealDataCallBack_V2 fDownLoadDataCallBack_V2 DEF_0_PARAM);
/*
描述:停止下载文件
参数:
lFileHandle[in]:下载文件句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopGetFile(long lFileHandle);
/*
描述:下载控制
参数:
lPlayHandle[in]: 下载句柄
lControlCode[in]:控制命令,见enum SDK_PlayBackAction
bDown[in]: 是否位下载,默认为1
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_GetFileControl(long lPlayHandle, long lControlCode, bool bDown DEF_PARAM(1));
/*
描述:获取下载进度
参数:
lFileHandle[in]:下载句柄
返回值:
>=0:下载进度
<0: 失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_GetDownloadPos(long lFileHandle);
/*
描述:本地升级
参数:
lLoginID[in]: 登陆句柄
sFileName[in]:升级文件路径
nType[in]: 升级类型,1-开始升级 0-终止升级
cbUpgrade[in]:升级进度回调
dwUser[in]: 回调函数参数
返回值:
>0或<0: 成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_Upgrade(long lLoginID, char *sFileName, int nType DEF_0_PARAM, fUpgradeCallBack cbUpgrade DEF_0_PARAM, long dwUser DEF_0_PARAM);
/*
描述:得到升级状态
参数:
lUpgradeHandle[in]:升级句柄
返回值:
1:成功
2:正在升级
3:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_GetUpgradeState(long lUpgradeHandle);
/*
描述:释放升级句柄
参数:
lUpgradeHandle[in]:升级句柄
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_CloseUpgradeHandle(long lUpgradeHandle);
/*
描述:云台控制
参数:
lLoginID[in]: 登陆句柄
nChannelNo[in]: 通道号
lPTZCommand[in]:控制命令,见enum PTZ_ControlType
bStop[in]: 是否是停止,0为打开,1为停止
lSpeed[in]: 速度
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_PTZControl(long lLoginID,int nChannelNo, long lPTZCommand, bool bStop DEF_PARAM(0), long lSpeed DEF_PARAM(4));
/*
描述:1、设置,删除,转到预置点时:lParam1为预置点值
2、加入预置点到巡航,删除巡航中预置点时:lParam1为巡航线路值,lParam2为预置点值,lParam3为时间间隔
3、开始巡航,停止巡航,清除巡航线路时:lParam1为巡航线路值
4、云台方向设置时:lParam1为水平步长,lParam2为垂直步长
5、左边界设置,右边界设置,自动扫线功能:
参数:
lLoginID[in]: 登陆句柄
nChannelNo[in]: 通道号
lPTZCommand[in]:控制命令,见enum PTZ_ControlType
lParam1[in]: 参数1
lParam2[in]: 参数2
lParam3[in]: 参数3
bStop[in]: 是否是停止,0为打开,1为停止
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_PTZControlEx(long lLoginID,int nChannelNo, long lPTZCommand,
long lParam1, long lParam2, long lParam3, bool bStop DEF_0_PARAM);
/*
描述:设备控制
参数:
lLoginID[in]:登陆句柄
type[in]: 控制类型,0 重启设备,1 清除日志 2 关机 3.恢复记录日志 4.停止记录日志
waittime[in]:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_ControlDVR(long lLoginID, int type, int waittime DEF_PARAM(2000));
/*
描述:搜索局域网内的设备
参数:
szBuf[out]: 接收缓冲
nBufLen[in]: 接收缓冲大小,sizeof(SDK_CONFIG_NET_COMMON_V2)*n
pRetLen[in]: 返回的大小
nSearchTime[in]:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SearchDevice(char* szBuf, int nBufLen, int* pRetLen, int nSearchTime);
H264_DVR_API bool CALL_METHOD H264_DVR_SearchDevice_IPV6(char* szBuf, int nBufLen, int* pRetLen, int nSearchTime, int ntype);
typedef void ( CALL_METHOD *pfSearchDeviceCallBack)(SDK_CONFIG_NET_COMMON_V2 *pNetCom , unsigned long userData);
//
/*
描述:搜索局域网内的设备,搜索局域网内的设备V2版本
参数:
pfNetCom[out]: 回调函数
userData[in]: 回调参数
nSearchTime[in]:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SearchDevice_V2(pfSearchDeviceCallBack pfNetCom,unsigned long userData, int nSearchTime);
/*
描述:开始对讲
参数:
lLoginID[in]: 登陆句柄
pVcb[out]: 接收对讲数据回调
dwDataUser[in]:回调函数参数
返回值:
>0或<0: 成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_StartVoiceCom_MR(long lLoginID, pfAudioDataCallBack pVcb, long dwDataUser);
/*
描述:发送对讲数据
参数:
lVoiceHandle[in]:对讲句柄
pSendBuf[in]: 对讲数据
lBufSize[in]: 对讲数据大小
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_VoiceComSendData(long lVoiceHandle, char *pSendBuf, long lBufSize);
/*
描述:停止对讲
参数:
lVoiceHandle[in]:对讲句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopVoiceCom(long lVoiceHandle);
/*
描述:设置对讲音频编码方式,用户可以不设置,默认为G711A编码
参数:
lLoginID[in]: 登陆句柄
pTalkMode[in]: 通道号,-1代表全通道,0-n代表单个通道
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetTalkMode(long lLoginID, SDK_AudioInFormatConfig* pTalkMode);
/*
描述:设置录像模式
参数:
lLoginID[in]: 登陆句柄
nChannelNo[in]: 通道号,-1代表全通道,0-n代表单个通道
lRecordType[in]:录像模式,见enum SDK_RecordModeTypes
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StartDVRRecord(long lLoginID, int nChannelNo ,long lRecordType);
/*
描述:关闭录像
参数:
lLoginID[in]: 登陆句柄
nChannelNo[in]: 通道号,-1代表全通道,0-n代表单个通道
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopDVRRecord(long lLoginID, int nChannelNo);
/*
描述:设置设备系统时间
参数:
lLoginID[in]:登陆句柄
pSysTime[in]:时间
nType[in]:系统时间类型(true-新的系统时间)
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetSystemDateTime(long lLoginID, SDK_SYSTEM_TIME *pSysTime, bool nType DEF_0_PARAM);
/*
描述:得到设备的工作状态
参数:
lLoginID[in]: 登陆句柄
pWorkState[out]:设备的工作状态
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_GetDVRWorkState(long lLoginID, SDK_DVR_WORKSTATE *pWorkState);
/*
描述:网络键盘,具体使用方法见ClientDemo
参数:
lLoginID[in]: 登陆句柄
pKeyBoardData[in]:网络键盘参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_ClickKey(long lLoginID, SDK_NetKeyBoardData *pKeyBoardData);
/*
描述:对硬盘进行分区,格式化等等操作
参数:
lLoginID[in]: 登陆句柄
pStorageCtl[in]:操作参数
返回值:
=1: 成功
<=0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_StorageManage(long lLoginID, SDK_StorageDeviceControl *pStorageCtl);
/*
描述:发送网络报警信息
参数:
lLoginID[in]: 登陆句柄
pAlarmInfo[in]:网络报警参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SendNetAlarmMsg(long lLoginID, SDK_NetAlarmInfo *pAlarmInfo);
/*
描述:设备端抓图,即抓设备端发过来的即时的一张图片的内存buf
1.需要设备配置里面有抓图配置选项该接口才有效
2.如果满足1,默认抓出来的分辨率是D1,如果想抓跟视频分辨率一样的图片,就需要修改编码设置里的抓图分辨率,
如果编码设置没有抓图分辨率选项,则需要定制支持该项的程序
参数:
lLoginID[in]: 登陆句柄
nChannel[in]: 通道号
sFileName[in]:保存路径
nType[in]:图片类型默认为jpg, 0:jpg 1:YUV
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CatchPic(long lLoginID, int nChannel, char *sFileName, int nType DEF_0_PARAM);
/*
描述:设备端抓图,即抓设备端发过来的即时的一张图片的内存buf,外部生成文件
1.需要设备配置里面有抓图配置选项该接口才有效
2.如果满足1,默认抓出来的分辨率是D1,如果想抓跟视频分辨率一样的图片,就需要修改编码设置里的抓图分辨率,
如果编码设置没有抓图分辨率选项,则需要定制支持该项的程序
参数:
lLoginID[in]:登陆句柄
nChannel[in]:通道号
pBuffer[out]:接收缓冲
nBufLen[in]:接收缓冲的大小
pPicLen[in]:实际返回的大小
nType[in]:图片类型默认为jpg, 0:jpg 1:YUV
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CatchPicInBuffer(long lLoginID, int nChannel, char *pBuffer, int nBufLen, int *pPicLen, int nType DEF_0_PARAM);
/*
描述:启动报警中心监听(具体用法见AlarmCenter demo)
参数:
nPort[in]: 监听端口号
cbAlarmCenter[out]:数据回调
dwDataUser[in]: 回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StartAlarmCenterListen(int nPort, fMessCallBack cbAlarmCenter, unsigned long dwDataUser);
/*
描述:关闭报警中心监听(具体用法见AlarmCenter demo)
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopAlarmCenterListen();
/*
描述:通过串口向设备写数据
参数:
lLoginID[in]:登陆句柄
nType[in]: 串口类型
pBuffer[in]: 数据
nBufLen[in]: 数据长度
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SerialWrite(long lLoginID, SERIAL_TYPE nType, char *pBuffer, int nBufLen);
/*
描述:通过串口从设备读数据
参数:
lLoginID[in]: 登陆句柄
nType[in]: 串口类型
pBuffer[out]: 接收数据
nBufLen[in]: 接收数据长度
pReadLen[out]:收到的数据长度
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SerialRead(long lLoginID, SERIAL_TYPE nType, char *pBuffer, int nBufLen, int *pReadLen);
/*
描述:获取DDNS信息,具体用法见ClientDemo
参数:
searchmode[in]:搜索信息
pDevicInfo[out]:DDNS信息
maxDeviceNum[in]:最大设备数
nretNum[out]:得到的设备数
返回值:
=1:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_GetDDNSInfo(SearchMode &searchmode, DDNS_INFO *pDevicInfo, int maxDeviceNum, int &nretNum);
/*
描述:强制I帧
参数:
lLoginID[in]:登陆句柄
nChannel[in]:通道号
nStream[in]: 码流类型,0表示主码流,为1表示子码流
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_MakeKeyFrame(long lLoginID, int nChannel, int nStream);
/*
描述:获取OEM信息
参数:
lLoginID[in]: 登陆句柄
pOEMInfo[out]: OEM信息
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_GetOEMInfo(long lLoginID, SDK_OEMInfo *pOEMInfo);
/*
描述:创建透明串口通道
参数:
lLoginID[in]: 登陆句柄
TransInfo[in]: 透明串口参数
cbTransCom[out]: 设备数据回调
lUser[in]: 回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_OpenTransComChannel(long lLoginID, TransComChannel *TransInfo, fTransComCallBack cbTransCom, unsigned long lUser);
/*
描述:关闭透明串口通道
参数:
lLoginID[in]: 登陆句柄
nType[in]: 透明串口类型
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CloseTransComChannel(long lLoginID, SERIAL_TYPE nType);
//获取状态信息
H264_DVR_API bool CALL_METHOD H264_DVR_GetDeviceState(long lLoginID, SDK_State_Type type, char *pState);
/*
描述:获取本地ui图片
参数:
lLoginID[in]: 登陆句柄
saveFileName[in]:图片保存路径
type[in]: 保存图片类型,1:为全图片 2:活动区域图片
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CatchPicUI(long lLoginID,char *saveFileName,int type DEF_PARAM(1));
#ifdef WIN32
/*
描述:打开通道音频,预览/回放/本地播放一个函数
参数:
lHandle[in]:播放句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_OpenSound(long lHandle);
/*
描述:关闭通道音频,预览/回放/本地播放一个函数
参数:
lHandle[in]:播放句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CloseSound(long lHandle);
/*
描述:抓本地图片,预览/回放/本地播放一个函数
参数:
lHandle[in]:播放句柄
szSaveFileName[in]:保存图片路径
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_LocalCatchPic(long lHandle,char*szSaveFileName);
/*
描述:打开对讲
参数:
lLoginID[in]:登陆句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_StartLocalVoiceCom(long lLoginID);
/*
描述:开始本地录像
参数:
lRealHandle[in]:播放句柄
szSaveFileName[in]:录像路径
type[in]:录像类型
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StartLocalRecord(long lRealHandle,char*szSaveFileName,long type=0);
/*
描述:关闭本地录像
参数:
lRealHandle[in]:播放句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopLocalRecord(long lRealHandle);
/*
描述:播放本地文件
参数:
pFileName[in]: 录像文件路径
hWnd[in]: 播放窗口句柄
drawCallBack[out]:回调函数
user[in]: 回调函数参数
返回值:本地播放句柄
>0或<0:成功
=0: 失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_StartLocalPlay(char*pFileName,void* hWnd,fPlayDrawCallBack drawCallBack=0,long user=0);
/*
描述:关闭本地播放
参数:
lPlayHandle[in]:本地播放句柄
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopLocalPlay(long lPlayHandle);
/*
描述:获取播放位置(百分比),用于回放和本地播放,回放时传窗口句柄该接口才有效
参数:
lPlayHandle[in]:回放句柄或本地播放句柄
返回值:播放进度
*/
H264_DVR_API float CALL_METHOD H264_DVR_GetPlayPos(long lPlayHandle);
/*
描述:设置播放位置(百分比),用于回放,本地播放(本地回放时传窗口句柄该接口才有效)
参数:
lPlayHandle[in]:回放句柄或本地播放句柄
fRelativPos[in]:播放进度
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetPlayPos(long lPlayHandle,float fRelativPos);
/*
描述:播放控制(播放,停止,恢复,快发,慢放)
参数:
lPlayHandle[in]:回放句柄或本地播放句柄
action[in]: 播放控制类型
lCtrlValue[in]: 控制速度
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_LocalPlayCtrl(long lPlayHandle,SDK_LoalPlayAction action,long lCtrlValue);
/*
描述:设置本地播放结束回调
参数:
lPlayHandle[in]:回放句柄或本地播放句柄
callBack[out]: 播放结束回调
user[in]: 回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetFileEndCallBack(long lPlayHandle,fLocalPlayFileCallBack callBack,long user);
/*
描述:设置信息帧回调
参数:
lPlayHandle[in]:实时播放句柄或者回放句柄或本地播放句柄
callback[out]: 信息帧回调
user[in]: 回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetInfoFrameCallBack(long lPlayHandle,InfoFramCallBack callback,long user);
/*
描述:获取本地颜色,预览/回放/本地播放一个函数
参数:
lHandle[in]: 实时播放句柄或者回放句柄或本地播放句柄
nRegionNum[in]: 显示区域,如果只有一个显示区域(通常情况)设为0
pBrightness[out]:亮度
pContrast[out]: 对比度
pSaturation[out]:饱和度
pHue[out]: 色调
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_LocalGetColor(long lHandle, DWORD nRegionNum, LONG *pBrightness, LONG *pContrast, LONG *pSaturation, LONG *pHue);
/*
描述:本地颜色控制,预览/回放/本地播放一个函数
参数:
lHandle[in]: 实时播放句柄或者回放句柄或本地播放句柄
nRegionNum[in]: 显示区域,如果只有一个显示区域(通常情况)设为0
pBrightness[in]: 亮度
pContrast[in]: 对比度
pSaturation[in]: 饱和度
pHue[in]: 色调
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_LocalSetColor(long lHandle, DWORD nRegionNum, LONG nBrightness, LONG nContrast, LONG nSaturation, LONG nHue);
#endif
/*
描述:设置本地ip,socket通信套接字绑定的ip
参数:
szIP[in]:ip
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SetLocalBindAddress(char*szIP);
/*
描述:开启上报数据,包括车载信息经纬度/录像状态/数字通道连接状态/通道标题
参数:
lLoginID[in]:登陆句柄
upLoadType[in]:上报数据类型
callBack[out]:上报数据回调
lUser[in]:回调函数参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StartUploadData(long lLoginID,UploadDataType upLoadType,fUploadDataCallBack callBack,long lUser);
/*
描述:停止上报数据
参数:
lLoginID[in]:登陆句柄
upLoadType[in]:上报数据类型
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopUploadData(long lLoginID,UploadDataType upLoadType);
/*
描述:开始主动注册
参数:
nPort[in]:监听端口号,0<=nPort<=65535
cbFunc[out]: 注册上线回调函数
dwDataUser[in]:回调函数参数
返回值:
true:成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StartActiveRigister(int nPort, fMessCallBack cbFunc, unsigned long dwDataUser);
/*
描述:关闭主动注册
返回值:
true:成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopActiveRigister();
/*
描述:检测子连接异常断开
参数:
callBack[out]:子连接断开回调
userData[in]: 回调函数参数
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetSubDisconnectCallBack(fSubDisConnectCallBack callBack,DWORD userData);
/*
描述:设置保活时间,perKeeplifeTime(心跳间隔):默认10秒,detectDisconTime(断线检测时间):默认60秒
参数:
lLoginID[in]: 登陆句柄
perKeeplifeTime[in]: 保活时间
detectDisconTime[in]:断线检测时间
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetKeepLifeTime(long lLoginID,unsigned int perKeeplifeTime,unsigned int detectDisconTime);
/*
描述:MAC是否得到加密
参数:
pMac[in]:MAC地址
返回值:
true: 加密
false:没有加密
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CheckEncrypt(char *pMac);
/*
描述:设备搜索到的设备,与设备在同一个局域网的设备,设备去搜索,然后返回结果(H264_DVR_SearchDevice这个接口是sdk本身去搜索,两者返回的结果是一致的)
参数:
lLoginID[in]: 登陆句柄
pDevlist[out]: 设备列表
transferProtocol[in]:传输协议,见enum SDK_TransferProtocol_V2
waittime[in]: 等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SearchDeviceEX(long lLoginID,SDK_NetDevList *pDevlist,SDK_TransferProtocol_V2 transferProtocol DEF_PARAM(SDK_TRANSFER_PROTOCOL_NETIP),int waittime DEF_PARAM(15000));
/*
描述:云台快速定位,使用前判断是否支持
参数:
lLoginID[in]: 登陆句柄
nChannel[in]: 通道号
pPositionPoint[in]:位置
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_PTZPostion(long lLoginID,int nChannel,SDK_PositionPoint *pPositionPoint);
/*
描述:NVR和其连接的前端对讲,该功能需要特殊定制程序
参数:
lLoginID[in]:登陆句柄
nChannel[in]:通道号
waittime[in]:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StartDevTalk(long lLoginID,int nChannel,int waittime DEF_PARAM(2000));
/*
描述:停止NVR和其连接的前端对讲
参数:
lLoginID[in]:登陆句柄
nChannel[in]:通道号
waittime[in]:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_StopDevTalk(long lLoginID,int nChannel,int waittime DEF_PARAM(2000));
/*
描述:查询硬盘录像信息
参数:
lLoginID[in]: 登陆句柄
lpFindInfo[in]: 查询条件
lpFileData[out]:查找到的录像数据,外部开内存
waittime[in]: 查询超时时间
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_RecordInfo(long lLoginID, SDK_SearchByTime* lpFindInfo, SDK_RecordStorageInfo *lpRecordData, int waittime DEF_PARAM(15000));
/*
描述:控制设备上文件
参数:
lLoginID[in]: 登陆句柄
lpFileControl[in]:需要控制的文件和控制命令
waittime[in]: 等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_ControlFile(long lLoginID,SDK_NetFileControl *lpFileControl,int waittime DEF_PARAM(15000));
/*
描述:查询录像设备里面音频文件,最大8个
参数:
lLoginID[in]: 登陆句柄
lpFileList[out]:查找到的音频数据
waittime[in]: 等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_FindAudioFile(long lLoginID, SDK_MusicFileList* lpFileList, int waittime DEF_PARAM(5000));
/*
描述:控制播放设备上音频文件
参数:
lLoginID[in]: 登陆句柄
lpMusicControl[in]:需要播放的文件和控制命令
waittime[in]: 等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_ControlAudio(long lLoginID, SDK_LocalMusicControl *lpMusicControl, int waittime DEF_PARAM(2000));
/*
描述:修改云穿透服务器地址
参数:
ntype[in]: 备用参数
pUserData[in]:服务器地址
nlen[in]: 备用参数
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_UserData(int ntype,char *pUserData, long nlen);
/*
描述:开始云升级
参数:
lLoginID[in]:登陆句柄
sUpgradeVer[in]:升级的文件信息
返回值:
=0:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_Upgrade_Cloud(long lLoginID, SDK_CloudUpgradeVersion *sUpgradeVer, int nType DEF_0_PARAM, fUpgradeCallBack cbUpgrade DEF_0_PARAM, long dwUser DEF_0_PARAM);
/*
描述:新的云升级
参数:
lLoginID[in]:登陆句柄
sUpgradeVer[in]:升级的文件信息
返回值:
=0:成功
<0:失败
相关函数:H264_DVR_GetUpgradeVersion
*/
H264_DVR_API long CALL_METHOD H264_DVR_Upgrade_Cloud_V2(long lLoginID, SDK_CloudUpgradeStartReq *sUpgradeVer, int nType DEF_0_PARAM, fUpgradeCallBack cbUpgrade DEF_0_PARAM, long dwUser DEF_0_PARAM);
/*
描述:停止云升级
参数:
lHandle[in]:云升级句柄
返回值:
=0:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_StopUpgrade_Cloud(long lHandle);
/*
功能:查询某个设备的外网ip
参数:
uuid[in]:设备序列号
ip[out]: 外网ip
返回值:
=1: 成功
<=0:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_Get_OutNet_IP(const char *uuid, char* ip);
/*
描述:既可以获取也可以配置设备参数
参数:
lLoginID[in]: 登陆句柄
nCmdReq[in]: 请求命令
szCmd[in]: json名称
lpOutBuffer[out]: 接收json缓冲
dwOutBufferSize[in]: 接收缓冲大小(字节)
lpBytesReturned[out]:接收到的json大小
nTimeout[in]: 等待时间
pInParam[in]: 配置时使用的json字符串
nInParamLen[in]: 配置时json大小(字节)
返回值:
=0:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_CmdGeneral(long lLoginID, int nCmdReq, const char *szCmd, void *lpOutBuffer, unsigned long dwOutBufferSize, unsigned long* lpBytesReturned, int nTimeout, char *pInParam DEF_PARAM(0), int nInParamLen DEF_PARAM(0), int nCmdRes DEF_PARAM(-1));
#ifndef WIN32
/*
描述:设置云升级服务器地址和端口
参数:
ip[in]: 服务器地址
port[in]:端口
返回值:
=0: 成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_SetServerAddr(const char *ip, int port);
/*
描述:得到升级文件列表
参数:
id[in]:id号
VersionList[out]:接收数据缓冲,大小sizeof(I_VERSION_INFO_T)*n
num[out]:获取到的升级文件数量
返回值:
=0:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_GetUpgradeFileList(const char *id, char *VersionList,int &num);
typedef void (*IDownProcess)(int nProcess,int userData);
typedef void (*IDownData)(unsigned char* data, unsigned int length, int nUserData);
/*
描述:下载升级文件到本地
参数:
strSaveFilePath[in]:保存的下载文件路径
id[in]: id号
date: 升级文件日期
name: 升价文件名称
length: 升级文件大小
ProgressCallback[out]:升级文件下载进度回调
IDownData[out]: 升级文件下载数据回调
userData[out]: 回调函数参数
返回值:
=0:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_StartDownload(const char* strSaveFilePath, const char *id, const char *date,const char *name,unsigned int length,IDownProcess ProgressCallback,IDownData DataCallback,int userData);
/*
描述:取消下载升级文件
返回值:
=0:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_CancelDownload();
/*
描述:获取云穿透服务器ip
参数:
_serverip[out]:云穿透服务器ip
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_GetServerIp(char* _serverip);
H264_DVR_API int CALL_METHOD H264_DVR_AuthDevice_Init(char *uuid,char *ip,int port);
H264_DVR_API int CALL_METHOD H264_DVR_AuthDevice_Register();
H264_DVR_API int CALL_METHOD H264_DVR_AuthDevice_UnRegister();
H264_DVR_API int CALL_METHOD H264_DVR_AuthDevice_GetUpdateServer(char *ip,int size);
H264_DVR_API int CALL_METHOD H264_DVR_AlarmInit(char* uuid,char*ip,char* serIP);
typedef int (*MpsDevAuth)(char *buffer,int size); //鉴权
typedef int (*MpsDevDataRecv)(char *buffer,int size,int clientID); //数据由客户端发给设备
H264_DVR_API int CALL_METHOD H264_DVR_AlarmPush(char* buffer,int size);
H264_DVR_API int CALL_METHOD H264_DVR_AlarmStart(char* uuid,char* serIP,MpsDevAuth AuthCb, MpsDevDataRecv DataRecvCb);
/*
描述:获取穿透库的版本信息
参数:
version[out]:穿透库版本信息
size[i]: 大小
*/
H264_DVR_API void CALL_METHOD H264_VV_NAT_GetVersion(char *version, int size);
/*
描述:强制走转发
参数:
skipP2P[in];1-强制转发;0-按正常检测机制流程
*/
H264_DVR_API void CALL_METHOD H264_Direct_Proxy(int skipP2P);
/*
描述:判断设备是精品还是非精品
返回值:
=1:精品设备
=0:普通设备
*/
H264_DVR_API int CALL_METHOD H264_XM_Unique();
/*
描述:得到报警推送对象指针,供手机开发用
返回值:
mps报警推送库IMpsAlarmClient对象指针
*/
H264_DVR_API void* get_MpsAlarmClient_Instance();
/*
描述:得到配置的json格式
参数:
lLoginID[in]: 登陆句柄
dwCommand[in]: json名
nChannelNO[in]: 通道号,-1:得到全通道配置,0-n:得到单个通道的配置,从0开始
lpOutBuffer[out]: 接收json缓冲
dwOutBufferSize[in]: 接收缓冲大小
lpBytesReturned[out]:得到的缓冲大小(字节)
waittime[in]: 等待时间
返回值:
=1:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetDevConfig_Json(long lLoginID, const char* dwCommand, int nChannelNO,char * lpOutBuffer,unsigned long dwOutBufferSize,unsigned long* lpBytesReturned,int waittime DEF_PARAM(1000));
/*
描述:设置配置的json格式
参数:
lLoginID[in]: 登陆句柄
dwCommand[in]: json名
nChannelNO[in]: 通道号,-1:得到全通道配置,0-n:得到单个通道的配置,从0开始
lpOutBuffer[in]: 设置的json字符串
waittime[in]: 等待时间
返回值:
=1:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetDevConfig_Json(long lLoginID,const char* dwCommand, int nChannelNO, char * lpInBuffer,int waittime DEF_PARAM(1000));
typedef void (*PFunOnWifiConfigResult)(int nResult, SDK_CONFIG_NET_COMMON_V2 *pConfig);
/*
描述:开始wifi一键配置
参数:
pInfo[i]: 配置wifi的一些基本信息
pOnResult[out]:配置wifi成功后返回的设备网络参数
返回值:
=1:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_StartWifiConfig(SDK_SWifiInfo *pInfo, PFunOnWifiConfigResult pOnResult);
/*
描述:停止wifi一键配置
*/
H264_DVR_API void CALL_METHOD H264_DVR_StopWifiConfig();
/*
描述:更改认证库用户名和密码
参数:
userName[in]:用户名
password[in]:密码
返回值:
=0:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_SetAuthUserInfo(const char *userName, const char *password);
#endif
/*
描述:获取云升级的设备信息
参数:
lLoginID[int]:登录句柄
versionInfo [int] :请求升级的信息
lpOutBuffer[out];设备版本的信息
dwOutBufferSize[out]:设备版本的大小
lpBytesReturned[out]:接收到的大小
waittime:等待时间
返回值:
=0:成功
<0:失败
相关函数:H264_DVR_Upgrade_Cloud_V2
*/
H264_DVR_API long CALL_METHOD H264_DVR_GetUpgradeVersion(long lLoginID,SDK_CloudUpgradeVersionReq* versionInfo,
char * lpOutBuffer,unsigned long dwOutBufferSize,unsigned long* lpBytesReturned,int waittime/*=500*/);
typedef int (*OnFoundDevCB)(char * uuid,int state,int userData);
/*
描述:查询多个设备是否在线V2版本
参数:
pStates[out]: 要查询的多个设备信息,会返回设备状态
nTimeout[in]: 等待时间
decCb[out]: 设备在线与否的回调
userData[out]:回调参数
返回值:
=0:成功
<0:失败
*/
H264_DVR_API int CALL_METHOD H264_DVR_Check_Device_Exist_V2(SDK_SDevicesState *pStates, int nTimeout,OnFoundDevCB decCb,int userData);
/*
描述:设置二次开发云访问uuid
参数:
uuid[in]: 客户uuid
*/
H264_DVR_API bool CALL_METHOD H264_DVR_Set_UUid(char* uuid);
/*
描述:获取该时间段上的图片
参数:
lLoginID[int]:登录句柄
pNetBreviaryPic:请求获取的信息
pBuffer:返回的图片数据
*/
H264_DVR_API bool CALL_METHOD H264_DVR_GetNetPic(long lLoginID, SDK_NetBreviaryPic* pNetBreviaryPic, char* pBuffer, int nBufLen, int *pPicLen);
/*
描述:亿嘉和Visca协议修改,设置和获取倍率焦距等
参数:
lLoginID[in]: 登陆句柄
pCameraControl[in&out]: 控制
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_CameraViscaControl(long lLoginID, SDK_CameraViscaControl *pCameraControl);
/*
描述:建立图片上传通道
参数:
lLoginID[in]:登陆句柄
nChannelNo[in]:通道号
nPicType[in]:需要关注的图片类型--见枚举SDK_INTEL_PUSH_TYPE
nType[in]:推送得到的图片类型--见枚举SDK_INTEL_PUSH_IMG_TYPE
返回值:
=1:成功
=0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_SetupPushChan(long lLoginID, int nChannel, int nPicType, int nType);
/*
描述:关闭图片上报
参数:
lLoginID[in]:登陆句柄
nChannelNo[in]:通道号
返回值:
=1:成功
=0:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_ClosePushChan(long lLoginID, int nChannelNo);
/*
描述:日历查询
参数:
lLoginID[in]:登陆句柄
pFindParam[in]:查询条件
pRetBuffer[out]:日历返回信息
lBufSize[out]:日历返回大小
waittime:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SearchCalendar(long lLoginID, SDK_SearchCalendar *pFindParam, SDK_SearchCalendarMask *pRetBuffer, int waittime DEF_PARAM(2000));
/*
描述:特殊命令操作--见枚举SDK_ConsumerProCmd
参数:
lLoginID[in]: 登陆句柄
lpOutBuffer[out]: 操作数据--SDK_ConsumerProOpr
lpBytesReturned[out]:返回的数据
waittime[in]: 等待时间
返回值:
=1:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_ConsumerCmd(long lLoginID, SDK_ConsumerProOpr* lpOutBuffer, int* lpBytesReturned,int waittime DEF_PARAM(1000));
/*
描述:车牌侦测中黑白名单操作
参数:
lLoginID[in]: 登陆句柄
dwCommand[in]: 操作命令--见enum SDK_LPR_LIST_OPT_TYPE
dwtype[in]: 名单类型--见enum SDK_LPR_LIST_TYPE
lpBuffer[]: 数据--见--SDK_LprBlackWhiteList
dwBufferSize[]: 数据个数--车牌名单的结构体个数
szfileName[]: 文件名,导出名单时,可用来获取,如果为空时,则用
waittime[in]: 等待时间
返回值:
=1:成功
<0:失败
*/
H264_DVR_API long CALL_METHOD H264_DVR_WhiteListCmd(long lLoginID, unsigned long dwCommand, int dwtype, char * lpBuffer, unsigned long& dwBufferSize, char* szfileName, int waittime DEF_PARAM(1000));
/*
描述:发送广播数据给局域网内的设备
参数:
szBuf[in]: 发送数据缓冲
nBufLen[in]: 数据大小
nType[in]: 数据类型--见枚举enum SDK_SendType
nSendTime[in]:等待时间
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_SendToDevice(char* szBuf, int nBufLen, int nType, int nSendTime DEF_PARAM(3000));
/*
描述:加密密码
参数:
outputPswBuf[out]: 加密密码
inputPswBuf[in]: 未加密密码--密码长度最大100字节
返回值:
true: 成功
false:失败
*/
H264_DVR_API bool CALL_METHOD H264_DVR_EncryptPassword(char * outputPswBuf, char * inputPswBuf);
#ifdef _NAMESPACE_
}
#endif
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment