[英]ONVIF Media.WSDL - GetServiceCapabilities fails
我需要帮助来定义“功能”class,以便它通过设备工具测试测试。
STEP 5 - Get Media Service capabilities
StepStart: 2022-01-19T07:35:14.1804753Z
Transmit done
Receive done
The element 'Capabilities' in namespace 'http://www.onvif.org/ver10/media/wsdl' has invalid child element 'ProfileCapabilities' in namespace 'http://www.onvif.org/ver10/schema'. List of possible elements expected: 'ProfileCapabilities' in namespace 'http://www.onvif.org/ver10/media/wsdl'.
STEP FAILED
响应:
<soap12env:Body>
<tns:GetServiceCapabilitiesResponse>
<tns:Capabilities
SnapshotUri="true"
Rotation="false"
VideoSourceMode="false"
OSD="false">
<s0:ProfileCapabilities
MaximumNumberOfProfiles="10"/>
<s0:StreamingCapabilities
RTPMulticast="false"
RTP_TCP="true"
RTP_RTSP_TCP="true"
NonAggregateControl="false"
NoRTSPStreaming="false"/>
</tns:Capabilities>
</tns:GetServiceCapabilitiesResponse>
</soap12env:Body>
我的代码:
课程:
class ProfileCapabilitiesT(SchemaComplexModel):
__type_name__ = "ProfileCapabilities"
MaximumNumberOfProfiles = XmlAttribute(Int)
class StreamingCapabilitiesT(SchemaComplexModel):
__type_name__ = "StreamingCapabilities"
RTPMulticast = XmlAttribute(Boolean)
RTP_TCP = XmlAttribute(Boolean)
RTP_RTSP_TCP = XmlAttribute(Boolean)
NonAggregateControl = XmlAttribute(Boolean)
NoRTSPStreaming = XmlAttribute(Boolean)
class CapabilitiesT(SchemaComplexModel):
__type_name__ = "Capabilities"
ProfileCapabilities = ProfileCapabilitiesT
StreamingCapabilities = StreamingCapabilitiesT
SnapshotUri = XmlAttribute(Boolean)
Rotation = XmlAttribute(Boolean)
VideoSourceMode = XmlAttribute(Boolean)
OSD = XmlAttribute(Boolean)
class GetServiceCapabilitiesResponseT(MediaComplexModel):
Capabilities = CapabilitiesT
Function:
@rpc(_returns=GetServiceCapabilitiesResponseT, _body_style="out_bare")
def GetServiceCapabilities(ctx):
logging.info("GetServiceCapabilities")
ret = GetServiceCapabilitiesResponseT()
caps = CapabilitiesT()
p = ProfileCapabilitiesT()
n = config.MAX_PROFILES
p.MaximumNumberOfProfiles = n
caps.ProfileCapabilities = p
s = StreamingCapabilitiesT()
s.RTPMulticast = False
s.RTP_TCP = True
s.RTP_RTSP_TCP = True
s.NonAggregateControl = False
s.NoRTSPStreaming = False
caps.StreamingCapabilities = s
caps.SnapshotUri = True
caps.Rotation = False
caps.VideoSourceMode = False
caps.OSD = False
ret.Capabilities = caps
return ret
定义有什么问题?
测试工具告诉你为什么它不起作用。
您在命名空间http://www.onvif.org/ver10/schema
中有ProfileCapabilities
,但正确的实现必须在命名空间http://www.onvif.org/ver10/media/wsdl
中有ProfileCapabilities
。
因此,您需要修复命名空间。
总的来说,ONVIF 测试工具非常有用,因为它很好地描述了哪个步骤没有通过以及原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.