Jpp 21.0.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
KM3NETDAQ::JEventGenerator Class Reference

Runcontrol client to simulate data filter(s). More...

Inheritance diagram for KM3NETDAQ::JEventGenerator:
KM3NETDAQ::JDAQClient JDAQStateMachine KM3NETDAQ::JDAQClient_t JDAQCHSM

Public Member Functions

 JEventGenerator (const std::string &name, const std::string &server, JLogger *logger, const int level)
 Constructor.
 
virtual void actionConfigure (int length, const char *buffer)
 
virtual void actionReset (int length, const char *buffer)
 
virtual void actionQuit (int length, const char *buffer)
 
virtual void actionStart (int length, const char *buffer)
 
virtual void actionStop (int length, const char *buffer)
 
virtual void actionRunning ()
 This method is repeatedly called when this client machine is in state Running and the clock interval time is non-zero.
 
virtual bool enter (const JArgs &args)
 Enter the state machine.
 
virtual bool enter () override
 Enter the state machine.
 
virtual bool exit () override
 Exit the state machine.
 
bool isRunning () const
 Check if this client is in runnig state.
 
void replaceEvent (const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event)
 Replace tag of given event in event table.
 
JDAQEvent_tfindEvent (const JTag &tag, const std::string &event_name)
 Find event in event table.
 
void addSubscription (const JSubscription &subscription)
 Add custom subscription.
 
template<class T >
void addParameter (const char option, T &parameter)
 Add parameter to parser used in method enter().
 
template<class T >
void addParameter (const char option, T &parameter, const T &value)
 Add parameter to parser used in method enter().
 
void setSelect ()
 Set the file descriptor mask for the select call.
 
virtual void setSelect (JFileDescriptorMask &mask) const
 Set the file descriptor mask for the select call.
 
virtual void actionSelect (const JFileDescriptorMask &mask)
 Action method following last select call.
 
virtual void actionInput (int length, const char *buffer) override
 This method is called at ev_input.
 
virtual bool filter (const JTag &tag, int length, const char *buffer)
 Filter message.
 
virtual void actionTagged (const JTag &tag, int length, const char *buffer)
 This method is called when a custom tag is encountered.
 
void run ()
 Run as run control client following command messages via JNET::JControlHost.
 
void run (const int port)
 Run for ever.
 
void run (std::istream &in)
 Run client with commands from input stream (e.g. for debugging).
 
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.
 
int getDetectorID () const
 Get detector identifier.
 
int getRunNumber () const
 Get run number.
 
virtual void actionEnter ()
 Interface methods for actions corresponding to state transitions.
 
virtual void actionExit ()
 
virtual void actionInit (int, const char *)
 
virtual void actionPause (int, const char *)
 
virtual void actionContinue (int, const char *)
 
virtual void actionError ()
 
virtual void actionRecover (int, const char *)
 
const std::string & getHostname () const
 Get hostname.
 
const std::string & getFullName () const
 Get full name of this run control client.
 
const JTaggetUniqueTag () const
 Get unique tag of this run control client.
 
long long int getClockDelay () const
 Get total delay time.
 
long long int getClockInterval () const
 Get interval time.
 
void setClockInterval (const long long int interval_us)
 Set interval time.
 
void resetClock ()
 Reset clock.
 
const std::string & getEventInfo () const
 Get last event information.
 
void setEventInfo (const std::string &info)
 Set last event information.
 

Public Attributes

JDAQStateMachine::state_root root
 
JDAQStateMachine::state_Main Main
 
JDAQStateMachine::ev_daq_event ev_daq
 
char ev_daq_param_block [sizeof(ev_daq_event::param_block)]
 
JDAQStateMachine::ev_init_event ev_init
 
char ev_init_param_block [sizeof(ev_init_event::param_block)]
 
JDAQStateMachine::ev_configure_event ev_configure
 
char ev_configure_param_block [sizeof(ev_configure_event::param_block)]
 
JDAQStateMachine::ev_start_event ev_start
 
char ev_start_param_block [sizeof(ev_start_event::param_block)]
 
JDAQStateMachine::ev_pause_event ev_pause
 
char ev_pause_param_block [sizeof(ev_pause_event::param_block)]
 
JDAQStateMachine::ev_continue_event ev_continue
 
char ev_continue_param_block [sizeof(ev_continue_event::param_block)]
 
JDAQStateMachine::ev_stop_event ev_stop
 
char ev_stop_param_block [sizeof(ev_stop_event::param_block)]
 
JDAQStateMachine::ev_reset_event ev_reset
 
char ev_reset_param_block [sizeof(ev_reset_event::param_block)]
 
JDAQStateMachine::ev_quit_event ev_quit
 
char ev_quit_param_block [sizeof(ev_quit_event::param_block)]
 
JDAQStateMachine::ev_off_event ev_off
 
char ev_off_param_block [sizeof(ev_off_event::param_block)]
 
JDAQStateMachine::ev_check_event ev_check
 
char ev_check_param_block [sizeof(ev_check_event::param_block)]
 
JDAQStateMachine::ev_input_event ev_input
 
char ev_input_param_block [sizeof(ev_input_event::param_block)]
 
JDAQStateMachine::ev_recover_event ev_recover
 
char ev_recover_param_block [sizeof(ev_recover_event::param_block)]
 
JDAQStateMachine::ev_error_event ev_error
 
char ev_error_param_block [sizeof(ev_error_event::param_block)]
 

Static Public Attributes

static const int TIMEOUT_S = 1
 time out of update [s]
 

Protected Types

typedef void(JDAQCHSM::*) action(int, const char *)
 Type definition of action method.
 

Protected Attributes

std::shared_ptr< JControlHostserver
 message server
 
JMessageLogger logger
 message logger
 
std::string name
 
int detector_id
 
int run_number
 
JEventTable eventTable
 event table
 
std::string hostname
 
std::string fullname
 
JTag unique_tag
 
JTimekeeper clock
 central clock
 
std::string event_info
 event information
 

Private Member Functions

void update ()
 Update state machine.
 
void update (const JTag &tag, int length, const char *buffer)
 Update state machine.
 
void configure ()
 Configure client.
 
std::string getMessage (const CHSM::state &state, const CHSM::event &event) const
 Get event message.
 
virtual void enterState (const CHSM::state &state, const CHSM::event &event) override
 Action when entering state.
 
virtual void actionCheck (int length, const char *buffer) override
 This method is called at ev_check and reports a system check by mimicing an enter state action.
 
void execute (action __action, const CHSM::event &__event) override
 The method to execute the action.
 
const CHSM::state * getState () const
 Get current state.
 

Private Attributes

std::shared_ptr< JControlHostdatawriter
 
JTRIGGER::JTriggerParameters parameters
 
JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEventinputFile
 
Long64_t numberOfEvents
 
double eventRate_Hz
 
JEEP::JTimer timer
 
long long int numberOfBytes
 
JSelectReader select
 select call
 
JParser parser
 parser method enter()
 
JSubscriptionList subscription
 custom subscription
 
CHSM_ns_alias::state * state_ [11]
 
CHSM_ns_alias::event const * taken_ [14]
 
CHSM_ns_alias::state * target_ [14]
 

Static Private Attributes

static int const ev_daq_transitions []
 
static int const ev_init_transitions []
 
static int const ev_configure_transitions []
 
static int const ev_start_transitions []
 
