Package org.lsst.ccs


package org.lsst.ccs
This package deals with core classes for subsystems.

The Subsystem class is the parent class for subsystems that operate on the buses:

  • NodeModularSubsystem: this class is used for Modular ("worker") subsystems
  • BusMaster: for "active" subsystems that invoke commands to be executed by other subsystems.
Subsystem's code uses codes defined in:
  • the "buses" sub-project (in package org.lsst.ccs.bus (defines data to be used for exchange between subsystems)
  • in the "command" sub-project (the structure of the data exchanged when dealing with commands)
  • in "messaging-layer" definition (how to exchange data)
  • in "utilities"

Subsystem has an inner class to define its state: org.lsst.ccs.Subsystem.State. This class combines different enums to define the state of the subsystem

  • The Phase : describe the current phase of subsystem life (such as initialization, operational, closing,..)
  • The Mode : expresses the context in which and action may take place (such as normal or engineering)
  • The CommandState : (such as ready to accept any command or off)
  • the AlertState : (such as warning, alarm or none).

A subsystem provides also a CurrentCommandContext object that can be queried by codes running in the context of this subsystem and want to be aware of the context in which they are invoked.

The execution of command should be aware of instances of InvocationListener that may veto the execution of a command.

Other classes deal with standard Exceptions.

Author:
bamade