slsReceiver: removed special receiver config, added rx_dbitlist, rx_dbitoffset to put bits together in file, connected adcinvert, extsamplingsrc and extsampling properly to the detector, added tests

This commit is contained in:
2019-05-03 20:37:40 +02:00
parent 7683b18fa3
commit e14519c236
27 changed files with 1088 additions and 485 deletions

View File

@ -236,6 +236,10 @@ class multiSlsDetector : public virtual slsDetectorDefs {
*/
int64_t getReceiverSoftwareVersion(int detPos = -1);
/**
* Get Detector Number
* @returns vector of detector number
*/
std::vector<int64_t> getDetectorNumber();
/**
* Free shared memory from the command line
@ -438,6 +442,10 @@ class multiSlsDetector : public virtual slsDetectorDefs {
*/
int setReceiverPort(int port_number = -1, int detPos = -1);
/**
* Get Receiver port
* @returns vector of receiver port
*/
std::vector<int> getReceiverPort() const;
/**
@ -1305,6 +1313,76 @@ class multiSlsDetector : public virtual slsDetectorDefs {
*/
uint32_t getADCEnableMask(int detPos = -1);
/**
* Set ADC invert register (CTB, Moench)
* @param value ADC invert value
* @param detPos -1 for all detectors in list or specific detector position
*/
void setADCInvert(uint32_t value, int detPos = -1);
/**
* Get ADC invert register (CTB, Moench)
* @param detPos -1 for all detectors in list or specific detector position
* @returns ADC invert value
*/
uint32_t getADCInvert(int detPos = -1);
/**
* Set external sampling source (CTB only)
* @param value external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position
*/
void setExternalSamplingSource(int value, int detPos = -1);
/**
* Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling source
*/
int getExternalSamplingSource(int detPos = -1);
/**
* Set external sampling enable (CTB only)
* @param value external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position
*/
void setExternalSampling(bool value, int detPos = -1);
/**
* Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable
*/
int getExternalSampling(int detPos = -1);
/**
* Set external sampling enable (CTB only)
* @param list external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position
*/
void setReceiverDbitList(std::vector<int> list, int detPos = -1);
/**
* Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable
*/
std::vector<int> getReceiverDbitList(int detPos = -1);
/**
* Set digital data offset in bytes (CTB only)
* @param value digital data offset in bytes
* @param detPos -1 for all detectors in list or specific detector position
*/
void setReceiverDbitOffset(int value, int detPos = -1);
/**
* Get digital data offset in bytes (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns digital data offset in bytes
*/
int getReceiverDbitOffset(int detPos = -1);
/**
* Write to ADC register (Gotthard, Jungfrau, ChipTestBoard). For expert
* users

View File

@ -16,10 +16,8 @@ class multiSlsDetector;
class ServerInterface;
class MySocketTCP;
#define SLS_SHMVERSION 0x190430
#define NCHIPSMAX 10
#define NCHANSMAX 65536
#define NDACSMAX 16
#define SLS_SHMVERSION 0x190503
#define MAX_RX_DBIT 64
/**
@ -245,6 +243,15 @@ struct sharedSlsDetector {
/** overwrite enable */
bool rxFileOverWrite;
/** receiver dbit size */
int rxDbitListSize;
/** receiver dbit list */
int rxDbitList[MAX_RX_DBIT];
/** reciever dbit offset */
int rxDbitOffset;
};
@ -1218,6 +1225,77 @@ class slsDetector : public virtual slsDetectorDefs{
* @returns ADC Enable mask
*/
uint32_t getADCEnableMask();
/**
* Set ADC invert register (CTB, Moench)
* @param value ADC invert value
* @param detPos -1 for all detectors in list or specific detector position
*/
void setADCInvert(uint32_t value);
/**
* Get ADC invert register (CTB, Moench)
* @param detPos -1 for all detectors in list or specific detector position
* @returns ADC invert value
*/
uint32_t getADCInvert();
/**
* Set external sampling source (CTB only)
* @param value external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling source
*/
int setExternalSamplingSource(int value);
/**
* Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling source
*/
int getExternalSamplingSource();
/**
* Set external sampling enable (CTB only)
* @param value external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable
*/
int setExternalSampling(int value);
/**
* Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable
*/
int getExternalSampling();
/**
* Set external sampling enable (CTB only)
* @param list external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position
*/
void setReceiverDbitList(std::vector<int> list);
/**
* Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable
*/
std::vector<int> getReceiverDbitList();
/**
* Set digital data offset in bytes (CTB only)
* @param value digital data offset in bytes
* @returns digital data offset in bytes
*/
int setReceiverDbitOffset(int value);
/**
* Get digital data offset in bytes (CTB only)
* @returns digital data offset in bytes
*/
int getReceiverDbitOffset();
/**
* Write to ADC register (Gotthard, Jungfrau, ChipTestBoard). For expert users