大华网络SDK开发手册 下载本文

网络客户端SDK编程手册

2. 日志的类型

enum dh_log_t {

LOG_REBOOT = 0x0000, LOG_SHUT,

LOG_CONFSAVE = 0x0100, LOG_CONFLOAD,

//system logs //config logs

LOG_FSERROR = 0x0200, //文件系统错误 LOG_HDD_WERR, //硬盘写错误 LOG_HDD_RERR, //硬盘读错误 LOG_HDD_TYPE, //设置硬盘类型 LOG_HDD_FORMAT, //格式化硬盘 LOG_ALM_IN = 0x0300, //alarm logs //record

LOG_MANUAL_RECORD_START = 0x0400, LOG_MANUAL_RECORD_STOP, //user manager

LOG_LOGIN = 0x0500, LOG_LOGOUT, LOG_ADD_USER, LOG_DELETE_USER, LOG_MODIFY_USER, LOG_ADD_GROUP, LOG_DELETE_GROUP, LOG_MODIFY_GROUP, //clear

LOG_CLEAR = 0x0600, //record operation LOG_DOWNLOAD, LOG_PLAYBACK, LOG_TYPE_NR = 8, };

//录像下载 //录像回放

3. 数据组织

向客户端传递所有日志信息,长度为N*日志结构长度,N为日志的条数。

? 查询硬盘信息的返回数据结构

typedef struct{

DWORD dwDiskNum; //硬盘个数

NET_DEV_DISKSTATE stDisks[DH_MAX_DISKNUM]; //各硬盘信息 }DH_HARDDISK_STATE,*LPDH_HARDDISK_STATE;

第 21 页 共 93 页 网络客户端SDK编程手册

? 音频数据的格式结构

Typedef struct{

BYTE byFormatTag; //编码类型,0-PCM WORD nChannels; //声道数 WORD wBitsPerSample; //采样深度 DWORD nSamplesPerSec; //采样率

} DH_AUDIO_FORMAT, *LPDH_AUDIO_FORMAT;

3.1.5 系统配置信息结构

目前提供了配置控件的方式配置设备

4 接口定义

4.1 SDK初始化

1.

CLIENT_API DWORD CALL_METHOD CLIENT_GetLastError(void);

? 函数说明:返回函数执行失败代码,当调用下面的接口失败时,可以用该函

数获取失败的代码,具体错误代码参见错误类型代号说明 ? 参数说明: ? 返回值:返回 ? 相关函数:

? 典型应用:参加demo

typedef void (CALLBACK *fDisConnect)(LONG lLoginID, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);

2. CLIENT_API BOOL CLIENT_Init(fDisConnect cbDisConnect,

DWORD dwUser); ? 函数说明:初始化SDK, 在所有的SDK函数之前调用 ? 参数说明:

cbDisConnect

断线回调函数,回调出当前网络已经断开的设备, 对主动断开的设备不回调; 设置为0时禁止回调

dwUser

用户数据

第 22 页 共 93 页 网络客户端SDK编程手册

? 回调函数参数说明:

lLoginID

CLIENT_Login的返回值

pchDVRIP

设备IP

nDVRPort

端口 dwUser

用户数据,就是上面输入的用户数据

? 返回值:成功返回TRUE,不成功返回FALSE ? 相关函数:CLIENT_Cleanup

? 典型应用:在应用程序初始化时调用

3. ? ? ? ? ?

4.

CLIENT_API void CLIENT_SetConnectTime(int nWaitTime, int nTryTimes);

CLIENT_API void CLIENT_Cleanup();

函数说明:清空SDK, 释放占用的资源,在所有的SDK函数之后调用。 参数:无 返回值:无

相关函数:CLIENT_Init

典型应用:在应用程序关闭时调用

? 函数说明:设置与设备的连接等待时间

? 调用顺序无关,SDK默认值为3000ms,对外网一般需要增加到5000ms,此值

不影响设备连接速度, 只有当网络状态不好时延长等待时间,可以提高连接成功几率。 ? 参数说明:

nWaitTime

连接等待时间,毫秒级 nTryTimes

连接次数,暂时为无效值

? 返回值:无

? 相关函数:CLIENT_Login

? 典型应用:一般在应用程序初始化时调用

第 23 页 共 93 页 网络客户端SDK编程手册

5. ? ? ? ?

CLIENT_API DWORD CLIENT_GetSDKVersion(); 函数说明:得到SDK的版本号 参数:无

返回值:版本号

典型应用:一般在应用程序初始化时调用

4.2 状态侦听

typedef BOOL (CALLBACK *fMessCallBack)(LONG lCommand, LONG lLoginID, char *pBuf, DWORD dwBufLen, char *pchDVRIP, LONG nDVRPort, DWORD dwUser);

6.

CLIENT_API void CLIENT_SetDVRMessCallBack(fMessCallBack cbMessage, DWORD dwUser);

? 函数说明:设置设备消息回调函数, 用来得到设备当前状态信息,与调用顺序

无关,SDK默认不回调,此回调函数必须在调用打开侦听CLIENT_StartListen或CLENT_StartListenEx才有效,同时需要说明的是针对目前定义的报警状态,是每秒回调设备当前的状态值; ? 参数说明:

cbMessage

消息回调函数,可以回调设备的状态, 如报警状态可以通过此回调获取; 当设置为0时表示禁止回调 dwUser 用户数据

?回调函数参数说明:

lCommand

回调类型 lLoginID

CLIENT_Login的返回值

pBuf

接收报警数据的缓存,根据调用的侦听接口和lCommand值不同,填充的

数据不同

如果调用的侦听接口为CLIENT_StartListen,则lCommand的可能值是: -OMM_ALARM:填充数据为一个NET_CLIENT_STATE结构体。 -SHELTER_ALARM:填充数据为16个字节,每个字节表示一个视频通道的遮挡报警状态,1为有报警,0为无报警

-DISK_FULL_ALARM,填充数据为1个DWORD值,1表示硬盘满,0表示硬盘未满。

-DISK_ERROR_ALARM:填充数据为1个DWORD值,按位表示最多32个硬盘的故障报警,每位为1表示有报警,为0表示无报警。

-SOUND_DETECT_ALARM:填充数据为16个字节,每个字节表示一个视频

第 24 页 共 93 页