Saltware / Mbed 2 deprecated Water Play

Dependencies:   mbed DRV88255 TextLCD Ping mbed-rtos

TemperatureController.h

Committer:
sbouber1
Date:
2016-06-17
Revision:
53:4e3ee54157ad
Parent:
35:c9261391a995
Child:
54:2710f0b92766

File content as of revision 53:4e3ee54157ad:

#ifndef __TEMPERATURECONTROLLER_H__
#define __TEMPERATURECONTROLLER_H__

#include "mbed.h"

#include "SensorController.h"

/** The number of measurements taken to generate an average measurement */
#define N    50

/** The TemperatureController measures the Vernier temperature probe.
 */
class TemperatureController : public SensorController {
    public:
        /**
         * Constructs a new TemperatureController that measures and averages the value from the temperature probe.
         * @param threaded whether or not the controller should be threaded.
         * @param interval_ms delay between each iteration, only if threaded is set to \a true.
         */
        TemperatureController(bool threaded, int interval_ms) : SensorController(threaded, interval_ms) {printf("Initiate Temperature Controller\r\n");}

        /** Overrides getValue() in the Controller class. */
        virtual float getValue();

        /** Overrides update() in the Controller class. */
        virtual void update();

        /** Overrides get_name() in the Controller class. */
        virtual std::string get_name();

    private:
        /**
         * The latest temperature measurement, average of N measurements.
         */
        float temperature;

        /**
         * This reads the temperature.
         * @return Return the average temperature over N reads in Celsius.
         */
        static float readSensor();

        /**
         * Returns value read from mbed to Celsius.
         * @return temperature in Celsius.
         */
        static float analoginToCelsius(float);

        /**
         * Adjusts value for measurement mistakes.
         * @return adjusted value in volt.
         */
        static float getOffset(float);

};

#endif