Various small improvements to pipeline functioning (gets the PipelineControlNode working) and error reporting
Refactors the sensor config loading for alarm nodes to be a little less obscure (and less of the slightly nasty isinstance checks)
Alarms for the IntegerAlarmNode are now enumerated in the sensor under alarm_values rather than alarm_thresholds: cannot store different types of data under the same key in MongoDB
Various logging messages now include the node name
PipelineControlNode is now a subclass of Node, not ControlNode. Why? Because it doesn't make use of any of the ControlNode code, and indeed that gets in the way. They are fundamentally very different - ControlNode is designed for physical outputs.
Rewrote the PipelineControlNode logic to allow (a) arbitrarily named conditions (because condition_g is much less meaningful than tmp_is_in_error) and (b) allow multiple actions to be carried out when one condition is true.
Dedicated log message for when the output_var has an unhashable type. Why? It took me far too long to realise I had misspelt output_var as ouput_var and it was completely unclear where the error was coming from.
SensorSourceNode now works with sync variables (there was a bug where it was looking for the wrong variable)
Various small improvements to pipeline functioning (gets the PipelineControlNode working) and error reporting
alarm_values
rather thanalarm_thresholds
: cannot store different types of data under the same key in MongoDBcondition_g
is much less meaningful thantmp_is_in_error
) and (b) allow multiple actions to be carried out when one condition is true.output_var
has an unhashable type. Why? It took me far too long to realise I had misspeltoutput_var
asouput_var
and it was completely unclear where the error was coming from.