admin 管理员组

文章数量: 887016


2024年3月27日发(作者:怎么把html变成js)

精品

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

 典型应用:用来查询当前设备支持的云台控制协议和串口协议,便于网络上选

择修改串口配置和云台控制配置

57. CLIENT_API BOOL CLIENT_QuerySystemInfo(LONG lLoginID, int

nSystemType, char *pSysInfoBuffer, int maxlen, int *nSysInfolen, int

waittime=2000);

 函数说明:查询系统信息,不同的信息有不同的数据结构

 参数说明:

lLoginID

CLIENT_Login

的返回值

nSystemType

要查询的系统类型

0

1

2

3

4

5

一般信息

查询设备属性信息

查询硬盘信息

查询文件系统信息

查询视频属性信息

查询系统字符集属性信息

感谢下载载

精品

6

7

查询光存储设备信息

获取设备序列号

pSysInfoBuffer

接收的协议缓冲区

maxlen

接收的协议缓冲区长度

nSysInfolen

接收的总字节数

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

 典型应用:查询配置的一些信息,在配置控件就有查询字符集属性的要求

58. CLIENT_API BOOL CLIENT_GetDevConfig(LONG lLoginID, DWORD

dwCommand,LONG lChannel, LPVOID lpOutBuffer,DWORD

dwOutBufferSize,LPDWORD lpBytesReturned);

 函数说明: 获取设备配置,该接口目前还没有实现

 参数说明 :

lLoginID

CLIENT_Login

的返回值

感谢下载载

精品

dwCommand

配置类型 具体定义见数据结构定义中的<配置结构类型常量定义>

lChannel

通道号,如果不是通道参数,lChannel不用,置为-1即可

lpOutBuffer

存放输出参数的缓冲区, 根据不同的类型, 输出不同的配置结构, 具

体见数据结构定义中各配置结构

dwOutBufferSize

输入缓冲区的大小

lpBytesReturned

实际返回的缓冲区大小,对应配置结构的大小

返回值:TRUE表示成功,FALSE表示失败。

59. CLIENT_API BOOL CLIENT_SetDevConfig(LONG lLoginID, DWORD

dwCommand,LONG

dwInBufferSize);

lChannel, LPVOID lpInBuffer,DWORD

 函数说明: 获取设备配置,该接口目前还没有实现

 参数说明 :

lLoginID

CLIENT_Login

的返回值

感谢下载载

精品

dwCommand

配置类型 具体定义见数据结构定义中的<配置结构类型常量定义>

lChannel

通道号,如果不是通道参数,lChannel不用,置为-1即可

lpInBuffer

存放输出参数的缓冲区, 根据不同的类型, 输出不同的配置结构, 具

体见数据结构定义中各配置结构

dwInBufferSize

输入缓冲区的大小

 返回值:TRUE表示成功,FALSE表示失败。

4.14 日志管理

typedef void(CALLBACK *fLogDataCallBack) (LONG lLoginID, char *pBuffer,

DWORD dwBufSize, DWORD nTotalSize, bool bEnd, DWORD dwUser);

60. CLIENT_API BOOL CLIENT_QueryLogCallback(LONG lLoginID,

fLogDataCallBack cbLogData, DWORD dwUser);

 函数说明:查询日志,异步日志查询,查询日志分通过多次将结果回调出来,可

以用于日志记录比较多的情况

 参数说明:

lLoginID

CLIENT_Login

的返回值

感谢下载载

精品

cbLogData

日志回调函数

dwUser

用户数据

日志回调函数参数说明:

lLoginID

上面传进来的

pBuffer

日志数据缓冲

dwBufSize

日志数据缓冲长度

nTotalSize

为要日志总长度

bEnd

是否为最后一个日志包,如为最后一个则

nTotalSize

为0

dwUser

用户数据,就是上面传进来的用户数据

 返回值:成功返回TRUE,失败返回FALSE

 相关函数

: CLIENT_QueryLog

 典型应用:回调时日志获取,可以处理分页显示的情况;

感谢下载载

精品

61. CLIENT_API BOOL CLIENT_QueryLog(LONG lLoginID, char *pLogBuffer,

int maxlen, int *nLogBufferlen, int waittime=6000);

 函数说明:查询日志,同步方式,将日志记录一次性查询出来

 参数说明:

lLoginID

CLIENT_Login

的返回值

pLogBuffer

日志缓冲区

maxlen

日志缓冲区的最大长度

nLogBufferlen

返回的日志长度

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_QueryLogCallback

 典型应用:与上一接口类似,查询时一次获取日志方式,可以用来一次显示所有

日志的情况;

4.15 透明串口

typedef void(CALLBACK *fTransComCallBack) (LONG lLoginID, LONG

感谢下载载

精品

lTransComChannel, char *pBuffer, DWORD dwBufSize, DWORD dwUser);

62. CLIENT_API LONG CLIENT_CreateTransComChannel(LONG lLoginID,

int TransComType, unsigned int baudrate, unsigned int databits,

unsigned int stopbits, unsigned int parity, fTransComCallBack

cbTransCom, DWORD dwUser);

 函数说明:创建透明串口通道, 更改前端设备串口为透明通道状态

 参数说明:

lLoginID

CLIENT_Login

的返回值

TransComType

串口类型0:串口1:485口

baudrate

串口的波特率

1~8分别表示1200, 2400, 4800, 9600, 19200, 38400, 57600,

115200

Databits

串口的数据位4~8表示4位~8位

Stopbits

串口的停止位1表示1位, 2表示1.5位 ,3表示2位

Parity

感谢下载载

精品

串口的检验位

1 odd

2 even

3 无校验

CbTransCom

串口数据回调, 回调出前端设备发过来的信息;

dwUser

用户数据

串口数据回调参数说明:

lLoginID

上面传进来的

lTransComChannel

CLIENT_CreateTransComChannel

的返回值

pBuffer

透明数据缓冲

dwBufSize

透明数据缓冲长度

dwUser

用户数据,就是上面传进来的数据

 返回值:成功返回透明串口ID,失败返回0

 相关函数:

CLIENT_DestroyTransComChannel, CLIENT_SendTransComData

感谢下载载

精品

 典型应用:用来直接与前端设备相连的串口设备之间通过前端设备通讯,如云

台,前端设备不经过处理直接将网络端通过网络发送数据流,通过串口转发到

串口设备,相反也可;本接口只是更改前端设备的通讯状态,设置透明串口状态;

其中

CbTransCom

用来处理串口设备发送到网络端的数据流;

63. CLIENT_API BOOL CLIENT_SendTransComData(LONG

lTransComChannel, char *pBuffer, DWORD dwBufSize);

 函数说明:发送透明串口数据,即向前端设备发送数据

 参数说明:

lTransComChannel

透明串口ID

pBuffer

要发送的透明串口数据指针

dwBufSize

要发送的透时串口数据长度

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_CreateTransComChannel, CLIENT_DestroyTransComChannel

 典型应用:发送到串口设备的数据流

64. CLIENT_API BOOL CLIENT_DestroyTransComChannel(LONG

感谢下载载

精品

lTransComChannel);

 函数说明:关闭透明通道

 参数说明:

lTransComChannel

透明串口ID

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_CreateTransComChannel, CLIENT_SendTransComData

 典型应用:当不需要通讯时关闭

4.16 远程控制

65. CLIENT_RebootDev(LONG lLoginID)

 函数说明:重启前端设备

 参数说明:

lLoginID

CLIENT_Login

的返回值

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

 典型应用:远程控制设备重启;

感谢下载载

精品

66. CLIENT_ShutDownDev(LONG lLoginID)

 函数说明:关闭前端设备

 参数说明:

lLoginID

CLIENT_Login

的返回值

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

 典型应用:远程控制设备关闭;,需要注意的是,只有特别定制的部分机型能

够支持本命令。

typedef void(CALLBACK *fUpgradeCallBack) (LONG lLoginID, LONG

lUpgradechannel, int nTotalSize, int nSendSize, DWORD dwUser);

