Program for the water play project for the course Software Testing Practical 2016 given at the VU University
Dependencies: mbed DRV88255 TextLCD Ping mbed-rtos
SensorAlarmController.h
- Committer:
- sbouber1
- Date:
- 2016-06-24
- Revision:
- 80:38e274c4dafa
- Parent:
- 72:f8c4f731f0fe
File content as of revision 80:38e274c4dafa:
#ifndef __SENSORALARMCONTROLLER_H__
#define __SENSORALARMCONTROLLER_H__
#include <iostream>
#include "mbed.h"
#include "SensorController.h"
#include "PIDController.h"
#include "settings.h"
/** The AlarmController monitors a Sensor and registers unsafe values.
* After a specified amount of time an alarm is raised by means of a buzzer.
*/
class SensorAlarmController : public Controller {
public:
/** Contructs a new AlarmController which monitors the given SensorController. */
SensorAlarmController(bool threaded, int interval_ms, SensorController *sensor,
float min_crit, float min_undesired, float max_crit, float max_undesired)
: Controller(threaded, interval_ms) {
this->sensor = sensor;
this->error = false;
this->is_crit = false;
this->min_crit = min_crit;
this->min_undesired = min_undesired;
this->max_crit = max_crit;
this->max_undesired = max_undesired;
this->error_msg_critical = "crit alarm";
this->error_msg_undesired = "undes alarm";
}
/** Overrides update() in the Controller class */
virtual void update();
/** Overrides get_name() in the Controller class */
virtual std::string getName();
/** Return \a true if there is an error condition and the alarm was raised. */
bool isError();
/** Returns a message describing the last error */
std::string getErrorMessage();
/** Activates the buzzer */
static void buzzOnce();
void setCriticalErrorMsg(std::string msg);
void setUndesiredErrorMsg(std::string msg);
bool isActive();
private:
SensorController *sensor;
float value;
bool error;
std::string error_msg;
bool is_crit;
Timer timer;
float min_crit;
float min_undesired;
float max_crit;
float max_undesired;
std::string error_msg_critical;
std::string error_msg_undesired;
/** Activates an alarm for the sensor controller */
void raiseAlarm(bool);
};
#endif