get version number for receiver

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@414 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2012-12-18 14:34:29 +00:00
parent 1d9ae4e316
commit b62f3dc1dd
10 changed files with 104 additions and 19 deletions

View File

@ -287,7 +287,7 @@ enum idMode{
DETECTOR_FIRMWARE_VERSION, /**<return detector system firmware version */ DETECTOR_FIRMWARE_VERSION, /**<return detector system firmware version */
DETECTOR_SOFTWARE_VERSION, /**<return detector system software version */ DETECTOR_SOFTWARE_VERSION, /**<return detector system software version */
THIS_SOFTWARE_VERSION, /**<return this software version */ THIS_SOFTWARE_VERSION, /**<return this software version */
DETECTOR_FIRMWARE_SVN_VERSION /**<return detector system firmware svn version */ RECEIVER_VERSION /**<return receiver software version */
}; };
/** /**
detector digital test modes detector digital test modes

View File

@ -2,10 +2,10 @@
#define SVNURL "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware/gotthardDetectorServer" #define SVNURL "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware/gotthardDetectorServer"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define SVNREPUUID "951219d9-93cf-4727-9268-0efd64621fa3" #define SVNREPUUID "951219d9-93cf-4727-9268-0efd64621fa3"
//#define SVNREV 0x411 //#define SVNREV 0x413
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define SVNAUTH "bergamaschi" #define SVNAUTH "l_maliakal_d"
#define SVNREV 0x411 #define SVNREV 0x413
#define SVNDATE 0x20121217 #define SVNDATE 0x20121217
// //

View File

@ -2,10 +2,10 @@
#define MYTHENSVNURL "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware/mythenDetectorServer" #define MYTHENSVNURL "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware/mythenDetectorServer"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define MYTHENSVNREPUUID "951219d9-93cf-4727-9268-0efd64621fa3" #define MYTHENSVNREPUUID "951219d9-93cf-4727-9268-0efd64621fa3"
//#define SVNREV 0x411 //#define SVNREV 0x412
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define MYTHENSVNAUTH "bergamaschi" #define MYTHENSVNAUTH "l_maliakal_d"
#define MYTHENSVNREV 0x411 #define MYTHENSVNREV 0x412
#define MYTHENSVNDATE 0x20121217 #define MYTHENSVNDATE 0x20121217
// //

View File

@ -1563,9 +1563,10 @@ slsDetectorDefs::externalCommunicationMode slsDetector::setExternalCommunication
MODULE_FIRMWARE_VERSION, MODULE_FIRMWARE_VERSION,
DETECTOR_SERIAL_NUMBER, DETECTOR_SERIAL_NUMBER,
DETECTOR_FIRMWARE_VERSION, DETECTOR_FIRMWARE_VERSION,
DETECTOR_SOFTWARE_VERSION DETECTOR_SOFTWARE_VERSION,
THIS_SOFTWARE_VERSION,
RECEIVER_VERSION
}{}; }{};
*/ */
@ -1590,6 +1591,12 @@ int64_t slsDetector::getId( idMode mode, int imod){
ret=OK; ret=OK;
retval=SVNREVLIB; retval=SVNREVLIB;
retval=(retval<<32) | SVNDATELIB; retval=(retval<<32) | SVNDATELIB;
} else if (mode==RECEIVER_VERSION) {
if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) {
ret=thisReceiver->getInt(fnum,retval);
if(ret==FORCE_UPDATE)
ret=updateReceiver();
}
} else { } else {
if (thisDetector->onlineFlag==ONLINE_FLAG) { if (thisDetector->onlineFlag==ONLINE_FLAG) {
if (controlSocket) { if (controlSocket) {

View File

@ -416,7 +416,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSN; descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSN;
i++; i++;
descrToFuncMap[i].m_pFuncName="detectorsvnversion"; // descrToFuncMap[i].m_pFuncName="receiverversion"; //
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSN; descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSN;
i++; i++;
@ -2749,8 +2749,8 @@ string slsDetectorCommand::cmdSN(int narg, char *args[], int action) {
return string(answer); return string(answer);
} }
if (cmd=="detectorsvnversion") { if (cmd=="receiverversion") {
sprintf(answer,"%llx",myDet->getId(DETECTOR_FIRMWARE_SVN_VERSION)); sprintf(answer,"%llx",myDet->getId(RECEIVER_VERSION));
return string(answer); return string(answer);
} }
return string("unknown id mode ")+cmd; return string("unknown id mode ")+cmd;

View File

@ -2,10 +2,10 @@
#define SVNURLLIB "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware" #define SVNURLLIB "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define SVNREPUUIDLIB "951219d9-93cf-4727-9268-0efd64621fa3" #define SVNREPUUIDLIB "951219d9-93cf-4727-9268-0efd64621fa3"
//#define SVNREV 0x411 //#define SVNREV 0x413
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define SVNAUTHLIB "bergamaschi" #define SVNAUTHLIB "l_maliakal_d"
#define SVNREVLIB 0x411 #define SVNREVLIB 0x413
#define SVNDATELIB 0x20121217 #define SVNDATELIB 0x20121217
// //

View File

@ -5,7 +5,7 @@
#include "slsReceiver_funcs.h" #include "slsReceiver_funcs.h"
#include "slsReceiverFunctionList.h" #include "slsReceiverFunctionList.h"
#include "svnInfoReceiver.h"
#include <iostream> #include <iostream>
#include <string> #include <string>
@ -126,6 +126,7 @@ int slsReceiverFuncs::function_table(){
flist[F_RESET_FRAMES_CAUGHT] = &slsReceiverFuncs::reset_frames_caught; flist[F_RESET_FRAMES_CAUGHT] = &slsReceiverFuncs::reset_frames_caught;
flist[F_READ_FRAME] = &slsReceiverFuncs::read_frame; flist[F_READ_FRAME] = &slsReceiverFuncs::read_frame;
flist[F_ENABLE_FILE_WRITE] = &slsReceiverFuncs::enable_file_write; flist[F_ENABLE_FILE_WRITE] = &slsReceiverFuncs::enable_file_write;
flist[F_GET_ID] = &slsReceiverFuncs::get_version;
//General Functions //General Functions
flist[F_LOCK_SERVER] = &slsReceiverFuncs::lock_receiver; flist[F_LOCK_SERVER] = &slsReceiverFuncs::lock_receiver;
@ -537,7 +538,7 @@ int slsReceiverFuncs::get_status(){
retval=slsReceiverList->getStatus(); retval=slsReceiverList->getStatus();
#endif #endif
if(ret==OK && socket->differentClients){ if(socket->differentClients){
cout << "Force update" << endl; cout << "Force update" << endl;
ret=FORCE_UPDATE; ret=FORCE_UPDATE;
} }
@ -560,7 +561,7 @@ int slsReceiverFuncs::get_frames_caught(){
#ifdef SLS_RECEIVER_FUNCTION_LIST #ifdef SLS_RECEIVER_FUNCTION_LIST
retval=slsReceiverList->getTotalFramesCaught(); retval=slsReceiverList->getTotalFramesCaught();
#endif #endif
if(ret==OK && socket->differentClients){ if(socket->differentClients){
cout << "Force update" << endl; cout << "Force update" << endl;
ret=FORCE_UPDATE; ret=FORCE_UPDATE;
} }
@ -584,7 +585,7 @@ int slsReceiverFuncs::get_frame_index(){
retval=slsReceiverList->getAcquisitionIndex(); retval=slsReceiverList->getAcquisitionIndex();
#endif #endif
if(ret==OK && socket->differentClients){ if(socket->differentClients){
cout << "Force update" << endl; cout << "Force update" << endl;
ret=FORCE_UPDATE; ret=FORCE_UPDATE;
} }
@ -801,6 +802,58 @@ int slsReceiverFuncs::enable_file_write(){
//return ok/fail //return ok/fail
return ret; return ret;
} }
int slsReceiverFuncs::get_version(){
ret=OK;
int64_t retval=-1;
// execute action if the arguments correctly arrived
#ifdef SLS_RECEIVER_FUNCTION_LIST
retval= SVNREV;
retval= (retval <<32) | SVNDATE;
#endif
if(socket->differentClients){
cout << "Force update" << endl;
ret=FORCE_UPDATE;
}
// send answer
socket->SendDataOnly(&ret,sizeof(ret));
socket->SendDataOnly(&retval,sizeof(retval));
//return ok/fail
return ret;
}

View File

@ -80,6 +80,9 @@ public:
/** Enable File Write*/ /** Enable File Write*/
int enable_file_write(); int enable_file_write();
/** Get Version */
int get_version();
//General Functions //General Functions
/** Locks Receiver */ /** Locks Receiver */
int lock_receiver(); int lock_receiver();

View File

@ -104,6 +104,21 @@ int receiverInterface::getInt(int fnum, int &retval){
int receiverInterface::getInt(int fnum, int64_t &retval){
int ret = slsDetectorDefs::FAIL;
if (dataSocket) {
if (dataSocket->Connect()>=0) {
dataSocket->SendDataOnly(&fnum,sizeof(fnum));
dataSocket->ReceiveDataOnly(&ret,sizeof(ret));
dataSocket->ReceiveDataOnly(&retval,sizeof(retval));
}
dataSocket->Disconnect();
}
return ret;
}
int receiverInterface::getLastClientIP(int fnum, char retval[]){ int receiverInterface::getLastClientIP(int fnum, char retval[]){
int ret = slsDetectorDefs::FAIL; int ret = slsDetectorDefs::FAIL;

View File

@ -77,6 +77,13 @@ public:
*/ */
int getInt(int fnum, int &retval); int getInt(int fnum, int &retval);
/**
* Get an integer value from receiver
* @param fnum function enum to determine what parameter
* @param retval return value
* \returns success of operation
*/
int getInt(int fnum, int64_t &retval);
/** /**
* Get last client ip connected to receiver * Get last client ip connected to receiver