Make output records only write on change

Bug #1398215 reported by Andrew Johnson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
Triaged
Wishlist
Joao Paulo Martins

Bug Description

Add a field to the output record types to allow them to only write a new value to the hardware when it differs from the previous value. This saves adding another record to implement the only-on-change behavior, and can reduce the data communication volume for slow I/O.

Can be made backwards-compatible if the default value of this field is output always.

Gotcha's to think about: For extended device support, if a user changes the hardware address of a record the newly addressed device might need to reset the "previous value" somehow to ensure it gets written to the next time the record processes, even though the value hasn't changed. Could be tricky, discuss...

Tags: codeathon
Changed in epics-base:
assignee: nobody → Andrew Johnson (anj)
status: New → Triaged
Revision history for this message
Joao Paulo Martins (joaopaulosm) wrote :

First implementation of this feature will be done in the longout record. The OOPT field will be added with the same options as the calcout record, plus an additional one: "Write Once Then on Change". This will be used to ensure that the output is executed after there is a change on the "OUT" field, even when OOPT = On Change.

Changed in epics-base:
assignee: Andrew Johnson (anj) → Joao Paulo Martins (joaopaulosm)
Revision history for this message
Andrew Johnson (anj) wrote :

Merge Request for longout is at https://github.com/epics-base/epics-base/pull/63

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.