1、Onvif摄像机的客户端以下摄像机均指标准 onvif摄像机一、程序设计框架LinuxNVR SetupLinuxNVR现有协议Camera-1Camera-2Camera-nOnvif协议二、 Web Service Web Service = SOAP + HTTP + WSDL SOAP 指简单对象访问协议 WSDL( Web Services Description Language) web 服务描述语言也是一个XML文档,它通过 HTTP向公众发布,公告客户端程序关于某个具体的 Web service服务的 URL信息、方法的命名,参数,返回值等三、 SOAP协议简介 SOAP 指
2、简单对象访问协议,它是一种基于 XML的消息通讯格式,用于网络上,不同平台,不同语言的应用程序间的通讯。 一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素: 1、 Envelope 元素,标识 XML 文档一条 SOAP 消息 2、 Header 元素,包含头部信息的 XML标签3、 Body 元素,包含所有的调用和响应的主体信息的标签4、 Fault 元素,错误信息标签。 3.1、 SOAP Fault 元素 Fault 元素表示 SOAP的错误消息。它必须是 Body 元素的子元素,且在一条 SOAP 消息中, Fault 元素只能出现一次。 Fault 元素拥有下列子元素:
3、子元素 描述供识别故障的代码可供人阅读的有关故障的说明有关是谁引发故障的信息存留涉及 Body元素的应用程序专用错误信息 常用的 SOAP Fault Codes 错误 描述VersionMismatch SOAP Envelope元素发现无效命名空间MustUnderstand Header元素的一个直接子元素(带有设置 “1”的mustUnderstand属性)无法被理解消息被不正确的构成,或包含了不正确的信息服务器有问题,因此无法处理进行下去3.2、 搜索摄像机 搜索摄像机 遵循 ws-discovery协议, ws-discovery提供了两种操作模式: ad hoc和 managed
4、模式。 ad hoc模式:客户端会以多播的形式发送一个 Probe(探测)消息,如果服务匹配该信息,则以单播方式直接将响应 ProbeMatch消息发送到客户端。 managed模式:代理模式,由代理发送 Probe消息和接收 ProbeMatch消息。remotediscovery.wsdl.htmProbe 参考 Probe.xmlProbe.xml uuid的获取 #include #include int main() unsigned char uu17 = 0; uuid_generate(uu); unsigned char uuid37 = 0; sprintf(char*)u
5、uid, “%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x“, uu0, uu1, uu2, uu3, uu4, uu5, uu6, uu7, uu8, uu9, uu10, uu11, uu12, uu13, uu14, uu15); printf(“%sn“, uuid); return 0; /g+ uuid.cpp -luuidProbeMatch 参考 ProbeMatch.xmlProbeMatch.xml 需要解析出 XAddrs:http:/192.168.0.102/onvif/device_service IP: 192.168.0.102 端口默认 80