侠隐仙踪 2013-09-16 02:53
浏览 1500

onvif 相机 在线判断 发送的Probe信息有误?

我想向一个相机发送Hello消息,通过相机有无回应来判断该相机是否在线。
一下是我的代码,
wsddProxy oProxy("http://192.168.6.54/onvif/device_service");
oProxy.recv_timeout = 2;
oProxy.header = soap_new_SOAP_ENV__Header(&oProxy);
soap_default_SOAP_ENV__Header(&oProxy, oProxy.header);
oProxy.header->wsa__RelatesTo=0;
oProxy.header->wsa__From = 0;

oProxy.header->wsa__ReplyTo = 0;
oProxy.header->wsa__FaultTo = 0;
oProxy.header->wsdd__AppSequence = 0;
oProxy.header->wsa__MessageID = (char*)soap_malloc(&oProxy, 256 );
oProxy.header->wsa__To = (char*)soap_malloc(&oProxy, 256 );
oProxy.header->wsa__Action = (char*)soap_malloc(&oProxy, 256 );

strcpy_s(oProxy.header->wsa__Action,  250 , "http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe");
strcpy_s(oProxy.header->wsa__To, 250 , "urn:schemas-xmlsoap-org:ws:2005:04:discovery");
strcpy_s(oProxy.header->wsa__MessageID, 250 ,  "uuid:" + GlobalFunction::CreateGUID());

wsdd__ProbeType oSendParam;
soap_default_wsdd__ProbeType(&oProxy, &oSendParam);
//oSendParam.Types = "tdn:NetworkVideoTransmitter";
oSendParam.Types = "tdn:Device";
__wsdd__ProbeMatches oReceiveParam;
soap_default___wsdd__ProbeMatches(&oProxy, &oReceiveParam);
oProxy.Probe(&oSendParam);

int n = oProxy.recv_ProbeMatches(oReceiveParam);
if (SOAP_OK == n) // 接收到Device反馈
{
}

n的返回值总是-1,是我的soap_endpoint错误,还是什么问题。对Onvif了解的很少,文档看的不是很懂,求帮助!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题