Skip to content

Latest commit

 

History

History
336 lines (304 loc) · 17.8 KB

README.md

File metadata and controls

336 lines (304 loc) · 17.8 KB

Opc.Ua.WebApi - the C# library for the OPC UA Web API

Provides simple HTTPS based access to an OPC UA server.

This C# SDK is automatically generated by the OpenAPI Generator project:

  • API version: 1.05.4
  • SDK version: 1.504.0
  • Build package: org.openapitools.codegen.languages.CSharpClientCodegen

Frameworks supported

Dependencies

The DLLs included in the package may not be the latest version. We recommend using NuGet to obtain the latest version of the packages:

Install-Package RestSharp
Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
Install-Package System.ComponentModel.Annotations

NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See RestSharp#742. NOTE: RestSharp for .Net Core creates a new socket for each api call, which can lead to a socket exhaustion problem. See RestSharp#1406.

Installation

Run the following command to generate the DLL

  • [Mac/Linux] /bin/sh build.sh
  • [Windows] build.bat

Then include the DLL (under the bin folder) in the C# project, and use the namespaces:

using Opc.Ua.WebApi.Api;
using Opc.Ua.WebApi.Client;
using Opc.Ua.WebApi.Model;

Packaging

A .nuspec is included with the project. You can follow the Nuget quickstart to create and publish packages.

This .nuspec uses placeholders from the .csproj, so build the .csproj directly:

nuget pack -Build -OutputDirectory out Opc.Ua.WebApi.csproj

Then, publish to a local feed or other host and consume the new package via Nuget as usual.

Usage

To use the API client with a HTTP proxy, setup a System.Net.WebProxy

Configuration c = new Configuration();
System.Net.WebProxy webProxy = new System.Net.WebProxy("http://myProxyUrl:80/");
webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
c.Proxy = webProxy;

Getting Started

using System.Collections.Generic;
using System.Diagnostics;
using Opc.Ua.WebApi.Api;
using Opc.Ua.WebApi.Client;
using Opc.Ua.WebApi.Model;

namespace Example
{
    public class Example
    {
        public static void Main()
        {

            Configuration config = new Configuration();
            config.BasePath = "http://localhost:4840";
            var apiInstance = new DefaultApi(config);
            var activateSessionRequest = new ActivateSessionRequest?(); // ActivateSessionRequest? | ActivateSessionRequestMessage (optional) 

            try
            {
                ActivateSessionResponse result = apiInstance.ActivateSession(activateSessionRequest);
                Debug.WriteLine(result);
            }
            catch (ApiException e)
            {
                Debug.Print("Exception when calling DefaultApi.ActivateSession: " + e.Message );
                Debug.Print("Status Code: "+ e.ErrorCode);
                Debug.Print(e.StackTrace);
            }

        }
    }
}

Documentation for API Endpoints

All URIs are relative to http://localhost:4840

Class Method HTTP request Description
DefaultApi ActivateSession POST /activatesession
DefaultApi Browse POST /browse
DefaultApi BrowseNext POST /browsenext
DefaultApi Call POST /call
DefaultApi Cancel POST /cancel
DefaultApi CloseSession POST /closesession
DefaultApi CreateMonitoredItems POST /createmonitoreditems
DefaultApi CreateSession POST /createsession
DefaultApi CreateSubscription POST /createsubscription
DefaultApi DeleteMonitoredItems POST /deletemonitoreditems
DefaultApi DeleteSubscriptions POST /deletesubscriptions
DefaultApi FindServers POST /findservers
DefaultApi GetEndpoints POST /getendpoints
DefaultApi HistoryRead POST /historyread
DefaultApi HistoryUpdate POST /historyupdate
DefaultApi ModifyMonitoredItems POST /modifymonitoreditems
DefaultApi ModifySubscription POST /modifysubscription
DefaultApi Publish POST /publish
DefaultApi Read POST /read
DefaultApi RegisterNodes POST /registernodes
DefaultApi Republish POST /republish
DefaultApi SetMonitoringMode POST /setmonitoringmode
DefaultApi SetPublishingMode POST /setpublishingmode
DefaultApi SetTriggering POST /settriggering
DefaultApi TransferSubscriptions POST /transfersubscriptions
DefaultApi TranslateBrowsePathsToNodeIds POST /translate
DefaultApi UnregisterNodes POST /unregisternodes
DefaultApi Write POST /write

Documentation for Models

Documentation for Authorization

Endpoints do not require authorization.