# How node inform others with parameter register change?

**URL:** <https://forum.opencyphal.org/t/how-node-inform-others-with-parameter-register-change/1924>\
**Category:** Applications & Usage\
**Created:** [July 3, 2023, 5:18pm UTC](https://forum.opencyphal.org/t/how-node-inform-others-with-parameter-register-change/1924 "2023-07-03T17:18:24Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Async](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/async/32/1421_2.png) [@Async](https://forum.opencyphal.org/u/Async)\
**Post date:** [July 3, 2023, 5:18pm UTC](https://forum.opencyphal.org/t/how-node-inform-others-with-parameter-register-change/1924/1 "2023-07-03T17:18:24Z")

</div>

Assume there is a ground control station(GCS) configuring a cyphal node’s parameters by **cyphal.register service**.  
Some parameters change but GCS does not know.

> The reason is not the key point in this topic, anyhow it happens, it may come from two aspects: 1, bad non-orthogonal parameters design, change one may affect two; 2, change not made by GCS.

How can the node inform GCS of its parameter changement?

Some possible solutions:

1. user clicks the refresh-all button in GCS.
2. node sends custom messages to inform GCS.
3. GCS polls all/some registers periodically and interleavelly.
4. GCS polls a specific register which stands for the checksum of all parameters.

Any practical suggestion? Can it be achieved under public regulated data types?

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [July 3, 2023, 5:32pm UTC](https://forum.opencyphal.org/t/how-node-inform-others-with-parameter-register-change/1924/2 "2023-07-03T17:32:15Z")

</div>

Solutions 1, 3, 4 seem sensible; solution 2 is very intrusive and costly to implement. There is also solution #5, which is to make GCS or any other node interested in tracking register changes snoop for `uavcan.register.Access` requests and responses sent between other nodes and update its model of each node’s state on the fly. This is exactly how [Yukon](https://github.com/OpenCyphal/yukon) does it! When a register is changed anywhere on the network, the register table is updated immediately without the need to refresh the list manually. Obviously, this wouldn’t work if a node decided to update its registers independently rather than through an external request, but that’s a separate story.
