00001 00002 #ifndef _Q_SLOW_CONTROL_CLIENT_HH_ 00003 #define _Q_SLOW_CONTROL_CLIENT_HH_ 00004 00005 #include "QBaseClient.hh" 00006 #include "QSlowTypes.hh" 00007 #include "QError.hh" 00008 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 00163 bool SetPSInterface(QSlowTypes::QSlowEleInterface_t iface); 00164 00165 00177 bool WritePulser(unsigned int pulseId, 00178 char mem0, 00179 char mem1, 00180 char mem2, 00181 char mem3); 00182 00191 bool GetPulserRegister(unsigned int id, size_t reg, int& value); 00192 00201 bool SetEleRegister(unsigned int lg, size_t reg, int value); 00202 00211 bool GetEleRegister(unsigned int lg, size_t reg, int& value); 00212 00220 bool SetFEGain(unsigned int lg, int value); 00221 00229 bool GetFEGain(unsigned int lg, int& value); 00230 00238 bool SetFEBias(unsigned int lg, int value); 00239 00247 bool GetFEBias(unsigned int lg, int& value); 00248 00256 bool GetFEBiasPolarity(unsigned int lg, bool& pol); 00257 00265 bool SetFEBiasPolarity(unsigned int lg, bool pol); 00266 00273 bool InvertFEBiasPolarity(unsigned int lg); 00274 00282 bool SetFELoadResistor(unsigned int lg, bool rload); 00283 00284 00293 bool GetFELoadResistor(unsigned int lg, bool& rload); 00294 00295 00303 bool SetFEInput(unsigned int lg, bool input); 00304 00305 00314 bool GetFEInput(unsigned int lg, bool& input); 00315 00325 bool SetFETestSignal(unsigned int lg, int pos_val, int neg_val); 00326 00327 00337 bool GetFETestSignal(unsigned int lg, int& pos_val, int& neg_val); 00338 00345 bool AdjustFEOffset(unsigned int lg); 00346 00347 00355 bool SetFEOffsetDAC(unsigned int lg, int value); 00356 00357 00366 bool GetFEOffsetDAC(unsigned int lg, int& value); 00367 00375 bool SetFEOffsetMSB(unsigned int lg, int value); 00376 00377 00385 bool GetFEOffsetMSB(unsigned int lg, int& value); 00386 00394 bool GetFEOffsetPolarity(unsigned int lg, bool& pol); 00395 00403 bool SetFEOffsetPolarity(unsigned int lg, bool pol); 00404 00411 bool InvertFEOffsetPolarity(unsigned int lg); 00412 00413 00421 bool GetFEOffsetSpecialBit(unsigned int lg, bool& status); 00422 00430 bool SetFEOffsetSpecialBit(unsigned int lg, bool status); 00431 00438 bool InvertFEOffsetSpecialBit(unsigned int lg); 00439 00440 00441 00442 00443 00451 bool SetBSCutFreq(unsigned int lg, int cutFreq); 00452 00453 00461 bool GetBSCutFreq(unsigned int lg, int& cutFreq); 00462 00470 bool SetBSFilterEnable(unsigned int lg, bool status); 00471 00479 bool GetBSFilterEnable(unsigned int lg, bool& status); 00480 00487 bool TurnBSFilterON(unsigned int lg); 00488 00495 bool TurnBSFilterOFF(unsigned int lg); 00496 00505 bool SetPSupplyInterface(QSlowTypes::QSlowEleInterface_t iface); 00506 00515 bool GetPSupplyInterface(QSlowTypes::QSlowEleInterface_t& iface); 00516 00517 00525 bool SetPSupplyVset(unsigned int channel, double vset); 00526 00527 00535 bool SetPSupplyIset(unsigned int channel, double iset); 00536 00537 00547 bool SetPSupplyVsetDiff(double vset); 00548 00558 bool GetPSupplyVsetDiff(double& vset); 00559 00570 bool GetPSupplyVoutDiff(double& vout); 00571 00579 bool GetPSupplyVset(unsigned int channel, double& vset); 00580 00588 bool GetPSupplyIset(unsigned int channel, double& iset); 00589 00597 bool GetPSupplyVout(unsigned int channel, double& vout); 00598 00606 bool GetPSupplyIout(unsigned int channel, double& iout); 00607 00608 00616 bool SetPSupplyOutputEnable(unsigned int channel, bool status); 00617 00625 bool GetPSupplyOutputEnable(unsigned int channel, bool& status); 00626 00633 bool TurnPSupplyOutputON(unsigned int channel); 00634 00641 bool TurnPSupplyOutputOFF(unsigned int channel); 00642 00643 00644 }; 00645 00646 #endif