static int const ev_pause_transitions []
 
static int const ev_continue_transitions []
 
static int const ev_stop_transitions []
 
static int const ev_reset_transitions []
 
static int const ev_quit_transitions []
 
static int const ev_off_transitions []
 
static int const ev_check_transitions []
 
static int const ev_input_transitions []
 
static int const ev_recover_transitions []
 
static int const ev_error_transitions []
 
static CHSM_ns_alias::transition const transition_ []
 

Detailed Description

Runcontrol client to simulate data filter(s).

In state running, this application will send events to the data writer.

Definition at line 35 of file JEventGenerator.cc.

Member Typedef Documentation

◆ action

void(JDAQCHSM::*) JDAQCHSM::action(int, const char *)
protectedinherited

Type definition of action method.

Definition at line 152 of file JDAQCHSM.hh.

Constructor & Destructor Documentation

◆ JEventGenerator()

KM3NETDAQ::JEventGenerator::JEventGenerator ( const std::string & name,
const std::string & server,
JLogger * logger,
const int level )
inline

Constructor.

Parameters
namename of client
servername of command message server
loggerpointer to logger
leveldebug level

Definition at line 47 of file JEventGenerator.cc.

50 :
51 JDAQClient(name, server, logger, level),
52 datawriter()
53 {
55
57 }
std::string name
Definition JDAQCHSM.hh:165
JDAQStateMachine::ev_configure_event ev_configure
static void Throw(const bool option)
Definition JThrow.hh:37
void replaceEvent(const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event)
Replace tag of given event in event table.
std::shared_ptr< JControlHost > server
message server
JMessageLogger logger
message logger
JDAQClient(const std::string &name, const std::string &server, JLogger *logger, const int level)
Constructor.
std::shared_ptr< JControlHost > datawriter
static const JNET::JTag RC_EVTGENERATOR
Definition JDAQTags.hh:70
static const JNET::JTag RC_CMD
Definition JDAQTags.hh:66

Member Function Documentation

◆ actionConfigure()

virtual void KM3NETDAQ::JEventGenerator::actionConfigure ( int length,
const char * buffer )
inlinevirtual

Reimplemented from JDAQCHSM.

Definition at line 60 of file JEventGenerator.cc.

61 {
62 using namespace std;
63 using namespace JPP;
64
65 inputFile.clear();
66
67 JString destination;
68
69 JProperties properties(JEquationParameters("=", ";", "", ""));
70
71 properties["datawriter"] = destination = "localhost";
72 properties["inputFile"] = inputFile;
73 properties["eventRate_Hz"] = eventRate_Hz = 1.0;
74
75 properties.read(string(buffer, length));
76
77 destination = destination.trim();
78
79 try {
80 datawriter.reset(new JControlHost(destination));
81 }
82 catch(const JControlHostException& exception) {
83 JErrorStream(logger) << exception;
84 }
85
86 if (eventRate_Hz > 0.0)
87 setClockInterval((long long int) (1.0e6 / eventRate_Hz));
88 else
89 setClockInterval(0ULL);
90
92
93 JDebugStream(logger) << "Event interval time " << getClockInterval() << " us";
94 }
Utility class to parse parameter values.
Exception for ControlHost.
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Wrapper class around STL string class.
Definition JString.hh:29
JString & trim()
Trim string.
Definition JString.hh:229
ControlHost class.
JSUPPORT::JMultipleFileScanner< KM3NETDAQ::JDAQEvent > inputFile
JTRIGGER::JTriggerParameters parameters
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
JTriggerParameters getTriggerParameters(const JMultipleFileScanner_t &file_list)
Get trigger parameters.
Level specific message streamers.
void setClockInterval(const long long int interval_us)
Set interval time.
long long int getClockInterval() const
Get interval time.

◆ actionReset()

virtual void KM3NETDAQ::JEventGenerator::actionReset ( int length,
const char * buffer )
inlinevirtual

Reimplemented from JDAQCHSM.

Definition at line 97 of file JEventGenerator.cc.

98 {
99 JDebugStream(logger) << "actionReset()";
100
102
103 datawriter.reset();
104 }
virtual void rewind() override
Rewind.

◆ actionQuit()

virtual void KM3NETDAQ::JEventGenerator::actionQuit ( int length,
const char * buffer )
inlinevirtual

Reimplemented from JDAQCHSM.

Definition at line 107 of file JEventGenerator.cc.

108 {}

◆ actionStart()

virtual void KM3NETDAQ::JEventGenerator::actionStart ( int length,
const char * buffer )
inlinevirtual

Reimplemented from JDAQCHSM.

Definition at line 111 of file JEventGenerator.cc.

112 {
113 using namespace std;
114
115 numberOfEvents = 0;
116 numberOfBytes = 0;
117
118 ostringstream os;
119
120 // Test 1
121 /*
122 os << " abcdefg " << getRunNumber() << ' ' << parameters;
123 */
124 //
125 os << getRunNumber() << ' ' << parameters;
126 //
127 datawriter->PutFullString(IO_TRIGGER_PARAMETERS, os.str());
128
129 // Test 2
130 /*
131 os.str("");
132
133 os << getRunNumber() << ' ' << JTriggerParameters();
134
135 datawriter->PutFullString(IO_TRIGGER_PARAMETERS, os.str());
136 */
137 timer.reset();
138 }
int getRunNumber() const
Get run number.
Definition JDAQCHSM.hh:111
void reset()
Reset timer.
Definition JTimer.hh:93
static const JNET::JTag IO_TRIGGER_PARAMETERS
Definition JDAQTags.hh:90

◆ actionStop()

virtual void KM3NETDAQ::JEventGenerator::actionStop ( int length,
const char * buffer )
inlinevirtual

Reimplemented from JDAQCHSM.

Definition at line 141 of file JEventGenerator.cc.

142 {
143 JDebugStream(logger) << "actionStop()";
144
145 if (timer.usec_wall > 0) JNoticeStream(logger) << "I/O [MB/s] " << numberOfBytes / timer.usec_wall;
146 if (numberOfEvents > 0) JNoticeStream(logger) << "Delay/event [ms] " << getClockDelay() / numberOfEvents / 1000;
147 }
unsigned long long usec_wall
Definition JTimer.hh:238
long long int getClockDelay() const
Get total delay time.

◆ actionRunning()

virtual void KM3NETDAQ::JEventGenerator::actionRunning ( )
inlinevirtual

This method is repeatedly called when this client machine is in state Running and the clock interval time is non-zero.

This implementation does nothing but may be redefined by the derived class. Care has to be taken so that the time needed to execute this method should be less than the specified clock interval time (see method setClockInterval()).

Reimplemented from KM3NETDAQ::JDAQClient.

Definition at line 150 of file JEventGenerator.cc.

