Expose Tango::Util::fill_attr_polling_buffer and Tango::Util::fill_cmd_polling_buffer

At SKAO we have devices with attributes which are both polled and pushing events manually. This leads to cache invalidation issues around the polling cache unless clients are very careful to set their source to DevSource.DEV.

For example, if a client subscribes to change events with their source set to DevSource.CACHE_DEV (the default), they can miss changes because the initial attribute read gets a stale value that has been cached by the polling loop.

This could be avoid if it was possible to add a value to the cache whenever we push a change event manually. The Tango::Util::fill_attr_polling_buffer() cppTango function should allow us to do this and from looking at the pytango documentation for the Util object, I don't think this is exposed.

Edited Jun 10, 2025 by Thomas Ives
Assignee Loading
Time tracking Loading