Wie zu entdecken, onvif-Geräte in C#
Ich entwickle eine Anwendung, mit der Sonde ONVIF-Geräte angeschlossen auf Netzwerk für die automatische Erkennung. Nach ONVIF Core specification SOAP-format der Sonde Nachricht ist :
<?xml version="1.0" encoding="UTF-8"?>
<e:Envelope xmlns:e="http://www.w3.org/2003/05/soap-envelope"
xmlns:w="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery"
xmlns:dn="http://www.onvif.org/ver10/network/wsdl">
<e:Header>
<w:MessageID>uuid:84ede3de-7dec-11d0-c360-f01234567890</w:MessageID>
<w:To e:mustUnderstand="true">urn:schemas-xmlsoap-org:ws:2005:04:discovery</w:To>
<w:Action
a:mustUnderstand="true">http://schemas.xmlsoap.org/ws/2005/04/discovery/Pr
obe</w:Action>
</e:Header>
<e:Body>
<d:Probe>
<d:Types>dn:NetworkVideoTransmitter</d:Types>
</d:Probe>
</e:Body>
</e:Envelope>
Wie kann ich senden Sie diese Nachricht in WCF zu entdecken, onvif-Gerät sind Vergangenheit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie einfach die WCF-web service discovery Funktionen. ONVIF folgt dem gleichen standard wie das umgesetzt wird von der WCF. Sie müssen verwenden Sie die DiscoveryClient Klasse zu schicken die Sonde.
Es ist schon eine Weile her, seit ich es getan habe so ist es vielleicht nicht genau richtig, aber Ihr code sollte wie folgt Aussehen. Die multicast-Sonde finden Sie alle sichtbar-Geräte. Sie können feststellen, ob Ihr onvif-Gerät hat reagiert, indem Sie die Metadaten für jede Antwort im event-handler. Wenn Sie noch nicht in der Lage eine Antwort zu bekommen, die wahrscheinlich ein Netzwerk oder Gerät ein Problem. Wenn Sie tun, eine Antwort zu bekommen, verfeinern Sie Ihre Suchkriterien, um nur eine Benachrichtigung über notwendige Arten.