Commandline (#66)

* WIP

* WIP

* removed status to string from defs

* WIP

* WIP

* WIP removed unused functions in multi

* WIP

* print hex in a terrible way

* WIP, loadconfig error

* WIP, type to string

* WIP

* fix to conversion

* WIP, hostname doesnt work

* WIP

* WIP

* WIP

* WIP, threshold

* WIP, threshold

* WIP

* WIP, triggers

* WIP, cycles to triggers

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* rx_udsocksize fx, WIP

* WIP

* WIP

* WIP

* file index (64 bit), WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* merge

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* New python mod
This commit is contained in:
Dhanya Thattil
2019-10-21 10:29:06 +02:00
committed by GitHub
parent eebc1109b0
commit 995f0924e5
95 changed files with 5320 additions and 8114 deletions

View File

@ -107,13 +107,13 @@ class slsDetectorDefs {
*/
enum timerIndex {
FRAME_NUMBER, /**< number of real time frames: total number of
acquisitions is number or frames*number of cycles */
acquisitions is number or frames*number of triggers */
ACQUISITION_TIME, /**< exposure time */
FRAME_PERIOD, /**< period between exposures */
DELAY_AFTER_TRIGGER, /**< delay between trigger and start of exposure or
readout (in triggered mode) */
CYCLES_NUMBER, /**< number of cycles: total number of acquisitions is
number or frames*number of cycles */
TRIGGER_NUMBER, /**< number of triggers: total number of acquisitions is
number or frames*number of triggers (* number of storage cells [jungfrau]) */
ACTUAL_TIME, /**< Actual time of the detector's internal timer */
MEASUREMENT_TIME, /**< Time of the measurement from the detector (fifo)
*/
@ -578,286 +578,17 @@ format
return std::string("disabled");
};
/** returns detector type string from detector type index
\param t string can be EIGER, GOTTHARD, JUNGFRAU, CHIPTESTBOARD, MYTHEN3, GOTTHARD2
\returns Eiger, Gotthard, Jungfrau, JungfrauCTB, Mythen3, Gotthard2, Unknown
*/
static std::string detectorTypeToString(detectorType t) {
switch (t) {
case EIGER:
return std::string("Eiger");
case GOTTHARD:
return std::string("Gotthard");
case JUNGFRAU:
return std::string("Jungfrau");
case CHIPTESTBOARD:
return std::string("JungfrauCTB");
case MOENCH:
return std::string("Moench");
case MYTHEN3:
return std::string("Mythen3");
case GOTTHARD2:
return std::string("Gotthard2");
default:
return std::string("Unknown");
}
};
/** returns detector type index from detector type string
\param type can be Eiger, Gotthard, Jungfrau, JungfrauCTB, Mythen3, Gotthard2
\returns EIGER, GOTTHARD, JUNGFRAU, CHIPTESTBOARD, MYTHEN3, GOTTHARD2, GENERIC
*/
static detectorType detectorTypeToEnum(const std::string &type) {
if (type == "Eiger")
return EIGER;
if (type == "Gotthard")
return GOTTHARD;
if (type == "Jungfrau")
return JUNGFRAU;
if (type == "JungfrauCTB")
return CHIPTESTBOARD;
if (type == "Moench")
return MOENCH;
if (type == "Mythen3")
return MYTHEN3;
if (type == "Gotthard2")
return GOTTHARD2;
return GENERIC;
};
/** returns string from run status index
\param s can be ERROR, WAITING, RUNNING, TRANSMITTING, RUN_FINISHED,
STOPPED \returns string error, waiting, running, data, finished, stopped,
idle
*/
static std::string runStatusType(runStatus s) {
switch (s) {
case ERROR:
return std::string("error");
case WAITING:
return std::string("waiting");
case RUNNING:
return std::string("running");
case TRANSMITTING:
return std::string("data");
case RUN_FINISHED:
return std::string("finished");
case STOPPED:
return std::string("stopped");
default:
return std::string("idle");
}
};
/** returns string from file format index
\param s can be BINARY, HDF5
\returns string binary, hdf5
*/
static std::string getFileFormatType(fileFormat f) {
switch (f) {
case HDF5:
return std::string("hdf5");
case BINARY:
return std::string("binary");
default:
return std::string("unknown");
}
};
/**
* Returns string of frame discard policy index
* @param f can be NO_DISCARD, DISCARD_EMPTY_FRAMES, DISCARD_PARTIAL_FRAMES
* @returns No Discard, Discard Empty Frames, Discard Partial Frames,
* unknown
*/
static std::string getFrameDiscardPolicyType(frameDiscardPolicy f) {
switch (f) {
case NO_DISCARD:
return std::string("No Discard");
case DISCARD_EMPTY_FRAMES:
return std::string("Discard Empty Frames");
case DISCARD_PARTIAL_FRAMES:
return std::string("Discard Partial Frames");
default:
return std::string("unknown");
}
};
/** returns std::string from external signal type index
\param f can be TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE,
\returns std::string trigger_in_rising_edge, trigger_in_falling_edge, unknown
*/
static std::string externalSignalType(externalSignalFlag f) {
switch (f) {
case TRIGGER_IN_RISING_EDGE:
return std::string("trigger_in_rising_edge");
case TRIGGER_IN_FALLING_EDGE:
return std::string("trigger_in_falling_edge");
default:
return std::string("unknown");
}
};
/** returns external signal type index from std::string
\param sval trigger_in_rising_edge, trigger_in_falling_edge, unknown
\returns can be TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE,
GET_EXTERNAL_SIGNAL_FLAG (if unknown)
*/
static externalSignalFlag externalSignalType(std::string sval) {
if (sval == "trigger_in_rising_edge")
return TRIGGER_IN_RISING_EDGE;
if (sval == "trigger_in_falling_edge")
return TRIGGER_IN_FALLING_EDGE;
return GET_EXTERNAL_SIGNAL_FLAG;
};
/** returns detector settings std::string from index
\param s can be STANDARD, FAST, HIGHGAIN, DYNAMICGAIN, LOWGAIN,
MEDIUMGAIN, VERYHIGHGAIN, DYNAMICHG0, FIXGAIN1, FIXGAIN2,
FORCESWITCHG1, FORCESWITCHG2, GET_SETTINGS \returns standard, fast,
highgain, dynamicgain, lowgain, mediumgain, veryhighgain,
dynamichg0, fixgain1, fixgain2, forceswitchg1, forceswitchg2,
verylowgain, undefined
*/
static std::string getDetectorSettings(detectorSettings s) {
switch (s) {
case STANDARD:
return std::string("standard");
case FAST:
return std::string("fast");
case HIGHGAIN:
return std::string("highgain");
case DYNAMICGAIN:
return std::string("dynamicgain");
case LOWGAIN:
return std::string("lowgain");
case MEDIUMGAIN:
return std::string("mediumgain");
case VERYHIGHGAIN:
return std::string("veryhighgain");
case DYNAMICHG0:
return std::string("dynamichg0");
case FIXGAIN1:
return std::string("fixgain1");
case FIXGAIN2:
return std::string("fixgain2");
case FORCESWITCHG1:
return std::string("forceswitchg1");
case FORCESWITCHG2:
return std::string("forceswitchg2");
case VERYLOWGAIN:
return std::string("verylowgain");
case UNINITIALIZED:
return std::string("uninitialized");
default:
return std::string("undefined");
}
};
/** returns detector settings std::string from index
\param s can be standard, fast, highgain, dynamicgain, lowgain,
mediumgain, veryhighgain, dynamichg0, fixgain1, fixgain2,
forceswitchg1, forceswitchg2, undefined \returns setting index
STANDARD, FAST, HIGHGAIN, DYNAMICGAIN, LOWGAIN, MEDIUMGAIN,
VERYHIGHGAIN,DYNAMICHG0, FIXGAIN1, FIXGAIN2, FORCESWITCHG1,
FORCESWITCHG2, VERYLOWGAIN, GET_SETTINGS
*/
static detectorSettings getDetectorSettings(std::string s) {
if (s == "standard")
return STANDARD;
if (s == "fast")
return FAST;
if (s == "highgain")
return HIGHGAIN;
if (s == "dynamicgain")
return DYNAMICGAIN;
if (s == "lowgain")
return LOWGAIN;
if (s == "mediumgain")
return MEDIUMGAIN;
if (s == "veryhighgain")
return VERYHIGHGAIN;
if (s == "dynamichg0")
return DYNAMICHG0;
if (s == "fixgain1")
return FIXGAIN1;
if (s == "fixgain2")
return FIXGAIN2;
if (s == "forceswitchg1")
return FORCESWITCHG1;
if (s == "forceswitchg2")
return FORCESWITCHG2;
if (s == "verylowgain")
return VERYLOWGAIN;
return GET_SETTINGS;
};
/**
returns external communication mode std::string from index
\param f can be AUTO_TIMING, TRIGGER_EXPOSURE, GATED, BURST_TRIGGER,
GET_TIMING_MODE \returns auto, trigger, gating,
burst_trigger, unknown
*/
static std::string timingModeType(timingMode f) {
switch (f) {
case AUTO_TIMING:
return std::string("auto");
case TRIGGER_EXPOSURE:
return std::string("trigger");
case GATED:
return std::string("gating");
case BURST_TRIGGER:
return std::string("burst_trigger");
default:
return std::string("unknown");
}
};
/**
returns external communication mode index from std::string
\param sval can be auto, trigger, gating, burst_trigger
\returns AUTO_TIMING, TRIGGER_EXPOSURE, GATED, BURST_TRIGGER,
GET_TIMING_MODE
*/
static timingMode timingModeType(std::string sval) {
if (sval == "auto")
return AUTO_TIMING;
if (sval == "trigger")
return TRIGGER_EXPOSURE;
if (sval == "gating")
return GATED;
if (sval == "burst_trigger")
return BURST_TRIGGER;
return GET_TIMING_MODE;
};
/** returns std::string from file format index
\param s can be RAW, HDF5
\returns std::string raw, hdf5
*/
static std::string fileFormats(fileFormat f) {
switch (f) {
case BINARY:
return std::string("binary");
case HDF5:
return std::string("hdf5");
default:
return std::string("unknown");
}
};
/** returns std::string from timer index
\param s can be FRAME_NUMBER,ACQUISITION_TIME,FRAME_PERIOD,
DELAY_AFTER_TRIGGER, CYCLES_NUMBER,
DELAY_AFTER_TRIGGER, TRIGGER_NUMBER,
ACTUAL_TIME,MEASUREMENT_TIME,
PROGRESS,FRAMES_FROM_START,FRAMES_FROM_START_PG,ANALOG_SAMPLES,DIGITAL_SAMPLES,SUBFRAME_ACQUISITION_TIME,STORAGE_CELL_NUMBER,
SUBFRAME_DEADTIME \returns std::string
frame_number,acquisition_time,frame_period,
delay_after_trigger, cycles_number,
delay_after_trigger, triggers_number,
actual_time,measurement_time,
progress,frames_from_start,frames_from_start_pg,analog_samples, digital_samples,subframe_acquisition_time,storage_cell_number,
SUBFRAME_DEADTIME
@ -872,8 +603,8 @@ format
return std::string("frame_period");
case DELAY_AFTER_TRIGGER:
return std::string("delay_after_trigger");
case CYCLES_NUMBER:
return std::string("cycles_number");
case TRIGGER_NUMBER:
return std::string("triggers_number");
case ACTUAL_TIME:
return std::string("actual_time");
case MEASUREMENT_TIME:
@ -899,83 +630,6 @@ format
}
};
/** returns string from readoutMode */
static std::string getReadoutModeType(readoutMode mode) {
switch(mode) {
case ANALOG_ONLY:
return "analog";
case DIGITAL_ONLY:
return "digital";
case ANALOG_AND_DIGITAL:
return "analog_digital";
default:
return "Unknown";
}
};
/** returns readoutMode from string */
static readoutMode getReadoutModeType(std::string smode) {
if (smode == "analog")
return ANALOG_ONLY;
if (smode == "digital")
return DIGITAL_ONLY;
if (smode == "analog_digital")
return ANALOG_AND_DIGITAL;
throw sls::RuntimeError("Unknown readout mode " + smode);
};
/** returns string from speedLevel */
static std::string getSpeedLevelType(speedLevel mode) {
switch(mode) {
case FULL_SPEED:
return "full_speed";
case HALF_SPEED:
return "half_speed";
case QUARTER_SPEED:
return "quarter_speed";
// default:
// return "Unknown";
}
};
/** returns speedLevel from string */
static speedLevel getSpeedLevelType(std::string smode) {
if (smode == "full_speed")
return FULL_SPEED;
if (smode == "half_speed")
return HALF_SPEED;
if (smode == "quarter_speed")
return QUARTER_SPEED;
throw sls::RuntimeError("Unknown speed level mode " + smode);
};
/**
@short returns adc index from std::string
\param s can be temp_fpga, temp_fpgaext, temp_10ge, temp_dcdc, temp_sodl,
temp_sodr, temp_fpgafl, temp_fpgafr \returns TEMPERATURE_FPGA,
TEMPERATURE_FPGAEXT, TEMPERATURE_10GE, TEMPERATURE_DCDC,
TEMPERATURE_SODL, TEMPERATURE_SODR, TEMPERATURE_FPGA2, TEMPERATURE_FPGA3,
-1 when unknown mode
*/
static int getADCIndex(std::string s) {
if (s == "temp_fpga")
return TEMPERATURE_FPGA;
if (s == "temp_fpgaext")
return TEMPERATURE_FPGAEXT;
if (s == "temp_10ge")
return TEMPERATURE_10GE;
if (s == "temp_dcdc")
return TEMPERATURE_DCDC;
if (s == "temp_sodl")
return TEMPERATURE_SODL;
if (s == "temp_sodr")
return TEMPERATURE_SODR;
if (s == "temp_fpgafl")
return TEMPERATURE_FPGA2;
if (s == "temp_fpgafr")
return TEMPERATURE_FPGA3;
return -1;
};
/**
@short returns dac index from std::string
@ -1007,38 +661,6 @@ format
return -1;
};
/**
@short returns receiver frame discard policy from std::string
\param s can be nodiscard, discardempty, discardpartial
\returns NO_DISCARD, DISCARD_EMPTY_FRAMES, DISCARD_PARTIAL_FRAMES,
GET_FRAME_DISCARD_POLICY when unknown mode
*/
static frameDiscardPolicy getReceiverFrameDiscardPolicy(std::string s) {
if (s == "nodiscard")
return NO_DISCARD;
if (s == "discardempty")
return DISCARD_EMPTY_FRAMES;
if (s == "discardpartial")
return DISCARD_PARTIAL_FRAMES;
return GET_FRAME_DISCARD_POLICY;
};
/** returns std::string from frame discard policy
\param f can be NO_DISCARD, DISCARD_EMPTY_FRAMES, DISCARD_PARTIAL_FRAMES
\returns std::string nodiscard, discardempty, discardpartial, unknown
*/
static std::string getReceiverFrameDiscardPolicy(frameDiscardPolicy f) {
switch (f) {
case NO_DISCARD:
return std::string("nodiscard");
case DISCARD_EMPTY_FRAMES:
return std::string("discardempty");
case DISCARD_PARTIAL_FRAMES:
return std::string("discardpartial");
default:
return std::string("unknown");
}
};
/**
* returns frameModeType as enum
@ -1215,9 +837,7 @@ struct detParameters {
nGappixelsY = 0;
break;
default:
throw sls::RuntimeError(
"Unknown detector type! " +
slsDetectorDefs::detectorTypeToString(type));
throw sls::RuntimeError("Unknown detector type! " + std::to_string(type));
}
}
};