ChimeraTK-ApplicationCore  04.01.00
ChimeraTK Namespace Reference

InvalidityTracer application module. More...

Namespaces

 Model
 
 Utilities
 

Classes

class  Accessor
 
class  AccessorTypeTag
 
class  AggregatableMessage
 Specialised ScalarOutput for sending event messages which can be aggregated by the EventMessageAggregator. More...
 
class  AnyType
 Pseudo type to identify nodes which can have arbitrary types. More...
 
class  Application
 
class  ApplicationModule
 
struct  Array
 
class  ArrayAccessor
 Accessor for array variables (i.e. More...
 
struct  ArrayFunctorFill
 Functor to fill variableMap for arrays. More...
 
struct  ArrayOutput
 Convenience class for output array accessors (always UpdateMode::push) More...
 
struct  ArrayOutputPushRB
 Convenience class for output array accessors with return channel ("read back") (always UpdateMode::push) More...
 
struct  ArrayOutputRB
 Deprecated, do not use. More...
 
struct  ArrayPipe
 Generic module to pipe through a scalar value without altering it. More...
 
struct  ArrayPollInput
 Convenience class for input array accessors with UpdateMode::poll. More...
 
struct  ArrayPushInput
 Convenience class for input array accessors with UpdateMode::push. More...
 
struct  ArrayPushInputWB
 Convenience class for input array accessors with return channel ("write back") and UpdateMode::push. More...
 
class  ConfigParser
 
struct  ConfigReader
 Generic module to read an XML config file and provide the defined values as constant variables. More...
 
class  ConnectionMaker
 
class  ConstantAccessor
 Implementation of the NDRegisterAccessor which delivers always the same value and ignors any write operations. More...
 
struct  ConstMultiplier
 
class  ConsumingFanOut
 FanOut implementation which acts as a read-only (i.e. More...
 
struct  DataLossCounter
 Module which gathers statistics on data loss inside the application. More...
 
class  DebugPrintAccessorDecorator
 Decorator of the NDRegisterAccessor which facilitates tests of the application. More...
 
class  DeviceManager
 Implements access to a ChimeraTK::Device. More...
 
class  DeviceModule
 
struct  Divider
 
class  EntityOwner
 Base class for owners of other EntityOwners (e.g. More...
 
class  EventMessageAggregator
 Module to aggregate messages from AggregatableMessage outputs. More...
 
struct  ExactMonitor
 Module for status monitoring of an exact value. More...
 
class  ExceptionHandlingDecorator
 Decorator of the NDRegisterAccessor which facilitates tests of the application. More...
 
class  FanOut
 Base class for several implementations which distribute values from one feeder to multiple consumers. More...
 
class  FanOutBase
 Type independent base. More...
 
class  FeedingFanOut
 NDRegisterAccessor implementation which distributes values written to this accessor out to any number of slaves. More...
 
struct  FixedLimitValue
 
struct  FunctorFill
 Functor to fill variableMap. More...
 
struct  FunctorGetTypeForName
 
struct  FunctorSetValues
 Functor to set values to the scalar accessors. More...
 
struct  FunctorSetValuesArray
 Functor to set values to the array accessors. More...
 
class  InternalModule
 Base class for internal modules which are created by the variable connection code (e.g. More...
 
struct  InvalidityTracer
 
class  InversionOfControlAccessor
 Adds features required for inversion of control to an accessor. More...
 
struct  LimitValue
 
struct  LimitValueModuleBase
 
class  Logger
 
struct  MaxMonitor
 Module for status monitoring depending on a maximum threshold value. More...
 
class  MetaDataPropagatingRegisterDecorator
 NDRegisterAccessorDecorator which propagates meta data attached to input process variables through the owning ApplicationModule. More...
 
class  MetaDataPropagationFlagProvider
 A mix-in helper class so you can set the flags without knowing the user data type. More...
 
struct  MinMonitor
 Module for status monitoring depending on a minimum threshold value. More...
 
class  Module
 Base class for ApplicationModule and DeviceModule, to have a common interface for these module types. More...
 
class  ModuleGroup
 
class  ModuleTree
 
struct  MonitorBase
 
struct  Multiplier
 
class  NetworkVisitor
 
struct  PeriodicTrigger
 Simple periodic trigger that fires a variable once per second. More...
 
class  PushableStream
 A helper class to replace the output stream temporarily. More...
 
struct  PyApplicationCoreUnload
 
class  PyApplicationModule
 
class  PyArrayAccessor
 Helper class acting as a ArrayAccessor with a variant UserType. More...
 
class  PyConfigReader
 
class  PyDataConsistencyGroup
 
class  PyLogger
 
class  PyLoggerStreamProxy
 PyLoggerStreamProxy. More...
 
class  PyModuleGroup
 
class  PyOwnedObject
 Base class used for all objects in the Python world which can be owned by another object. More...
 
class  PyOwningObject
 Base class used for all objects in the Python world which can own other objects and can be owned themselves by one other object. More...
 
class  PyReadAnyGroup
 
class  PyScalarAccessor
 
class  PythonApplicationModuleTrampoline
 
class  PythonModuleManager
 This class loads and unloads the Python modules as specified in the ConfigReader XML file, and creates the Python interpreter instance if necessary. More...
 
class  PyTransferElement
 
class  PyTransferElementBase
 
class  PyVariableGroup
 
struct  RangeMonitor
 Module for status monitoring depending on range of threshold values. More...
 
struct  ReadSplitArrayModule
 Split an array of the data type TYPE into nGroups with each nElemsPerGroup elements. More...
 
struct  RecoveryHelper
 A Helper struct to store an accessor and a version number. More...
 
class  ScalarAccessor
 Accessor for scalar variables (i.e. More...
 
struct  ScalarOutput
 Convenience class for output scalar accessors (always UpdateMode::push) More...
 
struct  ScalarOutputPushRB
 Convenience class for output scalar accessors with return channel ("read back") (always UpdateMode::push) More...
 
struct  ScalarPipe
 Generic module to pipe through a scalar value without altering it. More...
 
struct  ScalarPollInput
 Convenience class for input scalar accessors with UpdateMode::poll. More...
 
struct  ScalarPushInput
 Convenience class for input scalar accessors with UpdateMode::push. More...
 
struct  ScalarPushInputWB
 Convenience class for input scalar accessors with return channel ("write back") and UpdateMode::push. More...
 
struct  ScriptedInitHandler
 Initialisation handler which calls an external application (usually a script), captures its output (both stdout and stderr) and publishes it in a control system variable. More...
 
class  SetDMapFilePath
 Helper class to set the DMAP file path. More...
 
struct  StatusAccessor
 Special StatusAccessor - used to avoid code duplication in StatusOutput, StatusPushInput and StatusPollInput. More...
 
struct  StatusAggregator
 The StatusAggregator collects results of multiple StatusMonitor instances and aggregates them into a single status, which can take the same values as the result of the individual monitors. More...
 
struct  StatusOutput
 Special ScalarOutput which represents a status which can be aggregated by the StatusAggregator. More...
 
struct  StatusPollInput
 Special StatusPollInput which reads from a StatusOutput and also handles the type conversion. More...
 
struct  StatusPushInput
 Special StatusPushInput which reads from a StatusOutput and also handles the type conversion. More...
 
struct  StatusWithMessage
 A VariableGroup for error status and message reporting. More...
 
struct  StatusWithMessageInput
 This is for consistent readout of StatusWithMessage - ApplicationCore version. More...
 
class  TestFacility
 Helper class to facilitate tests of applications based on ApplicationCore. More...
 
class  ThreadedFanOut
 FanOut implementation with an internal thread which waits for new data which is read from the given feeding implementation and distributed to any number of slaves. More...
 
class  ThreadedFanOutWithReturn
 Same as ThreadedFanOut but with return channel. More...
 
class  TriggerFanOut
 InternalModule which waits for a trigger, then reads a number of variables and distributes each of them to any number of slaves. More...
 
struct  UserInputValidator
 Class to realise the validation of user input values. More...
 
struct  Variable
 
struct  VariableDirection
 Struct to define the direction of variables. More...
 
class  VariableGroup
 
class  VariableNetworkNode
 Class describing a node of a variable network. More...
 
struct  VariableNetworkNode_data
 We use a pimpl pattern so copied instances of VariableNetworkNode refer to the same instance of the data structure and thus stay consistent all the time. More...
 
class  VariableNetworkNodeDumpingVisitor
 The VariableNetworkNodeDumpingVisitor class. More...
 
class  VersionInfoProvider
 This module can be added to applications to provide version information from the CMakeLists.txt file in a standardized manner. More...
 
class  Visitor
 
class  Visitor< T >
 
class  Visitor< T, Types... >
 
class  VoidAccessor
 Accessor for void variables (i.e. More...
 
struct  VoidInput
 Convenience class for input accessors. More...
 
struct  VoidOutput
 Convenience class for output void (always UpdateMode::push) More...
 
struct  WriteSplitArrayModule
 Split an array of the data type TYPE into nGroups with each nElemsPerGroup elements. More...
 
class  XMLGenerator
 Generate XML representation of variables. More...
 

Typedefs

using TAGS = const std::unordered_set< std::string >
 Convenience type definition which can optionally be used as a shortcut for the type which defines a list of tags. More...
 
template<typename UserType >
using ConsumerImplementationPairs = std::list< std::pair< boost::shared_ptr< ChimeraTK::NDRegisterAccessor< UserType > >, VariableNetworkNode > >
 
using VariableList = std::vector< Variable >
 
using ArrayList = std::vector< Array >
 

Enumerations

enum  UpdateMode { UpdateMode::poll, UpdateMode::push, UpdateMode::invalid }
 Enum to define the update mode of variables. More...
 
enum  NodeType {
  NodeType::Device, NodeType::ControlSystem, NodeType::Application, NodeType::TriggerReceiver,
  NodeType::TriggerProvider, NodeType::Constant, NodeType::invalid
}
 Enum to define types of VariableNetworkNode. More...
 
enum  LifeCycleState { LifeCycleState::initialisation, LifeCycleState::run, LifeCycleState::shutdown }
 Enum to define the life-cycle states of an Application. More...
 

Functions

 DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (DebugPrintAccessorDecorator)
 
std::string negateTag (const std::string &tag)
 negate tag using prefix '!' More...
 
 DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (ExceptionHandlingDecorator)
 
Logger::StreamProxy logger (Logger::Severity severity, std::string context)
 Convenience function to obtain the logger stream. More...
 
 DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (MetaDataPropagatingRegisterDecorator)
 
 PYBIND11_MODULE (PyApplicationCore, m)
 
 INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (DebugPrintAccessorDecorator)
 
 INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES (ExceptionHandlingDecorator)
 

Variables

constexpr auto explicitDataValidityTag = "_ChimeraTK_NodeHasExplicitDataValidity"
 Special tag to designate that a not should not automatically take over DataValidity of its owning module. More...
 

Detailed Description

InvalidityTracer application module.

General notes:

Generic modules for status monitoring.

This module can be instantiated in any application for the purpose of debugging unexpected stats of DataValidity::faulty.

Provide an aggregateable StatusOutputs which can have one of the four states: OFF, OK, WARNING, FAULT.

Multiple StatusOutputs can be aggregated using the StatusAggregator. StatusOutputs are typically provided by StatusMonitors, but also custom ApplicationModules can provide them.

For convenience, also StatusPushInputs and StatusPollInput are provided for use in custom ApplicationModules.

Each module monitors an input variable and depending upon the conditions reports four different states.

Typedef Documentation

◆ ArrayList

using ChimeraTK::ArrayList = typedef std::vector<Array>

Definition at line 39 of file ConfigReader.cc.

◆ ConsumerImplementationPairs

template<typename UserType >
using ChimeraTK::ConsumerImplementationPairs = typedef std::list<std::pair<boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType> >, VariableNetworkNode> >

Definition at line 18 of file FanOut.h.

◆ TAGS

using ChimeraTK::TAGS = typedef const std::unordered_set<std::string>

Convenience type definition which can optionally be used as a shortcut for the type which defines a list of tags.

Definition at line 27 of file EntityOwner.h.

◆ VariableList

using ChimeraTK::VariableList = typedef std::vector<Variable>

Definition at line 38 of file ConfigReader.cc.

Enumeration Type Documentation

◆ LifeCycleState

Enum to define the life-cycle states of an Application.

Enumerator
initialisation 

Initialisation phase including ApplicationModule::prepare().

Single threaded operation. All devices are closed.

run 

Actual run phase with full multi threading.

The state is entered right before the threads are launched, so there is no guarantee that the application threads have already reached a certain point. Devices will be opened after this point.

shutdown 

The application is in the process of shutting down.

Definition at line 41 of file Flags.h.

◆ NodeType

enum ChimeraTK::NodeType
strong

Enum to define types of VariableNetworkNode.

Enumerator
Device 
ControlSystem 
Application 
TriggerReceiver 
TriggerProvider 
Constant 
invalid 

Definition at line 36 of file Flags.h.

◆ UpdateMode

enum ChimeraTK::UpdateMode
strong

Enum to define the update mode of variables.

Enumerator
poll 
push 
invalid 

Definition at line 31 of file Flags.h.

Function Documentation

◆ DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES() [1/3]

ChimeraTK::DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES ( DebugPrintAccessorDecorator  )

◆ DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES() [2/3]

ChimeraTK::DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES ( ExceptionHandlingDecorator  )

◆ DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES() [3/3]

ChimeraTK::DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES ( MetaDataPropagatingRegisterDecorator  )

◆ INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES() [1/2]

ChimeraTK::INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES ( DebugPrintAccessorDecorator  )

◆ INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES() [2/2]

ChimeraTK::INSTANTIATE_TEMPLATE_FOR_CHIMERATK_USER_TYPES ( ExceptionHandlingDecorator  )

◆ logger()

Logger::StreamProxy ChimeraTK::logger ( Logger::Severity  severity,
std::string  context 
)
inline

Convenience function to obtain the logger stream.

Definition at line 124 of file Logger.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ negateTag()

std::string ChimeraTK::negateTag ( const std::string &  tag)

negate tag using prefix '!'

Definition at line 147 of file EntityOwner.cc.

+ Here is the caller graph for this function:

◆ PYBIND11_MODULE()

ChimeraTK::PYBIND11_MODULE ( PyApplicationCore  ,
 
)

logic_error exception

DataType (with internal enum)

DataValidity

VersionNumber

TransferElementID

Define base classes so we can specify them in the derived class definitions, otherwise pybind11 seems to complain about not mentioning all base classes

PyTransferElementBase - a common base class for PyScalarAccessor and PyArrayAccessor

ReadAnyGroup

DataConsistencyGroup and DataConsistencyGroup::MatchingMode

Logger

Scalar accessors

Array accessors

VariableGroup

ApplicationModule

PyModuleGroup

ConfigReader

Definition at line 73 of file PythonBindings.cc.

Variable Documentation

◆ explicitDataValidityTag

constexpr auto ChimeraTK::explicitDataValidityTag = "_ChimeraTK_NodeHasExplicitDataValidity"
constexpr

Special tag to designate that a not should not automatically take over DataValidity of its owning module.

Use e.g. for a StatusOutput which should indicate errors.

Definition at line 184 of file VariableNetworkNode.h.