otsdaq  v2_04_01
ots::FEVInterface Class Referenceabstract
Inheritance diagram for ots::FEVInterface:
ots::VStateMachine ots::WorkLoop ots::Configurable ots::FEProducerVInterface

Classes

struct  frontEndMacroStruct_t
 
struct  macroStruct_t
 

Public Types

using frontEndMacroArg_t = std::pair< const std::string, std::string >
 
using frontEndMacroArgs_t = std::vector< frontEndMacroArg_t > &
 
using frontEndMacroConstArgs_t = const std::vector< frontEndMacroArg_t > &
 
using frontEndMacroFunction_t = void(ots::FEVInterface::*)(const frontEndMacroStruct_t &feMacroStruct, FEVInterface::frontEndMacroConstArgs_t argsIn, FEVInterface::frontEndMacroArgs_t argsOut)
 

Public Member Functions

 FEVInterface (const std::string &interfaceUID, const ConfigurationTree &theXDAQContextConfigTree, const std::string &configurationPath)
 
const std::string & getInterfaceUID (void) const
 
virtual std::string getInterfaceType (void) const
 
virtual void universalRead (char *address, char *returnValue)=0
 
virtual void universalWrite (char *address, char *writeValue)=0
 
const unsigned int & getUniversalAddressSize (void)
 
const unsigned int & getUniversalDataSize (void)
 
void runSequenceOfCommands (const std::string &treeLinkName)
 
void configure (void)
 
void start (std::string runNumber)
 
void stop (void)
 
void halt (void)
 
void pause (void)
 
void resume (void)
 
bool running (void)
 
void configureSlowControls (void)
 
bool slowControlsRunning (void)
 
void startSlowControlsWorkLooop (void)
 
void stopSlowControlsWorkLooop (void)
 
const std::map< std::string,
frontEndMacroStruct_t > & 
getMapOfFEMacroFunctions (void)
 
void runSelfFrontEndMacro (const std::string &feMacroName, const std::vector< FEVInterface::frontEndMacroArg_t > &inputArgs, std::vector< FEVInterface::frontEndMacroArg_t > &outputArgs)
 
template<class T >
void sendToFrontEnd (const std::string &targetInterfaceID, const T &value) const
 
void runFrontEndMacro (const std::string &targetInterfaceID, const std::string &feMacroName, const std::vector< FEVInterface::frontEndMacroArg_t > &inputArgs, std::vector< FEVInterface::frontEndMacroArg_t > &outputArgs) const
 
template<class T >
void receiveFromFrontEnd (const std::string &requester, T &retValue, unsigned int timeoutInSeconds=1) const
 
void receiveFromFrontEnd (const std::string &requester, std::string &retValue, unsigned int timeoutInSeconds=1) const
 
template<class T >
receiveFromFrontEnd (const std::string &requester="*", unsigned int timeoutInSeconds=1) const
 
std::string receiveFromFrontEnd (const std::string &requester="*", unsigned int timeoutInSeconds=1) const
 
- Public Member Functions inherited from ots::VStateMachine
virtual void paused (void)
 
virtual void halted (void)
 
virtual void configured (void)
 
virtual void initial (void)
 
virtual void inError (void)
 
void setIterationIndex (unsigned int i)
 
void setSubIterationIndex (unsigned int i)
 
unsigned int getIterationIndex (void)
 
unsigned int getSubIterationIndex (void)
 
void indicateIterationWork (void)
 
void clearIterationWork (void)
 
bool getIterationWork (void)
 
void indicateSubIterationWork (void)
 
void clearSubIterationWork (void)
 
bool getSubIterationWork (void)
 
- Public Member Functions inherited from ots::WorkLoop
 WorkLoop (const std::string &name)
 
void startWorkLoop (void)
 
bool stopWorkLoop (void)
 
bool isActive (void) const
 
- Public Member Functions inherited from ots::Configurable
 Configurable (const ConfigurationTree &theXDAQContextConfigTree, const std::string &theConfigurationPath)
 
ConfigurationTree getSelfNode () const
 
const ConfigurationManagergetConfigurationManager () const
 
const std::string & getContextUID () const
 
const std::string & getApplicationUID () const
 
unsigned int getApplicationLID () const
 
std::string getContextAddress () const
 
unsigned int getContextPort () const
 

Static Public Member Functions

static void sendAsyncErrorToGateway (FEVInterface *fe, const std::string &errMsg, bool isSoftError)
 
static const std::string & getFEMacroConstArgument (frontEndMacroConstArgs_t args, const std::string &argName)
 
static std::string & getFEMacroArgument (frontEndMacroArgs_t args, const std::string &argName)
 

Public Attributes

FEVInterfacesManagerparentInterfaceManager_
 
- Public Attributes inherited from ots::VStateMachine
CoreSupervisorBaseparentSupervisor_
 

Protected Member Functions

void runMacro (FEVInterface::macroStruct_t &macro, std::map< std::string, uint64_t > &variableMap)
 
bool workLoopThread (toolbox::task::WorkLoop *workLoop)
 
void registerFEMacroFunction (const std::string &feMacroName, frontEndMacroFunction_t feMacroFunction, const std::vector< std::string > &namesOfInputArgs, const std::vector< std::string > &namesOfOutputArgs, uint8_t requiredUserPermissions=1, const std::string &allowedCallingFEs="*")
 
template<class T >
std::string & setFEMacroArgumentValue (frontEndMacroArgs_t args, const std::string &argName, const T &value) const
 
template<class T >
std::string & emplaceFEMacroArgumentValue (frontEndMacroArgs_t args, const std::string &argName, const T &value) const
 
- Protected Member Functions inherited from ots::WorkLoop
const std::string & getWorkLoopName (void) const
 

Protected Attributes

std::string interfaceUID_
 
unsigned int universalAddressSize_ = 0
 
unsigned int universalDataSize_ = 0
 
std::map< std::string,
FESlowControlsChannel
mapOfSlowControlsChannels_
 
FESlowControlsWorkLoop slowControlsWorkLoop_
 
std::map< std::string,
frontEndMacroStruct_t
mapOfFEMacroFunctions_
 
- Protected Attributes inherited from ots::WorkLoop
volatile bool continueWorkLoop_
 
- Protected Attributes inherited from ots::Configurable
const ConfigurationTree theXDAQContextConfigTree_
 
const std::string theConfigurationPath_
 
const std::string theConfigurationRecordName_
 

Friends

class FEVInterfacesManager
 

Detailed Description

Definition at line 53 of file FEVInterface.h.


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