Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ROC_COMMANDS_H
00016 #define ROC_COMMANDS_H
00017
00018
00019 #ifndef DABC_Command
00020 #include "dabc/Command.h"
00021 #endif
00022
00023 #ifndef DABC_Exception
00024 #include "dabc/Exception.h"
00025 #endif
00026
00027 #include <stdint.h>
00028
00029 namespace base {
00030 class OperList;
00031 }
00032
00033 namespace roc {
00034
00035 extern const char* AddrPar;
00036 extern const char* ValuePar;
00037 extern const char* ErrNoPar;
00038 extern const char* TmoutPar;
00039 extern const char* RawDataPar;
00040 extern const char* OperListPar;
00041
00042 extern const char* xmlRawReadout;
00043
00044 extern const char* xmlNumRocs;
00045 extern const char* xmlRocIp;
00046 extern const char* xmlRocFebs;
00047 extern const char* xmlRawFile;
00048 extern const char* xmlReadoutAppClass;
00049
00050 extern const char* xmlNumMbs;
00051 extern const char* xmlMbsAddr;
00052 extern const char* xmlSyncSubeventId;
00053
00054 extern const char* xmlNumSusibo;
00055 extern const char* xmlSusiboAddr;
00056
00057 extern const char* xmlNumSlaves;
00058 extern const char* xmlSlaveAddr;
00059
00060 extern const char* xmlNumTRBs;
00061 extern const char* xmlTRBAddr;
00062
00063 extern const char* xmlUseDLM;
00064 extern const char* xmlMeasureADC;
00065
00066 extern const char* xmlEpicsStreamNode;
00067 extern const char* xmlEpicsTransportNode;
00068
00069
00070 class CmdPut : public dabc::Command {
00071
00072 DABC_COMMAND(CmdPut, "CmdPut")
00073
00074 CmdPut(uint32_t address, uint32_t value, double tmout = 5.) :
00075 dabc::Command(CmdName())
00076 {
00077 SetUInt(AddrPar, address);
00078 SetUInt(ValuePar, value);
00079 SetDouble(TmoutPar, tmout);
00080 }
00081 };
00082
00083 class CmdGet : public dabc::Command {
00084
00085 DABC_COMMAND(CmdGet, "CmdGet")
00086
00087 CmdGet(uint32_t address, double tmout = 5.) :
00088 dabc::Command(CmdName())
00089 {
00090 SetUInt(AddrPar, address);
00091 SetDouble(TmoutPar, tmout);
00092 }
00093 };
00094
00095 class CmdNOper : public dabc::Command {
00096
00097 DABC_COMMAND(CmdNOper, "CmdNOper")
00098
00099 CmdNOper(base::OperList* lst, double tmout = 5.) :
00100 dabc::Command(CmdName())
00101 {
00102 SetPtr(OperListPar, lst);
00103 SetDouble(TmoutPar, tmout);
00104 }
00105 };
00106
00107
00108 class CmdDLM : public dabc::Command {
00109 DABC_COMMAND(CmdDLM,"CmdDLM")
00110
00111 CmdDLM(unsigned num, double tmout = 5.) :
00112 dabc::Command(CmdName())
00113 {
00114 SetUInt(AddrPar, num);
00115 SetDouble(TmoutPar, tmout);
00116 }
00117 };
00118
00119 class CmdCalibration : public dabc::Command {
00120
00121 DABC_COMMAND(CmdCalibration, "RocCalibration")
00122
00123 static const char* FlagName() { return "CalibrFlag"; }
00124
00125 CmdCalibration(bool on) :
00126 dabc::Command(CmdName())
00127 {
00128 SetBool(FlagName(), on);
00129 }
00130 };
00131
00132 class CmdGlobalCalibration : public dabc::Command {
00133
00134 DABC_COMMAND(CmdGlobalCalibration, "RocGlobalCalibration")
00135
00136 static const char* FlagName() { return "CalibrFlag"; }
00137
00138 CmdGlobalCalibration(bool on) :
00139 dabc::Command(CmdName())
00140 {
00141 SetBool(FlagName(), on);
00142 }
00143 };
00144
00145 class CmdGetBoardPtr : public dabc::Command {
00146
00147 DABC_COMMAND(CmdGetBoardPtr, "GetBoardPtr")
00148
00149 static const char* Board() { return "Board"; }
00150 };
00151
00152 class CmdReturnBoardPtr : public dabc::Command {
00153
00154 DABC_COMMAND(CmdReturnBoardPtr, "ReturnBoardPtr")
00155
00156 static const char* Board() { return "Board"; }
00157 };
00158
00159 class CmdMessagesVector : public dabc::Command {
00160
00161 DABC_COMMAND(CmdMessagesVector, "MessagesVector")
00162
00163 static const char* Vector() { return "Vecotr"; }
00164
00165 CmdMessagesVector(void* vect) :
00166 dabc::Command(CmdName())
00167 {
00168 SetPtr(Vector(), vect);
00169 }
00170 };
00171
00172 class CmdAddSlave : public dabc::Command {
00173
00174 DABC_COMMAND(CmdAddSlave, "AddSlave")
00175
00176 static const char* Master() { return "Master"; }
00177 static const char* RocId() { return "RocId"; }
00178
00179 CmdAddSlave(unsigned master, unsigned rocid) :
00180 dabc::Command(CmdName())
00181 {
00182 SetUInt(Master(), master);
00183 SetUInt(RocId(), rocid);
00184 }
00185 };
00186
00187 }
00188
00189 #endif
00190