jungfrau dacs named

This commit is contained in:
maliakal_d 2019-10-29 18:11:16 +01:00
parent 925a750f9a
commit fe467cdf70
27 changed files with 702 additions and 534 deletions

View File

@ -22,56 +22,56 @@ TEST_CASE_METHOD(MultiDetectorFixture, "Set and get dacs",
auto th = 1000;
// set and read back each individual dac of EIGER
d.setDAC(0, di::E_SvP, 0);
CHECK(d.setDAC(-1, di::E_SvP, 0) == 0);
d.setDAC(4000, di::E_SvN, 0);
CHECK(d.setDAC(-1, di::E_SvN, 0) == 4000);
d.setDAC(2000, di::E_Vtr, 0);
CHECK(d.setDAC(-1, di::E_Vtr, 0) == 2000);
d.setDAC(3500, di::E_Vrf, 0);
CHECK(d.setDAC(-1, di::E_Vrf, 0) == 3500);
d.setDAC(1400, di::E_Vrs, 0);
CHECK(d.setDAC(-1, di::E_Vrs, 0) == 1400);
d.setDAC(2556, di::E_Vtgstv, 0);
CHECK(d.setDAC(-1, di::E_Vtgstv, 0) == 2556);
d.setDAC(1500, di::E_Vcmp_ll, 0);
CHECK(d.setDAC(-1, di::E_Vcmp_ll, 0) == 1500);
d.setDAC(1400, di::E_Vcmp_lr, 0);
CHECK(d.setDAC(-1, di::E_Vcmp_lr, 0) == 1400);
d.setDAC(4000, di::E_cal, 0);
CHECK(d.setDAC(-1, di::E_cal, 0) == 4000);
d.setDAC(1300, di::E_Vcmp_rl, 0);
CHECK(d.setDAC(-1, di::E_Vcmp_rl, 0) == 1300);
d.setDAC(1200, di::E_Vcmp_rr, 0);
CHECK(d.setDAC(-1, di::E_Vcmp_rr, 0) == 1200);
d.setDAC(1100, di::E_rxb_rb, 0);
CHECK(d.setDAC(-1, di::E_rxb_rb, 0) == 1100);
d.setDAC(1100, di::E_rxb_lb, 0);
CHECK(d.setDAC(-1, di::E_rxb_lb, 0) == 1100);
d.setDAC(1500, di::E_Vcp, 0);
CHECK(d.setDAC(-1, di::E_Vcp, 0) == 1500);
d.setDAC(2000, di::E_Vcn, 0);
CHECK(d.setDAC(-1, di::E_Vcn, 0) == 2000);
d.setDAC(1550, di::E_Vis, 0);
CHECK(d.setDAC(-1, di::E_Vis, 0) == 1550);
d.setDAC(0, di::SVP, 0);
CHECK(d.setDAC(-1, di::SVP, 0) == 0);
d.setDAC(4000, di::SVN, 0);
CHECK(d.setDAC(-1, di::SVN, 0) == 4000);
d.setDAC(2000, di::VTR, 0);
CHECK(d.setDAC(-1, di::VTR, 0) == 2000);
d.setDAC(3500, di::VRF, 0);
CHECK(d.setDAC(-1, di::VRF, 0) == 3500);
d.setDAC(1400, di::VRS, 0);
CHECK(d.setDAC(-1, di::VRS, 0) == 1400);
d.setDAC(2556, di::VTGSTV, 0);
CHECK(d.setDAC(-1, di::VTGSTV, 0) == 2556);
d.setDAC(1500, di::VCMP_LL, 0);
CHECK(d.setDAC(-1, di::VCMP_LL, 0) == 1500);
d.setDAC(1400, di::VCMP_LR, 0);
CHECK(d.setDAC(-1, di::VCMP_LR, 0) == 1400);
d.setDAC(4000, di::CAL, 0);
CHECK(d.setDAC(-1, di::CAL, 0) == 4000);
d.setDAC(1300, di::VCMP_RL, 0);
CHECK(d.setDAC(-1, di::VCMP_RL, 0) == 1300);
d.setDAC(1200, di::VCMP_RR, 0);
CHECK(d.setDAC(-1, di::VCMP_RR, 0) == 1200);
d.setDAC(1100, di::RXB_RB, 0);
CHECK(d.setDAC(-1, di::RXB_RB, 0) == 1100);
d.setDAC(1100, di::RXB_LB, 0);
CHECK(d.setDAC(-1, di::RXB_LB, 0) == 1100);
d.setDAC(1500, di::VCP, 0);
CHECK(d.setDAC(-1, di::VCP, 0) == 1500);
d.setDAC(2000, di::VCN, 0);
CHECK(d.setDAC(-1, di::VCN, 0) == 2000);
d.setDAC(1550, di::VIS, 0);
CHECK(d.setDAC(-1, di::VIS, 0) == 1550);
d.setDAC(660, di::IO_DELAY, 0);
CHECK(d.setDAC(-1, di::IO_DELAY, 0) == 660);
// setting threshold sets all individual vcmp
d.setDAC(th, di::THRESHOLD, 0);
CHECK(d.setDAC(-1, di::THRESHOLD, 0) == th);
CHECK(d.setDAC(-1, di::E_Vcmp_ll, 0) == th);
CHECK(d.setDAC(-1, di::E_Vcmp_lr, 0) == th);
CHECK(d.setDAC(-1, di::E_Vcmp_rl, 0) == th);
CHECK(d.setDAC(-1, di::E_Vcmp_rr, 0) == th);
CHECK(d.setDAC(-1, di::VCMP_LL, 0) == th);
CHECK(d.setDAC(-1, di::VCMP_LR, 0) == th);
CHECK(d.setDAC(-1, di::VCMP_RL, 0) == th);
CHECK(d.setDAC(-1, di::VCMP_RR, 0) == th);
// different values gives -1
if (d.getNumberOfDetectors() > 1) {
d.setDAC(1600, di::E_Vcmp_ll, 0, 0);
d.setDAC(1700, di::E_Vcmp_ll, 0, 1);
CHECK(d.setDAC(-1, di::E_Vcmp_ll, 0, 0) == 1600);
CHECK(d.setDAC(-1, di::E_Vcmp_ll, 0, 1) == 1700);
CHECK(d.setDAC(-1, di::E_Vcmp_ll, 0) == -1);
d.setDAC(1600, di::VCMP_LL, 0, 0);
d.setDAC(1700, di::VCMP_LL, 0, 1);
CHECK(d.setDAC(-1, di::VCMP_LL, 0, 0) == 1600);
CHECK(d.setDAC(-1, di::VCMP_LL, 0, 1) == 1700);
CHECK(d.setDAC(-1, di::VCMP_LL, 0) == -1);
CHECK(d.setDAC(-1, di::THRESHOLD, 0) == -1);
CHECK(d.setDAC(-1, di::THRESHOLD, 0, 0) == -1);
CHECK(d.setDAC(-1, di::THRESHOLD, 0, 1) == -1);

View File

@ -173,30 +173,30 @@ py::enum_<slsDetectorDefs::dacIndex>(Defs, "dacIndex")
.value("VDD_POT", slsDetectorDefs::dacIndex::VDD_POT)
.value("VSH_POT", slsDetectorDefs::dacIndex::VSH_POT)
.value("VIO_POT", slsDetectorDefs::dacIndex::VIO_POT)
.value("G_VREF_DS", slsDetectorDefs::dacIndex::G_VREF_DS)
.value("G_VCASCN_PB", slsDetectorDefs::dacIndex::G_VCASCN_PB)
.value("G_VCASCP_PB", slsDetectorDefs::dacIndex::G_VCASCP_PB)
.value("G_VOUT_CM", slsDetectorDefs::dacIndex::G_VOUT_CM)
.value("G_VCASC_OUT", slsDetectorDefs::dacIndex::G_VCASC_OUT)
.value("G_VIN_CM", slsDetectorDefs::dacIndex::G_VIN_CM)
.value("G_VREF_COMP", slsDetectorDefs::dacIndex::G_VREF_COMP)
.value("G_IB_TESTC", slsDetectorDefs::dacIndex::G_IB_TESTC)
.value("E_SvP", slsDetectorDefs::dacIndex::E_SvP)
.value("E_SvN", slsDetectorDefs::dacIndex::E_SvN)
.value("E_Vtr", slsDetectorDefs::dacIndex::E_Vtr)
.value("E_Vrf", slsDetectorDefs::dacIndex::E_Vrf)
.value("E_Vrs", slsDetectorDefs::dacIndex::E_Vrs)
.value("E_Vtgstv", slsDetectorDefs::dacIndex::E_Vtgstv)
.value("E_Vcmp_ll", slsDetectorDefs::dacIndex::E_Vcmp_ll)
.value("E_Vcmp_lr", slsDetectorDefs::dacIndex::E_Vcmp_lr)
.value("E_cal", slsDetectorDefs::dacIndex::E_cal)
.value("E_Vcmp_rl", slsDetectorDefs::dacIndex::E_Vcmp_rl)
.value("E_Vcmp_rr", slsDetectorDefs::dacIndex::E_Vcmp_rr)
.value("E_rxb_rb", slsDetectorDefs::dacIndex::E_rxb_rb)
.value("E_rxb_lb", slsDetectorDefs::dacIndex::E_rxb_lb)
.value("E_Vcp", slsDetectorDefs::dacIndex::E_Vcp)
.value("E_Vcn", slsDetectorDefs::dacIndex::E_Vcn)
.value("E_Vis", slsDetectorDefs::dacIndex::E_Vis)
.value("VREF_DS", slsDetectorDefs::dacIndex::VREF_DS)
.value("VCASCN_PB", slsDetectorDefs::dacIndex::VCASCN_PB)
.value("VCASCP_PB", slsDetectorDefs::dacIndex::VCASCP_PB)
.value("VOUT_CM", slsDetectorDefs::dacIndex::VOUT_CM)
.value("VCASC_OUT", slsDetectorDefs::dacIndex::VCASC_OUT)
.value("VIN_CM", slsDetectorDefs::dacIndex::VIN_CM)
.value("VREF_COMP", slsDetectorDefs::dacIndex::VREF_COMP)
.value("IB_TESTC", slsDetectorDefs::dacIndex::IB_TESTC)
.value("SVP", slsDetectorDefs::dacIndex::SVP)
.value("SVN", slsDetectorDefs::dacIndex::SVN)
.value("VTR", slsDetectorDefs::dacIndex::VTR)
.value("VRF", slsDetectorDefs::dacIndex::VRF)
.value("VRS", slsDetectorDefs::dacIndex::VRS)
.value("VTGSTV", slsDetectorDefs::dacIndex::VTGSTV)
.value("VCMP_LL", slsDetectorDefs::dacIndex::VCMP_LL)
.value("VCMP_LR", slsDetectorDefs::dacIndex::VCMP_LR)
.value("CAL", slsDetectorDefs::dacIndex::CAL)
.value("VCMP_RL", slsDetectorDefs::dacIndex::VCMP_RL)
.value("VCMP_RR", slsDetectorDefs::dacIndex::VCMP_RR)
.value("RXB_RB", slsDetectorDefs::dacIndex::RXB_RB)
.value("RXB_LB", slsDetectorDefs::dacIndex::RXB_LB)
.value("VCP", slsDetectorDefs::dacIndex::VCP)
.value("VCN", slsDetectorDefs::dacIndex::VCN)
.value("VIS", slsDetectorDefs::dacIndex::VIS)
.value("IO_DELAY", slsDetectorDefs::dacIndex::IO_DELAY)
.value("ADC_VPP", slsDetectorDefs::dacIndex::ADC_VPP)
.value("HIGH_VOLTAGE", slsDetectorDefs::dacIndex::HIGH_VOLTAGE)
@ -207,16 +207,16 @@ py::enum_<slsDetectorDefs::dacIndex>(Defs, "dacIndex")
.value("TEMPERATURE_SODR", slsDetectorDefs::dacIndex::TEMPERATURE_SODR)
.value("TEMPERATURE_FPGA2", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA2)
.value("TEMPERATURE_FPGA3", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA3)
.value("M_vIpre", slsDetectorDefs::dacIndex::M_vIpre)
.value("M_vIinSh", slsDetectorDefs::dacIndex::M_vIinSh)
.value("M_VdcSh", slsDetectorDefs::dacIndex::M_VdcSh)
.value("M_Vth2", slsDetectorDefs::dacIndex::M_Vth2)
.value("M_VPL", slsDetectorDefs::dacIndex::M_VPL)
.value("M_Vth3", slsDetectorDefs::dacIndex::M_Vth3)
.value("M_casSh", slsDetectorDefs::dacIndex::M_casSh)
.value("M_cas", slsDetectorDefs::dacIndex::M_cas)
.value("M_vIcin", slsDetectorDefs::dacIndex::M_vIcin)
.value("M_vIpreOut", slsDetectorDefs::dacIndex::M_vIpreOut)
.value("VIPRE", slsDetectorDefs::dacIndex::VIPRE)
.value("VIINSH", slsDetectorDefs::dacIndex::VIINSH)
.value("VDCSH", slsDetectorDefs::dacIndex::VDCSH)
.value("VTH2", slsDetectorDefs::dacIndex::VTH2)
.value("VPL", slsDetectorDefs::dacIndex::VPL)
.value("VTH3", slsDetectorDefs::dacIndex::VTH3)
.value("CASSH", slsDetectorDefs::dacIndex::CASSH)
.value("CAS", slsDetectorDefs::dacIndex::CAS)
.value("VICIN", slsDetectorDefs::dacIndex::VICIN)
.value("VIPRE_OUT", slsDetectorDefs::dacIndex::VIPRE_OUT)
.value("VREF_H_ADC", slsDetectorDefs::dacIndex::VREF_H_ADC)
.value("VB_COMP_FE", slsDetectorDefs::dacIndex::VB_COMP_FE)
.value("VB_COMP_ADC", slsDetectorDefs::dacIndex::VB_COMP_ADC)

View File

@ -130,6 +130,17 @@ class qDefs : public QWidget {
NUM_GUI_FUNCS
};
/** returns string from enabled/disabled
@param b true or false
@returns string enabled, disabled
*/
static std::string stringEnable(bool b) {
if (b)
return std::string("enabled");
else
return std::string("disabled");
};
/**
* returns the unit in words
* @param unit is the time unit

View File

@ -312,7 +312,7 @@ void qDetectorMain::EnableModes(QAction *action) {
enable = actionDebug->isChecked();
tabs->setTabEnabled(DEBUGGING, enable);
FILE_LOG(logINFO) << "Debug Mode: "
<< sls::ToString(enable);
<< qDefs::stringEnable(enable);
}
@ -323,7 +323,7 @@ void qDetectorMain::EnableModes(QAction *action) {
tabs->setTabEnabled(ADVANCED, enable);
actionLoadTrimbits->setVisible(enable && detType == slsDetectorDefs::EIGER);
FILE_LOG(logINFO) << "Expert Mode: "
<< sls::ToString(enable);
<< qDefs::stringEnable(enable);
}
// Set DockableMode
@ -336,7 +336,7 @@ void qDetectorMain::EnableModes(QAction *action) {
dockWidgetPlot->setFeatures(QDockWidget::NoDockWidgetFeatures);
}
FILE_LOG(logINFO) << "Dockable Mode: "
<< sls::ToString(enable);
<< qDefs::stringEnable(enable);
}
}

View File

@ -199,37 +199,37 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(slsDetectorDefs::detectorTy
case slsDetectorDefs::EIGER:
switch (index) {
case 0:
return slsDetectorDefs::E_SvP;
return slsDetectorDefs::SVP;
case 1:
return slsDetectorDefs::E_SvN;
return slsDetectorDefs::SVN;
case 2:
return slsDetectorDefs::E_Vrf;
return slsDetectorDefs::VRF;
case 3:
return slsDetectorDefs::E_Vrs;
return slsDetectorDefs::VRS;
case 4:
return slsDetectorDefs::E_Vtr;
return slsDetectorDefs::VTR;
case 5:
return slsDetectorDefs::E_Vtgstv;
return slsDetectorDefs::VTGSTV;
case 6:
return slsDetectorDefs::E_cal;
return slsDetectorDefs::CAL;
case 7:
return slsDetectorDefs::E_Vcp;
return slsDetectorDefs::VCP;
case 8:
return slsDetectorDefs::E_Vcn;
return slsDetectorDefs::VCN;
case 9:
return slsDetectorDefs::E_Vis;
return slsDetectorDefs::VIS;
case 10:
return slsDetectorDefs::E_rxb_lb;
return slsDetectorDefs::RXB_LB;
case 11:
return slsDetectorDefs::E_rxb_rb;
return slsDetectorDefs::RXB_RB;
case 12:
return slsDetectorDefs::E_Vcmp_ll;
return slsDetectorDefs::VCMP_LL;
case 13:
return slsDetectorDefs::E_Vcmp_lr;
return slsDetectorDefs::VCMP_LR;
case 14:
return slsDetectorDefs::E_Vcmp_rl;
return slsDetectorDefs::VCMP_RL;
case 15:
return slsDetectorDefs::E_Vcmp_rr;
return slsDetectorDefs::VCMP_RR;
case 16:
return slsDetectorDefs::THRESHOLD;
case 17:
@ -251,21 +251,21 @@ slsDetectorDefs::dacIndex qTabDeveloper::getSLSIndex(slsDetectorDefs::detectorTy
case slsDetectorDefs::GOTTHARD:
switch (index) {
case 0:
return slsDetectorDefs::G_VREF_DS;
return slsDetectorDefs::VREF_DS;
case 1:
return slsDetectorDefs::G_VCASCN_PB;
return slsDetectorDefs::VCASCN_PB;
case 2:
return slsDetectorDefs::G_VCASCP_PB;
return slsDetectorDefs::VCASCP_PB;
case 3:
return slsDetectorDefs::G_VOUT_CM;
return slsDetectorDefs::VOUT_CM;
case 4:
return slsDetectorDefs::G_VCASC_OUT;
return slsDetectorDefs::VCASC_OUT;
case 5:
return slsDetectorDefs::G_VIN_CM;
return slsDetectorDefs::VIN_CM;
case 6:
return slsDetectorDefs::G_VREF_COMP;
return slsDetectorDefs::VREF_COMP;
case 7:
return slsDetectorDefs::G_IB_TESTC;
return slsDetectorDefs::IB_TESTC;
case 8:
return slsDetectorDefs::TEMPERATURE_ADC;
case 9:

View File

@ -959,12 +959,12 @@ void setDAC(enum DACINDEX ind, int val, int mV) {
FILE_LOG(logDEBUG1, ("Setting dac[%d]: %d %s \n", (int)ind, val, (mV ? "mV" : "dac units")));
if (ind == VTHRESHOLD) {
setDAC(VCMP_LL, val, mV);
setDAC(VCMP_LR, val, mV);
setDAC(VCMP_RL, val, mV);
setDAC(VCMP_RR, val, mV);
setDAC(VCP, val, mV);
if (ind == E_VTHRESHOLD) {
setDAC(E_VCMP_LL, val, mV);
setDAC(E_VCMP_LR, val, mV);
setDAC(E_VCMP_RL, val, mV);
setDAC(E_VCMP_RR, val, mV);
setDAC(E_VCP, val, mV);
return;
}
@ -996,13 +996,13 @@ void setDAC(enum DACINDEX ind, int val, int mV) {
}
int getDAC(enum DACINDEX ind, int mV) {
if (ind == VTHRESHOLD) {
if (ind == E_VTHRESHOLD) {
int ret[5] = {0};
ret[0] = getDAC(VCMP_LL, mV);
ret[1] = getDAC(VCMP_LR, mV);
ret[2] = getDAC(VCMP_RL, mV);
ret[3] = getDAC(VCMP_RR, mV);
ret[4] = getDAC(VCP, mV);
ret[0] = getDAC(E_VCMP_LL, mV);
ret[1] = getDAC(E_VCMP_LR, mV);
ret[2] = getDAC(E_VCMP_RL, mV);
ret[3] = getDAC(E_VCMP_RR, mV);
ret[4] = getDAC(E_VCP, mV);
if ((ret[0]== ret[1])&&
(ret[1]==ret[2])&&

View File

@ -9,7 +9,7 @@
#define STATUS_ERROR 2
/* Enums */
enum DACINDEX {SVP,VTR,VRF,VRS,SVN,VTGSTV,VCMP_LL,VCMP_LR,CAL,VCMP_RL,RXB_RB,RXB_LB,VCMP_RR,VCP,VCN,VIS,VTHRESHOLD};
enum DACINDEX {E_SVP,E_VTR,E_VRF,E_VRS,E_SVN,E_VTGSTV,E_VCMP_LL,E_VCMP_LR,E_CAL,E_VCMP_RL,E_RXB_RB,E_RXB_LB,E_VCMP_RR,E_VCP,E_VCN,E_VIS,E_VTHRESHOLD};
#define DEFAULT_DAC_VALS { \
0, /* SvP */ \
2480, /* Vtr */ \

View File

@ -39,25 +39,25 @@
/** Other Definitions */
#define BIT16_MASK (0xFFFF)
#define DAC_NAMES "VREF_H_ADC", "DAC_UNUSED", "VB_COMP_FE", "VB_COMP_ADC", "VCOM_CDS", "VREF_RESTORE", "VB_OPA_1ST", "VREF_COMP_FE", "VCOM_ADC1", "VREF_PRECH", "VREF_L_ADC", "VREF_CDS", "VB_CS", "VB_OPA_FD", "DAC_UNUSED2", "VCOM_ADC2"
#define DAC_NAMES "vref_h_adc", "dac_unused", "vb_comp_fe", "vb_comp_adc", "vcom_cds", "vref_restore", "vb_opa_1st", "vref_comp_fe", "vcom_adc1", "vref_prech", "vref_l_adc", "vref_cds", "vb_cs", "vb_opa_fd", "dac_unused2", "vcom_adc2"
/* Enums */
enum DACINDEX {G_VREF_H_ADC, /* 0 */ \
G_DAC_UNUSED, /* 1 */ \
G_VB_COMP_FE, /* 2 */ \
G_VB_COMP_ADC, /* 3 */ \
G_VCOM_CDS, /* 4 */ \
G_VREF_RESTORE,/* 5 */ \
G_VB_OPA_1ST, /* 6 */ \
G_VREF_COMP_FE,/* 7 */ \
G_VCOM_ADC1, /* 8 */ \
G_VREF_PRECH, /* 9 */ \
G_VREF_L_ADC, /* 10 */ \
G_VREF_CDS, /* 11 */ \
G_VB_CS, /* 12 */ \
G_VB_OPA_FD, /* 13 */ \
G_DAC_UNUSED2, /* 14 */ \
G_VCOM_ADC2 /* 15*/ \
enum DACINDEX {G2_VREF_H_ADC, /* 0 */ \
G2_DAC_UNUSED, /* 1 */ \
G2_VB_COMP_FE, /* 2 */ \
G2_VB_COMP_ADC, /* 3 */ \
G2_VCOM_CDS, /* 4 */ \
G2_VREF_RESTORE,/* 5 */ \
G2_VB_OPA_1ST, /* 6 */ \
G2_VREF_COMP_FE,/* 7 */ \
G2_VCOM_ADC1, /* 8 */ \
G2_VREF_PRECH, /* 9 */ \
G2_VREF_L_ADC, /* 10 */ \
G2_VREF_CDS, /* 11 */ \
G2_VB_CS, /* 12 */ \
G2_VB_OPA_FD, /* 13 */ \
G2_DAC_UNUSED2, /* 14 */ \
G2_VCOM_ADC2 /* 15*/ \
};
#define DEFAULT_DAC_VALS {2099, /* 0 (1050 mV) VREF_H_ADC*/ \
0, /* 1 (0 mV) DAC_UNUSED*/ \

View File

@ -4,16 +4,16 @@
/* Enums */
enum ADCINDEX {TEMP_FPGA, TEMP_ADC};
enum DACINDEX {VREF_DS, VCASCN_PB, VCASCP_PB, VOUT_CM, VCASC_OUT, VIN_CM, VREF_COMP, IB_TESTC};
enum DACINDEX {G_VREF_DS, G_VCASCN_PB, G_VCASCP_PB, G_VOUT_CM, G_VCASC_OUT, G_VIN_CM, G_VREF_COMP, G_IB_TESTC};
#define DEFAULT_DAC_VALS { \
660, /* VREF_DS */ \
650, /* VCASCN_PB */ \
1480, /* VCASCP_PB */ \
1520, /* VOUT_CM */ \
1320, /* VCASC_OUT */ \
1350, /* VIN_CM */ \
350, /* VREF_COMP */ \
2001 /* IB_TESTC */ \
660, /* G_VREF_DS */ \
650, /* G_VCASCN_PB */ \
1480, /* G_VCASCP_PB */ \
1520, /* G_VOUT_CM */ \
1320, /* G_VCASC_OUT */ \
1350, /* G_VIN_CM */ \
350, /* G_VREF_COMP */ \
2001 /* G_IB_TESTC */ \
};
/* for 25 um */

View File

@ -39,14 +39,14 @@ typedef struct udp_header_struct {
/* Enums */
enum ADCINDEX {TEMP_FPGA, TEMP_ADC};
enum DACINDEX {J_VB_COMP, J_VDD_PROT, J_VIN_COM, J_VREF_PRECH, J_VB_PIXBUF, J_VB_DS, J_VREF_DS, J_VREF_COMP };
#define DEFAULT_DAC_VALS { 1220, /* VB_COMP */ \
3000, /* VDD_PROT */ \
1053, /* VIN_COM */ \
1450, /* VREF_PRECH */ \
750, /* VB_PIXBUF */ \
1000, /* VB_DS */ \
480, /* VREF_DS */ \
420 /* VREF_COMP */ \
#define DEFAULT_DAC_VALS { 1220, /* J_VB_COMP */ \
3000, /* J_VDD_PROT */ \
1053, /* J_VIN_COM */ \
1450, /* J_VREF_PRECH */ \
750, /* J_VB_PIXBUF */ \
1000, /* J_VB_DS */ \
480, /* J_VREF_DS */ \
420 /* J_VREF_COMP */ \
};
enum NETWORKINDEX { TXN_FRAME, FLOWCTRL_10G };

View File

@ -36,7 +36,7 @@
#define DAC_NAMES "cassh", "vth2", "vshaper", "vshaperneg", "vipreout", "vth3", "vth1", "vicin", "cas", "vpreamp", "vph", "vipre", "viinsh", "vpl", "vtrim", "vdcsh"
/* Enums */
enum CLKINDEX {RUN_CLK, TICK_CLK, SAMPLING_CLK, NUM_CLOCKS};
enum DACINDEX {CASSH, VTH2, VRFSH, VRFSHNPOL, VIPREOUT, VTH3, VTH1, VICIN, CAS, VRF, VPH, VIPRE, VIINSH, VPL, VTRIM, VDCSH};
enum DACINDEX {M_CASSH, M_VTH2, M_VRFSH, M_VRFSHNPOL, M_VIPRE_OUT, M_VTH3, M_VTH1, M_VICIN, M_CAS, M_VRF, M_VPH, M_VIPRE, M_VIINSH, M_VPL, M_VTRIM, M_VDCSH};
#define DEFAULT_DAC_VALS {1200, /* casSh */ \
2800, /* Vth2 */ \
1280, /* VrfSh */ \

View File

@ -744,86 +744,83 @@ int set_dac(int file_des) {
// check if dac exists for this detector
switch (ind) {
#ifdef GOTTHARDD
case G_VREF_DS :
serverDacIndex = VREF_DS;
case VREF_DS :
serverDacIndex = G_VREF_DS;
break;
case G_VCASCN_PB:
serverDacIndex = VCASCN_PB;
case VCASCN_PB:
serverDacIndex = G_VCASCN_PB;
break;
case G_VCASCP_PB:
serverDacIndex = VCASCP_PB;
case VCASCP_PB:
serverDacIndex = G_VCASCP_PB;
break;
case G_VOUT_CM:
serverDacIndex = VOUT_CM;
case VOUT_CM:
serverDacIndex = G_VOUT_CM;
break;
case G_VCASC_OUT:
serverDacIndex = VCASC_OUT;
case VCASC_OUT:
serverDacIndex = G_VCASC_OUT;
break;
case G_VIN_CM:
serverDacIndex = VIN_CM;
case VIN_CM:
serverDacIndex = G_VIN_CM;
break;
case G_VREF_COMP:
serverDacIndex = VREF_COMP;
case VREF_COMP:
serverDacIndex = G_VREF_COMP;
break;
case G_IB_TESTC:
serverDacIndex = IB_TESTC;
case IB_TESTC:
serverDacIndex = G_IB_TESTC;
break;
case HIGH_VOLTAGE:
break;
#elif EIGERD
case TRIMBIT_SIZE:
serverDacIndex = VTR;
break;
case THRESHOLD:
serverDacIndex = VTHRESHOLD;
serverDacIndex = E_VTHRESHOLD;
break;
case E_SvP:
serverDacIndex = SVP;
case SVP:
serverDacIndex = E_SVP;
break;
case E_SvN:
serverDacIndex = SVN;
case SVN:
serverDacIndex = E_SVN;
break;
case E_Vtr:
serverDacIndex = VTR;
case VTR:
serverDacIndex = E_VTR;
break;
case E_Vrf:
serverDacIndex = VRF;
case VRF:
serverDacIndex = E_VRF;
break;
case E_Vrs:
serverDacIndex = VRS;
case VRS:
serverDacIndex = E_VRS;
break;
case E_Vtgstv:
serverDacIndex = VTGSTV;
case VTGSTV:
serverDacIndex = E_VTGSTV;
break;
case E_Vcmp_ll:
serverDacIndex = VCMP_LL;
case VCMP_LL:
serverDacIndex = E_VCMP_LL;
break;
case E_Vcmp_lr:
serverDacIndex = VCMP_LR;
case VCMP_LR:
serverDacIndex = E_VCMP_LR;
break;
case E_cal:
serverDacIndex = CAL;
case CAL:
serverDacIndex = E_CAL;
break;
case E_Vcmp_rl:
serverDacIndex = VCMP_RL;
case VCMP_RL:
serverDacIndex = E_VCMP_RL;
break;
case E_Vcmp_rr:
serverDacIndex = VCMP_RR;
case VCMP_RR:
serverDacIndex = E_VCMP_RR;
break;
case E_rxb_rb:
serverDacIndex = RXB_RB;
case RXB_RB:
serverDacIndex = E_RXB_RB;
break;
case E_rxb_lb:
serverDacIndex = RXB_LB;
case RXB_LB:
serverDacIndex = E_RXB_LB;
break;
case E_Vcp:
serverDacIndex = VCP;
case VCP:
serverDacIndex = E_VCP;
break;
case E_Vcn:
serverDacIndex = VCN;
case VCN:
serverDacIndex = E_VCN;
break;
case E_Vis:
serverDacIndex = VIS;
case VIS:
serverDacIndex = E_VIS;
break;
case HIGH_VOLTAGE:
case IO_DELAY:
@ -860,107 +857,130 @@ int set_dac(int file_des) {
#elif MYTHEN3D
case HIGH_VOLTAGE:
break;
case M_casSh:
serverDacIndex = CASSH;
case CASSH:
serverDacIndex = M_CASSH;
break;
case M_Vth2:
serverDacIndex = VTH2;
case VTH2:
serverDacIndex = M_VTH2;
break;
case SHAPER1:
serverDacIndex = VRFSH;
serverDacIndex = M_VRFSH;
break;
case SHAPER2:
serverDacIndex = VRFSHNPOL;
serverDacIndex = M_VRFSHNPOL;
break;
case M_vIpreOut:
serverDacIndex = VIPREOUT;
case VIPRE_OUT:
serverDacIndex = M_VIPRE_OUT;
break;
case M_Vth3:
serverDacIndex = VTH3;
case VTH3:
serverDacIndex = M_VTH3;
break;
case THRESHOLD:
serverDacIndex = VTH1;
serverDacIndex = M_VTH1;
break;
case M_vIcin:
serverDacIndex = VICIN;
case VICIN:
serverDacIndex = M_VICIN;
break;
case M_cas:
serverDacIndex = CAS;
case CAS:
serverDacIndex = M_CAS;
break;
case PREAMP:
serverDacIndex = VRF;
serverDacIndex = M_VRF;
break;
case CALIBRATION_PULSE:
serverDacIndex = VPH;
serverDacIndex = M_VPH;
break;
case M_vIpre:
serverDacIndex = VIPRE;
case VIPRE:
serverDacIndex = M_VIPRE;
break;
case M_vIinSh:
serverDacIndex = VIINSH;
case VIINSH:
serverDacIndex = M_VIINSH;
break;
case M_VPL:
serverDacIndex = VPL;
case VPL:
serverDacIndex = M_VPL;
break;
case TRIMBIT_SIZE:
serverDacIndex = VTRIM;
serverDacIndex = M_VTRIM;
break;
case M_VdcSh:
serverDacIndex = VDCSH;
case VDCSH:
serverDacIndex = M_VDCSH;
break;
#elif GOTTHARD2D
case HIGH_VOLTAGE:
break;
case VREF_H_ADC:
serverDacIndex = G_VREF_H_ADC;
serverDacIndex = G2_VREF_H_ADC;
break;
case VB_COMP_FE:
serverDacIndex = G_VB_COMP_FE;
serverDacIndex = G2_VB_COMP_FE;
break;
case VB_COMP_ADC:
serverDacIndex = G_VB_COMP_ADC;
serverDacIndex = G2_VB_COMP_ADC;
break;
case VCOM_CDS:
serverDacIndex = G_VCOM_CDS;
serverDacIndex = G2_VCOM_CDS;
break;
case VREF_RESTORE:
serverDacIndex = G_VREF_RESTORE;
serverDacIndex = G2_VREF_RESTORE;
break;
case VB_OPA_1ST:
serverDacIndex = G_VB_OPA_1ST;
serverDacIndex = G2_VB_OPA_1ST;
break;
case VREF_COMP_FE:
serverDacIndex = G_VREF_COMP_FE;
serverDacIndex = G2_VREF_COMP_FE;
break;
case VCOM_ADC1:
serverDacIndex = G_VCOM_ADC1;
serverDacIndex = G2_VCOM_ADC1;
break;
case VREF_PRECH:
serverDacIndex = G_VREF_PRECH;
serverDacIndex = G2_VREF_PRECH;
break;
case VREF_L_ADC:
serverDacIndex = G_VREF_L_ADC;
serverDacIndex = G2_VREF_L_ADC;
break;
case VREF_CDS:
serverDacIndex = G_VREF_CDS;
serverDacIndex = G2_VREF_CDS;
break;
case VB_CS:
serverDacIndex = G_VB_CS;
serverDacIndex = G2_VB_CS;
break;
case VB_OPA_FD:
serverDacIndex = G_VB_OPA_FD;
serverDacIndex = G2_VB_OPA_FD;
break;
case VCOM_ADC2:
serverDacIndex = G_VCOM_ADC2;
break;
serverDacIndex = G2_VCOM_ADC2;
break;
#elif JUNGFRAUD
case HIGH_VOLTAGE:
break;
case VB_DS:
serverDacIndex = J_VB_DS;
break;
case VB_COMP:
serverDacIndex = J_VB_COMP;
break;
case VB_PIXBUF:
serverDacIndex = J_VB_PIXBUF;
break;
case VREF_DS:
serverDacIndex = J_VREF_DS;
break;
case VREF_COMP:
serverDacIndex = J_VREF_COMP;
break;
case VREF_PRECH:
serverDacIndex = J_VREF_PRECH;
break;
case VIN_COM:
serverDacIndex = J_VIN_COM;
break;
case VDD_PROT:
serverDacIndex = J_VDD_PROT;
break;
#endif
default:
#ifdef JUNGFRAUD
if ((ind == HIGH_VOLTAGE) || (ind < NDAC_OLDBOARD)) { //for compatibility with old board
serverDacIndex = ind;
break;
}
#elif CHIPTESTBOARDD
#ifdef CHIPTESTBOARDD
if (ind < NDAC_ONLY) {
serverDacIndex = ind;
break;

View File

@ -454,6 +454,7 @@ class CmdProxy {
{"clkdivider", "speed"},
/** dacs */
{"vcall", "vcal"},
/* acquisition */
{"busy", "clearbusy"},
@ -576,7 +577,7 @@ class CmdProxy {
{"vtgstv", &CmdProxy::vtgstv},
{"vcmp_ll", &CmdProxy::vcmp_ll},
{"vcmp_lr", &CmdProxy::vcmp_lr},
{"vcall", &CmdProxy::vcall}, //TODO???
{"vcal", &CmdProxy::vcal},
{"vcmp_rl", &CmdProxy::vcmp_rl},
{"vcmp_rr", &CmdProxy::vcmp_rr},
{"rxb_rb", &CmdProxy::rxb_rb},
@ -608,6 +609,7 @@ class CmdProxy {
{"cassh", &CmdProxy::cassh},
{"cas", &CmdProxy::cas},
{"vicin", &CmdProxy::vicin},
{"vipre_out", &CmdProxy::vipre_out},
{"vref_h_adc", &CmdProxy::vref_h_adc},
{"vb_comp_fe", &CmdProxy::vb_comp_fe},
{"vb_comp_adc", &CmdProxy::vb_comp_adc},
@ -623,6 +625,12 @@ class CmdProxy {
{"vb_opa_fd", &CmdProxy::vb_opa_fd},
{"vcom_adc2", &CmdProxy::vcom_adc2},
{"adcvpp", &CmdProxy::adcvpp},
{"vb_ds", &CmdProxy::vb_ds},
{"vb_comp", &CmdProxy::vb_comp},
{"vb_pixbuf", &CmdProxy::vb_pixbuf},
{"vin_com", &CmdProxy::vin_com},
{"vdd_prot", &CmdProxy::vdd_prot},
{"dac", &CmdProxy::Dac},
@ -997,80 +1005,80 @@ class CmdProxy {
DAC_COMMAND(vthreshold, getDAC, setDAC, defs::THRESHOLD,
"[dac or mv value][(optional unit) mv] \n\t[Eiger][Mythen3] Detector threshold voltage for single photon counters.");
DAC_COMMAND(vsvp, getDAC, setDAC, defs::E_SvP,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vsvp, getDAC, setDAC, defs::SVP,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vsvn, getDAC, setDAC, defs::E_SvN,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vsvn, getDAC, setDAC, defs::SVN,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vtr, getDAC, setDAC, defs::E_Vtr,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vtr, getDAC, setDAC, defs::VTR,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vrf, getDAC, setDAC, defs::E_Vrf,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vrf, getDAC, setDAC, defs::VRF,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vrs, getDAC, setDAC, defs::E_Vrs,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vrs, getDAC, setDAC, defs::VRS,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vtgstv, getDAC, setDAC, defs::E_Vtgstv,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vtgstv, getDAC, setDAC, defs::VTGSTV,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcmp_ll, getDAC, setDAC, defs::E_Vcmp_ll,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcmp_ll, getDAC, setDAC, defs::VCMP_LL,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcmp_lr, getDAC, setDAC, defs::E_Vcmp_lr,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcmp_lr, getDAC, setDAC, defs::VCMP_LR,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcall, getDAC, setDAC, defs::E_cal,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO , vcall??
DAC_COMMAND(vcal, getDAC, setDAC, defs::CAL,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcmp_rl, getDAC, setDAC, defs::E_Vcmp_rl,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcmp_rl, getDAC, setDAC, defs::VCMP_RL,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcmp_rr, getDAC, setDAC, defs::E_Vcmp_rr,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcmp_rr, getDAC, setDAC, defs::VCMP_RR,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(rxb_rb, getDAC, setDAC, defs::E_rxb_rb,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(rxb_rb, getDAC, setDAC, defs::RXB_RB,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(rxb_lb, getDAC, setDAC, defs::E_rxb_lb,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(rxb_lb, getDAC, setDAC, defs::RXB_LB,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcp, getDAC, setDAC, defs::E_Vcp,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcp, getDAC, setDAC, defs::VCP,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vcn, getDAC, setDAC, defs::E_Vcn,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcn, getDAC, setDAC, defs::VCN,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vis, getDAC, setDAC, defs::E_Vis,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vis, getDAC, setDAC, defs::VIS,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(iodelay, getDAC, setDAC, defs::IO_DELAY,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Dac for ?? "); //TODO
DAC_COMMAND(vref_ds, getDAC, setDAC, defs::G_VREF_DS,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vref_ds, getDAC, setDAC, defs::VREF_DS,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard][Jungfrau] Dac for ?? "); //TODO
DAC_COMMAND(vcascn_pb, getDAC, setDAC, defs::G_VCASCN_PB,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vcascn_pb, getDAC, setDAC, defs::VCASCN_PB,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] Dac for ?? "); //TODO
DAC_COMMAND(vcascp_pb, getDAC, setDAC, defs::G_VCASCP_PB,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vcascp_pb, getDAC, setDAC, defs::VCASCP_PB,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] Dac for ?? "); //TODO
DAC_COMMAND(vout_cm, getDAC, setDAC, defs::G_VOUT_CM,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vout_cm, getDAC, setDAC, defs::VOUT_CM,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] Dac for ?? "); //TODO
DAC_COMMAND(vcasc_out, getDAC, setDAC, defs::G_VCASC_OUT,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vcasc_out, getDAC, setDAC, defs::VCASC_OUT,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] Dac for ?? "); //TODO
DAC_COMMAND(vin_cm, getDAC, setDAC, defs::G_VIN_CM,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vin_cm, getDAC, setDAC, defs::VIN_CM,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] Dac for ?? "); //TODO
DAC_COMMAND(vref_comp, getDAC, setDAC, defs::G_VREF_COMP,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(vref_comp, getDAC, setDAC, defs::VREF_COMP,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard][Jungfrau] Dac for ?? "); //TODO
DAC_COMMAND(ib_test_c, getDAC, setDAC, defs::G_IB_TESTC,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //TODO
DAC_COMMAND(ib_test_c, getDAC, setDAC, defs::IB_TESTC,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] Dac for ?? "); //TODO
DAC_COMMAND(vpreamp, getDAC, setDAC, defs::PREAMP,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] voltage to define the preamplifier feedback resistance.");
@ -1081,88 +1089,105 @@ class CmdProxy {
DAC_COMMAND(vshaper2, getDAC, setDAC, defs::SHAPER2,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] voltage to define feedback resistance of the second shaper.");
DAC_COMMAND(vipre, getDAC, setDAC, defs::M_vIpre,
DAC_COMMAND(vipre, getDAC, setDAC, defs::VIPRE,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the preamplifier's input transistor current.");
DAC_COMMAND(viinsh, getDAC, setDAC, defs::M_vIinSh,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] dac for the bias current for the shaper.");
DAC_COMMAND(viinsh, getDAC, setDAC, defs::VIINSH,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the bias current for the shaper.");
DAC_COMMAND(vdcsh, getDAC, setDAC, defs::M_VdcSh,
DAC_COMMAND(vdcsh, getDAC, setDAC, defs::VDCSH,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the reference (DC) voltage for the shaper.");
DAC_COMMAND(vth1, getDAC, setDAC, defs::THRESHOLD,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for first detector threshold voltage.");
DAC_COMMAND(vth2, getDAC, setDAC, defs::M_Vth2,
DAC_COMMAND(vth2, getDAC, setDAC, defs::VTH2,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for second detector threshold voltage.");
DAC_COMMAND(vth3, getDAC, setDAC, defs::M_Vth3,
DAC_COMMAND(vth3, getDAC, setDAC, defs::VTH3,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for third detector threshold voltage.");
DAC_COMMAND(vpl, getDAC, setDAC, defs::M_VPL,
DAC_COMMAND(vpl, getDAC, setDAC, defs::VPL,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the low voltage for analog pulsing.");
DAC_COMMAND(vph, getDAC, setDAC, defs::CALIBRATION_PULSE,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] dac for the high voltage for analog pulsing.");
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the high voltage for analog pulsing.");
DAC_COMMAND(vtrim, getDAC, setDAC, defs::TRIMBIT_SIZE,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] dac for the voltage defining the trim bit size.");
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the voltage defining the trim bit size.");
DAC_COMMAND(cassh, getDAC, setDAC, defs::M_casSh,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] dac for the shaper's cascode voltage.");
DAC_COMMAND(cassh, getDAC, setDAC, defs::CASSH,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the shaper's cascode voltage.");
DAC_COMMAND(cas, getDAC, setDAC, defs::M_cas,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] dac for the preamplifier's cascode voltage.");
DAC_COMMAND(cas, getDAC, setDAC, defs::CAS,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the preamplifier's cascode voltage.");
DAC_COMMAND(vicin, getDAC, setDAC, defs::M_vIcin,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] dac for the bias current for the comparator.");
DAC_COMMAND(vicin, getDAC, setDAC, defs::VICIN,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for the bias current for the comparator.");
DAC_COMMAND(vipre_out, getDAC, setDAC, defs::VIPRE_OUT,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] Dac for preamplifier's output transistor current."); //TODO
DAC_COMMAND(vref_h_adc, getDAC, setDAC, defs::VREF_H_ADC,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for reference voltage high of ADC.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for reference voltage high of ADC.");
DAC_COMMAND(vb_comp_fe, getDAC, setDAC, defs::VB_COMP_FE,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for comparator current of analogue front end.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for comparator current of analogue front end.");
DAC_COMMAND(vb_comp_adc, getDAC, setDAC, defs::VB_COMP_ADC,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for comparator current of ADC.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for comparator current of ADC.");
DAC_COMMAND(vcom_cds, getDAC, setDAC, defs::VCOM_CDS,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for common mode voltage of CDS stage.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for common mode voltage of CDS stage.");
DAC_COMMAND(vref_restore, getDAC, setDAC, defs::VREF_RESTORE,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for reference charging voltage of temparory storage cell in high gain.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for reference charging voltage of temparory storage cell in high gain.");
DAC_COMMAND(vb_opa_1st, getDAC, setDAC, defs::VB_OPA_1ST,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac dac for opa current for driving the other DACs in chip.");
DAC_COMMAND(vref_comp_fe, getDAC, setDAC, defs::VREF_COMP_FE,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for reference voltage of the comparator of analogue front end.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for reference voltage of the comparator of analogue front end.");
DAC_COMMAND(vcom_adc1, getDAC, setDAC, defs::VCOM_ADC1,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for common mode voltage of ADC DAC bank 1.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for common mode voltage of ADC DAC bank 1.");
DAC_COMMAND(vref_prech, getDAC, setDAC, defs::VREF_PRECH,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for reference votlage for precharing the preamplifier.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2][Jungfrau] Dac for reference votlage for precharing the preamplifier."); //TODO also for jungfrau?
DAC_COMMAND(vref_l_adc, getDAC, setDAC, defs::VREF_L_ADC,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for reference voltage low for ADC.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for reference voltage low for ADC.");
DAC_COMMAND(vref_cds, getDAC, setDAC, defs::VREF_CDS,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for reference voltage of CDS applied to the temporary storage cell in medium and low gain.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for reference voltage of CDS applied to the temporary storage cell in medium and low gain.");
DAC_COMMAND(vb_cs, getDAC, setDAC, defs::VB_CS,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for current injection into preamplifier.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for current injection into preamplifier.");
DAC_COMMAND(vb_opa_fd, getDAC, setDAC, defs::VB_OPA_FD,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for current for CDS opa stage.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for current for CDS opa stage.");
DAC_COMMAND(vcom_adc2, getDAC, setDAC, defs::VCOM_ADC2,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] dac for common mode voltage of ADC DAC bank 2.");
"[dac or mv value][(optional unit) mv] \n\t[Gotthard2] Dac for common mode voltage of ADC DAC bank 2.");
DAC_COMMAND(adcvpp, getDAC, setDAC, defs::ADC_VPP,
"[dac or mv value][(optional unit) mv] \n\t[Ctb] Vpp of ADC.\n\t 0 -> 1V ; 1 -> 1.14V ; 2 -> 1.33V ; 3 -> 1.6V ; 4 -> 2V.");
DAC_COMMAND(vb_ds, getDAC, setDAC, defs::VB_DS,
"[dac or mv value][(optional unit) mv] \n\t[Jungfrau] Dac for ??"); //TODO
DAC_COMMAND(vb_comp, getDAC, setDAC, defs::VB_COMP,
"[dac or mv value][(optional unit) mv] \n\t[Jungfrau] Dac for ??"); //TODO
DAC_COMMAND(vb_pixbuf, getDAC, setDAC, defs::VB_PIXBUF,
"[dac or mv value][(optional unit) mv] \n\t[Jungfrau] Dac for ??"); //TODO
DAC_COMMAND(vin_com, getDAC, setDAC, defs::VIN_COM,
"[dac or mv value][(optional unit) mv] \n\t[Jungfrau] Dac for ??"); //TODO
DAC_COMMAND(vdd_prot, getDAC, setDAC, defs::VDD_PROT,
"[dac or mv value][(optional unit) mv] \n\t[Jungfrau] Dac for ??"); //TODO
/* acquisition */

View File

@ -428,9 +428,9 @@ public:
* @param val value (in V) (-1 gets)
* @param index DAC index
* Options: slsDetectorDefs::dacIndex
* (Eiger: E_SvP up to IO_DELAY, THRESHOLD, HIGH_VOLTAGE)
* (Eiger: SVP up to IO_DELAY, THRESHOLD, HIGH_VOLTAGE)
* (Jungfrau: 0-7)
* (Gotthard: G_VREF_DS up to G_IB_TESTC, HIGH_VOLTAGE)
* (Gotthard: VREF_DS up to IB_TESTC, HIGH_VOLTAGE)
* @param detPos -1 for all detectors in list or specific detector position
* @returns current DAC value
*/

View File

@ -3388,26 +3388,26 @@ sls_detector_module slsDetector::interpolateTrim(sls_detector_module *a,
sls_detector_module myMod{shm()->myDetectorType};
enum eiger_DacIndex {
SVP,
VTR,
VRF,
VRS,
SVN,
VTGSTV,
VCMP_LL,
VCMP_LR,
CAL,
VCMP_RL,
RXB_RB,
RXB_LB,
VCMP_RR,
VCP,
VCN,
VIS
E_SVP,
E_VTR,
E_VRF,
E_VRS,
E_SVN,
E_VTGSTV,
E_VCMP_LL,
E_VCMP_LR,
E_CAL,
E_VCMP_RL,
E_RXB_RB,
E_RXB_LB,
E_VCMP_RR,
E_VCP,
E_VCN,
E_VIS
};
// Copy other dacs
int dacs_to_copy[] = {SVP, VTR, SVN, VTGSTV, RXB_RB, RXB_LB, VCN, VIS};
int dacs_to_copy[] = {E_SVP, E_VTR, E_SVN, E_VTGSTV, E_RXB_RB, E_RXB_LB, E_VCN, E_VIS};
int num_dacs_to_copy = sizeof(dacs_to_copy) / sizeof(dacs_to_copy[0]);
for (int i = 0; i < num_dacs_to_copy; ++i) {
if (a->dacs[dacs_to_copy[i]] != b->dacs[dacs_to_copy[i]]) {
@ -3417,16 +3417,16 @@ sls_detector_module slsDetector::interpolateTrim(sls_detector_module *a,
}
// Copy irrelevant dacs (without failing): CAL
if (a->dacs[CAL] != b->dacs[CAL]) {
if (a->dacs[E_CAL] != b->dacs[E_CAL]) {
FILE_LOG(logWARNING)
<< "DAC CAL differs in both energies (" << a->dacs[CAL] << ","
<< b->dacs[CAL] << ")!\nTaking first: " << a->dacs[CAL];
<< "DAC CAL differs in both energies (" << a->dacs[E_CAL] << ","
<< b->dacs[E_CAL] << ")!\nTaking first: " << a->dacs[E_CAL];
}
myMod.dacs[CAL] = a->dacs[CAL];
myMod.dacs[E_CAL] = a->dacs[E_CAL];
// Interpolate vrf, vcmp, vcp
int dacs_to_interpolate[] = {VRF, VCMP_LL, VCMP_LR, VCMP_RL,
VCMP_RR, VCP, VRS};
int dacs_to_interpolate[] = {E_VRF, E_VCMP_LL, E_VCMP_LR, E_VCMP_RL,
E_VCMP_RR, E_VCP, E_VRS};
int num_dacs_to_interpolate =
sizeof(dacs_to_interpolate) / sizeof(dacs_to_interpolate[0]);
for (int i = 0; i < num_dacs_to_interpolate; ++i) {

View File

@ -137,17 +137,17 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_NOTHROW(multiSlsDetectorClient("vcmp_lr " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vcall", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vcall "));
REQUIRE_NOTHROW(multiSlsDetectorClient("vcal", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vcal "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vcall 1000", PUT));
REQUIRE_NOTHROW(multiSlsDetectorClient("vcal 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vcall", GET, nullptr, oss));
REQUIRE(oss.str() == "vcall 1000\n");
REQUIRE_NOTHROW(multiSlsDetectorClient("vcal", GET, nullptr, oss));
REQUIRE(oss.str() == "vcal 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vcall " + std::to_string(prev_val), PUT));
REQUIRE_NOTHROW(multiSlsDetectorClient("vcal " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vcmp_rl", GET, nullptr, oss));
@ -276,29 +276,136 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("cassh", GET));
REQUIRE_THROWS(multiSlsDetectorClient("cas", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vicin", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_h_adc", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_fe", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_adc", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vcom_cds", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vref_restore", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_1st", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vref_comp_fe", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc1", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vref_prech", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vref_l_adc", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vref_cds", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vb_cs", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_fd", GET)); REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vipre_out", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_h_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_fe", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_cds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_restore", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_1st", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_comp_fe", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc1", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_l_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_cds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_cs", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_fd", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_ds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_pixbuf", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vin_com", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vdd_prot", GET));
}
else if (test::type == slsDetectorDefs::JUNGFRAU) {
for (int i = 0; i < 8; ++i) {
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("dac " + std::to_string(i), GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("dac "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("dac " + std::to_string(i) + " 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("dac " + std::to_string(i), GET, nullptr, oss));
REQUIRE(oss.str() == "dac 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("dac " + std::to_string(i) + " " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_ds", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vb_ds "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_ds 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_ds", GET, nullptr, oss));
REQUIRE(oss.str() == "vb_ds 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_ds " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_comp", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vb_comp "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_comp 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_comp", GET, nullptr, oss));
REQUIRE(oss.str() == "vb_comp 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_comp " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_pixbuf", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vb_pixbuf "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_pixbuf 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_pixbuf", GET, nullptr, oss));
REQUIRE(oss.str() == "vb_pixbuf 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vb_pixbuf " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_ds", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vref_ds "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_ds 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_ds", GET, nullptr, oss));
REQUIRE(oss.str() == "vref_ds 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_ds " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_comp", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vref_comp "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_comp 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_comp", GET, nullptr, oss));
REQUIRE(oss.str() == "vref_comp 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_comp " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_prech", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vref_prech "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_prech 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_prech", GET, nullptr, oss));
REQUIRE(oss.str() == "vref_prech 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vref_prech " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vin_com", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vin_com "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vin_com 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vin_com", GET, nullptr, oss));
REQUIRE(oss.str() == "vin_com 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vin_com " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vdd_prot", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vdd_prot "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vdd_prot 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vdd_prot", GET, nullptr, oss));
REQUIRE(oss.str() == "vdd_prot 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vdd_prot " + std::to_string(prev_val), PUT));
//REQUIRE_THROWS(multiSlsDetectorClient("vthreshold", GET)); dac0
REQUIRE_THROWS(multiSlsDetectorClient("vthreshold", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vsvp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vsvn", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vtr", GET));
@ -307,7 +414,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vtgstv", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_ll", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_lr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcall", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcal", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rl", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("rxb_rb", GET));
@ -316,29 +423,28 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vcn", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vis", GET));
REQUIRE_THROWS(multiSlsDetectorClient("iodelay", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vref_ds", GET));
// REQUIRE_THROWS(multiSlsDetectorClient("vcascn_pb", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vcascp_pb", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vout_cm", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vcasc_out", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vin_cm", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vref_comp", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("ib_test_c", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vpreamp", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vshaper1", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vshaper2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcascn_pb", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcascp_pb", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vout_cm", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcasc_out", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vin_cm", GET));
REQUIRE_THROWS(multiSlsDetectorClient("ib_test_c", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vpreamp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vshaper1", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vshaper2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vipre", GET));
REQUIRE_THROWS(multiSlsDetectorClient("viinsh", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vdcsh", GET));
// REQUIRE_THROWS(multiSlsDetectorClient("vth1", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vth1", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vth2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vth3", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vpl", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vph", GET));
//REQUIRE_THROWS(multiSlsDetectorClient("vtrim", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vph", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vtrim", GET));
REQUIRE_THROWS(multiSlsDetectorClient("cassh", GET));
REQUIRE_THROWS(multiSlsDetectorClient("cas", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vicin", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vipre_out", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_h_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_fe", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_adc", GET));
@ -346,14 +452,12 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vref_restore", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_1st", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_comp_fe", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc1", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_prech", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc1", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_l_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_cds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_cs", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_fd", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc2", GET));
}
else if (test::type == slsDetectorDefs::GOTTHARD) {
@ -471,7 +575,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vtgstv", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_ll", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_lr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcall", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcal", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rl", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("rxb_rb", GET));
@ -495,6 +599,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("cassh", GET));
REQUIRE_THROWS(multiSlsDetectorClient("cas", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vicin", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vipre_out", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_h_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_fe", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_adc", GET));
@ -509,7 +614,11 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vb_cs", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_fd", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_ds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_pixbuf", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vin_com", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vdd_prot", GET));
}
else if (test::type == slsDetectorDefs::CHIPTESTBOARD) {
@ -538,7 +647,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vtgstv", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_ll", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_lr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcall", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcal", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rl", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("rxb_rb", GET));
@ -570,6 +679,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("cassh", GET));
REQUIRE_THROWS(multiSlsDetectorClient("cas", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vicin", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vipre_out", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_h_adc", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_fe", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp_adc", GET));
@ -584,7 +694,11 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vb_cs", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_fd", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_ds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_pixbuf", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vin_com", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vdd_prot", GET));
}
else if (test::type == slsDetectorDefs::MYTHEN3) {
@ -796,7 +910,19 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE(oss.str() == "vicin 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vicin " + std::to_string(prev_val), PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vipre_out", GET, nullptr, oss));
std::string s = (oss.str()).erase (0, strlen("vipre_out "));
prev_val = std::stoi(s);
}
{
REQUIRE_NOTHROW(multiSlsDetectorClient("vipre_out 1000", PUT));
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("vipre_out", GET, nullptr, oss));
REQUIRE(oss.str() == "vipre_out 1000\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("vipre_out " + std::to_string(prev_val), PUT));
REQUIRE_THROWS(multiSlsDetectorClient("vsvp", GET));
@ -807,7 +933,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vtgstv", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_ll", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_lr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcall", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcal", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rl", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("rxb_rb", GET));
@ -838,6 +964,11 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vb_cs", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_opa_fd", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcom_adc2", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_ds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_pixbuf", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vin_com", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vdd_prot", GET));
}
else if (test::type == slsDetectorDefs::GOTTHARD2) {
@ -1034,7 +1165,7 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vtgstv", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_ll", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_lr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcall", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcal", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rl", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vcmp_rr", GET));
REQUIRE_THROWS(multiSlsDetectorClient("rxb_rb", GET));
@ -1051,6 +1182,11 @@ TEST_CASE("dacs", "[.cmd]") {
REQUIRE_THROWS(multiSlsDetectorClient("vin_cm", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vref_comp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("ib_test_c", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_ds", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_comp", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vb_pixbuf", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vin_com", GET));
REQUIRE_THROWS(multiSlsDetectorClient("vdd_prot", GET));
}
}
@ -4132,29 +4268,7 @@ TEST_CASE("fname", "[.cmd]") {
}
}
TEST_CASE("rx_framescaught", "[.cmd]") {
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("resetframescaught 0", PUT, nullptr, oss));
REQUIRE(oss.str() == "resetframescaught successful\n");
}
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("rx_framescaught", GET, nullptr, oss));
REQUIRE(oss.str() == "rx_framescaught 0\n");
}
REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT));
REQUIRE_NOTHROW(multiSlsDetectorClient("exptime 1", PUT));
REQUIRE_NOTHROW(multiSlsDetectorClient("rx_start", PUT));
REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT));
sleep(2);
REQUIRE_NOTHROW(multiSlsDetectorClient("rx_stop", PUT));
{
std::ostringstream oss;
REQUIRE_NOTHROW(multiSlsDetectorClient("rx_framescaught", GET, nullptr, oss));
// REQUIRE(oss.str() == "rx_framescaught 1\n");
}
}
TEST_CASE("rx_silent", "[.cmd]") {
{

View File

@ -72,4 +72,4 @@ struct masterAttributes {
uint64_t dbitlist;
uint32_t roiXmin;
uint32_t roiXmax;
};
};

View File

@ -633,21 +633,21 @@ void slsReceiverImplementation::setFileWriteEnable(const bool b) {
}
}
FILE_LOG(logINFO) << "File Write Enable: " << sls::ToString(fileWriteEnable);
FILE_LOG(logINFO) << "File Write Enable: " << (fileWriteEnable ? "enabled" : "disabled");
}
void slsReceiverImplementation::setMasterFileWriteEnable(const bool b) {
masterFileWriteEnable = b;
FILE_LOG(logINFO) << "Master File Write Enable: "
<< sls::ToString(masterFileWriteEnable);
<< (masterFileWriteEnable ? "enabled" : "disabled");
}
void slsReceiverImplementation::setOverwriteEnable(const bool b) {
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
overwriteEnable = b;
FILE_LOG(logINFO) << "Overwrite Enable: " << sls::ToString(overwriteEnable);
FILE_LOG(logINFO) << "Overwrite Enable: " << (overwriteEnable ? "enabled" : "disabled");
}
/***connection parameters***/
@ -1044,7 +1044,7 @@ int slsReceiverImplementation::setTenGigaEnable(const bool b) {
if (SetupFifoStructure() == FAIL)
return FAIL;
}
FILE_LOG(logINFO) << "Ten Giga: " << sls::ToString(tengigaEnable);
FILE_LOG(logINFO) << "Ten Giga: " << (tengigaEnable ? "enabled" : "disabled");
FILE_LOG(logINFO) << "Packets per Frame: "
<< (generalData->packetsPerFrame);
return OK;
@ -1064,7 +1064,7 @@ int slsReceiverImplementation::setFifoDepth(const uint32_t i) {
bool slsReceiverImplementation::setActivate(bool enable) {
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
activated = enable;
FILE_LOG(logINFO) << "Activation: " << sls::ToString(activated);
FILE_LOG(logINFO) << "Activation: " << (activated ? "enabled" : "disabled");
return activated;
}
@ -1072,7 +1072,7 @@ bool slsReceiverImplementation::setDeactivatedPadding(bool enable) {
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
deactivatedPaddingEnable = enable;
FILE_LOG(logINFO) << "Deactivated Padding Enable: "
<< sls::ToString(deactivatedPaddingEnable);
<< (deactivatedPaddingEnable ? "enabled" : "disabled");
return deactivatedPaddingEnable;
}

View File

@ -23,13 +23,6 @@ namespace sls {
using defs = slsDetectorDefs;
inline std::string ToString(const bool b) {
if (b) {
return std::string("enabled");
}
return std::string("disabled");
}
inline std::string ToString(const defs::runStatus s) {
switch (s) {
case defs::ERROR:
@ -573,25 +566,25 @@ inline defs::detectorModeType StringTo(const std::string& s) {
template <>
inline defs::dacIndex StringTo(const std::string& s) {
if (s == "vcmp_ll")
return defs::E_Vcmp_ll;
return defs::VCMP_LL;
if (s == "vcmp_lr")
return defs::E_Vcmp_lr;
return defs::VCMP_LR;
if (s == "vcmp_rl")
return defs::E_Vcmp_rl;
return defs::VCMP_RL;
if (s == "vcmp_rr")
return defs::E_Vcmp_rr;
return defs::VCMP_RR;
if (s == "vthreshold")
return defs::THRESHOLD;
if (s == "vrf")
return defs::E_Vrf;
return defs::VRF;
if (s == "vrs")
return defs::E_Vrs;
return defs::VRS;
if (s == "vtr")
return defs::E_Vtr;
return defs::VTR;
if (s == "vcall")
return defs::E_cal;
return defs::CAL;
if (s == "vcp")
return defs::E_Vcp;
return defs::VCP;
throw sls::RuntimeError("Unknown dac Index " + s);
}

View File

@ -82,15 +82,15 @@ class slsDetectorDefs {
Type of the detector
*/
enum detectorType {
GET_DETECTOR_TYPE = -1, /**< the detector will return its type */
GENERIC, /**< generic sls detector */
EIGER, /**< eiger */
GOTTHARD, /**< gotthard */
JUNGFRAU, /**< jungfrau */
CHIPTESTBOARD, /**< CTB */
MOENCH, /**< moench */
MYTHEN3, /**< mythen3 */
GOTTHARD2, /** < gotthard2 */
GET_DETECTOR_TYPE = -1,
GENERIC,
EIGER,
GOTTHARD,
JUNGFRAU,
CHIPTESTBOARD,
MOENCH,
MYTHEN3,
GOTTHARD2,
};
/**
@ -379,84 +379,89 @@ format
detector dacs indexes
*/
enum dacIndex {
THRESHOLD, /**< comparator threshold level */
CALIBRATION_PULSE, /**< calibration input pulse height */
TRIMBIT_SIZE, /**< voltage to determine the trimbits LSB */
PREAMP, /**< preamp feedback */
SHAPER1, /**< shaper1 feedback */
SHAPER2, /**< shaper2 feedback */
TEMPERATURE_ADC, /**< temperature sensor (adc) */
TEMPERATURE_FPGA, /**< temperature sensor (fpga) */
G_VREF_DS, /**< gotthard */
G_VCASCN_PB, /**< gotthard */
G_VCASCP_PB, /**< gotthard */
G_VOUT_CM, /**< gotthard */
G_VCASC_OUT, /**< gotthard */
G_VIN_CM, /**< gotthard */
G_VREF_COMP, /**< gotthard */
G_IB_TESTC, /**< gotthard */
E_SvP, /**< eiger */
E_SvN, /**< eiger */
E_Vtr, /**< eiger */
E_Vrf, /**< eiger */
E_Vrs, /**< eiger */
E_Vtgstv, /**< eiger */
E_Vcmp_ll, /**< eiger */
E_Vcmp_lr, /**< eiger */
E_cal, /**< eiger */
E_Vcmp_rl, /**< eiger */
E_Vcmp_rr, /**< eiger */
E_rxb_rb, /**< eiger */
E_rxb_lb, /**< eiger */
E_Vcp, /**< eiger */
E_Vcn, /**< eiger */
E_Vis, /**< eiger */
IO_DELAY, /**< eiger io delay */
ADC_VPP, /**< adc vpp for jctb */
HIGH_VOLTAGE, /**< high voltage */
TEMPERATURE_FPGAEXT, /**< temperature sensor (close to fpga) */
TEMPERATURE_10GE, /**< temperature sensor (close to 10GE) */
TEMPERATURE_DCDC, /**< temperature sensor (close to DCDC) */
TEMPERATURE_SODL, /**< temperature sensor (close to SODL) */
TEMPERATURE_SODR, /**< temperature sensor (close to SODR) */
TEMPERATURE_FPGA2, /**< temperature sensor (fpga2 (eiger:febl) */
TEMPERATURE_FPGA3, /**< temperature sensor (fpga3 (eiger:febr) */
M_vIpre, /**< mythen 3 >*/
M_vIinSh, /**< mythen 3 >*/
M_VdcSh, /**< mythen 3 >*/
M_Vth2, /**< mythen 3 >*/
M_VPL, /**< mythen 3 >*/
M_Vth3, /**< mythen 3 >*/
M_casSh, /**< mythen 3 >*/
M_cas, /**< mythen 3 >*/
M_vIcin, /**< mythen 3 >*/
M_vIpreOut, /**< mythen 3 >*/
VREF_H_ADC, /**< gotthard 2 >*/
VB_COMP_FE, /**< gotthard 2 >*/
VB_COMP_ADC, /**< gotthard 2 >*/
VCOM_CDS, /**< gotthard 2 >*/
VREF_RESTORE, /**< gotthard 2 >*/
VB_OPA_1ST, /**< gotthard 2 >*/
VREF_COMP_FE, /**< gotthard 2 >*/
VCOM_ADC1, /**< gotthard 2 >*/
VREF_PRECH, /**< gotthard 2 >*/
VREF_L_ADC, /**< gotthard 2 >*/
VREF_CDS, /**< gotthard 2 >*/
VB_CS, /**< gotthard 2 >*/
VB_OPA_FD, /**< gotthard 2 >*/
VCOM_ADC2, /**< gotthard 2 >*/
V_POWER_A = 100, /**new chiptest board */
V_POWER_B = 101, /**new chiptest board */
V_POWER_C = 102, /**new chiptest board */
V_POWER_D = 103, /**new chiptest board */
V_POWER_IO = 104, /**new chiptest board */
V_POWER_CHIP = 105, /**new chiptest board */
I_POWER_A = 106, /**new chiptest board */
I_POWER_B = 107, /**new chiptest board */
I_POWER_C = 108, /**new chiptest board */
I_POWER_D = 109, /**new chiptest board */
I_POWER_IO = 110, /**new chiptest board */
V_LIMIT = 111, /**new chiptest board */
THRESHOLD,
CALIBRATION_PULSE,
TRIMBIT_SIZE,
PREAMP,
SHAPER1,
SHAPER2,
TEMPERATURE_ADC,
TEMPERATURE_FPGA,
VREF_DS,
VCASCN_PB,
VCASCP_PB,
VOUT_CM,
VCASC_OUT,
VIN_CM,
VREF_COMP,
IB_TESTC,
SVP,
SVN,
VTR,
VRF,
VRS,
VTGSTV,
VCMP_LL,
VCMP_LR,
CAL,
VCMP_RL,
VCMP_RR,
RXB_RB,
RXB_LB,
VCP,
VCN,
VIS,
IO_DELAY,
ADC_VPP,
HIGH_VOLTAGE,
TEMPERATURE_FPGAEXT,
TEMPERATURE_10GE,
TEMPERATURE_DCDC,
TEMPERATURE_SODL,
TEMPERATURE_SODR,
TEMPERATURE_FPGA2,
TEMPERATURE_FPGA3,
VIPRE,
VIINSH,
VDCSH,
VTH2,
VPL,
VTH3,
CASSH,
CAS,
VICIN,
VIPRE_OUT,
VREF_H_ADC,
VB_COMP_FE,
VB_COMP_ADC,
VCOM_CDS,
VREF_RESTORE,
VB_OPA_1ST,
VREF_COMP_FE,
VCOM_ADC1,
VREF_PRECH,
VREF_L_ADC,
VREF_CDS,
VB_CS,
VB_OPA_FD,
VCOM_ADC2,
VB_DS,
VB_COMP,
VB_PIXBUF,
VIN_COM,
VDD_PROT,
V_POWER_A = 100,
V_POWER_B = 101,
V_POWER_C = 102,
V_POWER_D = 103,
V_POWER_IO = 104,
V_POWER_CHIP = 105,
I_POWER_A = 106,
I_POWER_B = 107,
I_POWER_C = 108,
I_POWER_D = 109,
I_POWER_IO = 110,
V_LIMIT = 111,
SLOW_ADC0 = 1000,
SLOW_ADC1,
SLOW_ADC2,

View File

@ -8,5 +8,5 @@
#define APICTB 0x191029
#define APIGOTTHARD 0x191029
#define APIGOTTHARD2 0x191029
#define APIMYTHEN3 0x191021
#define APIMYTHEN3 0x191029
#define APIEIGER 0x191029