Library for my home monitoring classes and serial communication protocol. It monitors temperature and movement on the mbed application board.

Dependents:   FinalProject

Committer:
groletter
Date:
Tue Sep 03 20:24:12 2013 +0000
Revision:
2:84432add9142
Parent:
0:3f846fc933a2
Added class documentation.  Not sure how to do this for pure C code.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
groletter 0:3f846fc933a2 1 #ifndef TEMPERATURE_H
groletter 0:3f846fc933a2 2 #define TEMPERATURE_H
groletter 0:3f846fc933a2 3
groletter 0:3f846fc933a2 4 #include <vector>
groletter 0:3f846fc933a2 5 #include <string>
groletter 0:3f846fc933a2 6
groletter 2:84432add9142 7 /** Temperature class stores historical temperature data and tresholds for temperature alerts
groletter 2:84432add9142 8 *
groletter 2:84432add9142 9 */
groletter 0:3f846fc933a2 10 class Temperature {
groletter 0:3f846fc933a2 11 private:
groletter 0:3f846fc933a2 12 double max_temp_limit, min_temp_limit, period_limit, max_samples_limit;
groletter 0:3f846fc933a2 13 double min_temp;
groletter 0:3f846fc933a2 14 double max_temp;
groletter 0:3f846fc933a2 15 double temp_sample_period;
groletter 0:3f846fc933a2 16 int max_samples;
groletter 0:3f846fc933a2 17 int sample_ptr;
groletter 0:3f846fc933a2 18 bool wrapped_once;
groletter 0:3f846fc933a2 19 std::vector<std::string> temp_samples;
groletter 0:3f846fc933a2 20
groletter 0:3f846fc933a2 21 public:
groletter 2:84432add9142 22 /**
groletter 2:84432add9142 23 * Creates a new temperature object. All parameters
groletter 2:84432add9142 24 * hard coded at first and methods used to set appropriately
groletter 2:84432add9142 25 * based on user's desires.
groletter 2:84432add9142 26 */
groletter 0:3f846fc933a2 27 Temperature();
groletter 2:84432add9142 28 /**
groletter 2:84432add9142 29 * Returns minimum temperature threshold
groletter 2:84432add9142 30 *
groletter 2:84432add9142 31 * @param return - mininum temperature threshold
groletter 2:84432add9142 32 */
groletter 0:3f846fc933a2 33 double get_min();
groletter 2:84432add9142 34 /**
groletter 2:84432add9142 35 * Returns maximum temperature threshold
groletter 2:84432add9142 36 *
groletter 2:84432add9142 37 * @param return - maximum temperature threshold
groletter 2:84432add9142 38 */
groletter 0:3f846fc933a2 39 double get_max();
groletter 2:84432add9142 40 /**
groletter 2:84432add9142 41 * Returns temperature sampling period in seconds
groletter 2:84432add9142 42 *
groletter 2:84432add9142 43 * @param return - temperature sampling period in seconds
groletter 2:84432add9142 44 */
groletter 0:3f846fc933a2 45 double get_period();
groletter 2:84432add9142 46 /**
groletter 2:84432add9142 47 * Sets the minimum temperature threshold for alerts.
groletter 2:84432add9142 48 *
groletter 2:84432add9142 49 * @param min - new minimum temperature threshold for alerts
groletter 2:84432add9142 50 * @param return - indicates success or failure
groletter 2:84432add9142 51 */
groletter 2:84432add9142 52 bool set_min(double min);
groletter 2:84432add9142 53 /**
groletter 2:84432add9142 54 * Sets the maximum temperature threshold for alerts.
groletter 2:84432add9142 55 *
groletter 2:84432add9142 56 * @param max - new maximum temperature threshold for alerts
groletter 2:84432add9142 57 * @param return - indicates success or failure
groletter 2:84432add9142 58 */
groletter 2:84432add9142 59 bool set_max(double max);
groletter 2:84432add9142 60 /**
groletter 2:84432add9142 61 * Sets the temperature period in seconds to store temperature samples in DB
groletter 2:84432add9142 62 *
groletter 2:84432add9142 63 * @param period - termperature sampling period in seconds
groletter 2:84432add9142 64 * @param return - pass or fail of attempt
groletter 2:84432add9142 65 */
groletter 2:84432add9142 66 bool set_period(double period);
groletter 2:84432add9142 67 /**
groletter 2:84432add9142 68 * Method to add a temperature sample to the database
groletter 2:84432add9142 69 *
groletter 2:84432add9142 70 * @param temp_sample - temperature sample to be stored to dB
groletter 2:84432add9142 71 */
groletter 0:3f846fc933a2 72 void add_sample(double temp_sample);
groletter 2:84432add9142 73 /**
groletter 2:84432add9142 74 * Changes number of samples in temperature database.
groletter 2:84432add9142 75 * Current maximum is 100 samples
groletter 2:84432add9142 76 * WARNING: Changing this may trash samples since vector is resized.
groletter 2:84432add9142 77 *
groletter 2:84432add9142 78 * @param num_samples - Number of samples in DB
groletter 2:84432add9142 79 * @param return - pass fail of attemp
groletter 2:84432add9142 80 */
groletter 2:84432add9142 81 bool change_max_samples(int num_samples);
groletter 2:84432add9142 82 /**
groletter 2:84432add9142 83 * Returns database size in temperature DB
groletter 2:84432add9142 84 *
groletter 2:84432add9142 85 * @param return - current size of temp DB in samples
groletter 2:84432add9142 86 */
groletter 0:3f846fc933a2 87 int get_max_samples();
groletter 2:84432add9142 88 /**
groletter 2:84432add9142 89 * Returns all temperature samples as strings in the database.
groletter 2:84432add9142 90 * number returned should match max_samples.
groletter 2:84432add9142 91 *
groletter 2:84432add9142 92 * @param return - Reference to vector containing temperature DB as strings
groletter 2:84432add9142 93 */
groletter 0:3f846fc933a2 94 const std::vector<std::string> &get_samples();
groletter 0:3f846fc933a2 95
groletter 0:3f846fc933a2 96 };
groletter 0:3f846fc933a2 97
groletter 0:3f846fc933a2 98 #endif