151 {
152 //JDebugStream(logger) << "actionRunning()";
153
154 using namespace JPP;
155
156 static JIO::JByteArrayWriter out;
157
158 if (datawriter.get() != NULL) {
159
160 if (!inputFile.hasNext()) {
162 }
163
164 if (inputFile.hasNext()) {
165
166 timer.start();
167
168 JDAQEvent* event = inputFile.next();
169
170 event->setRunNumber(getRunNumber());
171
172 out.clear();
173
174 out << *event;
175
176 try {
177
178 datawriter->PutFullData(IO_EVENT, out.data(), out.size());
179
180 numberOfEvents += 1;
181 numberOfBytes += out.size();
182 }
183 catch(const JControlHostException& exception) {
184 JErrorStream(logger) << exception;
185 }
186
187 timer.stop();
188 }
189 }
190
191 //JDebugStream(logger) << "actionRunning() return";
192 }
void stop()
Stop timer.
Definition JTimer.hh:127
void start()
Start timer.
Definition JTimer.hh:106
Byte array binary output.
void clear()
Clear buffer.
virtual bool hasNext() override
Check availability of next element.
virtual const pointer_type & next() override
Get next element.
static const JNET::JTag IO_EVENT
Definition JDAQTags.hh:88

◆ enter() [1/2]

virtual bool KM3NETDAQ::JDAQClient::enter ( const JArgs & args)
inlinevirtualinherited

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
argsarray of command line arguments
Returns
true if okay; else false

Definition at line 391 of file JDAQClient.hh.

392 {
393 using namespace std;
394
395 string server;
396 string logger;
397 int level;
398 bool use_cout;
399
400 try {
401
402 parser['H'] = make_field(server) = "localhost";
403 parser['M'] = make_field(logger) = "localhost";
404 parser['d'] = make_field(level) = 0;
405 parser['c'] = make_field(use_cout);
406
407 if (parser.read(args) != 0) {
408 return false;
409 }
410 }
411 catch(const std::exception &error) {
412 cerr << error.what() << endl;
413 return false;
414 }
415
416 try {
417
418 JLogger* out = NULL;
419
420 if (use_cout)
421 out = new JStreamLogger(cout);
422 else
423 out = new JControlHostLogger(logger);
424
425 this->logger = JMessageLogger(out, getName(), level);
426
427 this->server.reset(new JControlHost(server));
428
429 return enter();
430 }
431 catch(const std::exception& error) {
432 cerr << error.what() << endl;
433 return false;
434 }
435 }
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2107
int read(const int argc, const char *const argv[])
Parse the program's command line options.
Definition JParser.hh:1958
JParser parser
parser method enter()
virtual bool enter() override
Enter the state machine.
const char * getName()
Get ROOT name of given data type.

◆ enter() [2/2]

virtual bool KM3NETDAQ::JDAQClient::enter ( )
inlineoverridevirtualinherited

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 446 of file JDAQClient.hh.

447 {
448 using namespace std;
449 using namespace JPP;
450
451 if (server && logger) {
452
454
455 try {
456
457 server->Subscribe(buffer);
458 server->SendMeAlways();
459 server->MyId(getFullName());
460
461 JStatusStream(logger) << "Process with nick name \"" << getFullName() << "\" version \"" << getGITVersion() << "\" subscription: " << buffer.toString();
462
463 return CHSM::machine::enter();
464 }
465 catch(const std::exception& error) {
466 JErrorStream(logger) << error.what();
467 }
468
469 } else {
470 cerr << "Message server or logger not properly initialised." << endl;
471 }
472
473 return false;
474 }
Subscription list.
std::string toString() const
Convert subscription list to string.
JSubscriptionList subscription
custom subscription
const char * getGITVersion()
Get GIT version.
Definition Jpp.cc:9
JSubscriptionList getSubscription(const JEventTable &event_table)
Convert event table to ControlHost subscription.
const std::string & getFullName() const
Get full name of this run control client.
JEventTable eventTable
event table

◆ exit()

virtual bool KM3NETDAQ::JDAQClient::exit ( )
inlineoverridevirtualinherited

Exit the state machine.

This method releases the various resources.

Returns
true if okay; else false

Definition at line 484 of file JDAQClient.hh.

485 {
486 try {
487 if (server) { server.reset(); }
488 }
489 catch(const std::exception& error) {
490 }
491
492 try {
493 if (logger) { logger.reset(); }
494 }
495 catch(const std::exception& error) {
496 }
497
498 return CHSM::machine::exit();
499 }
void reset(JLogger *__logger=NULL)
Reset logger.

◆ isRunning()

bool KM3NETDAQ::JDAQClient::isRunning ( ) const
inlineinherited

Check if this client is in runnig state.

Returns
true if running; else false

Definition at line 507 of file JDAQClient.hh.

508 {
509 return Main.RunControl.Operational.Running.active();
510 }
JDAQStateMachine::state_Main::state_RunControl::state_Operational Operational
JDAQStateMachine::state_Main::state_RunControl RunControl
JDAQStateMachine::state_Main Main

◆ replaceEvent()

void KM3NETDAQ::JDAQClient::replaceEvent ( const JTag & oldTag,
const JTag & newTag,
JDAQEvent_t & event )
inlineinherited

Replace tag of given event in event table.

Parameters
oldTagold tag
newTagnew tag
eventevent

Definition at line 520 of file JDAQClient.hh.

523 {
524 eventTable.replace(oldTag, newTag, event);
525 }
void replace(const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event)
Replace entry in table.

◆ findEvent()

JDAQEvent_t * KM3NETDAQ::JDAQClient::findEvent ( const JTag & tag,
const std::string & event_name )
inlineinherited

Find event in event table.

Parameters
tagtag
event_nameevent name
Returns
pointer to event or NULL

Definition at line 535 of file JDAQClient.hh.

536 {
537 JEventTable::const_iterator i = eventTable.find(tag, event_name);
538
539 if (i != eventTable.end())
540 return i->second;
541 else
542 return NULL;
543 }
const_iterator find(const JTag &tag, const std::string &event_name) const
Find entry.

◆ addSubscription()

void KM3NETDAQ::JDAQClient::addSubscription ( const JSubscription & subscription)
inlineinherited

Add custom subscription.

Parameters
subscriptionsubscription

Definition at line 551 of file JDAQClient.hh.

552 {
554 }
JSubscriptionList & add(const JSubscription &subscription)
Add subscription.

◆ addParameter() [1/2]

template<class T >
void KM3NETDAQ::JDAQClient::addParameter ( const char option,
T & parameter )
inlineinherited

Add parameter to parser used in method enter().

Parameters
optionoption
parameterparameter

Definition at line 564 of file JDAQClient.hh.

565 {
566 parser[option] = make_field(parameter);
567 }

◆ addParameter() [2/2]

template<class T >
void KM3NETDAQ::JDAQClient::addParameter ( const char option,
T & parameter,
const T & value )
inlineinherited

Add parameter to parser used in method enter().

Parameters
optionoption
parameterparameter
valuedefault value

Definition at line 578 of file JDAQClient.hh.

579 {
580 parser[option] = make_field(parameter) = value;
581 }

◆ setSelect() [1/2]

void KM3NETDAQ::JDAQClient::setSelect ( )
inlineinherited

Set the file descriptor mask for the select call.

Definition at line 587 of file JDAQClient.hh.

588 {
589 select.reset();
590
592
594 }
void setReaderMask(const JAbstractFile &file)
Set reader mask.
JFileDescriptorMask & getReaderMask()
Get reader mask.
JSelectReader select
select call
void setSelect()
Set the file descriptor mask for the select call.

◆ setSelect() [2/2]

virtual void KM3NETDAQ::JDAQClient::setSelect ( JFileDescriptorMask & mask) const
inlinevirtualinherited

Set the file descriptor mask for the select call.

This implementation does nothing but may be redefined by the derived class.

Parameters
maskfile descriptor mask

