Jef*_*nes 2 c++ camera wsdl onvif
我的公司正在尝试找出如何将我们当前的相机系列转变为符合 ONVIF 标准的相机。
我找到的是规范文档和一堆 WSDL 文件。但到目前为止我所看到的一切似乎都在建立事物的“客户端”。
我正在尝试创建一个中间件服务,以便我们现有的摄像机可以支持 ONVIF。
WSDL 文件是否同时用于客户端和设备?
公司如何对符合 ONVIF 标准的摄像机进行编程?我们的是 PTZ,PTZ WSDL 是我要找的吗?
服务设备端如何启动。尽管该规范涵盖了所有内容,但对于该标准的新开发人员来说,它的编写效果并不好。
请帮助我弄清楚如何将 C++ 中的嵌入式 Linux 相机转换为符合 ONVIF 的相机。开发人员是否使用 WSDL 来实现此目的?
谢谢你!
实施 ONVIF 的最常见方法之一是通过gSoap库,它有关于客户端和服务器用例的非常广泛的指南。您应该浏览服务器端文档以了解它的工作原理。从非常普遍的角度来看 - 它有一个wsdl2h工具,可以获取一组 WSDL 文件并为您生成存根代码(主要是解析和 I/O 代码,负责创建请求数据的结构表示),然后使用另一个名为soapcpp2的gSoap工具可以生成C/C++客户端/服务器对象(我只使用过客户端,所以我想上面提到的指南是理解如何使用生成的对象构建服务器的最佳方法)。然后,您可以托管服务并通过此 C/C++ 对象抽象与来自相机的请求进行交互,这应该非常容易。所有请求 xml 都被反序列化为对象实例,您只需查看所需的字段,创建所需响应对象的实例并将其发送回来。至少到目前为止我一直在使用 gSoap 来处理客户对 ONVIF 摄像机的请求,并且我非常满意。这是 gSoap 维护者提供的关于如何部署简单服务的小教程。
话虽这么说,我见过一些相机不使用 gSoap 或任何其他高级框架,只是使用任何常见的 xml 解析器解析请求内容,并具有使用所需值进行格式化并发回的响应字符串模板 - 如果您相机不是很复杂,这可能可行,但这取决于您的需求。如有任何后续问题,请随时提出,至少对我来说,ONVIF 在我刚开始时就像一张蜘蛛网。