modified release

This commit is contained in:
Dhanya Maliakal 2017-03-24 16:58:00 +01:00
parent aba3a67b80
commit 72d89fefc3
2 changed files with 28 additions and 134 deletions

View File

@ -1,12 +1,11 @@
SLS Detector Package 2.3.0 released on 2017-03-23
SLS Detector Package 3.0.0 released on 2017-03-24
================================================================================
INTRODUCTION
This document describes the differences between previous versions and 2.3.0 releases.
This document describes the differences between previous versions and 3.0.0 releases.
Manuals can be found under the 'manual' folder.
@ -20,7 +19,6 @@ If you have any software related questions or comments, please send them to:
CONTENTS
- Changes in User Interface
@ -30,21 +28,19 @@ CONTENTS
Changes in User Interface
=========================
This release has no changes in user interface from the previous 2.3 version.
This release supports the following features:
Reiterating, both 2.3 and 3.0 supports the following features:
Receiver
--------
--------
- The files will be written in this format in the default mode:
* ASCII file header of 1024 bytes (only for EIGER detectors)
* series of images, each preceded by a Standard Header image
(header described below)
- Stanard Header image header in file and call back
arguments defined. It is in the following format defined as
sls_detector_header defined in
@ -65,12 +61,10 @@ This release supports the following features:
* Debug : 4 bytes # Not implemented
* Round Robin Number : 2 bytes # Not implemented
* Detector Type : 1 byte # Detector type defined by enum
detectorType in slsReceiverSoftware
/include/sls_receiver_defs.h
detectorType in slsReceiverSoftware
/include/sls_receiver_defs.h
* Header Version : 1 byte # 1
- The call back value for Start Acquisition Call back is insignificant at the
moment and left for future use. Instead, the following rules apply:
* If file write is enabled from the client, we will write the files.
@ -79,57 +73,43 @@ This release supports the following features:
file write (so we dont write) and register the callbacks (so the user gets
the data).
New Features
============
Eiger
-----
- Tau is moved to settings file, Gain and offset are removed from calibration
file. Put settings only sets client variable, whereas putting threshold loads
settings files to the server.
- Mode argument in starting up receiver is removed. FlippedData command is used
in config file to specify bottom.
Receiver
--------
- Image Reconstruction from the files are different as packet headers are not
stored and a standard image header is used.
--------
- One can choose the file format using the command "fileformat binary/hdf5" from
the client.
- Virtual HDF5 file maps all the files into a single file.
- Gotthard, Propix and Moench also save data in the same was as Jungfrau and Eiger
(ie. without any packet headers, only image header followed by image data)
Eiger
-----
- The ascii part of the file (file header with acquisition parameters) moved to
a separate file called the master file. So one master file per acquisition.
General
-------
-------
- UDP Packets from all the detectors will contain the standard sls detector header.
X, Y and Z Coordinates define the position of the detector in 3d.
- Users folder that gives an example on how to user the slsDetectorUsers and
slsReceiverUsers class.
- Data is streamed from Receiver to Gui via ZMQ if gui call back defined.
Resolved Issues
===============
Eiger
-----
- Frame and packet counters in server to check delays were buggy.
Known Issues
============
- X, Y and Z Coordinates do not exactly define the position of the
detector in 3d. This will be defined in the next release. Other header
parameters will be complete in the next release.
- Too many split files per detector especially for Eiger. Next Release will
have a HDF5 version, with virtual file mapping all the split files in an
acquisition.
- This version is tested only for Eiger and Jungfrau.

View File

@ -1,86 +0,0 @@
/**
\file mainClient.cpp
This file is an example of how to implement the slsDetectorUsers class
You can compile it linking it to the slsDetector library
gcc mainClient.cpp -L lib -l SlsDetector -lm -lpthread
where lib is the location of libSlsDetector.so
gcc mainClient.cpp -L . -l SlsDetector -lm -lpthread -o users
*/
#include <iostream>
#include "slsDetectorUsers.h"
#include "detectorData.h"
#include <cstdlib>
/** Definition of the data callback which simply prints out the number of points received and teh frame number */
int dataCallback(detectorData *pData, int iframe, void *pArg)
{
std::cout << "dataCallback: " << pData->npoints << " " << pData->npy << "Frame number: " << iframe << std::endl;
}
/**example of a main program using the slsDetectorUsers class */
int main(int argc, char **argv) {
int id=0;
/** if specified, argv[3] is used as detector ID (default is 0)*/
if (argc>=4)
id=atoi(argv[3]);
/** slsDetectorUsers is instantiated */
slsDetectorUsers *pDetector = new slsDetectorUsers (id);
char* argse[1];
argse[0] = (char*)"free";
pDetector->getCommand(1, argse, 0);
/** if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)*/
if (argc>=2){
pDetector->readConfigurationFile(argv[1]);
cout<<"Detector configured" << endl;
}
/** registering data callback */
// pDetector->registerDataCallback(&dataCallback, NULL);
/** checking detector status and exiting if not idle */
/* int status = pDetector->getDetectorStatus();
if (status != 0){
std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl;
return 1;
}
*/
/** load detector settings */
/* if (argc>=3){
pDetector->retrieveDetectorSetup(argv[2]);
cout<<"Detector measurement set-up done" << endl;
}
*/
/** start measurement */
/* pDetector->startMeasurement();
cout<<"started measurement"<<endl;
while (1) {
usleep(100000);
status = pDetector->getDetectorStatus();
if (status == 0 || status == 1|| status == 3)
break;
}
cout<<"measurement finished"<<endl;
*/
/** returning when acquisition is finished or data are avilable */
delete pDetector;
return 0;
}