/**
\page mbs_plugin MBS plugin for DABC (libDabcMbs.so)
\ingroup dabc_plugins
\subpage mbs_plugin_doc
\subpage mbs_api_doc
\subpage mbs_util_doc
\subpage mbs_web_interface
*/
/**
\page mbs_plugin_doc Short description of MBS plugin
Plugin designed to work with GSI DAQ system [MBS](http://daq.gsi.de) and
provides following components:
+ \ref mbs::LmdFile - class for reading and writing of lmd files
+ \ref mbs::LmdOutput - output transport to store data in lmd files (like lmd://file.lmd)
+ \ref mbs::LmdInput - input transport for reading of lmd files
+ \ref mbs::ClientTransport - input client transport to connect with running MBS node
+ \ref mbs::ServerTransport - output server transport to provide data as MBS server dose
+ \ref mbs::CombinerModule - module to combine events from several MBS sources
+ \ref mbs::Monitor - module to interact with MBS over DABC web interface
*/
/**
\page mbs_api_doc MBS API documentation
[MBS plugin in DABC](\ref mbs_plugin_doc) provides C++ based API to access MBS
from user code. Two major classes are provided:
+ \ref mbs::MonitorHandle - access logging, statistic and command channels of remote MBS nodes
+ \ref mbs::ReadoutHandle - readout data from MBS servers and LMD files
Complete API available via ["mbs/api.h"](\ref plugins/mbs/mbs/api.h) include file.
### Simple MBS readout
~~~~~~~~~~~~~
#include "mbs/api.h"
int main()
{
mbs::ReadoutHandle ref = mbs::ReadoutHandle::Connect("mbs://r4-5/Stream");
if (ref.null()) return 1;
mbs::EventHeader* evnt = ref.NextEvent(1.);
if (evnt) evnt->PrintHeader();
ref.Disconnect();
return 0;
}
~~~~~~~~~~~~~
Example of usage such interface can be found in [mbsprint.cxx](\ref plugins/mbs/utils/mbsprint.cxx)
### Command sending to MBS
~~~~~~~~~~~~~
#include "mbs/api.h"
int main()
{
mbs::MonitorHandle ref = mbs::MonitorHandle::Connect("r4-5");
if (ref.null()) return 1;
ref.MbsCmd("type event");
ref.Disconnect();
return 0;
}
~~~~~~~~~~~~~
Example of usage such interface can be found in [mbscmd.cxx](\ref plugins/mbs/utils/mbscmd.cxx)
*/
/** \page mbs_util_doc MBS utilities documentation
Together with [MBS plugin in DABC](\ref mbs_plugin_doc) two command-line
utilities are provided: mbsprint and mbscmd.
### Utility mbsprint
Printout of MBS events from MBS servers or LMD files. Example:
~~~~~~~~~~~~~
shell> mbsprint mbs://r4-5/Stream -num 10 -hex
shell> mbsprint file.lmd -dec
~~~~~~~~~~~~~
### Utility mbscmd
Getting log information, statistic information, access to command channel.
~~~~~~~~~~~~~
shell> mbscmd r4-5 -cmd 'type event'
~~~~~~~~~~~~~
*/
/** \page mbs_web_interface Web interface to MBS
\ref mbs::Monitor module provides possibility to interact with MBS over DABC web interface
### XML file syntax
Example of configuration file is \ref plugins/mbs/app/web-mbs.xml
Following parameters could be specified for the module:
| Parameter | Description |
| --------: | :---------- |
| node | Name of MBS node |
| period | How often status information requested from MBS node [default 1 sec] |
| history | Size of preserved history [default 200] |
| prompter | Argument, used for starting prompter [default - empty] |
| logger | If not false, read log information when prompter is enabled [default - enabled] |
Several MBS nodes can be readout at once:
~~~~~~~~~~~~~{.xml}
~~~~~~~~~~~~~
### MBS status record (port 6008)
In most situations started automatically by MBS.
mbs::Monitor module will periodically request status record and
calculate several rate values - data rate, event rate. Several log variables
are created, which reproduce output of **rate** command of MBS.
### MBS prompter (port 6006)
MBS prompter allows to submit MBS commands remotely and only remotely.
To start prompter on mbs, one should do:
~~~~~~~~~~~~~
rio4> rpm -r ARG
~~~~~~~~~~~~~
Value of argument after -r (here ARG) should be specified as value of **prompter**
configuration parameter in xml file. In that case module will publish **CmdMbs** command,
which can be used from web interface to submit commands like
"start acq", "stop acq", "@startup", "show rate" and others to MBS process.
### MBS logger (port 6007)
When logger is enabled by MBS, one can connect to it and get log information.
At the moment logger is available in the MBS only together with the prompter.
If enabled, module will readout log information and put into log record.
*/