Reimplemented in KM3NETDAQ::JDataFilter, KM3NETDAQ::JDataWriter, and KM3NETDAQ::MonitorRouter.

Definition at line 603 of file JDAQClient.hh.

604 {}

◆ actionSelect()

virtual void KM3NETDAQ::JDAQClient::actionSelect ( const JFileDescriptorMask & mask)
inlinevirtualinherited

Action method following last select call.

This implementation does nothing but may be redefined by the derived class.

Parameters
maskfile descriptor mask

Reimplemented in KM3NETDAQ::DataQueue, KM3NETDAQ::JDataFilter, KM3NETDAQ::JDataWriter, and KM3NETDAQ::MonitorRouter.

Definition at line 613 of file JDAQClient.hh.

614 {}

◆ actionInput()

virtual void KM3NETDAQ::JDAQClient::actionInput ( int length,
const char * buffer )
inlineoverridevirtualinherited

This method is called at ev_input.

Parameters
lengthlength of data
bufferpointer to data

Reimplemented from JDAQCHSM.

Reimplemented in KM3NETDAQ::DataQueue.

Definition at line 634 of file JDAQClient.hh.

635 {
636 using namespace std;
637
638 JProperties properties(JEquationParameters("=", ";", "", ""), 1);
639
640 int level = this->logger.getLevel();
641
642 properties["debug"] = level;
643
644 properties.read(string(buffer, length));
645
646 this->logger.setLevel(level);
647 }
JLevel_t getLevel()
Get debug level.
void setLevel(const int __level)
Set debug level.

◆ filter()

virtual bool KM3NETDAQ::JDAQClient::filter ( const JTag & tag,
int length,
const char * buffer )
inlinevirtualinherited

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
tagtag
lengthnumber of characters
buffermessage
Returns
skip message or not

Reimplemented in KM3NETDAQ::JDAQDriver.

Definition at line 661 of file JDAQClient.hh.

662 {
663 return false;
664 }

◆ actionTagged()

virtual void KM3NETDAQ::JDAQClient::actionTagged ( const JTag & tag,
int length,
const char * buffer )
inlinevirtualinherited

This method is called when a custom tag is encountered.

Parameters
tagtag
lengthlength of data
bufferpointer to data

Reimplemented in KM3NETDAQ::JDataFilter.

Definition at line 674 of file JDAQClient.hh.

675 {
676 }

◆ run() [1/3]

void KM3NETDAQ::JDAQClient::run ( )
inlineinherited

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 689 of file JDAQClient.hh.

690 {
691 using namespace std;
692 using namespace JPP;
693
694 while (active()) {
695
696 try {
697
698 setSelect();
699
700 if (select(JTimeval(TIMEOUT_S,0)) > 0) {
701
703 update();
704 }
705
707
708 } else {
709
710 continue;
711 }
712
713
714 if (isRunning() && clock.getInterval() != 0LL) {
715
716 long long int numberOfCalls = 0;
717
718 clock.reset();
719
720 do {
721
722 ++numberOfCalls;
723
724 setSelect();
725
727
729 update();
730 }
731
733
734 } else {
735
736 try {
738 }
739 catch(const std::exception& error) {
740 logger.error(error.what());
741 }
742 }
743
744 } while (isRunning());
745
746 if (numberOfCalls != 0) {
747 JNoticeStream(logger) << "Delay per call " << clock.getDelay() / numberOfCalls / 1000 << " ms";
748 }
749 }
750 }
751 catch(const JPP::JSocketException& error) {
752 JErrorStream(logger) << "method run(): \"" << error.what() << "\" -> trigger ev_error.";
753 ev_error();
754 }
755 catch(const std::exception& error) {
756 JErrorStream(logger) << "method run(): \"" << error.what() << "\"";
757 }
758 }
759 }
JDAQStateMachine::ev_error_event ev_error
long long int getDelay() const
Get total delay time.
void wait() const
Wait until the number of time intervals has elapsed since the last call to the reset method.
void reset(const long long int t0)
Reset time.
long long int getInterval() const
Get interval time.
virtual const char * what() const override
Get error message.
Definition JException.hh:65
Exception for socket.
Auxiliary class for time values.
Definition JTimeval.hh:29
void error(const JMessage_t &message)
bool hasReaderMask(const JAbstractFile &file) const
Has reader file.
bool isRunning() const
Check if this client is in runnig state.
void update()
Update state machine.
virtual void actionSelect(const JFileDescriptorMask &mask)
Action method following last select call.
virtual void actionRunning()
This method is repeatedly called when this client machine is in state Running and the clock interval ...
JTimekeeper clock
central clock
static const int TIMEOUT_S
time out of update [s]
Definition JDAQClient.hh:62

◆ run() [2/3]

void KM3NETDAQ::JDAQClient::run ( const int port)
inlineinherited

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
portport number

Definition at line 774 of file JDAQClient.hh.

775 {
776 JControlHostServer local_server(port);
777
778 for ( ; ; ) {
779
780 JControlHost* ps = local_server.AcceptClient();
781
782 ps->Connected();
783
784 JNET::JPrefix prefix;
785
786 ps->WaitHead(prefix);
787
788 const int length = prefix.getSize();
789
790 char* buffer = new char[length];
791
792 ps->GetFullData(buffer, length);
793 ps->PutFullData(prefix.toString(), buffer, length);
794
795 delete ps;
796
797 enter(JArgs(std::string(buffer, length)));
798
799 delete [] buffer;
800
801 run();
802
803 exit();
804 }
805 }
Data structure to store command line arguments.
Definition JArgs.hh:26
ControlHost prefix.
Definition JPrefix.hh:33
int getSize() const
Get size.
Definition JPrefix.hh:62
std::string toString() const
Convert tag to string.
Definition JTag.hh:171
virtual bool exit() override
Exit the state machine.
void run()
Run as run control client following command messages via JNET::JControlHost.

◆ run() [3/3]

void KM3NETDAQ::JDAQClient::run ( std::istream & in)
inlineinherited

Run client with commands from input stream (e.g. for debugging).

Example input format:

