changes to users class to call dac and adc by string name

This commit is contained in:
Dhanya Maliakal
2017-09-21 12:54:03 +02:00
parent f2be03be05
commit 271664f577
3 changed files with 58 additions and 132 deletions

View File

@ -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;
};
};