slsReceiver bug fix affecting Jungfrau receivers as root (optlen size as int), but setting buffer size is uint32_t size. setting it to uint64_t

This commit is contained in:
2019-03-04 09:41:20 +01:00
parent 8939e23622
commit 08bd2378f4
11 changed files with 45 additions and 44 deletions

View File

@ -2002,7 +2002,7 @@ int multiSlsDetector::setDetectorMode(detectorModeType value, int detPos) {
return getDetectorModeType(result);
}
int multiSlsDetector::setReceiverUDPSocketBufferSize(int udpsockbufsize, int detPos) {
uint64_t multiSlsDetector::setReceiverUDPSocketBufferSize(uint64_t udpsockbufsize, int detPos) {
// single
if (detPos >= 0) {
return detectors[detPos]->setReceiverUDPSocketBufferSize(udpsockbufsize);
@ -2013,7 +2013,7 @@ int multiSlsDetector::setReceiverUDPSocketBufferSize(int udpsockbufsize, int det
return sls::minusOneIfDifferent(r);
}
int multiSlsDetector::getReceiverUDPSocketBufferSize(int detPos) {
uint64_t multiSlsDetector::getReceiverUDPSocketBufferSize(int detPos) {
// single
if (detPos >= 0) {
return detectors[detPos]->getReceiverUDPSocketBufferSize();
@ -2024,7 +2024,7 @@ int multiSlsDetector::getReceiverUDPSocketBufferSize(int detPos) {
return sls::minusOneIfDifferent(r);
}
int multiSlsDetector::getReceiverRealUDPSocketBufferSize(int detPos) {
uint64_t multiSlsDetector::getReceiverRealUDPSocketBufferSize(int detPos) {
// single
if (detPos >= 0) {
return detectors[detPos]->getReceiverRealUDPSocketBufferSize();

View File

@ -1117,21 +1117,21 @@ class multiSlsDetector : public virtual slsDetectorDefs,
* @param detPos -1 for all detectors in list or specific detector position
* @returns receiver udp socket buffer size
*/
int setReceiverUDPSocketBufferSize(int udpsockbufsize=-1, int detPos = -1);
uint64_t setReceiverUDPSocketBufferSize(uint64_t udpsockbufsize=-1, int detPos = -1);
/**
* Returns the receiver UDP socket buffer size
* @param detPos -1 for all detectors in list or specific detector position
* @returns the receiver UDP socket buffer size
*/
int getReceiverUDPSocketBufferSize(int detPos = -1) ;
uint64_t getReceiverUDPSocketBufferSize(int detPos = -1) ;
/**
* Returns the receiver real UDP socket buffer size
* @param detPos -1 for all detectors in list or specific detector position
* @returns the receiver real UDP socket buffer size
*/
int getReceiverRealUDPSocketBufferSize(int detPos = -1);
uint64_t getReceiverRealUDPSocketBufferSize(int detPos = -1);
/** (users only)
* Set 10GbE Flow Control (Eiger)

View File

@ -2842,11 +2842,11 @@ std::string slsDetector::getAdditionalJsonParameter(const std::string& key) {
return std::string("");
}
int slsDetector::setReceiverUDPSocketBufferSize(int udpsockbufsize) {
uint64_t slsDetector::setReceiverUDPSocketBufferSize(uint64_t udpsockbufsize) {
int fnum = F_RECEIVER_UDP_SOCK_BUF_SIZE;
int ret = FAIL;
int arg = udpsockbufsize;
int retval = -1;
uint64_t arg = udpsockbufsize;
uint64_t retval = -1;
FILE_LOG(logDEBUG1) << "Sending UDP Socket Buffer size to receiver: " << arg;
if (thisDetector->receiverOnlineFlag == ONLINE_FLAG) {
@ -2865,14 +2865,14 @@ int slsDetector::setReceiverUDPSocketBufferSize(int udpsockbufsize) {
return retval;
}
int slsDetector::getReceiverUDPSocketBufferSize() {
uint64_t slsDetector::getReceiverUDPSocketBufferSize() {
return setReceiverUDPSocketBufferSize();
}
int slsDetector::getReceiverRealUDPSocketBufferSize() {
uint64_t slsDetector::getReceiverRealUDPSocketBufferSize() {
int fnum = F_RECEIVER_REAL_UDP_SOCK_BUF_SIZE;
int ret = FAIL;
int retval = -1;
uint64_t retval = -1;
FILE_LOG(logDEBUG1) << "Getting real UDP Socket Buffer size to receiver";
if (thisDetector->receiverOnlineFlag == ONLINE_FLAG) {

View File

@ -999,19 +999,19 @@ public:
* @param udpsockbufsize additional json header
* @returns receiver udp socket buffer size
*/
int setReceiverUDPSocketBufferSize(int udpsockbufsize=-1);
uint64_t setReceiverUDPSocketBufferSize(uint64_t udpsockbufsize=-1);
/**
* Returns the receiver UDP socket buffer size\sa sharedSlsDetector
* @returns the receiver UDP socket buffer size
*/
int getReceiverUDPSocketBufferSize() ;
uint64_t getReceiverUDPSocketBufferSize() ;
/**
* Returns the receiver real UDP socket buffer size\sa sharedSlsDetector
* @returns the receiver real UDP socket buffer size
*/
int getReceiverRealUDPSocketBufferSize();
uint64_t getReceiverRealUDPSocketBufferSize();
/**
* Execute a digital test (Gotthard, Mythen)

View File

@ -2829,18 +2829,19 @@ std::string slsDetectorCommand::cmdNetworkParameter(int narg, char *args[], int
return ans;
} else if (cmd == "rx_udpsocksize") {
if (action == PUT_ACTION) {
if (!(sscanf(args[1], "%d", &i))) {
uint64_t ival = -1;
if (!(sscanf(args[1], "%ld", &ival))) {
return ("cannot parse argument") + std::string(args[1]);
}
myDet->setReceiverUDPSocketBufferSize(i, detPos);
myDet->setReceiverUDPSocketBufferSize(ival, detPos);
}
sprintf(ans, "%d", myDet->getReceiverUDPSocketBufferSize(detPos));
sprintf(ans, "%ld", myDet->getReceiverUDPSocketBufferSize(detPos));
return ans;
} else if (cmd == "rx_realudpsocksize") {
if (action == PUT_ACTION) {
return ("cannot put!");
}
sprintf(ans, "%d", myDet->getReceiverRealUDPSocketBufferSize(detPos));
sprintf(ans, "%ld", myDet->getReceiverRealUDPSocketBufferSize(detPos));
return ans;
} else if (cmd == "txndelay_left") {
networkParameter t = DETECTOR_TXN_DELAY_LEFT;