MIDAS
Loading...
Searching...
No Matches
EqRpc Class Reference
Inheritance diagram for EqRpc:
Collaboration diagram for EqRpc:

Public Member Functions

 EqRpc (const char *eqname, const char *eqfilename)
 
 ~EqRpc ()
 
TMFeResult HandleInit (const std::vector< std::string > &args)
 
TMFeResult HandleRpc (const char *cmd, const char *args, std::string &response)
 
TMFeResult HandleBinaryRpc (const char *cmd, const char *args, std::vector< char > &response)
 
TMFeResult HandleBeginRun (int run_number)
 
TMFeResult HandleEndRun (int run_number)
 
TMFeResult HandlePauseRun (int run_number)
 
TMFeResult HandleResumeRun (int run_number)
 
TMFeResult HandleStartAbortRun (int run_number)
 
- Public Member Functions inherited from TMFeEquipment
 TMFeEquipment (const char *eqname, const char *eqfilename)
 
virtual ~TMFeEquipment ()
 
TMFeResult EqInit (const std::vector< std::string > &args)
 Initialize equipment.
 
TMFeResult EqPreInit ()
 Initialize equipment, before EquipmentBase::Init()
 
TMFeResult EqPostInit ()
 Initialize equipment, after EquipmentBase::Init()
 
TMFeResult EqReadCommon ()
 Read TMFeEqInfo from ODB /Equipment/NAME/Common.
 
TMFeResult EqWriteCommon (bool create=false)
 Write TMFeEqInfo to ODB /Equipment/NAME/Common.
 
virtual void HandleUsage ()
 
virtual void HandlePeriodic ()
 
virtual bool HandlePoll ()
 
virtual void HandlePollRead ()
 
void EqPollThread ()
 
void EqStartPollThread ()
 
void EqStopPollThread ()
 
TMFeResult ComposeEvent (char *pevent, size_t size) const
 
TMFeResult BkInit (char *pevent, size_t size) const
 
voidBkOpen (char *pevent, const char *bank_name, int bank_type) const
 
TMFeResult BkClose (char *pevent, void *ptr) const
 
int BkSize (const char *pevent) const
 
TMFeResult EqSendEvent (const char *pevent, bool write_to_odb=true)
 
TMFeResult EqSendEvent (const std::vector< char > &event, bool write_to_odb=true)
 
TMFeResult EqSendEvent (const std::vector< std::vector< char > > &event, bool write_to_odb=true)
 
TMFeResult EqSendEvent (int sg_n, const char *sg_ptr[], const size_t sg_len[], bool write_to_odb=true)
 
TMFeResult EqWriteEventToOdb (const char *pevent)
 
TMFeResult EqZeroStatistics ()
 
TMFeResult EqWriteStatistics ()
 
TMFeResult EqSetStatus (const char *status, const char *color)
 
 TMFeEquipment (TMFE *mfe, const char *name, TMFeCommon *common)
 
TMFeError Init ()
 Initialize equipment.
 
TMFeError SendData (const char *data, int size)
 ...
 
TMFeError ComposeEvent (char *pevent, int size)
 
TMFeError BkInit (char *pevent, int size)
 
voidBkOpen (char *pevent, const char *bank_name, int bank_type)
 
TMFeError BkClose (char *pevent, void *ptr)
 
int BkSize (const char *pevent)
 
TMFeError SendEvent (const char *pevent)
 
TMFeError ZeroStatistics ()
 
TMFeError WriteStatistics ()
 
TMFeError SetStatus (const char *status, const char *color)
 
- Public Member Functions inherited from TMFeRpcHandlerInterface
virtual void HandleBeginRun ()
 
virtual void HandleEndRun ()
 
virtual void HandlePauseRun ()
 
virtual void HandleResumeRun ()
 
virtual void HandleStartAbortRun ()
 
virtual std::string HandleRpc (const char *cmd, const char *args)
 

Additional Inherited Members

- Public Attributes inherited from TMFeEquipment
std::string fEqName
 
std::string fEqFilename
 
bool fEqConfEnableRpc = true
 
bool fEqConfEnablePeriodic = true
 
bool fEqConfEnablePoll = false
 
bool fEqConfReadConfigFromOdb = true
 
bool fEqConfEnabled = true
 
uint16_t fEqConfEventID = 1
 
uint16_t fEqConfTriggerMask = 0
 
std::string fEqConfBuffer = "SYSTEM"
 
int fEqConfType = 0
 
int fEqConfSource = 0
 
std::string fEqConfFormat = "MIDAS"
 
int fEqConfReadOn = 0
 
int fEqConfPeriodMilliSec = 1000
 
double fEqConfEventLimit = 0
 
uint32_t fEqConfNumSubEvents = 0
 
int fEqConfLogHistory = 0
 
bool fEqConfHidden = false
 
int fEqConfWriteCacheSize = 10000000
 
bool fEqConfReadOnlyWhenRunning = true
 
