mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 23:10:02 +02:00
Merge branch 'apidhanya' of github.com:slsdetectorgroup/slsDetectorPackage into apidhanya
This commit is contained in:
commit
b73b98ce3f
@ -113,7 +113,7 @@ class DetectorPythonInterface {
|
||||
void setFileFormat(const std::string &format);
|
||||
std::string getFileFormat();
|
||||
|
||||
std::string checkOnline() { return det.checkOnline(); }
|
||||
// std::string checkOnline() { return det.checkOnline(); }
|
||||
|
||||
bool isChipPowered() { return det.powerChip(); }
|
||||
void powerChip(const bool value) { det.powerChip(value); }
|
||||
|
@ -110,7 +110,7 @@ PYBIND11_MODULE(_sls_detector, m) {
|
||||
.def("readConfigurationFile",
|
||||
&DetectorPythonInterface::readConfigurationFile)
|
||||
.def("readParametersFile", &DetectorPythonInterface::readParametersFile)
|
||||
.def("checkOnline", &DetectorPythonInterface::checkOnline)
|
||||
// .def("checkOnline", &DetectorPythonInterface::checkOnline)
|
||||
.def("setReadoutClockSpeed",
|
||||
&DetectorPythonInterface::setReadoutClockSpeed)
|
||||
.def("getReadoutClockSpeed",
|
||||
|
@ -571,6 +571,51 @@ class Detector {
|
||||
* 0 disable correction, <0 set to default, >0 deadtime in ns
|
||||
*/
|
||||
void setRateCorrection(int64_t dead_time_ns, Positions pos = {});
|
||||
|
||||
/** [Jungfrau] TODO??? fix docs */
|
||||
void setAutoCompDisable(bool value, Positions pos = {});
|
||||
|
||||
Result<bool> getAutoCompDisable(Positions pos = {}) const;
|
||||
|
||||
void setPowerChip(bool on, Positions pos = {});
|
||||
|
||||
Result<bool> getPowerChip(Positions pos = {}) const;
|
||||
|
||||
/**
|
||||
* Updates the firmware, detector server and then reboots detector
|
||||
* controller blackfin. (Not Eiger)
|
||||
* @param sname name of detector server binary
|
||||
* @param hostname name of pc to tftp from
|
||||
* @param fname programming file name
|
||||
* @param pos detector positions
|
||||
*/
|
||||
void updateFirmwareAndServer(const std::string &sname,
|
||||
const std::string &hostname,
|
||||
const std::string &fname, Positions pos = {});
|
||||
|
||||
/** [not Eiger] TODO! is this needed?*/
|
||||
void rebootController(Positions pos = {});
|
||||
|
||||
/** Copy detector server to detector */
|
||||
void copyDetectorServer(const std::string &fname,
|
||||
const std::string &hostname, Positions pos = {});
|
||||
|
||||
|
||||
/** [not Eiger] */
|
||||
void resetFPGA(Positions pos = {});
|
||||
|
||||
/** [not Eiger] */
|
||||
void programFPGA(const std::string &fname, Positions pos = {});
|
||||
|
||||
/**
|
||||
* [Jungfrau] Set first storage cell of the series (Jungfrau)
|
||||
* @param value storage cell index. Value can be 0 to 15.
|
||||
*/
|
||||
void setStoragecellStart(int cell, Positions pos = {});
|
||||
|
||||
Result<int> getStorageCellStart(Positions pos = {}) const;
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace sls
|
@ -1673,13 +1673,13 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* @param fname file name
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
*/
|
||||
void programFPGA(const std::string &fname, int detPos = -1);
|
||||
void programFPGA(const std::string &fname, int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Resets FPGA (Not Eiger)
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
*/
|
||||
void resetFPGA(int detPos = -1);
|
||||
void resetFPGA(int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Copies detector server from tftp and changes respawn server (Not Eiger)
|
||||
@ -1688,13 +1688,13 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
*/
|
||||
void copyDetectorServer(const std::string &fname,
|
||||
const std::string &hostname, int detPos = -1);
|
||||
const std::string &hostname, int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Reboot detector controller (Not Eiger)
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
*/
|
||||
void rebootController(int detPos = -1);
|
||||
void rebootController(int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Updates the firmware, detector server and then reboots detector
|
||||
@ -1705,7 +1705,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
*/
|
||||
void update(const std::string &sname, const std::string &hostname,
|
||||
const std::string &fname, int detPos = -1);
|
||||
const std::string &fname, int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Power on/off Chip (Jungfrau)
|
||||
@ -1713,7 +1713,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int powerChip(int ival = -1, int detPos = -1);
|
||||
int powerChip(int ival = -1, int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Automatic comparator disable (Jungfrau)
|
||||
@ -1721,7 +1721,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int setAutoComparatorDisableMode(int ival = -1, int detPos = -1);
|
||||
int setAutoComparatorDisableMode(int ival = -1, int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Set Rate correction ( Eiger)
|
||||
@ -1730,14 +1730,14 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
* for current settings
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
*/
|
||||
void setRateCorrection(int64_t t = 0, int detPos = -1);
|
||||
void setRateCorrection(int64_t t = 0, int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Get rate correction ( Eiger)
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns 0 if rate correction disabled, > 0 otherwise (ns)
|
||||
*/
|
||||
int64_t getRateCorrection(int detPos = -1);
|
||||
int64_t getRateCorrection(int detPos = -1); //
|
||||
|
||||
/**
|
||||
* Prints receiver configuration
|
||||
@ -2214,6 +2214,14 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
*/
|
||||
void processData();
|
||||
|
||||
/**
|
||||
* Convert raw file
|
||||
* @param fname name of pof file
|
||||
* @param fpgasrc pointer in memory to read pof to
|
||||
* @returns file size
|
||||
*/
|
||||
std::vector<char> readPofFile(const std::string &fname);
|
||||
|
||||
private:
|
||||
/**
|
||||
* increments file index
|
||||
@ -2354,13 +2362,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
|
||||
*/
|
||||
int kbhit();
|
||||
|
||||
/**
|
||||
* Convert raw file
|
||||
* @param fname name of pof file
|
||||
* @param fpgasrc pointer in memory to read pof to
|
||||
* @returns file size
|
||||
*/
|
||||
std::vector<char> readPofFile(const std::string &fname);
|
||||
|
||||
|
||||
/**
|
||||
* Convert a double holding time in seconds to an int64_t with nano seconds
|
||||
|
@ -476,4 +476,56 @@ void Detector::setRateCorrection(int64_t dead_time_ns, Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::setRateCorrection, pos, dead_time_ns);
|
||||
}
|
||||
|
||||
void Detector::setAutoCompDisable(bool value, Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::setAutoComparatorDisableMode, pos,
|
||||
static_cast<int>(value));
|
||||
}
|
||||
|
||||
Result<bool> Detector::getAutoCompDisable(Positions pos) const {
|
||||
return pimpl->Parallel(&slsDetector::setAutoComparatorDisableMode, pos, -1);
|
||||
}
|
||||
|
||||
void Detector::setPowerChip(bool on, Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::powerChip, pos, static_cast<int>(on));
|
||||
}
|
||||
|
||||
Result<bool> Detector::getPowerChip(Positions pos) const {
|
||||
return pimpl->Parallel(&slsDetector::powerChip, pos, -1);
|
||||
}
|
||||
|
||||
void Detector::updateFirmwareAndServer(const std::string &sname,
|
||||
const std::string &hostname,
|
||||
const std::string &fname,
|
||||
Positions pos) {
|
||||
copyDetectorServer(fname, hostname, pos);
|
||||
programFPGA(fname, pos);
|
||||
}
|
||||
|
||||
void Detector::rebootController(Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::rebootController, pos);
|
||||
}
|
||||
|
||||
void Detector::copyDetectorServer(const std::string &fname,
|
||||
const std::string &hostname, Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::copyDetectorServer, pos, fname, hostname);
|
||||
}
|
||||
|
||||
void Detector::resetFPGA(Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::resetFPGA, pos);
|
||||
}
|
||||
|
||||
void Detector::programFPGA(const std::string &fname, Positions pos) {
|
||||
FILE_LOG(logINFO) << "This can take awhile. Please be patient...";
|
||||
std::vector<char> buffer = pimpl->readPofFile(fname);
|
||||
pimpl->Parallel(&slsDetector::programFPGA, pos, buffer);
|
||||
}
|
||||
|
||||
void Detector::setStoragecellStart(int cell, Positions pos) {
|
||||
pimpl->Parallel(&slsDetector::setStoragecellStart, pos, cell);
|
||||
}
|
||||
|
||||
Result<int> Detector::getStorageCellStart(Positions pos) const {
|
||||
return pimpl->Parallel(&slsDetector::setStoragecellStart, pos, -1);
|
||||
}
|
||||
|
||||
} // namespace sls
|
Loading…
x
Reference in New Issue
Block a user