2016-08-05 30 views
1

gsoapを使用して、onvifプロファイルの標準を使用してカメラデバイスサーバーを実装しようとしています。 on ws dynamic discovery、私は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

あなたが見ることができるように、あなたは(& TDS TDN)を使用名前空間は(GEN/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

関連する問題