67. CLIENT_API LONG CLIENT_StartUpgrade(LONG lLoginID, char

*pchFileName, fUpgradeCallBack cbUpgrade, DWORD dwUser);

 函数说明:设置对前端设备网络升级程序

 参数说明:

lLoginID

CLIENT_Login

的返回值

pchFileName

要升级的文件名

感谢下载载

精品

fUpgradeCallBack

回调升级进度,其中lUpgradechannel为升级句柄

nTotalSize

为升级文件的总长度

int nSendSize

为已升级的长度

dwUser

用户数据

 返回值:成功返回升级句柄ID,失败返回0

 相关函数:

CLIENT_SendUpgrade, CLIENT_StopUpgrade

 典型应用:设置远程程序的升级,返回程序升级句柄,调用本接口还没有发送升

级程序数据,需要调用下一接口,数据才能发送;

68. CLIENT_API BOOL CLIENT_SendUpgrade(LONG lUpgradeID);

 函数说明:开始执行升级

 参数说明:

lUpgradeID

升级句柄ID

 返回值:成功返回TRUE,失败返回FALSE

感谢下载载

精品

 相关函数:

CLIENT_StartUpgrade, CLIENT_StopUpgrade

 典型应用:发送升级程序数据;

69. CLIENT_API BOOL CLIENT_StopUpgrade(LONG lUpgradeID)

 函数说明:停止升级

 参数说明:

lUpgradeID

升级句柄ID

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_StartUpgrade, CLIENT_SendUpgrade

 典型应用:停止升级

4.17

录像控制

70. CLIENT_API BOOL CLIENT_QueryRecordState(LONG lLoginID, char

*pRSBuffer, int maxlen, int *nRSBufferlen, int waittime=2000);

 函数说明:查询录像状态

 参数说明:

lLoginID

CLIENT_Login

的返回值

pRSBuffer

录像状态缓冲区,总长度不能小于通道数,其中

感谢下载载

精品

0 为不录像

1 手动录像

2 为自动录像

maxlen

输入参数 录像状态缓冲区长度,不能小于通道数

nRSBufferlen

返回录像状态信息长度, 每一个通道为1个字节

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_SetupRecordState

 典型应用:查询当前设备的录像状态,显示到录像控制页面;

71. CLIENT_API BOOL CLIENT_SetupRecordState(LONG lLoginID,

*pRSBuffer, int nRSBufferlen);

 函数说明:设置录像状态

 参数说明:

lLoginID

CLIENT_Login

的返回值

pRSBuffer

录像状态缓冲区,总长度为通道个数,其中

感谢下载载

char

精品

0 为不录像,

1 手动录像

2 为自动录像

nRSBufferlen

录像状态个数,每一个通道为1个字节

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_QueryRecordState

 典型应用:根据需要更改当前的录像状态;

4.18 系统时间

72. CLIENT_API BOOL CLIENT_QueryDeviceTime(LONG

LPNET_TIME pDeviceTime, int waittime=2000);

 函数说明:查询设备系统时间

 参数说明:

lLoginID

CLIENT_Login

的返回值

pDeviceTime

接收的设备时间指针

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

感谢下载载

lLoginID,

精品

 相关函数:

CLIENT_SetupDeviceTime

 典型应用:应用于系统校时时获取当前前端设备系统时间;

73. CLIENT_API BOOL CLIENT_SetupDeviceTime(LONG lLoginID,

LPNET_TIME pDeviceTime);

 函数说明:设置设备时间

 参数说明:

lLoginID

CLIENT_Login

的返回值

pDeviceTime

设置的设备时间指针

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_QueryDeviceTime

 典型应用:应用于系统校时时更改当前前端设备系统时间与本机系统时间同

步;

4.19 用户管理

74. CLIENT_API BOOL CALL_METHOD CLIENT_QueryUserInfo(LONG

lLoginID, USER_MANAGE_INFO *info, int waittime=15000);

 函数说明:查询用户信息

 参数说明:

感谢下载载

精品

lLoginID

CLIENT_Login

的返回值

Info

用户信息缓存,应传进来一个已分配好内存的

USER_MANAGE_INFO结构指针; 返回的各用户信息USER_INFO

中的password字段是加过密的。

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_OperateUserInfo

 典型应用:获取当前设备用户信息, 应用程序可以根据用户信息对应用界面

的功能进行一定的启动和禁用处理;

75. CLIENT_API BOOL CALL_METHOD CLIENT_OperateUserInfo(LONG

感谢下载载

精品

lLoginID, int nOperateType, void *opParam, void *subParam, int

waittime=15000);

 函数说明:设置用户信息

 参数说明:

lLoginID

CLIENT_Login

的返回值

nOperateType

设置类型

0

指针

增加用户组-

opParam

为欲设置的

USER_GROUP_INF结构

1

指针

删除用户组-

opParam

为欲设置的

USER_GROUP_INF结构

其name成员是实际起作用的变量

2

修改用户组-

opParam

为新的

USER_GROUP_INF结构指针,

subParam为原始的

USER_GROUP_INF结构指针,

增加用户 -opParam为欲增加的

USER_INF结构指针

其password成员传普通字符串即可,不用加密

3

4

删除用户 -opParam为欲删除的

USER_INF结构指针

其name成员是实际起作用的变量

5 修改用户 -opParam为新的

USER_INF结构指针

subParam为原始的

USER_INF结构指针,其password成员必须

感谢下载载

精品

是查询时返回的密码字段(加密过的)

6 修改用户密码-opParam为新的

USER_INF结构指针

subParam为原始的

USER_INF结构指针,其password成员必须

是普通字符串,不用加密

opParam

设置用户信息的输入缓冲,具体见上面

nOperateType说明

subParam

设置用户信息的辅助输入缓冲,当设置类型为修改信息的时候,此处

应传进来部分原始用户信息,具体见上面

nOperateType说明

waittime

等待时间

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_QueryUserInfo

 典型应用:为实现要求的功能,设置更改设备的用户信息

感谢下载载

精品

4.20 语音对讲

76. CLIENT_API BOOL CLIENT_StartTalk(LONG lRealHandle, bool

bCustomSend=false);

 函数说明:开始传输对讲数据,这个并没有开始播放对讲,需要调用

CLIENT_OpenSound

播放才能接收到前端的声音;

 参数说明:

lRealHandle

实时监视ID

bCustomSend

是否自定义发送,如果

bCustomSend

为true,则需要用户自已调用

发送

CLIENT_SendTalkData_Custom

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_StopTalk

 典型应用:打开语音对讲,开始通过音频输入将音频发送到前端设备;其中

bCustomSend

为false时是直接取本机音频输入口的音频发送,相关需调用下

一接口

CLIENT_StopTalk

客户自定义发送;

【注意】在V3.1.8以后(包含V3.1.8)该接口被废除,替代接口是

CLIENT_StartTalkEx

77. CLIENT_API BOOL CLIENT_StopTalk(LONG lRealHandle);

 函数说明:停止传输对讲数据

感谢下载载

精品

 参数说明:

lRealHandle

实时监视ID

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_StartTalk

 典型应用:停止语音对讲

【注意】在V3.1.8以后(包含V3.1.8)该接口被废除,替代接口是

CLIENT_StartTalkEx

78. CLIENT_API BOOL CLIENT_SendTalkData_Custom(LONG lRealHandle,

char *pBuffer, DWORD dwBufSize);

 函数说明:发送自定义音频数据

 参数说明:

lRealHandle

实时监视ID

pBuffer

要发送音频数据缓冲区,音频数据必须是采样率8000,码率64k,每采

样比特数为8

dwBufSize

要发送的音频数据长度

感谢下载载

精品

 返回值:成功返回TRUE,失败返回FALSE

 典型应用:用户自定义发送音频数据到前端设备,如发送音乐;

【注意】:在V3.1.8以后(包含V3.1.8)该接口被废除.

typedef void(CALLBACK *pfAudioDataCallBack)(LONG lTalkHandle, char

*pDataBuf, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser);

79. CLIENT_API LONG CLIENT_StartTalkEx(LONG lLoginID,

pfAudioDataCallBack pfcb, DWORD dwUser);

 函数说明:向设备发起语音对讲请求

 参数说明:

