mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-16 03:25:13 +01:00
xilinx: wip: dac to voltage needs to be separated and a default value needed or return a -1 for not defined
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -401,6 +401,7 @@ void setPower(enum DACINDEX ind, int val);
|
|||||||
void powerOff();
|
void powerOff();
|
||||||
#elif XILINX_CHIPTESTBOARDD
|
#elif XILINX_CHIPTESTBOARDD
|
||||||
int getBitOffsetFromDACIndex(enum DACINDEX ind);
|
int getBitOffsetFromDACIndex(enum DACINDEX ind);
|
||||||
|
int getMinPowerValue(enum DACINDEX ind);
|
||||||
int isPowerValid(enum DACINDEX ind, int val);
|
int isPowerValid(enum DACINDEX ind, int val);
|
||||||
int getPower();
|
int getPower();
|
||||||
int setPower(enum DACINDEX ind, int val);
|
int setPower(enum DACINDEX ind, int val);
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ int LTC2620_D_WriteDACValue(int dacnum, int dacvalue, char *dacname) {
|
|||||||
dacnum, DAC_POWERDOWN_DRIVER_FILE_SUFFIX);
|
dacnum, DAC_POWERDOWN_DRIVER_FILE_SUFFIX);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
LOG(logDEBUG1, ("fname %s\n", fname));
|
LOG(logINFORED, ("fname %s\n", fname));
|
||||||
|
|
||||||
// open file
|
// open file
|
||||||
FILE *fd = fopen(fname, "w");
|
FILE *fd = fopen(fname, "w");
|
||||||
|
|||||||
@@ -1317,8 +1317,15 @@ int validateAndSetDac(enum dacIndex ind, int val, int mV) {
|
|||||||
}
|
}
|
||||||
if (ret == OK) {
|
if (ret == OK) {
|
||||||
retval = getPower(serverDacIndex);
|
retval = getPower(serverDacIndex);
|
||||||
LOG(logDEBUG1, ("Power regulator(%d): %d\n", ind, retval));
|
LOG(logDEBUG1,
|
||||||
validate(&ret, mess, val, retval, "set power regulator", DEC);
|
("Power regulator(%d): %d\n", serverDacIndex, retval));
|
||||||
|
if (retval == -1) {
|
||||||
|
ret = FAIL;
|
||||||
|
sprintf(mess, "Could not get power regulator %d.\n",
|
||||||
|
serverDacIndex);
|
||||||
|
LOG(logERROR, (mess));
|
||||||
|
}
|
||||||
|
validate(&ret, mess, val, retval, "set/get power regulator", DEC);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
@@ -1400,10 +1407,7 @@ int validateAndSetDac(enum dacIndex ind, int val, int mV) {
|
|||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
#ifdef MYTHEN3D
|
#if defined(XILINX_CHIPTESTBOARDD)
|
||||||
// ignore counter enable to force vth dac values
|
|
||||||
setDAC(serverDacIndex, val, mV, 0);
|
|
||||||
#elif defined(XILINX_CHIPTESTBOARDD)
|
|
||||||
{
|
{
|
||||||
if (val != GET_FLAG) {
|
if (val != GET_FLAG) {
|
||||||
ret = setDAC(serverDacIndex, val, mV);
|
ret = setDAC(serverDacIndex, val, mV);
|
||||||
@@ -1413,11 +1417,28 @@ int validateAndSetDac(enum dacIndex ind, int val, int mV) {
|
|||||||
LOG(logERROR, (mess));
|
LOG(logERROR, (mess));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (ret == OK) {
|
||||||
|
retval = getDAC(serverDacIndex, mV);
|
||||||
|
LOG(logDEBUG1, ("Dac (%d): %d %s\n", serverDacIndex, retval,
|
||||||
|
(mV ? "mV" : "dac units")));
|
||||||
|
if (retval == -1) {
|
||||||
|
ret = FAIL;
|
||||||
|
sprintf(mess, "Could not get dac %d.\n",
|
||||||
|
serverDacIndex);
|
||||||
|
LOG(logERROR, (mess));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#elif MYTHEN3D
|
||||||
|
// ignore counter enable to force vth dac values
|
||||||
|
setDAC(serverDacIndex, val, mV, 0);
|
||||||
#else
|
#else
|
||||||
setDAC(serverDacIndex, val, mV);
|
setDAC(serverDacIndex, val, mV);
|
||||||
#endif
|
|
||||||
retval = getDAC(serverDacIndex, mV);
|
retval = getDAC(serverDacIndex, mV);
|
||||||
|
LOG(logDEBUG1, ("Dac (%d): %d %s\n", serverDacIndex, retval,
|
||||||
|
(mV ? "mV" : "dac units")));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef EIGERD
|
#ifdef EIGERD
|
||||||
if (val != GET_FLAG && getSettings() != UNDEFINED) {
|
if (val != GET_FLAG && getSettings() != UNDEFINED) {
|
||||||
|
|||||||
Binary file not shown.
@@ -416,8 +416,10 @@ void setupDetector() {
|
|||||||
for (int idac = 0; idac < NDAC_ONLY; ++idac) {
|
for (int idac = 0; idac < NDAC_ONLY; ++idac) {
|
||||||
setDAC(idac, LTC2620_D_GetPowerDownValue(), 0);
|
setDAC(idac, LTC2620_D_GetPowerDownValue(), 0);
|
||||||
}
|
}
|
||||||
LOG(logINFOBLUE, ("Defaulting all power regulators to 0 mV.\n"));
|
LOG(logINFOBLUE, ("Defaulting all power regulators to minimum.\n"));
|
||||||
for (int idac = NDAC_ONLY; idac < NDAC; ++idac) {
|
for (int idac = NDAC_ONLY; idac < NDAC; ++idac) {
|
||||||
|
if (idac == D_PWR_EMPTY)
|
||||||
|
continue;
|
||||||
setPower(idac, 0);
|
setPower(idac, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1154,8 +1156,6 @@ int setDAC(enum DACINDEX ind, int val, int mV) {
|
|||||||
char dacName[MAX_STR_LENGTH] = {0};
|
char dacName[MAX_STR_LENGTH] = {0};
|
||||||
memset(dacName, 0, MAX_STR_LENGTH);
|
memset(dacName, 0, MAX_STR_LENGTH);
|
||||||
sprintf(dacName, "dac%d", (int)ind);
|
sprintf(dacName, "dac%d", (int)ind);
|
||||||
LOG(logDEBUG1, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dacName, val,
|
|
||||||
(mV ? "mV" : "dac units")));
|
|
||||||
|
|
||||||
// invalid index (only dacs, no power regulators)
|
// invalid index (only dacs, no power regulators)
|
||||||
if (ind >= NDAC_ONLY) {
|
if (ind >= NDAC_ONLY) {
|
||||||
@@ -1164,7 +1164,7 @@ int setDAC(enum DACINDEX ind, int val, int mV) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ensure vlimit compliance
|
// ensure vlimit compliance
|
||||||
{
|
if (val != LTC2620_D_GetPowerDownValue()) {
|
||||||
int dacmV = val;
|
int dacmV = val;
|
||||||
if (!mV) {
|
if (!mV) {
|
||||||
// convert dac units to mV
|
// convert dac units to mV
|
||||||
@@ -1183,6 +1183,8 @@ int setDAC(enum DACINDEX ind, int val, int mV) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set dac
|
// set dac
|
||||||
|
LOG(logINFO, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dacName, val,
|
||||||
|
(mV ? "mV" : "dac units")));
|
||||||
int dacval = -1;
|
int dacval = -1;
|
||||||
if (LTC2620_D_SetDACValue((int)ind, val, mV, dacName, &dacval) == FAIL)
|
if (LTC2620_D_SetDACValue((int)ind, val, mV, dacName, &dacval) == FAIL)
|
||||||
return FAIL;
|
return FAIL;
|
||||||
@@ -1192,12 +1194,23 @@ int setDAC(enum DACINDEX ind, int val, int mV) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int getDAC(enum DACINDEX ind, int mV) {
|
int getDAC(enum DACINDEX ind, int mV) {
|
||||||
|
// invalid index (only dacs, no power regulators)
|
||||||
|
if (ind >= NDAC_ONLY) {
|
||||||
|
LOG(logERROR, ("Invalid DAC index: %d\n", ind));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
// get dac in dac units
|
||||||
if (!mV) {
|
if (!mV) {
|
||||||
LOG(logDEBUG1, ("Getting DAC %d : %d dac\n", ind, dacValues[ind]));
|
LOG(logDEBUG1, ("Getting DAC %d : %d dac\n", ind, dacValues[ind]));
|
||||||
return dacValues[ind];
|
return dacValues[ind];
|
||||||
}
|
}
|
||||||
int voltage = -1;
|
// convert dac units to mV
|
||||||
LTC2620_D_DacToVoltage(dacValues[ind], &voltage);
|
int voltage = dacToVoltage(dacValues[ind]);
|
||||||
|
if (voltage == -1) {
|
||||||
|
LOG(logERROR, ("Could not convert %d dac units to mV for dac %d\n",
|
||||||
|
dacValues[ind], ind));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
LOG(logDEBUG1,
|
LOG(logDEBUG1,
|
||||||
("Getting DAC %d : %d dac (%d mV)\n", ind, dacValues[ind], voltage));
|
("Getting DAC %d : %d dac (%d mV)\n", ind, dacValues[ind], voltage));
|
||||||
return voltage;
|
return voltage;
|
||||||
@@ -1258,19 +1271,31 @@ int getBitOffsetFromDACIndex(enum DACINDEX ind) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getMinPowerValue(enum DACINDEX ind) {
|
||||||
|
if (ind < D_PWR_D || ind > D_PWR_C || ind == D_PWR_EMPTY) {
|
||||||
|
LOG(logERROR, ("Invalid Power DAC index: %d\n", ind));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (ind == D_PWR_IO) {
|
||||||
|
return VIO_MIN_MV;
|
||||||
|
}
|
||||||
|
return POWER_RGLTR_MIN;
|
||||||
|
}
|
||||||
|
|
||||||
int isPowerValid(enum DACINDEX ind, int val) {
|
int isPowerValid(enum DACINDEX ind, int val) {
|
||||||
|
if (ind < D_PWR_D || ind > D_PWR_C || ind == D_PWR_EMPTY) {
|
||||||
|
LOG(logERROR, ("Invalid Power DAC index: %d\n", ind));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
char *powerNames[] = {PWR_NAMES};
|
char *powerNames[] = {PWR_NAMES};
|
||||||
int pwrIndex = (int)(ind - D_PWR_D);
|
int pwrIndex = (int)(ind - D_PWR_D);
|
||||||
|
int min = getMinPowerValue(ind);
|
||||||
int min = POWER_RGLTR_MIN;
|
|
||||||
if (!strcmp(powerNames[pwrIndex], "IO")) {
|
|
||||||
min = VIO_MIN_MV;
|
|
||||||
}
|
|
||||||
|
|
||||||
// check vlimit (already checked at funcs.c)
|
// check vlimit (already checked at funcs.c)
|
||||||
if (checkVLimitCompliant(val) == FAIL) {
|
if (checkVLimitCompliant(val) == FAIL) {
|
||||||
LOG(logERROR,
|
LOG(logERROR,
|
||||||
("Invalid value of %d mV for Power V%s. Exceeds vLimit of %d mV\n",
|
("Invalid value of %d mV for Power %s. Exceeds vLimit of %d mV\n",
|
||||||
val, powerNames[pwrIndex], vLimit));
|
val, powerNames[pwrIndex], vLimit));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1278,7 +1303,7 @@ int isPowerValid(enum DACINDEX ind, int val) {
|
|||||||
// not power_rgltr_max because it is allowed only upto vchip max - 200
|
// not power_rgltr_max because it is allowed only upto vchip max - 200
|
||||||
if ((val != 0 && val < min) || val > POWER_RGLTR_MAX) {
|
if ((val != 0 && val < min) || val > POWER_RGLTR_MAX) {
|
||||||
LOG(logERROR,
|
LOG(logERROR,
|
||||||
("Invalid value of %d mV for Power V%s. Is not between %d and "
|
("Invalid value of %d mV for Power %s. Is not between %d and "
|
||||||
"%d mV\n",
|
"%d mV\n",
|
||||||
val, powerNames[pwrIndex], min, POWER_RGLTR_MAX));
|
val, powerNames[pwrIndex], min, POWER_RGLTR_MAX));
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1287,6 +1312,10 @@ int isPowerValid(enum DACINDEX ind, int val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int getPower(enum DACINDEX ind) {
|
int getPower(enum DACINDEX ind) {
|
||||||
|
if (ind < D_PWR_D || ind > D_PWR_C || ind == D_PWR_EMPTY) {
|
||||||
|
LOG(logERROR, ("Invalid Power DAC index: %d\n", ind));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
// get bit offset in ctrl register
|
// get bit offset in ctrl register
|
||||||
int bitOffset = getBitOffsetFromDACIndex(ind);
|
int bitOffset = getBitOffsetFromDACIndex(ind);
|
||||||
if (bitOffset == -1) {
|
if (bitOffset == -1) {
|
||||||
@@ -1303,31 +1332,28 @@ int getPower(enum DACINDEX ind) {
|
|||||||
|
|
||||||
char *powerNames[] = {PWR_NAMES};
|
char *powerNames[] = {PWR_NAMES};
|
||||||
int pwrIndex = (int)(ind - D_PWR_D);
|
int pwrIndex = (int)(ind - D_PWR_D);
|
||||||
|
int min = getMinPowerValue(ind);
|
||||||
|
|
||||||
// not set yet
|
// not set yet
|
||||||
if (dacValues[ind] == -1) {
|
if (dacValues[ind] == -1) {
|
||||||
LOG(logERROR,
|
LOG(logERROR,
|
||||||
("Unknown dac value for Power V%s!\n", powerNames[pwrIndex]));
|
("Unknown dac value for Power %s!\n", powerNames[pwrIndex]));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// dac powered off
|
|
||||||
if (dacValues[ind] == LTC2620_D_GetPowerDownValue()) {
|
|
||||||
LOG(logWARNING, ("Power V%s enabled, but voltage is at minimum or 0.\n",
|
|
||||||
powerNames[pwrIndex]));
|
|
||||||
return LTC2620_D_GetPowerDownValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
// get dac in mV
|
// get dac in mV
|
||||||
int retval = -1;
|
int retval = -1;
|
||||||
ConvertToDifferentRange(LTC2620_D_GetMaxInput(), LTC2620_D_GetMinInput(),
|
ConvertToDifferentRange(LTC2620_D_GetMaxInput(), LTC2620_D_GetMinInput(),
|
||||||
POWER_RGLTR_MIN, POWER_RGLTR_MAX, dacValues[ind],
|
min, POWER_RGLTR_MAX, dacValues[ind], &retval);
|
||||||
&retval);
|
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
int setPower(enum DACINDEX ind, int val) {
|
int setPower(enum DACINDEX ind, int val) {
|
||||||
|
if (ind < D_PWR_D || ind > D_PWR_C || ind == D_PWR_EMPTY) {
|
||||||
|
LOG(logERROR, ("Invalid Power DAC index: %d\n", ind));
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
if (!isPowerValid(ind, val)) {
|
if (!isPowerValid(ind, val)) {
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
@@ -1342,33 +1368,29 @@ int setPower(enum DACINDEX ind, int val) {
|
|||||||
|
|
||||||
char *powerNames[] = {PWR_NAMES};
|
char *powerNames[] = {PWR_NAMES};
|
||||||
int pwrIndex = (int)(ind - D_PWR_D);
|
int pwrIndex = (int)(ind - D_PWR_D);
|
||||||
LOG(logINFO, ("Setting Power V%s to %d mV\n", powerNames[pwrIndex], val));
|
int min = getMinPowerValue(ind);
|
||||||
|
LOG(logINFO, ("Setting Power %s to %d mV\n", powerNames[pwrIndex], val));
|
||||||
|
|
||||||
// Switch off power enable
|
// Switch off power enable
|
||||||
LOG(logDEBUG1, ("\tSwitching off power enable\n"));
|
LOG(logDEBUG1, ("\tSwitching off power enable\n"));
|
||||||
bus_w(addr, bus_r(addr) & ~(mask));
|
bus_w(addr, bus_r(addr) & ~(mask));
|
||||||
|
|
||||||
// set dac value to 0
|
|
||||||
if (LTC2620_D_WriteDACValue((int)ind, 0, powerNames[pwrIndex]) == FAIL)
|
|
||||||
return FAIL;
|
|
||||||
dacValues[ind] = 0;
|
|
||||||
|
|
||||||
if (val > 0) {
|
if (val > 0) {
|
||||||
// convert voltage to dac
|
// convert voltage to dac
|
||||||
int dacval = -1;
|
int dacval = -1;
|
||||||
if (ConvertToDifferentRange(
|
if (ConvertToDifferentRange(
|
||||||
POWER_RGLTR_MIN, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(),
|
min, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(),
|
||||||
LTC2620_D_GetMinInput(), val, &dacval) == FAIL) {
|
LTC2620_D_GetMinInput(), val, &dacval) == FAIL) {
|
||||||
LOG(logERROR,
|
LOG(logERROR,
|
||||||
("\tCannot convert Power V%s to dac value. Invalid value of %d "
|
("\tCannot convert Power %s to dac value. Invalid value of %d "
|
||||||
"mV. Is not between "
|
"mV. Is not between "
|
||||||
"%d and %d mV\n",
|
"%d and %d mV\n",
|
||||||
powerNames[pwrIndex], val, POWER_RGLTR_MIN, POWER_RGLTR_MAX));
|
powerNames[pwrIndex], val, min, POWER_RGLTR_MAX));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set dac value
|
// set dac value
|
||||||
LOG(logINFO, ("\tSetting DAC V%s: %d mV (%d dac)\n",
|
LOG(logINFO, ("\tSetting DAC %s: %d mV (%d dac)\n",
|
||||||
powerNames[pwrIndex], val, dacval));
|
powerNames[pwrIndex], val, dacval));
|
||||||
if (LTC2620_D_WriteDACValue((int)ind, dacval, powerNames[pwrIndex]) ==
|
if (LTC2620_D_WriteDACValue((int)ind, dacval, powerNames[pwrIndex]) ==
|
||||||
FAIL)
|
FAIL)
|
||||||
@@ -1376,7 +1398,7 @@ int setPower(enum DACINDEX ind, int val) {
|
|||||||
dacValues[ind] = dacval;
|
dacValues[ind] = dacval;
|
||||||
|
|
||||||
// Switch on power enable
|
// Switch on power enable
|
||||||
LOG(logDEBUG1, ("\tSwitching on power enable for Power V%s\n",
|
LOG(logDEBUG1, ("\tSwitching on power enable for Power %s\n",
|
||||||
powerNames[pwrIndex]));
|
powerNames[pwrIndex]));
|
||||||
bus_w(addr, bus_r(addr) | mask);
|
bus_w(addr, bus_r(addr) | mask);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ enum DACINDEX {
|
|||||||
D_PWR_C
|
D_PWR_C
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PWR_NAMES "D", "_unknown", "IO", "A", "B", "C"
|
#define PWR_NAMES "VD", "_unknown", "VIO", "VA", "VB", "VC"
|
||||||
|
|
||||||
/* Struct Definitions */
|
/* Struct Definitions */
|
||||||
// For arm has to be multiple of 16
|
// For arm has to be multiple of 16
|
||||||
|
|||||||
@@ -753,10 +753,12 @@ TEST_CASE("v_limit", "[.cmdcall]") {
|
|||||||
if (det_type == defs::CHIPTESTBOARD ||
|
if (det_type == defs::CHIPTESTBOARD ||
|
||||||
det_type == defs::XILINX_CHIPTESTBOARD) {
|
det_type == defs::XILINX_CHIPTESTBOARD) {
|
||||||
auto prev_val = det.getPower(defs::V_LIMIT);
|
auto prev_val = det.getPower(defs::V_LIMIT);
|
||||||
|
auto prev_va = det.getPower(defs::V_POWER_A);
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
caller.call("v_limit", {"1500"}, -1, PUT, oss);
|
caller.call("v_limit", {"1500"}, -1, PUT, oss);
|
||||||
REQUIRE(oss.str() == "v_limit 1500\n");
|
REQUIRE(oss.str() == "v_limit 1500\n");
|
||||||
|
REQUIRE_THROWS(caller.call("v_a", {"1600"}, -1, PUT, oss));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
@@ -778,6 +780,7 @@ TEST_CASE("v_limit", "[.cmdcall]") {
|
|||||||
prev_val[i] = 0;
|
prev_val[i] = 0;
|
||||||
}
|
}
|
||||||
det.setPower(defs::V_LIMIT, prev_val[i], {i});
|
det.setPower(defs::V_LIMIT, prev_val[i], {i});
|
||||||
|
det.setPower(defs::V_POWER_A, prev_va[i], {i});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(caller.call("v_limit", {}, -1, GET));
|
REQUIRE_THROWS(caller.call("v_limit", {}, -1, GET));
|
||||||
@@ -1053,6 +1056,16 @@ TEST_CASE("v_abcd", "[.cmdcall]") {
|
|||||||
caller.call(cmds[i], {}, -1, GET, oss2);
|
caller.call(cmds[i], {}, -1, GET, oss2);
|
||||||
REQUIRE(oss2.str() == cmds[i] + " 1200\n");
|
REQUIRE(oss2.str() == cmds[i] + " 1200\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (det_type == defs::XILINX_CHIPTESTBOARD &&
|
||||||
|
det.isVirtualDetectorServer().tsquash(
|
||||||
|
"inconsistent virtual values")) {
|
||||||
|
// prev value for power regulators should have been 0
|
||||||
|
// as they are only touched in this test
|
||||||
|
REQUIRE(prev_val.squash(-1) == 0);
|
||||||
|
REQUIRE_THROWS(caller.call(cmds[i], {"-100"}, -1, PUT));
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 0; i != det.size(); ++i) {
|
for (int i = 0; i != det.size(); ++i) {
|
||||||
if (det_type == defs::XILINX_CHIPTESTBOARD &&
|
if (det_type == defs::XILINX_CHIPTESTBOARD &&
|
||||||
prev_val[i] == -100) {
|
prev_val[i] == -100) {
|
||||||
|
|||||||
@@ -9,4 +9,4 @@
|
|||||||
#define APIEIGER "0.0.0 0x250909"
|
#define APIEIGER "0.0.0 0x250909"
|
||||||
#define APIXILINXCTB "0.0.0 0x260114"
|
#define APIXILINXCTB "0.0.0 0x260114"
|
||||||
#define APIJUNGFRAU "0.0.0 0x250909"
|
#define APIJUNGFRAU "0.0.0 0x250909"
|
||||||
#define APIMYTHEN3 "0.0.0 0x260113"
|
#define APIMYTHEN3 "0.0.0 0x260114"
|
||||||
|
|||||||
Reference in New Issue
Block a user