QSlowBaseCommand Class Reference

Inheritance diagram for QSlowBaseCommand:

QCommand

List of all members.


Detailed Description

base class for all the Slow Server commands

Author:
Andrea Giachero (Andrea.Giachero@lngs.infn.it)

Public Types

enum  QSlowCmdType_t { QSLOW_GENERIC = 0xaa, QSLOW_SET, QSLOW_GET, QSLOW_START }
 Command Types Definition.
enum  QSlowKeyWords_t {
  QSLOW_KLG, QSLOW_KBASKET, QSLOW_KID, QSLOW_KCH,
  QSLOW_KDEV, QSLOW_KFE_CRATE, QSLOW_KFE_BOARD, QSLOW_KFE_CHANNEL,
  QSLOW_KBS_CRATE, QSLOW_KBS_BOARD, QSLOW_KBS_CHANNEL, QSLOW_KPS_CRATE,
  QSLOW_KPS_BOARD, QSLOW_KPS_CHANNEL
}
 Key Words for the commands.
enum  QSlowTarget_t {
  QSLOW_GE_TARGET, QSLOW_FE_TARGET, QSLOW_BS_TARGET, QSLOW_PS_TARGET,
  QSLOW_PO_TARGET
}
 Command targets. More...
enum  QSlowEleCommand_t {
  QSLOW_GE_MODE, QSLOW_GE_WRITE, QSLOW_GE_NUM, QSLOW_GE_LIVETIME,
  QSLOW_GE_BASKET, QSLOW_GE_IFACE, QSLOW_FE_NAME, QSLOW_FE_ID,
  QSLOW_FE_LABEL, QSLOW_FE_CRATE, QSLOW_FE_SLOT, QSLOW_FE_BOARD,
  QSLOW_FE_CHANNEL, QSLOW_FE_MEMA, QSLOW_FE_MEMB, QSLOW_FE_MEMC,
  QSLOW_FE_MEMD, QSLOW_FE_DACH, QSLOW_FE_DACL, QSLOW_FE_GAIN,
  QSLOW_FE_BIAS, QSLOW_FE_BIAS_POL, QSLOW_FE_ACYCLE, QSLOW_FE_ATIME,
  QSLOW_FE_RLOAD, QSLOW_FE_INPUT, QSLOW_FE_AUX, QSLOW_FE_THERM,
  QSLOW_FE_ODAC, QSLOW_FE_OMSB, QSLOW_FE_OSBIT, QSLOW_FE_OPOL,
  QSLOW_FE_TEST_POS, QSLOW_FE_TEST_NEG, QSLOW_BS_NAME, QSLOW_BS_ID,
  QSLOW_BS_LABEL, QSLOW_BS_CRATE, QSLOW_BS_SLOT, QSLOW_BS_BOARD,
  QSLOW_BS_CHANNEL, QSLOW_BS_MEM, QSLOW_BS_TRGAIN, QSLOW_BS_DELETION,
  QSLOW_BS_ENABLE, QSLOW_BS_CUTFREQ, QSLOW_PS_NAME, QSLOW_PS_ID,
  QSLOW_PS_LABEL, QSLOW_PS_CRATE, QSLOW_PS_SLOT, QSLOW_PS_BOARD,
  QSLOW_PS_CHANNEL, QSLOW_PS_GROUP, QSLOW_PS_WIDTH, QSLOW_PS_AMPLI,
  QSLOW_PS_ATTEN, QSLOW_PS_FIRE, QSLOW_PS_MEM0, QSLOW_PS_MEM1,
  QSLOW_PS_MEM2, QSLOW_PS_MEM3, QSLOW_PO_IDN, QSLOW_PO_VENDOR,
  QSLOW_PO_NAME, QSLOW_PO_TYPE, QSLOW_PO_VSET, QSLOW_PO_ISET,
  QSLOW_PO_VOUT, QSLOW_PO_IOUT, QSLOW_PO_VOUT_EN
}
 Commands Parameters.

Public Member Functions

 QSlowBaseCommand (QSlowCmdType_t Type)
virtual void Execute ()=0
 execute command
virtual void CheckParams ()=0
 chech whether all parameters are present and meaningful

Protected Types

enum  QSlowBoolType_t {
  QSLOW_NO_BOOL = 1000, QSLOW_ONOFF, QSLOW_POSNEG, QSLOW_TESTBOLO,
  QSLOW_RMAXRMIN
}
 Boolean Type Definition. More...

Protected Member Functions

