diff --git a/slsReceiverSoftware/slsReceiver/slsReceiver.cpp b/slsReceiverSoftware/slsReceiver/slsReceiver.cpp index cd5ab551d..f044f7b7f 100644 --- a/slsReceiverSoftware/slsReceiver/slsReceiver.cpp +++ b/slsReceiverSoftware/slsReceiver/slsReceiver.cpp @@ -18,9 +18,8 @@ using namespace std; slsReceiver::slsReceiver(int argc, char *argv[], int &success){ //creating base receiver cout << "SLS Receiver" << endl; - receiverBase = new slsReceiverUDPFunctions(); int tcpip_port_no=-1; - + bool bottom = false; ifstream infile; @@ -116,6 +115,31 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){ } } } + + //mode top:bottom + else if(!strcasecmp(argv[iarg],"-mode")){ + if(iarg+1==argc){ + cout << "no mode given after -mode in command line. Exiting." << endl; + success=FAIL; + }else{ + if(!strcasecmp(argv[iarg+1],"bottom")){ + cout<<"mode: bottom"< #include #include +#include //linux5 +#define be64toh(x) __bswap_64 (x) //linux5 +//#include //linux6 using namespace std; @@ -28,7 +31,7 @@ slsReceiverTCPIPInterface::~slsReceiverTCPIPInterface() { } -slsReceiverTCPIPInterface::slsReceiverTCPIPInterface(int &success, slsReceiverBase* rbase, int pn): +slsReceiverTCPIPInterface::slsReceiverTCPIPInterface(int &success, slsReceiverBase* rbase, int pn, bool bot): myDetectorType(GOTTHARD), receiverBase(rbase), ret(OK), @@ -38,7 +41,8 @@ slsReceiverTCPIPInterface::slsReceiverTCPIPInterface(int &success, slsReceiverBa dynamicrange(16), socket(NULL), killTCPServerThread(0), - tenGigaEnable(0), portNumber(DEFAULT_PORTNO+2){ + tenGigaEnable(0), portNumber(DEFAULT_PORTNO+2), + bottom(bot){ int port_no=portNumber; @@ -1336,7 +1340,7 @@ int slsReceiverTCPIPInterface::eiger_read_frame(){ } /**proper frame*/ - else{ + else{//cout<<"**** got proper frame ******"<> 8) & 0x00FF00FF00FF00FFULL ); temp = ((temp << 16) & 0xFFFF0000FFFF0000ULL ) | ((temp >> 16) & 0x0000FFFF0000FFFFULL ); temp = (temp << 32) | ((temp >> 32) & 0xFFFFFFFFULL); (*(((uint64_t*)retval)+i)) = temp; + */ } -/* - ( (((val) >> 56) & 0x00000000000000FF) | (((val) >> 40) & 0x000000000000FF00) | \ - (((val) >> 24) & 0x0000000000FF0000) | (((val) >> 8) & 0x00000000FF000000) | \ - (((val) << 8) & 0x000000FF00000000) | (((val) << 24) & 0x0000FF0000000000) | \ - (((val) << 40) & 0x00FF000000000000) | (((val) << 56) & 0xFF00000000000000) ) - */ - /* - for(i=0;i<(1024*(16*dynamicrange)*2)/4;i++) - (*(((uint32_t*)retval)+i)) = htonl((uint32_t)(*(((uint32_t*)retval)+i))); - */ arg = index-startIndex; } } diff --git a/slsReceiverSoftware/slsReceiver/slsReceiverTCPIPInterface.h b/slsReceiverSoftware/slsReceiver/slsReceiverTCPIPInterface.h index 423d0949a..ccd27c255 100644 --- a/slsReceiverSoftware/slsReceiver/slsReceiverTCPIPInterface.h +++ b/slsReceiverSoftware/slsReceiver/slsReceiverTCPIPInterface.h @@ -26,8 +26,9 @@ public: * @param succecc socket creation was successfull * @param rbase pointer to the receiver base * @param pn port number (defaults to default port number) + * @param bot mode is bottom if true, else its a top half module */ - slsReceiverTCPIPInterface(int &success, slsReceiverBase* rbase, int pn=-1); + slsReceiverTCPIPInterface(int &success, slsReceiverBase* rbase, int pn=-1, bool bot=false); /** * Sets the port number to listen to. @@ -272,6 +273,9 @@ private: /** port number */ int portNumber; + /** true if bottom half module for eiger */ + bool bottom; + protected: /** Socket */ diff --git a/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.cpp b/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.cpp index 388272b6b..aa9458377 100644 --- a/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.cpp +++ b/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.cpp @@ -31,13 +31,14 @@ using namespace std; -slsReceiverUDPFunctions::slsReceiverUDPFunctions(): +slsReceiverUDPFunctions::slsReceiverUDPFunctions(bool bot): thread_started(0), eth(NULL), latestData(NULL), guiFileName(NULL), guiFrameNumber(0), - tengigaEnable(0){ + tengigaEnable(0), + bottom(bot){ for(int i=0;igetErrorStatus(); if(!iret) - cout << "UDP port opened at port " << server_port[i] << endl; + cout << "UDP port opened at port " << port[i] << endl; else{ #ifdef VERBOSE - cout << "Could not create UDP socket on port " << server_port[i] << " error:" << iret << endl; + cout << "Could not create UDP socket on port " << port[i] << " error:" << iret << endl; #endif return FAIL; } @@ -1351,7 +1357,7 @@ int slsReceiverUDPFunctions::startReceiver(char message[]){ cout << endl << message << endl; return FAIL; } - cout << "UDP socket(s) created successfully. 1st port " << server_port[0] << endl; + cout << "UDP socket(s) created successfully." << endl; if(setupWriter() == FAIL){ @@ -1540,9 +1546,9 @@ int slsReceiverUDPFunctions::startListening(){ expected = maxBufferSize - carryonBufferSize; } -#ifdef VERYDEBUG +//#ifdef VERYDEBUG cout << ithread << " *** rc:" << dec << rc << ". expected:" << dec << expected << endl; -#endif +//#endif @@ -1954,9 +1960,9 @@ int i; #endif pthread_mutex_unlock(&(status_mutex)); -#ifdef VERYDEBUG +//#ifdef VERYDEBUG cout << ithread << ": Frames listened to " << dec << ((totalListeningFrameCount[ithread]*numListeningThreads)/packetsPerFrame) << endl; -#endif +//#endif //waiting for all listening threads to be done, to print final count of frames listened to if(ithread == 0){ diff --git a/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.h b/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.h index 20c5d7633..d0efecfc3 100644 --- a/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.h +++ b/slsReceiverSoftware/slsReceiver/slsReceiverUDPFunctions.h @@ -40,7 +40,7 @@ public: /** * Constructor */ - slsReceiverUDPFunctions(); + slsReceiverUDPFunctions(bool bot); /** * Destructor @@ -768,6 +768,9 @@ private: * 2 we open, close, write file, callback does not do anything */ int cbAction; + /** true if bottom half module for eiger */ + bool bottom; + public: