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

Committer:
sbouber1
Date:
Sun Jun 19 22:39:16 2016 +0000
Revision:
58:b5f0c0f305ff
Parent:
54:2710f0b92766
Child:
66:133398875949
update

Who changed what in which revision?

UserRevisionLine numberNew contents of line
6366295 0:dab140a197e0 1 #ifndef __TEMPERATURECONTROLLER_H__
6366295 0:dab140a197e0 2 #define __TEMPERATURECONTROLLER_H__
6366295 0:dab140a197e0 3
6366295 0:dab140a197e0 4 #include "mbed.h"
sbouber1 58:b5f0c0f305ff 5 #include "settings.h"
sbouber1 10:fd4670ec0806 6 #include "SensorController.h"
sbouber1 9:b3674516729d 7
6366295 0:dab140a197e0 8
sbouber1 53:4e3ee54157ad 9 /** The TemperatureController measures the Vernier temperature probe.
sbouber1 53:4e3ee54157ad 10 */
sbouber1 10:fd4670ec0806 11 class TemperatureController : public SensorController {
6366295 0:dab140a197e0 12 public:
sbouber1 53:4e3ee54157ad 13 /**
sbouber1 53:4e3ee54157ad 14 * Constructs a new TemperatureController that measures and averages the value from the temperature probe.
sbouber1 53:4e3ee54157ad 15 * @param threaded whether or not the controller should be threaded.
sbouber1 53:4e3ee54157ad 16 * @param interval_ms delay between each iteration, only if threaded is set to \a true.
sbouber1 53:4e3ee54157ad 17 */
sbouber1 10:fd4670ec0806 18 TemperatureController(bool threaded, int interval_ms) : SensorController(threaded, interval_ms) {printf("Initiate Temperature Controller\r\n");}
sbouber1 53:4e3ee54157ad 19
sbouber1 54:2710f0b92766 20 /** Returns the Temperature measured (in Celsius) during the last update() */
sbouber1 9:b3674516729d 21 virtual float getValue();
sbouber1 53:4e3ee54157ad 22
sbouber1 54:2710f0b92766 23 /** Measures the Temperature N times and stores the average value of these measurements. */
sbouber1 9:b3674516729d 24 virtual void update();
sbouber1 53:4e3ee54157ad 25
sbouber1 54:2710f0b92766 26 /** Returns "TemperatureController" */
sbouber1 58:b5f0c0f305ff 27 virtual std::string getName();
sbouber1 53:4e3ee54157ad 28
6366295 0:dab140a197e0 29 private:
sbouber1 53:4e3ee54157ad 30 /**
sbouber1 53:4e3ee54157ad 31 * The latest temperature measurement, average of N measurements.
sbouber1 53:4e3ee54157ad 32 */
sbouber1 9:b3674516729d 33 float temperature;
sbouber1 53:4e3ee54157ad 34
sbouber1 53:4e3ee54157ad 35 /**
sbouber1 53:4e3ee54157ad 36 * This reads the temperature.
sbouber1 53:4e3ee54157ad 37 * @return Return the average temperature over N reads in Celsius.
sbouber1 53:4e3ee54157ad 38 */
6366295 0:dab140a197e0 39 static float readSensor();
sbouber1 53:4e3ee54157ad 40
sbouber1 53:4e3ee54157ad 41 /**
sbouber1 53:4e3ee54157ad 42 * Returns value read from mbed to Celsius.
sbouber1 53:4e3ee54157ad 43 * @return temperature in Celsius.
sbouber1 53:4e3ee54157ad 44 */
6366295 1:eb527bc93b62 45 static float analoginToCelsius(float);
sbouber1 53:4e3ee54157ad 46
sbouber1 53:4e3ee54157ad 47 /**
sbouber1 53:4e3ee54157ad 48 * Adjusts value for measurement mistakes.
sbouber1 53:4e3ee54157ad 49 * @return adjusted value in volt.
sbouber1 53:4e3ee54157ad 50 */
6366295 1:eb527bc93b62 51 static float getOffset(float);
sbouber1 53:4e3ee54157ad 52
6366295 0:dab140a197e0 53 };
6366295 0:dab140a197e0 54
sbouber1 53:4e3ee54157ad 55 #endif