Comment découvrir onvif appareils en C#
Je suis de développer une application qui permettra de sonde ONVIF les périphériques connectés sur le réseau pour l'auto-découverte. Selon le protocole ONVIF de Base de la spécification SOAP format de la Sonde message est :
<?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>
Comment puis-je envoyer ce message dans WCF pour découvrir onvif deivce?
OriginalL'auteur user1828855 | 2012-11-16
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser la Service web WCF découverte fonctionnalités. ONVIF suit le même standard que celui mis en œuvre par la WCF. Vous aurez besoin d'utiliser la DiscoveryClient classe pour envoyer la sonde.
Il a été un moment depuis que je l'ai fait il pourrait ne pas être exactement droit, mais votre code devrait ressembler à quelque chose comme ce qui suit. La multidiffusion de la sonde trouverez tous les appareils détectables. Vous pouvez détecter si votre onvif appareil a répondu par l'inspection de l'métadonnées pour chaque réponse dans le gestionnaire d'événements. Si vous ne parvenez toujours pas à obtenir une réponse, c'est probablement un réseau ou d'un problème de périphérique. Si vous obtenez une réponse, vous pouvez affiner vos critères de recherche pour avertir uniquement des types.
Ajouter le type de contrat de noms de trouver des critères. FindCriteria.ContractTypeNames. Selon la version de onvif NetworkVideoTransmitter peut être définie comme un champ d'un Type. Essayez de faire un async trouver sans critères. À l'aide d'un retour d'appel ce qui vous permettra d'inspecter les réponses de tous les appareils détectables votre onvif appareil doit être inclus. À partir de cette information, vous devriez être en mesure d'effectuer de manière plus ciblée trouver.
Hurah....! J'ai obtenu des réponses de mon ONVIF Appareil. Thnx beaucoup pour ces Conseils Simon.
Pas de problème. Vous aimeriez peut-marque de ma réponse? 🙂
REMARQUE: Selon le WS-Discovery spécification, votre ONVIF appareils doivent répondre même si il n'y a pas de "ContractTypeNames". Le but des critères est de réduire le nombre de réponses, de ne pas permettre d'obtenir des réponses. De nombreux appareils, cependant, sont trop restrictives dans leur interprétation de la spécification. Certaines applications vont envoyer des Sondes avec des critères différents, dans l'espoir de trouver tous les appareils qu'ils se soucient réellement, en ignorant les réponses à partir de périphériques, ils ne soucient vraiment.
OriginalL'auteur Simon Wood