PRO2_Team 1_collected code with ticker and headers_not working yet

Dependencies:   SHTx mbed

Fork of PRO2_samlet_kode by Olga Høyer

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?

UserRevisionLine numberNew 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 }