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