[Pipe Request] Data thinning

some controller can produce a large amount of continuous data, that older hardware can have difficulty coping with :slight_smile:

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.

Good idea, that should be totally doable. :slight_smile:

1 Like