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