侠隐仙踪 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 Python时间序列如何拟合疏系数模型
    • ¥15 求学软件的前人们指明方向🥺
    • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
    • ¥20 双层网络上信息-疾病传播
    • ¥50 paddlepaddle pinn
    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services