(in)lLoginID

登陆返回的设备句柄

(in)pfcb

用户自定义的数据回调接口

(in)dwUser

用户自定义信息,通过回调函数返回给用户

回调函数参数说明(原型参见

pfAudioDataCallBack

)

(in)lTalkHandle

就是

CLIENT_StartTalkEx

的返回值

(in)pDataBuf

回调出来的音频数据的内容

感谢下载载

精品

(in)dwBufSize

回调出来的音频数据的长度

(in)byAudioFlag

音频数据归属标志

0

1

表示是本地录音库采集的音频数据

表示收到的设备发过来的音频数据

(in)dwUser

用户调用

CLIENT_StartTalkEx

时自定义的用户数据

 返回值:成功返回和设备对讲的句柄,失败返回0;

 典型应用:打开和设备的对讲;

【注意】 在V3.1.8以后(包含V3.1.8)才有这个接口,代替之前的

CLIENT_StartTalk

80. CLIENT_API BOOL CLIENT_SetAudioClientVolume(LONG lTalkHandle,

WORD wVolume);

 函数说明:在进行语音对讲的时候设置音量;

 参数说明:

感谢下载载

精品

(in)lTalkHandle

CLIENT_StartTalkEx

的返回值

(in)wVolume

要设置的音量,范围是0~0XFFFF,0的音量最小

 返回值:成功返回TRUE,失败返回FALSE;

 典型应用:

【注意】备注在V3.1.8以后(包含V3.1.8)才有的。

81. CLIENT_API LONG CLIENT_TalkSendData(LONG lTalkHandle, char

*pSendBuf, DWORD dwBufSize);

 函数说明:向设备发送用户的音频数据,这里的数据可以是从

CLIENT_StartTalkEx

的回调接口中回调出来的数据;

 参数说明:

(in)lTalkHandle

CLIENT_StartTalkEx

的返回值;

(in)pSendBuf

要发送的音频数据;

(in)dwBufSize

是要发送的音频数据的长度;

感谢下载载

精品

 返回值:成功时返回实际传输给设备的数据长度,失败返回-1

 典型应用:接收到CLIENT_StartTalkEx的回调出来的录音数据后通过这个接

口发送给设备。

【注意】在V3.1.8以后(包含V3.1.8)才有的。

82. CLIENT_API BOOL CLIENT_RecordStart();

 函数说明:启动本地录音功能,录音采集出来的音频数据通过

CLIENT_StartTalkEx

的回调函数回调给用户,对应操作是

CLIENT_RecordStop

 参数:无

 返回值:成功返回TRUE,失败返回FALSE;

 典型应用:语音对讲中使用;

【注意】在V3.1.8以后(包含V3.1.8)才有的。

83. CLIENT_API BOOL CLIENT_RecordStop();

 函数说明:停止本地录音,对应操作是

CLIENT_RecordStart;

 参数:无

 返回值:成功返回TRUE,失败返回FALSE;

 典型应用:语音对讲中使用;

【注意】在V3.1.8以后(包含V3.1.8)才有的。

感谢下载载

精品

84. CLIENT_API void CLIENT_AudioDec(char *pAudioDataBuf, DWORD

dwBufSize);

 函数说明:对输入的音频数据进行解码;

 参数说明:

(in)pAudioDataBuf

要求解码的音频数据内容;

(in)dwBufSize

要求解码的音频数据的长度;

 返回值:无

 典型应用:语音对讲中对设备传过来的数据进行解码;

【注意】在V3.1.8以后(包含V3.1.8)才有的。

85. CLIENT_API BOOL CLIENT_StopTalkEx(LONG lTalkHandle);

 函数说明:停止与设备的对讲,对应操作是

CLIENT_StartTalkEx

 参数说明:

(in)lTalkHandle

CLIENT_StartTalkEx

返回的对讲句柄

 返回值:成功返回TRUE,失败返回FALSE;

 典型应用:语音对讲中使用;

感谢下载载

精品

【注意】在V3.1.8以后(包含V3.1.8)才有的。

86. CLIENT_API BOOL CLIENT_AudioBroadcastAddDev(LONG lLoginID);

 函数说明:把设备增加到广播组中,当本地录音库启动后,采集出来的数据

会自动发送给广播组中的设备,对应操作是

CLIENT_AudioBroadcastDelDev

 参数说明:

(in)lLoginID

登录设备时得到的设备句柄

 返回值:成功返回TRUE,失败返回FALSE;

 典型应用:在语音对讲服务器开发中使用;

【注意】在V3.1.8以后(包含V3.1.8)才有的。

87. CLIENT_API BOOL CLIENT_AudioBroadcastDelDev(LONG lLoginID);

 函数说明:把设备从广播组中删除,对应操作是

CLIENT_AudioBroadcastAddDev

 参数说明:

(in)lLoginID

设备句柄

 返回值:成功返回TRUE,失败返回FALE;

 典型应用:在语音对讲服务器开发中使用;

【注意】在V3.1.8以后(包含V3.1.8)才有的。

感谢下载载

精品

88. CLIENT_API int CLIENT_InitAudioEncode(DH_AUDIO_FORMAT aft);

 函数说明:初始化对讲中的音频编码接口,告诉SDK内部要编码的源音频数

据的音频格式,对不支持的音频格式初始化会失败;

 参数说明:

(in)aft

要编码的音频格式,类型DH_AUDIO_FORMAT

 返回值:成功返回0,失败返回错误码,参考错误码解释;

 相关函数:

 典型应用:通过配置接口获取设备支持的音频解码格式,目前配置接口还不

支持获取,这里的音频格式默认只支持(0,1,16,8000),格式表示是(编

码类型,声道数,采样深度,采样率)

89. CLIENT_API int CLIENT_AudioEncode(LONG lTalkHandle, BYTE

*lpInBuf, DWORD *lpInLen, BYTE *lpOutBuf, DWORD *lpOutLen);

 函数说明:进行音频的数据二次编码,从标准音频格式转换成设备支持的大

华格式;

 参数说明:

(in)lTalkHandle

感谢下载载

精品

CLIENT_StartTalkEx接口的返回值,对讲的句柄;

(in)lpInBuf

要编码的源音频数据;

(in,out)lpInLen

源音频数据的长度,当接口返回数据过长时,lpInLen的值是接口支持的

最长的输入长度,最好不要超过1024*2,当返回成功时,其值表示剩下还

没有编码数据长度;

(out)lpOutBuf

用来存储编码的音频数据;

(in,out)lpOutLen

调用接口时表示

lpOutBuf

的最大长度,当接口返回缓冲不足时,其值是需要

的缓冲长度;

 返回值:成功返回0,失败返回错误码,参考错误码解释

 相关函数:

CLIENT_InitAudioEncode,CLIENT_StartTalkEx ,

CLIENT_ReleaseAudioEncode

 典型应用:在对讲中,如果是用户使用自己的录音数据,传给**的数据必须

是经过编码的数据;

90. CLIENT_API int CLIENT_ReleaseAudioEncode();

 函数说明:解码功能使用完毕后,告诉接口清理内部资源;

 参数说明:

感谢下载载

精品

 返回值:成功返回0,失败返回错误码,参考错误码解释;

相关参数:

CLIENT_InitAudioEncode,CLIENT_AudioEncode

 典型应用:

4.21 码流统计

91. CLIENT_API LONG CLIENT_GetStatiscFlux(LONG lLoginID, LONG

lPlayHandle);

 函数说明:获取流量统计,得到在上次调用此统计流量之间的流量,每调用一次

原有的历史流量都将清0

 参数说明:

lLoginID

CLIENT_Login

的返回值

lPlayHandle

播放ID,可以是实时播放ID,预览ID或者是网络回放ID,当为0时得

到设备的总流量

 返回值:成功返回流量值,失败返回-1

 相关函数:

CLIENT_Login

 典型应用:获取当前显示窗口的网络流量,用于码流统计,为图像显示提供参考

依据

感谢下载载

精品

