Library for my home monitoring classes and serial communication protocol. It monitors temperature and movement on the mbed application board.
Temperature/Temperature.h@2:84432add9142, 2013-09-03 (annotated)
- 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?
User | Revision | Line number | New 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 |