Evok inputs status reporting
-
Hello,
I've notice when using evok through a websocket interface, when a input state is changing, evok is sending back values for all the inputs, not only the one that changed...
Anyway to have only the inputs that changed ?thanks,
Denis -
Evok should be sending an array of values that changed. Are you certain that it is sending all of the values?
You should see the values being sent (in square brackets) if you run evok manually with "systemctl stop evok" + "python /opt/evok/evok.py" (you may have to run "sudo su" first to get the necessary privileges).
A typical output would look like:
[<neuron.AnalogInput instance at 0x75927be8>, <neuron.AnalogInput instance at 0x75927c60>, <neuron.AnalogInput instance at 0x75927cd8>, <neuron.AnalogInput instance at 0x75927d50>]Do note that the AnalogInput(s) change on most frames due to minor fluctuations if they are left floating.
-
Solved with 16th October commits on github.
Thanks, Denis
-
The reason the values were being sent is that they are stored internally in one register per 16 inputs; therefore we needed to implement state tracking to properly distinguish which of the 16 inputs for a given register actually changed.
Apologies for the issues.