LimaGroup issueshttps://gitlab.esrf.fr/groups/limagroup/-/issues2020-10-27T10:32:40+01:00https://gitlab.esrf.fr/limagroup/lima2/-/issues/42Add logging to the RPC framework2020-10-27T10:32:40+01:00Samuel DebionneAdd logging to the RPC frameworkUse the Lima logging facility in the Lima.RPC.Use the Lima logging facility in the Lima.RPC.https://gitlab.esrf.fr/limagroup/lima/-/issues/121Saving on multiple files fails when compression is active at high frame rate...2020-09-03T16:53:11+02:00Alejandro Homs PuronSaving on multiple files fails when compression is active at high frame rate (22 kHz) and low photon countsWhen the following conditions met:
* saving with compression on more than one file per acquisition
* maximum `PSI/Eiger-500k` speed on 4-bits sensor `pixel_depth`
* low pixel count
the acquisition fails due to a wrong `offset` when cal...When the following conditions met:
* saving with compression on more than one file per acquisition
* maximum `PSI/Eiger-500k` speed on 4-bits sensor `pixel_depth`
* low pixel count
the acquisition fails due to a wrong `offset` when calling `H5DOwrite_chunk()`:
```
[2020/06/24 12:27:10.643687] 7f8207fff700 *Control*Control::Saving HDF5 Container::_writeFile (/users/blissadm/Git/Lima/control/src/CtSaving_Hdf5.cpp:730)-Error: Exception(Error): H5DOwrite_chunk() failedaData.frameNumber=9002, m_file_cnt=10, offset[0]=1001, buf_size=3059 [thrown]
[2020/06/24 12:27:10.643913] 7f8207fff700 *Control*Control::Saving HDF5 Container::_writeFile (/users/blissadm/Git/Lima/control/src/CtSaving_Hdf5.cpp:749)-Error: Exception(Error): Control: _writeFile(/users/blissadm/Git/Lima/control/src/CtSaving_Hdf5.cpp, 730): Error: H5DOwrite_chunk() failedaData.frameNumber=9002, m_file_cnt=10, offset[0]=1001, buf_size=3059 [thrown]
[2020/06/24 12:27:10.643997] 7f8207fff700 *Control*Control::Saving::_setSavingError (/users/blissadm/Git/Lima/control/src/CtSaving.cpp:1947)-Error: m_ctrl.m_status=<AcquisitionStatus=AcqFault, Error=Saving error, ImageCounters=<LastImageAcquired=10603, LastBaseImageReady=10603, LastImageReady=10603, LastImageSaved=9001, LastCounterReady=-1>, saving_mode=1
```
The current Lima core allows parallelization of saving for the first frame of a file. When photon count is low, compression is very fast and competes with saving. Under these conditions, a new file can be opened while the previous is still in use. However, `CtSaving::SaveContainer` implementations are not state-less, and fail when more than one file is open at the same time.
Indeed, the problem is solved with the following patch:
```diff
index fd9d695..fff435c 100755
--- a/control/src/CtSaving.cpp
+++ b/control/src/CtSaving.cpp
@@ -2468,7 +2468,6 @@ void CtSaving::SaveContainer::prepare(CtControl& ct)
bool new_file = !(i % pars.framesPerFile);
if (new_file) ++nextNumber;
frame_par.m_pars.nextNumber = nextNumber;
- frame_par.m_threadable = new_file;
}
std::pair<Frame2Params::iterator, bool> result =
m_frame_params.insert(Frame2Params::value_type(i, frame_par));
```v1.9.6Alejandro Homs PuronAlejandro Homs Puronhttps://gitlab.esrf.fr/limagroup/lima/-/issues/91Add a new Conda package variant without LIMA_NO_DEBUG2020-02-13T14:45:19+01:00Samuel DebionneAdd a new Conda package variant without LIMA_NO_DEBUGSee Conda [Build Variants](https://conda.io/projects/conda-build/en/latest/source/resources/variants.html). This does not look straight forward though since the recipes (`build.sh`, `bld.bat`) need to be templated to add/remove `-DLIMA_N...See Conda [Build Variants](https://conda.io/projects/conda-build/en/latest/source/resources/variants.html). This does not look straight forward though since the recipes (`build.sh`, `bld.bat`) need to be templated to add/remove `-DLIMA_NO_DEBUG`.Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/93HeaderMap must be unordered2020-01-16T10:03:34+01:00Laurent ClaustreHeaderMap must be unorderedfor format like CBF having the map of key,value ordered is an issue, because CBF specification asked for ordered header content. For instance `header_convention` entry must appear before `header_contents`:
_array_data.header_convention ...for format like CBF having the map of key,value ordered is an issue, because CBF specification asked for ordered header content. For instance `header_convention` entry must appear before `header_contents`:
_array_data.header_convention PILATUS_1.2
_array_data.header_contents
;
This can be an issue for software processing Pilatus image files.Laurent ClaustreLaurent Claustrehttps://gitlab.esrf.fr/limagroup/Processlib/-/issues/10Add Documentation2019-02-21T11:52:31+01:00Samuel DebionneAdd Documentationv2Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/Processlib/-/issues/3Use priority_queue instead of multimap2019-02-20T18:22:59+01:00Samuel DebionneUse priority_queue instead of multimapv2Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/Processlib/-/issues/11Remove Compatibility.h, use the header generated by CMake instead2019-02-20T08:28:42+01:00Samuel DebionneRemove Compatibility.h, use the header generated by CMake insteadv2Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/Processlib/-/issues/4Fix PoolThreadMgr singleton implementation2019-02-20T08:28:09+01:00Samuel DebionneFix PoolThreadMgr singleton implementationv2Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/Processlib/-/issues/2Remove dependency to pthread, use std thread library support instead2019-02-19T15:51:46+01:00Samuel DebionneRemove dependency to pthread, use std thread library support insteadv2Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/47Sync master branch with Github2019-02-19T11:09:55+01:00Samuel DebionneSync master branch with GithubAlejandro Homs PuronAlejandro Homs Puronhttps://gitlab.esrf.fr/limagroup/lima/-/issues/50Backport the documention build system changes to the 1.7 branch2019-02-19T11:07:11+01:00Samuel DebionneBackport the documention build system changes to the 1.7 branchIt would great to have the doc of the 1.7 version on readthedocs.It would great to have the doc of the 1.7 version on readthedocs.Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/59hdf5 ultimate changes2018-08-06T12:11:02+02:00Laurent Claustrehdf5 ultimate changesfinally after test on ID02 we decide to update once again the h5 format for lima.finally after test on ID02 we decide to update once again the h5 format for lima.v1.8Laurent ClaustreLaurent Claustrehttps://gitlab.esrf.fr/limagroup/lima/-/issues/5Support high frame rate2018-08-06T12:11:02+02:00Samuel DebionneSupport high frame rateHigh frame rate can be generated using frames prefetched in memory, either generated or loaded from files. This is useful to shake the system and identify bottlenecks that may arise with newer detectors (i.e JungFrau).High frame rate can be generated using frames prefetched in memory, either generated or loaded from files. This is useful to shake the system and identify bottlenecks that may arise with newer detectors (i.e JungFrau).Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/44HDF52018-07-12T11:09:43+02:00Laurent ClaustreHDF5* Use FindHdf5 in CMakeLists.txt
* fix for hard-coded instrument name* Use FindHdf5 in CMakeLists.txt
* fix for hard-coded instrument namev1.8Laurent ClaustreLaurent Claustrehttps://gitlab.esrf.fr/limagroup/lima/-/issues/14[CI] Fix and improve docker2018-07-10T15:33:06+02:00Samuel Debionne[CI] Fix and improve dockerRemove the hardcoded `cmake` branch in the scripts (gitlab.ci.yml and docker image scripts)
Idem for Travis, AppVeyor.
CI on Lima should:
- test lima
- test every submodules (available on the given platform)
CI on a submodule should:...Remove the hardcoded `cmake` branch in the scripts (gitlab.ci.yml and docker image scripts)
Idem for Travis, AppVeyor.
CI on Lima should:
- test lima
- test every submodules (available on the given platform)
CI on a submodule should:
- test lima on a branch that have the same name or default to master. Or is there a better way? Env var?Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/39Add python tests to the test suits2018-05-03T17:36:57+02:00Samuel DebionneAdd python tests to the test suitsSamuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/37Add missing tests of simulator on Windows2018-05-03T17:36:57+02:00Samuel DebionneAdd missing tests of simulator on WindowsSome tests are not run on Windows because they do not compile.Some tests are not run on Windows because they do not compile.v1.8Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/28Review documentation2018-05-03T17:36:57+02:00Samuel DebionneReview documentationReview documentation and polish the documentation for release v1.8
Check whether the doc for each submodules is up to date. Update the build / install instructions with CMake.Review documentation and polish the documentation for release v1.8
Check whether the doc for each submodules is up to date. Update the build / install instructions with CMake.v1.8Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/43With RoiCounter processing without Rois, CtControl get stuck in AcqRunning st...2018-05-03T17:36:57+02:00Samuel DebionneWith RoiCounter processing without Rois, CtControl get stuck in AcqRunning status```c++
Camera simu;
Interface hw(simu);
CtControl ct(&hw);
// Setup a roi counter
Roi roi = Roi(0, 0, 100, 100);
lima::SoftOpExternalMgr *ext = ct.externalOperation();
SoftOpInstance roi_cnt_op_inst;
ext->addOp(ROICOUNTERS, "RoiCounter...```c++
Camera simu;
Interface hw(simu);
CtControl ct(&hw);
// Setup a roi counter
Roi roi = Roi(0, 0, 100, 100);
lima::SoftOpExternalMgr *ext = ct.externalOperation();
SoftOpInstance roi_cnt_op_inst;
ext->addOp(ROICOUNTERS, "RoiCounters", 0, roi_cnt_op_inst);
SoftOpBaseClass *p = roi_cnt_op_inst.m_opt;
SoftOpRoiCounter *roi_cnt_op = static_cast<SoftOpRoiCounter *>(p);
CtAcquisition *acq= ct.acquisition();
acq->setAcqMode(Single);
acq->setAcqExpoTime(expo);
acq->setAcqNbFrames(nframe);
ct.prepareAcq();
ct.startAcq();
std::cout << "SIMUTEST: acq started" << std::endl;
// Pool status
CtControl::Status status;
do
{
ct.getStatus(status);
} while (status.AcquisitionStatus != AcqStatus::AcqReady);
std::cout << "SIMUTEST: acq finished" << std::endl;
ct.stopAcq();
std::cout << "SIMUTEST: acq stopped" << std::endl;
```
In `_calcAcqStatus`, the following condition is always false because LastCounterReady is never incremented.
```
(!m_op_ext_sink_task_active ||anImageCnt.LastCounterReady == anImageCnt.LastImageAcquired)
```
_LastCounterReadyCallback is never called.v1.8Samuel DebionneSamuel Debionnehttps://gitlab.esrf.fr/limagroup/lima/-/issues/13A call to stopAcq() breaks saving tasks if there are remaining frames to save2018-05-02T11:23:59+02:00Samuel DebionneA call to stopAcq() breaks saving tasks if there are remaining frames to saveThis happens in the following conditions:
- Multiple frames per file
- OverwritePolicy is SaveOverwriteError
- Frame rate >>> saving rate
Calling `stopAcq()` after all the frames where actually acquired (e.g. polling `LastImageAcqui...This happens in the following conditions:
- Multiple frames per file
- OverwritePolicy is SaveOverwriteError
- Frame rate >>> saving rate
Calling `stopAcq()` after all the frames where actually acquired (e.g. polling `LastImageAcquired`) closes all the streams used by `CtSaving` (with a call to `SaveContainer::close()`).
`SaveContainer::open()` will then fail to reopen the file because the file already exists.Laurent ClaustreLaurent Claustre