mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 13:27:14 +02:00
included a current frame index whch is different than file frame index for gotthard, even when readout through blackfin, for mythen both will alwys be incrememnted by one; gotthard server all of them should be consistent for 32 bit
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@425 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
@ -1,6 +1,9 @@
|
|||||||
#ifndef COMMUNICATION_FUNCS_H
|
#ifndef COMMUNICATION_FUNCS_H
|
||||||
#define COMMUNICATION_FUNCS_H
|
#define COMMUNICATION_FUNCS_H
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
|
||||||
#define SEND_REC_MAX_SIZE 4096
|
#define SEND_REC_MAX_SIZE 4096
|
||||||
#define DEFAULT_PORTNO 1952
|
#define DEFAULT_PORTNO 1952
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
#define FIRMWARE_FUNCS_H
|
#define FIRMWARE_FUNCS_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
#define REGISTERS_G_H
|
#define REGISTERS_G_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
|
||||||
/* Definitions for FPGA*/
|
/* Definitions for FPGA*/
|
||||||
#define CSP0 0x20200000
|
#define CSP0 0x20200000
|
||||||
#define MEM_SIZE 0x100000
|
#define MEM_SIZE 0x100000
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
/* A simple server in the internet domain using TCP
|
/* A simple server in the internet domain using TCP
|
||||||
The port number is passed as an argument */
|
The port number is passed as an argument */
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
#include "communication_funcs.h"
|
#include "communication_funcs.h"
|
||||||
#include "server_funcs.h"
|
#include "server_funcs.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
#ifndef SERVER_FUNCS_H
|
#ifndef SERVER_FUNCS_H
|
||||||
#define SERVER_FUNCS_H
|
#define SERVER_FUNCS_H
|
||||||
|
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
/*
|
/*
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef SM
|
#ifndef SM
|
||||||
#define SM
|
#define SM
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
/* A simple server in the internet domain using TCP
|
/* A simple server in the internet domain using TCP
|
||||||
The port number is passed as an argument */
|
The port number is passed as an argument */
|
||||||
|
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
|
|
||||||
#include "communication_funcs.h"
|
#include "communication_funcs.h"
|
||||||
#include "firmware_funcs.h"
|
#include "firmware_funcs.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
#ifndef TRIMMING_FUNCS_H
|
#ifndef TRIMMING_FUNCS_H
|
||||||
#define TRIMMING_FUNCS_H
|
#define TRIMMING_FUNCS_H
|
||||||
|
|
||||||
|
#include "sls_detector_defs.h"
|
||||||
|
|
||||||
int trim_fixed_settings(int countlim, int par2, int imod);
|
int trim_fixed_settings(int countlim, int par2, int imod);
|
||||||
int trim_with_noise(int countlim, int nsigma, int imod);
|
int trim_with_noise(int countlim, int nsigma, int imod);
|
||||||
int trim_with_beam(int countlim, int nsigma, int imod);
|
int trim_with_beam(int countlim, int nsigma, int imod);
|
||||||
|
@ -3701,11 +3701,11 @@ int multiSlsDetector::getFramesCaughtByReceiver() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int multiSlsDetector::getCurrentFrameIndex() {
|
int multiSlsDetector::getReceiverCurrentFrameIndex() {
|
||||||
int ret=0,ret1=0;
|
int ret=0,ret1=0;
|
||||||
for (int i=0; i<thisMultiDetector->numberOfDetectors; i++)
|
for (int i=0; i<thisMultiDetector->numberOfDetectors; i++)
|
||||||
if (detectors[i])
|
if (detectors[i])
|
||||||
ret1+=detectors[i]->getCurrentFrameIndex();
|
ret1+=detectors[i]->getReceiverCurrentFrameIndex();
|
||||||
|
|
||||||
if(!thisMultiDetector->numberOfDetectors)
|
if(!thisMultiDetector->numberOfDetectors)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1084,7 +1084,7 @@ class multiSlsDetector : public slsDetectorUtils {
|
|||||||
/** gets the current frame index of receiver
|
/** gets the current frame index of receiver
|
||||||
\returns current frame index of receiver
|
\returns current frame index of receiver
|
||||||
*/
|
*/
|
||||||
int getCurrentFrameIndex();
|
int getReceiverCurrentFrameIndex();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* resets framescaught
|
* resets framescaught
|
||||||
|
@ -5773,7 +5773,7 @@ int slsDetector::getFramesCaughtByReceiver(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int slsDetector::getCurrentFrameIndex(){
|
int slsDetector::getReceiverCurrentFrameIndex(){
|
||||||
int fnum=F_GET_FRAME_INDEX;
|
int fnum=F_GET_FRAME_INDEX;
|
||||||
int ret = FAIL;
|
int ret = FAIL;
|
||||||
int retval=-1;
|
int retval=-1;
|
||||||
|
@ -1461,7 +1461,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
|
|||||||
/** gets the current frame index of receiver
|
/** gets the current frame index of receiver
|
||||||
\returns current frame index of receiver
|
\returns current frame index of receiver
|
||||||
*/
|
*/
|
||||||
int getCurrentFrameIndex();
|
int getReceiverCurrentFrameIndex();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* resets framescaught
|
* resets framescaught
|
||||||
|
@ -455,7 +455,7 @@ class slsDetectorBase : public virtual slsDetectorDefs {
|
|||||||
/**
|
/**
|
||||||
\returns current frame index of receiver
|
\returns current frame index of receiver
|
||||||
*/
|
*/
|
||||||
virtual int getCurrentFrameIndex()=0;
|
virtual int getReceiverCurrentFrameIndex()=0;
|
||||||
|
|
||||||
/** Locks/Unlocks the connection to the receiver
|
/** Locks/Unlocks the connection to the receiver
|
||||||
/param lock sets (1), usets (0), gets (-1) the lock
|
/param lock sets (1), usets (0), gets (-1) the lock
|
||||||
|
@ -3609,7 +3609,7 @@ string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action) {
|
|||||||
if (action==PUT_ACTION)
|
if (action==PUT_ACTION)
|
||||||
return string("cannot put");
|
return string("cannot put");
|
||||||
else{
|
else{
|
||||||
sprintf(answer,"%d",myDet->getCurrentFrameIndex());
|
sprintf(answer,"%d",myDet->getReceiverCurrentFrameIndex());
|
||||||
return string(answer);
|
return string(answer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -233,6 +233,7 @@ void slsDetectorUtils::acquire(int delflag){
|
|||||||
get_i0(0, IOarg);
|
get_i0(0, IOarg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setCurrentFrameIndex(0);
|
||||||
if ((timerValue[FRAME_NUMBER]*timerValue[CYCLES_NUMBER])>1) {
|
if ((timerValue[FRAME_NUMBER]*timerValue[CYCLES_NUMBER])>1) {
|
||||||
setFrameIndex(0);
|
setFrameIndex(0);
|
||||||
} else {
|
} else {
|
||||||
|
@ -620,7 +620,7 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing {
|
|||||||
/**
|
/**
|
||||||
\returns current frame index of receiver
|
\returns current frame index of receiver
|
||||||
*/
|
*/
|
||||||
virtual int getCurrentFrameIndex()=0;
|
virtual int getReceiverCurrentFrameIndex()=0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* resets framescaught
|
* resets framescaught
|
||||||
|
@ -30,7 +30,7 @@ class fileIO : public fileIOStatic, public virtual slsDetectorBase {
|
|||||||
|
|
||||||
|
|
||||||
/** default constructor */
|
/** default constructor */
|
||||||
fileIO(): fileIOStatic(){frameIndex=-1;detIndex=-1; framesPerFile=&nframes; nframes=1; };
|
fileIO(): fileIOStatic(){currentFrameIndex=-1;frameIndex=-1;detIndex=-1; framesPerFile=&nframes; nframes=1; };
|
||||||
|
|
||||||
/** virtual destructor */
|
/** virtual destructor */
|
||||||
virtual ~fileIO(){};
|
virtual ~fileIO(){};
|
||||||
@ -65,12 +65,19 @@ class fileIO : public fileIOStatic, public virtual slsDetectorBase {
|
|||||||
virtual int setFileIndex(int i) {*fileIndex=i; return *fileIndex;};
|
virtual int setFileIndex(int i) {*fileIndex=i; return *fileIndex;};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
sets the default output file index
|
sets the default output file frame index
|
||||||
\param i frame index to be set
|
\param i file frame index to be set
|
||||||
\returns actual frame index
|
\returns actual file frame index
|
||||||
*/
|
*/
|
||||||
virtual int setFrameIndex(int i) {frameIndex=i; return frameIndex;};
|
virtual int setFrameIndex(int i) {frameIndex=i; return frameIndex;};
|
||||||
|
|
||||||
|
/**
|
||||||
|
sets the default output current frame index
|
||||||
|
\param i current frame index to be set
|
||||||
|
\returns actual current frame index
|
||||||
|
*/
|
||||||
|
virtual int setCurrentFrameIndex(int i) {currentFrameIndex=i; return currentFrameIndex;};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
sets the default output file index
|
sets the default output file index
|
||||||
\param i frame index to be set
|
\param i frame index to be set
|
||||||
@ -101,15 +108,25 @@ class fileIO : public fileIOStatic, public virtual slsDetectorBase {
|
|||||||
virtual int getFileIndex() {return *fileIndex;};
|
virtual int getFileIndex() {return *fileIndex;};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\returns the output frame index
|
\returns the output file frame index
|
||||||
*/
|
*/
|
||||||
virtual int getFrameIndex() {return frameIndex;};
|
virtual int getFrameIndex() {return frameIndex;};
|
||||||
|
|
||||||
|
/**
|
||||||
|
\returns the output current frame index
|
||||||
|
*/
|
||||||
|
virtual int getCurrentFrameIndex() {return currentFrameIndex;};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\returns the detector index
|
\returns the detector index
|
||||||
*/
|
*/
|
||||||
virtual int getDetectorIndex() {return detIndex;};
|
virtual int getDetectorIndex() {return detIndex;};
|
||||||
|
|
||||||
|
/**
|
||||||
|
\returns the max frames per file
|
||||||
|
*/
|
||||||
|
virtual int getFramesPerFile() {return *framesPerFile;};
|
||||||
|
|
||||||
|
|
||||||
string createFileName();
|
string createFileName();
|
||||||
|
|
||||||
@ -259,7 +276,9 @@ yes */
|
|||||||
|
|
||||||
void incrementFileIndex() { (*fileIndex)++; };
|
void incrementFileIndex() { (*fileIndex)++; };
|
||||||
|
|
||||||
void incrementFrameIndex() { (frameIndex)++; };
|
void incrementFrameIndex(int i) { frameIndex=frameIndex+i; };
|
||||||
|
|
||||||
|
void incrementCurrentFrameIndex() { (currentFrameIndex)++; };
|
||||||
|
|
||||||
void incrementDetectorIndex() { (detIndex)++; };
|
void incrementDetectorIndex() { (detIndex)++; };
|
||||||
|
|
||||||
@ -279,8 +298,10 @@ yes */
|
|||||||
char *fileName;
|
char *fileName;
|
||||||
/** file index */
|
/** file index */
|
||||||
int *fileIndex;
|
int *fileIndex;
|
||||||
/** frame index */
|
/** file frame index */
|
||||||
int frameIndex;
|
int frameIndex;
|
||||||
|
/** current frame index */
|
||||||
|
int currentFrameIndex;
|
||||||
/** detector id */
|
/** detector id */
|
||||||
int detIndex;
|
int detIndex;
|
||||||
/** frames per file */
|
/** frames per file */
|
||||||
|
@ -119,7 +119,7 @@ void postProcessing::processFrame(int *myData, int delflag) {
|
|||||||
//uses static function?!?!?!?
|
//uses static function?!?!?!?
|
||||||
writeDataFile (fname+string(".raw"),fdata, NULL, NULL, 'i');
|
writeDataFile (fname+string(".raw"),fdata, NULL, NULL, 'i');
|
||||||
} else {
|
} else {
|
||||||
writeDataFile ((void*)myData, frameIndex);
|
writeDataFile ((void*)myData, currentFrameIndex);
|
||||||
}
|
}
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cout << "done " << endl;
|
cout << "done " << endl;
|
||||||
@ -131,14 +131,22 @@ void postProcessing::processFrame(int *myData, int delflag) {
|
|||||||
} else
|
} else
|
||||||
if (dataReady){
|
if (dataReady){
|
||||||
thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels());
|
thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels());
|
||||||
dataReady(thisData, -1, pCallbackArg);
|
dataReady(thisData, currentFrameIndex, pCallbackArg);
|
||||||
delete thisData;
|
delete thisData;
|
||||||
fdata=NULL;
|
fdata=NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getFrameIndex()>=0)
|
incrementCurrentFrameIndex();
|
||||||
incrementFrameIndex();
|
if (getFrameIndex()>=0){
|
||||||
|
if (getDetectorsType()==MYTHEN)
|
||||||
|
incrementFrameIndex(1);
|
||||||
|
else if((currentFrameIndex%getFramesPerFile())==0)
|
||||||
|
incrementFrameIndex(getFramesPerFile());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -243,7 +251,7 @@ void postProcessing::doProcessing(double *lfdata, int delflag, string fname) {
|
|||||||
|
|
||||||
if (dataReady) {
|
if (dataReady) {
|
||||||
thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np);
|
thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np);
|
||||||
dataReady(thisData, -1, pCallbackArg);
|
dataReady(thisData, currentFrameIndex, pCallbackArg);
|
||||||
delete thisData;
|
delete thisData;
|
||||||
ang=NULL;
|
ang=NULL;
|
||||||
val=NULL;
|
val=NULL;
|
||||||
@ -386,7 +394,7 @@ void* postProcessing::processData(int delflag) {
|
|||||||
//receiver
|
//receiver
|
||||||
else{
|
else{
|
||||||
pthread_mutex_lock(&mg);
|
pthread_mutex_lock(&mg);
|
||||||
int prevCaught=getCurrentFrameIndex();
|
int prevCaught=getReceiverCurrentFrameIndex();
|
||||||
pthread_mutex_unlock(&mg);
|
pthread_mutex_unlock(&mg);
|
||||||
|
|
||||||
int caught=0;
|
int caught=0;
|
||||||
@ -400,7 +408,7 @@ void* postProcessing::processData(int delflag) {
|
|||||||
usleep(200000);
|
usleep(200000);
|
||||||
|
|
||||||
pthread_mutex_lock(&mg);
|
pthread_mutex_lock(&mg);
|
||||||
caught=getCurrentFrameIndex();
|
caught=getReceiverCurrentFrameIndex();
|
||||||
pthread_mutex_unlock(&mg);
|
pthread_mutex_unlock(&mg);
|
||||||
incrementProgress(caught-prevCaught);
|
incrementProgress(caught-prevCaught);
|
||||||
if(caught-prevCaught) newData=true;
|
if(caught-prevCaught) newData=true;
|
||||||
|
Reference in New Issue
Block a user