2016-08-05 5 views
1

gsoap을 사용하여 onvif profile s 표준을 사용하여 카메라 장치 서버를 구현하려고합니다. on ws 동적 검색 https://github.com/mpromonet/ws-discovery/blob/master/gsoap/server.cpp 코드를 실행하려고 할 때 Onvif 장치 관리자가 내 probematches 메시지에 대한 응답을 제공하지 않습니다. 나는 probematches 메시지를 보내 프로브 메시지를 받고 있지만 Onvif 장치 관리자는 단순히 그들을 게을리 함을 볼 수 있습니다. 내 장치에 대한 이러한 매개 변수 변경했다 해요 : 나는 많은 매개 변수를 시도Onvif 장치 관리자가 Onvif 장치를 찾을 수 없습니다.

const int _metadataVersion = 1; 
static const char* _xaddr= "http://10.0.0.50:1881"; 
const char* _type="tdn:NetworkVideoTransmitter " "tds:Device " ; 
const char* _scope= 
     "onvif://www.onvif.org/name/ru " 
     "onvif://www.onvif.org/hardware/hw " 
     "onvif://www.onvif.org/Profile/Streaming " 
     "onvif://www.onvif.org/location/ANY " 
     "onvif://www.onvif.org/type/video_encoder onvif://www.onvif.org/type/audio_encoder onvif://www.onvif.org/type/ptz "; 

const char* _endpoint="urn"; 

을하지만 해결책을 찾을 수 없습니다. Onvif 장치 관리자가 검색하려면 어떤 종류의 변경이 필요합니까? 당신이 볼 수 있듯이

답변

1

는 네임 스페이스가 사용 (TDN & TDS) (세대는/wsdd.nsmap에서) 생성 된 네임 스페이스에 선언되지 않은 :

을 위해
#include "soapH.h" 
SOAP_NMAC struct Namespace namespaces[] = 
{ 
     {"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope", NULL}, 
     {"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL}, 
     {"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL}, 
     {"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL}, 
     {"wsa", "http://schemas.xmlsoap.org/ws/2004/08/addressing", NULL, NULL}, 
     {"wsdd", "http://schemas.xmlsoap.org/ws/2005/04/discovery", NULL, NULL}, 
     {NULL, NULL, NULL, NULL} 
}; 

는 자격이있는 wsdd:ProbeType을 지정 당신이 사용해야 이름 :

"http://www.onvif.org/ver10/network/wsdl"NetworkVideoTransmitter

을이 교류 할 수 있습니다

ws-discovery.exe -t \"http://www.onvif.org/ver10/network/wsdl\":NetworkVideoTransmitter \ 
       -x http://10.0.0.50:1881 

또는 코드 수정 : 다음 -t 인수를 지정 hieved의 예에서

const char* _type="\"http://www.onvif.org/ver10/network/wsdl\":NetworkVideoTransmitter" ; 
+0

IP 주소이며, 당신이 찾고있는 카메라의 주소? – Murphybro2

+0

@ Murphybro2 : WS-Discovery 프로브를 검색 할 수있는 카메라의 http 주소입니다. 그런 다음 클라이언트는이 http 주소를 사용하여 카메라를 쿼리하고 일부 onvif 요청을 보낼 수 있습니다. – mpromonet

관련 문제