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为坐标。
感谢下载载
精品
感谢下载!
欢迎您的下载,资料仅供参考
感谢下载载
版权声明:本文标题:大华网络SDK开发手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1711530036h601126.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论