ok

Dependencies:   mbed

Fork of g3_waterplay by Mario Simaremare

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers SalinitySensor.cpp Source File

SalinitySensor.cpp

00001 /*
00002 * G3: WATERPLAY
00003 */
00004 
00005 #include "SalinitySensor.h"
00006 #include "mbed.h"
00007 #include <algorithm>
00008 #include "Printer.h"
00009 
00010 SalinitySensor::SalinitySensor(
00011     Printer &printer,
00012     PinName pin
00013 ):
00014     _printer(printer),
00015     _analog_in(pin),
00016     _reading(0.0),
00017     _voltage(0.0),
00018     _salinity(0.0),
00019     _status(0.0),
00020     _strStatus("OK")
00021 {
00022     this->reload();
00023 }
00024 
00025 void SalinitySensor::reload()
00026 {
00027     double readings[SAMPLING_NUMBER];
00028     
00029     for(int counter = 0; counter < SAMPLING_NUMBER; ++counter){
00030         // the reading from sensor.
00031         readings[counter] = this->_analog_in.read();
00032     }
00033 
00034     sort(readings, readings + SAMPLING_NUMBER);
00035     
00036     this->_reading = readings[SAMPLING_NUMBER / 2];
00037     
00038     // converted voltage.
00039     this->_voltage = 
00040         this->_reading *
00041         VIN *
00042         CONVERTER;
00043     // the salinity value.
00044     this->_salinity = 
00045         this->_voltage *
00046         MULTIPLIER;
00047         
00048     this->_status = 0.0;
00049     this->_strStatus = "OK";
00050     if(this->_salinity < LOWER_BOUNDARY){
00051         this->_status = this->_salinity - LOWER_BOUNDARY;
00052         this->_strStatus = "LW";
00053     } else if(this->_salinity > UPPER_BOUNDARY){
00054         this->_status = UPPER_BOUNDARY - this->_salinity;
00055         this->_strStatus = "HI";
00056     }
00057 }
00058 
00059 double SalinitySensor::getReading()
00060 {
00061     return(this->_reading);
00062 }
00063 
00064 double SalinitySensor::getVoltage()
00065 {
00066     return(this->_voltage);
00067 }
00068 
00069 double SalinitySensor::getSalinity()
00070 {
00071     return(this->_salinity);
00072 }
00073 
00074 double SalinitySensor::getStatus()
00075 {
00076     return(this->_status);
00077 }
00078 
00079 char* SalinitySensor::getStrStatus()
00080 {
00081     return(this->_strStatus);
00082 }