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 Subsystem
s, or may also not be a part of any group of
Subsystem
s. 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 Subsystem
s 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, Subsystem
s 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 Subsystem
s, 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 Subsystem
s are in use, while the inactive ones are the
Subsystem
s that have been disabled in the machine. Obsolete
Subsystem
s 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 StringBuilder
isActive()
void
void
setDescription
(String description) void
setInstanceName
(String instanceName) void
void
setParentSubsystem
(Subsystem parentSubsystem) void
setPreviousSubsystem
(Integer previousSubsystem) void
setSubsystemType
(SubsystemType subsystemType) void
setVirtual
(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
-