Control unit client base class.
More...
#include <JDAQClient.hh>
|
| JDAQClient (const std::string &name, const std::string &server, JLogger *logger, const int level) |
| Constructor. More...
|
|
| JDAQClient (const std::string &name, JLogger *logger, const int level) |
| Constructor. More...
|
|
| JDAQClient (const std::string &name) |
| Constructor. More...
|
|
virtual bool | enter (const JArgs &args) |
| Enter the state machine. More...
|
|
virtual bool | enter () |
| Enter the state machine. More...
|
|
virtual bool | exit () |
| Exit the state machine. More...
|
|
bool | isRunning () const |
| Check if this client is in runnig state. More...
|
|
void | replaceEvent (const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event) |
| Replace tag of given event in event table. More...
|
|
JDAQEvent_t * | findEvent (const JTag &tag, const std::string &event_name) |
| Find event in event table. More...
|
|
void | addSubscription (const JSubscription &subscription) |
| Add custom subscription. More...
|
|
template<class T > |
void | addParameter (const char option, T ¶meter) |
| Add parameter to parser used in method enter(). More...
|
|
template<class T > |
void | addParameter (const char option, T ¶meter, const T &value) |
| Add parameter to parser used in method enter(). More...
|
|
void | setSelect () |
| Set the file descriptor mask for the select call. More...
|
|
virtual void | setSelect (JFileDescriptorMask &mask) const |
| Set the file descriptor mask for the select call. More...
|
|
virtual void | actionSelect (const JFileDescriptorMask &mask) |
| Action method following last select call. More...
|
|
virtual void | actionRunning () |
| This method is repeatedly called when this client machine is in state Running and the clock interval time is non-zero. More...
|
|
virtual void | actionInput (int length, const char *buffer) |
| This method is called at ev_input . More...
|
|
virtual bool | filter (const JTag &tag, int length, const char *buffer) |
| Filter message. More...
|
|
virtual void | actionTagged (const JTag &tag, int length, const char *buffer) |
| This method is called when a custom tag is encountered. More...
|
|
void | run () |
| Run as run control client following command messages via JNET::JControlHost. More...
|
|
void | run (const int port) |
| Run for ever. More...
|
|
void | run (std::istream &in) |
| Run client with commands from input stream (e.g. More...
|
|
void | A1 (CHSM_ns_alias::event const &) |
|
void | A2 (CHSM_ns_alias::event const &) |
|
void | A3 (CHSM_ns_alias::event const &) |
|
void | A4 (CHSM_ns_alias::event const &) |
|
void | A5 (CHSM_ns_alias::event const &) |
|
void | A6 (CHSM_ns_alias::event const &) |
|
void | A7 (CHSM_ns_alias::event const &) |
|
void | A8 (CHSM_ns_alias::event const &) |
|
void | A9 (CHSM_ns_alias::event const &) |
|
void | A10 (CHSM_ns_alias::event const &) |
|
void | A11 (CHSM_ns_alias::event const &) |
|
void | A12 (CHSM_ns_alias::event const &) |
|
void | A13 (CHSM_ns_alias::event const &) |
|
void | A14 (CHSM_ns_alias::event const &) |
|
void | EAM4root (CHSM_ns_alias::state const &, CHSM_ns_alias::event const &) |
|
void | XAM4root (CHSM_ns_alias::state const &, CHSM_ns_alias::event const &) |
|
const std::string & | getName () const |
| Get name of state machine. More...
|
|
int | getDetectorID () const |
| Get detector identifier. More...
|
|
int | getRunNumber () const |
| Get run number. More...
|
|
virtual void | actionEnter () |
| Interface methods for actions corresponding to state transitions. More...
|
|
virtual void | actionExit () |
|
virtual void | actionInit (int, const char *) |
|
virtual void | actionConfigure (int, const char *) |
|
virtual void | actionStart (int, const char *) |
|
virtual void | actionPause (int, const char *) |
|
virtual void | actionContinue (int, const char *) |
|
virtual void | actionStop (int, const char *) |
|
virtual void | actionReset (int, const char *) |
|
virtual void | actionQuit (int, const char *) |
|
virtual void | actionError () |
|
virtual void | actionRecover (int, const char *) |
|
const std::string & | getHostname () const |
| Get hostname. More...
|
|
const std::string & | getFullName () const |
| Get full name of this run control client. More...
|
|
const JTag & | getUniqueTag () const |
| Get unique tag of this run control client. More...
|
|
long long int | getClockDelay () const |
| Get total delay time. More...
|
|
long long int | getClockInterval () const |
| Get interval time. More...
|
|
void | setClockInterval (const long long int interval_us) |
| Set interval time. More...
|
|
void | resetClock () |
| Reset clock. More...
|
|
int | getEventNumber () const |
| Get last event number. More...
|
|
void | setEventNumber (const int event_number) |
| Set last event number. More...
|
|
|
typedef void(JDAQCHSM::* | action) (int, const char *) |
| Type definition of action method. More...
|
|
|
void | update () |
| Update state machine. More...
|
|
void | update (const JTag &tag, int length, const char *buffer) |
| Update state machine. More...
|
|
void | configure () |
| Configure client. More...
|
|
std::string | getMessage (const CHSM::state &state, const CHSM::event &event) const |
| Get event message. More...
|
|
virtual void | enterState (const CHSM::state &state, const CHSM::event &event) |
| Action when entering state. More...
|
|
virtual void | actionCheck (int length, const char *buffer) |
| This method is called at ev_check and reports a system check by mimicing an enter state action. More...
|
|
void | execute (action __action, const CHSM::event &__event) |
| The method to execute the action. More...
|
|
const CHSM::state * | getState () const |
| Get current state. More...
|
|
Control unit client base class.
This base class implements the protocol for the communication with the control unit.
This protocol is based on ControlHost tags and CHSM event names.
Normally, the primary input is provided to the constructor of this base class, e.g. via command line options of the application based on a derived class hereof.
By calling the default method JDAQClient::enter,
- the internal parameters will be configured; and
- the client's state machine entered.
The method JDAQClient::run can be then used to process command messages.
The client's state machine will accordingly be updated.
For each state transition, a corresponding action method is called which could be re-implemented in the derived class (see JDAQCHSM).
Optionally, a designated action method is repeatedly called in state Running
.
The default list of tags includes "RC_CMD" and a client specific tag.
The latter is composed of the hexadecimally formatted IP sub-address of the client's host CPU (see JSYSTEM::getSubaddress(const int)) and the client's name extension (part following KM3NETDAQ::CLIENTNAME_DELIMETER), if any.
The list of tags is maintained in include file JDAQTags.hh.
For client specific events requiring a different tag, the corresponding entry in the event table should be replaced.
This should be done in the constructor of the derived class using method JDAQClient::replaceEvent.
The virtual method JDAQClient::filter can be re-implemented so that a specific action is made before the corresponding message is processed.
The message is ignored if this method returns true, else it is normally processed.
The method JDAQClient::setSelect can be used to set the file descriptor mask of the general select call.
In conjunction, the method JDAQClient::actionSelect can be used to take client specific actions following the select call.
If the clock interval is non-zero, the method JDAQClient::actionRunning is repeatedly called according the specified interval time when the client is in state Running
.
The clock interval can be set using method JDAQClient::setClockInterval.
Some input can be redefined during operation.
For example the debug level can be set via the following command message.
JPutMessage -H <host name> -t <tag> -m "debug=\<level\>;"
where
host name
is the name of the host of the command message server;
tag
the tag; and
level
the new debug level.
In this, the tag "RC_CMD" applies to all applications and the client specific tag to the one-and-only application.
Additional custom tags can be added to the general list using method JDAQClient::addSubscription.
The method JDAQClient::actionTagged is then called when a command message is received with the specified tag.
For tests and possible other setups, the base class can be configured to run stand-alone or forever.
In stand-alone mode, the client can be steered from an regular input stream.
When the client runs forever, it waits for a connection before going to the normal mode of operation.
The primary input should then be sent via this connection.
The method JDAQClient::addParameter can be used to add parameters of the derived class to the list that is parsed in method JDAQClient::enter.
Definition at line 272 of file JDAQClient.hh.
◆ action
typedef void(JDAQCHSM::* JDAQCHSM::action) (int, const char *) |
|
protectedinherited |
Type definition of action method.
Definition at line 152 of file JDAQCHSM.hh.
◆ JDAQClient() [1/3]
KM3NETDAQ::JDAQClient::JDAQClient |
( |
const std::string & |
name, |
|
|
const std::string & |
server, |
|
|
JLogger * |
logger, |
|
|
const int |
level |
|
) |
| |
|
inline |
Constructor.
This constructor should be used in normal mode.
The following methods methods should subsequently be called.
- Parameters
-
name | name of client |
server | name of command message server |
logger | pointer to logger |
level | debug level |
Definition at line 290 of file JDAQClient.hh.
302 catch(JControlHostException& error) {
311 JErrorStream(this->logger) <<
"Process with nick name \"" <<
getFullName() <<
"\" already running on host(s) " << buffer;
◆ JDAQClient() [2/3]
KM3NETDAQ::JDAQClient::JDAQClient |
( |
const std::string & |
name, |
|
|
JLogger * |
logger, |
|
|
const int |
level |
|
) |
| |
|
inline |
Constructor.
This constructor should be used when running stand-alone.
The following methods methods should subsequently be called.
- Parameters
-
name | name of client |
logger | pointer to logger |
level | debug level |
Definition at line 328 of file JDAQClient.hh.
◆ JDAQClient() [3/3]
KM3NETDAQ::JDAQClient::JDAQClient |
( |
const std::string & |
name | ) |
|
|
inline |
Constructor.
This constructor should be used when running forever.
The following method should subsequently be called.
- Parameters
-
Definition at line 347 of file JDAQClient.hh.
◆ enter() [1/2]
virtual bool KM3NETDAQ::JDAQClient::enter |
( |
const JArgs & |
args | ) |
|
|
inlinevirtual |
Enter the state machine.
This overloaded method enter reproduces the constructor. All necessary input is parsed from the list of arguments. In case of an error, the state machine is not entered.
- Parameters
-
args | array of command line arguments |
- Returns
- true if okay; else false
Definition at line 363 of file JDAQClient.hh.
383 catch(
const exception &error) {
384 cerr << error.what() << endl;
399 this->server.reset(
new JControlHost(
server));
403 catch(
const JControlHostException& error) {
404 cerr << error << endl;
◆ enter() [2/2]
virtual bool KM3NETDAQ::JDAQClient::enter |
( |
| ) |
|
|
inlinevirtual |
Enter the state machine.
This method activates the subscription to JNET::JControlHost messages. In case of an error, the state machine is not entered.
- Returns
- true if okay; else false
Reimplemented in KM3NETDAQ::JDAQDriver.
Definition at line 418 of file JDAQClient.hh.
429 server->Subscribe(buffer);
435 return CHSM::machine::enter();
437 catch(
const JControlHostException& error) {
442 cerr <<
"Message server or logger not properly initialised." << endl;
◆ exit()
virtual bool KM3NETDAQ::JDAQClient::exit |
( |
| ) |
|
|
inlinevirtual |
Exit the state machine.
This method releases the various resources.
- Returns
- true if okay; else false
Definition at line 456 of file JDAQClient.hh.
461 catch(
const JControlHostException& error) {
467 catch(
const JControlHostException& error) {
470 return CHSM::machine::exit();
◆ isRunning()
bool KM3NETDAQ::JDAQClient::isRunning |
( |
| ) |
const |
|
inline |
Check if this client is in runnig state.
- Returns
- true if running; else false
Definition at line 479 of file JDAQClient.hh.
◆ replaceEvent()
void KM3NETDAQ::JDAQClient::replaceEvent |
( |
const JTag & |
oldTag, |
|
|
const JTag & |
newTag, |
|
|
JDAQEvent_t & |
event |
|
) |
| |
|
inline |
Replace tag of given event in event table.
- Parameters
-
oldTag | old tag |
newTag | new tag |
event | event |
Definition at line 492 of file JDAQClient.hh.
◆ findEvent()
JDAQEvent_t* KM3NETDAQ::JDAQClient::findEvent |
( |
const JTag & |
tag, |
|
|
const std::string & |
event_name |
|
) |
| |
|
inline |
Find event in event table.
- Parameters
-
tag | tag |
event_name | event name |
- Returns
- pointer to event or NULL
Definition at line 507 of file JDAQClient.hh.
◆ addSubscription()
void KM3NETDAQ::JDAQClient::addSubscription |
( |
const JSubscription & |
subscription | ) |
|
|
inline |
Add custom subscription.
- Parameters
-
Definition at line 523 of file JDAQClient.hh.
◆ addParameter() [1/2]
template<class T >
void KM3NETDAQ::JDAQClient::addParameter |
( |
const char |
option, |
|
|
T & |
parameter |
|
) |
| |
|
inline |
Add parameter to parser used in method enter().
- Parameters
-
option | option |
parameter | parameter |
Definition at line 536 of file JDAQClient.hh.
◆ addParameter() [2/2]
template<class T >
void KM3NETDAQ::JDAQClient::addParameter |
( |
const char |
option, |
|
|
T & |
parameter, |
|
|
const T & |
value |
|
) |
| |
|
inline |
Add parameter to parser used in method enter().
- Parameters
-
option | option |
parameter | parameter |
value | default value |
Definition at line 550 of file JDAQClient.hh.
◆ setSelect() [1/2]
void KM3NETDAQ::JDAQClient::setSelect |
( |
| ) |
|
|
inline |
Set the file descriptor mask for the select call.
Definition at line 559 of file JDAQClient.hh.
◆ setSelect() [2/2]
◆ actionSelect()
◆ actionRunning()
virtual void KM3NETDAQ::JDAQClient::actionRunning |
( |
| ) |
|
|
inlinevirtual |
◆ actionInput()
virtual void KM3NETDAQ::JDAQClient::actionInput |
( |
int |
length, |
|
|
const char * |
buffer |
|
) |
| |
|
inlinevirtual |
◆ filter()
virtual bool KM3NETDAQ::JDAQClient::filter |
( |
const JTag & |
tag, |
|
|
int |
length, |
|
|
const char * |
buffer |
|
) |
| |
|
inlinevirtual |
Filter message.
The filter method can be overwritten so that a specific action is made before the corresponding message is processed by the state machine. The message is ignored if true is returned, else it is normally processed.
- Parameters
-
tag | tag |
length | number of characters |
buffer | message |
- Returns
- skip message or not
Definition at line 633 of file JDAQClient.hh.
◆ actionTagged()
virtual void KM3NETDAQ::JDAQClient::actionTagged |
( |
const JTag & |
tag, |
|
|
int |
length, |
|
|
const char * |
buffer |
|
) |
| |
|
inlinevirtual |
This method is called when a custom tag is encountered.
- Parameters
-
tag | tag |
length | length of data |
buffer | pointer to data |
Reimplemented in KM3NETDAQ::JDataFilter.
Definition at line 646 of file JDAQClient.hh.
◆ run() [1/3]
void KM3NETDAQ::JDAQClient::run |
( |
| ) |
|
|
inline |
Run as run control client following command messages via JNET::JControlHost.
This method can be called once the state machine is entered. It returns when the state machine is exited. If the clock interval is non-zero, the method actionRunning() is repeatedly called when this client machine is in state Running. The file descriptor mask can be set to interrupt the timeout of the select call and clock method wait() in this calling sequence (see methods setSelect() and actionSelect()).
Definition at line 661 of file JDAQClient.hh.
687 long long int numberOfCalls = 0;
710 catch(
const exception& error) {
717 if (numberOfCalls != 0) {
722 catch(
const exception& error) {
◆ run() [2/3]
void KM3NETDAQ::JDAQClient::run |
( |
const int |
port | ) |
|
|
inline |
Run for ever.
This method can be used when the run control client is started before the run control (e.g. at boot time of the host processor). This method should be called before the state machine is entered. It launches a server which accepts a JNET::JControlHost connection from a designated application e.g. the JDAQClientStarter.cc program. The state machine is entered using the available data in the JNET::JControlHost message. After the state machine is exited, it accepts a new a JNET::JControlHost connection.
- Parameters
-
Definition at line 741 of file JDAQClient.hh.
743 JControlHostServer local_server(port);
747 JControlHost* ps = local_server.AcceptClient();
753 ps->WaitHead(prefix);
755 const int length = prefix.
getSize();
757 char* buffer =
new char[length];
759 ps->GetFullData(buffer, length);
760 ps->PutFullData(prefix.
toString(), buffer, length);
◆ run() [3/3]
void KM3NETDAQ::JDAQClient::run |
( |
std::istream & |
in | ) |
|
|
inline |
Run client with commands from input stream (e.g.
for debugging).
Example input format:
<tag> <event name>[#data];
<tag> <event name>[#data];
- Parameters
-
Definition at line 786 of file JDAQClient.hh.
793 while (in >> tag && in >> skipws &&
getline(in, buffer,
';')) {
794 update(tag, buffer.length(), buffer.data());
◆ update() [1/2]
void KM3NETDAQ::JDAQClient::update |
( |
| ) |
|
|
inlineprivate |
Update state machine.
This method waits for a message from JNET::JControlHost server.
Definition at line 808 of file JDAQClient.hh.
814 const int length = prefix.
getSize();
816 char* buffer =
new char[length];
818 server->GetFullData(buffer, length);
◆ update() [2/2]
void KM3NETDAQ::JDAQClient::update |
( |
const JTag & |
tag, |
|
|
int |
length, |
|
|
const char * |
buffer |
|
) |
| |
|
inlineprivate |
Update state machine.
- Parameters
-
tag | tag |
length | number of characters |
buffer | message |
Definition at line 833 of file JDAQClient.hh.
838 if (
filter(tag, length, buffer)) {
851 string::size_type pos = 0;
853 while (pos != (string::size_type) length &&
TOKEN_DELIMETER.find(*(buffer + pos)) == string::npos) {
861 while (pos != (string::size_type) length &&
TOKEN_DELIMETER.find(*(buffer + pos)) != string::npos) {
866 JEventTable::const_iterator i =
eventTable.
find(tag, event.getName());
870 const CHSM::state*
const s0 =
getState();
872 if (!i->second->active()) {
874 JWarningStream(
logger) <<
"Event " << i->second->name() <<
" not active (" << (s0 != NULL ? s0->name() :
"") <<
")";
876 if (
server.is_valid() && s0 != NULL) {
887 JRedirectStream redirect[] = { JRedirectStream(cin,
JLANG::null),
888 JRedirectStream(cout,
debug),
889 JRedirectStream(cerr, error) };
895 (*(i->second))(length - pos, buffer + pos);
899 const CHSM::state*
const s1 =
getState();
902 << (s0 != NULL ? s0->name() :
"")
903 <<
"->(" << i->second->name() <<
")->"
904 << (s1 != NULL ? s1->name() :
"");
◆ configure()
void KM3NETDAQ::JDAQClient::configure |
( |
| ) |
|
|
inlineprivate |
Configure client.
This method is used to setup the event table.
Definition at line 916 of file JDAQClient.hh.
◆ getMessage()
std::string KM3NETDAQ::JDAQClient::getMessage |
( |
const CHSM::state & |
state, |
|
|
const CHSM::event & |
event |
|
) |
| const |
|
inlineprivate |
Get event message.
- Parameters
-
- Returns
- message
Definition at line 928 of file JDAQClient.hh.
930 std::ostringstream os;
◆ enterState()
virtual void KM3NETDAQ::JDAQClient::enterState |
( |
const CHSM::state & |
state, |
|
|
const CHSM::event & |
event |
|
) |
| |
|
inlineprivatevirtual |
Action when entering state.
This method provides for the hand shaking with the run control program.
- Parameters
-
state | entered state |
event | event that triggered transition |
Implements JDAQCHSM.
Reimplemented in KM3NETDAQ::JDAQDriver.
Definition at line 949 of file JDAQClient.hh.
◆ actionCheck()
virtual void KM3NETDAQ::JDAQClient::actionCheck |
( |
int |
length, |
|
|
const char * |
buffer |
|
) |
| |
|
inlineprivatevirtual |
This method is called at ev_check
and reports a system check by mimicing an enter state action.
- Parameters
-
length | number of characters |
buffer | message |
Reimplemented from JDAQCHSM.
Definition at line 963 of file JDAQClient.hh.
973 if (state->active()) {
◆ execute()
void KM3NETDAQ::JDAQClient::execute |
( |
action |
__action, |
|
|
const CHSM::event & |
__event |
|
) |
| |
|
inlineprivatevirtual |
The method to execute the action.
- Parameters
-
__action | pointer to action method |
__event | event that triggered the action |
Implements JDAQCHSM.
Definition at line 990 of file JDAQClient.hh.
996 (this->*__action)(event->length, event->buffer);
998 catch(
const std::exception& error) {
999 JErrorStream(
logger) <<
"Error at event " << __event.name() <<
" \"" << error.what() <<
"\"; trigger ev_error.";
◆ getState()
const CHSM::state* KM3NETDAQ::JDAQClient::getState |
( |
| ) |
const |
|
inlineprivate |
Get current state.
- Returns
- state
Definition at line 1010 of file JDAQClient.hh.
1013 if (state->active()) {
◆ A1()
void JDAQStateMachine::A1 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A2()
void JDAQStateMachine::A2 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A3()
void JDAQStateMachine::A3 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A4()
void JDAQStateMachine::A4 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A5()
void JDAQStateMachine::A5 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A6()
void JDAQStateMachine::A6 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A7()
void JDAQStateMachine::A7 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A8()
void JDAQStateMachine::A8 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A9()
void JDAQStateMachine::A9 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A10()
void JDAQStateMachine::A10 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A11()
void JDAQStateMachine::A11 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A12()
void JDAQStateMachine::A12 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A13()
void JDAQStateMachine::A13 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ A14()
void JDAQStateMachine::A14 |
( |
CHSM_ns_alias::event const & |
event | ) |
|
|
inherited |
◆ EAM4root()
void JDAQStateMachine::EAM4root |
( |
CHSM_ns_alias::state const & |
chsm_state_, |
|
|
CHSM_ns_alias::event const & |
event |
|
) |
| |
|
inherited |
Definition at line 337 of file JDAQCHSM.cc.
338 #line 164 "JDAQCHSM.chsm"
339 CHSM_ns_alias::cluster
const &state = (CHSM_ns_alias::cluster
const&)chsm_state_;
actionEnter(); }
◆ XAM4root()
void JDAQStateMachine::XAM4root |
( |
CHSM_ns_alias::state const & |
chsm_state_, |
|
|
CHSM_ns_alias::event const & |
event |
|
) |
| |
|
inherited |
Definition at line 340 of file JDAQCHSM.cc.
341 #line 165 "JDAQCHSM.chsm"
342 CHSM_ns_alias::cluster
const &state = (CHSM_ns_alias::cluster
const&)chsm_state_;
actionExit(); }
◆ getName()
const std::string& JDAQCHSM::getName |
( |
| ) |
const |
|
inlineinherited |
Get name of state machine.
- Returns
- name
Definition at line 89 of file JDAQCHSM.hh.
◆ getDetectorID()
int JDAQCHSM::getDetectorID |
( |
| ) |
const |
|
inlineinherited |
Get detector identifier.
- Returns
- detector identifier.
Definition at line 100 of file JDAQCHSM.hh.
◆ getRunNumber()
int JDAQCHSM::getRunNumber |
( |
| ) |
const |
|
inlineinherited |
Get run number.
- Returns
- run number
Definition at line 111 of file JDAQCHSM.hh.
◆ actionEnter()
virtual void JDAQCHSM::actionEnter |
( |
| ) |
|
|
inlinevirtualinherited |
◆ actionExit()
virtual void JDAQCHSM::actionExit |
( |
| ) |
|
|
inlinevirtualinherited |
◆ actionInit()
virtual void JDAQCHSM::actionInit |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionConfigure()
virtual void JDAQCHSM::actionConfigure |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionStart()
virtual void JDAQCHSM::actionStart |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionPause()
virtual void JDAQCHSM::actionPause |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionContinue()
virtual void JDAQCHSM::actionContinue |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionStop()
virtual void JDAQCHSM::actionStop |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionReset()
virtual void JDAQCHSM::actionReset |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionQuit()
virtual void JDAQCHSM::actionQuit |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ actionError()
virtual void JDAQCHSM::actionError |
( |
| ) |
|
|
inlinevirtualinherited |
◆ actionRecover()
virtual void JDAQCHSM::actionRecover |
( |
int |
, |
|
|
const char * |
|
|
) |
| |
|
inlinevirtualinherited |
◆ getHostname()
const std::string& KM3NETDAQ::JDAQClient_t::getHostname |
( |
| ) |
const |
|
inlineinherited |
◆ getFullName()
const std::string& KM3NETDAQ::JDAQClient_t::getFullName |
( |
| ) |
const |
|
inlineinherited |
Get full name of this run control client.
- Returns
- full name
Definition at line 119 of file JDAQClient.hh.
◆ getUniqueTag()
const JTag& KM3NETDAQ::JDAQClient_t::getUniqueTag |
( |
| ) |
const |
|
inlineinherited |
Get unique tag of this run control client.
- Returns
- unique tag
Definition at line 130 of file JDAQClient.hh.
◆ getClockDelay()
long long int KM3NETDAQ::JDAQClient_t::getClockDelay |
( |
| ) |
const |
|
inlineinherited |
Get total delay time.
- Returns
- delay time [us]
Definition at line 141 of file JDAQClient.hh.
◆ getClockInterval()
long long int KM3NETDAQ::JDAQClient_t::getClockInterval |
( |
| ) |
const |
|
inlineinherited |
Get interval time.
- Returns
- interval time [us]
Definition at line 153 of file JDAQClient.hh.
◆ setClockInterval()
void KM3NETDAQ::JDAQClient_t::setClockInterval |
( |
const long long int |
interval_us | ) |
|
|
inlineinherited |
Set interval time.
- Parameters
-
interval_us | interval time [us] |
Definition at line 164 of file JDAQClient.hh.
◆ resetClock()
void KM3NETDAQ::JDAQClient_t::resetClock |
( |
| ) |
|
|
inlineinherited |
◆ getEventNumber()
int KM3NETDAQ::JDAQClient_t::getEventNumber |
( |
| ) |
const |
|
inlineinherited |
Get last event number.
- Returns
- event number
Definition at line 184 of file JDAQClient.hh.
◆ setEventNumber()
void KM3NETDAQ::JDAQClient_t::setEventNumber |
( |
const int |
event_number | ) |
|
|
inlineinherited |
◆ server
◆ logger
◆ select
◆ parser
JParser KM3NETDAQ::JDAQClient::parser |
|
private |
◆ subscription
◆ root
◆ Main
◆ ev_daq_transitions
const int JDAQStateMachine::ev_daq_transitions |
|
staticprivateinherited |
◆ ev_daq
◆ ev_daq_param_block
char JDAQStateMachine::ev_daq_param_block[sizeof(ev_daq_event::param_block)] |
|
inherited |
◆ ev_init_transitions
const int JDAQStateMachine::ev_init_transitions |
|
staticprivateinherited |
◆ ev_init
◆ ev_init_param_block
char JDAQStateMachine::ev_init_param_block[sizeof(ev_init_event::param_block)] |
|
inherited |
◆ ev_configure_transitions
const int JDAQStateMachine::ev_configure_transitions |
|
staticprivateinherited |
◆ ev_configure
◆ ev_configure_param_block
char JDAQStateMachine::ev_configure_param_block[sizeof(ev_configure_event::param_block)] |
|
inherited |
◆ ev_start_transitions
const int JDAQStateMachine::ev_start_transitions |
|
staticprivateinherited |
◆ ev_start
◆ ev_start_param_block
char JDAQStateMachine::ev_start_param_block[sizeof(ev_start_event::param_block)] |
|
inherited |
◆ ev_pause_transitions
const int JDAQStateMachine::ev_pause_transitions |
|
staticprivateinherited |
◆ ev_pause
◆ ev_pause_param_block
char JDAQStateMachine::ev_pause_param_block[sizeof(ev_pause_event::param_block)] |
|
inherited |
◆ ev_continue_transitions
const int JDAQStateMachine::ev_continue_transitions |
|
staticprivateinherited |
◆ ev_continue
◆ ev_continue_param_block
char JDAQStateMachine::ev_continue_param_block[sizeof(ev_continue_event::param_block)] |
|
inherited |
◆ ev_stop_transitions
const int JDAQStateMachine::ev_stop_transitions |
|
staticprivateinherited |
◆ ev_stop
◆ ev_stop_param_block
char JDAQStateMachine::ev_stop_param_block[sizeof(ev_stop_event::param_block)] |
|
inherited |
◆ ev_reset_transitions
const int JDAQStateMachine::ev_reset_transitions |
|
staticprivateinherited |
◆ ev_reset
◆ ev_reset_param_block
char JDAQStateMachine::ev_reset_param_block[sizeof(ev_reset_event::param_block)] |
|
inherited |
◆ ev_quit_transitions
const int JDAQStateMachine::ev_quit_transitions |
|
staticprivateinherited |
◆ ev_quit
◆ ev_quit_param_block
char JDAQStateMachine::ev_quit_param_block[sizeof(ev_quit_event::param_block)] |
|
inherited |
◆ ev_off_transitions
const int JDAQStateMachine::ev_off_transitions |
|
staticprivateinherited |
◆ ev_off
◆ ev_off_param_block
char JDAQStateMachine::ev_off_param_block[sizeof(ev_off_event::param_block)] |
|
inherited |
◆ ev_check_transitions
const int JDAQStateMachine::ev_check_transitions |
|
staticprivateinherited |
◆ ev_check
◆ ev_check_param_block
char JDAQStateMachine::ev_check_param_block[sizeof(ev_check_event::param_block)] |
|
inherited |
◆ ev_input_transitions
const int JDAQStateMachine::ev_input_transitions |
|
staticprivateinherited |
◆ ev_input
◆ ev_input_param_block
char JDAQStateMachine::ev_input_param_block[sizeof(ev_input_event::param_block)] |
|
inherited |
◆ ev_recover_transitions
const int JDAQStateMachine::ev_recover_transitions |
|
staticprivateinherited |
◆ ev_recover
◆ ev_recover_param_block
char JDAQStateMachine::ev_recover_param_block[sizeof(ev_recover_event::param_block)] |
|
inherited |
◆ ev_error_transitions
const int JDAQStateMachine::ev_error_transitions |
|
staticprivateinherited |
◆ ev_error
◆ ev_error_param_block
char JDAQStateMachine::ev_error_param_block[sizeof(ev_error_event::param_block)] |
|
inherited |
◆ state_
CHSM_ns_alias::state* JDAQStateMachine::state_[11] |
|
privateinherited |
◆ transition_
const CHSM_ns_alias::transition JDAQStateMachine::transition_ |
|
staticprivateinherited |
◆ taken_
const CHSM_ns_alias::event* JDAQStateMachine::taken_[14] |
|
privateinherited |
◆ target_
CHSM_ns_alias::state* JDAQStateMachine::target_[14] |
|
privateinherited |
◆ name
std::string JDAQCHSM::name |
|
protectedinherited |
◆ detector_id
int JDAQCHSM::detector_id |
|
protectedinherited |
◆ run_number
◆ TIMEOUT_S
const int KM3NETDAQ::JDAQClient_t::TIMEOUT_S = 1 |
|
staticinherited |
◆ eventTable
◆ hostname
std::string KM3NETDAQ::JDAQClient_t::hostname |
|
protectedinherited |
◆ fullname
std::string KM3NETDAQ::JDAQClient_t::fullname |
|
protectedinherited |
◆ unique_tag
JTag KM3NETDAQ::JDAQClient_t::unique_tag |
|
protectedinherited |
◆ clock
◆ event_number
int KM3NETDAQ::JDAQClient_t::event_number |
|
protectedinherited |
The documentation for this class was generated from the following file:
virtual void actionStart(int, const char *)
Level specific message streamers.
Interface for logging messages.
static const JNET::JTag RC_FAIL
static const std::string TOKEN_DELIMETER
void setSelect()
Set the file descriptor mask for the select call.
virtual void actionEnter()
Interface methods for actions corresponding to state transitions.
const CHSM::state * getState() const
Get current state.
virtual void actionContinue(int, const char *)
Data structure to store command line arguments.
virtual void execute(action __action, const CHSM::event &__event)=0
The method to execute the action.
void A5(CHSM_ns_alias::event const &)
virtual void enterState(const CHSM::state &state, const CHSM::event &event)
Action when entering state.
virtual void actionRecover(int, const char *)
virtual void actionReset(int, const char *)
JParser parser
parser method enter()
void wait() const
Wait until the number of time intervals has elapsed since the last call to the reset method.
static const int TIMEOUT_S
time out of update [s]
void A3(CHSM_ns_alias::event const &)
JDAQStateMachine::ev_check_event ev_check
JFileDescriptorMask & getReaderMask()
Get reader mask.
void run()
Run as run control client following command messages via JNET::JControlHost.
static const JNET::JTag RC_REPLY
const JTag & getTag() const
Get tag.
Structure to store the ToT mean and standard deviation of the hits produced by a nanobeacon in a sour...
const std::string & getName() const
Get name of state machine.
static JNullStream null
Null I/O stream.
JLevel_t getLevel()
Get debug level.
void A6(CHSM_ns_alias::event const &)
JEventTable eventTable
event table
JSharedPointer< JControlHost > server
message server
const_iterator find(const JTag &tag, const std::string &event_name) const
Find entry.
virtual bool filter(const JTag &tag, int length, const char *buffer)
Filter message.
void setLevel(const int __level)
Set debug level.
JSelectReader select
select call
virtual void actionRunning()
This method is repeatedly called when this client machine is in state Running and the clock interval ...
void error(const JMessage_t &message)
void reset(const long long int t0)
Reset time.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
static int WhereIs(const std::string &host_name, const std::string &nick_name, std::string &answer)
Locate ControlHost client(s).
static JEvent_t toValue(const std::string &buffer)
Convert string to event.
void A8(CHSM_ns_alias::event const &)
JDAQStateMachine::ev_start_event ev_start
virtual void actionPause(int, const char *)
JDAQClient_t(JDAQStateMachine *chsm)
Constructor.
void A2(CHSM_ns_alias::event const &)
virtual void actionTagged(const JTag &tag, int length, const char *buffer)
This method is called when a custom tag is encountered.
bool hasReaderMask(const JAbstractFile &file) const
Has reader file.
Message logging based on std::ostream.
virtual bool exit()
Exit the state machine.
void A12(CHSM_ns_alias::event const &)
JDAQStateMachine(const std ::string)
void setInterval(const long long int interval_us)
Set interval time.
virtual bool enter()
Enter the state machine.
JSubscriptionList & add(const JSubscription &subscription)
Add subscription.
virtual void actionConfigure(int, const char *)
bool isRunning() const
Check if this client is in runnig state.
void update()
Update state machine.
bool is_valid() const
Check validity of logger object.
virtual void actionQuit(int, const char *)
void A14(CHSM_ns_alias::event const &)
Message logging based on ControlHost.
void replace(const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event)
Replace entry in table.
void reset(JLogger *__logger=NULL)
Reset logger.
JDAQStateMachine::state_Main::state_RunControl RunControl
void A4(CHSM_ns_alias::event const &)
JDAQStateMachine::ev_error_event ev_error
JSubscriptionList subscription
custom subscription
JMessageLogger logger
message logger
JDAQStateMachine::state_Main::state_RunControl::state_Operational Operational
Simple data structure to support I/O of equations (see class JLANG::JEquation).
virtual void actionCheck(int, const char *)
void A1(CHSM_ns_alias::event const &)
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
long long int getInterval() const
Get interval time.
const std::string & getFullName() const
Get full name of this run control client.
virtual void actionError()
void setReaderMask(const JAbstractFile &file)
Set reader mask.
Utility class to parse parameter values.
std::string getStateName(const std::string &name)
Get name of state.
JSubscriptionList getSubscription(const JEventTable &event_table)
Convert event table to ControlHost subscription.
void A13(CHSM_ns_alias::event const &)
void A7(CHSM_ns_alias::event const &)
std::string getMessage(const CHSM::state &state, const CHSM::event &event) const
Get event message.
virtual void actionStop(int, const char *)
virtual void actionExit()
int event_number
number of last event
JDAQStateMachine::state_Main Main
char getTokenDelimeter()
Get the token delimeter for command messages.
std::string toString() const
Convert tag to string.
virtual void actionInit(int, const char *)
int getSize() const
Get size.
virtual void actionInput(int, const char *)
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
void A11(CHSM_ns_alias::event const &)
long long int getDelay() const
Get total delay time.
void A10(CHSM_ns_alias::event const &)
JTimekeeper clock
central clock
virtual void actionSelect(const JFileDescriptorMask &mask)
Action method following last select call.
int read(const int argc, const char *const argv[])
Parse the program's command line options.
void setEventNumber(const int event_number)
Set last event number.
void A9(CHSM_ns_alias::event const &)