bool fEqConfWriteEventsToOdb = false
 
double fEqConfPeriodStatisticsSec = 1.0
 
double fEqConfPollSleepSec = 0.000100
 
size_t fEqConfMaxEventSize = 0
 
size_t fEqConfBufferSize = 0
 
std::mutex fEqMutex
 
TMFEfMfe = NULL
 
TMFrontendfFe = NULL
 
MVOdbfOdbEq = NULL
 ODB Equipment/EQNAME.
 
MVOdbfOdbEqCommon = NULL
 ODB Equipment/EQNAME/Common.
 
MVOdbfOdbEqSettings = NULL
 ODB Equipment/EQNAME/Settings.
 
MVOdbfOdbEqVariables = NULL
 ODB Equipment/EQNAME/Variables.
 
MVOdbfOdbEqStatistics = NULL
 ODB Equipment/EQNAME/Statistics.
 
TMEventBufferfEqEventBuffer = NULL
 
int fEqSerial = 0
 
double fEqStatEvents = 0
 
double fEqStatBytes = 0
 
double fEqStatEpS = 0
 
double fEqStatKBpS = 0
 
double fEqStatLastTime = 0
 
double fEqStatLastEvents = 0
 
double fEqStatLastBytes = 0
 
double fEqStatLastWrite = 0
 
double fEqStatNextWrite = 0
 
double fEqPeriodicLastCallTime = 0
 
double fEqPeriodicNextCallTime = 0
 
std::atomic_bool fEqPollThreadStarting {false}
 
std::atomic_bool fEqPollThreadRunning {false}
 
std::atomic_bool fEqPollThreadShutdownRequested {false}
 
std::thread * fEqPollThread = NULL
 
std::string fName
 
TMFeCommonfCommon
 
int fBufferHandle
 
int fSerial
 
double fStatEvents
 
double fStatBytes
 
double fStatEpS
 
double fStatKBpS
 
double fStatLastTime
 
double fStatLastEvents
 
double fStatLastBytes
 

Detailed Description

Definition at line 364 of file fetest.cxx.

Constructor & Destructor Documentation

◆ EqRpc()

EqRpc::EqRpc ( const char eqname,
const char eqfilename 
)
inline

Definition at line 368 of file fetest.cxx.

370 {
371 fEqConfEventID = 1;
372 }
uint16_t fEqConfEventID
Definition tmfe.h:171
TMFeEquipment()
Definition tmfe.h:255
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)
Definition rmidas.h:24

◆ ~EqRpc()

EqRpc::~EqRpc ( )
inline

Definition at line 374 of file fetest.cxx.

375 {
376 }

Member Function Documentation

◆ HandleBeginRun()

TMFeResult EqRpc::HandleBeginRun ( int  run_number)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 418 of file fetest.cxx.