bool IsLg ()
bool IsPhysical ()
bool IsId ()
const QSlowCmdType_t GetCmdType () const
const std::string fuits (size_t IntVal)
std::string Binary (size_t Value)
bool CheckForNotValidParams (QError &ErrorRet)
void NotDefined (QError &ErrorRet, QSlowTarget_t Target, QSlowEleCommand_t CmdCode)
bool IsLocked ()
bool IsUnlockCommand (QSlowEleCommand_t CmdCode)
bool OnlyOne (const std::string &cmd)
const QSlowTypes::QSlowDevice_t GetDeviceType (QSlowTarget_t target) const

Protected Attributes

int fLg
int fId
int fCrate
int fBoard
int fChannel
std::string fStringVal
QSlowEleCommand_t fCmdCode
QSlowTarget_t fTarget
QSlowCmdType_t fCmdType

Static Protected Attributes

static std::map
< QSlowEleCommand_t,
std::string > 
gGECommands
static std::map
< QSlowEleCommand_t,
std::string > 
gBSCommands
static std::map
< QSlowEleCommand_t,
std::string > 
gFECommands
static std::map
< QSlowEleCommand_t,
std::string > 
gPSCommands
static std::map
< QSlowEleCommand_t,
std::string > 
gPOCommands
static std::map< QSlowTarget_t,
QSlowTypes::QSlowDevice_t > 
gToDevice
static std::map
< QSlowKeyWords_t, std::string > 
gKeyWords

Private Attributes

bool fIsLg
bool fIsPhysical
bool fIsId

Member Enumeration Documentation

Command targets.

Enumerator:
QSLOW_GE_TARGET  Target: slow server
QSLOW_FE_TARGET  Target: Front-End
QSLOW_BS_TARGET  Target: Bessel
QSLOW_PS_TARGET  Pulser: Pulser
QSLOW_PO_TARGET  Power Supply Target

Boolean Type Definition.

Enumerator:
QSLOW_NO_BOOL  The Value is not boolean
QSLOW_ONOFF  true(1)=ON, false(0)=OFF
QSLOW_POSNEG  true(1)=POSITIVE, false(0)=NEGATIVE
QSLOW_TESTBOLO  true(1)=TEST INPUT, false(0)=BOLOMETER
QSLOW_RMAXRMIN  true(1)=R_LOAD MAX, false(0)=R_LOAD MIN


Member Function Documentation

virtual void QSlowBaseCommand::Execute (  )  [pure virtual]

execute command

This method should be called after CheckParams(), and only if after calling CheckParams() the command is still valid and has no errors.
This method is expected to execute the command by calling the appropriate method of the main server object based on the modifier and the parameters obtained in CheckParams().

Implements QCommand.

virtual void QSlowBaseCommand::CheckParams (  )  [pure virtual]

chech whether all parameters are present and meaningful

The aim of this method is to separate checks on command correctness from command execution (performed in Execute()).
This method should check whether all the parameters needed for the requested command/modifier pair are present and make sense.
In case of failure an error must be set by calling SetError()

Implements QCommand.


Member Data Documentation

int QSlowBaseCommand::fLg [protected]

Logical Channel

int QSlowBaseCommand::fId [protected]

Channel Id

int QSlowBaseCommand::fCrate [protected]

Electronics Crate Address

int QSlowBaseCommand::fBoard [protected]

Electronics Board Address

int QSlowBaseCommand::fChannel [protected]

Electronics Channel Address

Command code

Command target

Command type

std::map< QSlowBaseCommand::QSlowEleCommand_t, std::string > QSlowBaseCommand::gGECommands [static, protected]

Generic server commands map

std::map< QSlowBaseCommand::QSlowEleCommand_t, std::string > QSlowBaseCommand::gBSCommands [static, protected]

Bessel commands map

std::map< QSlowBaseCommand::QSlowEleCommand_t, std::string > QSlowBaseCommand::gFECommands [static, protected]

Front-End commands map

std::map< QSlowBaseCommand::QSlowEleCommand_t, std::string > QSlowBaseCommand::gPSCommands [static, protected]

Pulser commands map

std::map< QSlowBaseCommand::QSlowEleCommand_t, std::string > QSlowBaseCommand::gPOCommands [static, protected]

Power Supply command map

std::map< QSlowBaseCommand::QSlowTarget_t, QSlowTypes::QSlowDevice_t > QSlowBaseCommand::gToDevice [static, protected]

convert QSlowTarget_t in QSlowDevice_t

std::map< QSlowBaseCommand::QSlowKeyWords_t, std::string > QSlowBaseCommand::gKeyWords [static, protected]

Command keywords map

bool QSlowBaseCommand::fIsLg [private]

true if the addressing is done by logical cha nnel

true if the addressing is done by physical channel

bool QSlowBaseCommand::fIsId [private]

true if the addressing is done by channel id


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

Generated on Tue Nov 16 10:50:08 2010 for CUORE Software by  doxygen 1.5.6