Introduction
The ROSCore package is the heart of a ROS/RCD implementation. It
includes the IOManager class that some people like to use as the name
of the whole application.
Changes since tdaq-01-08-00
Changes to the structure of the package
- New classes FragmentRequest and
FragmentBuilder have been added.
- The UserActionScheduler, SequentialInputHandler and associated
classes have been moved here from ROSModules
- The ReadoutModule base class has been moved here from
ROSModules
Functional changes in IOManager
- A new interrupt handler, the RobinInterruptHandler is now
instantiated and has its state transition methods called by
IOManager.
- The transition to using proper IS objects has been completed
and the getInfo() method is no longer called for any plugin.
- Up to 3 different DataOuts are now instantiated.
A new class FragmentRequest has ben provided which handles all
the types of data request formerly handled by subclasses of
DataRequest in the ROSIO package. It takes arguments to specify
whether or not the requested event fragment should be passed to the
monitoring system, whether the data should be cleared after the
request etc. The DataRequest class is still available but users are
encourgaed to base any new Requests that involve gathering data on
the FragmentRequest class (assuming it is not sufficient as it is).
Instead of the buildFragment()
method that was
implemented by each subclass of DataRequest the FragmentRequest
calls a simple interface class BuildFragment (also in this package)
which is subclassed according to the type of Fragment being
retrieved from the ReadoutModules (it always builds a
FullEventFragment).
There are now 3 instead of 2 types of DataOut, MAIN, SAMPLED
and DEBUGGING. Pointers to each are obtained via the static methods
main(),sampled() and debug(). The getSampled() and releaseSampled()
methods have been dropped, any mutex protection required should be
implemented internally within the DataOut implementations.