reducing changes of segmentation for null string, syntax of receiver call backs

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@505 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2013-04-10 13:34:10 +00:00
parent 8088e6231e
commit 02376bbc62
9 changed files with 28 additions and 30 deletions

View File

@ -96,7 +96,6 @@ int multiSlsDetector::initSharedMemory(int id=0) {
multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1)
{
cout << "Contrustor" << endl;
while (shmId<0) {
shmId=initSharedMemory(id);
id++;
@ -4394,7 +4393,6 @@ int* multiSlsDetector::readFrameFromReceiver(char* fName, int &fIndex){
int *retdet, *p=retval;
string fullFName="";
string ext="";
char * pch;
for (int id=0; id<thisMultiDetector->numberOfDetectors; id++) {
@ -4413,7 +4411,10 @@ int* multiSlsDetector::readFrameFromReceiver(char* fName, int &fIndex){
if (strrchr(fName,'.')!=NULL){
ext.assign(fName);
size_t dot = ext.rfind(".");
ext = ext.erase(0,dot);
if(dot != string::npos)
ext = ext.erase(0,dot);
else
ext = "";
}
}
fullFName.append(getReceiverFileNameToConcatenate(fName));

View File

@ -2565,7 +2565,7 @@ string slsDetectorCommand::cmdDetectorSize(int narg, char *args[], int action) {
return helpDetectorSize(narg,args,action);
ROI allroi[val];
pos=2;
for(int i=0;i<val;i++){
for(i=0;i<val;i++){
if ((!sscanf(args[pos++],"%d",&allroi[i].xmin)) ||
(!sscanf(args[pos++],"%d",&allroi[i].xmax)) ||
(!sscanf(args[pos++],"%d",&allroi[i].ymin)) ||
@ -2829,6 +2829,7 @@ string slsDetectorCommand::helpSN(int narg, char *args[], int action) {
os << "detectorversion \n gets the firmware version of the detector"<< std::endl;
os << "softwareversion \n gets the software version of the detector"<< std::endl;
os << "thisversion \n gets the version of this software"<< std::endl;
os << "receiverversion \n gets the version of the receiver"<< std::endl;
}
return os.str();

View File

@ -278,16 +278,17 @@ class fileIOStatic {
\returns file name without file name prefix, detector index or extension
*/
static string getReceiverFileNameToConcatenate(string fname) { \
int i; \
string s; \
s=fname; \
//int i;
string s=fname; \
if(fname.empty()) return fname; \
size_t slash=s.rfind("/"); \
if (slash!= string::npos) \
s=s.substr(slash,s.size()-slash); \
size_t dot=s.find("."); \
size_t uscore=s.find("_"); \
s=s.substr(uscore,dot-uscore); \
uscore=s.find("_",1); \
if ((dot!= string::npos)&&(uscore!= string::npos)) \
s=s.substr(uscore,dot-uscore); \
// uscore=s.find("_",1);
//if ((uscore!= string::npos) && (sscanf( s.substr(1,uscore-1).c_str(),"d%d",&i)))
//s=s.substr(uscore,s.size()-uscore);
return s; \

View File

@ -399,7 +399,7 @@ int slsReceiverFunctionList::startWriting(){
#endif
char *wbuf;
int ret,sleepnumber=0;
int sleepnumber=0;
framesInFile=0;
framesCaught=0;

View File

@ -1,4 +1,4 @@
//#ifdef SLS_RECEIVER_FUNCTION_LIST
#ifdef SLS_RECEIVER_FUNCTION_LIST
#ifndef SLS_RECEIVER_FUNCTION_LIST_H
#define SLS_RECEIVER_FUNCTION_LIST_H
@ -111,7 +111,7 @@ public:
* Set Frame Index Needed
* @param i frame index needed
*/
int setFrameIndexNeeded(int i){frameIndexNeeded = i;};
int setFrameIndexNeeded(int i){frameIndexNeeded = i; return frameIndexNeeded;};
/**
* Set enable file write
@ -371,7 +371,7 @@ public:
toatal frames caught
*/
int registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){acquisitionFinishedCallBack=func; pAcquisitionFinished=arg;};
void registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){acquisitionFinishedCallBack=func; pAcquisitionFinished=arg;};
@ -382,7 +382,7 @@ public:
file descriptor
guidatapointer (NULL, no data required)
*/
int registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){rawDataReadyCallBack=func; pRawDataReady=arg;};
void registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){rawDataReadyCallBack=func; pRawDataReady=arg;};
@ -392,4 +392,4 @@ public:
#endif
//#endif
#endif

View File

@ -25,12 +25,12 @@ void slsReceiverUsers::registerCallBackStartAcquisition(int (*func)(char*, char*
int slsReceiverUsers::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){
void slsReceiverUsers::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){
receiver->registerCallBackAcquisitionFinished(func,arg);
}
int slsReceiverUsers::registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){
void slsReceiverUsers::registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){
receiver->registerCallBackRawDataReady(func,arg);
}

View File

@ -58,7 +58,7 @@ public:
*/
int registerCallBackAcquisitionFinished(void (*func)(int nf, void*),void *arg);
void registerCallBackAcquisitionFinished(void (*func)(int nf, void*),void *arg);
@ -68,7 +68,7 @@ public:
\returns nothing
*/
int registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, FILE* filedescriptor, char* guidatapointer, void*),void *arg);
void registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, FILE* filedescriptor, char* guidatapointer, void*),void *arg);
private:

View File

@ -24,7 +24,7 @@ slsReceiverFuncs::~slsReceiverFuncs() {
slsReceiverFuncs::closeFile(0);
cout << "Goodbye!" << endl;
delete socket;
if(socket) delete socket;
}
@ -34,15 +34,14 @@ slsReceiverFuncs::slsReceiverFuncs(int argc, char *argv[], int &success):
ret(OK),
lockStatus(0),
shortFrame(-1),
packetsPerFrame(2){
packetsPerFrame(PACKETS_PER_FRAME){
int port_no = DEFAULT_PORTNO+2;
ifstream infile;
string sLine,sargname;
int iline = 0;
success=slsDetectorDefs::OK;
success=OK;
string fname = "";
//parse command line for config
@ -260,8 +259,6 @@ int slsReceiverFuncs::M_nofunc(){
void slsReceiverFuncs::closeFile(int p){
char *buf;
char buffer[1];
if(slsReceiverFunctionList::listening_thread_running)
@ -723,7 +720,6 @@ int slsReceiverFuncs::get_frame_index(){
int slsReceiverFuncs::reset_frames_caught(){
ret=OK;
int index=-1;
strcpy(mess,"Could not reset frames caught\n");
@ -759,7 +755,7 @@ int slsReceiverFuncs::reset_frames_caught(){
int slsReceiverFuncs::read_frame(){
ret=OK;
char fName[MAX_STR_LENGTH];
char fName[MAX_STR_LENGTH]="";
int arg = -1,i;
//retval is a full frame
@ -777,7 +773,6 @@ int slsReceiverFuncs::read_frame(){
int bufferSize = BUFFER_SIZE;
if(shortFrame!=-1)
bufferSize=SHORT_BUFFER_SIZE;
int nel = bufferSize/(sizeof(int));
char* raw = new char[bufferSize];
int* origVal = new int[rnel];

View File

@ -63,7 +63,7 @@ public:
*/
int registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){slsReceiverList->registerCallBackAcquisitionFinished(func,arg);};
void registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){slsReceiverList->registerCallBackAcquisitionFinished(func,arg);};
@ -75,7 +75,7 @@ public:
guidatapointer (NULL, no data required)
*/
int registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){slsReceiverList->registerCallBackRawDataReady(func,arg);};
void registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){slsReceiverList->registerCallBackRawDataReady(func,arg);};
private: