Thermostat class implements basic functionality of a thermostat
thermostat.h
- Committer:
- nleoni
- Date:
- 2014-02-13
- Revision:
- 0:cd3a00aa2dbc
- Child:
- 1:909cb1aef872
File content as of revision 0:cd3a00aa2dbc:
//Thermostat class //Napoleon Leoni //Thermostat with Joystick control input //Class Thermostat: //Has a control loop enable/disable(I will refer to this as Heater on/off), an over-ride enable/disable. //an object TemperatureRecording (keeps current temperature, max and min since last reset //and circular buffer with recorded data) //Functions to check user input on joystick //sets interrupt on accelerometer (To be implemented) #include "mbed.h" #include "LM75B.h" #include "temperatureRecorder.h" #include "joystickAppBoard.h" #ifndef THERMOSTAT #define THERMOSTAT #define DEFAULTHYSTERESYS 5 //degrees F, dead band of controller to prevent excessive turn on/off #define DEFAULTGRANULARITY 2 //degrees F, increment in temperaure setting per joystick click #define DEFAULTTEMPSETTING 60 //degrees F, default setting for thermostat #define DEFAULTMAXTEMPSETTING 96 //degrees F, max temperature setting to avoid user over shooting setting with joystick #define DEFAULTMINTEMPSETTING 44 //degrees F, min temperature setting to avoid user under shooting setting with joystick #define DEFAULTTIME class thermostat{ //public members public: //private members private: temperatureRecorder *trecord; //pointer to TemperatureRecordeObject joystickAppBoard *inputJoystick; //pointer to input joystick object DigitalOut *actuatorOutput; //pointer to Digital Output for actuator, this would run the relay for the heater //temporarily we could use an LED as output so that the heating action is signaled //by the turning on and off of an LED struct tm timeKeeper; //structure to hold date/time type time_t timeInSeconds; //variable to keep absolute time float hysteresisGap, temperatureGranularity, defaultTemperature, maxTemperature, minTemperature; bool heaterEnabled; //This flag corresponds to whether the thermostat control is on bool heatingActionOn; //this flag corresponds to whether the thermostat has turned the heating action (relay) on //public methods public: thermostat();//default constructor thermostat(temperatureRecorder *,joystickAppBoard *,DigitalOut *);//regular constructor void enableHeater(void); void disableHeater(void); void checkJoystickInput(void); void runThermostatControlCycle(void); float getTemperature(void);//Read current temperature float getMaxTemperature(void);//read Maximum Temperature float getMinTemperature(void);//read Maximum Temperature float getTemperatureSetting(void); //read temperature setting bool getThermostatStatus(void); //returns true if heaterEnabled, that is thermostat control is on void setDay(int,int,int); void setTime(int,int,int); void getDateandTime(char*,int); //return Date and time as a formatted string in the provided char buffer //private methods private: }; //end of thermostat class prototype #endif