epics-modules / Dante

EPICS module for support of Dante digital pulse processors
1 stars 4 forks source link

Dante8 support #11

Open MarkRivers opened 3 years ago

MarkRivers commented 3 years ago

I am creating this issue to track progress on support for the Dante8.

The master branch only works correctly with the single-channel Dante.

The dante8 branch is where work is being done on support for the Dante8.

MarkRivers commented 3 years ago

The ADC trace is now working correctly on the Dante8 and the Dante1.

This is a screen shot for the Dante8.

image

The Dante8 only had a real detector input on the first channel, the other channels were disconnected.

The code was simplified by having a single PV that reads the ADC traces. The dante::getTraces() method reads all of the trace arrays and does callbacks on the TraceData waveform records, which are now I/O Intr scanned, rather than periodically scanned.

MarkRivers commented 3 years ago

The DPP parameters are now working with the Dante8. This screen shot shows all of the DPP parameters for all 8 channels.

image

The Copy1->All button copies the value from Channel1 to all of the other channels. It is implemented in the danteMED.st State Notation Language Program.

MarkRivers commented 3 years ago

The statistics appear to be working for all 8 channels.

image

The statistics are periodically updated.

I don't understand why channels 2 and 4 have no baseline counts.

MarkRivers commented 3 years ago

The MCA spectra appear to be working. In this case only channe1 has a real detector connected.

image

I don't understand why channels 2 and 4 do not have any counts at zero energy. UPDATE: this was because they have cables attached. Having a cable attached but not connected to anything greatly increases baseline noise for some reason.

MarkRivers commented 3 years ago

The following still need to be implemented or tested.

MarkRivers commented 3 years ago

Most everything is complete and working. All of the items in the previous comment are complete.

The following still need to be done:

MarkRivers commented 3 years ago

The Dante8 needs the ability to enable/disable each board. This is needed for detectors with fewer than 8 channels, for disabling bad elements or boards, etc. This has now been implemented.

This screen shot shows boards 3 and 4 have been disabled, all others enabled. image

MarkRivers commented 3 years ago

I have merged the dante8 branch into master and deleted the dante8 branch.

MarkRivers commented 3 years ago

I added medm screens to support copying the MCA ROI definitions from board 0 to all boards on Dante8 systems. This is supported for the first 16 ROIs. Each ROI has a screen like this:

image

The dante8.adl screen has been updated to have the "MCA ROIs" related display widget from which the above screens can be loaded.

image