Demo3D.TagServer Namespace |
| Class | Description | |
|---|---|---|
| ApplicationExtension |
Features provided by TagServers to extend the application.
| |
| ApplicationExtensionButton |
A button to display in the Tag Browser ribbon.
| |
| ApplicationExtensionTabControl |
A dockable tab page in the same pane as the Tag Browser.
| |
| ApplicationRegistryEntry |
Application registry service.
| |
| ApplicationServices |
Services provided by the application.
| |
| Binding |
A binding between a tag server ServerItem and a set of model BindableItems (eg custom properties).
| |
| Connections |
Central point gathering together all server and bindings used by a document.
| |
| ExportBindableItem |
Class for encapsulating information passed to OnExportBindableItem visual event.
| |
| Expression |
Base class for a bound expression.
| |
| MatchServer |
A class for describing a server when attempting to find a matching IServerFactory.
| |
| PropertyNames |
Property names for properties in PropertyId.
| |
| PulseWriter |
An optimised pulse writer.
| |
| PulseWriterPulseItem |
Represents the pulse item that's being pulsed.
| |
| PulseWriterPulseValue |
Represents the value of one pulse.
| |
| ServerBase |
Base class for all tag servers.
| |
| ServerConfiguration |
A class for storing server configurations.
| |
| ServerExtensions |
IServer extensions.
| |
| ServerFactoryBase |
Base class for implementing IServerFactory.
| |
| ServerItem |
ServerItem is a cache of properties for a Tag Server Data Item on a specific server.
| |
| ServerItemName |
Class containing the salient details of a ServerItem.
| |
| ServerTypeNameAttribute |
An attribute of IServer to define the server type name of a server.
| |
| SetValuesFromModel |
A class for batching updates from the model.
| |
| SetValuesFromServer |
A class for batching updates from the server.
| |
| TagExporterConfiguration |
Configures a tag server export.
| |
| TagExpression |
Container for a tag expression: the string typed in by the user, and our parsed interpretation of it.
| |
| TagImporterConfiguration |
Configures a tag server import.
| |
| TagImporterRecord |
Describes the record in the import file that prompts a tag server configuration to be loaded.
| |
| TypeServerFactory |
A server factory for creating servers of a given .Net type.
|
| Structure | Description | |
|---|---|---|
| ServerItemUpdate |
A value update to be applied to the server item.
|
| Interface | Description | |
|---|---|---|
| IDetectConnection |
Implemented by an IServer for supporting connection detection.
| |
| IDetectInstallation |
Implemented by an IServer for detecting whether the correct software and hardware is installed for this server.
| |
| IPulses |
An optimized interface for a server to write pulses.
| |
| IServer |
Defines a tag server.
| |
| IServerFactory |
A factory for creating Tag Servers.
| |
| IServerGui |
An IServer can implement this interface to control it presentation in the Tag Browser and Tag Grid.
|
| Delegate | Description | |
|---|---|---|
| ConnectionsBindEventHandler |
A delegate to handle binding events.
| |
| ConnectionsConnectEventHandler |
A delegate to handle connections events.
| |
| ConnectionsServerEventHandler |
Delegate to handle server events.
| |
| ServerConfigurationConfigurationChangedHandler |
A delegate for indicating that a configuration has changed.
|
| Enumeration | Description | |
|---|---|---|
| ConnectedState |
Connection state.
| |
| ConnectionsUpdateType | ||
| PropertyId |
Standard and recommended property ids.
| |
| PulseWriterPulseType |
The type of pulse data.
| |
| TagExpressionType |
The type of a tag expression.
|
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.