4.22 IO控制

92. CLIENT_API BOOL CLIENT_QueryIOControlState(LONG lLoginID,

IOTYPE emType, void *pState, int maxlen, int *nIOCount, int

waittime=2000);

 函数说明:得到设备的IO状态

 参数说明:

lLoginID

CLIENT_Login

的返回值

emType

IO类型,1报警输入, 2报警输出,详见

IOTYPE

类型定义

pState

状态缓冲区,根据不同的IO类型可以是不同的数据结构数组

maxlen

最大缓冲区大小

nIOCount

输出参数, 取得状态的IO数量

waittime

等待时间

 返回值:成功返回流量值,失败返回-1

 相关函数:

CLIENT_Login

 典型应用:本接口采用

windows

查询处理方式,先调用本接口

pState

感谢下载载

精品

设为Null获取

nIOCount,

pState

申请相应的内存再调用本接口将内存指

针作输入参数, 同时也做输出参数返回状态数据

93. CLIENT_API BOOL CLIENT_IOControl(LONG lLoginID, IOTYPE emType,

void *pState, int maxlen);

 函数说明:设置IO状态,可以对一个IO设置,也可以同时对多个一起设置

 参数说明:

lLoginID

CLIENT_Login

的返回值

emType

IO类型,1报警输入, 2报警输出,详见

IOTYPE

类型定义;

pState

状态缓冲区,根据不同的IO类型可以是不同的数据结构数组

maxlen

最大缓冲区大小

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_Login

 典型应用:修改报警步撤防状态和报警输出状态

4.23 强制I帧

94. CLIENT_API BOOL CLIENT_MakeKeyFrame(LONG lLoginID, int

感谢下载载

精品

nChannelID, int nSubChannel=0);

 函数说明:对监视图像强制I帧,执行一次强制一个I帧

 参数说明:

lLoginID

CLIENT_Login

的返回值

nChannelID

通道ID

nSubChannel

子通道,目前暂时不用

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_Login

 典型应用:可以于网络监视出现马赛克无法恢复图像时,调用此接口让图像恢

复正常;也可以根据用户需要,定期强制I确保数据的稳定;

4.24 设置限流

95. CLIENT_API BOOL CLIENT_SetMaxFlux(LONG lLoginID, WORD nFlux);

 函数说明:设置设备的网络限定流量

 参数说明:

lLoginID

感谢下载载

精品

CLIENT_Login

的返回值

nFlux

流量值,单位Kbps(1024 bits/sec)目前只支持几个特定可选值设置,

65535(无限制),64, 128, 256, 512, 768, 1024。

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_Login

 典型应用:应用于连接多台不同的设备,需要限定网络流量的情况

4.25 获取设备状态

96. CLIENT_API BOOL CLIENT_GetDEVWorkState(LONG lLoginID,

LPNET_DEV_WORKSTATE lpWorkState, int waittime=2000);

 函数说明:获取前端设备的当前工作状态;

 参数说明:

lLoginID

CLIENT_Login

的返回值

lpWorkState

设备状态信息,具体见数据结构(

NET_DEV_WORKSTATE

)定义中有说

感谢下载载

精品

waittime

查询状态等待时间,默认2000ms

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_Login

 典型应用:获取设备的当前工作状态

97. CLIENT_API BOOL CALL_METHOD CLIENT_QueryDevState(LONG

lLoginID, int nType, char *pBuf, int nBufLen, int *pRetLen, int

waittime=1000);

 函数说明:获取前端设备的当前工作状态,新接口;

 参数说明:

lLoginID

CLIENT_Login

的返回值

nType

查询信息类型,可接受的值包括:

DH_DEVSTATE_COMM_ALARM

DH_DEVSTATE_SHELTER_ALARM

DH_DEVSTATE_RECORDING

DH_DEVSTATE_DISK

查询普通报警

查询遮挡报警

查询录象状态

查询硬盘状态

pBuf

输出参数,用于接收查询返回的数据的缓存。根据查询类型的不同,

感谢下载载

精品

返回数据的数据结构也不同:

nType

的可能值是

-DH_DEVSTATE_COMM_ALARM

:填充数据为一个

NET_CLIENT_STATE

结构体。

-DH_DEVSTATE_SHELTER_ALARM

:填充数据为16个字节,每个字

节表示一个视频通道的遮挡报警状态,1为有报警,0为无报警

DH_DEVSTATE_RECORDING

:填充数据为16个字节,每个字节表

示一个视频通道的录象状态,1表示正在录象,0表示不在录象。

DH_DEVSTATE_DISK

:填充数据为一个

DH_HARDDISK_STATE

结构

体。

nBufLen

缓存长度 ,单位字节

pRetLen

输出参数,实际返回的数据长度,单位字节

waittime

查询状态等待时间,默认1000ms

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_Login

 典型应用:获取设备的当前工作状态

感谢下载载

精品

4.26 修改通道名称

98. CLIENT_API BOOL CALL_METHOD CLIENT_SetupChannelName(LONG

lLoginID,char *pbuf, int nbuflen);

 函数说明:修改设备通道名称

 参数说明:

lLoginID

CLIENT_Login

的返回值

pbuf

通道名称的缓冲

nbuflen

缓冲区长度 32*16

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:

CLIENT_Login、CLIENT_QueryChannelName

 典型应用:无

4.27 DDNS查询IP

99. CLIENT_API BOOL CLIENT_ GetDVRIPByResolveSvr (char *pchDVRIP,

WORD wDVRPort, BYTE *sDVRName, WORD wDVRNameLen, BYTE

*sDVRSerialNumber, WORD wDVRSerialLen, char* sGetIP);

 函数说明:连接DDNS服务器,通过设备名查询IP

 参数说明:

感谢下载载

精品

pchDVRIP

DDNS服务器的

wDVRPort

DDNS服务器的端口号

sDVRName

所查询的设备名

wDVRNameLen

设备名的长度

sDVRSerialNumber

所查询的设备序列号(目前不支持,填0)

wDVRSerialLen

设备序列号的长度(目前不支持, 填0)

sGetIP

储存返回IP的地址指针( 应用程序中分配, 32字节长)

 返回值:成功返回TRUE,失败返回FALSE

 相关函数:无

 典型应用:连接DDNS服务器,通过设备名查询IP

感谢下载载

精品

4.28 设备参数配置

100. CLIENT_API BOOL CALL_METHOD CLIENT_GetDevConfig(LONG

lLoginID, DWORD dwCommand,LONG lChannel, LPVOID

lpOutBuffer,DWORD dwOutBufferSize,LPDWORD lpBytesReturned);

 函数说明:读取设备的配置信息

 参数:

lLoginID

设备登陆句柄

dwCommand

设备配置命令参见配置命令

lChannel

通道号,如果获取全部通道数据为0xFFFFFFFF,如果命令不需要通道号,该

参数无效。

lpOutBuffer

接受数据缓冲指针

dwOutBufferSize

接收数据缓冲长度(以字节为单位)

lpBytesReturned

实际收到数据的长度

返回值:TRUE 成功,FALSE 失败,获取具体错误代码调用

CLIENT_GetLastError,

可能返回的值如下:

感谢下载载

精品

#define NET_ERROR_GETCFG_SYSATTR _EC(32)

//获取配置失败位置:系统属性

#define NET_ERROR_GETCFG_SERIAL _EC(33)

//获取配置失败位置:序列号

#define NET_ERROR_GETCFG_GENERAL _EC(34)

#define NET_ERROR_GETCFG_DSPCAP _EC(35)

//获取配置失败位置:常规属性

//获取配置失败位置:DSP能力描述

#define NET_ERROR_GETCFG_NETCFG _EC(36) //获取配置失败位置:网络属性

#define NET_ERROR_GETCFG_CHANNAME _EC(37) //获取配置失败位置:通道名称

#define NET_ERROR_GETCFG_VIDEO _EC(38) //获取配置失败位置:视频属性

#define NET_ERROR_GETCFG_RECORD _EC(39) //获取配置失败位置:录象定时配置

