Documentation ¶
Index ¶
- Constants
- Variables
- func Any(nodes []ua.NodeID, f func(n ua.NodeID) bool) bool
- func Contains(nodes []ua.NodeID, node ua.NodeID) bool
- func IsUserPermitted(userRolePermissions []ua.RolePermissionType, permissionType ua.PermissionType) bool
- type AuthenticateIssuedIdentityFunc
- type AuthenticateUserNameIdentityFunc
- type AuthenticateX509IdentityFunc
- type ChannelManager
- type DataChangeMonitoredItem
- func (mi *DataChangeMonitoredItem) AddTriggeredItem(item MonitoredItem) bool
- func (mi *DataChangeMonitoredItem) ClientHandle() uint32
- func (mi *DataChangeMonitoredItem) Delete()
- func (mi *DataChangeMonitoredItem) ID() uint32
- func (mi *DataChangeMonitoredItem) ItemToMonitor() ua.ReadValueID
- func (mi *DataChangeMonitoredItem) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult
- func (mi *DataChangeMonitoredItem) MonitoringMode() ua.MonitoringMode
- func (mi *DataChangeMonitoredItem) Node() Node
- func (mi *DataChangeMonitoredItem) Poll()
- func (mi *DataChangeMonitoredItem) QueueSize() uint32
- func (mi *DataChangeMonitoredItem) RemoveTriggeredItem(item MonitoredItem) bool
- func (mi *DataChangeMonitoredItem) SamplingInterval() float64
- func (mi *DataChangeMonitoredItem) SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode)
- func (mi *DataChangeMonitoredItem) SetTriggered(val bool)
- func (mi *DataChangeMonitoredItem) Triggered() bool
- type DataTypeNode
- func (n *DataTypeNode) BrowseName() ua.QualifiedName
- func (n *DataTypeNode) DataTypeDefinition() interface{}
- func (n *DataTypeNode) Description() ua.LocalizedText
- func (n *DataTypeNode) DisplayName() ua.LocalizedText
- func (n *DataTypeNode) IsAbstract() bool
- func (n *DataTypeNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *DataTypeNode) NodeClass() ua.NodeClass
- func (n *DataTypeNode) NodeID() ua.NodeID
- func (n *DataTypeNode) References() []ua.Reference
- func (n *DataTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *DataTypeNode) SetReferences(value []ua.Reference)
- func (n *DataTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type EventListener
- type EventMonitoredItem
- func (mi *EventMonitoredItem) AddTriggeredItem(item MonitoredItem) bool
- func (mi *EventMonitoredItem) ClientHandle() uint32
- func (mi *EventMonitoredItem) Delete()
- func (mi *EventMonitoredItem) ID() uint32
- func (mi *EventMonitoredItem) ItemToMonitor() ua.ReadValueID
- func (mi *EventMonitoredItem) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult
- func (mi *EventMonitoredItem) MonitoringMode() ua.MonitoringMode
- func (mi *EventMonitoredItem) Node() Node
- func (mi *EventMonitoredItem) OnEvent(evt ua.Event)
- func (mi *EventMonitoredItem) QueueSize() uint32
- func (mi *EventMonitoredItem) RemoveTriggeredItem(item MonitoredItem) bool
- func (mi *EventMonitoredItem) SamplingInterval() float64
- func (mi *EventMonitoredItem) SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode)
- func (mi *EventMonitoredItem) SetTriggered(val bool)
- func (mi *EventMonitoredItem) Triggered() bool
- type HistoryReadWriter
- type HistoryReader
- type HistoryWriter
- type IdentityMappingRule
- type IssuedIdentityAuthenticator
- type MethodNode
- func (n *MethodNode) BrowseName() ua.QualifiedName
- func (n *MethodNode) Description() ua.LocalizedText
- func (n *MethodNode) DisplayName() ua.LocalizedText
- func (n *MethodNode) Executable() bool
- func (n *MethodNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *MethodNode) NodeClass() ua.NodeClass
- func (n *MethodNode) NodeID() ua.NodeID
- func (n *MethodNode) References() []ua.Reference
- func (n *MethodNode) RolePermissions() []ua.RolePermissionType
- func (n *MethodNode) SetCallMethodHandler(value func(context.Context, ua.CallMethodRequest) ua.CallMethodResult)
- func (n *MethodNode) SetReferences(value []ua.Reference)
- func (n *MethodNode) UserExecutable(ctx context.Context) bool
- func (n *MethodNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type MonitoredItem
- type NamespaceManager
- func (m *NamespaceManager) Add(nsu string) uint16
- func (m *NamespaceManager) AddNode(node Node) error
- func (m *NamespaceManager) AddNodes(nodes ...Node) error
- func (m *NamespaceManager) DeleteNode(node Node, deleteChildren bool) error
- func (m *NamespaceManager) DeleteNodes(nodes []Node, deleteChildren bool) error
- func (m *NamespaceManager) FindComponent(startNode Node, browseName ua.QualifiedName) (node Node, ok bool)
- func (m *NamespaceManager) FindMethod(id ua.NodeID) (node *MethodNode, ok bool)
- func (m *NamespaceManager) FindNode(id ua.NodeID) (node Node, ok bool)
- func (m *NamespaceManager) FindObject(id ua.NodeID) (node *ObjectNode, ok bool)
- func (m *NamespaceManager) FindProperty(startNode Node, browseName ua.QualifiedName) (node *VariableNode, ok bool)
- func (m *NamespaceManager) FindSuperType(typeid ua.NodeID) ua.NodeID
- func (m *NamespaceManager) FindVariable(id ua.NodeID) (node *VariableNode, ok bool)
- func (m *NamespaceManager) FindVariantType(dataType ua.NodeID) byte
- func (m *NamespaceManager) GetChildren(node Node, uris []string, withRefTypes []ua.NodeID) []Node
- func (m *NamespaceManager) GetSubTypes(node Node) []Node
- func (m *NamespaceManager) IsSubtype(subtype, supertype ua.NodeID) bool
- func (m *NamespaceManager) Len() int
- func (m *NamespaceManager) LoadNodeSetFromBuffer(buf []byte) error
- func (m *NamespaceManager) LoadNodeSetFromFile(path string) error
- func (m *NamespaceManager) NamespaceUris() []string
- func (m *NamespaceManager) OnEvent(target *ObjectNode, evt ua.Event) error
- func (m *NamespaceManager) SetAnalogTypeBehavior(node *VariableNode) error
- func (m *NamespaceManager) SetMultiStateValueDiscreteTypeBehavior(node *VariableNode) error
- type Node
- type ObjectNode
- func (n *ObjectNode) AddEventListener(listener EventListener)
- func (n *ObjectNode) BrowseName() ua.QualifiedName
- func (n *ObjectNode) Description() ua.LocalizedText
- func (n *ObjectNode) DisplayName() ua.LocalizedText
- func (n *ObjectNode) EventNotifier() byte
- func (n *ObjectNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *ObjectNode) NodeClass() ua.NodeClass
- func (n *ObjectNode) NodeID() ua.NodeID
- func (n *ObjectNode) OnEvent(evt ua.Event)
- func (n *ObjectNode) References() []ua.Reference
- func (n *ObjectNode) RemoveEventListener(listener EventListener)
- func (n *ObjectNode) RolePermissions() []ua.RolePermissionType
- func (n *ObjectNode) SetReferences(value []ua.Reference)
- func (n *ObjectNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type ObjectTypeNode
- func (n *ObjectTypeNode) BrowseName() ua.QualifiedName
- func (n *ObjectTypeNode) Description() ua.LocalizedText
- func (n *ObjectTypeNode) DisplayName() ua.LocalizedText
- func (n *ObjectTypeNode) IsAbstract() bool
- func (n *ObjectTypeNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *ObjectTypeNode) NodeClass() ua.NodeClass
- func (n *ObjectTypeNode) NodeID() ua.NodeID
- func (n *ObjectTypeNode) References() []ua.Reference
- func (n *ObjectTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *ObjectTypeNode) SetReferences(value []ua.Reference)
- func (n *ObjectTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type Option
- func WithAnonymousIdentity(value bool) Option
- func WithAuthenticateUserNameIdentityFunc(f AuthenticateUserNameIdentityFunc) Option
- func WithAuthenticateX509IdentityFunc(f AuthenticateX509IdentityFunc) Option
- func WithBuildInfo(value ua.BuildInfo) Option
- func WithHistorian(historian HistoryReadWriter) Option
- func WithInsecureSkipVerify() Option
- func WithMaxSessionCount(value uint32) Option
- func WithMaxSubscriptionCount(value uint32) Option
- func WithMaxWorkerThreads(value int) Option
- func WithRolePermissions(permissions []ua.RolePermissionType) Option
- func WithRolesProvider(provider RolesProvider) Option
- func WithSecurityPolicyNone(value bool) Option
- func WithServerCapabilities(value *ua.ServerCapabilities) Option
- func WithServerDiagnostics(value bool) Option
- func WithSessionTimeout(value float64) Option
- func WithTrace() Option
- func WithTransportLimits(receiveBufferSize, sendBufferSize, maxMessageSize, maxChunkCount uint32) Option
- func WithUserNameIdentityAuthenticator(authenticator UserNameIdentityAuthenticator) Option
- func WithX509IdentityAuthenticator(authenticator X509IdentityAuthenticator) Option
- type PollGroup
- type PollListener
- type ReferenceTypeNode
- func (n *ReferenceTypeNode) BrowseName() ua.QualifiedName
- func (n *ReferenceTypeNode) Description() ua.LocalizedText
- func (n *ReferenceTypeNode) DisplayName() ua.LocalizedText
- func (n *ReferenceTypeNode) InverseName() ua.LocalizedText
- func (n *ReferenceTypeNode) IsAbstract() bool
- func (n *ReferenceTypeNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *ReferenceTypeNode) NodeClass() ua.NodeClass
- func (n *ReferenceTypeNode) NodeID() ua.NodeID
- func (n *ReferenceTypeNode) References() []ua.Reference
- func (n *ReferenceTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *ReferenceTypeNode) SetReferences(value []ua.Reference)
- func (n *ReferenceTypeNode) Symmetric() bool
- func (n *ReferenceTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type RolesProvider
- type RulesBasedRolesProvider
- type Scheduler
- type Server
- func (srv *Server) Abort() error
- func (srv *Server) ChannelManager() *ChannelManager
- func (srv *Server) Close() error
- func (srv *Server) Closing() <-chan struct{}
- func (srv *Server) EndpointURL() string
- func (srv *Server) Endpoints() []ua.EndpointDescription
- func (srv *Server) Historian() HistoryReadWriter
- func (srv *Server) ListenAndServe() error
- func (srv *Server) LocalCertificate() []byte
- func (srv *Server) LocalDescription() ua.ApplicationDescription
- func (srv *Server) MaxSessionCount() uint32
- func (srv *Server) MaxSubscriptionCount() uint32
- func (srv *Server) NamespaceManager() *NamespaceManager
- func (srv *Server) NamespaceUris() []string
- func (srv *Server) RolePermissions() []ua.RolePermissionType
- func (srv *Server) Scheduler() *Scheduler
- func (srv *Server) ServerCapabilities() *ua.ServerCapabilities
- func (srv *Server) ServerUris() []string
- func (srv *Server) SessionManager() *SessionManager
- func (srv *Server) State() ua.ServerState
- func (srv *Server) SubscriptionManager() *SubscriptionManager
- func (srv *Server) WorkerPool() *workerpool.WorkerPool
- type Session
- func (s *Session) AuthenticationToken() ua.NodeID
- func (s *Session) IsExpired() bool
- func (s *Session) LastAccess() time.Time
- func (s *Session) SecureChannelId() uint32
- func (s *Session) Server() *Server
- func (s *Session) SessionId() ua.NodeID
- func (s *Session) SessionName() string
- func (s *Session) SessionNonce() ua.ByteString
- func (s *Session) SetLastAccess(value time.Time)
- func (s *Session) SetSecureChannelId(value uint32)
- func (s *Session) SetSessionNonce(value ua.ByteString)
- func (s *Session) SetUserIdentity(value interface{})
- func (s *Session) SetUserRoles(value []ua.NodeID)
- func (s *Session) Timeout() time.Duration
- func (s *Session) UserIdentity() interface{}
- func (s *Session) UserRoles() []ua.NodeID
- type SessionManager
- type Subscription
- func (s *Subscription) AppendItem(item MonitoredItem) bool
- func (s *Subscription) Delete()
- func (s *Subscription) DeleteItem(ctx context.Context, id uint32) bool
- func (s *Subscription) FindItem(id uint32) (MonitoredItem, bool)
- func (s *Subscription) IsExpired() bool
- func (s *Subscription) Items() []MonitoredItem
- func (s *Subscription) Modify(publishingInterval float64, lifetimeCount uint32, maxKeepAliveCount uint32, ...)
- func (s *Subscription) SetPublishingMode(publishingEnabled bool)
- type SubscriptionManager
- type UserNameIdentityAuthenticator
- type VariableNode
- func (n *VariableNode) AccessLevel() byte
- func (n *VariableNode) ArrayDimensions() []uint32
- func (n *VariableNode) BrowseName() ua.QualifiedName
- func (n *VariableNode) DataType() ua.NodeID
- func (n *VariableNode) Description() ua.LocalizedText
- func (n *VariableNode) DisplayName() ua.LocalizedText
- func (n *VariableNode) Historizing() bool
- func (n *VariableNode) IsAttributeIDValid(attributeID uint32) bool
- func (n *VariableNode) MinimumSamplingInterval() float64
- func (n *VariableNode) NodeClass() ua.NodeClass
- func (n *VariableNode) NodeID() ua.NodeID
- func (n *VariableNode) References() []ua.Reference
- func (n *VariableNode) RolePermissions() []ua.RolePermissionType
- func (n *VariableNode) SetHistorizing(historizing bool)
- func (n *VariableNode) SetReadValueHandler(value func(context.Context, ua.ReadValueID) ua.DataValue)
- func (n *VariableNode) SetReferences(value []ua.Reference)
- func (n *VariableNode) SetValue(value ua.DataValue)
- func (n *VariableNode) SetWriteValueHandler(value func(context.Context, ua.WriteValue) (ua.DataValue, ua.StatusCode))
- func (n *VariableNode) UserAccessLevel(ctx context.Context) byte
- func (n *VariableNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- func (n *VariableNode) Value() ua.DataValue
- func (n *VariableNode) ValueRank() int32
- type VariableTypeNode
- func (n *VariableTypeNode) ArrayDimensions() []uint32
- func (n *VariableTypeNode) BrowseName() ua.QualifiedName
- func (n *VariableTypeNode) DataType() ua.NodeID
- func (n *VariableTypeNode) Description() ua.LocalizedText
- func (n *VariableTypeNode) DisplayName() ua.LocalizedText
- func (n *VariableTypeNode) IsAbstract() bool
- func (n *VariableTypeNode) IsAttributeIDValid(attributeId uint32) bool
- func (n *VariableTypeNode) NodeClass() ua.NodeClass
- func (n *VariableTypeNode) NodeID() ua.NodeID
- func (n *VariableTypeNode) References() []ua.Reference
- func (n *VariableTypeNode) RolePermissions() []ua.RolePermissionType
- func (n *VariableTypeNode) SetReferences(value []ua.Reference)
- func (n *VariableTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- func (n *VariableTypeNode) Value() ua.DataValue
- func (n *VariableTypeNode) ValueRank() int32
- type ViewNode
- func (n *ViewNode) BrowseName() ua.QualifiedName
- func (n *ViewNode) ContainsNoLoops() bool
- func (n *ViewNode) Description() ua.LocalizedText
- func (n *ViewNode) DisplayName() ua.LocalizedText
- func (n *ViewNode) EventNotifier() byte
- func (n *ViewNode) IsAttributeIDValid(attributeId uint32) bool
- func (n *ViewNode) NodeClass() ua.NodeClass
- func (n *ViewNode) NodeID() ua.NodeID
- func (n *ViewNode) References() []ua.Reference
- func (n *ViewNode) RolePermissions() []ua.RolePermissionType
- func (n *ViewNode) SetReferences(value []ua.Reference)
- func (n *ViewNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
- type X509IdentityAuthenticator
Constants ¶
const (
// SessionKey stores the current session in context
SessionKey key = "opcua-session"
)
Variables ¶
var ( // DefaultRolePermissions returns RolePermissionTypes for the well known roles. DefaultRolePermissions []ua.RolePermissionType = []ua.RolePermissionType{ {RoleID: ua.ObjectIDWellKnownRoleAnonymous, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents)}, {RoleID: ua.ObjectIDWellKnownRoleAuthenticatedUser, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents)}, {RoleID: ua.ObjectIDWellKnownRoleObserver, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents)}, {RoleID: ua.ObjectIDWellKnownRoleOperator, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWrite | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents | ua.PermissionTypeCall)}, {RoleID: ua.ObjectIDWellKnownRoleEngineer, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWrite | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents | ua.PermissionTypeCall | ua.PermissionTypeWriteHistorizing)}, {RoleID: ua.ObjectIDWellKnownRoleSupervisor, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWrite | ua.PermissionTypeReadHistory | ua.PermissionTypeReceiveEvents | ua.PermissionTypeCall)}, {RoleID: ua.ObjectIDWellKnownRoleConfigureAdmin, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeRead | ua.PermissionTypeWriteAttribute)}, {RoleID: ua.ObjectIDWellKnownRoleSecurityAdmin, Permissions: (ua.PermissionTypeBrowse | ua.PermissionTypeReadRolePermissions | ua.PermissionTypeWriteRolePermissions)}, } // DefaultIdentityMappingRules ... DefaultIdentityMappingRules []IdentityMappingRule = []IdentityMappingRule{ { NodeID: ua.ObjectIDWellKnownRoleAnonymous, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAnonymous}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleAuthenticatedUser, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAuthenticatedUser}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleObserver, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAuthenticatedUser}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleOperator, Identities: []ua.IdentityMappingRuleType{ {CriteriaType: ua.IdentityCriteriaTypeAuthenticatedUser}, }, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleEngineer, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleSupervisor, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleConfigureAdmin, ApplicationsExclude: true, EndpointsExclude: true, }, { NodeID: ua.ObjectIDWellKnownRoleSecurityAdmin, ApplicationsExclude: true, EndpointsExclude: true, }, } )
Functions ¶
func IsUserPermitted ¶
func IsUserPermitted(userRolePermissions []ua.RolePermissionType, permissionType ua.PermissionType) bool
IsUserPermitted returns true if the user's role permissions contain a given permissionType.
Types ¶
type AuthenticateIssuedIdentityFunc ¶
type AuthenticateIssuedIdentityFunc func(userIdentity ua.IssuedIdentity, applicationURI string, endpointURL string) error
AuthenticateIssuedIdentityFunc authenticates user identities.
func (AuthenticateIssuedIdentityFunc) AuthenticateIssuedIdentity ¶
func (f AuthenticateIssuedIdentityFunc) AuthenticateIssuedIdentity(userIdentity ua.IssuedIdentity, applicationURI string, endpointURL string) error
AuthenticateIssuedIdentity ...
type AuthenticateUserNameIdentityFunc ¶
type AuthenticateUserNameIdentityFunc func(userIdentity ua.UserNameIdentity, applicationURI string, endpointURL string) error
AuthenticateUserNameIdentityFunc authenticates UserNameIdentity.
func (AuthenticateUserNameIdentityFunc) AuthenticateUserNameIdentity ¶
func (f AuthenticateUserNameIdentityFunc) AuthenticateUserNameIdentity(userIdentity ua.UserNameIdentity, applicationURI string, endpointURL string) error
AuthenticateUserNameIdentity ...
type AuthenticateX509IdentityFunc ¶
type AuthenticateX509IdentityFunc func(userIdentity ua.X509Identity, applicationURI string, endpointURL string) error
AuthenticateX509IdentityFunc authenticates X509Identity.
func (AuthenticateX509IdentityFunc) AuthenticateX509Identity ¶
func (f AuthenticateX509IdentityFunc) AuthenticateX509Identity(userIdentity ua.X509Identity, applicationURI string, endpointURL string) error
AuthenticateX509Identity ...
type ChannelManager ¶
ChannelManager manages the secure channels for a server.
func NewChannelManager ¶
func NewChannelManager(server *Server) *ChannelManager
NewChannelManager instantiates a new ChannelManager.
func (*ChannelManager) Add ¶
func (m *ChannelManager) Add(ch *serverSecureChannel) error
Add a secure channel to the server.
func (*ChannelManager) Delete ¶
func (m *ChannelManager) Delete(ch *serverSecureChannel)
Delete the secure channel from the server.
func (*ChannelManager) Get ¶
func (m *ChannelManager) Get(id uint32) (*serverSecureChannel, bool)
Get a secure channel from the server.
func (*ChannelManager) Len ¶
func (m *ChannelManager) Len() int
Len returns the number of secure channel.
type DataChangeMonitoredItem ¶
DataChangeMonitoredItem specifies the node and attribute that is monitored for data changes.
func NewDataChangeMonitoredItem ¶
func NewDataChangeMonitoredItem(ctx context.Context, sub *Subscription, node Node, itemToMonitor ua.ReadValueID, monitoringMode ua.MonitoringMode, parameters ua.MonitoringParameters, timestampsToReturn ua.TimestampsToReturn, minSamplingInterval float64) *DataChangeMonitoredItem
NewDataChangeMonitoredItem constructs a new DataChangeMonitoredItem.
func (*DataChangeMonitoredItem) AddTriggeredItem ¶
func (mi *DataChangeMonitoredItem) AddTriggeredItem(item MonitoredItem) bool
AddTriggeredItem adds a item to be triggered by this item.
func (*DataChangeMonitoredItem) ClientHandle ¶
func (mi *DataChangeMonitoredItem) ClientHandle() uint32
ClientHandle returns the client handle of the MonitoredItem.
func (*DataChangeMonitoredItem) Delete ¶
func (mi *DataChangeMonitoredItem) Delete()
Delete deletes the DataMonitoredItem.
func (*DataChangeMonitoredItem) ID ¶
func (mi *DataChangeMonitoredItem) ID() uint32
ID returns the identifier of the MonitoredItem.
func (*DataChangeMonitoredItem) ItemToMonitor ¶
func (mi *DataChangeMonitoredItem) ItemToMonitor() ua.ReadValueID
ItemToMonitor returns the ReadValueID of the MonitoredItem.
func (*DataChangeMonitoredItem) Modify ¶
func (mi *DataChangeMonitoredItem) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult
Modify modifies the MonitoredItem.
func (*DataChangeMonitoredItem) MonitoringMode ¶
func (mi *DataChangeMonitoredItem) MonitoringMode() ua.MonitoringMode
MonitoringMode returns the monitoring mode of the MonitoredItem.
func (*DataChangeMonitoredItem) Node ¶
func (mi *DataChangeMonitoredItem) Node() Node
Node returns the Node of the MonitoredItem.
func (*DataChangeMonitoredItem) Poll ¶
func (mi *DataChangeMonitoredItem) Poll()
Poll reads the value of the itemToMonitor.
func (*DataChangeMonitoredItem) QueueSize ¶
func (mi *DataChangeMonitoredItem) QueueSize() uint32
QueueSize returns the queue size of the MonitoredItem.
func (*DataChangeMonitoredItem) RemoveTriggeredItem ¶
func (mi *DataChangeMonitoredItem) RemoveTriggeredItem(item MonitoredItem) bool
RemoveTriggeredItem removes an item to be triggered by this item.
func (*DataChangeMonitoredItem) SamplingInterval ¶
func (mi *DataChangeMonitoredItem) SamplingInterval() float64
SamplingInterval returns the sampling interval in ms of the MonitoredItem.
func (*DataChangeMonitoredItem) SetMonitoringMode ¶
func (mi *DataChangeMonitoredItem) SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode)
SetMonitoringMode sets the MonitoringMode of the MonitoredItem.
func (*DataChangeMonitoredItem) SetTriggered ¶
func (mi *DataChangeMonitoredItem) SetTriggered(val bool)
SetTriggered sets when the MonitoredItem is triggered.
func (*DataChangeMonitoredItem) Triggered ¶
func (mi *DataChangeMonitoredItem) Triggered() bool
Triggered returns true when the MonitoredItem is triggered.
type DataTypeNode ¶
DataTypeNode is a Node class that describes the syntax of a variable's Value.
func NewDataTypeNode ¶
func NewDataTypeNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, isAbstract bool, structureOrEnumDefinition interface{}) *DataTypeNode
NewDataTypeNode creates a new DataTypeNode.
func (*DataTypeNode) BrowseName ¶
func (n *DataTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*DataTypeNode) DataTypeDefinition ¶
func (n *DataTypeNode) DataTypeDefinition() interface{}
DataTypeDefinition returns the DataTypeDefinition attribute of this node.
func (*DataTypeNode) Description ¶
func (n *DataTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*DataTypeNode) DisplayName ¶
func (n *DataTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*DataTypeNode) IsAbstract ¶
func (n *DataTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*DataTypeNode) IsAttributeIDValid ¶
func (n *DataTypeNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*DataTypeNode) NodeClass ¶
func (n *DataTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*DataTypeNode) NodeID ¶
func (n *DataTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*DataTypeNode) References ¶
func (n *DataTypeNode) References() []ua.Reference
References returns the References of this node.
func (*DataTypeNode) RolePermissions ¶
func (n *DataTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*DataTypeNode) SetReferences ¶
func (n *DataTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*DataTypeNode) UserRolePermissions ¶
func (n *DataTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type EventListener ¶
type EventMonitoredItem ¶
EventMonitoredItem specifies a node that is monitored for events.
func NewEventMonitoredItem ¶
func NewEventMonitoredItem(ctx context.Context, sub *Subscription, node Node, itemToMonitor ua.ReadValueID, monitoringMode ua.MonitoringMode, parameters ua.MonitoringParameters) *EventMonitoredItem
NewEventMonitoredItem constructs a new EventMonitoredItem.
func (*EventMonitoredItem) AddTriggeredItem ¶
func (mi *EventMonitoredItem) AddTriggeredItem(item MonitoredItem) bool
AddTriggeredItem adds a item to be triggered by this item.
func (*EventMonitoredItem) ClientHandle ¶
func (mi *EventMonitoredItem) ClientHandle() uint32
ClientHandle returns the client handle of the MonitoredItem.
func (*EventMonitoredItem) Delete ¶
func (mi *EventMonitoredItem) Delete()
Delete deletes the DataMonitoredItem.
func (*EventMonitoredItem) ID ¶
func (mi *EventMonitoredItem) ID() uint32
ID returns the identifier of the MonitoredItem.
func (*EventMonitoredItem) ItemToMonitor ¶
func (mi *EventMonitoredItem) ItemToMonitor() ua.ReadValueID
ItemToMonitor returns the ReadValueID of the MonitoredItem.
func (*EventMonitoredItem) Modify ¶
func (mi *EventMonitoredItem) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult
Modify modifies the MonitoredItem.
func (*EventMonitoredItem) MonitoringMode ¶
func (mi *EventMonitoredItem) MonitoringMode() ua.MonitoringMode
MonitoringMode returns the monitoring mode of the MonitoredItem.
func (*EventMonitoredItem) Node ¶
func (mi *EventMonitoredItem) Node() Node
Node returns the Node of the MonitoredItem.
func (*EventMonitoredItem) OnEvent ¶
func (mi *EventMonitoredItem) OnEvent(evt ua.Event)
func (*EventMonitoredItem) QueueSize ¶
func (mi *EventMonitoredItem) QueueSize() uint32
QueueSize returns the queue size of the MonitoredItem.
func (*EventMonitoredItem) RemoveTriggeredItem ¶
func (mi *EventMonitoredItem) RemoveTriggeredItem(item MonitoredItem) bool
RemoveTriggeredItem removes an item to be triggered by this item.
func (*EventMonitoredItem) SamplingInterval ¶
func (mi *EventMonitoredItem) SamplingInterval() float64
SamplingInterval returns the sampling interval in ms of the MonitoredItem.
func (*EventMonitoredItem) SetMonitoringMode ¶
func (mi *EventMonitoredItem) SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode)
SetMonitoringMode sets the MonitoringMode of the MonitoredItem.
func (*EventMonitoredItem) SetTriggered ¶
func (mi *EventMonitoredItem) SetTriggered(val bool)
SetTriggered sets when the MonitoredItem is triggered.
func (*EventMonitoredItem) Triggered ¶
func (mi *EventMonitoredItem) Triggered() bool
Triggered returns true when the MonitoredItem is triggered.
type HistoryReadWriter ¶
type HistoryReadWriter interface { HistoryReader HistoryWriter }
HistoryReadWriter provides methods to read and write historical data.
type HistoryReader ¶
type HistoryReader interface { // ReadEvent reads the events from storage. Implementation returns slice of events for every // NodeID provided in 'nodesToRead', given StartTime, EndTime and other parameters in 'details'. // Implementation may check context for timeout. Implementation must return desired choice of // timestamps. Implementation must return ContinuationPoints if more results are available // than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.2.2 for Read Event functionality. ReadEvent(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadEventDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) // ReadRawModified reads the raw or modified data values from storage. Implementation returns // slice of data values for every NodeID provided in 'nodesToRead', given StartTime, EndTime and // other parameters in 'details'. Implementation may check context for timeout. Implementation must // return desired choice of timestamps. Implementation must return ContinuationPoints if more results // are available than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.3.2 for Read Raw functionality. ReadRawModified(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadRawModifiedDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) // ReadProcessed reads the aggregated values from storage. Implementation returns slice of // aggregated data values for every NodeID provided in 'nodesToRead', given StartTime, EndTime and // other parameters in 'details'. Implementation may check context for timeout. Implementation must // return desired choice of timestamps. Implementation must return ContinuationPoints if more results // are available than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.4.2 for Read Processed functionality. ReadProcessed(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadProcessedDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) // ReadAtTime reads the correlated values from storage. Implementation returns slice of // correlated data values for every NodeID provided in 'nodesToRead', given slice of timestamps and // other parameters in 'details'. Implementation may check context for timeout. Implementation must // return desired choice of timestamps. Implementation must return ContinuationPoints if more results // are available than can be returned in current call. Implementation must release ContinuationPoints // if no further results are desired. See OPC UA Part 11 chapter 6.4.5.2 for Read At Time functionality. ReadAtTime(ctx context.Context, nodesToRead []ua.HistoryReadValueID, details ua.ReadAtTimeDetails, timestampsToReturn ua.TimestampsToReturn, releaseContinuationPoints bool) ([]ua.HistoryReadResult, ua.StatusCode) }
HistoryReader provides methods to read historical data.
type HistoryWriter ¶
type HistoryWriter interface { // WriteEvent writes the event to storage. Implementation records object nodeId // and event fields (provided as slice of Variants). Implementation may check // context for timeout. WriteEvent(ctx context.Context, nodeID ua.NodeID, eventFields []ua.Variant) error // WriteValue writes the value to storage. Implementation records variable nodeId // and DataValue (a struct of value, quality and source timestamp). Implementation // may check context for timeout. WriteValue(ctx context.Context, nodeID ua.NodeID, value ua.DataValue) error }
HistoryWriter provides methods to write historical data.
type IdentityMappingRule ¶
type IdentityMappingRule struct { NodeID ua.NodeID Identities []ua.IdentityMappingRuleType ApplicationsExclude bool Applications []string EndpointsExclude bool Endpoints []struct { EndpointUrl string SecurityMode string SecurityPolicyURI string TransportProfileUri string } }
IdentityMappingRule ...
type IssuedIdentityAuthenticator ¶
type IssuedIdentityAuthenticator interface { // AuthenticateIssuedIdentity returns nil when user is authenticated, or BadUserAccessDenied otherwise. AuthenticateIssuedIdentity(userIdentity ua.IssuedIdentity, applicationURI string, endpointURL string) error }
IssuedIdentityAuthenticator authenticates user identities.
type MethodNode ¶
MethodNode is a Node class that describes the syntax of a object's Method.
func NewMethodNode ¶
func NewMethodNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, executable bool) *MethodNode
NewMethodNode constructs a new MethodNode.
func (*MethodNode) BrowseName ¶
func (n *MethodNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*MethodNode) Description ¶
func (n *MethodNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*MethodNode) DisplayName ¶
func (n *MethodNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*MethodNode) Executable ¶
func (n *MethodNode) Executable() bool
Executable returns the Executable attribute of this node.
func (*MethodNode) IsAttributeIDValid ¶
func (n *MethodNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*MethodNode) NodeClass ¶
func (n *MethodNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*MethodNode) NodeID ¶
func (n *MethodNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*MethodNode) References ¶
func (n *MethodNode) References() []ua.Reference
References returns the References of this node.
func (*MethodNode) RolePermissions ¶
func (n *MethodNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*MethodNode) SetCallMethodHandler ¶
func (n *MethodNode) SetCallMethodHandler(value func(context.Context, ua.CallMethodRequest) ua.CallMethodResult)
SetCallMethodHandler sets the CallMethod of the Variable.
func (*MethodNode) SetReferences ¶
func (n *MethodNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*MethodNode) UserExecutable ¶
func (n *MethodNode) UserExecutable(ctx context.Context) bool
UserExecutable returns the UserExecutable attribute of this node.
func (*MethodNode) UserRolePermissions ¶
func (n *MethodNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type MonitoredItem ¶
type MonitoredItem interface { ID() uint32 Node() Node ItemToMonitor() ua.ReadValueID SamplingInterval() float64 QueueSize() uint32 MonitoringMode() ua.MonitoringMode ClientHandle() uint32 Triggered() bool SetTriggered(bool) Modify(ctx context.Context, req ua.MonitoredItemModifyRequest) ua.MonitoredItemModifyResult Delete() SetMonitoringMode(ctx context.Context, mode ua.MonitoringMode) AddTriggeredItem(item MonitoredItem) bool RemoveTriggeredItem(item MonitoredItem) bool // contains filtered or unexported methods }
MonitoredItem specifies a node that is monitored
type NamespaceManager ¶
NamespaceManager manages the namespaces for a server.
func NewNamespaceManager ¶
func NewNamespaceManager(server *Server) *NamespaceManager
NewNamespaceManager instantiates a new NamespaceManager.
func (*NamespaceManager) Add ¶
func (m *NamespaceManager) Add(nsu string) uint16
Add adds a namespace to the end of the table and returns the index. If the namespace already exists then returns the index.
func (*NamespaceManager) AddNode ¶
func (m *NamespaceManager) AddNode(node Node) error
AddNode adds the node to the namespace. This method adds the inverse refs as well.
func (*NamespaceManager) AddNodes ¶
func (m *NamespaceManager) AddNodes(nodes ...Node) error
AddNodes adds the nodes to the namespace. This method adds the inverse refs as well.
func (*NamespaceManager) DeleteNode ¶
func (m *NamespaceManager) DeleteNode(node Node, deleteChildren bool) error
DeleteNode removes the node from the namespace. This method removes the inverse refs as well.
func (*NamespaceManager) DeleteNodes ¶
func (m *NamespaceManager) DeleteNodes(nodes []Node, deleteChildren bool) error
DeleteNodes removes the nodes from the namespace. This method removes the inverse refs as well.
func (*NamespaceManager) FindComponent ¶
func (m *NamespaceManager) FindComponent(startNode Node, browseName ua.QualifiedName) (node Node, ok bool)
FindComponent returns the component with the given browseName from the namespace.
func (*NamespaceManager) FindMethod ¶
func (m *NamespaceManager) FindMethod(id ua.NodeID) (node *MethodNode, ok bool)
FindMethod returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindNode ¶
func (m *NamespaceManager) FindNode(id ua.NodeID) (node Node, ok bool)
FindNode returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindObject ¶
func (m *NamespaceManager) FindObject(id ua.NodeID) (node *ObjectNode, ok bool)
FindObject returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindProperty ¶
func (m *NamespaceManager) FindProperty(startNode Node, browseName ua.QualifiedName) (node *VariableNode, ok bool)
FindProperty returns the property with the given browseName from the namespace.
func (*NamespaceManager) FindSuperType ¶
func (m *NamespaceManager) FindSuperType(typeid ua.NodeID) ua.NodeID
FindSuperType returns the immediate supertype for the type.
func (*NamespaceManager) FindVariable ¶
func (m *NamespaceManager) FindVariable(id ua.NodeID) (node *VariableNode, ok bool)
FindVariable returns the node with the given NodeID from the namespace.
func (*NamespaceManager) FindVariantType ¶
func (m *NamespaceManager) FindVariantType(dataType ua.NodeID) byte
FindVariantType gets the variant type for the variable
func (*NamespaceManager) GetChildren ¶
GetChildren traverses the tree to get all target nodes with the given reference types.
func (*NamespaceManager) GetSubTypes ¶
func (m *NamespaceManager) GetSubTypes(node Node) []Node
GetSubTypes traverses the tree to get all target nodes with HasSubtype reference type.
func (*NamespaceManager) IsSubtype ¶
func (m *NamespaceManager) IsSubtype(subtype, supertype ua.NodeID) bool
IsSubtype returns whether the subtype is derived from the given supertype in the namespace.
func (*NamespaceManager) Len ¶
func (m *NamespaceManager) Len() int
Len returns the number of namespace.
func (*NamespaceManager) LoadNodeSetFromBuffer ¶
func (m *NamespaceManager) LoadNodeSetFromBuffer(buf []byte) error
LoadNodeSetFromBuffer loads the UANodeSet XML from a buffer into the namespace.
func (*NamespaceManager) LoadNodeSetFromFile ¶
func (m *NamespaceManager) LoadNodeSetFromFile(path string) error
LoadNodeSetFromFile loads the UANodeSet XML from a file with the given path into the namespace.
func (*NamespaceManager) NamespaceUris ¶
func (m *NamespaceManager) NamespaceUris() []string
NamespaceUris returns the namespace table of the server.
func (*NamespaceManager) OnEvent ¶
func (m *NamespaceManager) OnEvent(target *ObjectNode, evt ua.Event) error
OnEvent raises the event, starting from the target node, follows HasNotifier references until the Server node.
func (*NamespaceManager) SetAnalogTypeBehavior ¶
func (m *NamespaceManager) SetAnalogTypeBehavior(node *VariableNode) error
SetAnalogTypeBehavior sets the behavoir of a variable of type AnalogType.
func (*NamespaceManager) SetMultiStateValueDiscreteTypeBehavior ¶
func (m *NamespaceManager) SetMultiStateValueDiscreteTypeBehavior(node *VariableNode) error
SetMultiStateValueDiscreteTypeBehavior sets the behavoir of a variable of type MultiStateValueDiscreteType.
type Node ¶
type Node interface { NodeID() ua.NodeID NodeClass() ua.NodeClass BrowseName() ua.QualifiedName DisplayName() ua.LocalizedText Description() ua.LocalizedText RolePermissions() []ua.RolePermissionType UserRolePermissions(context.Context) []ua.RolePermissionType References() []ua.Reference SetReferences([]ua.Reference) IsAttributeIDValid(uint32) bool }
Node ...
type ObjectNode ¶
ObjectNode ...
func NewObjectNode ¶
func NewObjectNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, eventNotifier byte) *ObjectNode
NewObjectNode ...
func (*ObjectNode) AddEventListener ¶
func (n *ObjectNode) AddEventListener(listener EventListener)
func (*ObjectNode) BrowseName ¶
func (n *ObjectNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ObjectNode) Description ¶
func (n *ObjectNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ObjectNode) DisplayName ¶
func (n *ObjectNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ObjectNode) EventNotifier ¶
func (n *ObjectNode) EventNotifier() byte
EventNotifier returns the EventNotifier attribute of this node.
func (*ObjectNode) IsAttributeIDValid ¶
func (n *ObjectNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ObjectNode) NodeClass ¶
func (n *ObjectNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*ObjectNode) NodeID ¶
func (n *ObjectNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*ObjectNode) OnEvent ¶
func (n *ObjectNode) OnEvent(evt ua.Event)
OnEvent raises an event from this node.
func (*ObjectNode) References ¶
func (n *ObjectNode) References() []ua.Reference
References returns the References of this node.
func (*ObjectNode) RemoveEventListener ¶
func (n *ObjectNode) RemoveEventListener(listener EventListener)
func (*ObjectNode) RolePermissions ¶
func (n *ObjectNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ObjectNode) SetReferences ¶
func (n *ObjectNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*ObjectNode) UserRolePermissions ¶
func (n *ObjectNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type ObjectTypeNode ¶
ObjectTypeNode ...
func NewObjectTypeNode ¶
func NewObjectTypeNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, isAbstract bool) *ObjectTypeNode
NewObjectTypeNode ...
func (*ObjectTypeNode) BrowseName ¶
func (n *ObjectTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ObjectTypeNode) Description ¶
func (n *ObjectTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ObjectTypeNode) DisplayName ¶
func (n *ObjectTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ObjectTypeNode) IsAbstract ¶
func (n *ObjectTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*ObjectTypeNode) IsAttributeIDValid ¶
func (n *ObjectTypeNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ObjectTypeNode) NodeClass ¶
func (n *ObjectTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*ObjectTypeNode) NodeID ¶
func (n *ObjectTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*ObjectTypeNode) References ¶
func (n *ObjectTypeNode) References() []ua.Reference
References returns the References of this node.
func (*ObjectTypeNode) RolePermissions ¶
func (n *ObjectTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ObjectTypeNode) SetReferences ¶
func (n *ObjectTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*ObjectTypeNode) UserRolePermissions ¶
func (n *ObjectTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type Option ¶
Option is a functional option to be applied to a server during initialization.
func WithAnonymousIdentity ¶
WithAnonymousIdentity sets whether to allow anonymous identity.
func WithAuthenticateUserNameIdentityFunc ¶
func WithAuthenticateUserNameIdentityFunc(f AuthenticateUserNameIdentityFunc) Option
WithAuthenticateUserNameIdentityFunc sets the authenticate func for UserNameIdentity.
func WithAuthenticateX509IdentityFunc ¶
func WithAuthenticateX509IdentityFunc(f AuthenticateX509IdentityFunc) Option
WithAuthenticateX509IdentityFunc sets the authenticate func for X509Identity.
func WithBuildInfo ¶
WithBuildInfo sets the BuildInfo returned by ServerStatus.
func WithHistorian ¶
func WithHistorian(historian HistoryReadWriter) Option
WithHistorian sets the HistoryReadWriter.
func WithInsecureSkipVerify ¶
func WithInsecureSkipVerify() Option
WithInsecureSkipVerify skips verification of client certificate. Skips checking HostName, Expiration, and Authority.
func WithMaxSessionCount ¶
WithMaxSessionCount sets the number of sessions that may be active. (default: no limit)
func WithMaxSubscriptionCount ¶
WithMaxSubscriptionCount sets the number of subscription that may be active. (default: no limit)
func WithMaxWorkerThreads ¶
WithMaxWorkerThreads sets the default number of worker threads that may be created. (default: 4)
func WithRolePermissions ¶
func WithRolePermissions(permissions []ua.RolePermissionType) Option
WithRolePermissions sets the permissions for each role.
func WithRolesProvider ¶
func WithRolesProvider(provider RolesProvider) Option
WithRolesProvider sets the RolesProvider.
func WithSecurityPolicyNone ¶
WithSecurityPolicyNone sets whether to allow security policy with no encryption.
func WithServerCapabilities ¶
func WithServerCapabilities(value *ua.ServerCapabilities) Option
WithServerCapabilities sets the number of subscription that may be active. (default: no limit)
func WithServerDiagnostics ¶
WithServerDiagnostics sets whether to enable the collection of data used for ServerDiagnostics node.
func WithSessionTimeout ¶
WithSessionTimeout sets the number of milliseconds that a session may be unused before being closed by the server. (default: 2 min)
func WithTrace ¶
func WithTrace() Option
WithTrace logs all ServiceRequests and ServiceResponses to StdOut.
func WithTransportLimits ¶
func WithTransportLimits(receiveBufferSize, sendBufferSize, maxMessageSize, maxChunkCount uint32) Option
WithTransportLimits ...
func WithUserNameIdentityAuthenticator ¶
func WithUserNameIdentityAuthenticator(authenticator UserNameIdentityAuthenticator) Option
WithUserNameIdentityAuthenticator sets the authenticator for UserNameIdentity.
func WithX509IdentityAuthenticator ¶
func WithX509IdentityAuthenticator(authenticator X509IdentityAuthenticator) Option
WithX509IdentityAuthenticator sets the authenticator for X509Identity.
type PollGroup ¶
func NewPollGroup ¶
func (*PollGroup) Subscribe ¶
func (b *PollGroup) Subscribe(listener PollListener)
func (*PollGroup) Unsubscribe ¶
func (b *PollGroup) Unsubscribe(listener PollListener)
type PollListener ¶
type PollListener interface {
Poll()
}
type ReferenceTypeNode ¶
ReferenceTypeNode ...
func NewReferenceTypeNode ¶
func NewReferenceTypeNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, isAbstract bool, symmetric bool, inverseName ua.LocalizedText) *ReferenceTypeNode
NewReferenceTypeNode ...
func (*ReferenceTypeNode) BrowseName ¶
func (n *ReferenceTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ReferenceTypeNode) Description ¶
func (n *ReferenceTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ReferenceTypeNode) DisplayName ¶
func (n *ReferenceTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ReferenceTypeNode) InverseName ¶
func (n *ReferenceTypeNode) InverseName() ua.LocalizedText
InverseName returns the InverseName attribute of this node.
func (*ReferenceTypeNode) IsAbstract ¶
func (n *ReferenceTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*ReferenceTypeNode) IsAttributeIDValid ¶
func (n *ReferenceTypeNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ReferenceTypeNode) NodeClass ¶
func (n *ReferenceTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*ReferenceTypeNode) NodeID ¶
func (n *ReferenceTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*ReferenceTypeNode) References ¶
func (n *ReferenceTypeNode) References() []ua.Reference
References returns the References of this node.
func (*ReferenceTypeNode) RolePermissions ¶
func (n *ReferenceTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ReferenceTypeNode) SetReferences ¶
func (n *ReferenceTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*ReferenceTypeNode) Symmetric ¶
func (n *ReferenceTypeNode) Symmetric() bool
Symmetric returns the Symmetric attribute of this node.
func (*ReferenceTypeNode) UserRolePermissions ¶
func (n *ReferenceTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type RolesProvider ¶
type RolesProvider interface { // GetRoles returns the roles where the user matches the membership criteria. GetRoles(userIdentity interface{}, applicationURI string, endpointURL string) ([]ua.NodeID, error) }
RolesProvider selects roles where the user identity and connection information matches the membership criteria. Roles are identified by a NodeID. There are a number of well-known roles. Later, users are granted Permissions to perform actions based on the user's role memberships.
func NewRulesBasedRolesProvider ¶
func NewRulesBasedRolesProvider(rules []IdentityMappingRule) RolesProvider
NewRulesBasedRolesProvider ...
type RulesBasedRolesProvider ¶
type RulesBasedRolesProvider struct {
// contains filtered or unexported fields
}
RulesBasedRolesProvider returns WellKnownRoles given server identity mapping rules.
type Scheduler ¶
func NewScheduler ¶
type Server ¶
Server implements an OpcUa server for clients.
func New ¶
func New(localDescription ua.ApplicationDescription, certPath, keyPath, endpointURL string, options ...Option) (*Server, error)
New initializes a new instance of the Server. Specify the ApplicationDescription as defined in https://reference.opcfoundation.org/v104/Core/docs/Part4/7.1/ The files must contain PEM encoded data. The endpointURL is in the form opc.tcp://[host]:[port]
func (*Server) ChannelManager ¶
func (srv *Server) ChannelManager() *ChannelManager
ChannelManager gets the secure channel manager.
func (*Server) Closing ¶
func (srv *Server) Closing() <-chan struct{}
Closing gets a channel that broadcasts the closing of the server.
func (*Server) EndpointURL ¶
EndpointURL gets the endpoint url.
func (*Server) Endpoints ¶
func (srv *Server) Endpoints() []ua.EndpointDescription
Endpoints gets the endpoint descriptions.
func (*Server) Historian ¶
func (srv *Server) Historian() HistoryReadWriter
Historian gets the HistoryReadWriter.
func (*Server) ListenAndServe ¶
ListenAndServe listens on the EndpointURL for incoming connections and then handles service requests. ListenAndServe always returns a non-nil error. After Shutdown or Close, the returned error is BadServerHalted.
func (*Server) LocalCertificate ¶
LocalCertificate gets the certificate for the local application.
func (*Server) LocalDescription ¶
func (srv *Server) LocalDescription() ua.ApplicationDescription
LocalDescription gets the application description.
func (*Server) MaxSessionCount ¶
MaxSessionCount gets the maximum number of sessions.
func (*Server) MaxSubscriptionCount ¶
MaxSubscriptionCount gets the maximum number of subscriptions.
func (*Server) NamespaceManager ¶
func (srv *Server) NamespaceManager() *NamespaceManager
NamespaceManager gets the namespace manager.
func (*Server) NamespaceUris ¶
NamespaceUris gets the namespace uris.
func (*Server) RolePermissions ¶
func (srv *Server) RolePermissions() []ua.RolePermissionType
RolePermissions gets the RolePermissions.
func (*Server) ServerCapabilities ¶
func (srv *Server) ServerCapabilities() *ua.ServerCapabilities
ServerCapabilities gets the capabilities of the server.
func (*Server) ServerUris ¶
ServerUris gets the server uris.
func (*Server) SessionManager ¶
func (srv *Server) SessionManager() *SessionManager
SessionManager gets the session manager.
func (*Server) SubscriptionManager ¶
func (srv *Server) SubscriptionManager() *SubscriptionManager
SubscriptionManager gets the subscription Manager.
func (*Server) WorkerPool ¶
func (srv *Server) WorkerPool() *workerpool.WorkerPool
WorkerPool gets a pool of workers.
type Session ¶
func NewSession ¶
func (*Session) AuthenticationToken ¶
func (*Session) LastAccess ¶
func (*Session) SecureChannelId ¶
func (*Session) SessionName ¶
func (*Session) SessionNonce ¶
func (s *Session) SessionNonce() ua.ByteString
func (*Session) SetLastAccess ¶
func (*Session) SetSecureChannelId ¶
func (*Session) SetSessionNonce ¶
func (s *Session) SetSessionNonce(value ua.ByteString)
func (*Session) SetUserIdentity ¶
func (s *Session) SetUserIdentity(value interface{})
func (*Session) SetUserRoles ¶
func (*Session) UserIdentity ¶
func (s *Session) UserIdentity() interface{}
type SessionManager ¶
SessionManager manages the sessions for a server.
func NewSessionManager ¶
func NewSessionManager(server *Server) *SessionManager
NewSessionManager instantiates a new SessionManager.
func (*SessionManager) Add ¶
func (m *SessionManager) Add(s *Session) error
Add a session to the server.
func (*SessionManager) Delete ¶
func (m *SessionManager) Delete(s *Session)
Delete the session from the server.
type Subscription ¶
Subscription organizes MonitoredItems.
func NewSubscription ¶
func NewSubscription(manager *SubscriptionManager, session *Session, publishingInterval float64, lifetimeCount uint32, maxKeepAliveCount uint32, maxNotificationsPerPublish uint32, publishingEnabled bool, priority byte) *Subscription
NewSubscription instantiates a new Subscription.
func (*Subscription) AppendItem ¶
func (s *Subscription) AppendItem(item MonitoredItem) bool
func (*Subscription) Delete ¶
func (s *Subscription) Delete()
func (*Subscription) DeleteItem ¶
func (s *Subscription) DeleteItem(ctx context.Context, id uint32) bool
func (*Subscription) FindItem ¶
func (s *Subscription) FindItem(id uint32) (MonitoredItem, bool)
func (*Subscription) IsExpired ¶
func (s *Subscription) IsExpired() bool
func (*Subscription) Items ¶
func (s *Subscription) Items() []MonitoredItem
func (*Subscription) SetPublishingMode ¶
func (s *Subscription) SetPublishingMode(publishingEnabled bool)
type SubscriptionManager ¶
SubscriptionManager manages the subscriptions for a server.
func NewSubscriptionManager ¶
func NewSubscriptionManager(server *Server) *SubscriptionManager
NewSubscriptionManager instantiates a new SubscriptionManager.
func (*SubscriptionManager) Add ¶
func (m *SubscriptionManager) Add(s *Subscription) error
Add a subscription to the server.
func (*SubscriptionManager) Delete ¶
func (m *SubscriptionManager) Delete(s *Subscription)
Delete the subscription from the server.
func (*SubscriptionManager) Get ¶
func (m *SubscriptionManager) Get(id uint32) (*Subscription, bool)
Get a subscription from the server.
func (*SubscriptionManager) GetBySession ¶
func (m *SubscriptionManager) GetBySession(session *Session) []*Subscription
GetBySession returns subscriptions for the session.
func (*SubscriptionManager) Len ¶
func (m *SubscriptionManager) Len() int
Len returns the number of subscriptions.
type UserNameIdentityAuthenticator ¶
type UserNameIdentityAuthenticator interface { // AuthenticateUserNameIdentity returns nil when user identity is authenticated, or BadUserAccessDenied otherwise. AuthenticateUserNameIdentity(userIdentity ua.UserNameIdentity, applicationURI string, endpointURL string) error }
UserNameIdentityAuthenticator authenticates UserNameIdentity.
type VariableNode ¶
func NewVariableNode ¶
func NewVariableNode(nodeID ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, value ua.DataValue, dataType ua.NodeID, valueRank int32, arrayDimensions []uint32, accessLevel byte, minimumSamplingInterval float64, historizing bool, historian HistoryReadWriter) *VariableNode
func (*VariableNode) AccessLevel ¶
func (n *VariableNode) AccessLevel() byte
AccessLevel returns the AccessLevel attribute of this node.
func (*VariableNode) ArrayDimensions ¶
func (n *VariableNode) ArrayDimensions() []uint32
ArrayDimensions returns the ArrayDimensions attribute of this node.
func (*VariableNode) BrowseName ¶
func (n *VariableNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*VariableNode) DataType ¶
func (n *VariableNode) DataType() ua.NodeID
DataType returns the DataType attribute of this node.
func (*VariableNode) Description ¶
func (n *VariableNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*VariableNode) DisplayName ¶
func (n *VariableNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*VariableNode) Historizing ¶
func (n *VariableNode) Historizing() bool
Historizing returns the Historizing attribute of this node.
func (*VariableNode) IsAttributeIDValid ¶
func (n *VariableNode) IsAttributeIDValid(attributeID uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*VariableNode) MinimumSamplingInterval ¶
func (n *VariableNode) MinimumSamplingInterval() float64
MinimumSamplingInterval returns the MinimumSamplingInterval attribute of this node.
func (*VariableNode) NodeClass ¶
func (n *VariableNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*VariableNode) NodeID ¶
func (n *VariableNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*VariableNode) References ¶
func (n *VariableNode) References() []ua.Reference
References returns the References of this node.
func (*VariableNode) RolePermissions ¶
func (n *VariableNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*VariableNode) SetHistorizing ¶
func (n *VariableNode) SetHistorizing(historizing bool)
SetHistorizing sets the Historizing attribute of this node.
func (*VariableNode) SetReadValueHandler ¶
func (n *VariableNode) SetReadValueHandler(value func(context.Context, ua.ReadValueID) ua.DataValue)
SetReadValueHandler sets the ReadValueHandler of this node.
func (*VariableNode) SetReferences ¶
func (n *VariableNode) SetReferences(value []ua.Reference)
SetReferences sets the References of this node.
func (*VariableNode) SetValue ¶
func (n *VariableNode) SetValue(value ua.DataValue)
SetValue sets the value of the Variable.
func (*VariableNode) SetWriteValueHandler ¶
func (n *VariableNode) SetWriteValueHandler(value func(context.Context, ua.WriteValue) (ua.DataValue, ua.StatusCode))
SetWriteValueHandler sets the WriteValueHandler of this node.
func (*VariableNode) UserAccessLevel ¶
func (n *VariableNode) UserAccessLevel(ctx context.Context) byte
UserAccessLevel returns the AccessLevel attribute of this node for this user.
func (*VariableNode) UserRolePermissions ¶
func (n *VariableNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
func (*VariableNode) Value ¶
func (n *VariableNode) Value() ua.DataValue
Value returns the value of the Variable.
func (*VariableNode) ValueRank ¶
func (n *VariableNode) ValueRank() int32
ValueRank returns the ValueRank attribute of this node.
type VariableTypeNode ¶
func NewVariableTypeNode ¶
func NewVariableTypeNode(nodeId ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, value ua.DataValue, dataType ua.NodeID, valueRank int32, arrayDimensions []uint32, isAbstract bool) *VariableTypeNode
func (*VariableTypeNode) ArrayDimensions ¶
func (n *VariableTypeNode) ArrayDimensions() []uint32
ArrayDimensions returns the ArrayDimensions attribute of this node.
func (*VariableTypeNode) BrowseName ¶
func (n *VariableTypeNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*VariableTypeNode) DataType ¶
func (n *VariableTypeNode) DataType() ua.NodeID
DataType returns the DataType attribute of this node.
func (*VariableTypeNode) Description ¶
func (n *VariableTypeNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*VariableTypeNode) DisplayName ¶
func (n *VariableTypeNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*VariableTypeNode) IsAbstract ¶
func (n *VariableTypeNode) IsAbstract() bool
IsAbstract returns the IsAbstract attribute of this node.
func (*VariableTypeNode) IsAttributeIDValid ¶
func (n *VariableTypeNode) IsAttributeIDValid(attributeId uint32) bool
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*VariableTypeNode) NodeClass ¶
func (n *VariableTypeNode) NodeClass() ua.NodeClass
NodeClass returns the NodeClass attribute of this node.
func (*VariableTypeNode) NodeID ¶
func (n *VariableTypeNode) NodeID() ua.NodeID
NodeID returns the NodeID attribute of this node.
func (*VariableTypeNode) References ¶
func (n *VariableTypeNode) References() []ua.Reference
References returns the References of this node.
func (*VariableTypeNode) RolePermissions ¶
func (n *VariableTypeNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*VariableTypeNode) SetReferences ¶
func (n *VariableTypeNode) SetReferences(value []ua.Reference)
SetReferences sets the References of the Variable.
func (*VariableTypeNode) UserRolePermissions ¶
func (n *VariableTypeNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
func (*VariableTypeNode) Value ¶
func (n *VariableTypeNode) Value() ua.DataValue
Value returns the value of the Variable.
func (*VariableTypeNode) ValueRank ¶
func (n *VariableTypeNode) ValueRank() int32
ValueRank returns the ValueRank attribute of this node.
type ViewNode ¶
func NewViewNode ¶
func NewViewNode(nodeId ua.NodeID, browseName ua.QualifiedName, displayName ua.LocalizedText, description ua.LocalizedText, rolePermissions []ua.RolePermissionType, references []ua.Reference, containsNoLoops bool, eventNotifier byte) *ViewNode
func (*ViewNode) BrowseName ¶
func (n *ViewNode) BrowseName() ua.QualifiedName
BrowseName returns the BrowseName attribute of this node.
func (*ViewNode) ContainsNoLoops ¶
ContainsNoLoops returns the ContainsNoLoops attribute of this node.
func (*ViewNode) Description ¶
func (n *ViewNode) Description() ua.LocalizedText
Description returns the Description attribute of this node.
func (*ViewNode) DisplayName ¶
func (n *ViewNode) DisplayName() ua.LocalizedText
DisplayName returns the DisplayName attribute of this node.
func (*ViewNode) EventNotifier ¶
EventNotifier returns the EventNotifier attribute of this node.
func (*ViewNode) IsAttributeIDValid ¶
IsAttributeIDValid returns true if attributeId is supported for the node.
func (*ViewNode) References ¶
References returns the References of this node.
func (*ViewNode) RolePermissions ¶
func (n *ViewNode) RolePermissions() []ua.RolePermissionType
RolePermissions returns the RolePermissions attribute of this node.
func (*ViewNode) SetReferences ¶
SetReferences sets the References of the Variable.
func (*ViewNode) UserRolePermissions ¶
func (n *ViewNode) UserRolePermissions(ctx context.Context) []ua.RolePermissionType
UserRolePermissions returns the RolePermissions attribute of this node for the current user.
type X509IdentityAuthenticator ¶
type X509IdentityAuthenticator interface { // AuthenticateUser returns nil when user is authenticated, or BadUserAccessDenied otherwise. AuthenticateX509Identity(userIdentity ua.X509Identity, applicationURI string, endpointURL string) error }
X509IdentityAuthenticator authenticates X509Identity.
Source Files ¶
- auth_provider.go
- certificate_helpers.go
- channel_manager.go
- data_type_node.go
- datachange_monitored_item.go
- event_monitored_item.go
- history_read_writer.go
- method_node.go
- monitored_item.go
- namespace_manager.go
- node.go
- object_node.go
- object_type_node.go
- option.go
- pools.go
- reference_type_node.go
- roles_provider.go
- scheduler.go
- server.go
- server_secure_channel.go
- server_service_set.go
- session.go
- session_manager.go
- subscription.go
- subscription_manager.go
- variable_node.go
- variable_type_node.go
- view_node.go