2

我的公司正试图弄清楚如何将我们当前的相机系列变成符合 ONVIF 标准的相机。

我找到的是规范文档和一堆 WSDL 文件。但到目前为止,我所看到的一切似乎都建立了事物的“客户端”。

我正在尝试创建一个中间件服务,以便我们现有的相机可以支持 ONVIF。

WSDL 文件是否同时用于客户端和设备?

公司如何对符合 ONVIF 的摄像机进行编程?我们的是 PTZ,PTZ WSDL 是我要找的吗?

如何启动服务设备端。尽管该规范涵盖了所有内容,但它并不适合该标准的新开发人员。

请帮我弄清楚如何将我在 C++ 中的嵌入式 linux 摄像头变成兼容 ONVIF 的摄像头。开发人员是否使用 WSDL 来实现这一点?

谢谢!

4

1 回答 1

4

实现 ONVIF 的最常见方法之一是通过gSoap库,它有关于客户端和服务器用例的非常广泛的指南。您应该阅读服务器端文档以了解其工作原理。从非常笼统的角度来看 - 它有一个wsdl2h工具,它获取一组 WSDL 文件并为您生成存根代码(主要是解析和 I/O 代码,负责创建请求数据的结构表示),然后使用另一个名为soapcpp2的gSoap工具您可以生成 C/C++ 客户端/服务器对象(我只使用客户端,所以我想上面提到的指南是了解如何使用生成的对象构建服务器的最佳方式)。然后你可以通过这个 C/C++ 对象抽象来托管一个服务并与来自摄像头的请求进行交互,这应该很容易。所有的请求 xml 都被反序列化为对象实例,您只需查看所需的字段,创建所需响应对象的实例并将其发送回来。至少到目前为止,我一直在使用 gSoap 来处理客户端对 ONVIF 摄像机的请求,我非常满意。是 gSoap 维护人员提供的关于如何部署简单服务的小教程。

话虽如此,我见过不使用 gSoap 或任何其他高级框架的相机,只使用任何常见的 xml 解析器解析请求内容,并具有使用所需值格式化并发回的响应字符串模板 - 如果你相机不是很复杂,这可能会起作用,但这取决于您的需求。随时问任何后续问题,至少对我来说,ONVIF 在我开始时是一个蜘蛛网。

于 2015-04-29T08:59:56.843 回答