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:
Fri Jun 17 12:03:48 2016 +0000
Revision:
53:4e3ee54157ad
Parent:
35:c9261391a995
Child:
54:2710f0b92766
doc

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