00001 00009 #ifndef _Q_SLOW_CONTROL_CLIENT_HH_ 00010 #define _Q_SLOW_CONTROL_CLIENT_HH_ 00011 00012 #include "QBaseClient.hh" 00013 #include "QSlowTypes.hh" 00014 #include "QError.hh" 00015 00016 class QSlowControlClient: public QBaseClient 00017 { 00018 public: 00019 00021 QSlowControlClient(); 00022 00024 QSlowControlClient(const std::string& address, const std::string& port); 00025 00026 virtual ~QSlowControlClient(); 00027 00035 bool SetWriteMode(bool canWrite); 00036 00043 bool SetBaseMode(); 00044 00051 bool SetRunMode(); 00052 00060 bool SetTuningMode(unsigned int basket); 00061 00069 bool GetMode(QSlowTypes::QSlowMode_t& mode); 00070 00079 bool GetBasket(int& basket); 00080 00090 bool LoadDevice(QSlowTypes::QSlowDevice_t dev, QSlowTypes::QSlowEleInterface_t iface); 00091 00101 bool GetInterface(QSlowTypes::QSlowDevice_t dev, QSlowTypes::QSlowEleInterface_t& iface); 00102 00111 bool GetFEInterface(QSlowTypes::QSlowEleInterface_t& iface); 00112 00121 bool GetBSInterface(QSlowTypes::QSlowEleInterface_t& iface); 00122 00131 bool GetPSInterface(QSlowTypes::QSlowEleInterface_t& iface); 00132 00133 00142 bool SetFEInterface(QSlowTypes::QSlowEleInterface_t iface); 00143 00152 bool SetBSInterface(QSlowTypes::QSlowEleInterface_t iface); 00153 00162 bool SetPSInterface(QSlowTypes::QSlowEleInterface_t iface); 00163 00164 00176 bool WritePulser(unsigned short pulseId, 00177 char mem0, 00178 char mem1, 00179 char mem2, 00180 char mem3); 00181 00190 bool GetPulserRegister(unsigned short id, size_t reg, int& value); 00191 00200 bool SetEleRegister(unsigned short lg, size_t reg, int value); 00201 00210 bool GetEleRegister(unsigned short lg, size_t reg, int& value); 00211 00219 bool SetFEGain(unsigned short lg, int value); 00220 00228 bool GetFEGain(unsigned short lg, int& value); 00229 00237 bool SetFEBias(unsigned short lg, int value); 00238 00246 bool GetFEBias(unsigned short lg, int& value); 00247 00255 bool GetFEBiasPolarity(unsigned short lg, bool& pol); 00256 00264 bool SetFEBiasPolarity(unsigned short lg, bool pol); 00265 00272 bool InvertFEBiasPolarity(unsigned short lg); 00273 00281 bool SetFELoadResistor(unsigned short lg, bool rload); 00282 00283 00292 bool GetFELoadResistor(unsigned short lg, bool& rload); 00293 00294 00302 bool SetFEInput(unsigned short lg, bool input); 00303 00304 00313 bool GetFEInput(unsigned short lg, bool& input); 00314 00315 00316 00323 bool AdjustFEOffset(unsigned short lg); 00324 00325 00333 bool SetFEOffsetDAC(unsigned short lg, int value); 00334 00335 00344 bool GetFEOffsetDAC(unsigned short lg, int& value); 00345 00353 bool SetFEOffsetMSB(unsigned short lg, int value); 00354 00355 00363 bool GetFEOffsetMSB(unsigned short lg, int& value); 00364 00372 bool GetFEOffsetPolarity(unsigned short lg, bool& pol); 00373 00381 bool SetFEOffsetPolarity(unsigned short lg, bool pol); 00382 00389 bool InvertFEOffsetPolarity(unsigned short lg); 00390 00391 00399 bool GetFEOffsetSpecialBit(unsigned short lg, bool& status); 00400 00408 bool SetFEOffsetSpecialBit(unsigned short lg, bool status); 00409 00416 bool InvertFEOffsetSpecialBit(unsigned short lg); 00417 00418 00419 00420 00421 00429 bool SetBSCutFreq(unsigned short lg, int cutFreq); 00430 00431 00439 bool GetBSCutFreq(unsigned short lg, int& cutFreq); 00440 00448 bool SetBSFilterEnable(unsigned short lg, bool status); 00449 00457 bool GetBSFilterEnable(unsigned short lg, bool& status); 00458 00465 bool TurnBSFilterON(unsigned short lg); 00466 00473 bool TurnBSFilterOFF(unsigned short lg); 00474 00483 bool SetPSupplyInterface(QSlowTypes::QSlowEleInterface_t iface); 00484 00493 bool GetPSupplyInterface(QSlowTypes::QSlowEleInterface_t& iface); 00494 00495 00503 bool SetPSupplyVset(unsigned short channel, double vset); 00504 00505 00513 bool SetPSupplyIset(unsigned short channel, double iset); 00514 00515 00525 bool SetPSupplyVsetDiff(double vset); 00526 00536 bool GetPSupplyVsetDiff(double& vset); 00537 00548 bool GetPSupplyVoutDiff(double& vout); 00549 00557 bool GetPSupplyVset(unsigned short channel, double& vset); 00558 00566 bool GetPSupplyIset(unsigned short channel, double& iset); 00567 00575 bool GetPSupplyVout(unsigned short channel, double& vout); 00576 00584 bool GetPSupplyIout(unsigned short channel, double& iout); 00585 00586 00594 bool SetPSupplyOutputEnable(unsigned short channel, bool status); 00595 00603 bool GetPSupplyOutputEnable(unsigned short channel, bool& status); 00604 00611 bool TurnPSupplyOutputON(unsigned short channel); 00612 00619 bool TurnPSupplyOutputOFF(unsigned short channel); 00620 00621 00622 }; 00623 00624 #endif