mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 06:50:02 +02:00
multi sharedmemory, basic done, left to go thru whole file, and slsDetector left to do
This commit is contained in:
parent
b294b3e8b1
commit
2eecf43fbb
File diff suppressed because it is too large
Load Diff
@ -260,7 +260,45 @@ public:
|
|||||||
*/
|
*/
|
||||||
std::string getUserDetails();
|
std::string getUserDetails();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the hostname of all sls detectors in shared memory
|
||||||
|
* @param s concatenated hostname of all the sls detectors
|
||||||
|
*/
|
||||||
|
void setHostname(std::string s);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the hostname of detector at particular position
|
||||||
|
* or concatenated hostnames of all the sls detectors
|
||||||
|
* @param pos position of detector in array, -1 for all detectors
|
||||||
|
* @returns concatenated hostnames of all detectors or hostname of specific one
|
||||||
|
*/
|
||||||
|
std::string getHostname(int pos = -1);
|
||||||
|
|
||||||
|
|
||||||
|
using slsDetectorBase::getDetectorType;
|
||||||
|
/**
|
||||||
|
* Get Detector type for a particular sls detector or get the first one
|
||||||
|
* @param pos position of sls detector in array, if -1, returns first detector type
|
||||||
|
* @returns detector type of sls detector in position pos, if -1, returns the first det type
|
||||||
|
*/
|
||||||
|
detectorType getDetectorsType(int pos = -1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Concatenates string types of all sls detectors or
|
||||||
|
* returns the detector type of the first sls detector
|
||||||
|
* @param pos position of sls detector in array, if -1, returns first detector type
|
||||||
|
* @returns detector type of sls detector in position pos, if -1, concatenates
|
||||||
|
*/
|
||||||
|
std::string sgetDetectorsType(int pos=-1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Just to overload getDetectorType
|
||||||
|
* Concatenates string types of all sls detectors or
|
||||||
|
* returns the detector type of the first sls detector
|
||||||
|
* @param pos position of sls detector in array, if -1, returns first detector type
|
||||||
|
* @returns detector type of sls detector in position pos, if -1, concatenates
|
||||||
|
*/
|
||||||
|
std::string getDetectorType(){return sgetDetectorsType();};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -279,67 +317,6 @@ public:
|
|||||||
/** destroys all the threads in the threadpool */
|
/** destroys all the threads in the threadpool */
|
||||||
void destroyThreadPool();
|
void destroyThreadPool();
|
||||||
|
|
||||||
|
|
||||||
/** adds the detector with ID id in postion pos
|
|
||||||
\param id of the detector to be added (should already exist!)
|
|
||||||
\param pos position where it should be added (normally at the end of the list (default to -1)
|
|
||||||
\return the actual number of detectors or -1 if it failed*/
|
|
||||||
int addSlsDetector(int id, int pos=-1);
|
|
||||||
|
|
||||||
/** adds the detector with ID id in postion pos
|
|
||||||
\param name of the detector to be added (should already exist in shared memory or at least be online)
|
|
||||||
\param pos position where it should be added (normally at the end of the list (default to -1)
|
|
||||||
\return the actual number of detectors or -1 if it failed*/
|
|
||||||
int addSlsDetector(const char *name, int pos=-1);
|
|
||||||
|
|
||||||
int addSlsDetector(detectorType type, int pos=-1);
|
|
||||||
|
|
||||||
/**removes the detector in position pos from the multidetector
|
|
||||||
\param pos position of the detector to be removed from the multidetector system (defaults to -1 i.e. last detector)
|
|
||||||
\returns the actual number of detectors
|
|
||||||
*/
|
|
||||||
int removeSlsDetector(int pos=-1);
|
|
||||||
|
|
||||||
/**removes the detector in position pos from the multidetector
|
|
||||||
\param name is the name of the detector
|
|
||||||
\returns the actual number of detectors
|
|
||||||
*/
|
|
||||||
int removeSlsDetector(char *name);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
std::string setHostname(const char*, int pos=-1);
|
|
||||||
|
|
||||||
|
|
||||||
std::string getHostname(int pos=-1);
|
|
||||||
using slsDetectorBase::getDetectorType;
|
|
||||||
|
|
||||||
std::string getDetectorType(){return sgetDetectorsType();};
|
|
||||||
|
|
||||||
detectorType getDetectorsType(int pos=-1);
|
|
||||||
detectorType setDetectorsType(detectorType type=GET_DETECTOR_TYPE, int pos=-1){addSlsDetector(type, pos); return getDetectorsType(pos);};
|
|
||||||
|
|
||||||
std::string sgetDetectorsType(int pos=-1);
|
|
||||||
std::string ssetDetectorsType(detectorType type=GET_DETECTOR_TYPE, int pos=-1){return getDetectorType(setDetectorsType(type, pos));}; //
|
|
||||||
std::string ssetDetectorsType(std::string s, int pos=-1);//{return getDetectorType(setDetectorsType(getDetectorType(s),pos));}; // should decode detector type
|
|
||||||
|
|
||||||
|
|
||||||
/** adds a detector by id in position pos
|
|
||||||
\param ival detector id to be added
|
|
||||||
\param pos position to add it (-1 fails)
|
|
||||||
\returns detector ID or -1 if detector in position i is empty
|
|
||||||
*/
|
|
||||||
int setDetectorId(int ival, int pos=-1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** returns the id of the detector in position i
|
|
||||||
\param i position of the detector
|
|
||||||
\returns detector ID or -1 if detector in position i is empty*/
|
|
||||||
int getDetectorId(int i);
|
|
||||||
|
|
||||||
|
|
||||||
/** returns the number of detectors in the multidetector structure
|
/** returns the number of detectors in the multidetector structure
|
||||||
\returns number of detectors */
|
\returns number of detectors */
|
||||||
int getNumberOfDetectors() {return thisMultiDetector->numberOfDetectors;};
|
int getNumberOfDetectors() {return thisMultiDetector->numberOfDetectors;};
|
||||||
@ -389,21 +366,7 @@ public:
|
|||||||
int setMaxNumberOfChannelsPerDetector(dimension d,int i){thisMultiDetector->maxNumberOfChannelsPerDetector[d]=i; return thisMultiDetector->maxNumberOfChannelsPerDetector[d];};
|
int setMaxNumberOfChannelsPerDetector(dimension d,int i){thisMultiDetector->maxNumberOfChannelsPerDetector[d]=i; return thisMultiDetector->maxNumberOfChannelsPerDetector[d];};
|
||||||
|
|
||||||
double getScanStep(int index, int istep){return thisMultiDetector->scanSteps[index][istep];};
|
double getScanStep(int index, int istep){return thisMultiDetector->scanSteps[index][istep];};
|
||||||
/** returns the detector offset (in number of channels)
|
|
||||||
\param pos position of the detector
|
|
||||||
\param ox reference to the offset in x
|
|
||||||
\param oy reference to the offset in y
|
|
||||||
\returns OK/FAIL if the detector does not exist
|
|
||||||
*/
|
|
||||||
int getDetectorOffset(int pos, int &ox, int &oy);
|
|
||||||
|
|
||||||
/** sets the detector offset (in number of channels)
|
|
||||||
\param pos position of the detector
|
|
||||||
\param ox offset in x (-1 does not change)
|
|
||||||
\param oy offset in y (-1 does not change)
|
|
||||||
\returns OK/FAIL if the detector does not exist
|
|
||||||
*/
|
|
||||||
int setDetectorOffset(int pos, int ox=-1, int oy=-1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1613,20 +1576,28 @@ private:
|
|||||||
* Initialize (open/create) shared memory for the sharedMultiDetector structure
|
* Initialize (open/create) shared memory for the sharedMultiDetector structure
|
||||||
* @param verify true to verify if shm size matches existing one
|
* @param verify true to verify if shm size matches existing one
|
||||||
* @param update true to update last user pid, date etc
|
* @param update true to update last user pid, date etc
|
||||||
* @returns true if the shared memory was created now
|
|
||||||
*/
|
*/
|
||||||
bool initSharedMemory(bool verify = true, bool update = true);
|
bool initSharedMemory(bool verify = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize detector structure
|
* Initialize detector structure
|
||||||
* @param created true if shared memory was just created now
|
* @param created true if shared memory was just created now
|
||||||
* @param verify true to verify if shm size matches existing one
|
* @param verify true to verify if shm size matches existing one
|
||||||
* @param update true to update last user pid, date etc
|
|
||||||
*/
|
*/
|
||||||
void initializeDetectorStructure(bool created, bool verify = true, bool update = true);
|
void initializeDetectorStructure(bool created, bool verify = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add single detector
|
* Initialize class members (and from slsDetectorUtils)
|
||||||
|
*/
|
||||||
|
void initializeMembers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update user details in detector structure
|
||||||
|
*/
|
||||||
|
void updateUserdetails();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add sls detector
|
||||||
* @param s hostname of the single detector
|
* @param s hostname of the single detector
|
||||||
*/
|
*/
|
||||||
void addSlsDetector (std::string s);
|
void addSlsDetector (std::string s);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user