C# Class Opc.Ua.Client.Session

Manages a session with a server.
Inheritance: SessionClient, IDisposable
Afficher le fichier Open project: OPCFoundation/UA-.NET Class Usage Examples

Méthodes publiques

Méthode Description
AddSubscription ( Subscription subscription ) : bool

Adds a subscription to the session.

BeginBrowse ( RequestHeader requestHeader, ViewDescription view, NodeId nodeToBrowse, uint maxResultsToReturn, BrowseDirection browseDirection, NodeId referenceTypeId, bool includeSubtypes, uint nodeClassMask, AsyncCallback callback, object asyncState ) : IAsyncResult

Begins an asynchronous invocation of the Browse service.

BeginBrowseNext ( RequestHeader requestHeader, bool releaseContinuationPoint, byte continuationPoint, AsyncCallback callback, object asyncState ) : IAsyncResult

Begins an asynchronous invocation of the BrowseNext service.

BeginPublish ( int timeout ) : IAsyncResult

Sends an additional publish request.

Browse ( RequestHeader requestHeader, ViewDescription view, NodeId nodeToBrowse, uint maxResultsToReturn, BrowseDirection browseDirection, NodeId referenceTypeId, bool includeSubtypes, uint nodeClassMask, byte &continuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader

Invokes the Browse service.

BrowseNext ( RequestHeader requestHeader, bool releaseContinuationPoint, byte continuationPoint, byte &revisedContinuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader

Invokes the BrowseNext service.

Call ( NodeId objectId, NodeId methodId ) : IList

Calls the specified method and returns the output arguments.

ChangePreferredLocales ( StringCollection preferredLocales ) : void

Updates the preferred locales used for the session.

Close ( ) : StatusCode

Disconnects from the server and frees any network resources.

Close ( int timeout ) : StatusCode

Disconnects from the server and frees any network resources with the specified timeout.

Create ( ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, bool updateBeforeConnect, bool checkDomain, string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales ) : Session

Creates a new communication session with a server by invoking the CreateSession service

Create ( ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, bool updateBeforeConnect, string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales ) : Session

Creates a new communication session with a server by invoking the CreateSession service

EndBrowse ( IAsyncResult result, byte &continuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader

Finishes an asynchronous invocation of the Browse service.

EndBrowseNext ( IAsyncResult result, byte &revisedContinuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader

Finishes an asynchronous invocation of the BrowseNext service.

FetchNamespaceTables ( ) : void

Updates the local copy of the server's namespace uri and server uri tables.

FetchReferences ( NodeId nodeId ) : ReferenceDescriptionCollection

Fetches all references for the specified node.

FetchTypeTree ( ExpandedNodeId typeId ) : void

Updates the cache with the type and its subtypes.

This method can be used to ensure the TypeTree is populated.

FindComponentIds ( NodeId instanceId, IList componentPaths, NodeIdCollection &componentIds, List &errors ) : void

Finds the NodeIds for the components for an instance.

FindDataDescription ( NodeId encodingId ) : ReferenceDescription

Returns the data description for the encoding.

FindDataDictionary ( NodeId descriptionId ) : DataDictionary

Returns the data dictionary that constains the description.

Load ( string filePath ) : IEnumerable

Load the list of subscriptions saved in a file.

Open ( string sessionName, IUserIdentity identity ) : void

Establishes a session with the server.

Open ( string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales ) : void

Establishes a session with the server.

ReadAvailableEncodings ( NodeId variableId ) : ReferenceDescriptionCollection

Returns the available encodings for a node

ReadDisplayName ( IList nodeIds, List &displayNames, List &errors ) : void

Reads the display name for a set of Nodes.

ReadValue ( NodeId nodeId ) : DataValue

Reads the value for a node.

ReadValue ( NodeId nodeId, Type expectedType ) : object

Reads the value for a node an checks that it is the specified type.

ReadValues ( IList variableIds, IList expectedTypes, List &values, List &errors ) : void

Reads the values for a set of variables.

Reconnect ( ) : void

Reconnects to the server after a network failure.

Recreate ( Session template ) : Session

Recreates a session based on a specified template.

RemoveSubscription ( Subscription subscription ) : bool

Removes a subscription from the session.

RemoveSubscriptions ( IEnumerable subscriptions ) : bool

Removes a list of subscriptions from the sessiont.

Republish ( uint subscriptionId, uint sequenceNumber ) : bool

Sends a republish request.

Save ( string filePath ) : void

Saves all the subscriptions of the session.

Save ( string filePath, IEnumerable subscriptions ) : void

Saves a set of subscriptions.

Session ( ISessionChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint ) : System

Constructs a new instance of the session.

Session ( ITransportChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, X509Certificate2 clientCertificate ) : System

Constructs a new instance of the session.

The application configuration is used to look up the certificate if none is provided. The clientCertificate must have the private key. This will require that the certificate be loaded from a certicate store. Converting a DER encoded blob to a X509Certificate2 will not include a private key.

Session ( ITransportChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, X509Certificate2 clientCertificate, EndpointDescriptionCollection availableEndpoints ) : System
Session ( ITransportChannel channel, Session template, bool copyEventHandlers ) : System

Initializes a new instance of the Session class.

UpdateSession ( IUserIdentity identity, StringCollection preferredLocales ) : void

Updates the user identity and/or locales used for the session.

Méthodes protégées

Méthode Description
Dispose ( bool disposing ) : void

Closes the session and the underlying channel.

GetSoftwareCertificates ( ) : SignedSoftwareCertificateCollection

Returns the software certificates assigned to the application.

OnApplicationCertificateError ( byte serverCertificate, ServiceResult result ) : void

Handles an error when validating the application instance certificate provided by the server.

OnKeepAlive ( ServerState currentState, System.DateTime currentTime ) : void

Called when the server returns a keep alive response.

OnKeepAliveError ( ServiceResult result ) : bool

Called when a error occurs during a keep alive.

OnSoftwareCertificateError ( SignedSoftwareCertificate signedCertificate, ServiceResult result ) : void

Handles an error when validating software certificates provided by the server.

ValidateSoftwareCertificates ( List softwareCertificates ) : void

Inspects the software certificates provided by the server.

Private Methods

Méthode Description
AsyncRequestCompleted ( IAsyncResult result, uint requestId, uint typeId ) : void

Removes a completed async request.

AsyncRequestStarted ( IAsyncResult result, uint requestId, uint typeId ) : void

Adds a new async request.

CheckCertificateDomain ( ConfiguredEndpoint endpoint ) : void
Initialize ( ) : void

Sets the object members to default values.

Initialize ( ITransportChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, X509Certificate2 clientCertificate ) : void

Initializes the channel.

OnKeepAlive ( object state ) : void

Sends a keep alive by reading from the server.

OnKeepAliveComplete ( IAsyncResult result ) : void

Checks if a notification has arrived. Sends a publish if it has not.

OnPublishComplete ( IAsyncResult result ) : void

Completes an asynchronous publish operation.

OnRaisePublishNotification ( object state ) : void

Raises an event indicating that publish has returned a notification.

Open ( string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales, bool checkDomain ) : void
ProcessPublishResponse ( ResponseHeader responseHeader, uint subscriptionId, UInt32Collection availableSequenceNumbers, bool moreNotifications, NotificationMessage notificationMessage ) : void

Processes the response from a publish request.

ReadNode ( NodeId nodeId ) : Node
RemoveRequest ( IAsyncResult result, uint requestId, uint typeId ) : AsyncRequestState

Removes a completed async request.

StartKeepAliveTimer ( ) : void

Starts a timer to check that the connection to the server is still available.

Method Details

AddSubscription() public méthode

Adds a subscription to the session.
public AddSubscription ( Subscription subscription ) : bool
subscription Subscription The subscription to add.
Résultat bool

BeginBrowse() public méthode

Begins an asynchronous invocation of the Browse service.
public BeginBrowse ( RequestHeader requestHeader, ViewDescription view, NodeId nodeToBrowse, uint maxResultsToReturn, BrowseDirection browseDirection, NodeId referenceTypeId, bool includeSubtypes, uint nodeClassMask, AsyncCallback callback, object asyncState ) : IAsyncResult
requestHeader RequestHeader The request header.
view ViewDescription The view to browse.
nodeToBrowse NodeId The node to browse.
maxResultsToReturn uint The maximum number of returned values..
browseDirection BrowseDirection The browse direction.
referenceTypeId NodeId The reference type id.
includeSubtypes bool If set to true the subtypes of the ReferenceType will be included in the browse.
nodeClassMask uint The node class mask.
callback AsyncCallback The callback.
asyncState object
Résultat IAsyncResult

BeginBrowseNext() public méthode

Begins an asynchronous invocation of the BrowseNext service.
public BeginBrowseNext ( RequestHeader requestHeader, bool releaseContinuationPoint, byte continuationPoint, AsyncCallback callback, object asyncState ) : IAsyncResult
requestHeader RequestHeader
releaseContinuationPoint bool
continuationPoint byte
callback AsyncCallback
asyncState object
Résultat IAsyncResult

BeginPublish() public méthode

Sends an additional publish request.
public BeginPublish ( int timeout ) : IAsyncResult
timeout int
Résultat IAsyncResult

Browse() public méthode

Invokes the Browse service.
public Browse ( RequestHeader requestHeader, ViewDescription view, NodeId nodeToBrowse, uint maxResultsToReturn, BrowseDirection browseDirection, NodeId referenceTypeId, bool includeSubtypes, uint nodeClassMask, byte &continuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader
requestHeader RequestHeader The request header.
view ViewDescription The view to browse.
nodeToBrowse NodeId The node to browse.
maxResultsToReturn uint The maximum number of returned values.
browseDirection BrowseDirection The browse direction.
referenceTypeId NodeId The reference type id.
includeSubtypes bool If set to true the subtypes of the ReferenceType will be included in the browse.
nodeClassMask uint The node class mask.
continuationPoint byte The continuation point.
references ReferenceDescriptionCollection The list of node references.
Résultat ResponseHeader

BrowseNext() public méthode

Invokes the BrowseNext service.
public BrowseNext ( RequestHeader requestHeader, bool releaseContinuationPoint, byte continuationPoint, byte &revisedContinuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader
requestHeader RequestHeader
releaseContinuationPoint bool
continuationPoint byte
revisedContinuationPoint byte
references ReferenceDescriptionCollection
Résultat ResponseHeader

Call() public méthode

Calls the specified method and returns the output arguments.
public Call ( NodeId objectId, NodeId methodId ) : IList
objectId NodeId The NodeId of the object that provides the method.
methodId NodeId The NodeId of the method to call.
Résultat IList

ChangePreferredLocales() public méthode

Updates the preferred locales used for the session.
public ChangePreferredLocales ( StringCollection preferredLocales ) : void
preferredLocales StringCollection The preferred locales.
Résultat void

Close() public méthode

Disconnects from the server and frees any network resources.
public Close ( ) : StatusCode
Résultat StatusCode

Close() public méthode

Disconnects from the server and frees any network resources with the specified timeout.
public Close ( int timeout ) : StatusCode
timeout int
Résultat StatusCode

Create() public static méthode

Creates a new communication session with a server by invoking the CreateSession service
public static Create ( ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, bool updateBeforeConnect, bool checkDomain, string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales ) : Session
configuration ApplicationConfiguration The configuration for the client application.
endpoint ConfiguredEndpoint The endpoint for the server.
updateBeforeConnect bool If set to true the discovery endpoint is used to update the endpoint description before connecting.
checkDomain bool If set to true then the domain in the certificate must match the endpoint used.
sessionName string The name to assign to the session.
sessionTimeout uint The timeout period for the session.
identity IUserIdentity The user identity to associate with the session.
preferredLocales IList The preferred locales.
Résultat Session

Create() public static méthode

Creates a new communication session with a server by invoking the CreateSession service
public static Create ( ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, bool updateBeforeConnect, string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales ) : Session
configuration ApplicationConfiguration The configuration for the client application.
endpoint ConfiguredEndpoint The endpoint for the server.
updateBeforeConnect bool If set to true the discovery endpoint is used to update the endpoint description before connecting.
sessionName string The name to assign to the session.
sessionTimeout uint The timeout period for the session.
identity IUserIdentity The identity.
preferredLocales IList The user identity to associate with the session.
Résultat Session

Dispose() protected méthode

Closes the session and the underlying channel.
protected Dispose ( bool disposing ) : void
disposing bool
Résultat void

EndBrowse() public méthode

Finishes an asynchronous invocation of the Browse service.
public EndBrowse ( IAsyncResult result, byte &continuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader
result IAsyncResult The result.
continuationPoint byte The continuation point.
references ReferenceDescriptionCollection The list of node references.
Résultat ResponseHeader

EndBrowseNext() public méthode

Finishes an asynchronous invocation of the BrowseNext service.
public EndBrowseNext ( IAsyncResult result, byte &revisedContinuationPoint, ReferenceDescriptionCollection &references ) : ResponseHeader
result IAsyncResult
revisedContinuationPoint byte
references ReferenceDescriptionCollection
Résultat ResponseHeader

FetchNamespaceTables() public méthode

Updates the local copy of the server's namespace uri and server uri tables.
public FetchNamespaceTables ( ) : void
Résultat void

FetchReferences() public méthode

Fetches all references for the specified node.
public FetchReferences ( NodeId nodeId ) : ReferenceDescriptionCollection
nodeId NodeId The node id.
Résultat ReferenceDescriptionCollection

FetchTypeTree() public méthode

Updates the cache with the type and its subtypes.
This method can be used to ensure the TypeTree is populated.
public FetchTypeTree ( ExpandedNodeId typeId ) : void
typeId ExpandedNodeId
Résultat void

FindComponentIds() public méthode

Finds the NodeIds for the components for an instance.
public FindComponentIds ( NodeId instanceId, IList componentPaths, NodeIdCollection &componentIds, List &errors ) : void
instanceId NodeId
componentPaths IList
componentIds NodeIdCollection
errors List
Résultat void

FindDataDescription() public méthode

Returns the data description for the encoding.
public FindDataDescription ( NodeId encodingId ) : ReferenceDescription
encodingId NodeId The encoding Id.
Résultat ReferenceDescription

FindDataDictionary() public méthode

Returns the data dictionary that constains the description.
public FindDataDictionary ( NodeId descriptionId ) : DataDictionary
descriptionId NodeId The description id.
Résultat DataDictionary

GetSoftwareCertificates() protected méthode

Returns the software certificates assigned to the application.
protected GetSoftwareCertificates ( ) : SignedSoftwareCertificateCollection
Résultat SignedSoftwareCertificateCollection

Load() public méthode

Load the list of subscriptions saved in a file.
public Load ( string filePath ) : IEnumerable
filePath string The file path.
Résultat IEnumerable

OnApplicationCertificateError() protected méthode

Handles an error when validating the application instance certificate provided by the server.
protected OnApplicationCertificateError ( byte serverCertificate, ServiceResult result ) : void
serverCertificate byte
result ServiceResult
Résultat void

OnKeepAlive() protected méthode

Called when the server returns a keep alive response.
protected OnKeepAlive ( ServerState currentState, System.DateTime currentTime ) : void
currentState ServerState
currentTime System.DateTime
Résultat void

OnKeepAliveError() protected méthode

Called when a error occurs during a keep alive.
protected OnKeepAliveError ( ServiceResult result ) : bool
result ServiceResult
Résultat bool

OnSoftwareCertificateError() protected méthode

Handles an error when validating software certificates provided by the server.
protected OnSoftwareCertificateError ( SignedSoftwareCertificate signedCertificate, ServiceResult result ) : void
signedCertificate SignedSoftwareCertificate
result ServiceResult
Résultat void

Open() public méthode

Establishes a session with the server.
public Open ( string sessionName, IUserIdentity identity ) : void
sessionName string The name to assign to the session.
identity IUserIdentity The user identity.
Résultat void

Open() public méthode

Establishes a session with the server.
public Open ( string sessionName, uint sessionTimeout, IUserIdentity identity, IList preferredLocales ) : void
sessionName string The name to assign to the session.
sessionTimeout uint The session timeout.
identity IUserIdentity The user identity.
preferredLocales IList The list of preferred locales.
Résultat void

ReadAvailableEncodings() public méthode

Returns the available encodings for a node
public ReadAvailableEncodings ( NodeId variableId ) : ReferenceDescriptionCollection
variableId NodeId The variable node.
Résultat ReferenceDescriptionCollection

ReadDisplayName() public méthode

Reads the display name for a set of Nodes.
public ReadDisplayName ( IList nodeIds, List &displayNames, List &errors ) : void
nodeIds IList
displayNames List
errors List
Résultat void

ReadValue() public méthode

Reads the value for a node.
public ReadValue ( NodeId nodeId ) : DataValue
nodeId NodeId The node Id.
Résultat DataValue

ReadValue() public méthode

Reads the value for a node an checks that it is the specified type.
public ReadValue ( NodeId nodeId, Type expectedType ) : object
nodeId NodeId The node id.
expectedType System.Type The expected type.
Résultat object

ReadValues() public méthode

Reads the values for a set of variables.
public ReadValues ( IList variableIds, IList expectedTypes, List &values, List &errors ) : void
variableIds IList The variable ids.
expectedTypes IList The expected types.
values List The list of returned values.
errors List The list of returned errors.
Résultat void

Reconnect() public méthode

Reconnects to the server after a network failure.
public Reconnect ( ) : void
Résultat void

Recreate() public static méthode

Recreates a session based on a specified template.
public static Recreate ( Session template ) : Session
template Session The Session object to use as template
Résultat Session

RemoveSubscription() public méthode

Removes a subscription from the session.
public RemoveSubscription ( Subscription subscription ) : bool
subscription Subscription The subscription to remove.
Résultat bool

RemoveSubscriptions() public méthode

Removes a list of subscriptions from the sessiont.
public RemoveSubscriptions ( IEnumerable subscriptions ) : bool
subscriptions IEnumerable The list of subscriptions to remove.
Résultat bool

Republish() public méthode

Sends a republish request.
public Republish ( uint subscriptionId, uint sequenceNumber ) : bool
subscriptionId uint
sequenceNumber uint
Résultat bool

Save() public méthode

Saves all the subscriptions of the session.
public Save ( string filePath ) : void
filePath string The file path.
Résultat void

Save() public méthode

Saves a set of subscriptions.
public Save ( string filePath, IEnumerable subscriptions ) : void
filePath string
subscriptions IEnumerable
Résultat void

Session() public méthode

Constructs a new instance of the session.
public Session ( ISessionChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint ) : System
channel ISessionChannel The channel used to communicate with the server.
configuration ApplicationConfiguration The configuration for the client application.
endpoint ConfiguredEndpoint The endpoint use to initialize the channel.
Résultat System

Session() public méthode

Constructs a new instance of the session.
The application configuration is used to look up the certificate if none is provided. The clientCertificate must have the private key. This will require that the certificate be loaded from a certicate store. Converting a DER encoded blob to a X509Certificate2 will not include a private key.
public Session ( ITransportChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, X509Certificate2 clientCertificate ) : System
channel ITransportChannel The channel used to communicate with the server.
configuration ApplicationConfiguration The configuration for the client application.
endpoint ConfiguredEndpoint The endpoint use to initialize the channel.
clientCertificate System.Security.Cryptography.X509Certificates.X509Certificate2 The certificate to use for the client.
Résultat System

Session() public méthode

public Session ( ITransportChannel channel, ApplicationConfiguration configuration, ConfiguredEndpoint endpoint, X509Certificate2 clientCertificate, EndpointDescriptionCollection availableEndpoints ) : System
channel ITransportChannel
configuration ApplicationConfiguration
endpoint ConfiguredEndpoint
clientCertificate System.Security.Cryptography.X509Certificates.X509Certificate2
availableEndpoints EndpointDescriptionCollection
Résultat System

Session() public méthode

Initializes a new instance of the Session class.
public Session ( ITransportChannel channel, Session template, bool copyEventHandlers ) : System
channel ITransportChannel The channel.
template Session The template session.
copyEventHandlers bool if set to true the event handlers are copied.
Résultat System

UpdateSession() public méthode

Updates the user identity and/or locales used for the session.
public UpdateSession ( IUserIdentity identity, StringCollection preferredLocales ) : void
identity IUserIdentity The user identity.
preferredLocales StringCollection The preferred locales.
Résultat void

ValidateSoftwareCertificates() protected méthode

Inspects the software certificates provided by the server.
protected ValidateSoftwareCertificates ( List softwareCertificates ) : void
softwareCertificates List
Résultat void