#define NET_ERROR_GETCFG_PRONAME _EC(40) //获取配置失败位置:解码器协议名称

#define NET_ERROR_GETCFG_FUNCNAME _EC(41) //获取配置失败位置:232串口功能名称

#define NET_ERROR_GETCFG_485DECODER _EC(42) //获取配置失败位置:解码器属性

#define NET_ERROR_GETCFG_232COM _EC(43) //获取配置失败位置:232串口属性

#define NET_ERROR_GETCFG_ALARMIN _EC(44) //获取配置失败位置:外部报警输入属性

#define NET_ERROR_GETCFG_ALARMDET _EC(45) //获取配置失败位置:图像检测报警属性

#define NET_ERROR_GETCFG_SYSTIME _EC(46) //获取配置失败位置:设备时间

#define NET_ERROR_GETCFG_PREVIEW _EC(47) //获取配置失败位置:预览参数

 相关函数:

 典型应用:参见VC _DEMO程序

101. CLIENT_API BOOL CALL_METHOD CLIENT_SetDevConfig(LONG

lLoginID, DWORD dwCommand,LONG lChannel, LPVOID

感谢下载载

精品

lpInBuffer,DWORD dwInBufferSize);

 函数说明:读取设备的配置信息

 参数:

lLoginID

设备登陆句柄

dwCommand

设备配置命令参见配置命令

lChannel

通道号,如果设置全部通道数据为0xFFFFFFFF,如果命令不需要通道号,

该参数无效。

lpOutBuffer

数据缓冲指针

dwOutBufferSize

数据缓冲长度(以字节为单位)

 返回值:TRUE 成功,FALSE 失败,获取具体错误代码调用

CLIENT_GetLastError

可能返回的值如下:

#define NET_ERROR_SETCFG_GENERAL _EC(48) //设置配置失败位置:常规属性

#define NET_ERROR_SETCFG_NETCFG _EC(49) //设置配置失败位置:网络属性

#define NET_ERROR_SETCFG_CHANNAME _EC(50) //设置配置失败位置:通道名称

#define NET_ERROR_SETCFG_VIDEO _EC(51) //设置配置失败位置:视频属性

感谢下载载

精品

#define NET_ERROR_SETCFG_RECORD _EC(52) //设置配置失败位置:录象定时配置

#define NET_ERROR_SETCFG_485DECODER _EC(53) //设置配置失败位置:解码器属性

#define NET_ERROR_SETCFG_232COM _EC(54)

#define NET_ERROR_SETCFG_ALARMIN _EC(55)

//设置配置失败位置:232串口属性

//设置配置失败位置:外部报警输入属性

#define NET_ERROR_SETCFG_ALARMDET _EC(56) //设置配置失败位置:图像检测报警属性

#define NET_ERROR_SETCFG_SYSTIME _EC(57) //设置配置失败位置:设备时间

#define NET_ERROR_SETCFG_PREVIEW _EC(58) //设置配置失败位置:预览参数

 相关函数:

 典型应用:参见VC_ DEMO程序

**************************************************************************************

配置命令

***************************************************************************************

CLIENT_GetDEVConfig、CLIENT_GetDEVConfig

的命令定义

#define DH_DEV_DEVICECFG 1

#define DH_DEV_NETCFG

2

//设备参数,参见DHDEV_SYSTEM_ATTR_CFG

//网络参数,参见DHDEV_NET_CFG

#define DH_DEV_CHANNELCFG 3 通道配置-图像及压缩参数等,参见

DHDEV_CHANNEL_CFG

#define DH_DEV_PREVIEWCFG 4

#define DH_DEV_RECORDCFG 5

//预览参数,参见DHDEV_PREVIEW_CFG

//录像时间参数,参见DHDEV_RECORD_CFG

感谢下载载

精品

#define DH_DEV_COMMCFG

#define DH_DEV_ALARMCFG

#define DH_DEV_TIMECFG

#define DH_DEV_TALKCFG

6

7

8

9

//串口参数,参见DHDEV_COMM_CFG

//报警参数,参见DHDEV_ALARM_SCHEDULE

//DVR时间,参见开发手册的DH_NETTIME结构

//对讲参数,参见DHDEV_TALK_CFG

************************************************************************************

以下是各部分配置结构体

************************************************************************************

#define DH_MAX_MAIL_ADDR_LEN

#define DH_MAX_MAIL_SUBJECT_LEN

#define DH_MAX_IPADDR_LEN

#define DH_MACADDR_LEN

128

64

16

48

32

32

2

//邮件发(收)人地址最大长度

//邮件主题最大长度

//IP地址字符串长度

//MAC地址字符串长度

//主机名字符串长度

//长度

//通用名字字符串长度

#define DH_MAX_USER_NAMELEN

#define DH_MAX_USER_PSWLEN

#define DH_MAX_NAME_LEN 16

#define DH_MAX_ETHERNET_NUM

#define DH_DEV_SERIALNO_LEN

#define DH_N_WEEKS

//以太网口最大个数

32

7

6

2

//序列号字符串长度

//一周的天数

//录像时间段个数

//颜色时间段个数

//通道名长度

#define DH_N_REC_TSECT

#define DH_N_COL_TSECT

#define DH_CHAN_NAME_LEN 32

感谢下载载

精品

#define DH_N_ENCODE_AUX

#define DH_N_TALK

1

3

1

//扩展码流个数

//最多对讲通道个数

//遮挡区域个数

//最大通道个数

//报警提示时间段个数

//报警输出口个数上限

//视频输入口个数上限

//报警输入口个数上限

//硬盘个数上限,暂定为16

//解码器(485)个数上限

#define DH_N_COVERS

#define DH_N_CHANNEL 16

2 #define DH_N_ALARM_TSECT

#define DH_MAX_ALARMOUT_NUM

#define DH_MAX_VIDEO_IN_NUM

16

16

16

16

5

2

#define DH_MAX_ALARM_IN_NUM

#define DH_MAX_DISK_NUM

#define DH_MAX_DECODER_NUM

#define DH_MAX_232FUNCS

#define DH_MAX_232_NUM

16

//232串口功能个数上限

//232串口个数上限

#define DH_MAX_DECPRO_LIST_SIZE 100

/* 分辨率列表 */

#define DH_CAPTURE_SIZE_D1

#define

//解码器协议列表个数上限

0x00000001

0x00000002 DH_CAPTURE_SIZE_HD1

#define DH_CAPTURE_SIZE_BCIF

#define DH_CAPTURE_SIZE_CIF

#define DH_CAPTURE_SIZE_QCIF

#define DH_CAPTURE_SIZE_VGA

#define DH_CAPTURE_SIZE_QVGA

0x00000004

0x00000008

0x00000010

0x00000020

0x00000040

感谢下载载

精品

#define DH_CAPTURE_SIZE_SVCD

/* 码流控制列表 */

#define DH_CAPTURE_BRC_CBR

#define DH_CAPTURE_BRC_VBR

#define DH_CAPTURE_BRC_MBR

/* 编码模式列表 */

0x00000080

0

1

2

#define DH_CAPTURE_COMP_DIVX_MPEG4 0x00000001

#define DH_CAPTURE_COMP_MS_MPEG4

#define DH_CAPTURE_COMP_MPEG2

#define DH_CAPTURE_COMP_MPEG1

#define DH_CAPTURE_COMP_H263

#define DH_CAPTURE_COMP_MJPG

0x00000002

0x00000004

0x00000008

0x00000010

0x00000020

0x00000040 #define DH_CAPTURE_COMP_FCC_MPEG4

#define DH_CAPTURE_COMP_H264

/* 定时录象类型-定时、动态检测、报警 */

enum REC_TYPE

{

DH_REC_TYPE_TIM = 0,

DH_REC_TYPE_MTD,

DH_REC_TYPE_ALM,

0x00000080

感谢下载载

精品

};

DH_REC_TYPE_NUM,

*************************************************************************************

系统信息

*************************************************************************************

 版本信息:高16位表示主版本号,低16位表示次版本号

 关于时间的数据组织是:yyyymmdd

typedef struct

