+/**
+ * Checks the sensor data for unsafe or unexpected results
+ * @param sensor_id - The ID of the sensor
+ * @param value - The value of the sensor to check
+ */
+void CheckSensor( SensorId sensor_id, double value)
+{
+ switch (sensor_id)
+ {
+ case ANALOG_FAIL0:
+ {
+ if( value > ANALOG_FAIL0_SAFETY || value < ANALOG_FAIL0_MIN_SAFETY)
+ {
+ Log(LOGERR, "Sensor analog_fail0 is above or below its safety value of %d or %d\n", ANALOG_FAIL0_SAFETY, ANALOG_FAIL0_MIN_SAFETY);
+ //new function that stops actuators?
+ }
+ else if( value > ANALOG_FAIL0_WARN || value < ANALOG_FAIL0_MIN_WARN)
+ {
+ Log(LOGWARN, "Sensor analog_test0 is above or below its warning value of %d or %d\n", ANALOG_FAIL0_WARN, ANALOG_FAIL0_MIN_WARN);
+ }
+ break;
+ }
+ case DIGITAL_FAIL0:
+ {
+ if( value != 0 && value != 1)
+ {
+ Log(LOGERR, "Sensor digital_fail0 is not 0 or 1\n");
+ }
+ break;
+ }
+ default:
+ {
+ //So it doesn't complain about the missing cases - in practice we will need all sensors to be checked as above, no need to include a default as we should only pass valid sensor_id's; unless for some reason we have a sensor we don't need to check (but then why would you pass to this function in the first place :P)
+ }
+ }
+}
+