zoukankan      html  css  js  c++  java
  • 基于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;
    }

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

  • 相关阅读:
    tcpdump命令详解
    Python isdecimal()方法
    Python-Tkinter几何布局管理
    Python choice() 函数
    Python中的join()函数的用法
    PLSQL连接虚拟机中的Oracle数据库
    卸载oracle
    teradata学习
    teradata在虚拟机安装客户端sql Assistant
    oracle面试
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4868394.html
Copyright © 2011-2022 走看看