{

DWORD

DWORD

DWORD

DWORD

DWORD

dwSoftwareVersion;

dwSoftwareBuildDate;

dwDspSoftwareVersion;

dwDspSoftwareBuildDate;

dwPanelVersion;

感谢下载载

精品

DWORD

DWORD

DWORD

DWORD

DWORD

dwPanelSoftwareBuildDate;

dwHardwareVersion;

dwHardwareDate;

dwWebVersion;

dwWebBuildDate;

} DH_VERSION_INFO, *LPDH_VERSION_INFO;

/* DSP能力描述 */

typedef struct

{

} DH_DSP_ENCODECAP, *LPDH_DSP_ENCODECAP;

/* 设备信息配置结构 */

typedef struct { DWORD dwSize;

/*下面是设备的只读部分*/

DH_VERSION_INFO

BYTE

stVersion;

DWORD

DWORD

DWORD

dwVideoStandardMask;//视频制式掩码,按位表示设备能够支持的视频制式

dwImageSizeMask;

dwEncodeModeMask;

//分辨率掩码,按位表示设备能够支持的分辨率设置

//编码模式掩码,按位表示设备能够支持的编码模式设

szDevSerialNo[DH_DEV_SERIALNO_LEN]; //序列号

感谢下载载

精品

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

byDevType;

//设备类型,见枚举NET_DEVICE_TYPE

//视频口数量

//音频口数量

//NSP

byVideoCaptureNum;

byAudioCaptureNum;

byTalkInChanNum;

byTalkOutChanNum;

byDecodeChanNum;

byAlarmInNum;

byAlarmOutNum;

byNetIONum;

//NSP

//NSP

//报警输入口数

//报警输出口数

//网络口数

//USB口数量

//IDE数量

//串口数量

//并口数量

//NSP

//NSP

byUsbIONum;

byIdeIONum;

byComIONum;

byLPTIONum;

byVgaIONum;

byIdeControlNum;

byIdeControlType;

byCapability;

//NSP

//NSP,扩展描述

byReserved[3];

//保留字

//DSP能力描述 DH_DSP_ENCODECAP stDspEncodeCap;

/*下面是设备的可写部分*/

感谢下载载

精品

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

byDevNo;

byOverWrite;

byRecordLen;

//设备编号,用于遥控

//硬盘满处理方式(覆盖、停止)

//录象打包长度

byStartChanNo;

byVideoStandard;

byDateFormat;

byDateSprtr;

byTimeFmt;

//NSP

//视频制式

//日期格式

//日期分割符(0-".", 1-"-", 2-"/")

//时间格式 (0-24小时,1-12小时)

} DHDEV_SYSTEM_ATTR_CFG, *LPDHDEV_SYSTEM_ATTR_CFG;

*************************************************************************************

图像通道

*************************************************************************************

/* 时间段结构 */

typedef struct

{

BYTE

BYTE

BYTE

BYTE

BYTE

byBeginHour;

byBeginMin;

byBeginSec;

byEndHour;

byEndMin;

感谢下载载

精品

BYTE

BYTE

byEndSec;

byReserved[2];

} DH_TSECT, *LPDH_TSECT;

/* 区域:各边距按整长8192的比例 */

typedef struct {

long

long

long

long

left;

top;

right;

bottom;

} DH_RECT,*LPDH_RECT;

/* OSD属性结构 */

typedef struct tagENCODE_WIDGET

{

DWORD

DWORD

DH_RECT

BYTE

BYTE

rgbaFrontground;

rgbaBackground;

// 物件的前景RGB,和透明度

// 物件的后景RGB,和透明度

rcRect;

bShow;

// 位置

// 物件显示

byReserved[3];

} DH_ENCODE_WIDGET, *LPDH_ENCODE_WIDGET;

/* 通道音视频属性 */

感谢下载载

精品

typedef struct

{

//视频参数

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

byVideoEnable;

byBitRateControl;

byFramesPerSec;

byEncodeMode;

byImageSize;

byImageQlty;

//视频使能:1-打开,0-关闭

// 码流控制,参照常量定义

// 帧率

// 编码模式,参照常量定义

// 分辨率参,参照常量定义

// 档次1-6

//音频参数

BYTE

BYTE

byAudioEnable;

wFormatTag;

//音频使能:1-打开,0-关闭

//编码类型,如PCM

WORD nChannels; //声道数

//采样深度

WORD wBitsPerSample;

DWORD nSamplesPerSec; //采样率

} DH_VIDEOENC_OPT, *LPDH_VIDEOENC_OPT;

/* 画面颜色属性 */

typedef struct

{

DH_TSECT stSect;

感谢下载载

精品

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

byBrightness;

byContrast;

bySaturation;

byHue;

byGain;

// 亮度 0-100

0-100

0-100

// 对比度

// 饱和度

// 色度 0-100

// 增益 0-100

byReserved[3];

} DH_COLOR_CFG, *LPDH_COLOR_CFG;

/* 图像通道属性结构体 */

typedef struct

{

DWORD

char

dwSize;

szChannelName[DH_CHAN_NAME_LEN];

stMainVideoEncOpt[DH_REC_TYPE_NUM];

stAssiVideoEncOpt[DH_N_ENCODE_AUX];

stColorCfg[DH_N_COL_TSECT];

stTimeOSD;

DH_VIDEOENC_OPT

DH_VIDEOENC_OPT

DH_COLOR_CFG

DH_ENCODE_WIDGET

感谢下载载

精品

DH_ENCODE_WIDGET

DH_ENCODE_WIDGET

BYTE

stChannelOSD;

stBlindCover[DH_N_COVERS];

byBlindEnable;

// 区域遮盖开关 0x00不使能遮盖,0x01仅遮盖预览,0x10仅遮

盖录像,0x11都遮盖

BYTE byReserved[3];

} DHDEV_CHANNEL_CFG, *LPDHDEV_CHANNEL_CFG;

*************************************************************************************

预览图像参数

/* 预览图像参数 */

typedef struct

{

DWORD dwSize;

DH_VIDEOENC_OPT stPreView;

DH_COLOR_CFG stColorCfg[DH_N_COL_TSECT];

}DHDEV_PREVIEW_CFG;

***************************************************************************************

语音对讲音频属性结构体-未实现,待扩展

感谢下载载

精品

***************************************************************************************

typedef struct {

//音频输入参数

BYTE

BYTE

byInFormatTag;

byInChannels;

//编码类型,如PCM

//声道数

WORD wInBitsPerSample;

DWORD

//采样深度

//采样率 dwInSamplesPerSec;

//音频输出参数

BYTE

BYTE

byOutFormatTag;

byOutChannels;

//编码类型,如PCM

//声道数

//采样深度

WORD wOutBitsPerSample;

DWORD dwOutSamplesPerSec; //采样率

} DHDEV_TALK_CFG, *LPDHDEV_TALK_CFG;

***************************************************************************************

定时录象

***************************************************************************************

typedef struct

{

DWORD dwSize;

DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];

BYTE byPreRecordLen; //预录时间,单位是s,0表示不预录

感谢下载载

精品

BYTE

BYTE

byRedundancyEn;

byReserved[2];

//录像冗余开关

} DHDEV_RECORD_CFG, *LPDH_RECORD_CFG;

************************************************************************************

报警配置

************************************************************************************

 消息触发配置

 当设备产生消息,譬如产生一个输入报警,或者视频丢失时,需要做相应的处理.

 此处定义如何处理一个消息

#define DH_ALARM_UPLOAD

#define DH_ALARM_RECORD

#define DH_ALARM_PTZ

#define DH_ALARM_MAIL

0x00000001

0x00000002

0x00000004

0x00000008

0x00000010 #define DH_ALARM_TOUR

#define DH_ALARM_TIP

#define DH_ALARM_OUT

0x00000020

0x00000040

12

16

#define DH_MOTION_ROW

#define DH_MOTION_COL

typedef struct

