Package eu.ess.bled

Class Subsystem

java.lang.Object
eu.ess.bled.Subsystem
All Implemented Interfaces:
BLEDEntity, Serializable
Direct Known Subclasses:
BeamlineElement, LatticeCommand, PowerSupply

public class Subsystem extends Object implements BLEDEntity

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 Details

    • Subsystem

      public Subsystem()
  • Method Details

    • getId

      public Integer getId()
    • getName

      public String getName()
    • setName

      public void setName(String name)
    • getParentSubsystem

      public Subsystem getParentSubsystem()
    • setParentSubsystem

      public void setParentSubsystem(Subsystem parentSubsystem)
    • getPreviousSubsystem

      public Integer getPreviousSubsystem()
    • setPreviousSubsystem

      public void setPreviousSubsystem(Integer previousSubsystem)
    • getSubsystemType

      public SubsystemType getSubsystemType()
    • setSubsystemType

      public void setSubsystemType(SubsystemType subsystemType)
    • getDescription

      public String getDescription()
    • setDescription

      public void setDescription(String description)
    • isActive

      public Boolean isActive()
    • setActive

      public void setActive(Boolean active)
    • getInstanceName

      public String getInstanceName()
    • setInstanceName

      public void setInstanceName(String instanceName)
    • isVirtual

      public Boolean isVirtual()
    • setVirtual

      public void setVirtual(Boolean virtual)
    • getValuesAsString

      protected StringBuilder getValuesAsString()
    • toString

      public String toString()
      Overrides:
      toString in class Object