Tango Device Server Model¶
Target¶
This document is directed to advanced developer.
Primary Presentation¶
Figure 1: Tango Device Server Model
Figure 2: Runtime representation of a Device server
Elements¶
Block | Description |
---|---|
Device | Abstract concept defined by the TANGO device server object model; it can be a piece of hardware (an interlock bit) a collection of hardware (a screen attached to a stepper motor) a logical device (a taper) or a combination of all these (an accelerator). |
TANGO Class | From Object Oriented Programming concept, this is the main class that the developer has to implement |
DeviceServer | The server (also referred as device server) is a process whose main task is to offer one or more services to one or more clients. To do this, the server has to spend most of its time in a wait loop waiting for clients to connect to it. The devices are hosted in the server process. A server is able to host several classes of devices. In short, it is a process that export devices available to accept requests). Please refer also to the Glossary, Device Server instance. |
Property | Store a generic configuration |
DeviceProperty | Device specific configuration |
ClassProperty | Class specific configuration |
AttributeProperty | Attribute specific configuration |
ClassAttributeProperty | Attribute specific configuration at class level |
DeviceAttributeProperty | Specific configuration for a specific attribute of a specific device |
FreeProperty | User-defined specific configuration (for instance GUI, generic system and so on) |
PropertyHistory | History of the values for a property (maximum 10 latest are stored for each property) |
Attribute | See Glossary, Attribute. |
AttributeAlias | One word which can be used to identify a specific attribute. (shortcut) |
Pipe | See Glossary, Pipe. |
PipeProperty | Pipe specific configuration |
DevicePipeProperty | Configuration of a specific pipe of a specific device |
ClassPipeProperty | Configuration of a specific pipe for a specific class |
Event | Refer to Events. |
Command | See Glossary; A list of default command are available for the admin device at section DServer. |
ChangeEvent | It is a type of event that gets fired when the associated attribute changes its value according to its configuration specified in system specific attribute properties (abs_change and rel_change); Refer to Events. |
ArchiveEvent | It is a type of event that gets fired when the associated attribute should be archived according to its configuration specified in system specific attribute properties (archive_abs_change, archive_rel_change and archive_period); Refer to Events. |
UserEvent | It is a type of event that gets fired when the device server programmer wants to; Refer to Events. |
PeriodicEvent | It is a type of event that gets fired at a fixed periodic interval; Refer to Events. |
DataReadyEvent | It is a type of event that gets fired to inform a client that it is now possible to read an attribute; Refer to Events. |
AttributeConfigurationEvent | It is a type of event that gets fired if the attribute configuration is changed; Refer to Events. |
DeviceInterfaceChangeEvent | It is a type of event that gets fired when the device interface changes; Refer to Events. |
DeviceImpl | Base implementation of every class that will become a device. |
State | The device state is a number which reflects the availability of the device. Refer to Events |
Status | The state of the device as a formatted ascii string |
AdminDevice | Special type of Device dedicated to creating and managing the devices, i.e. restart device, kill the device server (the process), creating polling mechanism and so on |
Attributes¶
Block | Attribute | Description |
---|---|---|
Device | name | Correspond to “Domain/family/member” |
alias | A word that you can use to access the device, like a shortcut. Device name alias(es) must also be unique within a control system. There is no predefined syntax for device name alias. | |
domain | Each device has a unique name in the control system. Within Tango, a four field name space has been adopted consisting of [//FACILITY/]DOMAIN/CLASS/MEMBER Facility refers to the control system instance, domain refers to the sub-system, class the class and member the instance of the device. |
|
family | ||
member | ||
version | It correspond to the version of base device implementation class (for backward compatibility). It is used to know how to communicate with this device and what features are supported. | |
class | Name of the class corresponding to the Device | |
ior | Orb Identifier used to connect with the device | |
host | Where the device is running | |
pid | Id of the specific process | |
exported | Means that the device is available to accept request | |
DeviceServer | Facility | Represent the host where the device server instance (aka process) lives |
Attribute | alias | A shortcut that you can use to access the attribute (in the Database there is a specific table) |
Relations¶
Left Block | Right Block | Multiplicity | Description |
---|---|---|---|
Device | TANGO Class | 1 | Every device belongs to a Tango class |
Attribute | ClassAttributeProperty | 0..* | An attribute can have more than one class attribute property associated |
Attribute | Event | 0..* | An attribute can have more than one event associated |
Device | DeviceAttributeProperty | 0..* | A device can have more than one Device Attribute Property associated |
Device | DeviceProperty | 0..* | A device can have more than one Device Property associated |
Device | Attribute | 2..* | A Device can have more than one Attribute associated via reference |
DeviceServer | AdminDevice | 1 | Every device server is exporting one admin device |
DeviceServer | Device | 1..* | Every Device server has many devices inside itself |
Pipe | PipeProperty | 0..* | A pipe can have more than one Pipe Property associated |
Property | PropertyHistory | 0..10 | A Property can have more than one Property history associated (this will maintain the history of the change for the property) |
TANGO Class | Attribute | 2..* | A TANGO Class can have more than one Attribute associated |
TANGO Class | ClassProperty | 0..* | A TANGO Class can have more than one Class Property associated |
TANGO Class | Command | 2..* | A TANGO Class can have more than one Command associated |
TANGO Class | Pipe | 0..* | A TANGO Class can have more than one Pipe associated |
Rationale¶
Please refer to the Tango Device Model.