some controller can produce a large amount of continuous data, that older hardware can have difficulty coping with
Id like to be able to thin this data out e.g. to 100 msgs/second
use case:
- limited to continuous messages (e.g. CC/poly AT/channel AT)
- should limit per message e.g. CC 1 is different from CC2
- delay ok?
generally I think its usually limited to particular messages being sent too quickly,
I can imagine the module being configured for particular CCs
e.g. Thin module [CC, 74, 100 msg/sec)
the use case we have to be careful of is to always send the last value
e.g. lets imagine the a very rapid burst of messages come in (within the thinning time (T) period)โฆ nothing came in before for a while, and nothing after
100, 123, 102, 65, 62, 50, 40, 32, 12, 0
in this scenario we obviously send 100 immediately, then we thin every else
BUT after T, we should see we donโt have any more messages and so send 0
the reason is simple, in a burst like this we always want to end up at the final value, and I donโt think we mind the delay of up to T.
(Im particularly concerned about 0, as it might be fully closing a filter/vca or something similar)
note:
an alternatively would be to delay everything by T, so we only ever send the last value.
this might also work, as I think generally T is going to be pretty small.