网络客户端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 页