<tag> <event name>[#data];
<tag> <event name>[#data];
Parameters
ininput stream

Definition at line 819 of file JDAQClient.hh.

820 {
821 using namespace std;
822
823 string tag;
824 string buffer;
825
826 while (in >> tag && in >> skipws && getline(in, buffer, ';')) {
827 update(tag, buffer.length(), buffer.data());
828 }
829 }
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
Definition JString.hh:478

◆ update() [1/2]

void KM3NETDAQ::JDAQClient::update ( )
inlineprivateinherited

Update state machine.

This method waits for a message from JNET::JControlHost server.

Definition at line 840 of file JDAQClient.hh.

841 {
842 JNET::JPrefix prefix;
843
844 server->WaitHead(prefix);
845
846 const int length = prefix.getSize();
847
848 char* buffer = new char[length];
849
850 server->GetFullData(buffer, length);
851
852 update(prefix.getTag(), length, buffer);
853
854 delete [] buffer;
855 }
const JTag & getTag() const
Get tag.
Definition JTag.hh:86

◆ update() [2/2]

void KM3NETDAQ::JDAQClient::update ( const JTag & tag,
int length,
const char * buffer )
inlineprivateinherited

Update state machine.

Parameters
tagtag
lengthnumber of characters
buffermessage

Definition at line 865 of file JDAQClient.hh.

866 {
867 using namespace std;
868 using namespace JPP;
869
870 if (filter(tag, length, buffer)) {
871 return;
872 }
873
874 if (getSubscription(eventTable)->count(JSubscriptionAny(tag)) == 0 &&
875 getSubscription(eventTable)->count(JSubscriptionAll(tag)) == 0) {
876
877 actionTagged(tag, length, buffer);
878
879 return;
880 }
881
882
883 string::size_type pos = 0;
884
885 while (pos != (string::size_type) length && TOKEN_DELIMETER.find(*(buffer + pos)) == string::npos) {
886 ++pos;
887 }
888
889 const JEvent_t event = JEvent_t::toValue(string(buffer, pos));
890
891 if (event.hasInfo()) {
892 setEventInfo(event.getInfo());
893 }
894
895 while (pos != (string::size_type) length && TOKEN_DELIMETER.find(*(buffer + pos)) != string::npos) {
896 ++pos;
897 }
898
899
900 JEventTable::const_iterator i = eventTable.find(tag, event.getName());
901
902 if (i != eventTable.end()) {
903
904 const CHSM::state* const s0 = getState();
905
906 if (!i->second->active()) {
907
908 JWarningStream(logger) << "Event " << i->second->name() << " not active (" << (s0 != NULL ? s0->name() : "") << ")";
909
910 if (server && s0 != NULL) {
911 server->PutFullString(RC_FAIL, getMessage(*s0, *i->second));
912 }
913 }
914
915 // redirect all I/O
916
917 {
919 JErrorStream error(logger);
920
921 JRedirectStream rs_cin (cin, JLANG::null);
922 JRedirectStream rs_cout(cout, debug);
923 JRedirectStream rs_cerr(cerr, error);
924
925 if (rs_cin &&
926 rs_cout &&
927 rs_cerr) {
928
929 (*(i->second))(length - pos, buffer + pos);
930 }
931 }
932
933 const CHSM::state* const s1 = getState();
934
935 JStatusStream(logger) << "Transition "
936 << (s0 != NULL ? s0->name() : "")
937 << "->(" << i->second->name() << ")->"
938 << (s1 != NULL ? s1->name() : "");
939 } else {
940
941 JErrorStream(logger) << "Unknown key <" << tag << "," << event.getName() << ">";
942 }
943 }
int debug
debug level
Definition JSirene.cc:74
This class can be used to temporarily redirect one output (input) stream to another output (input) st...
virtual bool filter(const JTag &tag, int length, const char *buffer)
Filter message.
virtual void actionTagged(const JTag &tag, int length, const char *buffer)
This method is called when a custom tag is encountered.
std::string getMessage(const CHSM::state &state, const CHSM::event &event) const
Get event message.
const CHSM::state * getState() const
Get current state.
static JNullStream null
Null I/O stream.
static const std::string TOKEN_DELIMETER
Definition JDAQTags.hh:58
static const JNET::JTag RC_FAIL
Definition JDAQTags.hh:68
Auxiliary class for all subscription.
Auxiliary class for any subscription.
void setEventInfo(const std::string &info)
Set last event information.
static JEvent_t toValue(const std::string &buffer)
Convert string to event.
Definition JEvent_t.hh:99

◆ configure()

void KM3NETDAQ::JDAQClient::configure ( )
inlineprivateinherited

Configure client.

This method is used to setup the event table.

Definition at line 950 of file JDAQClient.hh.

951 {
952 }

◆ getMessage()

std::string KM3NETDAQ::JDAQClient::getMessage ( const CHSM::state & state,
const CHSM::event & event ) const
inlineprivateinherited

Get event message.

Parameters
statestate
eventevent
Returns
message

Definition at line 962 of file JDAQClient.hh.

963 {
964 std::ostringstream os;
965
966 os << getFullName()
968 << (getEventInfo() != "" ?
969 JEvent_t(event.name(), getEventInfo()) :
970 JEvent_t(event.name()))
972 << getStateName(state.name());
973
974 return os.str();
975 }
std::string getStateName(const std::string &name)
Get name of state.
char getTokenDelimeter()
Get the token delimeter for command messages.
const std::string & getEventInfo() const
Get last event information.

◆ enterState()

virtual void KM3NETDAQ::JDAQClient::enterState ( const CHSM::state & state,
const CHSM::event & event )
inlineoverrideprivatevirtualinherited

Action when entering state.

This method provides for the hand shaking with the run control program.

Parameters
stateentered state
eventevent that triggered transition

Implements JDAQCHSM.

Reimplemented in KM3NETDAQ::JDAQDriver.

Definition at line 985 of file JDAQClient.hh.

986 {
987 if (server) {
988 server->PutFullString(RC_REPLY, getMessage(state, event));
989 }
990 }
static const JNET::JTag RC_REPLY
Definition JDAQTags.hh:67

◆ actionCheck()

virtual void KM3NETDAQ::JDAQClient::actionCheck ( int length,
const char * buffer )
inlineoverrideprivatevirtualinherited

This method is called at ev_check and reports a system check by mimicing an enter state action.

Parameters
lengthnumber of characters
buffermessage

Reimplemented from JDAQCHSM.

Definition at line 999 of file JDAQClient.hh.

1000 {
1001 if (Main.RunControl.Error.active()) {
1002
1004
1005 } else {
1006
1007 for (CHSM::parent::iterator state = Main.RunControl.Operational.begin(); state != Main.RunControl.Operational.end(); ++state) {
1008
1009 if (state->active()) {
1010
1011 // mimic enter state
1012
1013 enterState(*state, ev_check);
1014 }
1015 }
1016 }
1017 }
JDAQStateMachine::ev_check_event ev_check
virtual void enterState(const CHSM::state &state, const CHSM::event &event) override
Action when entering state.

◆ execute()

void KM3NETDAQ::JDAQClient::execute ( action __action,
const CHSM::event & __event )
inlineoverrideprivatevirtualinherited

The method to execute the action.

Parameters
__actionpointer to action method
__eventevent that triggered the action

Implements JDAQCHSM.

Definition at line 1026 of file JDAQClient.hh.

1027 {
1028 try {
1029
1030 const JDAQStateMachine::ev_daq_event& event = dynamic_cast<const JDAQStateMachine::ev_daq_event&>(__event);
1031
1032 (this->*__action)(event->length, event->buffer);
1033 }
1034 catch(const std::exception& error) {
1035 JErrorStream(logger) << "Error at event " << __event.name() << " \"" << error.what() << "\"; trigger ev_error.";
1036 ev_error();
1037 }
1038 }

◆ getState()

const CHSM::state * KM3NETDAQ::JDAQClient::getState ( ) const
inlineprivateinherited

Get current state.

Returns
state

Definition at line 1046 of file JDAQClient.hh.

1047 {
1048 for (CHSM::parent::const_iterator state = Main.RunControl.Operational.begin(); state != Main.RunControl.Operational.end(); ++state) {
1049 if (state->active()) {
1050 return &(*state);
1051 }
1052 }
1053
1054 if (Main.RunControl.Error.active()) {
1055 return &Main.RunControl.Error;
1056 }
1057
1058 return NULL;
1059 }

◆ A1()

void JDAQStateMachine::A1 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 344 of file JDAQCHSM.cc.

344{ actionError(); }
virtual void actionError()
Definition JDAQCHSM.hh:135

◆ A2()

void JDAQStateMachine::A2 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 346 of file JDAQCHSM.cc.

346{ execute(&JDAQCHSM::actionInit, event); }
virtual void actionInit(int, const char *)
Definition JDAQCHSM.hh:123
virtual void execute(action __action, const CHSM::event &__event)=0
The method to execute the action.

◆ A3()

void JDAQStateMachine::A3 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 348 of file JDAQCHSM.cc.

348{ JDAQCHSM::exit(); }

◆ A4()

void JDAQStateMachine::A4 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 350 of file JDAQCHSM.cc.

virtual void actionConfigure(int, const char *)
Definition JDAQCHSM.hh:124

◆ A5()

void JDAQStateMachine::A5 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 352 of file JDAQCHSM.cc.

352{ execute(&JDAQCHSM::actionReset, event); }
virtual void actionReset(int, const char *)
Definition JDAQCHSM.hh:129

◆ A6()

void JDAQStateMachine::A6 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 354 of file JDAQCHSM.cc.

354 {
355
356 std::istringstream is(std::string(ev_start->buffer, ev_start->length));
357
358 is >> run_number >> detector_id;
359
361
362 }
int run_number
Definition JDAQCHSM.hh:167
virtual void actionStart(int, const char *)
Definition JDAQCHSM.hh:125
int detector_id
Definition JDAQCHSM.hh:166
JDAQStateMachine::ev_start_event ev_start

◆ A7()

void JDAQStateMachine::A7 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 364 of file JDAQCHSM.cc.

364{ execute(&JDAQCHSM::actionQuit, event); }
virtual void actionQuit(int, const char *)
Definition JDAQCHSM.hh:130

◆ A8()

void JDAQStateMachine::A8 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 366 of file JDAQCHSM.cc.

virtual void actionContinue(int, const char *)
Definition JDAQCHSM.hh:127

◆ A9()

void JDAQStateMachine::A9 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 368 of file JDAQCHSM.cc.

368{ execute(&JDAQCHSM::actionStop, event); }
virtual void actionStop(int, const char *)
Definition JDAQCHSM.hh:128

◆ A10()

void JDAQStateMachine::A10 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 370 of file JDAQCHSM.cc.

370{ execute(&JDAQCHSM::actionPause, event); }
virtual void actionPause(int, const char *)
Definition JDAQCHSM.hh:126

◆ A11()

void JDAQStateMachine::A11 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 372 of file JDAQCHSM.cc.

virtual void actionRecover(int, const char *)
Definition JDAQCHSM.hh:136

◆ A12()

void JDAQStateMachine::A12 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 374 of file JDAQCHSM.cc.

374{ JDAQCHSM::exit(); }

◆ A13()

void JDAQStateMachine::A13 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 376 of file JDAQCHSM.cc.

376{ execute(&JDAQCHSM::actionCheck, event); }
virtual void actionCheck(int, const char *)
Definition JDAQCHSM.hh:132

◆ A14()

void JDAQStateMachine::A14 ( CHSM_ns_alias::event const & event)
inherited

Definition at line 378 of file JDAQCHSM.cc.

378{ execute(&JDAQCHSM::actionInput, event); }
virtual void actionInput(int, const char *)
Definition JDAQCHSM.hh:133

◆ 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.

337 {
338#line 164 "JDAQCHSM.chsm"
339 CHSM_ns_alias::cluster const &state = (CHSM_ns_alias::cluster const&)chsm_state_; actionEnter(); }
virtual void actionEnter()
Interface methods for actions corresponding to state transitions.
Definition JDAQCHSM.hh:120

◆ 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.

340 {
341#line 165 "JDAQCHSM.chsm"
342 CHSM_ns_alias::cluster const &state = (CHSM_ns_alias::cluster const&)chsm_state_; actionExit(); }
virtual void actionExit()
Definition JDAQCHSM.hh:121

◆ getName()

const std::string & JDAQCHSM::getName ( ) const
inlineinherited

Get name of state machine.

Returns
name

Definition at line 89 of file JDAQCHSM.hh.

90 {
91 return name;
92 }

◆ getDetectorID()

int JDAQCHSM::getDetectorID ( ) const
inlineinherited

Get detector identifier.

Returns
detector identifier.

Definition at line 100 of file JDAQCHSM.hh.

101 {
102 return detector_id;
103 }

◆ getRunNumber()

int JDAQCHSM::getRunNumber ( ) const
inlineinherited

Get run number.

Returns
run number

Definition at line 111 of file JDAQCHSM.hh.

112 {
113 return run_number;
114 }

◆ actionEnter()

virtual void JDAQCHSM::actionEnter ( )
inlinevirtualinherited

Interface methods for actions corresponding to state transitions.

Reimplemented in AcousticDataFilter, JDAQDemoClient, KM3NETDAQ::DataQueue, KM3NETDAQ::JDataFilter, and KM3NETDAQ::MonitorRouter.

Definition at line 120 of file JDAQCHSM.hh.

120{}

◆ actionExit()

virtual void JDAQCHSM::actionExit ( )
inlinevirtualinherited

◆ actionInit()

virtual void JDAQCHSM::actionInit ( int ,
const char *  )
inlinevirtualinherited

◆ actionPause()

virtual void JDAQCHSM::actionPause ( int ,
const char *  )
inlinevirtualinherited

◆ actionContinue()

virtual void JDAQCHSM::actionContinue ( int ,
const char *  )
inlinevirtualinherited

◆ actionError()

virtual void JDAQCHSM::actionError ( )
inlinevirtualinherited

Definition at line 135 of file JDAQCHSM.hh.

135{}

◆ actionRecover()

virtual void JDAQCHSM::actionRecover ( int ,
const char *  )
inlinevirtualinherited

Definition at line 136 of file JDAQCHSM.hh.

136{}

◆ getHostname()

const std::string & KM3NETDAQ::JDAQClient_t::getHostname ( ) const
inlineinherited

Get hostname.

Returns
host name

Definition at line 108 of file JDAQClient.hh.

109 {
110 return hostname;
111 }

◆ 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.

120 {
121 return fullname;
122 }

◆ 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.

131 {
132 return unique_tag;
133 }

◆ 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.

142 {
143 return clock.getDelay();
144 }

◆ 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.

154 {
155 return clock.getInterval();
156 }

◆ setClockInterval()

void KM3NETDAQ::JDAQClient_t::setClockInterval ( const long long int interval_us)
inlineinherited

Set interval time.

Parameters
interval_usinterval time [us]

Definition at line 164 of file JDAQClient.hh.

165 {
166 clock.setInterval(interval_us);
167 }
void setInterval(const long long int interval_us)
Set interval time.

◆ resetClock()

void KM3NETDAQ::JDAQClient_t::resetClock ( )
inlineinherited

Reset clock.

Definition at line 173 of file JDAQClient.hh.

174 {
175 clock.reset();
176 }

◆ getEventInfo()

const std::string & KM3NETDAQ::JDAQClient_t::getEventInfo ( ) const
inlineinherited

Get last event information.

Returns
event information

Definition at line 184 of file JDAQClient.hh.

185 {
186 return event_info;
187 }
std::string event_info
event information

◆ setEventInfo()

void KM3NETDAQ::JDAQClient_t::setEventInfo ( const std::string & info)
inlineinherited

Set last event information.

Parameters
infoevent information

Definition at line 195 of file JDAQClient.hh.

196 {
197 this->event_info = info;
198 }

Member Data Documentation

◆ datawriter

std::shared_ptr<JControlHost> KM3NETDAQ::JEventGenerator::datawriter
private

Definition at line 196 of file JEventGenerator.cc.

◆ parameters

JTRIGGER::JTriggerParameters KM3NETDAQ::JEventGenerator::parameters
private

Definition at line 198 of file JEventGenerator.cc.

◆ inputFile

JSUPPORT::JMultipleFileScanner<KM3NETDAQ::JDAQEvent> KM3NETDAQ::JEventGenerator::inputFile
private

Definition at line 199 of file JEventGenerator.cc.

◆ numberOfEvents

Long64_t KM3NETDAQ::JEventGenerator::numberOfEvents
private

Definition at line 201 of file JEventGenerator.cc.

◆ eventRate_Hz

double KM3NETDAQ::JEventGenerator::eventRate_Hz
private

Definition at line 202 of file JEventGenerator.cc.

◆ timer

JEEP::JTimer KM3NETDAQ::JEventGenerator::timer
private

Definition at line 204 of file JEventGenerator.cc.

◆ numberOfBytes

long long int KM3NETDAQ::JEventGenerator::numberOfBytes
private

Definition at line 205 of file JEventGenerator.cc.

◆ server

std::shared_ptr<JControlHost> KM3NETDAQ::JDAQClient::server
protectedinherited

message server

Definition at line 832 of file JDAQClient.hh.

◆ logger

JMessageLogger KM3NETDAQ::JDAQClient::logger
protectedinherited

message logger

Definition at line 833 of file JDAQClient.hh.

◆ select

JSelectReader KM3NETDAQ::JDAQClient::select
privateinherited

select call

Definition at line 1062 of file JDAQClient.hh.

◆ parser

JParser KM3NETDAQ::JDAQClient::parser
privateinherited

parser method enter()

Definition at line 1063 of file JDAQClient.hh.

◆ subscription

JSubscriptionList KM3NETDAQ::JDAQClient::subscription
privateinherited

custom subscription

Definition at line 1064 of file JDAQClient.hh.

◆ root

JDAQStateMachine::state_root JDAQStateMachine::root
inherited

◆ Main

JDAQStateMachine::state_Main JDAQStateMachine::Main
inherited

◆ ev_daq_transitions

int const JDAQStateMachine::ev_daq_transitions
staticprivateinherited
Initial value:
= {
-1
}

Definition at line 52 of file JDAQCHSM.hh.

◆ ev_daq

JDAQStateMachine::ev_daq_event JDAQStateMachine::ev_daq
inherited

◆ ev_daq_param_block

char JDAQStateMachine::ev_daq_param_block[sizeof(ev_daq_event::param_block)]
inherited

Definition at line 238 of file JDAQCHSM.hh.

◆ ev_init_transitions

int const JDAQStateMachine::ev_init_transitions
staticprivateinherited
Initial value:
= {
1, -1
}

Definition at line 69 of file JDAQCHSM.hh.

◆ ev_init

JDAQStateMachine::ev_init_event JDAQStateMachine::ev_init
inherited

◆ ev_init_param_block

char JDAQStateMachine::ev_init_param_block[sizeof(ev_init_event::param_block)]
inherited

Definition at line 258 of file JDAQCHSM.hh.

◆ ev_configure_transitions

int const JDAQStateMachine::ev_configure_transitions
staticprivateinherited
Initial value:
= {
3, -1
}

Definition at line 86 of file JDAQCHSM.hh.

◆ ev_configure

JDAQStateMachine::ev_configure_event JDAQStateMachine::ev_configure
inherited

◆ ev_configure_param_block

char JDAQStateMachine::ev_configure_param_block[sizeof(ev_configure_event::param_block)]
inherited

Definition at line 278 of file JDAQCHSM.hh.

◆ ev_start_transitions

int const JDAQStateMachine::ev_start_transitions
staticprivateinherited
Initial value:
= {
5, -1
}

Definition at line 103 of file JDAQCHSM.hh.

◆ ev_start

JDAQStateMachine::ev_start_event JDAQStateMachine::ev_start
inherited

◆ ev_start_param_block

char JDAQStateMachine::ev_start_param_block[sizeof(ev_start_event::param_block)]
inherited

Definition at line 298 of file JDAQCHSM.hh.

◆ ev_pause_transitions

int const JDAQStateMachine::ev_pause_transitions
staticprivateinherited
Initial value:
= {
9, -1
}

Definition at line 120 of file JDAQCHSM.hh.

120 {}
121 virtual void actionExit() {}
122

◆ ev_pause

JDAQStateMachine::ev_pause_event JDAQStateMachine::ev_pause
inherited

◆ ev_pause_param_block

char JDAQStateMachine::ev_pause_param_block[sizeof(ev_pause_event::param_block)]
inherited

Definition at line 318 of file JDAQCHSM.hh.

◆ ev_continue_transitions

int const JDAQStateMachine::ev_continue_transitions
staticprivateinherited
Initial value:
= {
7, -1
}

Definition at line 137 of file JDAQCHSM.hh.

139 :
140

◆ ev_continue

JDAQStateMachine::ev_continue_event JDAQStateMachine::ev_continue
inherited

◆ ev_continue_param_block

char JDAQStateMachine::ev_continue_param_block[sizeof(ev_continue_event::param_block)]
inherited

Definition at line 338 of file JDAQCHSM.hh.

◆ ev_stop_transitions

int const JDAQStateMachine::ev_stop_transitions
staticprivateinherited
Initial value:
= {
8, -1
}

Definition at line 154 of file JDAQCHSM.hh.

◆ ev_stop

JDAQStateMachine::ev_stop_event JDAQStateMachine::ev_stop
inherited

◆ ev_stop_param_block

char JDAQStateMachine::ev_stop_param_block[sizeof(ev_stop_event::param_block)]
inherited

Definition at line 358 of file JDAQCHSM.hh.

◆ ev_reset_transitions

int const JDAQStateMachine::ev_reset_transitions
staticprivateinherited
Initial value:
= {
4, -1
}

Definition at line 171 of file JDAQCHSM.hh.

173 : public JDAQCHSM {
DAQ state machine interface.
Definition JDAQCHSM.hh:25

◆ ev_reset

JDAQStateMachine::ev_reset_event JDAQStateMachine::ev_reset
inherited

◆ ev_reset_param_block

char JDAQStateMachine::ev_reset_param_block[sizeof(ev_reset_event::param_block)]
inherited

Definition at line 378 of file JDAQCHSM.hh.

◆ ev_quit_transitions

int const JDAQStateMachine::ev_quit_transitions
staticprivateinherited
Initial value:
= {
6, -1
}

Definition at line 188 of file JDAQCHSM.hh.

188 : public CHSM_ns_alias::cluster { // 1
189 public:
190 class state_Operational : public CHSM_ns_alias::cluster { // 2

◆ ev_quit

JDAQStateMachine::ev_quit_event JDAQStateMachine::ev_quit
inherited

◆ ev_quit_param_block

char JDAQStateMachine::ev_quit_param_block[sizeof(ev_quit_event::param_block)]
inherited

Definition at line 398 of file JDAQCHSM.hh.

◆ ev_off_transitions

int const JDAQStateMachine::ev_off_transitions
staticprivateinherited
Initial value:
= {
2, 11, -1
}

Definition at line 205 of file JDAQCHSM.hh.

205 :
206 static int const children_[];
207 } RunControl;

◆ ev_off

JDAQStateMachine::ev_off_event JDAQStateMachine::ev_off
inherited

◆ ev_off_param_block

char JDAQStateMachine::ev_off_param_block[sizeof(ev_off_event::param_block)]
inherited

Definition at line 418 of file JDAQCHSM.hh.

◆ ev_check_transitions

int const JDAQStateMachine::ev_check_transitions
staticprivateinherited
Initial value:
= {
12, -1
}

Definition at line 222 of file JDAQCHSM.hh.

◆ ev_check

JDAQStateMachine::ev_check_event JDAQStateMachine::ev_check
inherited

◆ ev_check_param_block

char JDAQStateMachine::ev_check_param_block[sizeof(ev_check_event::param_block)]
inherited

Definition at line 438 of file JDAQCHSM.hh.

◆ ev_input_transitions

int const JDAQStateMachine::ev_input_transitions
staticprivateinherited
Initial value:
= {
13, -1
}

Definition at line 239 of file JDAQCHSM.hh.

240 : static int const ev_init_transitions[]; public:
241 class ev_init_event : public JDAQStateMachine::ev_daq_event {
static int const ev_init_transitions[]
Definition JDAQCHSM.hh:69

◆ ev_input

JDAQStateMachine::ev_input_event JDAQStateMachine::ev_input
inherited

◆ ev_input_param_block

char JDAQStateMachine::ev_input_param_block[sizeof(ev_input_event::param_block)]
inherited

Definition at line 458 of file JDAQCHSM.hh.

◆ ev_recover_transitions

int const JDAQStateMachine::ev_recover_transitions
staticprivateinherited
Initial value:
= {
10, -1
}

Definition at line 256 of file JDAQCHSM.hh.

◆ ev_recover

JDAQStateMachine::ev_recover_event JDAQStateMachine::ev_recover
inherited

◆ ev_recover_param_block

char JDAQStateMachine::ev_recover_param_block[sizeof(ev_recover_event::param_block)]
inherited

Definition at line 478 of file JDAQCHSM.hh.

◆ ev_error_transitions

int const JDAQStateMachine::ev_error_transitions
staticprivateinherited
Initial value:
= {
0, -1
}

Definition at line 273 of file JDAQCHSM.hh.

273 :
274 ev_configure_event( CHSM_EVENT_ARGS ) :
275 JDAQStateMachine::ev_daq_event( CHSM_EVENT_INIT ) { }

◆ ev_error

JDAQStateMachine::ev_error_event JDAQStateMachine::ev_error
inherited

◆ ev_error_param_block

char JDAQStateMachine::ev_error_param_block[sizeof(ev_error_event::param_block)]
inherited

Definition at line 495 of file JDAQCHSM.hh.

◆ state_

CHSM_ns_alias::state* JDAQStateMachine::state_[11]
privateinherited

Definition at line 522 of file JDAQCHSM.hh.

◆ transition_

CHSM_ns_alias::transition const JDAQStateMachine::transition_
staticprivateinherited
Initial value:
= {
{ 0, 2, 8, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A1 },
{ 0, 3, 4, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A2 },
{ 0, 3, -1, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A3 },
{ 0, 4, 5, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A4 },
{ 0, 4, 3, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A5 },
{ 0, 5, 7, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A6 },
{ 0, 5, 4, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A7 },
{ 0, 6, 7, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A8 },
{ 0, 6, 4, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A9 },
{ 0, 7, 6, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A10 },
{ 0, 8, 2, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A11 },
{ 0, 8, -1, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A12 },
{ 0, 9, -1, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A13 },
{ 0, 9, -1, 0, (CHSM_ns_alias::transition::action)&JDAQStateMachine::A14 },
0
}
void A1(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:344
void A4(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:350
void A13(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:376
void A11(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:372
void A2(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:346
void A14(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:378
void A7(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:364
void A9(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:368
void A12(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:374
void A3(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:348
void A8(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:366
void A5(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:352
void A10(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:370
void A6(CHSM_ns_alias::event const &)
Definition JDAQCHSM.cc:354

Definition at line 280 of file JDAQCHSM.hh.

280 : static int const ev_start_transitions[]; public:
281 class ev_start_event : public JDAQStateMachine::ev_daq_event {
282 public:
285 param_block( CHSM_ns_alias::event const &, int , const char * );
286 protected:
287 virtual ~param_block();
288 };
289 param_block* operator->() const {
290 return (param_block*)param_block_;
291 }
292 void operator()( int , const char * );
293 protected:
294 ev_start_event( CHSM_EVENT_ARGS ) :
295 JDAQStateMachine::ev_daq_event( CHSM_EVENT_INIT ) { }
296 friend class JDAQStateMachine;
ev_daq_event(CHSM_EVENT_ARGS)
Definition JDAQCHSM.hh:234
param_block * operator->() const
Definition JDAQCHSM.hh:289
JDAQStateMachine::ev_daq_event::param_block base_param_block
Definition JDAQCHSM.hh:283
void operator()(int, const char *)
Definition JDAQCHSM.cc:111
ev_start_event(CHSM_EVENT_ARGS)
Definition JDAQCHSM.hh:294
static int const ev_start_transitions[]
Definition JDAQCHSM.hh:103
param_block(CHSM_ns_alias::event const &, int, const char *)
Definition JDAQCHSM.cc:106

◆ taken_

CHSM_ns_alias::event const* JDAQStateMachine::taken_[14]
privateinherited

Definition at line 524 of file JDAQCHSM.hh.

◆ target_

CHSM_ns_alias::state* JDAQStateMachine::target_[14]
privateinherited

Definition at line 525 of file JDAQCHSM.hh.

◆ name

std::string JDAQCHSM::name
protectedinherited

Definition at line 165 of file JDAQCHSM.hh.

◆ detector_id

int JDAQCHSM::detector_id
protectedinherited

Definition at line 166 of file JDAQCHSM.hh.

◆ run_number

int JDAQCHSM::run_number
protectedinherited

Definition at line 167 of file JDAQCHSM.hh.

◆ TIMEOUT_S

const int KM3NETDAQ::JDAQClient_t::TIMEOUT_S = 1
staticinherited

time out of update [s]

Definition at line 62 of file JDAQClient.hh.

◆ eventTable

JEventTable KM3NETDAQ::JDAQClient_t::eventTable
protectedinherited

event table

Definition at line 202 of file JDAQClient.hh.

◆ hostname

std::string KM3NETDAQ::JDAQClient_t::hostname
protectedinherited

Definition at line 203 of file JDAQClient.hh.

◆ fullname

std::string KM3NETDAQ::JDAQClient_t::fullname
protectedinherited

Definition at line 204 of file JDAQClient.hh.

◆ unique_tag

JTag KM3NETDAQ::JDAQClient_t::unique_tag
protectedinherited

Definition at line 205 of file JDAQClient.hh.

◆ clock

JTimekeeper KM3NETDAQ::JDAQClient_t::clock
protectedinherited

central clock

Definition at line 206 of file JDAQClient.hh.

◆ event_info

std::string KM3NETDAQ::JDAQClient_t::event_info
protectedinherited

event information

Definition at line 207 of file JDAQClient.hh.


The documentation for this class was generated from the following file: