【发布时间】:2018-03-06 11:36:42
【问题描述】:
我无法从使用 ONVIF 作为通信协议的摄像机获取数字输入。我知道,相机有 2 个数字输入,无需登录即可匿名访问。
我正在使用来自此 WSDL 的操作 GetDigitalInputs:https://www.onvif.org/ver10/deviceio.wsdl。其他一些操作有效。例如我可以成功使用GetRelayOutputs。
这是我向相机发送到 deviceIO 服务 URL (http://ipaddress/onvif/deviceio_service) 的请求。设备 IO 服务 URL 是从 GetCapabilities 操作的结果中获取的:
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
<s:Body>
<GetDigitalInputs xmlns="http://www.onvif.org/ver10/deviceIO/wsdl" />
</s:Body>
</s:Envelope>
这是回复
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:ter="http://www.onvif.org/ver10/error">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<SOAP-ENV:Code>
<SOAP-ENV:Value>SOAP-ENV:Sender</SOAP-ENV:Value>
<SOAP-ENV:Subcode>
<SOAP-ENV:Value>ter:Namespace</SOAP-ENV:Value>
</SOAP-ENV:Subcode>
</SOAP-ENV:Code>
<SOAP-ENV:Reason>
<SOAP-ENV:Text xml:lang="en">Namespace Error</SOAP-ENV:Text>
</SOAP-ENV:Reason>
<SOAP-ENV:Node>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Node>
<SOAP-ENV:Role>http://www.w3.org/2003/05/soap-envelope/node/ultimateReceiver</SOAP-ENV:Role>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我尝试将GetDigitalInputs 的命名空间更改为http://www.onvif.org/ver10/deviceio/wsdl 和http://www.onvif.org/ver10/device/wsdl。两者都不起作用。
我尝试过使用Onvif Device Test Tool,与我遇到的问题相同。
我在操作 GetSerialPorts 时遇到了同样的问题。两者都在多个不同的博世相机上。
【问题讨论】: