This commit is contained in:
maliakal_d 2019-10-29 10:07:07 +01:00
parent 4155e301b8
commit 798f221764
8 changed files with 1313 additions and 1009 deletions

View File

@ -230,7 +230,7 @@
} \
mv = true; \
} else if (args.size() > 1) { \
WrongNumberOfParameters(1); \
WrongNumberOfParameters(0); \
} \
auto t = det->GETFCN(DAC_INDEX, mv, {det_id}); \
os << OutString(t) << (args.size() > 0 ? " mv\n" : "\n"); \
@ -567,6 +567,64 @@ class CmdProxy {
{"timing", &CmdProxy::timing},
/* dacs */
{"vthreshold", &CmdProxy::vthreshold},
{"vsvp", &CmdProxy::vsvp},
{"vsvn", &CmdProxy::vsvn},
{"vtr", &CmdProxy::vtr},
{"vrf", &CmdProxy::vrf},
{"vrs", &CmdProxy::vrs},
{"vtgstv", &CmdProxy::vtgstv},
{"vcmp_ll", &CmdProxy::vcmp_ll},
{"vcmp_lr", &CmdProxy::vcmp_lr},
{"vcall", &CmdProxy::vcall}, //TODO???
{"vcmp_rl", &CmdProxy::vcmp_rl},
{"vcmp_rr", &CmdProxy::vcmp_rr},
{"rxb_rb", &CmdProxy::rxb_rb},
{"rxb_lb", &CmdProxy::rxb_lb},
{"vcp", &CmdProxy::vcp},
{"vcn", &CmdProxy::vcn},
{"vis", &CmdProxy::vis},
{"iodelay", &CmdProxy::iodelay},
{"vref_ds", &CmdProxy::vref_ds},
{"vcascn_pb", &CmdProxy::vcascn_pb},
{"vcascp_pb", &CmdProxy::vcascp_pb},
{"vout_cm", &CmdProxy::vout_cm},
{"vcasc_out", &CmdProxy::vcasc_out},
{"vin_cm", &CmdProxy::vin_cm},
{"vref_comp", &CmdProxy::vref_comp},
{"ib_test_c", &CmdProxy::ib_test_c},
{"vpreamp", &CmdProxy::vpreamp},
{"vshaper1", &CmdProxy::vshaper1},
{"vshaper2", &CmdProxy::vshaper2},
{"vipre", &CmdProxy::vipre},
{"viinsh", &CmdProxy::viinsh},
{"vdcsh", &CmdProxy::vdcsh},
{"vth1", &CmdProxy::vth1},
{"vth2", &CmdProxy::vth2},
{"vth3", &CmdProxy::vth3},
{"vpl", &CmdProxy::vpl},
{"vph", &CmdProxy::vph},
{"vtrim", &CmdProxy::vtrim},
{"cassh", &CmdProxy::cassh},
{"cas", &CmdProxy::cas},
{"vicin", &CmdProxy::vicin},
{"vref_h_adc", &CmdProxy::vref_h_adc},
{"vb_comp_fe", &CmdProxy::vb_comp_fe},
{"vb_comp_adc", &CmdProxy::vb_comp_adc},
{"vcom_cds", &CmdProxy::vcom_cds},
{"vref_restore", &CmdProxy::vref_restore},
{"vb_opa_1st", &CmdProxy::vb_opa_1st},
{"vref_comp_fe", &CmdProxy::vref_comp_fe},
{"vcom_adc1", &CmdProxy::vcom_adc1},
{"vref_prech", &CmdProxy::vref_prech},
{"vref_l_adc", &CmdProxy::vref_l_adc},
{"vref_cds", &CmdProxy::vref_cds},
{"vb_cs", &CmdProxy::vb_cs},
{"vb_opa_fd", &CmdProxy::vb_opa_fd},
{"vcom_adc2", &CmdProxy::vcom_adc2},
{"adcvpp", &CmdProxy::adcvpp},
{"dac", &CmdProxy::Dac},
/* acquisition */
{"clearbusy", &CmdProxy::clearbusy},
@ -770,14 +828,7 @@ class CmdProxy {
{"now", &CmdProxy::now},
{"timestamp", &CmdProxy::timestamp},
{"user", &CmdProxy::UserDetails},
{"rx_frameindex", &CmdProxy::rx_frameindex},
{"adcvpp", &CmdProxy::adcvpp}//dac
{"rx_frameindex", &CmdProxy::rx_frameindex}
};
@ -801,6 +852,8 @@ class CmdProxy {
std::string ClockPhase(int action);
std::string MaxClockPhaseShift(int action);
std::string ClockDivider(int action);
/* dacs */
std::string Dac(int action);
/* acquisition */
/* Network Configuration (Detector<->Receiver) */
/* Receiver Config */
@ -941,6 +994,175 @@ class CmdProxy {
/* dacs */
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(vsvn, getDAC, setDAC, defs::E_SvN,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vtr, getDAC, setDAC, defs::E_Vtr,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vrf, getDAC, setDAC, defs::E_Vrf,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vrs, getDAC, setDAC, defs::E_Vrs,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vtgstv, getDAC, setDAC, defs::E_Vtgstv,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //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_lr, getDAC, setDAC, defs::E_Vcmp_lr,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //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(vcmp_rl, getDAC, setDAC, defs::E_Vcmp_rl,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //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(rxb_rb, getDAC, setDAC, defs::E_rxb_rb,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //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(vcp, getDAC, setDAC, defs::E_Vcp,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vcn, getDAC, setDAC, defs::E_Vcn,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(vis, getDAC, setDAC, defs::E_Vis,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //TODO
DAC_COMMAND(iodelay, getDAC, setDAC, defs::IO_DELAY,
"[dac or mv value][(optional unit) mv] \n\t[Eiger] Eiger dac ?? "); //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(vcascn_pb, getDAC, setDAC, defs::G_VCASCN_PB,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //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(vout_cm, getDAC, setDAC, defs::G_VOUT_CM,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //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(vin_cm, getDAC, setDAC, defs::G_VIN_CM,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //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(ib_test_c, getDAC, setDAC, defs::G_IB_TESTC,
"[dac or mv value][(optional unit) mv] \n\t[Gotthard] dac ?? "); //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.");
DAC_COMMAND(vshaper1, getDAC, setDAC, defs::SHAPER1,
"[dac or mv value][(optional unit) mv] \n\t[Mythen3] voltage to define feedback resistance of the first shaper");
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 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(vdcsh, getDAC, setDAC, defs::M_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 or mv value][(optional unit) mv] \n\t[Mythen3] Dac for second detector threshold voltage.");
DAC_COMMAND(vth3, getDAC, setDAC, defs::M_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 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_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_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(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(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(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_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_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_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_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_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_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_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_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_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_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_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_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_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.");
/* acquisition */
@ -1373,16 +1595,6 @@ class CmdProxy {
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.");
};
} // namespace sls

View File

@ -46,8 +46,6 @@ class slsDetectorCommand : public virtual slsDetectorDefs {
static std::string helpExitServer(int action);
static std::string helpThreaded(int action);
static std::string helpSN(int action);
static std::string helpDigiTest(int action);
static std::string helpDAC(int action);
static std::string helpConfiguration(int action);
static std::string helpReceiver(int action);
@ -62,8 +60,6 @@ class slsDetectorCommand : public virtual slsDetectorDefs {
std::string cmdHelp(int narg, const char * const args[], int action, int detPos = -1);
std::string cmdExitServer(int narg, const char * const args[], int action, int detPos = -1);
std::string cmdSN(int narg, const char * const args[], int action, int detPos = -1);
std::string cmdDigiTest(int narg, const char * const args[], int action, int detPos = -1);
std::string cmdDAC(int narg, const char * const args[], int action, int detPos = -1);
std::string cmdConfiguration(int narg, const char * const args[], int action, int detPos = -1);
std::string cmdReceiver(int narg, const char * const args[], int action, int detPos = -1);

View File

@ -505,6 +505,40 @@ std::string CmdProxy::ClockDivider(int action) {
/* dacs */
std::string CmdProxy::Dac(int action) {
std::ostringstream os;
os << cmd << ' ';
if (action == defs::HELP_ACTION) {
os << "[dac index] [dac or mv value] [(optional unit) mv] \n\t[Ctb][Jungfrau] Dac." << '\n';
} else if (action == defs::GET_ACTION) {
bool mv = false;
if (args.size() == 2) {
if (args[1] != "mv") {
throw sls::RuntimeError("Unknown argument " + args[1] + ". Did you mean mv?");
}
mv = true;
} else if (args.size() > 2) {
WrongNumberOfParameters(1);
}
auto t = det->getDAC(static_cast<defs::dacIndex>(std::stoi(args[0])), mv, {det_id});
os << OutString(t) << (args.size() > 1 ? " mv\n" : "\n");
} else if (action == defs::PUT_ACTION) {
bool mv = false;
if (args.size() == 3) {
if (args[2] != "mv") {
throw sls::RuntimeError("Unknown argument " + args[2] + ". Did you mean mv?");
}
mv = true;
} else if (args.size() > 3 || args.size() < 2) {
WrongNumberOfParameters(2);
}
det->setDAC(static_cast<defs::dacIndex>(std::stoi(args[0])), std::stoi(args[1]), mv, {det_id});
os << args[1] << (args.size() > 2 ? " mv\n" : "\n");
} else {
throw sls::RuntimeError("Unknown action");
}
return os.str();
}
/* acquisition */
/* Network Configuration (Detector<->Receiver) */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -387,12 +387,6 @@ format
SHAPER2, /**< shaper2 feedback */
TEMPERATURE_ADC, /**< temperature sensor (adc) */
TEMPERATURE_FPGA, /**< temperature sensor (fpga) */
HUMIDITY, /**< humidity sensor (adc) */
DETECTOR_BIAS, /**< detector bias */
VA_POT, /**< power supply va */
VDD_POT, /**< chiptest board power supply vdd */
VSH_POT, /**< chiptest board power supply vsh */
VIO_POT, /**< chiptest board power supply va */
G_VREF_DS, /**< gotthard */
G_VCASCN_PB, /**< gotthard */
G_VCASCP_PB, /**< gotthard */

View File

@ -7,6 +7,6 @@
#define APIMYTHEN3 0x191011
#define APIGOTTHARD2 0x191017
#define APIGOTTHARD 0x191024
#define APIJUNGFRAU 0x191024
#define APIEIGER 0x191024
#define APICTB 0x191024
#define APIJUNGFRAU 0x191029