版权所有 侵权必究
网络 SDK 说明手册
网络 SDK 说明手册
VERSION 1.01
第 1 页 共 32 页
前言
非常感谢您使用我们公司的产品,我们将竭诚为您提供最好的服务。 本手册可能包含技术上不准确的地方或文字错误。 本手册的内容将做定期的更新,恕不另行通知;更新的内容将会在本手册的新版本 中加入。
我们随时会改进或更新本手册中描述的产品或程序。
网络 SDK 说明手册
第 2 页 共 32 页
目录
1. 简 介…………………………………………………………………………………………………………… 4 1.1 概述………………………………………………………………………………………………………… 4
2 版本历史…………………………………………………………………………………………………………. 5
3 编程指导…………………………………………………………………………………………………………. 6
3.1 SDK 接口调用流程…………………………………………………………………………………… 6 3.2 视频播放调用流程…………………………………………………………………………………… 6 3.3 参数配置调用流程…………………………………………………………………………………… 6
4 数据结构定义………………………………………………………………………………………………….. 7
4.1 常量定义…………………………………………………………………………………………………. 7 4.2 设备信息结构………………………………………………………………………………………… 10 4.3 回调函数原型………………………………………………………………………………………… 17 4.4 错误消息定义………………………………………………………………………………………… 18
5 接口定义……………………………………………………………………………………………………….. 19
5.1 SDK 初始化……………………………………………………………………………………………. 19 5.2 异常消息回调………………………………………………………………………………………… 19 5.3 设备注册……………………………………………………………………………………………….. 19 5.4 实时预览……………………………………………………………………………………………….. 20 5.5 预览时相关操作…………………………………………………………………………………….. 21 5.6 云台控制……………………………………………………………………………………………….. 22 5.7 通用参数配置………………………………………………………………………………………… 24 5.8 设备搜索……………………………………………………………………………………………….. 25 5.9 其它命令……………………………………………………………………………………………….. 26
网络 SDK 说明手册
第 3 页 共 32 页
1. 简 介 1.1 概述
网络SDK是软件开发商在开发我司设备应用时的开发套件。本文档详细描述了开 发包中各个函数实现的功能、接口及其函数之间的调用关系和示例实现。
开发包所包括的文件有:
网络 SDK 说明手册
网络库
IPACNetSDK.h
头文件
IPACDevNetSDK.lib
Lib 文件
IPACDevNetSDK.dll
接口库
第 4 页 共 32 页
网络 SDK 说明手册
2 版本历史
日期
版本
修改内容
2012.07
V1.00
第 5 页 共 32 页
网络 SDK 说明手册
3 编程指导
3.1 SDK 接口调用流程
SDK 初始化 IPAC_DEV_Init
用户注册设备
IPAC_DEV_Login
注销设备
IPAC_DEV_Logout
释放 SDK IPAC_DEV_ Cleanup
第 6 页 共 32 页
其它命令
通用参数配置
云台控制
预览模块
3.2 视频播放调用流程
网络 SDK 说明手册
SDK 初始化 IPAC_DEV_Init
用户注册设备
IPAC_DEV_Login
启动预览
IPAC_DEV_RealPlay
结束预览
IPAC_DEV_StopRealPlay
注销设备
IPAC_DEV_Logout
释放 SDK IPAC_DEV_ Cleanup
第 7 页 共 32 页
3.3 参数配置调用流程
网络 SDK 说明手册
SDK 初始化 IPAC_DEV_Init
用户注册设备
IPAC_DEV_Login
通用参数获取
IPAC_DEV_GetConfig
通用参数设置
IPAC_DEV_SetConfig
注销设备
IPAC_DEV_Logout
释放 SDK IPAC_DEV_ Cleanup
第 8 页 共 32 页
4 数据结构定义
4.1 常量定义
//云台控制命令
#define SET_PRESET 8
#define CLE_PRESET 9
#define ZOOM_IN 11
#define ZOOM_OUT 12
#define FOCUS_NEAR 13
#define FOCUS_FAR 14
#define IRIS_OPEN 15
#define IRIS_CLOSE 16
#define TILT_UP 21
#define TILT_DOWN 22
#define PAN_LEFT 23
#define PAN_RIGHT 24
#define UP_LEFT 25
#define UP_RIGHT 26
#define DOWN_LEFT 27
#define DOWN_RIGHT 28
#define PAN_AUTO 29
#define FILL_PRE_SEQ 30
#define SET_SEQ_DWELL 31
#define SET_SEQ_SPEED 32
#define CLE_PRE_SEQ 33
#define STA_MEM_CRUISE 34
#define STO_MEM_CRUISE 35
#define RUN_CRUISE 36
#define RUN_SEQ 37
#define STOP_SEQ 38
#define GOTO_PRESET 39
#define CLE_ALL_PRE_SEQ
//通用参数配置命令
/* 设置预置点 */ /* 清除预置点 */
/* 焦距以速度SS变大(倍率变大) */ /* 焦距以速度SS变小(倍率变小) */ /* 焦点以速度SS前调 */
/* 焦点以速度SS后调 */
/* 光圈以速度SS扩大 */ /* 光圈以速度SS缩小 */
/* 云台以SS的速度上仰 */
/* 云台以SS的速度下俯 */
/* 云台以SS的速度左转 */
/* 云台以SS的速度右转 */
/* 云台以SS的速度上仰和左转 */ /* 云台以SS的速度上仰和右转 */ /* 云台以SS的速度下俯和左转 */ /* 云台以SS的速度下俯和右转 */ /* 云台以SS的速度左右自动扫描 */
/* 将预置点加入巡航序列 */
/* 设置巡航点停顿时间 */
/* 设置巡航速度 */
/* 将预置点从巡航序列中删除 */ /* 开始记录轨迹 */
/* 停止记录轨迹 */ /* 开始轨迹 */
/* 开始巡航 */
/* 停止巡航 */
/* 快球转到预置点 */
44 /* 删除指定的巡航序列*/
网络 SDK 说明手册
第 9 页 共 32 页
#define IPAC_DEV_GET_DEVICECFG #define IPAC_DEV_SET_DEVICECFG #define IPAC_DEV_GET_NETCFG #define IPAC_DEV_SET_NETCFG
#define IPAC_DEV_GET_CODERCFG #define IPAC_DEV_SET_CODERCFG #define IPAC_DEV_GET_CODER1CFG #define IPAC_DEV_SET_CODER1CFG
#define IPAC_DEV_GET_VIDEOCFG #define IPAC_DEV_SET_VIDEOCFG #define IPAC_DEV_GET_VIDEO1CFG #define IPAC_DEV_SET_VIDEO1CFG
#define IPAC_DEV_GET_AUDIOCFG #define IPAC_DEV_SET_AUDIOCFG
#define IPAC_DEV_GET_SYSCFG #define IPAC_DEV_SET_SYSCFG
#define IPAC_DEV_GET_TIMECFG #define IPAC_DEV_SET_TIMECFG
#define IPAC_DEV_GET_OSDCFG #define IPAC_DEV_SET_OSDCFG
#define IPAC_DEV_GET_RECORDYTPE #define IPAC_DEV_SET_RECORDTYPE #define IPAC_DEV_GET_RECORDCFG #define IPAC_DEV_SET_RECORDCFG
#define IPAC_DEV_GET_PTZCFG #define IPAC_DEV_SET_PTZCFG
#define IPAC_DEV_GET_ALARMCFG #define IPAC_DEV_SET_ALARMCFG
#define IPAC_DEV_GET_FTPCFG #define IPAC_DEV_SET_FTPCFG
#define IPAC_DEV_GET_IDCFG
100
101
102
103
104
105
106
107
108
109
110
111
112 113
114 115
116 117
120 121
122
123
124
125
126 127
128 129
130 131
140
//获取设备描述参数 //设置设备描述参数 //获取网络参数 //设置网络参数
//获取编码参数 //设置编码参数 //获取高级编码参数 //设置高级编码参数
//获取图象参数 //设置图象参数 //获取高级图象参数 //设置高级图象参数
//获取音频参数 //设置音频参数
//获取系统参数 //设置系统参数
//获取设备时间 //设置设备时间
//获取OSD参数 //设置OSD参数
//获取录像格式 //设置录像格式 //获取录像参数 //设置录像参数
//获取PTZ参数 //设置PTZ参数
//获取告警参数 //设置告警参数
//获取FTP参数 //设置FTP参数
//获取设备ID
网络 SDK 说明手册
第 10 页
共 32 页
#define IPAC_DEV_SET_IDCFG 141
#define IPAC_DEV_GET_CONFIGURECFG 142 #define IPAC_DEV_SET_CONFIGURECFG 143
#define FRAME_FLAG_VI 0x64 //I帧 #define FRAME_FLAG_VP
#define FRAME_FLAG_VA
//设置设备ID
//获取设备配置参数 //设置设备配置参数
网络 SDK 说明手册
第 11 页 共 32 页
4.2 设备信息结构
//设备描述结构 , typedef struct
{
BYTE sDEVName[NAME_LEN]; //以下不可更改
DWORD dDEVType ;
BYTE sDEVNO[SERIALNO_LEN];
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD }IPAC_DEV_DEVICECFG;
//网络参数结构 typedef struct {
DWORD DWORD DWORD DWORD
WORD
WORD
UCHAR MAC[6]; BYTE Dhcp; BYTE blank1;
}IPAC_DEV_NETCFG
dAppVersion ; dAlgVersion ; dWebVersion ; dKernelVersion ; dBootVersion ; dHardwareVersion ;
IP;
Mask; Gateway; NameServer; HttpPort; RtspPort;
//设备名称
//设备类型 //序列号
//应用版本 //算法版本
//WEB 版本 //内核版本
//BOOT 版本 //硬件版本
//IP 地址,高位在前
//网络掩码,高位在前 //网关地址,高位在前
//域名服务器地址 //Http 端口号
//RTSP 端口号
//MAC 地址,高位在前 (一般不需要设置,填充为全 0 即可)
//Dhcp =0 静态 IP, =1 动态
//设备编码结构
typedef struct {
UCHAR nEncode; //编码方式, 可以选择单路 H246、单路 MPEG4、双路 H246 等
UCHAR Resolution; //编码分辨率,可以选择 720P、1280*960、D1、CIF 等
UCHAR ImageFlip; //图像翻转,=0 为不翻转;1 为水平方向翻转, 2 为垂直方式 翻转;3 为水平、垂直方向翻转
UCHAR Blank1;
UCHAR RateCtrol1; //码流一速率控制,=0 为关闭;=1 为 VBR =2 为 CBR UCHAR CodeRate1; //码流一码率,范围为 500-8000 kbps,设置码率为(实际值
网络 SDK 说明手册
第 12 页 共 32 页
/100)kbps
UCHAR FrameRate1; UCHAR Quality1;
UCHAR RateCtrol2;
UCHAR CodeRate2; /100)kbps
UCHAR FrameRate2; UCHAR Quality2; DWORD Blank2;
}IPAC_DEV_CODERCFG;
//设备高级编码结构 typedef struct {
//码流一帧率,=0 为 30;=1 为 24 =2 为 15 =3 为 8 //码流一质量,=1-10
//码流二速率控制,=0 为关闭;=1 为 VBR =2 为 CBR //码流二码率,范围为 500-8000 kbps,设置码率为(实际值
//码流二帧率,=0 为 30;=1 为 24 //码流二质量,=1-10
=2 为 15
=3 为 8
UCHAR IpRatio1;
UCHAR fIframe1;
UCHAR qpInit1;
UCHAR qpMin1;
UCHAR qpMax1;
UCHAR meConfig1; //流 1 Encode Preset , 0-AUTO
UCHAR packetSize1; //流 1 Packet Size 1-100(100,单位是%), UCHAR Blank1;
WORD Blank2;
UCHAR IpRatio2; UCHAR fIframe2; UCHAR qpInit2; UCHAR qpMin2; UCHAR qpMax2; UCHAR meConfig2; UCHAR packetSize2; UCHAR Blank21; WORD Blank22;
}IPAC_DEV_CODER2CFG
//设备图像参数结构 typedef struct {
//流 1 IP Ratio, 1-30(30) //流1 强制I帧, 1为选中, //流 1 QP 初始值,1-51(28), //流 1 QP 最小值,1-51(1), //流 1 QP 最大值,1-51(51),
//流 2 IP Ratio, 1-30(30) //流2 强制I帧, 1为选中, //流 2 QP 初始值,1-51(28), //流 2 QP 最小值,1-51(1), //流 2 QP 最大值,1-51(51),
UCHAR nBright; //亮度,范围为 0-255 UCHAR nContrast; //对比度,范围为 0-255 UCHAR nSaturat; //饱和度,范围为 0-255 UCHAR nSharpen; //锐利度,范围为 0-255
//流 2 Encode Preset , 0-AUTO
2-SVC (0,
//流 2 Packet Size
1-CUSTOM 1-100(100,单位是%),
1-CUSTOM
2-SVC (0,
网络 SDK 说明手册
第 13 页 共 32 页
UCHAR bPAL; UCHAR bIRCut; UCHAR bColor;
UCHAR bBLC; UCHAR bOpenWB;
AEW =3 为 AEWB UCHAR bModeWB; UCHAR Blank1; WORD Blank2; DWORD Blank3;
}IPAC_DEV_VIDEOCFG;
//设备高级图像参数结构 typedef struct {
UCHAR PriorMode; UCHAR ShutTime; UCHAR MaxGain; UCHAR Blank1;
//编码制式,=0 为 NTSC/60HZ;=1 为 PAL/50HZ //滤光片模式 = 0 自动 =1 白天 =2 晚上 //晚上图像 = 0 彩色 =1 黑白
//背光补偿,=0 关 =1 小 =2 中 =3 大
UCHAR Light_control; //强光抑制
UCHAR RangeWDR; UCHAR nNoise; UCHAR nEV; WORD Blank2; DWORD Blank3;
}IPAC_DEV_VIDEO2CFG
//设备音频参数结构 typedef struct {
//宽动态范围,范围为 1-10 //噪声, 范围为 0-255
//EV 补偿,范围为 0-255
//白平衡天关,=0 为关闭; //白平衡模式,=0 自动;
=1 为 AE
=2 为
//优先模式, =0 为速度优先; //最大快门时间 ,具体定义参见表 //最大增益,0-100
=1 为质量优先
UCHAR audioON; //音频允许, =0 为关闭音频; =1 为打开音频
UCHAR audiomode; UCHAR audioinvolume; UCHAR codectype;
//音频模式,=0 输入 =1 输出 =2 输入和输出 //输入增益,0-100(85) //音频编码,1-G711, 2-AAC-LC)
UCHAR samplerate; //采样频率,0-8Khz, 1-16Khz UCHAR bitrate; //采样速率,0-64Kbps
UCHAR audiooutvolume; UCHAR alarmlevel; WORD Blank1;
WORD Blank2;
}IPAC_DEV_AUDIOCFG;
//输出音量,0-100(75) //告警音量,0-100(50)
网络 SDK 说明手册
第 14 页 共 32 页
//设备工作模式参数结构 typedef struct {
UCHAR WorkMode1; //IP 地址配置方式,BIT0=0 为 DHCP 方式;=1 为静态 IP 方式(暂不支持通过设软件置)
UCHAR WorkMode2; UCHAR AFWorking; UCHAR Blank1; UCHAR BWSthPoint; UCHAR ClrSthPoint; DWORD IP;
WORD port; }IPAC_DEV_SYSCFG;
//设备时间参数结构 typedef struct {
UCHAR Second; UCHAR Minute; UCHAR Hour; UCHAR Day; UCHAR Month; UCHAR Year;
}IPAC_DEV_TIMECFG;
//BIT1=0 为关闭看门狗;=1 为启用看门狗 //BIT0=0 RTSP 单播模式;=1 RTSP 组播模式 //BIT0=0 为关闭自动对焦;=1 为启用自动对焦 //
//彩色到黑白的切换点,范围为 1-25
//黑白到彩色的切换点, 范围为 5-35(其一定要大于 Data5) //服务器 IP 地址
//服务器端口号
//秒数,正常范围为 0-59 //分数,正常范围 0-59
//时数,正常范围为 0-23 //日数,范围 01-31
//月份,范围从 1-12
//年数,从 1900 年算起至今的年数
//设备 OSD 显示参数结构
typedef struct { //// 设备 OSD 20
UCHAR bShowTime;
UCHAR TimeFormat; 日/月/年
UCHAR bShowLogo; UCHAR bShowChar; UCHAR Str[16];
}IPAC_DEV_OSDCFG;
//设备录像格式参数结构 typedef struct{
//显示时间 =0 为不显示;=1 为显示 //显示时间格式, =0 为年/月/日 =1 为月/日/年 =2 为
//显示 LOGO =0 为不显示; =1 为显示 //显示字符, =0 为不显示;=1 为显示 //字符串,最长 16 个字符,0 为结束标志
//=0 视频流 1; =1 为视频流 2 }IPAC_DEV_RECORDTYPE, *LPIPAC_DEV_RECORDTYPE;
UCHAR bStream;
UCHAR Reserd[5];
网络 SDK 说明手册
第 15 页 共 32 页
//设备录像命令参数结构 typedef struct{
UCHAR bRecord; UCHAR RecordNo; UCHAR RecordPloy; UCHAR RecordWeek; UCHAR beginHour; UCHAR beginMinute; UCHAR beginSecond; UCHAR endHour; UCHAR endMinute; UCHAR endSecond; UCHAR Reserd[6];
//是否保存录像到 SD 卡 //计划号范围从 0-6
// 录像策略,=0 不录像; //开始日期
//开始小时
//开始分钟
//开始秒数
=0 为不保存;
=1 为按计划录像,
=1 为保存
}IPAC_DEV_RECORDCFG;
//设备 FTP 服务器参数结构 typedef struct {
DWORD IP; WORD Port;
char user[6];
char Pwd[6]; UCHAR Reserd[2]; char sntp[30];
//IP 地址,高位在前 //端口号,高位在前
//用户名,高位在前 //密码,高位在前
// SNTP 服务器地址,高位在前
UCHAR bArarm;
UCHAR bSave;
UCHAR AlmTime;
UCHAR OffLine; // 网络掉线, =0 不报警; =1 为报警 UCHAR Move; // 移动侦测, =0 不报警; =1 为报警 UCHAR Ext; // 外部触发, =0 不报警; =1 为报警 UCHAR ExtLevel; // 外部触发电平, =0 低电平; =1 高电平
}IPAC_DEV_FTPCFG;
//设备告警参数结构 typedef struct {
UCHAR AlmSound; // 告警音频
UCHAR Reserd[2]; }IPAC_DEV_ALARMCFG;
//设备 PTZ 参数结构
typedef struct { // PTZ 参数 12
UCHAR bNum; // 串口号
=0 关闭;
=1 为打开
// 报警配置 =0 为关闭报警; // 报警是否保存录像到 SD 卡
=1 为允许 =0 为不保存;
=1 为保存 4=10M 5=一直
// 报警持续时间, 0-10S 1-30S 2-1M 3-5M
网络 SDK 说明手册
第 16 页 共 32 页
UCHAR Baud;
UCHAR Begin;
UCHAR End; //
UCHAR Check;
UCHAR Data;
UCHAR qj_add;
UCHAR Protocol1; // 球机协议 UCHAR Protocol2; // 球机扩展协议 UCHAR Reserd[3];
}IPAC_DEV_PTZCFG;
//设备 SD 卡参数结构 typedef struct { // SD 参数
UCHAR DATA1; // UCHAR DATA2; // UCHAR DATA3[4];
}IPAC_DEV_SDCFG;
//设备升级参数结构
typedef struct{ // 软件升级命令
UCHAR Command1; UCHAR Command2; WORD Command3;
}IPAC_DEV_UPDATE;
//设备巡航参数结构 typedef struct{
UCHAR Cmd;
//云台巡航设置数据
//Cmd: 30-将预置点加入巡航序列, 44-删指定的巡航路线,33-将预置 点从巡航序列中删除, 37-开始巡航, 38-停止巡航
//nLine: 巡航线路 1-8
//nPoint: 巡航点 1-16
// 串口波特率 //115200 =10 57600 =9 38400=8, 19200=7, 9600=6, 4800=5, 2400 =4, 1200 = 3, 600=2 300=1
// 串口起始位数
串口停止位数 //0-1, 1-1.5 , 2-2
// 串口校验 // 串口数据位数
//0-none ,1-odd , 2-even //5-8
// 球机地址
UCHAR nLine;
UCHAR nPoint;
UCHAR nPreset; //nPreset: 相应的预置点 1-127 UCHAR nSpeed; //nSpeed: 速度 1-8 UCHAR nTime; //nTime: 时间 1-255
}IPAC_DEV_CRUISE, *LPIPAC_DEV_CRUISE;
网络 SDK 说明手册
第 17 页 共 32 页
//设备搜索回应参数结构
typedef struct { //搜索回应包 , 48
DWORD IP;
DWORD Mask;
DWORD Gateway;
UCHAR MAC[6];
BYTE sDEVName[NAME_LEN]; DWORD dDEVType ;
DWORD dAppVersion ; DWORD dRunTime ; WORD dPort;
}IPAC_DEV_SEARCH;
//实时预览参数结构
typedef struct{
LONG lChannel; //1为主码流,2为子码流 LONG lLinkMode;
HWND hPlayWnd; //播放窗体
char *sMultiCastIP;
} IPAC_DEV_CLIENTINFO, *LPIPAC_DEV_CLIENTINFO;
//云台图象区域位置参数结构 typedef struct{
int xTop;
int yTop;
int xBottom;
int yBottom;
int bCounter;
} IPAC_DEV_POINT_FRAME, *LPIPAC_DEV_POINT_FRAME;
//移动侦测参数结构 typedef struct{
BYTE sDEVNO[SERIALNO_LEN];
//IP 地址,高位在前 //网络掩码,高位在前
//网关地址,高位在前 //MAC 地址,
//设备名称 //设备类型
//序列号 //应用版本
网络 SDK 说明手册
第 18 页 共 32 页
//设备网络扩展参数结构 typedef struct{
WORD ControlProt;
WORD VideoProt;
WORD RTSPProt;
WORD ONVIFProt;
WORD WEBProt;
WORD Blank1;
//控制端口 //视频端口 //RTSP 端口 //ONVIF 端口 //WEB 端口
UCHAR Blank2[500]; }IPAC_DEV_NETCFGEX, *LPIPAC_DEV_NETCFGEX;
网络 SDK 说明手册
UCHAR bOpen; UCHAR Sensitivity; UCHAR Rank; UCHAR Subdivs;
UCHAR sBlock[8];
//是否开启
//灵敏度选择(0.按等级 1.按细分) //灵敏度等级
//细分灵敏度
//宏块配置(每个字节对应一行宏块,每个位对应一个宏块)=1 开启,=0 关闭 //现在只支持行列的配置
UCHAR Blank[38];
} IPAC_DEV_VMDCFG, *LPIPAC_DEV_VMDCFG;
第 19 页 共 32 页
4.3 回调函数原型 //异常消息回调函数
typedef BOOL (* MESSAGE_CALLBACK)(int nType,void *pParam,int nLen,void *context);
//视频流回调函数
typedef BOOL (* STREAM_CALLBACK)(int nChannel, DWORD dwStreamType,void
*buf, int len,void *context);
//视频流回调函数
typedef BOOL (* CHANNEL_STREAM_CALLBACK)(int nChannel, DWORD
dwStreamType, void *buf, int len,void *context);
网络 SDK 说明手册
第 20 页 共 32 页
4.4 错误消息定义
网络 SDK 说明手册
第 21 页 共 32 页
5 接口定义
5.1 SDK 初始化
1. IPAC_API BOOL IPAC_DEV_Init();
2.
3.
函数说明:初始化 SDK, 在所有的 SDK 函数之前调用 参数说明:无
返回值:成功返回 TRUE,不成功返回 FALSE
IPAC_API BOOL IPAC_DEV_Cleanup();
函数说明:清空 SDK, 释放占用的资源,在所有的 SDK 函数之后调用。 参数:无
返回值:成功返回 TRUE,不成功返回 FALSE
IPAC_API DWORD IPAC_DEV_GetLastError ();
函数说明:返回函数执行失败代码,当调用下面的接口失败时,可以用该函 数获取失败的代码
参数说明:无
返回值:返回错误类型码
5.2 异常消息回调
4. IPAC_API BOOL IPAC_DEV_setMessageCallback(LONG
MESSAGE_CALLBACK callback, void *pContext);
lUserID,
函数说明:开始对某个设备订阅消息,用来设置是否需要对设备消息回调,。
参数说明:
[in] lUserID IPAC_DEV_Login 的返回值
返回值:成功返回 TRUE,失败返回 FALSE 5.3 设备注册
5.
IPAC_API ULONG IPAC_DEV_Login(const char *ip_addr, int port, const char *user_name, const char *user_pwd, UCHAR bRelay);
函数说明:注册用户到设备。
参数说明:
网络 SDK 编程手册
第 22 页 共 32 页
网络 SDK 说明手册
[in] ip_addr 设备 IP
[in] port 设备端口
[in] user_name 用户名
[in] user_pwd 用户密码
[in] bRelay 为0
返回值:失败返回 0,成功返回设备 ID,登录成功之后对设备的操作都可以通过此值(设 备句柄)对应到相应的设备。
6. IPAC_API BOOL IPAC_DEV_Logout( ULONG lUserID)
函数说明:注销设备用户
参数说明:
[in] lUserID
返回值:成功返回 TRUE,失败返回 FALSE
5.4 实时预览
7.
IPAC_API LONG IPAC_DEV_RealPlay(ULONG UserID, LPIPAC_DEV_CLIENTINFO lpClientInfo, STREAM_CALLBACK callback, void *pUser, BOOL bBlocked);
函数说明:启动实时预览 参数说明:
[in] UserID
IPAC_DEV_Login 的返回值 [in] lpClientInfo
实时监视参数
[in] callback
视频数据回调函数
[in] pUser
用户定义数据
[in] bBlocked
未用
返回值:失败返回 小于等于 0,成功返回实时监视 ID(实时监视句柄),将作为相关函 数的参数。
8. IPAC_API BOOL IPAC_DEV_StopRealPlay( LONG lRealHandle); 第 23 页 共 32 页
函数说明:停止实时监视
参数说明:
[in]lRealHandle
IPAC_DEV_RealPlay 的返回值
返回值:成功返回 TRUE,失败返回 FALSE
9. H264_DVR_API long H264_DVR_PauseRealPlay(long lRealHandle, bool bPause);
函数说明:暂停/继续实时监视
参数说明:
[in]lRealHandle
H264_DVR_RealPlay 的返回值 [in] bPause
暂停使能,其中 0 表示继续,1 表示暂停
返回值:成功返回 TRUE,失败返回 FALSE
相关函数:IPAC_DEV_RealPlay
典型应用:暂停实时监视
5.5 预览时相关操作
10. IPAC_API BOOL IPAC_DEV_StartRecord(ULONG lRealHandle,const char
*csFileName);
函数说明:开始录像
参数说明:
[in] lRealHandle H264_DVR_RealPlay 的返回值
[in] csFileName 文件名
返回值:成功返回 TRUE,失败返回 FALSE
11. IPAC_API BOOL IPAC_DEV_StopRecord (ULONG lRealHandle);
函数说明:结束录像
参数说明:
[in] lRealHandle H264_DVR_RealPlay 的返回值
返回值:成功返回 TRUE,失败返回 FALSE
12. IPAC_API BOOL IPAC_DEV_CapturePicture( LONG lRealHandle, char
网络 SDK 说明手册
第 24 页 共 32 页
*sPicFileName);;
函数说明:抓图
参数说明:
[in] lRealHandle H264_DVR_RealPlay 的返回值
[in] sPicFileName 文件名
返回值:成功返回 TRUE,失败返回 FALSE
13. IPAC_API BOOL IPAC_DEV_CheckPlayStatus (ULONG lRealHandle);
函数说明:得到播放的状态
参数说明:
[in] lRealHandle H264_DVR_RealPlay 的返回值
返回值:播放正常返回 TRUE,播放失败返回 FALSE
14. IPAC_API BOOL IPAC_DEV_OpenSound (ULONG lRealHandle);
函数说明:打开音频播放
参数说明:
[in] lRealHandle H264_DVR_RealPlay 的返回值
返回值:成功返回 TRUE,失败返回 FALSE
15. IPAC_API BOOL IPAC_DEV_CloseSound (ULONG lRealHandle);
函数说明:关闭音频播放
参数说明:
[in] lRealHandle H264_DVR_RealPlay 的返回值
返回值:成功返回 TRUE,失败返回 FALSE
5.6 云台控制
16. IPAC_API BOOL IPAC_DEV_PTZControlWithSpeed_Other( LONG lUserID, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
函数说明:云台控制
网络 SDK 说明手册
第 25 页 共 32 页
17.
lUserID,
18.
IPAC_API BOOL IPAC_DVR_PTZCruise( LONG lUserID, LONG lChannel, IPAC_DEV_CRUISE *pPTZCodeBuf, DWORD dwBufSize);
函数说明:扩展云台设置,巡航路线设置 参数说明:
[in] lUserID
IPAC_DEV_Login 的返回值 [in] lChannel
网络 SDK 说明手册
参数说明: [in] lUserID
IPAC_DEV_Login 的返回值 [in] dwPTZCommand
控制类型,参见云台控制命令 [in] dwStop
是否是停止, 0-开始;1-停止 [in] dwSpeed
速度,取值范围[1,7] 返回值:成功返回TRUE,失败返回FALSE。 典型应用:控制云台,但是必须在当前通道打开的情况下使用。
IPAC_API BOOL IPAC_DEV_PTZPreset_Other( LONG DWORD dwPTZPresetCmd, DWORD dwPresetIndex);
函数说明:扩展云台设置,预置点设置 参数说明:
[in] lUserID
IPAC_DEV_Login 的返回值 [in] dwPTZPresetCmd
控制类型,参见云台控制命令。 [in] dwPresetIndex
预置点的序号(从 1 开始),最多支持 255 个预置点 返回值:成功返回TRUE,失败返回FALSE。 典型应用:扩展云台控制,但是必须在当前通道打开的情况下使用。
第 26 页 共 32 页
5.7 通用参数配置
20. IPAC_API BOOL IPAC_DEV_GetConfig( LONG lUserID, DWORD dwCommand, LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
函数说明: 获取设备配置。
第 27 页 共 32 页
网络 SDK 说明手册
19.
无效
[in] pPTZCodeBuf
巡航设置数据。
[in] dwBufSize
巡航设置数据长度 返回值:成功返回TRUE,失败返回FALSE。 典型应用:扩展云台控制,但是必须在当前通道打开的情况下使用。
IPAC_APIBOOLIPAC_DEV_TransPTZ_Other( LONG lUserID, LONG lChannel, char *pPTZCodeBuf, DWORD dwBufSize);
函数说明:扩展云台设置,透明传输 参数说明:
[in] lUserID
IPAC_DEV_Login 的返回值 [in] lChannel
无效
[in] pPTZCodeBuf
需要透明传输的数据。
[in] dwBufSize
需要透明传输的数据长度 返回值:成功返回TRUE,失败返回FALSE。 典型应用:扩展云台控制,但是必须在当前通道打开的情况下使用。
返回值:大于0成功,小于0失败 (可根据错误类型查找)。 5.8 设备搜索
22.
IPAC_API DWORD IPAC_DEV_SearchDevice(SearchHookFunc Func, void* pParam, int nType);
函数说明:搜索上线设备 参数说明:
[in] Func
网络 SDK 说明手册
参数说明 : [in] lUserID
IPAC_DEV_Login 的返回值 [in]dwCommand
命令类型, 参见通用参数配置命令 [in] lChannel
配置通道号,-1表示所有通道 [out] lpOutBuffer
存放输出参数的缓冲区, 根据不同的类型, 输出不同的配置结构, 具体见数
据结构定义中各配置结构
[in] dwOutBufferSize 输入缓冲区的大小, (单位字节).
[out] lpBytesReturned 实际返回的缓冲区大小,对应配置结构的大小, (单位字节).
返回值:大于0成功,小于0失败 (可根据错误类型查找)。
21.
IPAC_API BOOL IPAC_DEV_SetConfig( LONG lUserID, DWORD dwCommand, LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize);
函数说明: 获取设备配置。 参数说明 :
[in] lUserID
IPAC_DEV_Login 的返回值 [in]dwCommand
命令类型,参见通用参数配置命令 [in] lChannel
配置通道号,-1表示所有通道 [in] lpInBuffer
存放输入参数的缓冲区, 根据不同的类型, 输入不同的配置结构, 具体见数
据结构定义中各配置结构
[in] dwInBufferSize 输入缓冲区的大小, (单位字节).
第 28 页 共 32 页
[in] int nType 默认 0
5.9 其它命令
23. IPAC_API BOOL IPAC_DEV_RestoreConfig( LONG
函数说明:恢复出厂设置
参数说明:
[in] lUserID
IPAC_DEV_Login 的返回
返回值:成功返回 TRUE,失败返回 FALSE
lUserID);
24. IPAC_API BOOL IPAC_DEV_Reboot( LONG lUserID);
函数说明:重启设备
参数说明:
[in] lUserID
IPAC_DEV_Login 的返回
返回值:成功返回 TRUE,失败返回 FALSE
25. IPAC_API DWORD IPAC_DEV_GetSDKVersion();
函数说明:得到当前 SDK 的版本号
参数说明:
返回值:当前版本号
enum SERIAL_TYPE {
RS232 = 0,
RS485 = 1, };
26. typedef void (CALLBACK *fTransComCallBack) (long lLoginID, SERIAL_TYPE lTransComType, char *pBuffer, unsigned long dwBufSize, unsigned long dwUser);
27. IPAC_API BOOL IPAC_DEV_OpenTransComChannel(long lLoginID, fTransComCallBack cbTransCom, unsigned long lUser);
函数说明:打开透明传输串口
参数说明:lLoginID 登录设备句柄。cbTransCom 回调,lUser 上下文
网络 SDK 说明手册
回调处理函数,其原型为typedef INT(WINAPI *SearchHookFunc)(IPAC_DEV_SEARCH* pSearchData, void *pParam);
第 29 页 共 32 页
参数说明:
返回值: ;
33. IPAC_API
lLoginID 设备登录 ID。 szFileName 升级文件完整路径。 Func 回调函数。
lpUser 回调函数参数
BOOL IPAC_DEV_SetAlarmMessageCallback(AlarmCallFunc func,
void* pUser);
函数说明: 设置全局的报警信息回调 参数说明: func: 回调函数
网络 SDK 说明手册
返回值:
28. IPAC_API BOOL IPAC_DEV_CloseTransComChannel(long lLoginID,
SERIAL_TYPE nType);
函数说明:关闭透明传输串口
参数说明:lLoginID 登录设备句柄。nType 串口类型 返回值:
29.IPAC_API BOOL IPAC_DEV_SerialWrite(long lLoginID, SERIAL_TYPE nType, char *pBuffer, int nBufLen);
函数说明:透明串口传送
参数说明:lLoginID 登录设备句柄。nType 串口类型 返回值:
30. IPAC_API BOOL IPAC_DEV_SerialRead(long lLoginID, SERIAL_TYPE nType, char *pBuffer, int nBufLen, int *pReadLen)
函数说明:透明串口读取
参数说明:lLoginID 登录设备句柄。nType 串口类型 返回值:
;
31. typedef DWORD (WINAPI *DevUpCallBack)(unsigned int nType, unsigned int nInfo, void* pUser);
32. IPAC_API BOOL IPAC_DEV_StartDevUp(long lLoginID, const char* szFileName, DevUpFunc Func, LPVOID lpUser);
函数说明: 设备升级
第 30 页 共 32 页
pUser: 用户参数,回调函数最后一个参数
BOOL IPAC_DEV_SetListenDevAlarm(LONG lLoginID, BOOL bListen);
监听设备的报警信息
lLoginID:设备登陆 ID bListen:是否监听设备报警
35. IPAC_API bNeedCBNoEncData, fVoiceDataCallBack
返回值: ;
34. IPAC_API 函数说明:
参数说明: 返回值:
;
函数说明: 参数说明:
返回值: ;
开始语音对讲
lLoginID dwVoiceChan
bNeedCBNoEncData
cbVoiceDataCallBackPCM
pUser
设备登陆 ID
语音通道号,从 1 开始 需要回调的语音数据类型:
0- 编码后的语音数据,
1- 编码前的 原始数据音频数据回调函数 用户数据指针
BOOL IPAC_DEV_StartVoiceCom(LONG lLoginID, DWORD dwVoiceChan, BOOL cbVoiceDataCallBack, void* pUser);
36. IPAC_API BOOL IPAC_DEV_SetVoiceComClientVolume(LONG lVoiceComHandle, WORD wVolume);
函数说明: 参数说明:
设置语音对讲音量
lVoiceComHandle IPAC_DEV_StartVoiceCom 的返回值 wVolume 设置音量,取值范围[0,0xffff] 返回值:
;
37.IPAC_API BOOL IPAC_DEV_StopVoiceCom(LONG lVoiceComHandle);
函数说明: 停止语音对讲
参数说明: lVoiceComHandle IPAC_DEV_StartVoiceCom 的返回值 返回值:
网络 SDK 说明手册
第 31 页 共 32 页
;
网络 SDK 说明手册
第 32 页 共 32 页