{

 消息处理方式,可以同时多种处理方式,包括

感谢下载载

精品

* 0x00000001 - 网络:上传管理服务器

* 0x00000002 - 录像:触发

* 0x00000004 - 云台联动

* 0x00000008 - 发送邮件

* 0x00000010 - 设备本地报警轮巡

* 0x00000020 - 设备提示使能

* 0x00000040 - 设备报警输出使能

/*当前报警所支持的处理方式*/

DWORD dwActionMask;

/* 触发动作,具体动作所需要的参数在各自的配置中体现,如报警录像长度,设置为10秒,可以在

报警配置中设置*/

DWORD dwActionFlag;

/* 报警(录象)持续时间 */

DWORD dwDuration;

/* 报警触发的输出通道,报警触发的输出,为 1 表示触发该输出 */

BYTE byRelAlarmOut[DH_MAX_ALARMOUT_NUM];

/*联动录象*/

BYTE byRecordChannel[DH_MAX_VIDEO_IN_NUM];

// 报警触发的录象通道,为1表示触发该通道

DWORD dwPreRecLen; //预录时间,单位是秒

/* 云台联动动作:0.不联动, 1.转到预置点, 2.巡航, 3.轨迹, 4.线扫 */

感谢下载载

精品

BYTE byPtzType[DH_MAX_VIDEO_IN_NUM];

/* 调用的云台预置点序号/巡航组号/轨迹序号/线扫序号,各通道可不同设置 */

BYTE byPtzNo[DH_MAX_VIDEO_IN_NUM];

} DH_MSG_HANDLE;

/* 外部报警 */

typedef struct

{

BYTE

BYTE

BYTE

byAlarmType;

byAlarmEn;

//报警器类型,0:常开,1:常闭

//报警使能

byReserved[2];

DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];

DH_MSG_HANDLE struHandle; // 处理方式

} DH_ALARMIN_CFG,*LPDHDEV_ALARMIN_CFG;

/* 动态检测报警 */

typedef struct

{

BYTE

BYTE

byMotionEn;

byReserved;

wSenseLevel; //灵敏度

// 动态检测报警使能

WORD

BYTE byDetected[DH_MOTION_ROW][DH_MOTION_COL];

感谢下载载

精品

//检测区域,共12*16块区域

DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];

//处理方式 DH_MSG_HANDLE struHandle;

}DH_MOTION_DETECT_CFG;

/* 视频丢失报警 */

typedef struct

{

BYTE

BYTE

byAlarmEn;

byReserved[3];

stSect[DH_N_WEEKS][DH_N_REC_TSECT];

// 处理方式

//视频丢失报警使能

DH_TSECT

DH_MSG_HANDLE struHandle;

} DH_VIDEO_LOST_CFG;

/* 图像遮挡报警 */

typedef struct

{

BYTE

BYTE

BYTE

byBlindEnable;

byBlindLevel;

byReserved[2];

// 使能

// 灵敏度1-6

感谢下载载

精品

DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];

// 处理方式 DH_MSG_HANDLE struHandle;

} DH_BLIND_CFG;

/* 硬盘消息(内部报警) */

typedef struct

{

BYTE

BYTE

byDiskErrEn; // 硬盘故障报警

BYTE

BYTE

byNoDiskEn; // 无硬盘时报警

byReserved_1[3];

stNDSect[DH_N_WEEKS][DH_N_REC_TSECT];

struHandle;

// 处理方式

// 硬盘低容量时报警

DH_TSECT

DH_MSG_HANDLE

BYTE

BYTE

byLowCapEn;

byReserved_2[3];

stLCSect[DH_N_WEEKS][DH_N_REC_TSECT];

struLCHandle; //处理方式

DH_TSECT

DH_MSG_HANDLE

byReserved_3[3];

stEDSect[DH_N_WEEKS][DH_N_REC_TSECT];

struEDHandle; // 处理方式

DH_TSECT

DH_MSG_HANDLE

} DH_DISK_ALARM_CFG;

感谢下载载

精品

/* 报警布防 */

typedef struct

{

DWORD dwSize;

DH_ALARMIN_CFG struAlarmIn[DH_MAX_ALARM_IN_NUM];

DH_MOTION_DETECT_CFG struMotion[DH_MAX_VIDEO_IN_NUM];

DH_VIDEO_LOST_CFG

DH_BLIND_CFG

struVideoLost[DH_MAX_VIDEO_IN_NUM];

struBlind[DH_MAX_VIDEO_IN_NUM];

struDiskAlarm; DH_DISK_ALARM_CFG

//可能还有设备异常

} DHDEV_ALARM_SCHEDULE;

***********************************************************************************

网络配置

***********************************************************************************

/*以太网配置*/

typedef struct

感谢下载载

精品

{

char sDevIPAddr[DH_MAX_IPADDR_LEN];

char sDevIPMask[DH_MAX_IPADDR_LEN];

char sGatewayIP[DH_MAX_IPADDR_LEN];

/* 10M/100M 自适应,索引

* 1-10MBase - T

* 2-10MBase-T 全双工

* 3-100MBase - TX

* 4-100M 全双工

* 5-10M/100M 自适应 */

DWORD dwNetInterface;

char byMACAddr[DH_MACADDR_LEN];

} DH_ETHERNET;

/* 远程主机配置 */

typedef struct

{

BYTE byEnable;

BYTE byReserved;

WORD wHostPort;

char sHostIPAddr[DH_MAX_IPADDR_LEN];

感谢下载载

// DVR IP 地址

//DVR IP 地址掩码

// 网关地址

//NSP

// MAC地址,只读

// 连接使能

// 远程主机 端口

//远程主机 IP 地址

char

精品

sHostUser[DH_MAX_USER_NAMELEN];

char

//远程主机 用户名

sHostPassword[DH_MAX_USER_PSWLEN]; //远程主机 密码

}DH_REMOTE_HOST;

/* 邮件配置 */

typedef struct

{

char sMailIPAddr[DH_MAX_IPADDR_LEN];

//邮件服务器IP地址

//邮件服务器端口

// 保留

// 用户名

// 用户密码

//目的地址

WORD wMailPort;

WORD wReserved;

char

char

char

char

char

char

sUserName[DH_MAX_NAME_LEN];

sUserPsw[DH_MAX_NAME_LEN];

sDestAddr[DH_MAX_MAIL_ADDR_LEN];

sCcAddr[DH_MAX_MAIL_ADDR_LEN];

sBccAddr[DH_MAX_MAIL_ADDR_LEN];

//抄送地址

//暗抄地址

sSubject[DH_MAX_MAIL_SUBJECT_LEN]; //标题

}DH_MAIL_CFG;

/*网络配置结构体*/

typedef struct{

DWORD

char

dwSize;

// 设备主机名 sDevName[DH_MAX_NAME_LEN];

感谢下载载

精品

WORD wTcpMaxConnectNum; // TCP最大连接数(一般指视

频数据请求数)

WORD

WORD

WORD

WORD

WORD

wTcpPort;

// TCP帧听端口

// UDP侦听端口 wUdpPort;

wHttpPort;

wHttpsPort;

wSslPort;

// HTTP端口号

// HTTPS端口号

// SSL端口号

DH_ETHERNET stEtherNet[DH_MAX_ETHERNET_NUM];// 以太网口

// 报警服务器

// 日志服务器

//SMTP服务器

DH_REMOTE_HOST struAlarmHost;

DH_REMOTE_HOST struLogHost;

DH_REMOTE_HOST struSmtpHost;

DH_REMOTE_HOST struMultiCast;

DH_REMOTE_HOST struNfs;

// 多播组

//NFS服务器

//远程Ftp服务器

//PPPoE服务器

// PPPoE注册返回的IP

// DDNS服务器

DH_REMOTE_HOST struFtpServer;

DH_REMOTE_HOST struPppoe;

char

sPppoeIP[DH_MAX_IPADDR_LEN];

DH_REMOTE_HOST struDdns;

char sDdnsHostName[DH_MAX_HOST_NAMELEN]; // DDNS主机名

//DNS服务器

//邮件配置

DH_REMOTE_HOST struDns;

DH_MAIL_CFG struMail;

} DHDEV_NET_CFG;

感谢下载载

精品

***************************************************************************************

