• 基于Gsoap 的ONVIF C++ 库


    https://github.com/xsmart/onvifcpplib

    该库支持ProfileS 和ProfileG。目前正在开发的这,现拥有支持Event

    以下是一client抽样

    int _tmain(int argc, _TCHAR* argv[])
    {
    	int ret;
    	/* 192.168.1.1 is the NVT, 192.168.1.234 is the NVC */
    	string url = "http://192.168.1.1/onvif/device_service";
    	/* Below is where to receive the event */
    	string eventNotify = "http://192.168.1.234:9090/subscription-2";
    	string user = "admin";
    	string pass =  "admin";
    	OnvifClientDevice onvifDevice(url, user, pass);
    	_tds__GetCapabilitiesResponse capabilitiesResponse;
    
    	onvifDevice.GetCapabilities();
    
    	OnvifClientMedia media(onvifDevice);
    	_trt__GetProfilesResponse profiles;
    	media.GetProfiles(profiles);
    
    	OnvifClientEvent onvifEvent(onvifDevice);
    
    	onvifEvent.Subscribe(eventNotify);
    	
    	OnvifClientEventNotify notify(soap_new());
    	
        if ((ret = soap_bind(&notify, NULL, 9090, 100) == SOAP_INVALID_SOCKET ) ) 
    	{
            printf("OnvifClientEventNotify::soap_bind Binding on %d port failed", 9090);
            return 0;
        }
    
    	//Loop to recevie the event
    	while(1)
    	{
            if( (ret = soap_accept(&notify)) == SOAP_INVALID_SOCKET) {
                printf("soap_accept accepting failed");
                return 0;
            }
    
            if ( (soap_begin_serve(&notify)) != SOAP_OK) {
                printf("soap_begin_serve serve %d failed", ret);
                continue;
            }
    
            ret = notify.dispatch();
            continue;
    	}
    	return 0;
    }

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    [HAOI2016]食物链
    [TJOI2011]序列
    P2548 [AHOI2004]智能探险车
    [JSOI2008]最大数
    模板之dinic
    Excim的NOIP2017游记
    数列排序
    Car的旅行路线
    [HAOI2006]均分数据
    [luogu2210] Haywire
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4868394.html
Copyright © 2020-2023  润新知