EasyCVR 目前对大华 SDK 的接入开发已经差不多完成了,现在可以通过 EasyCVR 控制大华设备的云台了。本文和大家分享一下开发流程。首先需要有一台带云台控制的大华设备,查看大华 SDK 文档,流程图如下:
流程步骤:
- 调用 CLIENT_Init 完成 SDK 初始化流程。
- 初始化成功后,调用 CLIENT_LoginWithHighLevelSecurity 登录设备。
- 根据需求调用 CLIENT_DHPTZControlEx2 接口操作云台。不同的云台命令可能需要不 同的参数,部分操作命令需要调用相应的停止命令。
- 业务使用完后,调用 CLIENT_Logout 登出设备。
- SDK 功能使用完后,调用 CLIENT_Cleanup 释放 SDK 资源。
下面就需要集成到 EasyCVR 项目中。集成到 EasyCVR 项目中需要将大华 SDK 封装一层,方便 GO 语言调用。封装需要暴露几个接口给 GO 调用:初始化大华设备、释放 SDK 资源、登录大华设备、退出登录、是否支持云台控制和控制云台设备。
封装完成会生成.dll文件:
只要在go层添加.h文件和.dll文件即可
将以上几个接口的方法使用 cgo 调用(cgo 控制云台调用,其他接口调用差不多):
这样前端视频页面中使用大华 SDK 接入设备就可以操控大华摄像机的云台控制。
前端接口会传入一个 channelId 过来。从数据库找所匹配的此id,来获取 cgo 传入大华的句柄。前端传 speed 在转换移动速度。调用 SDKSetPTZ 方法来移动大华摄像机云台(以下是 go 移动大华云台的代码)。