mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 13:27:14 +02:00
changes to users class to call dac and adc by string name
This commit is contained in:
@ -396,16 +396,23 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
|
||||
\returns current flag
|
||||
*/
|
||||
virtual int setReadOutFlags(readOutFlags flag=GET_READOUT_FLAGS)=0;
|
||||
int getContinuousReadoutFlag(){if(setReadOutFlags()&CONTINOUS_RO) return OK; return FAIL;};
|
||||
void setContinuousReadoutFlag(){setReadOutFlags(CONTINOUS_RO); };
|
||||
int getStoreInRamReadoutFlag(){if(setReadOutFlags()&STORE_IN_RAM) return OK; return FAIL;};
|
||||
void setStoreInRamReadoutFlag(){setReadOutFlags(STORE_IN_RAM); };
|
||||
int getParallelReadoutFlag(){if(setReadOutFlags()&PARALLEL) return OK; return FAIL;};
|
||||
void setParallelReadoutFlag(){setReadOutFlags(PARALLEL); };
|
||||
int getNonParallelReadoutFlag(){if(setReadOutFlags()&NONPARALLEL) return OK; return FAIL;};
|
||||
void setNonParallelReadoutFlag(){setReadOutFlags(NONPARALLEL); };
|
||||
int getSafeReadoutFlag(){if(setReadOutFlags()&SAFE) return OK; return FAIL;};
|
||||
void setSafeReadoutFlag(){setReadOutFlags(SAFE); };
|
||||
void setParallelMode(int value){ \
|
||||
if(value>=0){ \
|
||||
switch(value){ \
|
||||
case 0: setReadOutFlags(NONPARALLEL);break; \
|
||||
case 1: setReadOutFlags(PARALLEL);break; \
|
||||
default: setReadOutFlags(SAFE);break; \
|
||||
} \
|
||||
} \
|
||||
}; \
|
||||
int getParallelMode(){ \
|
||||
int ret = setReadOutFlags(); \
|
||||
if (ret&NONPARALLEL) return 0; \
|
||||
if (ret&PARALLEL) return 1; \
|
||||
if (ret&SAFE) return 2; \
|
||||
return -1; \
|
||||
} \
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -831,19 +838,11 @@ virtual void readFrameFromReceiver()=0;
|
||||
|
||||
/**
|
||||
@short returns adc index from string
|
||||
\param s can be temp_adc, temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl, temp_sodr, temp_fpgafl, temp_fpgafr,
|
||||
i_a, i_b, i_c, i_d, vm_a, vm_b,vm_c, vm_d, vm_io, i_io
|
||||
\param s can be temp_adc, temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl, temp_sodr, temp_fpgafl, temp_fpgafr
|
||||
\returns TEMPERATURE_ADC, TEMPERATURE_FPGA, TEMPERATURE_FPGAEXT, TEMPERATURE_10GE, TEMPERATURE_DCDC, TEMPERATURE_SODL,
|
||||
TEMPERATURE_SODR, TEMPERATURE_FPGA2, TEMPERATURE_FPGA3, I_POWER_A, I_POWER_B, I_POWER_C, I_POWER_D, V_POWER_A, V_POWER_B,
|
||||
V_POWER_C, V_POWER_D, V_POWER_IO, I_POWER_IO
|
||||
-1 when wrong mode
|
||||
TEMPERATURE_SODR, TEMPERATURE_FPGA2, TEMPERATURE_FPGA3, -1 when unknown mode
|
||||
*/
|
||||
static int getADCIndex(string s){
|
||||
{
|
||||
int idac;
|
||||
if (sscanf(s.c_str(),"adc:%d",&idac)==1)
|
||||
return (dacIndex)(idac+1000);
|
||||
}
|
||||
if (s=="temp_adc") return TEMPERATURE_ADC;
|
||||
if (s=="temp_fpga") return TEMPERATURE_FPGA;
|
||||
if (s=="temp_fpgaext") return TEMPERATURE_FPGAEXT;
|
||||
@ -853,19 +852,30 @@ virtual void readFrameFromReceiver()=0;
|
||||
if (s=="temp_sodr") return TEMPERATURE_SODR;
|
||||
if (s=="temp_fpgafl") return TEMPERATURE_FPGA2;
|
||||
if (s=="temp_fpgafr") return TEMPERATURE_FPGA3;
|
||||
if (s=="i_a") return I_POWER_A;
|
||||
if (s=="i_b") return I_POWER_B;
|
||||
if (s=="i_c") return I_POWER_C;
|
||||
if (s=="i_d") return I_POWER_D;
|
||||
if (s=="vm_a") return V_POWER_A;
|
||||
if (s=="vm_b") return V_POWER_B;
|
||||
if (s=="vm_c") return V_POWER_C;
|
||||
if (s=="vm_d") return V_POWER_D;
|
||||
if (s=="vm_io") return V_POWER_IO;
|
||||
if (s=="i_io") return I_POWER_IO;
|
||||
return -1;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
@short returns dac index from string
|
||||
\param s can be vcmp_ll, vcmp_lr, vcmp_rl, vcmp_rr, vthreshold, vrf, vrs, vtr, vcall, vcp
|
||||
\returns E_Vcmp_ll, E_Vcmp_lr, E_Vcmp_rl, E_Vcmp_rr, THRESHOLD, E_Vrf, E_Vrs, E_Vtr, E_cal, E_Vcp , -1 when unknown mode
|
||||
*/
|
||||
static int getDACIndex(string s){
|
||||
if (s=="vcmp_ll") return E_Vcmp_ll;
|
||||
if (s=="vcmp_lr") return E_Vcmp_lr;
|
||||
if (s=="vcmp_rl") return E_Vcmp_rl;
|
||||
if (s=="vcmp_rr") return E_Vcmp_rr;
|
||||
if (s=="vthreshold") return THRESHOLD;
|
||||
if (s=="vrf") return E_Vrf;
|
||||
if (s=="vrs") return E_Vrs;
|
||||
if (s=="vtr") return E_Vtr;
|
||||
if (s=="vcall") return E_cal;
|
||||
if (s=="vcp") return E_Vcp;
|
||||
return -1;
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@ -312,51 +312,19 @@ int slsDetectorUsers::setClockDivider(int value) {
|
||||
return myDetector->setClockDivider(value);
|
||||
}
|
||||
|
||||
int slsDetectorUsers::getContinuousReadoutFlag(){
|
||||
return myDetector->getContinuousReadoutFlag();
|
||||
}
|
||||
|
||||
void slsDetectorUsers::setContinuousReadoutFlag(){
|
||||
myDetector->setContinuousReadoutFlag();
|
||||
}
|
||||
|
||||
int slsDetectorUsers::getStoreInRamReadoutFlag(){
|
||||
return myDetector->getStoreInRamReadoutFlag();
|
||||
}
|
||||
|
||||
void slsDetectorUsers::setStoreInRamReadoutFlag(){
|
||||
myDetector->setStoreInRamReadoutFlag();
|
||||
}
|
||||
|
||||
int slsDetectorUsers::getParallelReadoutFlag(){
|
||||
return myDetector->getParallelReadoutFlag();
|
||||
}
|
||||
|
||||
void slsDetectorUsers::setParallelReadoutFlag(){
|
||||
myDetector->setParallelReadoutFlag();
|
||||
}
|
||||
|
||||
int slsDetectorUsers::getNonParallelReadoutFlag(){
|
||||
return myDetector->getNonParallelReadoutFlag();
|
||||
}
|
||||
|
||||
void slsDetectorUsers::setNonParallelReadoutFlag(){
|
||||
myDetector->setNonParallelReadoutFlag();
|
||||
}
|
||||
|
||||
int slsDetectorUsers::getSafeReadoutFlag(){
|
||||
return myDetector->getSafeReadoutFlag();
|
||||
}
|
||||
|
||||
void slsDetectorUsers::setSafeReadoutFlag(){
|
||||
myDetector->setSafeReadoutFlag();
|
||||
int slsDetectorUsers::setParallelMode(int value) {
|
||||
if(value >= 0)
|
||||
myDetector->setParallelMode(value);
|
||||
return myDetector->getParallelMode();
|
||||
}
|
||||
|
||||
int slsDetectorUsers::setAllTrimbits(int val, int id) {
|
||||
return myDetector->setAllTrimbits(val, id);
|
||||
}
|
||||
|
||||
int slsDetectorUsers::setDAC(int dacindex, int val, int id) {
|
||||
int slsDetectorUsers::setDAC(string dac, int val, int id) {
|
||||
int dacindex = myDetector->getDACIndex(dac);
|
||||
if(dacindex == -1) return -9999;
|
||||
return myDetector->setDACValue(val, dacindex, id);
|
||||
}
|
||||
|
||||
|
@ -553,67 +553,16 @@ class slsDetectorUsers
|
||||
*/
|
||||
int setClockDivider(int value);
|
||||
|
||||
/**
|
||||
@short gets continuous readout flag
|
||||
\returns gets continuous readout flag
|
||||
*/
|
||||
int getContinuousReadoutFlag();
|
||||
|
||||
/**
|
||||
@short sets continuous readout flag
|
||||
\returns OK if successful, else false
|
||||
*/
|
||||
void setContinuousReadoutFlag();
|
||||
|
||||
/**
|
||||
@short gets store in ram readout flag
|
||||
\returns gets store in ram readout flag
|
||||
/**
|
||||
@short sets parallel mode
|
||||
\param value 0 for non parallel, 1 for parallel, 2 for safe mode (-1 gets)
|
||||
\returns gets parallel mode
|
||||
*/
|
||||
int getStoreInRamReadoutFlag();
|
||||
int setParallelMode(int value);
|
||||
|
||||
/**
|
||||
@short sets store in ram readout flag
|
||||
\returns OK if successful, else false
|
||||
*/
|
||||
void setStoreInRamReadoutFlag();
|
||||
|
||||
/**
|
||||
@short gets parallel readout flag
|
||||
\returns gets parallel readout flag
|
||||
*/
|
||||
int getParallelReadoutFlag();
|
||||
|
||||
/**
|
||||
@short sets parallel readout flag
|
||||
\returns OK if successful, else false
|
||||
*/
|
||||
void setParallelReadoutFlag();
|
||||
|
||||
/**
|
||||
@short gets non parallel readout flag
|
||||
\returns gets non parallel readout flag
|
||||
*/
|
||||
int getNonParallelReadoutFlag();
|
||||
|
||||
/**
|
||||
@short sets non parallel readout flag
|
||||
\returns OK if successful, else false
|
||||
*/
|
||||
void setNonParallelReadoutFlag();
|
||||
|
||||
/**
|
||||
@short gets safe readout flag
|
||||
\returns gets safe readout flag
|
||||
*/
|
||||
int getSafeReadoutFlag();
|
||||
|
||||
/**
|
||||
@short sets safe readout flag
|
||||
\returns OK if successful, else false
|
||||
*/
|
||||
void setSafeReadoutFlag();
|
||||
|
||||
/**
|
||||
/**
|
||||
@short sets all trimbits to value (only available for eiger)
|
||||
\param val value to be set (-1 gets)
|
||||
\param id module index (-1 for all)
|
||||
@ -623,19 +572,18 @@ class slsDetectorUsers
|
||||
|
||||
/**
|
||||
@short set dac value
|
||||
\param dacindex dac index \sa dacIndex
|
||||
\param dac dac as string. can be vcmp_ll, vcmp_lr, vcmp_rl, vcmp_rr, vthreshold, vrf, vrs, vtr, vcall, vcp. others not supported
|
||||
\param val value to be set (-1 gets)
|
||||
\param id module index (-1 for all)
|
||||
\returns dac value
|
||||
\returns dac value or -1 (if id=-1 & dac value is different for all modules) or -9999 if dac string does not match
|
||||
*/
|
||||
int setDAC(int dacindex, int val, int id = -1);
|
||||
int setDAC(string dac, int val, int id = -1);
|
||||
|
||||
/**
|
||||
@short get adc value
|
||||
\param adc adc as string. can be temp_adc, temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl, temp_sodr, temp_fpgafl, temp_fpgafr,
|
||||
i_a, i_b, i_c, i_d, vm_a, vm_b,vm_c, vm_d, vm_io, i_io
|
||||
\param adc adc as string. can be temp_adc, temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl, temp_sodr, temp_fpgafl, temp_fpgafr. others not supported
|
||||
\param id module index (-1 for all)
|
||||
\returns adc value, -1 (if id=-1,adcvalue is different for all modules), -9999 if adc string does not match
|
||||
\returns adc value or -1 (if id=-1 & adc value is different for all modules) or -9999 if adc string does not match
|
||||
*/
|
||||
int getADC(string adc, int id = -1);
|
||||
|
||||
|
Reference in New Issue
Block a user