Each time a sensor returns a value, pass this value to the failure detector method. The failure detector method can be implemented per sensor, and for instance it can count the number of bad readings and then return true once a threshold is crossed, indicating the sensor is failing. The datalogger loop can then mark the burst as completed. This is still somewhat inefficient, since a failure has to be detected for each loop, but it's better than never completing the burst.
The failure detector also needs to be initialized each time a burst begins (or in an iterative improvement, upon each wake)
Each time a sensor returns a value, pass this value to the failure detector method. The failure detector method can be implemented per sensor, and for instance it can count the number of bad readings and then return true once a threshold is crossed, indicating the sensor is failing. The datalogger loop can then mark the burst as completed. This is still somewhat inefficient, since a failure has to be detected for each loop, but it's better than never completing the burst.
The failure detector also needs to be initialized each time a burst begins (or in an iterative improvement, upon each wake)