【问题标题】:OnvifClientPTZ onvif c++ unable to get configuration optionsOnvifClientPTZ onvif c++ 无法获取配置选项
【发布时间】:2016-05-22 19:35:58
【问题描述】:
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 设置为 192.168.1.88:2000/device/services 这是 PtzProxy 对象的 soap_endpoint (ptzProxy.soap_endpoint = strUrl.c_str();) 它似乎是美好的。此外,soap_action 是“www.onvif.org/ver20/ptz/wsdl/GetConfigurationOptions”,这似乎也很好。 我正在使用https://github.com/xsmart/onvifcpplib

在 PTZ 代理返回这里:

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

任何帮助将不胜感激。

【问题讨论】:

    标签: c++ soap gsoap onvif


    【解决方案1】:

    我找到了解决方案。问题出在这一行:

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

    OnvifPTZClient#GetConfigurationOptions 请求 PTZConfiguration 令牌,而不是配置文件令牌。所以正确的行是:

    response = PTZ.GetConfigurationOptions(tptz__GetConfigurationOptionsResponse, tr->PTZConfiguration->token);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-12
      • 2022-09-26
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 2017-04-02
      • 2019-04-28
      • 2019-01-04
      相关资源
      最近更新 更多