2016-05-22 22 views
1
tt__Profile *t = profiles.Profiles.at(0); 

OnvifClientPTZ PTZ(onvifDevice); 

_tptz__GetConfigurationOptions tptz__GetConfigurationOptions; 
_tptz__GetConfigurationOptionsResponse tptz__GetConfigurationOptionsResponse; 
tt__PTZConfigurationOptions *options; 

int response = PTZ.GetConfigurationOptions(tptz__GetConfigurationOptionsResponse, t->token); 

問題は、PTZ#GetConfigurationOptionsが値1(#response)を返します。 オブジェクト#onvifDeviceが正常であるようです(onvifDevice.hasPTZがtrueを返します)。 デバッグを試してみましたが、onvifDevice.GetPTZUrl(strUrl)がtrueを返し、strUrlをPtzProxyオブジェクト(ptzProxy.soap_endpoint = strUrl.c_str();)のsoap_endpointである192.168.1.88:2000/device/servicesに設定しました。大丈夫です。また、soap_actionは "www.onvif.org/ver20/ptz/wsdl/GetConfigurationOptions"であり、これもうまくいくようです。 私はhttps://github.com/xsmart/onvifcpplibを使用しています。 PTZプロキシでOnvifClientPTZ onvif C++設定オプションを取得できません

はここに返されます。

tptz__GetConfigurationOptionsResponse->soap_get(soap, "tptz:GetConfigurationOptionsResponse", ""); 
if (soap->error) 
    return soap_recv_fault(soap, 0); 

任意の助けをいただければ幸いです。

答えて

0

解決策を見つけました。はいこのラインにあった:

int response = PTZ.GetConfigurationOptions(tptz__GetConfigurationOptionsResponse, t->token); 

OnvifPTZClient#GetConfigurationOptionsはPTZConfigurationトークンではなく、プロファイルトークンを要求します。正しい行は次のようになります:

response = PTZ.GetConfigurationOptions(tptz__GetConfigurationOptionsResponse, tr->PTZConfiguration->token); 
関連する問題