419 {
420 fMfe->Msg(MINFO, "HandleBeginRun", "Begin run %d!", run_number);
421 EqSetStatus("Running", "#00FF00");
422
423 printf("begin_of_run %d\n", run_number);
424
425 int fail = 0;
426 fOdbEqSettings->RI("begin_of_run_fail", &fail, true);
427
428 if (fail) {
429 printf("fail_begin_of_run: returning error status %d\n", fail);
430 return TMFeErrorMessage("begin of run failed by ODB setting!");
431 }
432
433 double s = 0;
434 fOdbEqSettings->RD("begin_of_run_sleep_sec", &s, true);
435
436 if (s) {
437 fMfe->SetWatchdogSec(s + 1);
438 int ms = int(s*1000.0);
439 printf("sleep_begin_of_run: calling ss_sleep(%d)\n", ms);
440 ss_sleep(ms);
441 }
442
443 return TMFeOk();
444 }
void Msg(int message_type, const char *filename, int line, const char *routine, const char *format,...) MATTRPRINTF(6
Definition tmfe.cxx:991
TMFeResult SetWatchdogSec(int sec)
Definition tmfe.cxx:144
MVOdb * fOdbEqSettings
ODB Equipment/EQNAME/Settings.
Definition tmfe.h:213
TMFE * fMfe
Definition tmfe.h:207
TMFeResult EqSetStatus(const char *status, const char *color)
Definition tmfe.cxx:2215
#define MINFO
Definition midas.h:560
INT ss_sleep(INT millisec)
Definition system.cxx:3628
INT run_number[2]
Definition mana.cxx:246
TMFeResult TMFeErrorMessage(const std::string &message)
Definition tmfe.cxx:29
TMFeResult TMFeOk()
Definition tmfe.h:106
Here is the call graph for this function:

◆ HandleBinaryRpc()

TMFeResult EqRpc::HandleBinaryRpc ( const char cmd,
const char args,
std::vector< char > &  response 
)
inlinevirtual

Reimplemented from TMFeRpcHandlerInterface.

Definition at line 401 of file fetest.cxx.

402 {
403 fMfe->Msg(MINFO, "HandleBinaryRpc", "RPC cmd [%s], args [%s]", cmd, args);
404
405 // RPC handler
406
407 response.resize(8*64);
408
409 uint64_t* p64 = (uint64_t*)response.data();
410
411 for (size_t i=0; i<response.size()/sizeof(p64[0]); i++) {
412 *p64++ = (1<<i);
413 }
414
415 return TMFeOk();
416 }
INT i
Definition mdump.cxx:32
char response[10000]
Definition melog.cxx:90
Here is the call graph for this function:

◆ HandleEndRun()

TMFeResult EqRpc::HandleEndRun ( int  run_number)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 446 of file fetest.cxx.

447 {
448 fMfe->Msg(MINFO, "HandleEndRun", "End run %d!", run_number);
449 EqSetStatus("Stopped", "#00FF00");
450
451 printf("end_of_run %d\n", run_number);
452
453 int fail = 0;
454 fOdbEqSettings->RI("end_of_run_fail", &fail, true);
455
456 if (fail) {
457 printf("fail_end_of_run: returning error status %d\n", fail);
458 return TMFeResult(fail, "end of run failed by ODB setting!");
459 }
460
461 double s = 0;
462 fOdbEqSettings->RD("end_of_run_sleep_sec", &s, true);
463
464 if (s) {
465 fMfe->SetWatchdogSec(s + 1);
466 int ms = int(s*1000.0);
467 printf("sleep_end_of_run: calling ss_sleep(%d)\n", ms);
468 ss_sleep(ms);
469 }
470
471 return TMFeOk();
472 }
Here is the call graph for this function:

◆ HandleInit()

TMFeResult EqRpc::HandleInit ( const std::vector< std::string > &  args)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 378 of file fetest.cxx.

379 {
380 fEqConfBuffer = "SYSTEM";
381 EqSetStatus("Started...", "white");
382 fMfe->Msg(MINFO, "HandleInit", std::string("Init") + " Ok!");
383 return TMFeOk();
384 }
std::string fEqConfBuffer
Definition tmfe.h:173
Here is the call graph for this function:

◆ HandlePauseRun()

TMFeResult EqRpc::HandlePauseRun ( int  run_number)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 474 of file fetest.cxx.

475 {
476 fMfe->Msg(MINFO, "HandlePauseRun", "Pause run %d!", run_number);
477 EqSetStatus("Stopped", "#00FF00");
478
479 printf("pause_run %d\n", run_number);
480
481 int fail = 0;
482 fOdbEqSettings->RI("pause_run_fail", &fail, true);
483
484 if (fail) {
485 printf("fail_pause_run: returning error status %d\n", fail);
486 return TMFeResult(fail, "pause run failed by ODB setting!");
487 }
488
489 return TMFeOk();
490 }
Here is the call graph for this function:

◆ HandleResumeRun()

TMFeResult EqRpc::HandleResumeRun ( int  run_number)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 492 of file fetest.cxx.

493 {
494 fMfe->Msg(MINFO, "HandleResumeRun", "Resume run %d!", run_number);
495 EqSetStatus("Stopped", "#00FF00");
496
497 printf("resume_run %d\n", run_number);
498
499 int fail = 0;
500 fOdbEqSettings->RI("resume_run_fail", &fail, true);
501
502 if (fail) {
503 printf("fail_resume_run: returning error status %d\n", fail);
504 return TMFeResult(fail, "resume run failed by ODB setting!");
505 }
506
507 return TMFeOk();
508 }
Here is the call graph for this function:

◆ HandleRpc()

TMFeResult EqRpc::HandleRpc ( const char cmd,
const char args,
std::string &  response 
)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 386 of file fetest.cxx.

387 {
388 fMfe->Msg(MINFO, "HandleRpc", "RPC cmd [%s], args [%s]", cmd, args);
389
390 // RPC handler
391
392 char tmp[256];
393 time_t now = time(NULL);
394 sprintf(tmp, "{ \"current_time\" : [ %d, \"%s\"] }", (int)now, ctime(&now));
395
396 response = tmp;
397
398 return TMFeOk();
399 }
#define ctime
Definition msystem.h:264
Here is the call graph for this function:

◆ HandleStartAbortRun()

TMFeResult EqRpc::HandleStartAbortRun ( int  run_number)
inlinevirtual

Reimplemented from TMFeEquipment.

Definition at line 510 of file fetest.cxx.

511 {
512 fMfe->Msg(MINFO, "HandleStartAbortRun", "Begin run %d aborted!", run_number);
513 EqSetStatus("Stopped", "#00FF00");
514
515 printf("start abort run %d\n", run_number);
516
517 int fail = 0;
518 fOdbEqSettings->RI("start_abort_fail", &fail, true);
519
520 if (fail) {
521 printf("fail_start_abort: returning error status %d\n", fail);
522 return TMFeResult(fail, "start abort failed by ODB setting!");
523 }
524
525 return TMFeOk();
526 }
Here is the call graph for this function:

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