Mario Simaremare / Mbed 2 deprecated g3_waterplay

Dependencies:   mbed

Committer:
mariosimaremare
Date:
Wed Jun 22 00:16:33 2016 +0000
Revision:
11:dcaaf1bb21ce
Parent:
5:4cbe44452889
Child:
15:e112bab9aa2f
Added alarm.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mariosimaremare 0:ad9362f18797 1 /*
mariosimaremare 0:ad9362f18797 2 * G3: WATERPLAY
mariosimaremare 0:ad9362f18797 3 */
mariosimaremare 0:ad9362f18797 4
mariosimaremare 0:ad9362f18797 5 #include "SalinitySensor.h"
mariosimaremare 0:ad9362f18797 6 #include "mbed.h"
mariosimaremare 3:7c648d1d8802 7 #include <algorithm>
mariosimaremare 3:7c648d1d8802 8 #include "Printer.h"
mariosimaremare 0:ad9362f18797 9
mariosimaremare 0:ad9362f18797 10 SalinitySensor::SalinitySensor(
mariosimaremare 3:7c648d1d8802 11 Printer &printer,
mariosimaremare 5:4cbe44452889 12 PinName pin
mariosimaremare 0:ad9362f18797 13 ):
mariosimaremare 3:7c648d1d8802 14 _printer(printer),
mariosimaremare 0:ad9362f18797 15 _analog_in(pin),
mariosimaremare 1:f448c12d2c5b 16 _reading(0.0),
mariosimaremare 1:f448c12d2c5b 17 _voltage(0.0),
mariosimaremare 2:ed17e258da0d 18 _salinity(0.0),
mariosimaremare 3:7c648d1d8802 19 _status(0.0),
mariosimaremare 3:7c648d1d8802 20 _strStatus("OK")
mariosimaremare 0:ad9362f18797 21 {
mariosimaremare 2:ed17e258da0d 22 this->reload();
mariosimaremare 0:ad9362f18797 23 }
mariosimaremare 0:ad9362f18797 24
mariosimaremare 2:ed17e258da0d 25 void SalinitySensor::reload()
mariosimaremare 0:ad9362f18797 26 {
mariosimaremare 5:4cbe44452889 27 double readings[SAMPLING_NUMBER];
mariosimaremare 3:7c648d1d8802 28
mariosimaremare 5:4cbe44452889 29 for(int counter = 0; counter < SAMPLING_NUMBER; ++counter){
mariosimaremare 3:7c648d1d8802 30 // the reading from sensor.
mariosimaremare 3:7c648d1d8802 31 readings[counter] = this->_analog_in.read();
mariosimaremare 3:7c648d1d8802 32 }
mariosimaremare 3:7c648d1d8802 33
mariosimaremare 5:4cbe44452889 34 sort(readings, readings + SAMPLING_NUMBER);
mariosimaremare 3:7c648d1d8802 35
mariosimaremare 5:4cbe44452889 36 this->_reading = readings[SAMPLING_NUMBER / 2];
mariosimaremare 3:7c648d1d8802 37
mariosimaremare 1:f448c12d2c5b 38 // converted voltage.
mariosimaremare 1:f448c12d2c5b 39 this->_voltage =
mariosimaremare 1:f448c12d2c5b 40 this->_reading *
mariosimaremare 5:4cbe44452889 41 VIN *
mariosimaremare 5:4cbe44452889 42 CONVERTER;
mariosimaremare 1:f448c12d2c5b 43 // the salinity value.
mariosimaremare 1:f448c12d2c5b 44 this->_salinity =
mariosimaremare 1:f448c12d2c5b 45 this->_voltage *
mariosimaremare 5:4cbe44452889 46 MULTIPLIER;
mariosimaremare 11:dcaaf1bb21ce 47
mariosimaremare 11:dcaaf1bb21ce 48
mariosimaremare 11:dcaaf1bb21ce 49 if(this->_salinity > 0.0){
mariosimaremare 11:dcaaf1bb21ce 50 this->_salinity += VARIANCE;
mariosimaremare 11:dcaaf1bb21ce 51 }
mariosimaremare 2:ed17e258da0d 52 this->_status = 0.0;
mariosimaremare 3:7c648d1d8802 53 this->_strStatus = "OK";
mariosimaremare 5:4cbe44452889 54 if(this->_salinity < LOWER_BOUNDARY){
mariosimaremare 5:4cbe44452889 55 this->_status = this->_salinity - LOWER_BOUNDARY;
mariosimaremare 3:7c648d1d8802 56 this->_strStatus = "LW";
mariosimaremare 5:4cbe44452889 57 } else if(this->_salinity > UPPER_BOUNDARY){
mariosimaremare 11:dcaaf1bb21ce 58 this->_status = this->_salinity - UPPER_BOUNDARY;
mariosimaremare 3:7c648d1d8802 59 this->_strStatus = "HI";
mariosimaremare 2:ed17e258da0d 60 }
mariosimaremare 2:ed17e258da0d 61 }
mariosimaremare 1:f448c12d2c5b 62
mariosimaremare 2:ed17e258da0d 63 double SalinitySensor::getReading()
mariosimaremare 2:ed17e258da0d 64 {
mariosimaremare 1:f448c12d2c5b 65 return(this->_reading);
mariosimaremare 0:ad9362f18797 66 }
mariosimaremare 0:ad9362f18797 67
mariosimaremare 0:ad9362f18797 68 double SalinitySensor::getVoltage()
mariosimaremare 0:ad9362f18797 69 {
mariosimaremare 1:f448c12d2c5b 70 return(this->_voltage);
mariosimaremare 0:ad9362f18797 71 }
mariosimaremare 0:ad9362f18797 72
mariosimaremare 0:ad9362f18797 73 double SalinitySensor::getSalinity()
mariosimaremare 0:ad9362f18797 74 {
mariosimaremare 1:f448c12d2c5b 75 return(this->_salinity);
mariosimaremare 0:ad9362f18797 76 }
mariosimaremare 2:ed17e258da0d 77
mariosimaremare 2:ed17e258da0d 78 double SalinitySensor::getStatus()
mariosimaremare 2:ed17e258da0d 79 {
mariosimaremare 2:ed17e258da0d 80 return(this->_status);
mariosimaremare 2:ed17e258da0d 81 }
mariosimaremare 3:7c648d1d8802 82
mariosimaremare 3:7c648d1d8802 83 char* SalinitySensor::getStrStatus()
mariosimaremare 3:7c648d1d8802 84 {
mariosimaremare 3:7c648d1d8802 85 return(this->_strStatus);
mariosimaremare 3:7c648d1d8802 86 }