Skip to content

Move deadtime records to I/O Intr - #89

Open
ericonr wants to merge 5 commits into
epics-modules:masterfrom
ericonr:dt-io-intr
Open

Move deadtime records to I/O Intr#89
ericonr wants to merge 5 commits into
epics-modules:masterfrom
ericonr:dt-io-intr

Conversation

@ericonr

@ericonr ericonr commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

This re-enables the records, which had been disabled by default with DISA=1, and also simplifies their operation by using I/O Intr scanning instead of a predetermined rate.

Some cleanup along the way was also performed.

This likely conflicts with #87 , so I will rebase it once that's merged.

ericonr added 5 commits July 16, 2026 13:05
this impacts setting parameters like the EventWidth. before this change,
the last value set for any channel would be written to the first
channel, and the other channels would be left with their default value.

we also fix callParamCallbacks to use the addr, in order to propagate
these changes correctly.
this function can be used to call callParamCallbacks for all driver
channels, reducing the boilerplate necessary to perform this operation.
for these loops which called callParamCallbacks(chan) for each
iteration, we can change them to simply call
callParamCallbacksAllChannels() after the loop exits.

we don't replace similar cases where the write*() functions used
callParamCallbacks(addr), because there the only parameter changed is
from a specific channel. therefore, there's no need to call callbacks
for other channels.
in the Xspress3 constructor, the call to setInitialParameters sets
parameters for all channels, so callParamCallbacks() should also be
called for all channels. similarly, the call to writeOutScas() in
xsp3DataTaskC also sets parameters for all channels.
instead of scanning these parameters at a desired rate, we can update
them for new frames using callParamCallbacksAllChannels(). this requires
setting their SCAN field to "I/O Intr".

this also allows us to re-enable these records by default, since they
were disabled in ac8390b (set dt RBV records to disa=1, scan=passive,
2023-09-21).
@ericonr

ericonr commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

If anyone would like to test this along with #87 , I have a branch with the changes merged and the conflict solved: https://github.com/ericonr/xspress3/tree/integration

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant