This commit is contained in:
maliakal_d 2019-08-09 11:55:27 +02:00
parent a6e8be2d67
commit bdfdd5dbda
3 changed files with 195 additions and 49 deletions

View File

@ -115,14 +115,6 @@ class Detector {
Result<bool> getFileOverWrite(Positions pos = {}) const;
void setFileOverWrite(bool value, Positions pos = {});
// Time
Result<ns> getExptime(Positions pos = {}) const;
void setExptime(ns t, Positions pos = {});
Result<ns> getSubExptime(Positions pos = {}) const;
void setSubExptime(ns t, Positions pos = {});
Result<ns> getPeriod(Positions pos = {}) const;
void setPeriod(ns t, Positions pos = {});
// dhanya
/**
* Get multidetector Id
@ -560,6 +552,33 @@ class Detector {
*/
void setNumberOfDigitalSamples(int64_t value, Positions pos = {});
/**
* Get exposure time in ns
* @param pos detector position
* @returns exposure time in ns
*/
Result<ns> getExptime(Positions pos = {}) const;
/**
* Set exposure time in ns
* @param value exposure time in ns
* @param pos detector position
*/
void setExptime(ns t, Positions pos = {});
/**
* Get period in ns
* @param pos detector position
* @returns period in ns
*/
Result<ns> getPeriod(Positions pos = {}) const;
/**
* Set period in ns
* @param value period in ns
* @param pos detector position
*/
void setPeriod(ns t, Positions pos = {});
/**
* Get delay after trigger in ns(Gotthard, Jungfrau)
* @param pos detector position
@ -574,19 +593,32 @@ class Detector {
*/
void setDelayAfterTrigger(ns value, Positions pos = {});
/**
* Get sub frame exposure time in ns (Eiger in 32 bit mode)
* @param pos detector position
* @returns sub frame exposure time in ns
*/
Result<ns> getSubExptime(Positions pos = {}) const;
/**
* Set sub frame exposure time after trigger (Eiger in 32 bit mode)
* @param value sub frame exposure time in ns
* @param pos detector position
*/
void setSubExptime(ns t, Positions pos = {});
/**
* Get sub frame dead time in ns (Eiger in 32 bit mode)
* @param pos detector position
* @returns delay after trigger in ns
* @returns sub frame dead time in ns
*/
Result<ns> getSubFrameDeadTime(Positions pos = {}) const;
Result<ns> getSubDeadTime(Positions pos = {}) const;
/**
* Set sub frame dead time after trigger (Eiger in 32 bit mode)
* @param value delay after trigger in ns
* @param value sub frame dead time in ns
* @param pos detector position
*/
void setSubFrameDeadTime(ns value, Positions pos = {});
void setSubDeadTime(ns value, Positions pos = {});
/**
* Get storage cell delay (Jungfrau)
@ -604,6 +636,76 @@ class Detector {
*/
void setStorageCellDelay(ns value, Positions pos = {});
/**
* Get number of Frames left (Gotthard, Jungfrau, CTB)
* @param pos detector position
* @returns number of Frames left
*/
Result<int64_t> getNumberOfFramesLeft(Positions pos = {}) const;
/**
* Get number of Cycles left (Gotthard, Jungfrau, CTB)
* @param pos detector position
* @returns number of Cycles left
*/
Result<int64_t> getNumberOfCyclesLeft(Positions pos = {}) const;
/**
* Get exposure time left in ns (Gotthard)
* @param pos detector position
* @returns exposure time left in ns
*/
Result<ns> getExptimeLeft(Positions pos = {}) const;
/**
* Get period left in ns (Gotthard, Jungfrau, CTB)
* @param pos detector position
* @returns period left in ns
*/
Result<ns> getPeriodLeft(Positions pos = {}) const;
/**
* Get delay after trigger left in ns(Gotthard, Jungfrau, CTB)
* @param pos detector position
* @returns delay after trigger left in ns
*/
Result<ns> getDelayAfterTriggerLeft(Positions pos = {}) const;
/**
* Get number of frames from start up of detector (Jungfrau, CTB)
* @param pos detector position
* @returns number of frames from start up of detector
*/
Result<int64_t> getNumberOfFramesFromStart(Positions pos = {}) const;
/**
* Get time from detector start in ns (Jungfrau, CTB)
* @param pos detector position
* @returns time from detector start in ns
*/
Result<ns> getActualTime(Positions pos = {}) const;
/**
* Get timestamp at a frame start in ns(Jungfrau, CTB)
* @param pos detector position
* @returns timestamp at a frame start in ns
*/
Result<ns> getMeasurementTime(Positions pos = {}) const;
/**
* Get measured period between previous two frames in ns (Eiger)
* @param pos detector position
* @returns measured period between previous two frames in ns
*/
Result<ns> getMeasuredPeriod(Positions pos = {}) const;
/**
* Get measured sub frame period between previous two frames in ns (Eiger in
* 32 bit mode)
* @param pos detector position
* @returns measured sub frame period between previous two frames in ns
*/
Result<ns> getMeasuredSubFramePeriod(Positions pos = {}) const;
// Erik
Result<int> getFramesCaughtByReceiver(Positions pos = {}) const;

View File

@ -818,7 +818,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @param detPos -1 for all detectors in list or specific detector position
* @returns sub frame dead time in ns, or s if specified
*/
double getMeasuredPeriod(bool inseconds = false, int detPos = -1);
double getMeasuredPeriod(bool inseconds = false, int detPos = -1);//
/**
* Get sub period between previous two sub frames in 32 bit mode (EIGER)
@ -827,7 +827,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @param detPos -1 for all detectors in list or specific detector position
* @returns sub frame dead time in ns, or s if specified
*/
double getMeasuredSubFramePeriod(bool inseconds = false, int detPos = -1);
double getMeasuredSubFramePeriod(bool inseconds = false, int detPos = -1);//
/**
* Set/get timer value left in acquisition (not all implemented for all
@ -838,7 +838,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @returns timer set value in ns or number of...(e.g. frames,
* probes)
*/
int64_t getTimeLeft(timerIndex index, int detPos = -1);
int64_t getTimeLeft(timerIndex index, int detPos = -1);//
/**
* Set speed

View File

@ -51,11 +51,6 @@ Result<uint32_t> Detector::getRegister(uint32_t addr, Positions pos) {
return pimpl->Parallel(&slsDetector::readRegister, pos, addr);
}
Result<ns> Detector::getExptime(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::ACQUISITION_TIME,
-1);
}
Result<uint64_t> Detector::getStartingFrameNumber(Positions pos) const {
return pimpl->Parallel(&slsDetector::getStartingFrameNumber, pos);
}
@ -63,29 +58,6 @@ void Detector::setStartingFrameNumber(uint64_t value, Positions pos) {
pimpl->Parallel(&slsDetector::setStartingFrameNumber, pos, value);
}
void Detector::setExptime(ns t, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos, defs::ACQUISITION_TIME,
t.count());
}
Result<ns> Detector::getSubExptime(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos,
defs::SUBFRAME_ACQUISITION_TIME, -1);
}
void Detector::setSubExptime(ns t, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos,
defs::SUBFRAME_ACQUISITION_TIME, t.count());
}
Result<ns> Detector::getPeriod(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::FRAME_PERIOD, -1);
}
void Detector::setPeriod(ns t, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos, defs::FRAME_PERIOD, t.count());
}
// File
void Detector::setFileName(const std::string &fname, Positions pos) {
pimpl->Parallel(&slsDetector::setFileName, pos, fname);
@ -366,15 +338,18 @@ void Detector::setNumberOfCycles(int64_t value) {
}
Result<int64_t> Detector::getNumberOfStorageCells() const {
return pimpl->Parallel(&slsDetector::setTimer, {}, defs::STORAGE_CELL_NUMBER, -1);
return pimpl->Parallel(&slsDetector::setTimer, {},
defs::STORAGE_CELL_NUMBER, -1);
}
void Detector::setNumberOfStorageCells(int64_t value) {
pimpl->Parallel(&slsDetector::setTimer, {}, defs::STORAGE_CELL_NUMBER, value);
pimpl->Parallel(&slsDetector::setTimer, {}, defs::STORAGE_CELL_NUMBER,
value);
}
Result<int64_t> Detector::getNumberOfAnalogSamples(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::ANALOG_SAMPLES, -1);
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::ANALOG_SAMPLES,
-1);
}
void Detector::setNumberOfAnalogSamples(int64_t value, Positions pos) {
@ -382,13 +357,32 @@ void Detector::setNumberOfAnalogSamples(int64_t value, Positions pos) {
}
Result<int64_t> Detector::getNumberOfDigitalSamples(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::DIGITAL_SAMPLES, -1);
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::DIGITAL_SAMPLES,
-1);
}
void Detector::setNumberOfDigitalSamples(int64_t value, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos, defs::DIGITAL_SAMPLES, value);
}
Result<ns> Detector::getExptime(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::ACQUISITION_TIME,
-1);
}
void Detector::setExptime(ns t, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos, defs::ACQUISITION_TIME,
t.count());
}
Result<ns> Detector::getPeriod(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::FRAME_PERIOD, -1);
}
void Detector::setPeriod(ns t, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos, defs::FRAME_PERIOD, t.count());
}
Result<ns> Detector::getDelayAfterTrigger(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos,
defs::DELAY_AFTER_TRIGGER, -1);
@ -399,12 +393,22 @@ void Detector::setDelayAfterTrigger(ns value, Positions pos) {
value.count());
}
Result<ns> Detector::getSubFrameDeadTime(Positions pos) const {
Result<ns> Detector::getSubExptime(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos,
defs::SUBFRAME_ACQUISITION_TIME, -1);
}
void Detector::setSubExptime(ns t, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos,
defs::SUBFRAME_ACQUISITION_TIME, t.count());
}
Result<ns> Detector::getSubDeadTime(Positions pos) const {
return pimpl->Parallel(&slsDetector::setTimer, pos, defs::SUBFRAME_DEADTIME,
-1);
}
void Detector::setSubFrameDeadTime(ns value, Positions pos) {
void Detector::setSubDeadTime(ns value, Positions pos) {
pimpl->Parallel(&slsDetector::setTimer, pos, defs::SUBFRAME_DEADTIME,
value.count());
}
@ -419,6 +423,46 @@ void Detector::setStorageCellDelay(ns value, Positions pos) {
value.count());
}
Result<int64_t> Detector::getNumberOfFramesLeft(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::FRAME_NUMBER);
}
Result<int64_t> Detector::getNumberOfCyclesLeft(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::CYCLES_NUMBER);
}
Result<ns> Detector::getExptimeLeft(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::ACQUISITION_TIME);
}
Result<ns> Detector::getPeriodLeft(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::FRAME_PERIOD);
}
Result<ns> Detector::getDelayAfterTriggerLeft(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::DELAY_AFTER_TRIGGER);
}
Result<int64_t> Detector::getNumberOfFramesFromStart(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::FRAMES_FROM_START);
}
Result<ns> Detector::getActualTime(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::ACTUAL_TIME);
}
Result<ns> Detector::getMeasurementTime(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::MEASUREMENT_TIME);
}
Result<ns> Detector::getMeasuredPeriod(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::MEASURED_PERIOD);
};
Result<ns> Detector::getMeasuredSubFramePeriod(Positions pos) const {
return pimpl->Parallel(&slsDetector::getTimeLeft, pos, defs::MEASURED_SUBPERIOD);
};
// Erik
Result<int> Detector::getFramesCaughtByReceiver(Positions pos) const {
return pimpl->Parallel(&slsDetector::getFramesCaughtByReceiver, pos);