EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: areaDetector crashes EPICS IOC and autosave failure
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu>
Cc: "tech-talk at aps.anl.gov >> EPICS Tech Talk" <tech-talk at aps.anl.gov>
Date: Thu, 6 Feb 2020 17:59:54 +0000
I would suggest using the 1.8 branch since that is where the current work on the Eiger2 detectors is being done. Gary Yandell can probably help if you have questions.

Mark


Sent from my iPhone

On Feb 6, 2020, at 11:43 AM, Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>> wrote:

Hi Mark,

Thank you so much for your help. I copied and pasted the result of $ git log --pretty=format:"%h - %an, %ar : %s" ( if you want other format, let me know ) , followed by $ git diff R2-6 eigerDetector.cpp
Do I need to install 1.8 branch?
___________________________________________________________________________________________
3db0c77 - root, 9 weeks ago : Merge commit 'refs/pull/27/head' of https://github.com/areaDetector/ADEiger
aed887a - Mark Rivers, 9 weeks ago : Use std::string rather than string to avoid doxygen warnings
d0dbd55 - Mark Rivers, 9 months ago : Merge branch 'master' of github.com<http://github.com>:areaDetector/ADEiger
bfaaff7 - Mark Rivers, 9 months ago : Changed FWNamePattern to have format=string
9116c40 - Gary Yendell, 10 months ago : Fix units for DetectorDistance on EDM screen
e1d6853 - Matthew Taylor, 10 months ago : Add bit_depth_image parameter
6382b13 - Gary Yendell, 11 months ago : Update PVs for reordered enum values
515d116 - Gary Yendell, 1 year ago : Add initialize logic
8e8993e - Gary Yendell, 1 year ago : Latest 1.8 updates
f4fff2c - Gary Yendell, 1 year, 2 months ago : Add trigger_start_delay
d7eab1b - Gary Yendell, 1 year, 2 months ago : Update temperature and humidity parameter paths
dda9b91 - Gary Yendell, 1 year, 4 months ago : Add Retrigger PV
66d7606 - Gary Yendell, 1 year, 4 months ago : Add Stream Header Detail to EDM screens
7930899 - Gary Yendell, 1 year, 4 months ago : Remove status_update request at start of eigerStatus
eff48ab - Gary Yendell, 1 year, 2 months ago : Test state == na to check if detector initialised
97cae73 - Gary Yendell, 1 year, 2 months ago : Increase initialisation timeout to 30 minutes
f7d3431 - Gary Yendell, 1 year, 5 months ago : Update API_VERSION
427ba06 - Gary Yendell, 1 year, 5 months ago : Change abort to disarm
9d29fc9 - Gary Yendell, 1 year, 5 months ago : Comment out parameters removed from 1.8 API WIP
5f2b239 - Mark Rivers, 9 months ago : Merge branch 'master' of github.com<http://github.com>:areaDetector/ADEiger
c8fd86c - Mark Rivers, 9 months ago : Changed IP address
e47d6c1 - Mark Rivers, 9 months ago : Merge branch 'master' of github.com<http://github.com>:areaDetector/ADEiger
6bcec7c - Mark Rivers, 10 months ago : Changed FWNamePattern and FWNamePattern_RBV from stringout/stringin to waveform to allow 256 characters
5e337ab - Mark Rivers, 10 months ago : Fixes to have RULES_OPI be optional; other changes to be the same as other detectors
d5a3870 - Mark Rivers, 10 months ago : Replace http with https
eb65067 - Mark Rivers, 11 months ago : Change because NDArray.codec is now a structure, not a string
221fda0 - Mark Rivers, 1 year, 1 month ago : Make same as all other detectors
173a7b8 - Mark Rivers, 1 year, 2 months ago : Documented Streamecompress; fixed HTML errors and reformatted with VS2010
736cfa6 - Mark Rivers, 1 year, 2 months ago : Obsolete
7d20f01 - Mark Rivers, 1 year, 2 months ago : New version with StreamDecompress PV
228f378 - Mark Rivers, 1 year, 2 months ago : Improved formatting
b00ca5e - Mark Rivers, 1 year, 2 months ago : Notes for R2-7
fa9a57c - Mark Rivers, 1 year, 2 months ago : Moved location of mStreamDecompress for consistency
b9113be - Mark Rivers, 1 year, 2 months ago : Added StreamDecompress parameter. This controls whether the driver decompresses the arrays from the Stream interface (previous behavior), or whether t
85f9c40 - Mark Rivers, 1 year, 2 months ago : Added StreamDecompress record
211bfe8 - Mark Rivers, 1 year, 2 months ago : Added StreamDecompress record to eigerStream sub-screen
99562d9 - Mark Rivers, 1 year, 2 months ago : Fixed bslz4 decompression; improved error reporting in uncompress function
a6896d8 - Mark Rivers, 1 year, 2 months ago : Notes about bitshuffle for R2-7
37dce1d - Mark Rivers, 1 year, 2 months ago : Change logic to allow BSLZ4 compression for SOURCE_STREAM, but not yet SOURCE_FILEWRITER
aa82543 - Mark Rivers, 1 year, 2 months ago : Merge branch 'use_blosc' into add_bitshuffle
079e891 - Mark Rivers, 1 year, 2 months ago : Add support for bitshuffle/lz4
7c3f810 - Mark Rivers, 1 year, 2 months ago : Removed lz4Src/*, use blosc in ADSupport instead
012619c - Mark Rivers, 1 year, 2 months ago : Lines moved into iocs/eigerIOC/eigerApp/src/Makefile to be consistent with other detectors
6cfb79b - Mark Rivers, 1 year, 2 months ago : lz4Src removes, uses blosc in ADSupport
1adccb4 - Mark Rivers, 1 year, 2 months ago : Gets lz4.h from ADSupport, not this package
33478d3 - Mark Rivers, 1 year, 2 months ago : Move lines from eigerApp/commonDriverMakefile to be consistent with other repositories; remove lz4 because we get it from blosc
0201f1c - Mark Rivers, 1 year, 2 months ago : Updated R2-6 release date, added comment about integer record types
051564f - Mark Rivers, 1 year, 2 months ago : Merge branch 'master' of github.com<http://github.com>:areaDetector/ADEiger
738db26 - Mark Rivers, 1 year, 2 months ago : Added date for R2-6
bf8db59 - Bruno Martins, 1 year, 2 months ago : Merge pull request #21 from dls-controls/integers
11ea352 - Gary Yendell, 1 year, 2 months ago : Change integer parameters from ai/ao to longin/longout
d09c871 - Mark Rivers, 1 year, 5 months ago : Tweaked widgets
be74de8 - Mark Rivers, 1 year, 5 months ago : Tweaked widgets
f3327b8 - Mark Rivers, 1 year, 5 months ago : Tweaked widgets
60e0a87 - Mark Rivers, 1 year, 5 months ago : Tweaked widgets
8ea168e - Mark Rivers, 1 year, 5 months ago : Tweaked widgets
f96c01f - Mark Rivers, 1 year, 5 months ago : Tweaked label
97e869c - Mark Rivers, 1 year, 5 months ago : Tweaked label
f0decc8 - Mark Rivers, 1 year, 5 months ago : Notes for R2-6
b98f512 - Mark Rivers, 1 year, 5 months ago : Fixed formatting
83fa15e - Mark Rivers, 1 year, 5 months ago : Add notes for R2-6; add dates for previous releases
2c34110 - Mark Rivers, 1 year, 5 months ago :  When switching DataSource to stream it seems to be necessary to disable and enable stream
080b24f - Mark Rivers, 1 year, 5 months ago : Improved layout
308f217 - Mark Rivers, 1 year, 5 months ago : Improved layout
7353746 - Mark Rivers, 1 year, 5 months ago : Added support for NumImagesCounter
9d0daa4 - Mark Rivers, 1 year, 5 months ago : Added NumImagesCounter, FileExists, tweaked layout
26afbad - Mark Rivers, 1 year, 5 months ago : Added local file saving controls; added image counter and image rate
be4fa42 - Mark Rivers, 1 year, 5 months ago : New autoconvert files based on modified adl files
50e13b2 - Mark Rivers, 1 year, 5 months ago : Two fixes to eigerStatus() - If Acquiring is true then return immediately.  We get errors polling the status when it is acquiring. - If the model stri
c591a33 - Mark Rivers, 1 year, 5 months ago : Increased height
c4d1149 - Mark Rivers, 1 year, 5 months ago : Changed AcquireTime and AcquirePeriod PVs to exponential. Added NumQueuedArrays, WaitForPlugins, and AcquireBusy.
ebd1e3e - Mark Rivers, 1 year, 5 months ago : Changed layout to 4 columns. Added new PVs:   DeadTime_RBV, Description_RBV, State_RBV, FWState_RBV, StreamState_RBV, MonitorState_RBV   FWAutoRemove,
0af9b34 - Mark Rivers, 1 year, 5 months ago : Uncomment commonPlugin_settings.req
1128d82 - Mark Rivers, 1 year, 5 months ago : Changed MonitorPeriod to MonitorTimeout to match .template file
f37c0db - Mark Rivers, 1 year, 5 months ago : Merge pull request #13 from areaDetector/adl_fixes
691d9a3 - Mark Rivers, 1 year, 6 months ago : New autoconverted file
d4fdc52 - Mark Rivers, 1 year, 6 months ago : Remove -I from ZMQ_INCLUDE, it is now added in Makefile
c8d2ff7 - Mark Rivers, 1 year, 6 months ago : Added RULES_OPI to do autoconvert
91f112a - Mark Rivers, 1 year, 6 months ago : Fixed font sizes, layouts so everything fits; added ADSetup.adl
01a10b5 - Mark Rivers, 1 year, 6 months ago : Add -U to USR_INCLUDES using addprefix
7c6a959 - Bruno Martins, 2 years ago : R2-5: ADEiger moved to the areaDetector organization
b7601bd - Bruno Martins, 2 years ago : Release R2-4
3d72705 - Bruno Martins, 2 years, 3 months ago : Merge pull request #11 from dls-controls/toString-precision
bf4a504 - Gary Yendell, 2 years, 3 months ago : Use maximum precision in EigerParam::toString conversion
25afa50 - Bruno Martins, 2 years, 3 months ago : Update RELEASE.md
5c0a1a5 - Bruno Martins, 2 years, 3 months ago : Merge pull request #9 from dls-controls/edm
a37694b - Gary Yendell, 2 years, 9 months ago : Add EDM screens
80861e1 - Bruno Martins, 2 years, 5 months ago : Merge for release R2-3-1
4b2215b - Bruno Martins, 2 years, 5 months ago : Prepare R2-3-1 release
abdcd48 - Bruno Martins, 2 years, 5 months ago : Stream: ignore non-header packets at the start of the stream. Fixes #8
b3ec2b0 - Bruno Martins, 2 years, 6 months ago : Fix Trigger Mode ordering. Fixes #6
2e17935 - Bruno Martins, 2 years, 7 months ago : Give pollTask one more chance to get files before giving up
ac7efcf - Bruno Martins, 2 years, 7 months ago : Add more debugging messages
ec584c9 - Bruno Martins, 2 years, 7 months ago : Prevent potential problem with keeping the correct number of pending files
21ad248 - Bruno Martins, 2 years, 7 months ago : Fix envPaths not being generated when calling make all from root
32b113a - Bruno Martins, 2 years, 7 months ago : Merge for release R2-3
f89cf52 - Bruno Martins, 2 years, 7 months ago : Add note about ADSupport now providing hdf5_hl
e44f761 - Bruno Martins, 2 years, 7 months ago : Increase SensorThickness_RBV.PREC to 6
40b5241 - Bruno Martins, 2 years, 7 months ago : Update RELEASE.md
027edd5 - Bruno Martins, 2 years, 7 months ago : Fetch FWFree and StreamDropped when updating status. Fix #4
d66b2d7 - Bruno Martins, 2 years, 7 months ago : Prevent pollTask from stopping if there are still files on the server
d8e4df8 - Bruno Martins, 2 years, 8 months ago : Add stream image appendix
9b128a0 - Bruno Martins, 2 years, 8 months ago : Fix incorrect KB to GB conversion fields
5fc300f - Bruno Martins, 2 years, 8 months ago : Set uniqueId and timestamps for monitor images. Fix #2
cad8cab - Bruno Martins, 2 years, 8 months ago : Update RELEASE
2d25ebe - Bruno Martins, 2 years, 8 months ago : Display detector disk's free space in GB
839f230 - Bruno Martins, 2 years, 8 months ago : Don't delete the file on the detector server if it wasn't properly written to disk
dd417b9 - Bruno Martins, 2 years, 8 months ago : Update Documentation
17cbdc2 - Bruno Martins, 2 years, 8 months ago : Add PVs for Stream Header Detail and Appendix
411f174 - Bruno Martins, 2 years, 8 months ago : Properly write file to disk
76b2fe1 - Bruno Martins, 2 years, 9 months ago : Merge for release R2-2-2
a402c9c - Bruno Martins, 2 years, 9 months ago : Bump version and update RELEASE file
01d39cb - Bruno Martins, 2 years, 9 months ago : Fix base class' maxAddr
bca0b8d - Bruno Martins, 2 years, 9 months ago : Fix EigerParam::put<int> rejecting EIGER_P_COMMAND params
ab29fb4 - Bruno Martins, 2 years, 9 months ago : Fix parsing of string typed 'allowed_values'
2c4b121 - Bruno Martins, 2 years, 9 months ago : Merge for release R2-2-1
49ae5a9 - Bruno Martins, 2 years, 9 months ago : Prepare release R2-2-1
cd455c4 - Bruno Martins, 2 years, 9 months ago : Revert "Setting file owner/group take effect immediately"
2971d14 - Bruno Martins, 2 years, 9 months ago : Merge for release R2-2
9b7d1e4 - Bruno Martins, 2 years, 9 months ago : Minor fixes in RELEASE.md
fef8e82 - Bruno Martins, 2 years, 10 months ago : Fix RELEASE.md nested lists
f59cd49 - Bruno Martins, 2 years, 10 months ago : Remove dependency on header_detail being 'none'
4ce0d2e - Bruno Martins, 2 years, 10 months ago : Setting file owner/group take effect immediately
72d9106 - Bruno Martins, 2 years, 10 months ago : Clean up RestAPI
ebe29f3 - Bruno Martins, 2 years, 10 months ago : Don't fetch 'command' parameters
8899c92 - Bruno Martins, 2 years, 10 months ago : Saner Sensor Size PVs
0bb7ba0 - Bruno Martins, 2 years, 10 months ago : Use NDDriverVersion parameter
7af691a - Bruno Martins, 2 years, 10 months ago : Update documentation
d308ab8 - Bruno Martins, 2 years, 10 months ago : Merge branch 'parameter_store' into dev
1e0dada - Bruno Martins, 2 years, 10 months ago : Small changes in startup script
f9f8e4f - Bruno Martins, 2 years, 10 months ago : Use new ADBase.template PVs instead of custom ones
1c3478f - Bruno Martins, 2 years, 10 months ago : Close socket if send failed
d61abde - Bruno Martins, 2 years, 10 months ago : Small source code fixes
a4b2320 - Bruno Martins, 2 years, 10 months ago : Automatic parameter creation
7a3a4c1 - Bruno Martins, 2 years, 10 months ago : Do fetch when trying to put if parameter is uninitialized
a4a4c30 - Bruno Martins, 2 years, 10 months ago : Major rewrite of how Eiger parameters are handled
288c01e - Bruno Martins, 2 years, 10 months ago : RestAPI now accepts a port number. Hostname is a string
5845717 - Bruno Martins, 2 years, 10 months ago : Push socket paralellism into 'RestAPI'
107b093 - Bruno Martins, 2 years, 10 months ago : OPI: Remove file permissions readback field
eab4fb7 - Bruno Martins, 2 years, 10 months ago : Update RELEASE doc
228d266 - Bruno Martins, 2 years, 10 months ago : Use fchmod instead of process-wide umask
ff6ae8b - Bruno Martins, 2 years, 10 months ago : OPI: Display sensor thickness as an exponential value
2b56e3e - Bruno Martins, 2 years, 10 months ago : Add File Owner, File Owner Group and File Permission settings; this driver is now Linux-only
ac9228f - Bruno Martins, 2 years, 11 months ago : Revert using Eiger's wait command for now
b603ee8 - Bruno Martins, 3 years ago : Prevent using a Data Source when BSLZ4 is selected
5452732 - Bruno Martins, 3 years ago : Add State parameter for FileWriter, Monitor and Stream
3e508f3 - Bruno Martins, 3 years ago : Update SIMPLON documentation
55997c1 - Bruno Martins, 3 years ago : Add Dead Time parameter
151e6a6 - Bruno Martins, 3 years ago : Fix doRequest: pRecvTimeout init must happen before goto
585acc5 - Bruno Martins, 3 years ago : Use new wait command when using External Triggers. Change some messages
2ca8410 - Bruno Martins, 3 years ago : Add undocumented wait command. Make it possible to wait forever on doRequest
960e6cc - Bruno Martins, 3 years, 1 month ago : Fix acquisition with External Enable mode
a9630f3 - Bruno Martins, 3 years, 1 month ago : Add MEDM screens
3aa8b9b - Bruno Martins, 3 years, 1 month ago : Fixes status not updating; new RestAPI::statusUpdate method
19bc50b - Bruno Martins, 3 years, 1 month ago : Fix SensorThickness db and opi
615be8f - Bruno Martins, 3 years, 2 months ago : Merge branch 'dev' for R2-1
3cb2636 - Bruno Martins, 3 years, 2 months ago : Improve README and RELEASE in preparation for 2-1 release
2758648 - Bruno Martins, 3 years, 2 months ago : Improve documentation in preparation for 2-1 release
e407e27 - Bruno Martins, 3 years, 2 months ago : Improve screens and documentation screenshots
636e04c - Bruno Martins, 3 years, 2 months ago : Modify Monitor API code
2009cd4 - Bruno Martins, 3 years, 2 months ago : Fix incorrect DTYP for Description_RBV
53fde70 - Bruno Martins, 3 years, 2 months ago : Fix incorrect setting of omega angle for every frame
424f67d - Bruno Martins, 3 years, 4 months ago : Add ROIMode and CompressionAlgo to eiger_settings.req
a0a17f6 - Bruno Martins, 3 years, 4 months ago : Add ROIMode to OPI
75377f4 - Bruno Martins, 3 years, 4 months ago : Small fixes
4d73c9c - Bruno Martins, 3 years, 5 months ago : Rename a few parameters
af472da - Bruno Martins, 3 years, 6 months ago : Improve attributes file; create Omega attribute
d34cafb - Bruno Martins, 3 years, 6 months ago : Remove redundant Bit Depth parameter
70371e6 - Bruno Martins, 3 years, 6 months ago : Several parameters added
5cf0531 - Bruno Martins, 3 years, 6 months ago : Improve .gitignore
1a42ff6 - Bruno Martins, 3 years, 6 months ago : Make getBlob don't trust that MSG_WAITALL will return all bytes
f713b44 - Bruno Martins, 3 years, 6 months ago : Change preCheck flag in favor of a specified epsilon for comparison
b6001e6 - Bruno Martins, 3 years, 6 months ago : Add preCheck flag to putDouble: if true, only put value if different from previous one. Use it for Energy changing parameters.
7b8c86d - Bruno Martins, 3 years, 9 months ago : Fix units for MX parameters
a63c497 - Bruno Martins, 3 years, 9 months ago : Add MX Parameters (Chi, Kappa, Omega, Phi, Two Theta)
1006274 - Bruno Martins, 3 years, 9 months ago : Merge branch 'dev' for R2-0
3fbcac0 - Bruno Martins, 4 years, 2 months ago : Update documentation
11e6a82 - Bruno Martins, 4 years, 2 months ago : Cosmetic enhancement
e3ce4c6 - Bruno Martins, 4 years, 2 months ago : Fix opi link on button to open shutter setup screen
3fd21e2 - Bruno Martins, 4 years, 2 months ago : Several improvements to the build system
50e347b - Bruno Martins, 4 years, 2 months ago : Add message feedback when changing parameters that alter the Photon Energy
825738b - Bruno Martins, 4 years, 2 months ago : Work around Eiger bug when using Internal/External Enable mode
9c44ded - Bruno Martins, 4 years, 2 months ago : Add error messages to initialization
6f12ccf - Bruno Martins, 4 years, 2 months ago : Arm the detector right after the initialization
ffefe40 - Bruno Martins, 4 years, 2 months ago : Open and close shutter every trigger
76cbf28 - Bruno Martins, 4 years, 2 months ago : Move flags initialization to better places
ba41e3e - Bruno Martins, 4 years, 2 months ago : Add flags for poll/stream full completion so a proper acquisition termination message can be displayed
92ff971 - Bruno Martins, 4 years, 2 months ago : Use new StreamAPI timeout capability on streamTask so it doesn't block indefinetely anymore
a219a43 - Bruno Martins, 4 years, 2 months ago : Add timeout to get* methods
d1de636 - Bruno Martins, 4 years, 2 months ago : Replace standard error codes with custom error codes for StreamAPI methods
d925006 - Bruno Martins, 4 years, 2 months ago : Remove unused getMessage method
2283ea1 - Bruno Martins, 4 years, 2 months ago : Remove unused variable
c74b0aa - Bruno Martins, 4 years, 2 months ago : Improve status messages when using external triggers
0507c85 - Bruno Martins, 4 years, 2 months ago : Fix deadlock bug when waiting for stop event on External Enable acquisitions
631c907 - Bruno Martins, 4 years, 2 months ago : Increase arm timeout due to Eiger 16M arming time being longer
0da58d1 - Bruno Martins, 4 years, 2 months ago : Increase default request timeout to 20 secs (PUT to photon_energy on Eiger 16M seems to be taking more than 10 secs)
a28b667 - Bruno Martins, 4 years, 2 months ago : Ensure that response_t fields are properly set on parseHeader
44ce4b3 - Bruno Martins, 4 years, 2 months ago : Properly initialize stack allocated request_t and response_t structures
45c51db - Bruno Martins, 4 years, 2 months ago : Use proper 'initialize' timeout macro and increase it to 240 seconds (Eiger 16M seems to take 140+ seconds to initialize)
cecd3cf - Bruno Martins, 4 years, 2 months ago : Remove nonsense VAL fields from eiger.template
1c158a5 - Bruno Martins, 4 years, 2 months ago : Fix database to work properly with autosave
4a82c32 - Bruno Martins, 4 years, 2 months ago : Cleanup st.cmd
148610f - Bruno Martins, 4 years, 2 months ago : Remove setting SaveFiles=1 at startup
6c646a0 - Bruno Martins, 4 years, 2 months ago : Fix a few bugs with manual triggers on INTS mode
ee16e37 - Bruno Martins, 4 years, 2 months ago : Add system/command subsystem (for API reset)
6632541 - Bruno Martins, 4 years, 2 months ago : Create wrapper for the REST API's binary state as bool. Use wrapper to simplify code
255b75b - Bruno Martins, 4 years, 2 months ago : Add API methods to read binary state parameters as booleans
886ed80 - Bruno Martins, 4 years, 2 months ago : Fix reading energy threshold twice at startup
a424745 - Bruno Martins, 4 years, 2 months ago : Fix error messages prefix for REST API from EigerApi to RestApi
5828fa4 - Bruno Martins, 4 years, 2 months ago : Use HTTP/1.1 instead of HTTP/1.0
76c0a9f - Bruno Martins, 4 years, 2 months ago : Merge branch 'stream' into dev
269e3be - Bruno Martins, 4 years, 2 months ago : Add FileWriter disk usage and DCU Buffer usage parameters
d268294 - Bruno Martins, 4 years, 2 months ago : Read 'mode' status for every detector module. Replace reading of firmware version and s/n with wrapper function
aba49e6 - Bruno Martins, 4 years, 2 months ago : Make it possible to run FileWriter and Stream at the same time
4dae539 - Bruno Martins, 4 years, 3 months ago : Implement the streaming interface
09cf038 - Bruno Martins, 4 years, 3 months ago : Add Stream status subsystem
3c0c0b1 - Bruno Martins, 4 years, 4 months ago : Add second method of output processing (stream)
18e0f73 - Bruno Martins, 4 years, 4 months ago : Add generous timeout to initialize function
aae26f1 - Bruno Martins, 4 years, 4 months ago : Fix incorrect GET file header and reading of modified parameters
885aff4 - Bruno Martins, 4 years, 4 months ago : Add output mode selector
81c0b12 - Bruno Martins, 4 years, 4 months ago : Add Stream API config URL and bump API version to 1.5.0
0ccaafa - Bruno Martins, 4 years, 4 months ago : Remove dbpf's from start script
72c8dbc - Bruno Martins, 4 years, 4 months ago : Add second (monitor) image to auto_settings
07eaee0 - Bruno Martins, 4 years, 4 months ago : Remove Wavelength from req file
29f203d - Bruno Martins, 4 years, 4 months ago : Add PINI=YES to some records
dd9ab92 - Bruno Martins, 4 years, 4 months ago : Improve start script
bcab88d - Bruno Martins, 4 years, 4 months ago : Add OutputMode and ProcessOutput parameters
5347aa1 - Bruno Martins, 4 years, 4 months ago : Refactor Eiger to RestAPI
9377cff - Bruno Martins, 4 years, 4 months ago : Rename eigerApi as restApi
703e86d - Bruno Martins, 4 years, 4 months ago : Add lz4 library
5f0fd49 - Bruno Martins, 4 years, 4 months ago : Merge branch 'dev' into stream
0f2b2f0 - Bruno Martins, 4 years, 4 months ago : Fix autosave configuration
95bd90d - Bruno Martins, 4 years, 4 months ago : Fix eiger_settings.req
0414159 - Bruno Martins, 4 years, 4 months ago : Add auto removal of files feature
3e6cee7 - Bruno Martins, 4 years, 4 months ago : Add DELETE method to the API
fcf62ef - Bruno Martins, 4 years, 4 months ago : Rename Eiger API instances as 'eiger'
1f16ac5 - Bruno Martins, 4 years, 4 months ago : Remove unused file->failed field. Fix eigerStatus missing functionName
fc81cf0 - Bruno Martins, 4 years, 4 months ago : Fix error message on eigerStatus
11125a4 - Bruno Martins, 4 years, 4 months ago : Fix numDataFiles formula
9e524f2 - Bruno Martins, 4 years, 4 months ago : Initial stream work
f7bc1b0 - Bruno Martins, 4 years, 4 months ago : Move parameter initialization to a dedicated method
cb66c1d - Bruno Martins, 4 years, 4 months ago : Rename stream task as parse task
52851de - Bruno Martins, 4 years, 4 months ago : Add support for Monitor API
1150699 - Bruno Martins, 4 years, 4 months ago : Add parameters for detector state and error status
8b89d98 - Bruno Martins, 4 years, 4 months ago : Add macro prefix ADOPI to file paths of other areaDetector screens
c194886 - Bruno Martins, 4 years, 6 months ago : Fix README and RELEASE files
0afba42 - Bruno Martins, 4 years, 6 months ago : Merge branch 'dev'
0030558 - Bruno Martins, 4 years, 6 months ago : Merge multithread branch
05a2be8 - Bruno Martins, 4 years, 6 months ago : Small opi cosmetic changes
68e240d - Bruno Martins, 4 years, 6 months ago : Add documentation
26261a9 - Bruno Martins, 4 years, 6 months ago : Add Serial Number parameter reading
50b9e5f - Bruno Martins, 4 years, 6 months ago : Replace ADTemperature with ADTemperatureActual for temperature reading
a510a0f - Bruno Martins, 4 years, 6 months ago : Update documentation from Dectris
10d6e55 - Bruno Martins, 4 years, 6 months ago : Modify OPI to add the new features present in the latest changes
086c8d7 - Bruno Martins, 4 years, 6 months ago : Fix template to contain the newest additions to the code
472ee26 - Bruno Martins, 4 years, 6 months ago : Replace command-based acquisition to the more areaDetector-like start/stop control of the acquisition
15f8c64 - Bruno Martins, 4 years, 6 months ago : Simulate blocking for trigger method of the Eiger API
345d6c2 - Bruno Martins, 4 years, 6 months ago : Add 'cancel' and 'abort' methods to the Eiger API
41ab351 - Bruno Martins, 4 years, 6 months ago : Fix missing USR_INCLUDE in driver Makefile
26f0f3e - Bruno Martins, 4 years, 6 months ago : Backport image parsing from 'multithread' branch. Fixes image dimension order
df29e61 - Bruno Martins, 4 years, 6 months ago : Add support for fixed hdf5 file coming from newer Eiger Firmware (>=1.3.0)
b5952b8 - Bruno Martins, 4 years, 6 months ago : Improve trigger handling and file list generation
e8095d5 - Bruno Martins, 4 years, 6 months ago : Fix triggerExposure not being sent to detector on inte mode
ba95b35 - Bruno Martins, 4 years, 6 months ago : Fix trigger not properly waiting for timeout bug
478e3d5 - Bruno Martins, 4 years, 6 months ago : Fix bug when trying to disarm while not armed
2cbbd0f - Bruno Martins, 4 years, 6 months ago : Reimplement FileWriter's 'name_pattern' as an asyn parameter
2909d22 - Bruno Martins, 4 years, 6 months ago : Remove requirement for name_pattern to have the string '$id' in it
f5d2631 - Bruno Martins, 4 years, 6 months ago : Remove forcing of INTS mode at the startup; increase triggerExposure timeout
ff86b42 - Bruno Martins, 4 years, 6 months ago : Fix gross mistake in initialize command
bc4c52e - Bruno Martins, 4 years, 6 months ago : Add trigger with exposure to the Eiger API (needed for 'inte' mode)
dec6e6c - Bruno Martins, 4 years, 7 months ago : Remove 'command' method in favor of 'put'
13655c5 - Bruno Martins, 4 years, 7 months ago : Add NTriggers to template and GUI
9ec1cc9 - Bruno Martins, 4 years, 7 months ago : Improve messages and locking
df61666 - Bruno Martins, 4 years, 7 months ago : Make 'connect' non-blocking
012e813 - Bruno Martins, 4 years, 7 months ago : Fix trigger vars
d951528 - Bruno Martins, 4 years, 7 months ago : Change GUI to match driver changes
05b2134 - Bruno Martins, 4 years, 7 months ago : Refactor as multithreaded
da2f886 - Bruno Martins, 4 years, 7 months ago : Improve comments
985992d - Bruno Martins, 4 years, 7 months ago : Implement waitFile for the Eiger API
5e092f3 - Bruno Martins, 4 years, 7 months ago : Simplify filename building
12845c7 - Bruno Martins, 4 years, 7 months ago : Remove a few FileWriter parameters
8014a17 - Bruno Martins, 4 years, 7 months ago : Read some detector status parameters once at startup
bdd5163 - Bruno Martins, 4 years, 7 months ago : Add'software_version' parameter
6a456cf - Bruno Martins, 4 years, 7 months ago : Major redesign: replace asyn with EPICS sockets, put Eiger-specific functions into separate eigerApi files
096fd6d - Bruno Martins, 4 years, 8 months ago : Add message when triggering the detector
722457b - Bruno Martins, 4 years, 8 months ago : Fix link status parameters names
aaffa1c - Bruno Martins, 4 years, 8 months ago : Take into account different hdf5 file structure and different 'arm' returned object between firmware versions
8cfb1ed - Bruno Martins, 4 years, 8 months ago : Remove too generic (and buggy) FAIL_IF* macros in favor of more specific ERR* macros
c06958b - Bruno Martins, 4 years, 7 months ago : Merge pull request #1 from domitto/dev
c67ecde - Diego Omitto, 4 years, 7 months ago : Enable build the driver outside of the areaDetector directory tree
073806c - Bruno Martins, 4 years, 8 months ago : Implement other trigger modes and a PV for the disarm command
05ba9ff - Bruno Martins, 4 years, 8 months ago : OPI changes: add link status; add folder selector; remove unused #Exp/Image
42fef96 - Bruno Martins, 4 years, 8 months ago : Add links status checking
d9113f5 - Bruno Martins, 4 years, 8 months ago : Simplify hdf5 file parsing
020773a - Bruno Martins, 4 years, 8 months ago : Simplify file downloading and parsing
0ac468d - Bruno Martins, 4 years, 8 months ago : Move arrayCallbacks verification wo where it actually should be checked. Increment frame number AFTER arrayCallback is called
458bd24 - Bruno Martins, 4 years, 8 months ago : Move some instructions from capture() into eigerTask()
a30e260 - Bruno Martins, 4 years, 8 months ago : Fix swapped dimensions
e57d6b7 - Bruno Martins, 4 years, 8 months ago : Replace readH5Attr custom method with standard H5LTget_attribute
56c0fed - Bruno Martins, 4 years, 8 months ago : Replace error treatment with less verbose macros
937b129 - Bruno Martins, 4 years, 8 months ago : Remove old Pilatus documentation incorrectly renamed as Eiger's. Add actual Eiger documentation
c8c5b7b - Bruno Martins, 4 years, 9 months ago : Fix includes. Fix confusing spacing on macro definition
94de395 - Bruno Martins, 4 years, 10 months ago : Update README.md
0265455 - Bruno Martins, 4 years, 10 months ago : Add pImage allocation check
6c07340 - Bruno Martins, 4 years, 10 months ago : Add toggle to enable/disable writing to disk
89323ed - Bruno Martins, 4 years, 10 months ago : Remove old operator screens
afc06a0 - Bruno Martins, 4 years, 10 months ago : Fix more permissions
b57637a - Bruno Martins, 4 years, 10 months ago : Fix CONFIG permissions
0e413a0 - Bruno Martins, 4 years, 10 months ago : Add write to local file and other fixes
5387f51 - Bruno Martins, 4 years, 10 months ago : Major code reorganization
ae8a4e1 - domitto, 4 years, 10 months ago : NDArray working
f866687 - domitto, 4 years, 10 months ago : NDArray attempt 1
b66a018 - Bruno Martins, 4 years, 10 months ago : Fix identations; Add error checks; Minor tweaks
78a71a3 - Bruno Martins, 4 years, 10 months ago : Fix st.cmd
660018d - domitto, 4 years, 10 months ago : Add read h5 file from memory
b1cecda - Bruno Martins, 4 years, 10 months ago : Initial commit

___________________________________________________________________________________________________

diff --git a/eigerApp/src/eigerDetector.cpp b/eigerApp/src/eigerDetector.cpp
index a2e5aaf..5e9f8ca 100644
--- a/eigerApp/src/eigerDetector.cpp
+++ b/eigerApp/src/eigerDetector.cpp
@@ -143,6 +143,11 @@ static void streamTaskC (void *drvPvt)
     ((eigerDetector *)drvPvt)->streamTask();
 }

+static void initializeTaskC (void *drvPvt)
+{
+    ((eigerDetector *)drvPvt)->initializeTask();
+}
+
 /* Constructor for Eiger driver; most parameters are simply passed to
  * ADDriver::ADDriver.
  * After calling the base class constructor this method creates a thread to
@@ -233,35 +238,39 @@ eigerDetector::eigerDetector (const char *portName, const char *serverHostname,
     mFileOwnerGroup = mParams.create(EigFileOwnerGroupStr, asynParamOctet);
     mFilePerms      = mParams.create(EigFilePermsStr,      asynParamInt32);
     mMonitorTimeout = mParams.create(EigMonitorTimeoutStr, asynParamInt32);
+    mStreamDecompress = mParams.create(EigStreamDecompressStr, asynParamInt32);
+    mInitialize     = mParams.create(EigInitializeStr,     asynParamInt32);

     // Metadata
-    mDescription     = mParams.create(EigDescriptionStr,     asynParamOctet,   SSDetConfig, "description");
+//    mDescription     = mParams.create(EigDescriptionStr,     asynParamOctet,   SSDetConfig, "description");

     // Acquisition
-    mWavelength       = mParams.create(EigWavelengthStr,      asynParamFloat64, SSDetConfig, "wavelength");
-    mWavelength->setEpsilon(WAVELENGTH_EPSILON);
-    mPhotonEnergy     = mParams.create(EigPhotonEnergyStr,    asynParamFloat64, SSDetConfig, "photon_energy");
+//    mWavelength       = mParams.create(EigWavelengthStr,         asynParamFloat64, SSDetConfig, "wavelength");
+//    mWavelength->setEpsilon(WAVELENGTH_EPSILON);
+    mPhotonEnergy      = mParams.create(EigPhotonEnergyStr,      asynParamFloat64, SSDetConfig, "photon_energy");
     mPhotonEnergy->setEpsilon(ENERGY_EPSILON);
-    mThreshold        = mParams.create(EigThresholdStr,       asynParamFloat64, SSDetConfig, "threshold_energy");
+    mThreshold         = mParams.create(EigThresholdStr,         asynParamFloat64, SSDetConfig, "threshold_energy");
     mThreshold->setEpsilon(ENERGY_EPSILON);
-    mNTriggers        = mParams.create(EigNTriggersStr,       asynParamInt32,   SSDetConfig, "ntrigger");
-    mCompressionAlgo  = mParams.create(EigCompressionAlgoStr, asynParamInt32,   SSDetConfig, "compression");
-    mROIMode          = mParams.create(EigROIModeStr,         asynParamInt32,   SSDetConfig, "roi_mode");
-    mAutoSummation    = mParams.create(EigAutoSummationStr,   asynParamInt32,   SSDetConfig, "auto_summation");
+    mNTriggers         = mParams.create(EigNTriggersStr,         asynParamInt32,   SSDetConfig, "ntrigger");
+    mTriggerStartDelay = mParams.create(EigTriggerStartDelayStr, asynParamFloat64, SSDetConfig, "trigger_start_delay");
+    mCompressionAlgo   = mParams.create(EigCompressionAlgoStr,   asynParamInt32,   SSDetConfig, "compression");
+    mROIMode           = mParams.create(EigROIModeStr,           asynParamInt32,   SSDetConfig, "roi_mode");
+    mAutoSummation     = mParams.create(EigAutoSummationStr,     asynParamInt32,   SSDetConfig, "auto_summation");
+    mBitDepthImage     = mParams.create(EigBitDepthImageStr,     asynParamInt32,   SSDetConfig, "bit_depth_image");

     // Detector Status Parameters
     mState      = mParams.create(EigStateStr,      asynParamOctet,   SSDetStatus, "state");
-    mError      = mParams.create(EigErrorStr,      asynParamOctet,   SSDetStatus, "error");
-    mThTemp0    = mParams.create(EigThTemp0Str,    asynParamFloat64, SSDetStatus, "board_000/th0_temp");
-    mThHumid0   = mParams.create(EigThHumid0Str,   asynParamFloat64, SSDetStatus, "board_000/th0_humidity");
-    mLink0      = mParams.create(EigLink0Str,      asynParamInt32,   SSDetStatus, "link_0");
-    mLink1      = mParams.create(EigLink1Str,      asynParamInt32,   SSDetStatus, "link_1");
-    mLink2      = mParams.create(EigLink2Str,      asynParamInt32,   SSDetStatus, "link_2");
-    mLink3      = mParams.create(EigLink3Str,      asynParamInt32,   SSDetStatus, "link_3");
-    mDCUBufFree = mParams.create(EigDCUBufFreeStr, asynParamFloat64, SSDetStatus, "builder/dcu_buffer_free");
-
-    for(int i = mLink0->getIndex(); i <= mLink3->getIndex(); ++i)
-        mParams.getByIndex(i)->setEnumValues(linkEnum);
+//    mError      = mParams.create(EigErrorStr,      asynParamOctet,   SSDetStatus, "error");
+    mThTemp0    = mParams.create(EigThTemp0Str,    asynParamFloat64, SSDetStatus, "temperature");
+    mThHumid0   = mParams.create(EigThHumid0Str,   asynParamFloat64, SSDetStatus, "humidity");
+//    mLink0      = mParams.create(EigLink0Str,      asynParamInt32,   SSDetStatus, "link_0");
+//    mLink1      = mParams.create(EigLink1Str,      asynParamInt32,   SSDetStatus, "link_1");
+//    mLink2      = mParams.create(EigLink2Str,      asynParamInt32,   SSDetStatus, "link_2");
+//    mLink3      = mParams.create(EigLink3Str,      asynParamInt32,   SSDetStatus, "link_3");
+//    mDCUBufFree = mParams.create(EigDCUBufFreeStr, asynParamFloat64, SSDetStatus, "builder/dcu_buffer_free");
+
+//    for(int i = mLink0->getIndex(); i <= mLink3->getIndex(); ++i)
+//        mParams.getByIndex(i)->setEnumValues(linkEnum);

     // File Writer
     mFWEnable       = mParams.create(EigFWEnableStr,       asynParamInt32, SSFWConfig,  "mode");
@@ -269,16 +278,16 @@ eigerDetector::eigerDetector (const char *portName, const char *serverHostname,
     mFWCompression  = mParams.create(EigFWCompressionStr,  asynParamInt32, SSFWConfig,  "compression_enabled");
     mFWNamePattern  = mParams.create(EigFWNamePatternStr,  asynParamOctet, SSFWConfig,  "name_pattern");
     mFWNImgsPerFile = mParams.create(EigFWNImgsPerFileStr, asynParamInt32, SSFWConfig,  "nimages_per_file");
-    mFWImgNumStart  = mParams.create(EigFWImgNumStartStr,  asynParamInt32, SSFWConfig,  "image_nr_start");
-    mFWState        = mParams.create(EigFWStateStr,        asynParamOctet, SSFWStatus,  "state");
-    mFWFree         = mParams.create(EigFWFreeStr,         asynParamInt32, SSFWStatus,  "buffer_free");
-    mFWClear        = mParams.create(EigFWClearStr,        asynParamInt32, SSFWCommand, "clear");
+//    mFWImgNumStart  = mParams.create(EigFWImgNumStartStr,  asynParamInt32, SSFWConfig,  "image_nr_start");
+//    mFWState        = mParams.create(EigFWStateStr,        asynParamOctet, SSFWStatus,  "state");
+//    mFWFree         = mParams.create(EigFWFreeStr,         asynParamInt32, SSFWStatus,  "buffer_free");
+//    mFWClear        = mParams.create(EigFWClearStr,        asynParamInt32, SSFWCommand, "clear");

     // Monitor API Parameters
     mMonitorEnable  = mParams.create(EigMonitorEnableStr,  asynParamInt32, SSMonConfig, "mode");
     mMonitorEnable->setEnumValues(modeEnum);
     mMonitorBufSize = mParams.create(EigMonitorBufSizeStr, asynParamInt32, SSMonConfig, "buffer_size");
-    mMonitorState   = mParams.create(EigMonitorStateStr,   asynParamOctet, SSMonStatus, "state");
+//    mMonitorState   = mParams.create(EigMonitorStateStr,   asynParamOctet, SSMonStatus, "state");

     // Stream API Parameters
     mStreamEnable     = mParams.create(EigStreamEnableStr,    asynParamInt32, SSStreamConfig, "mode");
@@ -293,14 +302,22 @@ eigerDetector::eigerDetector (const char *portName, const char *serverHostname,
     mTriggerMode       = mParams.create(ADTriggerModeString,       asynParamInt32,   SSDetConfig, "trigger_mode");
     mTriggerMode->setEnumValues(triggerModeEnum);

-    mFirmwareVersion   = mParams.create(ADFirmwareVersionString,   asynParamOctet,   SSDetConfig, "software_version");
+//    mFirmwareVersion   = mParams.create(ADFirmwareVersionString,   asynParamOctet,   SSDetConfig, "software_version");
     mSerialNumber      = mParams.create(ADSerialNumberString,      asynParamOctet,   SSDetConfig, "detector_number");
-    mTemperatureActual = mParams.create(ADTemperatureActualString, asynParamFloat64, SSDetStatus, "board_000/th0_temp");
+    mTemperatureActual = mParams.create(ADTemperatureActualString, asynParamFloat64, SSDetStatus, "temperature");
     mNDArraySizeX      = mParams.create(NDArraySizeXString,        asynParamInt32,   SSDetConfig, "x_pixels_in_detector");
     mNDArraySizeY      = mParams.create(NDArraySizeYString,        asynParamInt32,   SSDetConfig, "y_pixels_in_detector");

     // Test if the detector is initialized
-    if(mDescription->fetch())
+    if(mState->fetch())
+    {
+        ERR("Cannot fetch state. Eiger could be disconnected.");
+        setStringParam(ADStatusMessage, "Eiger FAILED TO CONNECT");
+        return;
+    }
+    std::string state;
+    mState->get(state);
+    if(state == "na")
     {
         ERR("Eiger seems to be uninitialized\nInitializing... (may take a while)");

@@ -370,6 +387,10 @@ eigerDetector::eigerDetector (const char *portName, const char *serverHostname,
             epicsThreadGetStackSize(epicsThreadStackMedium),
             (EPICSTHREADFUNC)streamTaskC, this) == NULL);

+    status |= (epicsThreadCreate("eigerInitializeTask", epicsThreadPriorityHigh,
+            epicsThreadGetStackSize(epicsThreadStackMedium),
+            (EPICSTHREADFUNC)initializeTaskC, this) == NULL);
+
     if(status)
         ERR("epicsThreadCreate failure for some task");
 }
@@ -406,20 +427,25 @@ asynStatus eigerDetector::writeInt32 (asynUser *pasynUser, epicsInt32 value)
         else if (!value && adStatus == ADStatusAcquire)
         {
             unlock();
-            mApi.abort();
+            mApi.disarm();
             lock();
             setIntegerParam(ADStatus, ADStatusAborted);
             mStopEvent.signal();
         }
         setIntegerParam(ADAcquire, value);
     }
-    else if (function == mFWClear->getIndex())
-    {
-        status = (asynStatus) mFWClear->put(1);
-        mFWFree->fetch();
-    }
+//    else if (function == mFWClear->getIndex())
+//    {
+//        status = (asynStatus) mFWClear->put(1);
+//        mFWFree->fetch();
+//    }
     else if (function == ADReadStatus)
         status = eigerStatus();
+    else if (function == mInitialize->getIndex() && value == 1)
+    {
+        setIntegerParam(mInitialize->getIndex(), 1);
+        mInitializeEvent.signal();
+    }
     else if (function == mTrigger->getIndex())
         mTriggerEvent.signal();
     else if (function == mFilePerms->getIndex())
@@ -430,7 +456,7 @@ asynStatus eigerDetector::writeInt32 (asynUser *pasynUser, epicsInt32 value)
         if ((p == mDataSource) && (value == SOURCE_STREAM)) {
             mStreamEnable->put(0);
             mStreamEnable->put(1);
-        }
+        }
     }
     else if(function < mFirstParam)
         status = ADDriver::writeInt32(pasynUser, value);
@@ -485,13 +511,13 @@ asynStatus eigerDetector::writeFloat64 (asynUser *pasynUser, epicsFloat64 value)
         mThreshold->put(value);
         setStringParam(ADStatusMessage, "Threshold Energy set");
     }
-    else if (function == mWavelength->getIndex())
-    {
-        setStringParam(ADStatusMessage, "Setting Wavelength...");
-        callParamCallbacks();
-        mWavelength->put(value);
-        setStringParam(ADStatusMessage, "Wavelength set");
-    }
+//    else if (function == mWavelength->getIndex())
+//    {
+//        setStringParam(ADStatusMessage, "Setting Wavelength...");
+//        callParamCallbacks();
+//        mWavelength->put(value);
+//        setStringParam(ADStatusMessage, "Wavelength set");
+//    }
     else if((p = mParams.getByIndex(function)))
         status = (asynStatus) p->put(value);
     else if(function < mFirstParam)
@@ -627,7 +653,7 @@ void eigerDetector::controlTask (void)
     int dataSource, adStatus;
     int sequenceId, saveFiles, numImages, numTriggers;
     int numImagesPerFile;
-    double acquirePeriod, triggerTimeout = 0.0, triggerExposure = 0.0;
+    double acquirePeriod, triggerStartDelay, triggerTimeout = 0.0, triggerExposure = 0.0;
     int savedNumImages, filePerms;

     lock();
@@ -661,6 +687,7 @@ void eigerDetector::controlTask (void)
         mNTriggers->get(numTriggers);
         mTriggerMode->get(triggerMode);
         mManualTrigger->get(manualTrigger);
+        mTriggerStartDelay->get(triggerStartDelay);
         mFWAutoRemove->get(removeFiles);
         mFWCompression->get(compression);
         mCompressionAlgo->get(compressionAlgo);
@@ -671,9 +698,9 @@ void eigerDetector::controlTask (void)
             err = "FileWriter API is disabled";
         else if(dataSource == SOURCE_STREAM && !streamEnable)
             err = "Stream API is disabled";
-        else if(dataSource != SOURCE_NONE && compression &&
+        else if(dataSource == SOURCE_FILEWRITER && compression &&
                 compressionAlgo == "bslz4")
-            err = "Driver can't decode BSLZ4";
+            err = "Driver can't decode BSLZ4 HDF5 files";

         // If saving files, check if the File Path is valid
         if(fwEnable && saveFiles)
@@ -774,7 +801,7 @@ void eigerDetector::controlTask (void)
         {
             if(triggerMode == "ints")
             {
-                triggerTimeout  = acquirePeriod*numImages + 10.0;
+                triggerTimeout  = triggerStartDelay + acquirePeriod*numImages + 10.0;
                 triggerExposure = 0.0;
             }

@@ -1125,7 +1152,7 @@ void eigerDetector::reapTask (void)
             if(file->remove)
                 mApi.deleteFile(file->name);

-            mFWFree->fetch();
+//            mFWFree->fetch();

             if(file->data)
             {
@@ -1236,16 +1263,38 @@ void eigerDetector::streamTask (void)
                 continue;
             }

-            StreamAPI::uncompress(&frame, (char*)pArray->pData);
-            free(frame.data);

-            int imageCounter, numImagesCounter, arrayCallbacks;
+            int imageCounter, numImagesCounter, arrayCallbacks, decompress;
             lock();
             getIntegerParam(NDArrayCounter, &imageCounter);
             getIntegerParam(ADNumImagesCounter, &numImagesCounter);
             getIntegerParam(NDArrayCallbacks, &arrayCallbacks);
+            mStreamDecompress->get(decompress);
             unlock();

+            if (decompress) {
+                StreamAPI::uncompress(&frame, (char*)pArray->pData);
+            } else {
+                unsigned char *pInput=(unsigned char*)frame.data;
+                if (strcmp(frame.encoding, "lz4<") == 0) {
+                    pArray->codec.name = "lz4";
+                }
+                else if ((strcmp(frame.encoding, "bs32-lz4<") == 0) ||
+                         (strcmp(frame.encoding, "bs16-lz4<") == 0)) {
+                    pArray->codec.name = "bslz4";
+                    pInput += 12;
+                }
+                else {
+                    ERR_ARGS("unknown encoding %s", frame.encoding);
+                    free(frame.data);
+                    continue;
+                }
+                pArray->compressedSize = frame.compressedSize;
+                memcpy(pArray->pData, pInput, frame.compressedSize);
+            }
+            free(frame.data);
+
+
             // Put the frame number and timestamp into the buffer
             pArray->uniqueId = imageCounter;

@@ -1282,6 +1331,32 @@ end:
     }
 }

+void eigerDetector::initializeTask()
+{
+    const char *functionName = "initializeTask";
+    for(;;)
+    {
+        mInitializeEvent.wait();
+
+        asynPrint(this->pasynUserSelf, ASYN_TRACE_WARNING,
+                  "%s:%s: Sending initialize command\n",
+                  driverName, functionName);
+
+        int status = mApi.initialize();
+
+        lock();
+        setIntegerParam(mInitialize->getIndex(), 0);
+        unlock();
+
+        if (status) {
+            ERR("Failed to initialize");
+        }
+
+        // Clear events
+        mInitializeEvent.tryWait();
+    }
+}
+
 asynStatus eigerDetector::initParams (void)
 {
     int status = asynSuccess;
@@ -1305,15 +1380,15 @@ asynStatus eigerDetector::initParams (void)
     setIntegerParam(ADMaxSizeX, maxSizeX);
     setIntegerParam(ADMaxSizeY, maxSizeY);

-    string description;
-    status |= mDescription->get(description);
+//    string description;
+//    status |= mDescription->get(description);

-    size_t space = description.find(' ');
-    string manufacturer(description, 0, space);
-    string model(description, space+1);
+//    size_t space = description.find(' ');
+//    string manufacturer(description, 0, space);
+//    string model(description, space+1);

-    status |= setStringParam (ADManufacturer, manufacturer);
-    status |= setStringParam (ADModel, model);
+//    status |= setStringParam (ADManufacturer, manufacturer);
+//    status |= setStringParam (ADModel, model);

     // Set some default values
     status |= setIntegerParam(NDArraySize, 0);
@@ -1330,10 +1405,10 @@ asynStatus eigerDetector::initParams (void)
     mFilePerms->put(0644);

     // Auto Summation should always be true (SIMPLON API Reference v1.3.0)
-    mAutoSummation->put(true);
+//    mAutoSummation->put(true);

     // This driver expects the following parameters to always have the same value
-    mFWImgNumStart->put(DEFAULT_NR_START);
+//    mFWImgNumStart->put(DEFAULT_NR_START);
     mMonitorBufSize->put(1);

     callParamCallbacks();
@@ -1598,17 +1673,17 @@ asynStatus eigerDetector::eigerStatus (void)
     // If we are acquiring return immediately
     int acquiring;
     getIntegerParam(ADAcquire, &acquiring);
-    if (acquiring)
+    if (acquiring)
         return asynSuccess;

     // Request a status update
-    if(mApi.statusUpdate())
-        return asynError;
+//    if(mApi.statusUpdate())
+//        return asynError;

     int status = 0;
     // Read state and error message
     status |= mState->fetch();
-    status |= mError->fetch();
+//    status |= mError->fetch();

     // Read temperature and humidity
     status |= mThTemp0->fetch();
@@ -1616,27 +1691,27 @@ asynStatus eigerDetector::eigerStatus (void)
     status |= mThHumid0->fetch();

     // Read the status of each individual link between the head and the server
-    status |= mLink0->fetch();
-    status |= mLink1->fetch();
-    std::string model;
-    getStringParam(ADModel, model);
-    // The Eiger 500K does not have link2 or link3
-    if (model.find("500K") == std::string::npos) {
-        status |= mLink2->fetch();
-        status |= mLink3->fetch();
-    }
+//    status |= mLink0->fetch();
+//    status |= mLink1->fetch();
+//    std::string model;
+//    getStringParam(ADModel, model);
+//    // The Eiger 500K does not have link2 or link3
+//    if (model.find("500K") == std::string::npos) {
+//        status |= mLink2->fetch();
+//        status |= mLink3->fetch();
+//    }

     // Read DCU buffer free percentage
-    status |= mDCUBufFree->fetch();
+//    status |= mDCUBufFree->fetch();

     // Read state of the different modules
     status |= mState->fetch();
-    status |= mMonitorState->fetch();
+//    status |= mMonitorState->fetch();
     status |= mStreamState->fetch();

     // Read a few more interesting parameters
     status |= mStreamDropped->fetch();
-    status |= mFWFree->fetch();
+//    status |= mFWFree->fetch();

     callParamCallbacks();
     return status==0 ? asynSuccess : asynError;

Best,
Jong Woo

________________________________
From: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Sent: Wednesday, February 5, 2020 4:50 PM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: RE: areaDetector crashes EPICS IOC and autosave failure


Hi Jong Woo,



OK, I understand the problem.



You have an Eiger2 detector, which is not compatible with the master branch of ADEiger.  The master branch works with the original Eiger detectors, not the Eiger2 which has some differences in the API.



There is a 1.8 branch at Diamond which is designed to work with the Eiger2.



https://github.com/dls-controls/ADEiger/tree/1.8<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dls-2Dcontrols_ADEiger_tree_1.8&d=DwMFAw&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=jQLBRIjfVIZdegoYtkEZFTtayebs6THd-2Z5IGI6b-0&s=hi5YVkb5KRswigUxciyWr2KTxV6S6k1rhyJuiJwtYYU&e=>



You are on the master branch, but you are 16 commits ahead of master.  Where did you get those commits?



?  git diff R2-6 eigerDetector.cpp



You need to give that command after you cd to eigerApp/src.



Mark





From: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Sent: Wednesday, February 5, 2020 5:37 PM
To: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: Re: areaDetector crashes EPICS IOC and autosave failure



Hi Mark,



Yes, it is Eiger2 4M from Dectris.



This is on the line 871 in eigerDetector.cpp.



                mFWState->get(fwAcquire);



I think it is master branch.



[ADEiger]$ git status

# On branch master

# Your branch is ahead of 'origin/master' by 16 commits.

#   (use "git push" to publish your local commits)

#

# Changes not staged for commit:

#   (use "git add <file>..." to update what will be committed)

#   (use "git checkout -- <file>..." to discard changes in working directory)

#

#       modified:   iocs/eigerIOC/iocBoot/iocEiger/st.cmd

#

# Untracked files:

#   (use "git add <file>..." to include in what will be committed)

#

#       iocs/eigerIOC/iocBoot/iocEiger/Eigerioc.log

no changes added to commit (use "git add" and/or "git commit -a")

[ADEiger]$ git diff R2-6 eigerDetector.cpp

fatal: ambiguous argument 'eigerDetector.cpp': unknown revision or path not in the working tree.

Use '--' to separate paths from revisions, like this:

'git <command> [<revision>...] -- [<file>...]'



Best,

Jong Woo













________________________________

From: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Sent: Wednesday, February 5, 2020 4:11 PM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: RE: areaDetector crashes EPICS IOC and autosave failure



Hi Jong Woo,



What model Eiger are you using?  Is it from Dectris?



You said you were running R2-7 of ADEiger.  This is not possible R2-7 has not been tagged yet.  Are you running the current master branch, or R2-6?



Something is wrong, because your gdb traceback shows that eigerDetector.cpp line 871 is calling eigerParam::get.



In the master branch of eigerDetector.cpp line 871 is the first line below.  In R2-6 line 871 is the second line below.  Neither are calling eigerParam::get().



        if(adStatus == ADStatusAcquire || (adStatus == ADStatusAborted && success))

            setIntegerParam(ADStatus, ADStatusIdle);



Please verify what version of ADEiger you have.  Are you running a git clone?  If so please type



git status

git diff R2-6 eigerDetector.cpp



Mark





From: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Sent: Wednesday, February 5, 2020 4:41 PM
To: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: Re: areaDetector crashes EPICS IOC and autosave failure



Hi Mark,



Thank you so much. I followed exactly what you said and I've got the followings



(gdb) backtrace

#0  EigerParam::get (this=0x0, value="") at ../eigerParam.cpp:410

#1  0x000000000050fe8c in eigerDetector::controlTask (this=0x16f8290) at ../eigerDetector.cpp:871

#2  0x0000000000fecc0c in start_routine (arg=0x1709ea0) at ../../../src/libCom/osi/os/posix/osdThread.c:403

#3  0x00007ffff7402ea5 in start_thread () from /lib64/libpthread.so.0

#4  0x00007ffff62ba8cd in clone () from /lib64/libc.so.6



Best,

Jong Woo



________________________________

From: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Sent: Wednesday, February 5, 2020 3:04 PM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: RE: areaDetector crashes EPICS IOC and autosave failure



For me on Centos 7 (very similar to RHEL 7) I get core.xxxxx files in the current working directory.  I am not sure what I set up to get that, nothing that I remember.



However, you don't need to get a core file at all, you can just run your IOC under gdb to start with.



Type the following:



gdb [path_to_ioc_application]



where [path_to_ioc_application] is the command you normally type to start the IOC, but without the second st.cmd argument.



Once you get the gdb prompt type

run st.cmd



Then when the IOC crashes you can type the command:



backtrace



Mark





From: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Sent: Wednesday, February 5, 2020 2:50 PM
To: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: Re: areaDetector crashes EPICS IOC and autosave failure



Red hat enterprise linux 7.



Get Outlook for iOS<https://urldefense.proofpoint.com/v2/url?u=https-3A__aka.ms_o0ukef&d=DwMFAw&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=rSWvuporrXwSIHqxIRKGsnuKWir15VGkRCCmyGKazhw&s=HiOfOlXGDixHyE-i8nE6_GG9hyTHhA42lp7er7bcTs4&e=>

________________________________

From: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>>
Sent: Wednesday, February 5, 2020 1:45:36 PM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu>>
Cc: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Subject: Re: areaDetector crashes EPICS IOC and autosave failure



What version of Linux are you running?


Sent from my iPhone

On Feb 5, 2020, at 2:16 PM, Jong Woo Kim via Tech-talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>> wrote:


Thank you Mark, Michael and Guy.  But I couldn't find any core dump files. There is folder /var/lib/systemd/coredump. But there is nothing in there. I also used the command 'coredumpctl'. I think something should appear if any.

$ coredumpctl list
No coredumps found.

The message keeps saying like below.

Segmentation fault (core dumped)

What's wrong?

________________________________
From: Jennings, Guy <jennings at anl.gov<mailto:jennings at anl.gov<mailto:jennings at anl.gov%3cmailto:jennings at anl.gov>>>
Sent: Wednesday, February 5, 2020 6:39 AM
To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu%3cmailto:Jong.Woo.Kim at asu.edu>>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>> >> EPICS Tech Talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>>
Subject: Re: areaDetector crashes EPICS IOC and autosave failure

To get a core dump out of systemd use the coredumpctl command.

See

man coredumpctl

or try

coredumpctl debug



> On Feb 4, 2020, at 4:56 PM, Jong Woo Kim via Tech-talk <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>> wrote:
>
> Hi Mark,
>
> Thank you so much for letting me know. I could not find "core" in eigerDetectorApp or in any folder around it. Instead, I found systemd-coredump in  "/usr/lib/systemd/systemd-coredump".
> The following is the result of running gdb and bt. It seems okay to me. Is this a wrong file?
>
> $ gdb systemd-coredump
> GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-115.el7
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <https://urldefense.proofpoint.com/v2/url?u=http-3A__gnu.org_licenses_gpl.html&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=5SqrqeDD_u5q7YAVAq3G5t22J2QiTSh0ygG4_hwdBFM&e= <https://urldefense.proofpoint.com/v2/url?u=http-3A__gnu.org_licenses_gpl.html&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=5SqrqeDD_u5q7YAVAq3G5t22J2QiTSh0ygG4_hwdBFM&e=%20> >
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-redhat-linux-gnu".
> For bug reporting instructions, please see:
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_software_gdb_bugs_&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=yiatgN5YlRyxrEDD5VI0j6rOEa6rPgM-oDRq8LFNNNQ&e= <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_software_gdb_bugs_&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=yiatgN5YlRyxrEDD5VI0j6rOEa6rPgM-oDRq8LFNNNQ&e=%20> >...
> Reading symbols from /usr/lib/systemd/systemd-coredump...Reading symbols from /usr/lib/systemd/systemd-coredump...(no debugging symbols found)...done.
> (no debugging symbols found)...done.
> Missing separate debuginfos, use: debuginfo-install systemd-219-67.el7_7.2.x86_64
> (gdb) bt
> No stack.
>
>
>
>
> From: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu%3cmailto:rivers at cars.uchicago.edu>>>
> Sent: Friday, January 31, 2020 4:56 PM
> To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu%3cmailto:Jong.Woo.Kim at asu.edu>>>
> Cc: tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>> <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>>
> Subject: RE: areaDetector crashes EPICS IOC and autosave failure
>
> Hi Jong Woo,
>
> ?  $ gdb /path/to/ADEiger_executable core     --- > coredump doesn't work either
>
> I was not clear in my instructions. "/path/to/ADEiger_executable" is not what you should type, you should type the actual path, which is probably something like:
>
> EPICS/synApps_6_1/support/areaDetector-R3-7/ADEiger/iocs/eigerIOC/bin/linux-x86_64/eigerDetectorApp.
>
> And "core" is the name of the actual core.* file that was created when you got the core dump message when the IOC crashed. It is probably in your iocBoot/iocEiger directory.  But on some systems it can be put in /var or somewhere else.
>
> Mark
>
>
>
> From: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu%3cmailto:Jong.Woo.Kim at asu.edu>>>
> Sent: Friday, January 31, 2020 5:45 PM
> To: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu%3cmailto:rivers at cars.uchicago.edu>>>
> Cc: tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>
> Subject: Re: areaDetector crashes EPICS IOC and autosave failure
>
> Hi Mark,
>
> Thank you so much. I resolved first two issues. But I'm still working on the last one 'eigerDetector crashes EPICS IOC'  ( e.i. Segmentation fault (core dumped) )
> I wasn't able to find where it crashed. The following is the message I've got.
>
> Note that the version of areaDetector, ADEiger, ADCore and EPICS base are R3-7, R2-7, R3-8, 3-15-6, respectively.
> We're using FileWriter interface to save data files.
> ____________________________________________________________
>
> $ gdb /path/to/ADEiger_executable core     --- > coredump doesn't work either
> GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-115.el7
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <https://urldefense.proofpoint.com/v2/url?u=http-3A__gnu.org_licenses_gpl.html&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=5SqrqeDD_u5q7YAVAq3G5t22J2QiTSh0ygG4_hwdBFM&e= <https://urldefense.proofpoint.com/v2/url?u=http-3A__gnu.org_licenses_gpl.html&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=5SqrqeDD_u5q7YAVAq3G5t22J2QiTSh0ygG4_hwdBFM&e=%20> >
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-redhat-linux-gnu".
> For bug reporting instructions, please see:
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_software_gdb_bugs_&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=yiatgN5YlRyxrEDD5VI0j6rOEa6rPgM-oDRq8LFNNNQ&e= <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_software_gdb_bugs_&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=yiatgN5YlRyxrEDD5VI0j6rOEa6rPgM-oDRq8LFNNNQ&e=%20> >...
> /path/to/ADEiger_executable: No such file or directory.
> .../EPICS/synApps_6_1/support/areaDetector-R3-7/ADEiger/iocs/eigerIOC/iocBoot/iocEiger/autosave/core: No such file or directory.
> (gdb)
>
> ____________________________________________________________
>
> I researched for coredump files
> ____________________________________________________________
>
> .../systemd/coredump.conf
> .../bin/coredumpctl
> .../bin/systemd-coredumpctl
> .../lib/systemd/systemd-coredump
> .../share/bash-completion/completions/coredumpctl
> .../share/man/man1/coredumpctl.1.gz
> .../share/man/man5/coredump.conf.5.gz
> .../share/man/man5/coredump.conf.d.5.gz
> .../share/man/man8/systemd-coredump.8.gz
> .../share/zsh/site-functions/_coredumpctl
> .../include/config/coredump.h
> .../include/config/dev/coredump.h
> .../include/config/want/dev/coredump.h
> .../include/linux/coredump.h
> .../include/linux/devcoredump.h
> .../include/config/coredump.h
> .../include/config/dev/coredump.h
> .../include/config/want/dev/coredump.h
> .../include/linux/coredump.h
> .../include/linux/devcoredump.h
> .../include/config/coredump.h
> .../include/config/dev/coredump.h
> .../include/config/want/dev/coredump.h
> .../include/linux/coredump.h
> .../include/linux/devcoredump.h
> .../lib/systemd/coredump
> ____________________________________________________________
>
> This is one of examples that results from gdb.
> ____________________________________________________________
>
> $ gdb /var/lib/systemd/coredump
> GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-115.el7
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <https://urldefense.proofpoint.com/v2/url?u=http-3A__gnu.org_licenses_gpl.html&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=5SqrqeDD_u5q7YAVAq3G5t22J2QiTSh0ygG4_hwdBFM&e= <https://urldefense.proofpoint.com/v2/url?u=http-3A__gnu.org_licenses_gpl.html&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=5SqrqeDD_u5q7YAVAq3G5t22J2QiTSh0ygG4_hwdBFM&e=%20> >
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-redhat-linux-gnu".
> For bug reporting instructions, please see:
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_software_gdb_bugs_&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=yiatgN5YlRyxrEDD5VI0j6rOEa6rPgM-oDRq8LFNNNQ&e= <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.gnu.org_software_gdb_bugs_&d=DwIGaQ&c=l45AxH-kUV29SRQusp9vYR0n1GycN4_2jInuKy6zbqQ&r=yfk-0Txa5oue0MIb0KpWAdOXJcpJMv_fkmChV49LPGY&m=DlM9V0xn01k9a4UG8Jo1piG8GCzfUEywJvqtMidZ8j0&s=yiatgN5YlRyxrEDD5VI0j6rOEa6rPgM-oDRq8LFNNNQ&e=%20> >...
> /var/lib/systemd/coredump: Success.
>
>
>
>
> From: Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu%3cmailto:rivers at cars.uchicago.edu>>>
> Sent: Thursday, January 30, 2020 10:35 AM
> To: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu%3cmailto:Jong.Woo.Kim at asu.edu>>>
> Cc: Jong Woo Kim <jongwoo.email at gmail.com<mailto:jongwoo.email at gmail.com<mailto:jongwoo.email at gmail.com%3cmailto:jongwoo.email at gmail.com>>>; tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>> <tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>>
> Subject: RE: areaDetector crashes EPICS IOC and autosave failure
>
> Hi Jong Woo,
>
> You have not told us what version of ADEiger, ADCore, EPICS base, etc. you are using.
>
> ?  a) It keeps failing to open 'sseq_setting.req' file (Purple in the following message)
>
> Did you uncomment this line from ADCore/iocBoot/EXAMPLE_commonPlugin_settings.req?
> #file "sseqRecord_settings.req",     P=$(P),  S=AcquireSequence
>
> If so you also need to uncomment this line from ADCore/iocBoot/EXAMPLE_commonPlugins.cmd
> #set_requestfile_path("$(CALC)/calcApp/Db")
>
> ?  b) It keeps failing to writing 'auto_settings.sav' file (Blue in the following message)
> ?  ../save_restore.c(1774): [0xd]=write_it:Permission denied
>
> That error seems pretty simple.  It is a file permission problem.  The files in that directory, or the directory itself, must not have write permission for the account that is running ADEiger application.  Fix the file permissions.
>
> ?  c) When the data acquisition is done on eigerDetector, it crashes EPICS IOC (Red in the following message)
> ?  Actually data hasn't been collected
> Segmentation fault (core dumped)
>
> You have a core dump file.  You need to run gdb on that to find where it crashed.
> Run this:
> gdb /path/to/ADEiger_executable core.xxx
>
> where core.xxx is the name of your core dump file.  Once you get the gdb> prompt type this command
> backtrace
>
> Mark
>
>
> From: Tech-talk <tech-talk-bounces at aps.anl.gov<mailto:tech-talk-bounces at aps.anl.gov<mailto:tech-talk-bounces at aps.anl.gov%3cmailto:tech-talk-bounces at aps.anl.gov>>> On Behalf Of Jong Woo Kim via Tech-talk
> Sent: Thursday, January 30, 2020 10:33 AM
> To: tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov%3cmailto:tech-talk at aps.anl.gov>>
> Cc: Jong Woo Kim <Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu<mailto:Jong.Woo.Kim at asu.edu%3cmailto:Jong.Woo.Kim at asu.edu>>>; Jong Woo Kim <jongwoo.email at gmail.com<mailto:jongwoo.email at gmail.com<mailto:jongwoo.email at gmail.com%3cmailto:jongwoo.email at gmail.com>>>
> Subject: areaDetector crashes EPICS IOC and autosave failure
>
> Hello,
>
> When the data collection is done on 'eigerDetector.adl', EPICS IOC is crashed and actually data hasn't been collected.
> In addition, whatever parameters I changed on 'eigerDetector' are not applied in autosave. These are the summary followed by the message.
>
> a) It keeps failing to open 'sseq_setting.req' file (Purple in the following message)
>      I made sure that this file has contents and it is in a right folder
>           support/calc-R3-7-3/calcApp/Db/sseq_settings.req
>           support/calc-R3-7-3/db/sseq_settings.req
>
> b) It keeps failing to writing 'auto_settings.sav' file (Blue in the following message)
>      It keeps trying to save settings every 30 second as it is set on the first purple line. But it can't.
>
> c) When the data acquisition is done on eigerDetector, it crashes EPICS IOC (Red in the following message)
>      Actually data hasn't been collected
>
>
> --------------------------------------------------- Message on monitor--------------------------------------------------------------
>
> ############################################################################
> ## EPICS R3.15.6
> ## EPICS Base built Dec  2 2019
> ############################################################################
> reboot_restore: entry for file 'auto_settings.sav'
> reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
> *** restoring from './autosave/auto_settings.sav' at initHookState 6 (before record/device init) ***
> save_restore:myFileCopy: Can't open file './autosave/auto_settings.sav_200127-151325'
> save_restore: Can't write backup file.
> 2020/01/27 15:13:25.455 asynPortDriver:drvUserCreate: addr=0, cannot find parameter CLEAR
> EIG1:cam1:FWClear devAsynInt32::initCommon drvUserCreate
> Bad init_rec return value  PV: EIG1:cam1:FWClear ao: init_record
>
> reboot_restore: entry for file 'auto_settings.sav'
> reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.
> *** restoring from './autosave/auto_settings.sav' at initHookState 7 (after record/device init) ***
> reboot_restore: done with file 'auto_settings.sav'
>
> iocRun: All initialization complete
> # Avoid deluge of messages when debugging
> #dbpf $(PREFIX)cam1:PoolUsedMem.SCAN Passive
> # save things every thirty seconds
> create_monitor_set("auto_settings.req", 30, "P= EIG1:")
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> save_restore:readReqFile: unable to open file sseq_settings.req. Exiting.
> epics> save_restore: Can't connect to all status PV(s)
> auto_settings.sav: 1330 of 1330 PV's connected
> save_restore: Can't connect to status PV(s) for list 'auto_settings.sav'
> save_restore:write_it - unable to open file './autosave/auto_settings.sav' [200127-151357]
> *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
> save_restore:write_save_file: Can't write save file. [200127-151357]
> *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
> ../save_restore.c(1774): [0xd]=write_it:Permission denied
> save_restore:write_it - unable to open file './autosave/auto_settings.sav' [200127-151427]
> *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
> save_restore:write_save_file: Can't write save file. [200127-151427]
> *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
> ../save_restore.c(1774): [0xd]=write_it:Permission denied
> Segmentation fault (core dumped)
> [iocEiger]$

References:
areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
RE: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
RE: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jennings, Guy via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
RE: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
RE: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
RE: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk

Navigate by Date:
Prev: Re: send/receive waveform over network. Mark Rivers via Tech-talk
Next: Re: lock/unlock mutex problem Johnson, Andrew N. via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: areaDetector crashes EPICS IOC and autosave failure Jong Woo Kim via Tech-talk
Next: RE: areaDetector crashes EPICS IOC and autosave failure Mark Rivers via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 06 Feb 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·