Arjen de Korte wrote:>
> Hi Peter,
>
> The explanation on why I want to flush the report buffer after running
> instcmd() or setvar() was incorrect. It is not the variable thats get
> written, that needs to be read fresh from the UPS. That is already handled
> by HIDSetItemValue(), which reads back the value and thereby refreshes the
> report buffer. I goofed up here, I looked at the wrong parameters. :-(
>
> However, when I change the "output.voltage.nominal" on my
Evolution 650,
> it also adjusts the settings for "input.transfer.*"
(automatically). There
> is an odd chance that you might miss changes in the UPS if you change two
> parameters in quick succession otherwise. Since you can never know what
> values change after writing a variable to the UPS, I think the safest
> option is to flush whatever is in the report buffer.
>
> Maybe flushing the report buffer should be the default behaviour of
> HIDSetItemValue(), so that it invalidates all timestamps in the report
> buffer before reading back the parameter just set. Or would this be too
> inflexible? What's your opinion on that?
Sure, that makes lots of sense. And setting a variable or sending a
command is almost always the result of user action or rare events
(such as a shutdown), and therefore the extra communications overhead
is likely to be nil.
-- Peter