Class Subsystem
- All Implemented Interfaces:
BLEDEntity,Serializable
- Direct Known Subclasses:
BeamlineElement,LatticeCommand,PowerSupply
Subsystem is the base element for all elements in the control
system, which has a particular CS name attached to it.
All subsystems are organized in a hierarchical way, which means that each subsystem has a parent (only one), however more elements can have the same parent. Parent Subsystem is the element which is directly above this element or this element is a part of.
e.g. If this element represents a subsystem in the machine, than
its parent is the system Subsystem; if this
Subsystem is a device, its parent Subsystem is a
subsystem.
If the Subsystem has no parent it means that it is either the top
element in the machine or is a standalone part of the machine unrelated to
the accelerator lattice.
Additionally, each Subsystem has a predecessor or so called
previousSubsystem, which is also of a Subsystem type.
The predecessor defines the element that is physically located in the machine
before this Subsystem. This property is used to define the lattice of
the accelerator or just to functionally order the elements. If an element
does not have a previousSubsystem, that element is the first in
some group of Subsystems, or may also not be a part of any group of
Subsystems. If a Subsystem is also not a
previousSubsystem to any other Subsystem the element is
the last element in some group, or does not belong to any group if other
requirements are also met.
Each Subsystem also has a SubsystemType which further
describes it. The type defines the group of Subsystems that this
Subsystem belongs to, such as for instance vacuum or pump. The
SubsystemType defines also a part of the naming convention compliant
name of this Subsystem. The ProcessVariable name that is
associated with this Subsystem is composed of the hierarchical
composition of the naming convention compliant name of the type and the
instance name of this Subsystem.
Physical location of the Subsystem is defined by the Room that this
Subsystem is located in.
Furthermore, Subsystems can also be used to group devices or other
subsystem into a logical component, which has a meaning in real situation,
but in terms of control system hierarchy it does not represents any of the
levels. Such Subsystem is marked as being virtual (
isVirtual()). Virtual Subsystem can be used as any other
Subsystem, however one should be aware that this is an abstract
feature. All children of a virtual Subsystem are in the control
system actually children of the first non virtual parent in the hierarchy.
Virtual Subsystems, which are on different hierarchy levels may still
be flattened into the same level in the control system hierarchy.
Each Subsystem can also be active or inactive (isActive()).
Active Subsystems are in use, while the inactive ones are the
Subsystems that have been disabled in the machine. Obsolete
Subsystems may also be marked as inactive if one doesn't wish to
remove them from the system completely.
Subsystem can have a link to a ComponentInstance, which
describes the actual physical component in the system, such as a physical
device installed in the accelerator.
- Author:
- Jaka Bobnar
- See Also:
-
details on the name composition see ESS Naming Convention document.- Serialized Form
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetId()getName()protected StringBuilderisActive()voidvoidsetDescription(String description) voidsetInstanceName(String instanceName) voidvoidsetParentSubsystem(Subsystem parentSubsystem) voidsetPreviousSubsystem(Integer previousSubsystem) voidsetSubsystemType(SubsystemType subsystemType) voidsetVirtual(Boolean virtual) toString()
-
Constructor Details
-
Subsystem
public Subsystem()
-
-
Method Details
-
getId
-
getName
-
setName
-
getParentSubsystem
-
setParentSubsystem
-
getPreviousSubsystem
-
setPreviousSubsystem
-
getSubsystemType
-
setSubsystemType
-
getDescription
-
setDescription
-
isActive
-
setActive
-
getInstanceName
-
setInstanceName
-
isVirtual
-
setVirtual
-
getValuesAsString
-
toString
-