Commit 8571a363 authored by Alejandro Homs Puron's avatar Alejandro Homs Puron Committed by Operator for ID00
Browse files

Add generic DAC & ADC control, implement Eiger-specific DAC/ADCs

parent 460edf44
......@@ -51,6 +51,8 @@ class Camera : public HwMaxImageSizeCallbackGen, public EventCallbackGen
public:
typedef Defs::TrigMode TrigMode;
typedef Defs::Settings Settings;
typedef Defs::DACIndex DACIndex;
typedef Defs::ADCIndex ADCIndex;
enum State {
Idle, Init, Starting, Running, StopReq, Stopping, Stopped,
......@@ -61,7 +63,8 @@ public:
};
typedef uint64_t FrameType;
typedef std::vector<std::string> HostnameList;
typedef std::vector<std::string> NameList;
typedef std::vector<int> IntList;
class Model
{
......@@ -82,6 +85,11 @@ public:
virtual std::string getName() = 0;
virtual void getPixelSize(double& x_size, double& y_size) = 0;
virtual void getDACInfo(NameList& name_list,
IntList& dac_idx_list) = 0;
virtual void getADCInfo(NameList& name_list,
IntList& adc_idx_list) = 0;
protected:
void putCmd(const std::string& s, int idx = -1);
std::string getCmd(const std::string& s, int idx = -1);
......@@ -172,12 +180,15 @@ public:
Model *getModel()
{ return m_model; }
HostnameList getHostnameList()
NameList getHostnameList()
{ return m_input_data->host_name_list; }
int getNbDetModules()
{ return m_input_data->host_name_list.size(); }
int getNbDetSubModules()
{ return m_det->getNMods(); }
void setBufferCbMgr(StdBufferCbMgr *buffer_cb_mgr)
{ m_buffer_cb_mgr = buffer_cb_mgr; }
......@@ -212,11 +223,17 @@ public:
void setFramePeriod(double frame_period);
void getFramePeriod(double& frame_period);
// dat_idx -> slsDetectorDefs::dacIndex
void setDAC(int dac_idx, int val, bool milli_volt = false);
void getDAC(int dac_idx, int& val, bool milli_volt = false);
void setHighVoltage(int hvolt);
void getHighVoltage(int& hvolt);
// setDAC: sub_mod_idx: 0-N=sub_module, -1=all
void setDAC(int sub_mod_idx, DACIndex dac_idx, int val,
bool milli_volt = false);
void getDAC(int sub_mod_idx, DACIndex dac_idx, int& val,
bool milli_volt = false);
void getDACList(DACIndex dac_idx, IntList& val_list,
bool milli_volt = false);
void getADC(int sub_mod_idx, ADCIndex adc_idx, int& val);
void getADCList(ADCIndex adc_idx, IntList& val_list);
void setSettings(Settings settings);
void getSettings(Settings& settings);
void setThresholdEnergy(int thres);
......@@ -244,7 +261,7 @@ private:
"SlsDetector");
public:
std::string config_file_name;
HostnameList host_name_list;
NameList host_name_list;
RecvPortMap recv_port_map;
AppInputData(std::string cfg_fname);
void parseConfigFile();
......
......@@ -62,8 +62,81 @@ enum Settings {
Unitialized = slsDetectorDefs::UNINITIALIZED,
};
enum DACIndex {
Threshold = slsDetectorDefs::THRESHOLD,
CalibPulse = slsDetectorDefs::CALIBRATION_PULSE,
TrimBitSize = slsDetectorDefs::TRIMBIT_SIZE,
PreAmp = slsDetectorDefs::PREAMP,
Shaper1 = slsDetectorDefs::SHAPER1,
Shaper2 = slsDetectorDefs::SHAPER2,
Humidity = slsDetectorDefs::HUMIDITY,
DetectorBias = slsDetectorDefs::DETECTOR_BIAS,
PowerVa = slsDetectorDefs::VA_POT,
PowerVdd = slsDetectorDefs::VDD_POT,
PowerVsh = slsDetectorDefs::VSH_POT,
PowerVio = slsDetectorDefs::VIO_POT,
PowerHV = slsDetectorDefs::HV_POT,
GotthardVrefDS = slsDetectorDefs::G_VREF_DS,
GotthardVcascnPB = slsDetectorDefs::G_VCASCN_PB,
GotthardVcascpPB = slsDetectorDefs::G_VCASCP_PB,
GotthardVoutCM = slsDetectorDefs::G_VOUT_CM,
GotthardVcascOut = slsDetectorDefs::G_VCASC_OUT,
GotthardVinCM = slsDetectorDefs::G_VIN_CM,
GotthardVrefComp = slsDetectorDefs::G_VREF_COMP,
GotthardIBTestC = slsDetectorDefs::G_IB_TESTC,
VoltDAC0 = slsDetectorDefs::V_DAC0,
VoltDAC1 = slsDetectorDefs::V_DAC1,
VoltDAC2 = slsDetectorDefs::V_DAC2,
VoltDAC3 = slsDetectorDefs::V_DAC3,
VoltDAC4 = slsDetectorDefs::V_DAC4,
VoltDAC5 = slsDetectorDefs::V_DAC5,
VoltDAC6 = slsDetectorDefs::V_DAC6,
VoltDAC7 = slsDetectorDefs::V_DAC7,
EigerSvP = slsDetectorDefs::E_SvP,
EigerSvN = slsDetectorDefs::E_SvN,
EigerVtr = slsDetectorDefs::E_Vtr,
EigerVrf = slsDetectorDefs::E_Vrf,
EigerVrs = slsDetectorDefs::E_Vrs,
EigerVtgstv = slsDetectorDefs::E_Vtgstv,
EigerVcmpLL = slsDetectorDefs::E_Vcmp_ll,
EigerVcmpLR = slsDetectorDefs::E_Vcmp_lr,
EigerVcal = slsDetectorDefs::E_cal,
EigerVcmpRL = slsDetectorDefs::E_Vcmp_rl,
EigerVcmpRR = slsDetectorDefs::E_Vcmp_rr,
EigerRxbRB = slsDetectorDefs::E_rxb_rb,
EigerRxbLB = slsDetectorDefs::E_rxb_lb,
EigerVcp = slsDetectorDefs::E_Vcp,
EigerVcn = slsDetectorDefs::E_Vcn,
EigerVis = slsDetectorDefs::E_Vis,
IODelay = slsDetectorDefs::IO_DELAY,
ADCVpp = slsDetectorDefs::ADC_VPP,
HVNew = slsDetectorDefs::HV_NEW,
PowerA = slsDetectorDefs::V_POWER_A,
PowerB = slsDetectorDefs::V_POWER_B,
PowerC = slsDetectorDefs::V_POWER_C,
PowerD = slsDetectorDefs::V_POWER_D,
PowerIO = slsDetectorDefs::V_POWER_IO,
PowerChip = slsDetectorDefs::V_POWER_CHIP,
};
#define DACErr (-100)
enum ADCIndex {
TempADC = slsDetectorDefs::TEMPERATURE_ADC,
TempFPGA = slsDetectorDefs::TEMPERATURE_FPGA,
TempFPGAExt = slsDetectorDefs::TEMPERATURE_FPGAEXT,
Temp10GE = slsDetectorDefs::TEMPERATURE_10GE,
TempDCDC = slsDetectorDefs::TEMPERATURE_DCDC,
TempSODL = slsDetectorDefs::TEMPERATURE_SODL,
TempSODR = slsDetectorDefs::TEMPERATURE_SODR,
TempFPGAFL = slsDetectorDefs::TEMPERATURE_FPGA2,
TempFPGAFR = slsDetectorDefs::TEMPERATURE_FPGA3,
};
std::ostream& operator <<(std::ostream& os, TrigMode trig_mode);
std::ostream& operator <<(std::ostream& os, Settings settings);
std::ostream& operator <<(std::ostream& os, DACIndex dac_idx);
std::ostream& operator <<(std::ostream& os, ADCIndex adc_idx);
} // namespace Defs
......
......@@ -43,6 +43,8 @@ class Eiger : public Camera::Model
public:
typedef Defs::Settings Settings;
typedef Camera::FrameType FrameType;
typedef Camera::NameList NameList;
typedef Camera::IntList IntList;
typedef unsigned char Byte;
typedef unsigned short Word;
......@@ -116,6 +118,9 @@ class Eiger : public Camera::Model
virtual std::string getName();
virtual void getPixelSize(double& x_size, double& y_size);
virtual void getDACInfo(NameList& name_list, IntList& dac_idx_list);
virtual void getADCInfo(NameList& name_list, IntList& adc_idx_list);
// the returned object must be deleted by the caller
Correction *createCorrectionTask();
......
......@@ -59,11 +59,19 @@ public:
virtual void getPixelSize(double& x_size /Out/,
double& y_size /Out/) = 0;
virtual
void getDACInfo(std::vector<std::string>& name_list /Out/,
std::vector<int>& dac_idx_list /Out/) = 0;
virtual
void getADCInfo(std::vector<std::string>& name_list /Out/,
std::vector<int>& adc_idx_list /Out/) = 0;
protected:
void putCmd(const std::string& s, int idx = -1);
std::string getCmd(const std::string& s, int idx = -1);
virtual bool checkSettings(SlsDetector::Defs::Settings settings) = 0;
virtual
bool checkSettings(SlsDetector::Defs::Settings settings) = 0;
virtual int getRecvPorts() = 0;
......@@ -120,6 +128,7 @@ public:
SlsDetector::Camera::Model *getModel();
std::vector<std::string> getHostnameList();
int getNbDetModules();
int getNbDetSubModules();
void setBufferCbMgr(StdBufferCbMgr *buffer_cb_mgr);
......@@ -150,11 +159,20 @@ public:
void setFramePeriod(double frame_period);
void getFramePeriod(double& frame_period /Out/);
// dat_idx -> slsDetectorDefs::dacIndex
void setDAC(int dac_idx, int val, bool milli_volt = false);
void getDAC(int dac_idx, int& val /Out/, bool milli_volt = false);
void setHighVoltage(int hvolt);
void getHighVoltage(int& hvolt /Out/);
// setDAC: sub_mod_idx: 0-N=module, -1=all
void setDAC(int sub_mod_idx, SlsDetector::Defs::DACIndex dac_idx,
int val, bool milli_volt = false);
void getDAC(int sub_mod_idx, SlsDetector::Defs::DACIndex dac_idx,
int& val /Out/, bool milli_volt = false);
void getDACList(SlsDetector::Defs::DACIndex dac_idx,
std::vector<int>& val_list /Out/,
bool milli_volt = false);
void getADC(int sub_mod_idx, SlsDetector::Defs::ADCIndex adc_idx,
int& val /Out/);
void getADCList(SlsDetector::Defs::ADCIndex adc_idx,
std::vector<int>& val_list /Out/);
void setSettings(SlsDetector::Defs::Settings settings);
void getSettings(SlsDetector::Defs::Settings& settings /Out/);
void setThresholdEnergy(int thres);
......
......@@ -62,6 +62,75 @@ enum Settings {
Unitialized = UNINITIALIZED,
};
enum DACIndex {
Threshold = THRESHOLD,
CalibPulse = CALIBRATION_PULSE,
TrimBitSize = TRIMBIT_SIZE,
PreAmp = PREAMP,
Shaper1 = SHAPER1,
Shaper2 = SHAPER2,
Humidity = HUMIDITY,
DetectorBias = DETECTOR_BIAS,
PowerVa = VA_POT,
PowerVdd = VDD_POT,
PowerVsh = VSH_POT,
PowerVio = VIO_POT,
PowerHV = HV_POT,
GotthardVrefDS = G_VREF_DS,
GotthardVcascnPB = G_VCASCN_PB,
GotthardVcascpPB = G_VCASCP_PB,
GotthardVoutCM = G_VOUT_CM,
GotthardVcascOut = G_VCASC_OUT,
GotthardVinCM = G_VIN_CM,
GotthardVrefComp = G_VREF_COMP,
GotthardIBTestC = G_IB_TESTC,
VoltDAC0 = V_DAC0,
VoltDAC1 = V_DAC1,
VoltDAC2 = V_DAC2,
VoltDAC3 = V_DAC3,
VoltDAC4 = V_DAC4,
VoltDAC5 = V_DAC5,
VoltDAC6 = V_DAC6,
VoltDAC7 = V_DAC7,
EigerSvP = E_SvP,
EigerSvN = E_SvN,
EigerVtr = E_Vtr,
EigerVrf = E_Vrf,
EigerVrs = E_Vrs,
EigerVtgstv = E_Vtgstv,
EigerVcmpLL = E_Vcmp_ll,
EigerVcmpLR = E_Vcmp_lr,
EigerVcal = E_cal,
EigerVcmpRL = E_Vcmp_rl,
EigerVcmpRR = E_Vcmp_rr,
EigerRxbRB = E_rxb_rb,
EigerRxbLB = E_rxb_lb,
EigerVcp = E_Vcp,
EigerVcn = E_Vcn,
EigerVis = E_Vis,
IODelay = IO_DELAY,
ADCVpp = ADC_VPP,
HVNew = HV_NEW,
PowerA = V_POWER_A,
PowerB = V_POWER_B,
PowerC = V_POWER_C,
PowerD = V_POWER_D,
PowerIO = V_POWER_IO,
PowerChip = V_POWER_CHIP,
};
enum ADCIndex {
TempADC = TEMPERATURE_ADC,
TempFPGA = TEMPERATURE_FPGA,
TempFPGAExt = TEMPERATURE_FPGAEXT,
Temp10GE = TEMPERATURE_10GE,
TempDCDC = TEMPERATURE_DCDC,
TempSODL = TEMPERATURE_SODL,
TempSODR = TEMPERATURE_SODR,
TempFPGAFL = TEMPERATURE_FPGA2,
TempFPGAFR = TEMPERATURE_FPGA3,
};
}; // namespace Defs
}; // namespace SlsDetector
......@@ -52,6 +52,11 @@ class Eiger : public SlsDetector::Camera::Model
virtual std::string getName();
virtual void getPixelSize(double& x_size /Out/, double& y_size /Out/);
virtual void getDACInfo(std::vector<std::string>& name_list /Out/,
std::vector<int>& dac_idx_list /Out/);
virtual void getADCInfo(std::vector<std::string>& name_list /Out/,
std::vector<int>& adc_idx_list /Out/);
protected:
virtual bool checkSettings(SlsDetector::Defs::Settings settings);
......
......@@ -884,41 +884,78 @@ string Camera::getStatus()
return getCmd("status");
}
void Camera::setDAC(int dac_idx, int val, bool milli_volt)
void Camera::setDAC(int sub_mod_idx, DACIndex dac_idx, int val, bool milli_volt)
{
DEB_MEMBER_FUNCT();
DEB_PARAM() << DEB_VAR3(dac_idx, val, milli_volt);
typedef slsDetectorDefs::dacIndex DacIdx;
DacIdx idx = static_cast<DacIdx>(dac_idx);
m_det->setDAC(val, idx, milli_volt);
DEB_PARAM() << DEB_VAR4(sub_mod_idx, dac_idx, val, milli_volt);
if ((sub_mod_idx < -1) || (sub_mod_idx >= getNbDetSubModules()))
THROW_HW_ERROR(InvalidValue) << DEB_VAR1(sub_mod_idx);
typedef slsDetectorDefs::dacIndex SlsDACIndex;
SlsDACIndex idx = static_cast<SlsDACIndex>(dac_idx);
dacs_t ret = m_det->setDAC(val, idx, milli_volt, sub_mod_idx);
if (ret == DACErr)
THROW_HW_ERROR(Error) << "Error setting DAC " << dac_idx
<< " on (sub)module " << sub_mod_idx;
}
void Camera::getDAC(int dac_idx, int& val, bool milli_volt)
void Camera::getDAC(int sub_mod_idx, DACIndex dac_idx, int& val, bool milli_volt)
{
DEB_MEMBER_FUNCT();
DEB_PARAM() << DEB_VAR2(dac_idx, milli_volt);
typedef slsDetectorDefs::dacIndex DacIdx;
DacIdx idx = static_cast<DacIdx>(dac_idx);
val = m_det->setDAC(-1, idx, milli_volt);
if (val == -1) {
// TODO: get slsdetector object idx
// val = m_det->setDAC(-1, idx, milli_volt, 0);
}
DEB_PARAM() << DEB_VAR3(sub_mod_idx, dac_idx, milli_volt);
if ((sub_mod_idx < 0) || (sub_mod_idx >= getNbDetSubModules()))
THROW_HW_ERROR(InvalidValue) << DEB_VAR1(sub_mod_idx);
typedef slsDetectorDefs::dacIndex SlsDACIndex;
SlsDACIndex idx = static_cast<SlsDACIndex>(dac_idx);
dacs_t ret = m_det->setDAC(-1, idx, milli_volt, sub_mod_idx);
if (ret == DACErr)
THROW_HW_ERROR(Error) << "Error getting DAC " << dac_idx
<< " on (sub)module " << sub_mod_idx;
val = ret;
DEB_RETURN() << DEB_VAR1(val);
}
void Camera::setHighVoltage(int hvolt)
void Camera::getDACList(DACIndex dac_idx, IntList& val_list, bool milli_volt)
{
DEB_MEMBER_FUNCT();
DEB_PARAM() << DEB_VAR2(dac_idx, milli_volt);
int nb_sub_modules = getNbDetSubModules();
val_list.resize(nb_sub_modules);
for (int i = 0; i < nb_sub_modules; ++i)
getDAC(i, dac_idx, val_list[i], milli_volt);
}
void Camera::getADC(int sub_mod_idx, ADCIndex adc_idx, int& val)
{
DEB_MEMBER_FUNCT();
DEB_PARAM() << DEB_VAR1(hvolt);
setDAC(slsDetectorDefs::HV_NEW, hvolt);
DEB_PARAM() << DEB_VAR2(sub_mod_idx, adc_idx);
if ((sub_mod_idx < 0) || (sub_mod_idx >= getNbDetSubModules()))
THROW_HW_ERROR(InvalidValue) << DEB_VAR1(sub_mod_idx);
typedef slsDetectorDefs::dacIndex SlsDACIndex;
SlsDACIndex idx = static_cast<SlsDACIndex>(adc_idx);
dacs_t ret = m_det->getADC(idx, sub_mod_idx);
if (ret == DACErr)
THROW_HW_ERROR(Error) << "Error getting ADC " << adc_idx
<< " on (sub)module " << sub_mod_idx;
val = ret;
DEB_RETURN() << DEB_VAR1(val);
}
void Camera::getHighVoltage(int& hvolt)
void Camera::getADCList(ADCIndex adc_idx, IntList& val_list)
{
DEB_MEMBER_FUNCT();
getDAC(slsDetectorDefs::HV_NEW, hvolt);
DEB_RETURN() << DEB_VAR1(hvolt);
DEB_PARAM() << DEB_VAR1(adc_idx);
int nb_sub_modules = getNbDetSubModules();
val_list.resize(nb_sub_modules);
for (int i = 0; i < nb_sub_modules; ++i)
getADC(i, adc_idx, val_list[i]);
}
void Camera::setSettings(Settings settings)
......
......@@ -65,4 +65,81 @@ ostream& lima::SlsDetector::Defs::operator <<(ostream& os, Settings settings)
return os << name;
}
ostream& lima::SlsDetector::Defs::operator <<(ostream& os, DACIndex dac_idx)
{
const char *name = "Unknown";
switch (dac_idx) {
case Threshold: name = "Threshold"; break;
case CalibPulse: name = "CalibPulse"; break;
case TrimBitSize: name = "TrimBitSize"; break;
case PreAmp: name = "PreAmp"; break;
case Shaper1: name = "Shaper1"; break;
case Shaper2: name = "Shaper2"; break;
case Humidity: name = "Humidity"; break;
case DetectorBias: name = "DetectorBias"; break;
case PowerVa: name = "PowerVa"; break;
case PowerVdd: name = "PowerVdd"; break;
case PowerVsh: name = "PowerVsh"; break;
case PowerVio: name = "PowerVio"; break;
case PowerHV: name = "PowerHV"; break;
case GotthardVrefDS: name = "GotthardVrefDS"; break;
case GotthardVcascnPB: name = "GotthardVcascnPB"; break;
case GotthardVcascpPB: name = "GotthardVcascpPB"; break;
case GotthardVoutCM: name = "GotthardVoutCM"; break;
case GotthardVcascOut: name = "GotthardVcascOut"; break;
case GotthardVinCM: name = "GotthardVinCM"; break;
case GotthardVrefComp: name = "GotthardVrefComp"; break;
case GotthardIBTestC: name = "GotthardIBTestC"; break;
case VoltDAC0: name = "VoltDAC0"; break;
case VoltDAC1: name = "VoltDAC1"; break;
case VoltDAC2: name = "VoltDAC2"; break;
case VoltDAC3: name = "VoltDAC3"; break;
case VoltDAC4: name = "VoltDAC4"; break;
case VoltDAC5: name = "VoltDAC5"; break;
case VoltDAC6: name = "VoltDAC6"; break;
case VoltDAC7: name = "VoltDAC7"; break;
case EigerSvP: name = "EigerSvP"; break;
case EigerSvN: name = "EigerSvN"; break;
case EigerVtr: name = "EigerVtr"; break;
case EigerVrf: name = "EigerVrf"; break;
case EigerVrs: name = "EigerVrs"; break;
case EigerVtgstv: name = "EigerVtgstv"; break;
case EigerVcmpLL: name = "EigerVcmpLL"; break;
case EigerVcmpLR: name = "EigerVcmpLR"; break;
case EigerVcal: name = "EigerVcal"; break;
case EigerVcmpRL: name = "EigerVcmpRL"; break;
case EigerVcmpRR: name = "EigerVcmpRR"; break;
case EigerRxbRB: name = "EigerRxbRB"; break;
case EigerRxbLB: name = "EigerRxbLB"; break;
case EigerVcp: name = "EigerVcp"; break;
case EigerVcn: name = "EigerVcn"; break;
case EigerVis: name = "EigerVis"; break;
case IODelay: name = "IODelay"; break;
case ADCVpp: name = "ADCVpp"; break;
case HVNew: name = "HVNew"; break;
case PowerA: name = "PowerA"; break;
case PowerB: name = "PowerB"; break;
case PowerC: name = "PowerC"; break;
case PowerD: name = "PowerD"; break;
case PowerIO: name = "PowerIO"; break;
case PowerChip: name = "PowerChip"; break;
}
return os << name;
}
ostream& lima::SlsDetector::Defs::operator <<(ostream& os, ADCIndex adc_idx)
{
const char *name = "Unknown";
switch (adc_idx) {
case TempADC: name = "TempADC"; break;
case TempFPGA: name = "TempFPGA"; break;
case TempFPGAExt: name = "TempFPGAExt"; break;
case Temp10GE: name = "Temp10GE"; break;
case TempDCDC: name = "TempDCDC"; break;
case TempSODL: name = "TempSODL"; break;
case TempSODR: name = "TempSODR"; break;
case TempFPGAFL: name = "TempFPGAFL"; break;
case TempFPGAFR: name = "TempFPGAFR"; break;
}
return os << name;
}
......@@ -21,10 +21,12 @@
//###########################################################################
#include "SlsDetectorEiger.h"
#include "lima/MiscUtils.h"
using namespace std;
using namespace lima;
using namespace lima::SlsDetector;
using namespace lima::SlsDetector::Defs;
const int Eiger::ChipSize = 256;
const int Eiger::ChipGap = 2;
......@@ -304,6 +306,73 @@ void Eiger::getPixelSize(double& x_size, double& y_size)
DEB_RETURN() << DEB_VAR2(x_size, y_size);
}
void Eiger::getDACInfo(NameList& name_list, IntList& dac_idx_list)
{
DEB_MEMBER_FUNCT();
static DACIndex EigerDACList[] = {
Threshold,
EigerSvP,
EigerSvN,
EigerVtr,
EigerVrf,
EigerVrs,
EigerVtgstv,
EigerVcmpLL,
EigerVcmpLR,
EigerVcal,
EigerVcmpRL,
EigerVcmpRR,
EigerRxbRB,
EigerRxbLB,
EigerVcp,
EigerVcn,
EigerVis,
IODelay,
HVNew,
};
const unsigned int size = C_LIST_SIZE(EigerDACList);
name_list.resize(size);
dac_idx_list.resize(size);
for (unsigned int i = 0; i < size; ++i) {
const DACIndex& idx = EigerDACList[i];
ostringstream os;
os << idx;
name_list[i] = os.str();
dac_idx_list[i] = int(idx);
DEB_RETURN() << DEB_VAR2(name_list[i], dac_idx_list[i]);
}
}
void Eiger::getADCInfo(NameList& name_list, IntList& adc_idx_list)
{
DEB_MEMBER_FUNCT();
static ADCIndex EigerADCList[] = {
TempFPGA,
TempFPGAExt,
Temp10GE,
TempDCDC,
TempSODL,
TempSODR,
TempFPGAFL,
TempFPGAFR,
};
const unsigned int size = C_LIST_SIZE(EigerADCList);
name_list.resize(size);
adc_idx_list.resize(size);
for (unsigned int i = 0; i < size; ++i) {
const ADCIndex& idx = EigerADCList[i];
ostringstream os;
os << idx;
name_list[i] = os.str();
adc_idx_list[i] = int(idx);
DEB_RETURN() << DEB_VAR2(name_list[i], adc_idx_list[i]);
}
}
bool Eiger::checkSettings(Settings settings)
{
DEB_MEMBER_FUNCT();
......
......@@ -26,6 +26,8 @@
#include "SlsDetectorCamera.h"
#include "lima/AcqState.h"
#include <cstdlib>
namespace lima
{
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment