• 基于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;
    }

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

  • 相关阅读:
    flask_admin+flask_login 整合,jieba分词+echarts数据分析可视化
    古诗词网爬虫实现
    Flask admin Flask login 整合模板
    API网关Kong
    Flask添加新命令
    MyBatis连接MySQL8配置
    golang锁
    golang goroutine
    golang管道
    golang结构体
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4711979.html
Copyright © 2020-2023  润新知