Click or drag to resize

Demo3D.TagServer Namespace

The Demo3D.TagServer namespace supports the high level Tag Server.
Classes
  ClassDescription
Public classApplicationExtension
Features provided by TagServers to extend the application.
Public classApplicationExtensionButton
A button to display in the Tag Browser ribbon.
Public classApplicationExtensionTabControl
A dockable tab page in the same pane as the Tag Browser.
Public classApplicationRegistryEntry
Application registry service.
Public classApplicationServices
Services provided by the application.
Public classBinding
A binding between a tag server ServerItem and a set of model BindableItems (eg custom properties).
Public classConnections
Central point gathering together all server and bindings used by a document.
Public classExportBindableItem
Class for encapsulating information passed to OnExportBindableItem visual event.
Public classExpression
Base class for a bound expression.
Public classMatchServer
A class for describing a server when attempting to find a matching IServerFactory.
Public classPropertyNames
Property names for properties in PropertyId.
Public classPulseWriter
An optimised pulse writer.
Public classPulseWriterPulseItem
Represents the pulse item that's being pulsed.
Public classPulseWriterPulseValue
Represents the value of one pulse.
Public classServerBase
Base class for all tag servers.
Public classServerConfiguration
A class for storing server configurations.
Public classServerExtensions
IServer extensions.
Public classServerFactoryBase
Base class for implementing IServerFactory.
Public classServerItem
ServerItem is a cache of properties for a Tag Server Data Item on a specific server.
Public classServerItemName
Class containing the salient details of a ServerItem.
Public classServerTypeNameAttribute
An attribute of IServer to define the server type name of a server.
Public classSetValuesFromModel
A class for batching updates from the model.
Public classSetValuesFromServer
A class for batching updates from the server.
Public classTagExporterConfiguration
Configures a tag server export.
Public classTagExpression
Container for a tag expression: the string typed in by the user, and our parsed interpretation of it.
Public classTagImporterConfiguration
Configures a tag server import.
Public classTagImporterRecord
Describes the record in the import file that prompts a tag server configuration to be loaded.
Public classTypeServerFactory
A server factory for creating servers of a given .Net type.
Structures
  StructureDescription
Public structureServerItemUpdate
A value update to be applied to the server item.
Interfaces
  InterfaceDescription
Public interfaceIDetectConnection
Implemented by an IServer for supporting connection detection.
Public interfaceIDetectInstallation
Implemented by an IServer for detecting whether the correct software and hardware is installed for this server.
Public interfaceIPulses
An optimized interface for a server to write pulses.
Public interfaceIServer
Defines a tag server.
Public interfaceIServerFactory
A factory for creating Tag Servers.
Public interfaceIServerGui
An IServer can implement this interface to control it presentation in the Tag Browser and Tag Grid.
Delegates
Enumerations
Remarks

See BuiltInTestServer for an example of a Tag Server implemented using the IServer interface. See BuiltinTagProtocol and BuiltinMemoryProtocol for equivalent examples using NetServer.

Servers based on IServer are implemented at a higher level and can have a number of advantages. The data code path is shorter. They can control the Tag Grid (using IServerGui), and optionally implement IDetectConnection or IDetectInstallation. An IServer can use an IServerFactory to control server creation and extend it with ApplicationExtension to add themselves into the Add Server Wizard.

The IServer API is well suited to servers that expose a Tag interface where the server notifies us of tag data changes. OPC and PVI are perfect examples.

NetServer has other advantages. It's better suited to Tag servers that don't notify about data changes, and for Memory servers. NetServer automatically provides caches and polling services. Servers are automatically accessible through the Emulate3D Router. Server IO is accessible directly through C# scripting.