串口配置

***************************************************************************************

/* 串口基本属性 */

typedef struct

{

BYTE

BYTE

BYTE

BYTE

byDataBit;

byStopBit;

byParity;

//数据位 0-5,1-6,2-7,3-8

//停止位 0-1位, 1-1.5位, 2-2位

//校验位 0-no, 1-odd, 2-even

byBaudRate; //{0-300,1-600,2-1200,3-2400,4-4800

5-9600,6-19200,7-38400,8-57600,9-115200}

} DH_COMM_PROP;

/* 485解码器配置 */

typedef struct{

DH_COMM_PROP struComm;

感谢下载载

精品

WORD

WORD

wProtocol; //< 协议类型 保存协议的下标,动态变化

wDecoderAddress; //解码器地址:0 – 255

} DH_485_CFG;

/* 232串口配置 */

typedef struct{

DH_COMM_PROP

BYTE

struComm;

// 串口功能,对应串口配置取到的功能名列表 byFunction;

} DH_RS232_CFG;

/* 串口配置结构体 */

typedef struct{

DWORD

DWORD

char

dwSize;

//解码器协议

//协议个数 dwDecProListNum;

DecProName[DH_MAX_DECPRO_LIST_SIZE][DH_MAX_NAME_LEN];

//协议名列表

DH_485_CFG

DWORD

char

stDecoder[DH_MAX_DECODER_NUM];//各解码器当前属性

dw232FuncNameNum; //232功能个数

s232FuncName[DH_MAX_232FUNCS][DH_MAX_NAME_LEN];

//功能名列表

感谢下载载

精品

DH_RS232_CFG st232[DH_MAX_232_NUM]; //各232串口当前属性

} DHDEV_COMM_CFG;

5 示例功能实现

根据需要多机连接自定义一个连接设备信息表

DeviceList

,用来保存当前的连接设备

和状态, 对多窗口显示需要自定义一个显示窗口信息表

SplitList,

用来记录打开图像的信

息和状态,具体结构根据功能需要增加,这里只定义数据结构基本内容;

Typedef struct DeviceNode{

感谢下载载

精品

};

LONG LoginID; //登录设备ID

NET_DEVICEINFO Info; /设备信息

Typedef struct SplitNode{

Int Type; //显示类型, 可以是监视/回放/预览

LONG iHandle; //打开显示句柄,(监视通道句柄/回放句柄/预览句柄)

Void *Param; //根据不同的显示类型,定义不同的参数

};

在应用程序初始化时调用

CLIENT_Init(),

其中断线回调用来处理当设备端口时应用程

序需要做出的断开响应更新当前状态;

调用

CLIENT_SetDVRMessCallBack()

设置消息回调,其中回调函数用来处理设备状态

的实时返回,如报警信息;

调用

CLIENT_RigisterDrawFun()

设置画板回调,其中回调函数用来处理叠加图像信息

显示字符;如自定义显示osd时间或通道名称;

在应用程序退出时调用

CLIENT_Cleanup()

释放sdk内部的资源;

以下为具体功能实现

5.1 连接设备

调用

CLIENT_Login()

实现设备登录连接,其中需要输入设备IP等参数,返回登录ID和

输出参数设备信息,赋值得到

DeviceNode

,增加到设备表中;

感谢下载载

精品

5.2 报警信息获取

要实现某设备报警信息获取必须在系统初始化时设置消息回调

CLIENT_SetDVRMessCallBack()

,在设备连接后调用该设备

CLIENT_StartListen()

,在不需要

消息回调时或设备断开时调用

CLIENT_StopListen()

CLENT_StartListenEx

,在消息回调

函数中根据参数

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个字节,每个字节表示一个视频通道的

音频报警状态,1为有报警,0为无报警

如果调用的侦听接口为

CLENT_StartListenEx,

lCommand

的可能值是:

-DH_ALARM_ALARM_EX

:填充数据为16个字节,每个字节表示一个报警通道的报

警状态,1为有报警,0为无报警。

DH_MOTION_ALARM_EX:

填充数据为16个字节,每个字节表示一个视频通道的

动态检测报警状态,1为有报警,0为无报警。

DH_VIDEOLOST_ALARM_EX:

填充数据为16个字节,每个字节表示一个视频通道

感谢下载载

精品

的视频丢失报警状态,1为有报警,0为无报警。

DH_SHELTER_ALARM_EX:

填充数据为16个字节,每个字节表示一个视频通道的

遮挡(黑屏)报警状态,1为有报警,0为无报警。

DH_SOUND_DETECT_ALARM_EX:

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

通道的音频检测报警状态,1为有报警,0为无报警。

DH_DISKFULL_ALARM_EX:

填充数据为1个字节,1为有硬盘满报警,0为无报警。

DH_DISKERROR_ALARM_EX:

填充数据为32个字节,每个字节表示一个硬盘的故

障报警状态,1为有报警,0为无报警。

5.3 系统配置

目前暂时用控件,先注册配置控件好,在需要的页面插入该控件,实现时要先将设备配

置信息结构

In_DeviceInfo

配置控件有说明)传人控件,然后实现

OnAskNHData

OnSaveNHData

事件,一个获取配置信息显示,一个保存配置修改,具体根据事件中的命令

参数获取各种不同的配置,分别可以调用

CLIENT_QueryDeviceTime(),CLIENT_QuerySystemInfo(),CLIENT_QueryChannelName(),

CLIENT_QueryComProtocol(),CLIENT_QueryLog(),CLIENT_QueryConfig()

等接口,具体参

照接口说明和配置控件说明;保存接口也一样;

5.4 实时监视

在设备连接的前提下,选择某个通道显示到指定的窗口,调用

CLIENT_RealPlay()

传入

指定窗口的窗口句柄参数

hWnd

,返回监视句柄, 按照多窗口的设计需要应将相关的信息

感谢下载载

精品

赋值到

SplitNode

结构,并标注本窗口的显示类型和定义相应参数结构,以便显示操作处

理;

5.5 数据保存

可以根据监视句柄直接调用

CLIENT_SaveRealData()

将监视数据保存到指定文件;

也可以设置回调

CLIENT_SetRealDataCallBack()

,处理回调函数

fRealDataCallBack()

中不同的数据类型的数据,可以保存形成不同类型的数据文件;

5.6 回放/下载和进度指示

调用

CLIENT_QueryRecordFile()

先查询到录像文件信息,根据需要形成文件列表,再调

CLIENT_PlayBackByRecordFile()

输入录像文件信息播放相应的文件显示到指定的窗口,

按照多窗口的设计需要应将相关的信息赋值到

SplitNode

结构,并标注本窗口的显示类型

和定义相应参数结构,以便显示操作处理;

下载调用

CLIENT_DownloadByRecordFile()

,同样也返回下载句柄;

其中回放和下载的进度都可以通过其中的回调函数获取,根据不同的回放/下载句柄

分别得到当前的进度;

5.7 播放控制

根据不同的控制需要和输入不同回放句柄调用

CLIENT_PausePlayBack(),

CLIENT_SeekPlayBack(),CLIENT_StopPlayBack(),CLIENT_StopPlayBack()

等进行各种播放

控制;

感谢下载载

精品

5.8 预览

在设备连接的前提下,选择某个通道显示到指定的窗口

hWnd,

调用

CLIENT_MultiPlay ()

返回监视句柄, 按照多窗口的设计需要应将相关的信息赋值到

SplitNode

结构,并标注本窗口的显示类型和定义相应参数结构,以便显示操作处理;

5.9 字符叠加

在初始化时调用的

CLIENT_RigisterDrawFun()

的回调处理实现中通过

lPlayHandle

根据

SplitNode

中的

Type

的值,获取不同显示类型,根据需要可以

hDC

叠加不同的字

符;其中

hDC

是对当前画面整屏窗口有效,如叠加字符,可以处理为

hDC->textout(x,y,…)

;

其中x,y为坐标。

感谢下载载

精品

感谢下载!

欢迎您的下载,资料仅供参考

感谢下载载


本文标签: 设备 数据 返回 配置 说明