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: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:areaDetector/ADEiger
c8fd86c - Mark Rivers, 9 months ago : Changed IP address
e47d6c1 - Mark Rivers, 9 months ago : Merge branch 'master' of 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: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