merging refactor (replacing)

This commit is contained in:
2019-04-12 10:53:09 +02:00
parent 0bb800cc8a
commit 89a06f099c
1176 changed files with 82698 additions and 159058 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,431 @@
#include "slsDetectorUsers.h"
#include "detectorData.h"
#include "multiSlsDetectorClient.h"
int slsDetectorUsers::getNumberOfDetectors() const {
return detector.getNumberOfDetectors();
}
int slsDetectorUsers::getMaximumDetectorSize(int &nx, int &ny){
nx=detector.getMaxNumberOfChannelsPerDetector(slsDetectorDefs::X);
ny=detector.getMaxNumberOfChannelsPerDetector(slsDetectorDefs::Y);
return nx*ny;
}
int slsDetectorUsers::getDetectorSize(int &x, int &y, int &nx, int &ny, int detPos){
if (detPos < 0) {
x = 0;
y = 0;
} else {
x = detector.getDetectorOffset(slsDetectorDefs::X, detPos);
y = detector.getDetectorOffset(slsDetectorDefs::Y, detPos);
}
nx=detector.getTotalNumberOfChannels(slsDetectorDefs::X, detPos);
ny=detector.getTotalNumberOfChannels(slsDetectorDefs::Y, detPos);
return nx*ny;
}
std::string slsDetectorUsers::getDetectorType(int detPos){
return detector.getDetectorTypeAsString(detPos);
}
int slsDetectorUsers::setOnline(int const online, int detPos){
return detector.setOnline(online, detPos);
}
int slsDetectorUsers::setReceiverOnline(int const online, int detPos){
return detector.setReceiverOnline(online, detPos);
}
int slsDetectorUsers::readConfigurationFile(const std::string& fname){
try{
detector.readConfigurationFile(fname);
return slsDetectorDefs::OK;
} catch (...) {
return slsDetectorDefs::FAIL;
}
}
int slsDetectorUsers::writeConfigurationFile(const std::string& fname){
return detector.writeConfigurationFile(fname);
}
int slsDetectorUsers::retrieveDetectorSetup(const std::string& fname){
return detector.retrieveDetectorSetup(fname);
}
int slsDetectorUsers::dumpDetectorSetup(const std::string& fname){
return detector.dumpDetectorSetup(fname);
}
int64_t slsDetectorUsers::getDetectorFirmwareVersion(int detPos){
return detector.getId(slsDetectorDefs::DETECTOR_FIRMWARE_VERSION, detPos);
}
int64_t slsDetectorUsers::getDetectorSerialNumber(int detPos){
return detector.getId(slsDetectorDefs::DETECTOR_SERIAL_NUMBER, detPos);
}
int64_t slsDetectorUsers::getDetectorSoftwareVersion(int detPos){
return detector.getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, detPos);
}
int64_t slsDetectorUsers::getClientSoftwareVersion(){
return detector.getClientSoftwareVersion();
}
int64_t slsDetectorUsers::getReceiverSoftwareVersion(int detPos){
return detector.getId(slsDetectorDefs::RECEIVER_VERSION, detPos);
}
bool slsDetectorUsers::isDetectorVersionCompatible(int detPos) {
return (detector.checkDetectorVersionCompatibility(detPos) == slsDetectorDefs::OK);
}
bool slsDetectorUsers::isReceiverVersionCompatible(int detPos) {
return (detector.checkReceiverVersionCompatibility(detPos) == slsDetectorDefs::OK);
}
int slsDetectorUsers::startMeasurement(){
return detector.acquire();
}
int slsDetectorUsers::stopMeasurement(int detPos){
return detector.stopAcquisition(detPos);
}
int slsDetectorUsers::getDetectorStatus(int detPos){
return (int)detector.getRunStatus(detPos);
}
int slsDetectorUsers::startAcquisition(int detPos) {
return detector.startAcquisition(detPos);
}
int slsDetectorUsers::stopAcquisition(int detPos) {
return detector.stopAcquisition(detPos);
}
int slsDetectorUsers::sendSoftwareTrigger(int detPos) {
return detector.sendSoftwareTrigger(detPos);
}
int slsDetectorUsers::enableCountRateCorrection(int i, int detPos){
if (i == 0)
detector.setRateCorrection(0, detPos);
else
detector.setRateCorrection(-1, detPos);
return detector.getRateCorrection(detPos);
}
int slsDetectorUsers::setBitDepth(int i, int detPos){
return detector.setDynamicRange(i, detPos);
}
int slsDetectorUsers::setSettings(int isettings, int detPos){
return detector.setSettings((slsDetectorDefs::detectorSettings)isettings, detPos);
}
int slsDetectorUsers::getThresholdEnergy(int detPos){
return detector.getThresholdEnergy(detPos);
}
int slsDetectorUsers::setThresholdEnergy(int e_ev, int tb, int isettings, int detPos) {
return detector.setThresholdEnergy(e_ev,
(isettings == -1) ? slsDetectorDefs::GET_SETTINGS : (slsDetectorDefs::detectorSettings)isettings,
tb, detPos);
}
double slsDetectorUsers::setExposureTime(double t, bool inseconds, int detPos){
return detector.setExposureTime(t, inseconds, detPos);
}
double slsDetectorUsers::setExposurePeriod(double t, bool inseconds, int detPos){
return detector.setExposurePeriod(t, inseconds, detPos);
}
double slsDetectorUsers::setDelayAfterTrigger(double t, bool inseconds, int detPos){
return detector.setDelayAfterTrigger(t, inseconds, detPos);
}
double slsDetectorUsers::setSubFrameExposureTime(double t, bool inseconds, int detPos){
return detector.setSubFrameExposureTime(t, inseconds, detPos);
}
double slsDetectorUsers::setSubFrameExposureDeadTime(double t, bool inseconds, int detPos){
return detector.setSubFrameExposureDeadTime(t, inseconds, detPos);
}
int64_t slsDetectorUsers::setNumberOfFrames(int64_t t, int detPos){
return detector.setNumberOfFrames(t, detPos);
}
int64_t slsDetectorUsers::setNumberOfCycles(int64_t t, int detPos){
return detector.setNumberOfCycles(t, detPos);
}
int64_t slsDetectorUsers::setNumberOfGates(int64_t t, int detPos){
return detector.setNumberOfGates(t, detPos);
}
int64_t slsDetectorUsers::setNumberOfStorageCells(int64_t t, int detPos) {
return detector.setNumberOfStorageCells(t, detPos);
}
double slsDetectorUsers::getMeasuredPeriod(bool inseconds, int detPos) {
return detector.getMeasuredPeriod(inseconds, detPos);
}
double slsDetectorUsers::getMeasuredSubFramePeriod(bool inseconds, int detPos) {
return detector.getMeasuredSubFramePeriod(inseconds, detPos);
}
int slsDetectorUsers::setTimingMode(int pol, int detPos){
return detector.setExternalCommunicationMode(slsDetectorDefs::externalCommunicationMode(pol), detPos);
}
int slsDetectorUsers::setClockDivider(int value, int detPos) {
return detector.setSpeed(slsDetectorDefs::CLOCK_DIVIDER, value, detPos);
}
int slsDetectorUsers::setParallelMode(int value, int detPos) {
if(value >= 0)
detector.setReadOutFlags(slsDetectorDefs::readOutFlags(value), detPos);
return detector.setReadOutFlags(slsDetectorDefs::GET_READOUT_FLAGS, detPos);
}
int slsDetectorUsers::setOverflowMode(int value, int detPos) {
if(value >= 0) {
if (value == 1)
detector.setReadOutFlags(slsDetectorDefs::SHOW_OVERFLOW, detPos);
else
detector.setReadOutFlags(slsDetectorDefs::NOOVERFLOW, detPos);
}
int ret = detector.setReadOutFlags(slsDetectorDefs::GET_READOUT_FLAGS, detPos);
if (ret == -1)
return -1;
return ((ret & slsDetectorDefs::SHOW_OVERFLOW) ? 1 : 0);
}
int slsDetectorUsers::setAllTrimbits(int val, int detPos) {
return detector.setAllTrimbits(val, detPos);
}
int slsDetectorUsers::setDAC(int val, int index , int detPos) {
return detector.setDAC(val, slsDetectorDefs::dacIndex(index), 0, detPos);
}
int slsDetectorUsers::getADC(int index, int detPos) {
return detector.getADC(slsDetectorDefs::dacIndex(index),detPos);
}
int slsDetectorUsers::setTenGigabitEthernet(int i, int detPos) {
return detector.enableTenGigabitEthernet(i, detPos);
}
int slsDetectorUsers::setStoragecellStart(int pos, int detPos) {
return detector.setStoragecellStart(pos, detPos);
}
int slsDetectorUsers::setHighVoltage(int i, int detPos) {
return detector.setDAC(i, slsDetectorDefs::HIGH_VOLTAGE, 0, detPos);
}
int slsDetectorUsers::setFlowControl10G(int i, int detPos) {
return detector.setFlowControl10G(i, detPos);
}
int slsDetectorUsers::setROI(int n, slsDetectorDefs::ROI roiLimits[], int detPos) {
return detector.setROI(n, roiLimits, detPos);
}
const slsDetectorDefs::ROI* slsDetectorUsers::getROI(int &n, int detPos) {
return detector.getROI(n, detPos);
}
/************************************************************************
RECEIVER FUNCTIONS
*********************************************************************/
int slsDetectorUsers::startReceiver(int detPos) {
return detector.startReceiver(detPos);
}
int slsDetectorUsers::stopReceiver(int detPos) {
return detector.stopReceiver(detPos);
}
int slsDetectorUsers::setReceiverSilentMode(int i, int detPos) {
return detector.setReceiverSilentMode(i, detPos);
}
int slsDetectorUsers::resetFramesCaughtInReceiver(int detPos) {
return detector.resetFramesCaught(detPos);
}
int slsDetectorUsers::setReceiverFifoDepth(int i, int detPos) {
return detector.setReceiverFifoDepth(i, detPos);
}
std::string slsDetectorUsers::getFilePath(int detPos){
return detector.getFilePath(detPos);
}
std::string slsDetectorUsers::setFilePath(const std::string& s, int detPos){
return detector.setFilePath(s, detPos);
}
std::string slsDetectorUsers::getFileName(int detPos){
return detector.getFileName(detPos);
}
std::string slsDetectorUsers::setFileName(const std::string& s, int detPos){
return detector.setFileName(s, detPos);
}
int slsDetectorUsers::getFileIndex(int detPos){
return detector.getFileIndex(detPos);
}
int slsDetectorUsers::setFileIndex(int i, int detPos){
return detector.setFileIndex(i, detPos);
}
int slsDetectorUsers::enableWriteToFile(int enable, int detPos){
if (enable >0)
return detector.setFileWrite(enable, detPos);
else
return detector.getFileWrite(detPos);
}
int slsDetectorUsers::enableOverwriteFile(int enable, int detPos) {
if (enable > 0)
return detector.setFileOverWrite(enable, detPos);
else
return detector.getFileOverWrite(detPos);
}
int slsDetectorUsers::setReceiverStreamingFrequency(int freq, int detPos){
return detector.setReceiverStreamingFrequency(freq, detPos);
}
int slsDetectorUsers::setReceiverStreamingTimer(int time_in_ms, int detPos){
return detector.setReceiverStreamingTimer(time_in_ms, detPos);
}
int slsDetectorUsers::enableDataStreamingToClient(int i){
return detector.enableDataStreamingToClient(i);
}
int slsDetectorUsers::enableDataStreamingFromReceiver(int i, int detPos){
return detector.enableDataStreamingFromReceiver(i, detPos);
}
int slsDetectorUsers::setReceiverDataStreamingOutPort(int i, int detPos){
if (i >= 0) {
detector.setReceiverDataStreamingOutPort(i, detPos);
}
return detector.getReceiverStreamingPort(detPos);
}
int slsDetectorUsers::setClientDataStreamingInPort(int i, int detPos){
if (i >= 0) {
detector.setClientDataStreamingInPort(i, detPos);
}
return detector.getClientStreamingPort(detPos);
}
std::string slsDetectorUsers::setReceiverDataStreamingOutIP(const std::string& ip, int detPos){
if (ip.length()) {
detector.setReceiverDataStreamingOutIP(ip, detPos);
}
return detector.getReceiverStreamingIP(detPos);
}
std::string slsDetectorUsers::setClientDataStreamingInIP(const std::string& ip, int detPos){
if (ip.length()) {
detector.setClientDataStreamingInIP(ip, detPos);
}
return detector.getClientStreamingIP(detPos);
}
int slsDetectorUsers::enableGapPixels(int enable, int detPos) {
return detector.enableGapPixels(enable, detPos);
}
int slsDetectorUsers::setReceiverFramesDiscardPolicy(int f, int detPos) {
return detector.setReceiverFramesDiscardPolicy(slsDetectorDefs::frameDiscardPolicy(f), detPos);
}
int slsDetectorUsers::setReceiverPartialFramesPadding(int f, int detPos) {
if (f>=0)
return detector.setPartialFramesPadding(f, detPos);
else
return detector.getPartialFramesPadding(detPos);
}
int slsDetectorUsers::setReceiverFramesPerFile(int f, int detPos) {
if (f > 0) {
return detector.setFramesPerFile(f, detPos);
}
else {
return detector.getFramesPerFile(detPos);
}
}
int slsDetectorUsers::setDetectorMinMaxEnergyThreshold(const int index, int v, int detPos) {
return detector.setDetectorMinMaxEnergyThreshold(index, v, detPos);
}
int slsDetectorUsers::setFrameMode(int value, int detPos) {
return detector.setFrameMode(slsDetectorDefs::frameModeType(value), detPos);
}
int slsDetectorUsers::setDetectorMode(int value, int detPos) {
return detector.setDetectorMode(slsDetectorDefs::detectorModeType(value), detPos);
}
/************************************************************************
CALLBACKS & COMMAND LINE PARSING
*********************************************************************/
void slsDetectorUsers::registerDataCallback(int( *userCallback)(detectorData*, int, int, void*), void *pArg) {
detector.registerDataCallback(userCallback,pArg);
}
void slsDetectorUsers::registerAcquisitionFinishedCallback(int( *func)(double,int, void*), void *pArg) {
detector.registerAcquisitionFinishedCallback(func,pArg);
}
void slsDetectorUsers::registerMeasurementFinishedCallback(int( *func)(int,int, void*), void *pArg) {
detector.registerMeasurementFinishedCallback(func,pArg);
}
void slsDetectorUsers::registerProgressCallback(int( *func)(double,void*), void *pArg) {
detector.registerProgressCallback(func,pArg);
}
void slsDetectorUsers::putCommand(const std::string& command){
multiSlsDetectorClient(command, slsDetectorDefs::PUT_ACTION, &detector);
}

View File

@ -0,0 +1,33 @@
#include "versionAPI.h"
#include "multiSlsDetectorClient.h"
#include <cstdlib>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; ++i) {
if (!(strcmp(argv[i], "--version")) || !(strcmp(argv[i], "-v"))) {
int64_t tempval = APILIB;
std::cout << argv[0] << " " << GITBRANCH << " (0x" << std::hex << tempval << ")" << std::endl;
return 0;
}
}
#ifdef PUT
int action = slsDetectorDefs::PUT_ACTION;
#endif
#ifdef GET
int action = slsDetectorDefs::GET_ACTION;
#endif
#ifdef READOUT
int action = slsDetectorDefs::READOUT_ACTION;
#endif
#ifdef HELP
int action = slsDetectorDefs::HELP_ACTION;
#endif
// if (argc > 1)
// argv++;
multiSlsDetectorClient(argc, argv, action);
}