40#define TID_BITFIELD 11
53#define MT_ERROR (1<<0)
55#define MT_DEBUG (1<<2)
62#define MT_ERROR_STR "ERROR"
63#define MT_INFO_STR "INFO"
64#define MT_DEBUG_STR "DEBUG"
65#define MT_USER_STR "USER"
66#define MT_LOG_STR "LOG"
67#define MT_TALK_STR "TALK"
68#define MT_CALL_STR "CALL"
70#define MERROR MT_ERROR, __FILE__, __LINE__
71#define MINFO MT_INFO, __FILE__, __LINE__
72#define MDEBUG MT_DEBUG, __FILE__, __LINE__
73#define MUSER MT_USER, __FILE__, __LINE__
74#define MLOG MT_LOG, __FILE__, __LINE__
75#define MTALK MT_TALK, __FILE__, __LINE__
76#define MCALL MT_CALL, __FILE__, __LINE__
79#define MATTRPRINTF(a, b) __attribute__ ((format (printf, a, b)))
81#define MATTRPRINTF(a, b)
168 int BkSize(
const char* pevent);
183 virtual std::string
HandleRpc(
const char* cmd,
const char*
args);
274 void Msg(
int message_type,
const char *filename,
int line,
const char *routine,
const char *format, ...)
MATTRPRINTF(6,7);
TMFeError TriggerAlarm(const char *name, const char *message, const char *aclass)
void RegisterRpcHandler(TMFeRpcHandlerInterface *handler)
RPC handlers are executed from the RPC thread, if started.
void DeregisterTransitionStartAbort()
static std::string GetThreadId()
return identification of this thread
bool fPeriodicThreadShutdownRequested
void DeregisterTransitionResume()
std::string fFrontendFilename
frontend program file name
TMFE()
default constructor is private for singleton classes
static double GetTime()
return current time in seconds, with micro-second precision
void MidasPeriodicTasks()
std::vector< TMFePeriodicHandler * > fPeriodicHandlers
int fDB
ODB database handle.
bool fRpcThreadShutdownRequested
void DeregisterTransitionPause()
void EquipmentPeriodicTasks()
void SetTransitionSequenceResume(int seqno)
void SetTransitionSequenceStop(int seqno)
std::string fFrontendHostname
frontend hostname
void StartPeriodicThread()
void Msg(int message_type, const char *filename, int line, const char *routine, const char *format,...) MATTRPRINTF(6
void DeregisterTransitionStop()
TMFeResult Connect(const char *progname=NULL, const char *hostname=NULL, const char *exptname=NULL)
bool fPeriodicThreadStarting
void SetTransitionSequenceStartAbort(int seqno)
static void Sleep(double sleep_time_sec)
sleep, with micro-second precision
bool fPeriodicThreadRunning
std::string fFrontendName
frontend program name
void SetTransitionSequencePause(int seqno)
TMFeError SetWatchdogSec(int sec)
bool fShutdownRequested
shutdown was requested by Ctrl-C or by RPC command
void StopPeriodicThread()
void RegisterTransitionStartAbort()
TMFeError ResetAlarm(const char *name)
std::string fHostname
hostname we are running on
void RegisterPeriodicHandler(TMFeEquipment *eq, TMFePeriodicHandlerInterface *handler)
periodic handlers are executed from the periodic thread, if started
MVOdb * fOdbRoot
ODB root.
std::vector< TMFeRpcHandlerInterface * > fRpcHandlers
void DeregisterTransitionStart()
std::vector< TMFeEquipment * > fEquipments
TMFeError RegisterEquipment(TMFeEquipment *eq)
void DeregisterTransitions()
void PollMidas(int millisec)
void SetTransitionSequenceStart(int seqno)
virtual ~TMFE()
destructor is private for singleton classes
std::string fExptname
experiment name, blank if only one experiment defined in exptab
std::string FrontendFileName
TMFeError SendData(const char *data, int size)
...
void * BkOpen(char *pevent, const char *bank_name, int bank_type) const
TMFeResult BkInit(char *pevent, size_t size) const
MVOdb * fOdbEqSettings
ODB Equipment/EQNAME/Settings.
MVOdb * fOdbEqVariables
ODB Equipment/EQNAME/Variables.
TMFeError ZeroStatistics()
TMFeError WriteStatistics()
TMFeResult BkClose(char *pevent, void *ptr) const
TMFeResult ComposeEvent(char *pevent, size_t size) const
TMFeError SendEvent(const char *pevent)
MVOdb * fOdbEqCommon
ODB Equipment/EQNAME/Common.
MVOdb * fOdbEq
ODB Equipment/EQNAME.
int BkSize(const char *pevent) const
TMFeError Init()
Initialize equipment.
TMFeError SetStatus(const char *status, const char *color)
MVOdb * fOdbEqStatistics
ODB Equipment/EQNAME/Statistics.
TMFeError(int status, const std::string &str)
TMFePeriodicHandlerInterface * fHandler
virtual void HandlePeriodic()=0
virtual void HandleStartAbortRun()
virtual void HandlePauseRun()
virtual TMFeResult HandleRpc(const char *cmd, const char *args, std::string &result)
virtual void HandleEndRun()
virtual void HandleResumeRun()
virtual void HandleBeginRun()
#define message(type, str)
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)
#define MATTRPRINTF(a, b)