ok
Fork of g3_waterplay by
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Tue Jul 12 2022 21:07:58 by
1.7.2
