This is a QoL feature for users. Otherwise they would have to create the CAN interface themselves and assign it themselves. V&V has had issues like this before where they would create VV_submodule_class and it ends up interfering with their data collection.
what I meant is the following statement is a binary why it has been compared with True/False once, and put in trinary once more just to compare a binary statement with binary.
I don't think we need to broadcast usage data regularly (like every second), but may want to send it once in a while to get logged - maybe when we transition to treatment mode to start a new treatment.
It is a feature for users (V&V and sys) that allows them to exercise the API and generate tests faster. Breaking this current design would cause some major refactoring for them as they expect the HD and DG classes to have the sub modules loaded.
We can look into the technical performance in http://dvm-linux02:8080/browse/DIAL-172
alarm_cto[0] is an integer - not a boolean. alarm_clr_top_only[] is an array of booleans. If Python boolean "True" is equivalent to integer "1", then I suppose we can assign directly. I think the current way this assignment is coded is making no assumptions and explicitly converting integer to boolean which is ok with me.