...
- What has already been done?
- We have a working version of the HDF5 DAQ, and now we are working on making it robust
- Sharon has shown that HDF5 file writing in "Streaming" mode is very fast.
- Now we want to extend capability for scans so that we have 1 file per camera.
- How to save scan image data into HDF5 file?
- Use PVs:
- extraDimSizeN = Number of shots per step
- nExtraDims = Number of scan dimensions (0 = simple DAQ, 1 = 1D scan, 2 = 2D scan . . .)
- extraDimSizeX = Number of steps for Dim 1
- extraDimSizeY = Number of steps for Dim 2
- extraDimSize3 = Number of steps for Dim 3
- . . .
- These PVs implicitly control the NumCapture PV
- NumCapture_RBV = extraDimSizeN * extraDimSizeX * extraDimSizeY * . . . (depending on number of nExtraDims)
- Use PVs:
- In this scheme, we have to carefully control the triggers so that each scan step gets exactly the right number
- We will use a new feature to do this:
- EVNT:SYS1:1:PMAQCTRL.H = extraDimSizeN = Number of shots per step
- EVNT:SYS1:1:PMAQCTRL.E = 0/1 to stop/start triggers to cameras
- Need to toggle back to 0 after every step
- Set EVNT:SYS1:1:PMAQCTRL.H back to zero at end of scan
- We will use a new feature to do this:
- What happens if the camera does not receive all triggers?
- Then scan steps are kind of messed up . . . think about how best to handle this with pulse ID
- Prefer "NDArrayUniqueId" to be "NDArrayPulseId"
- Make caput/lcaPut/lcaPutSmart consistent
- "BSA buffer" for UV spectrometer IOC?
...