PRO2_Team 1_collected code with ticker and headers_not working yet
Fork of PRO2_samlet_kode by
compare.cpp@11:3ff48fb0aa0b, 2017-06-20 (annotated)
- Committer:
- OlgaHoeyer
- Date:
- Tue Jun 20 12:18:09 2017 +0000
- Revision:
- 11:3ff48fb0aa0b
- Parent:
- 6:12f1849aad21
with pointers
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
OlgaHoeyer | 6:12f1849aad21 | 1 | /* |
OlgaHoeyer | 6:12f1849aad21 | 2 | ------------------------------------------------------------------------------- |
OlgaHoeyer | 6:12f1849aad21 | 3 | -- Project: PRO2 "Awareness and Optimisation of energy consumption" |
OlgaHoeyer | 6:12f1849aad21 | 4 | -- Team: Team 1 |
OlgaHoeyer | 6:12f1849aad21 | 5 | |
OlgaHoeyer | 6:12f1849aad21 | 6 | -- File Name: compare.cpp |
OlgaHoeyer | 6:12f1849aad21 | 7 | -- Author: Olga Hoeyer |
OlgaHoeyer | 6:12f1849aad21 | 8 | -- Date: 18/05-2017 |
OlgaHoeyer | 6:12f1849aad21 | 9 | -- Copyright: Open to all |
OlgaHoeyer | 6:12f1849aad21 | 10 | -- Version: 2.0 - .cpp and .h files are created. |
OlgaHoeyer | 6:12f1849aad21 | 11 | -- |
OlgaHoeyer | 6:12f1849aad21 | 12 | -- Description: Analysis part for EDE PRO2 Team 1. |
OlgaHoeyer | 6:12f1849aad21 | 13 | -- Program takes temperature and humidity as arguments |
OlgaHoeyer | 6:12f1849aad21 | 14 | -- (read from sensors), together with lower and higher limit |
OlgaHoeyer | 6:12f1849aad21 | 15 | -- on temperature and evaluate air quality. |
OlgaHoeyer | 6:12f1849aad21 | 16 | -- Output is status (int, from 1 to 5). |
OlgaHoeyer | 6:12f1849aad21 | 17 | -- |
OlgaHoeyer | 6:12f1849aad21 | 18 | ------------------------------------------------------------------------------- |
OlgaHoeyer | 6:12f1849aad21 | 19 | */ |
OlgaHoeyer | 1:135bd458e39e | 20 | |
OlgaHoeyer | 1:135bd458e39e | 21 | #include "mbed.h" |
OlgaHoeyer | 1:135bd458e39e | 22 | |
OlgaHoeyer | 6:12f1849aad21 | 23 | int Compare_values(float hum, float temp, |
OlgaHoeyer | 6:12f1849aad21 | 24 | int temperature_low, int temperature_high) |
OlgaHoeyer | 1:135bd458e39e | 25 | { |
OlgaHoeyer | 1:135bd458e39e | 26 | //local variables |
OlgaHoeyer | 6:12f1849aad21 | 27 | int status, humidity, temperature; |
OlgaHoeyer | 1:135bd458e39e | 28 | |
OlgaHoeyer | 1:135bd458e39e | 29 | //__________________________________ |
OlgaHoeyer | 1:135bd458e39e | 30 | // Definition of limits |
OlgaHoeyer | 1:135bd458e39e | 31 | //__________________________________ |
OlgaHoeyer | 1:135bd458e39e | 32 | |
OlgaHoeyer | 1:135bd458e39e | 33 | //Humidity limits. |
OlgaHoeyer | 1:135bd458e39e | 34 | const int HUMIDITY_LOW = 20; |
OlgaHoeyer | 1:135bd458e39e | 35 | const int HUMIDITY_HIGH= 60; |
OlgaHoeyer | 1:135bd458e39e | 36 | |
OlgaHoeyer | 1:135bd458e39e | 37 | //Extra limits where LED will start blinking in red: |
OlgaHoeyer | 1:135bd458e39e | 38 | //13 < Temp < 30; 10%< hum < 80% |
OlgaHoeyer | 1:135bd458e39e | 39 | const int HUMIDITY_EXTRA_LOW = 10; |
OlgaHoeyer | 1:135bd458e39e | 40 | const int HUMIDITY_EXTRA_HIGH= 80; |
OlgaHoeyer | 1:135bd458e39e | 41 | const int TEMPERATURE_EXTRA_LOW = 13; |
OlgaHoeyer | 1:135bd458e39e | 42 | const int TEMPERATURE_EXTRA_HIGH= 30; |
OlgaHoeyer | 1:135bd458e39e | 43 | |
OlgaHoeyer | 1:135bd458e39e | 44 | //Definition of output values |
OlgaHoeyer | 1:135bd458e39e | 45 | const int GOOD_LEVEL = 1; //green |
OlgaHoeyer | 1:135bd458e39e | 46 | const int ACCEPT_LEVEL = 2; //orange |
OlgaHoeyer | 1:135bd458e39e | 47 | const int CRITICAL_LEVEL = 3; //red |
OlgaHoeyer | 1:135bd458e39e | 48 | const int EXTRA_CRITICAL_LEVEL = 4; //red strobe |
OlgaHoeyer | 1:135bd458e39e | 49 | const int USER_NEEDED = 5; //blue strobe |
OlgaHoeyer | 1:135bd458e39e | 50 | |
OlgaHoeyer | 1:135bd458e39e | 51 | |
OlgaHoeyer | 1:135bd458e39e | 52 | //__________________________________ |
OlgaHoeyer | 1:135bd458e39e | 53 | // main body: comparison |
OlgaHoeyer | 1:135bd458e39e | 54 | //__________________________________ |
OlgaHoeyer | 1:135bd458e39e | 55 | |
OlgaHoeyer | 1:135bd458e39e | 56 | humidity=(int)hum; //convertation of float to int. |
OlgaHoeyer | 1:135bd458e39e | 57 | temperature=(int)temp; |
OlgaHoeyer | 1:135bd458e39e | 58 | |
OlgaHoeyer | 1:135bd458e39e | 59 | // check if there is a connection to the sensor |
OlgaHoeyer | 1:135bd458e39e | 60 | // (if null=no data=there is no connection |
OlgaHoeyer | 1:135bd458e39e | 61 | |
OlgaHoeyer | 1:135bd458e39e | 62 | if ((temperature == 0) || (humidity == 0)) |
OlgaHoeyer | 1:135bd458e39e | 63 | status= USER_NEEDED; |
OlgaHoeyer | 1:135bd458e39e | 64 | |
OlgaHoeyer | 1:135bd458e39e | 65 | //comparing in nested loop. |
OlgaHoeyer | 1:135bd458e39e | 66 | else if ((temperature < TEMPERATURE_EXTRA_LOW) || |
OlgaHoeyer | 1:135bd458e39e | 67 | (temperature > TEMPERATURE_EXTRA_HIGH)) |
OlgaHoeyer | 1:135bd458e39e | 68 | |
OlgaHoeyer | 1:135bd458e39e | 69 | status= EXTRA_CRITICAL_LEVEL; |
OlgaHoeyer | 1:135bd458e39e | 70 | |
OlgaHoeyer | 1:135bd458e39e | 71 | else if ((humidity < HUMIDITY_EXTRA_LOW) || |
OlgaHoeyer | 1:135bd458e39e | 72 | (humidity > HUMIDITY_EXTRA_HIGH)) |
OlgaHoeyer | 1:135bd458e39e | 73 | |
OlgaHoeyer | 1:135bd458e39e | 74 | status= EXTRA_CRITICAL_LEVEL; |
OlgaHoeyer | 1:135bd458e39e | 75 | |
OlgaHoeyer | 1:135bd458e39e | 76 | else if ((temperature < temperature_low) || |
OlgaHoeyer | 1:135bd458e39e | 77 | (temperature > temperature_high)) |
OlgaHoeyer | 1:135bd458e39e | 78 | |
OlgaHoeyer | 1:135bd458e39e | 79 | status= CRITICAL_LEVEL; |
OlgaHoeyer | 1:135bd458e39e | 80 | |
OlgaHoeyer | 1:135bd458e39e | 81 | else if ((temperature < temperature_high) && |
OlgaHoeyer | 1:135bd458e39e | 82 | (temperature > temperature_low) && |
OlgaHoeyer | 1:135bd458e39e | 83 | (humidity < HUMIDITY_HIGH) && |
OlgaHoeyer | 1:135bd458e39e | 84 | (humidity > HUMIDITY_LOW)) |
OlgaHoeyer | 1:135bd458e39e | 85 | |
OlgaHoeyer | 1:135bd458e39e | 86 | status= GOOD_LEVEL; |
OlgaHoeyer | 1:135bd458e39e | 87 | |
OlgaHoeyer | 1:135bd458e39e | 88 | else status= ACCEPT_LEVEL; |
OlgaHoeyer | 1:135bd458e39e | 89 | |
OlgaHoeyer | 1:135bd458e39e | 90 | return(status); |
OlgaHoeyer | 1:135bd458e39e | 91 | } |