Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
SalinitySensor.cpp
- Committer:
- mariosimaremare
- Date:
- 2016-06-16
- Revision:
- 3:7c648d1d8802
- Parent:
- 2:ed17e258da0d
- Child:
- 5:4cbe44452889
File content as of revision 3:7c648d1d8802:
/*
* G3: WATERPLAY
*/
#include "SalinitySensor.h"
#include "mbed.h"
#include <algorithm>
#include "Printer.h"
SalinitySensor::SalinitySensor(
Printer &printer,
PinName pin,
double const_voltage,
double const_converter,
double const_multiplier,
double const_lower_boundary,
double const_upper_boundary
):
_printer(printer),
_analog_in(pin),
_const_voltage(const_voltage),
_const_converter(const_converter),
_const_multiplier(const_multiplier),
_const_lower_boundary(const_lower_boundary),
_const_upper_boundary(const_upper_boundary),
_const_sample_number(100),
_reading(0.0),
_voltage(0.0),
_salinity(0.0),
_status(0.0),
_strStatus("OK")
{
this->reload();
}
void SalinitySensor::reload()
{
double readings[this->_const_sample_number];
for(int counter = 0; counter < this->_const_sample_number; ++counter){
// the reading from sensor.
readings[counter] = this->_analog_in.read();
}
sort(readings, readings + this->_const_sample_number);
this->_reading = readings[this->_const_sample_number / 2];
// converted voltage.
this->_voltage =
this->_reading *
this->_const_voltage *
this->_const_converter;
// the salinity value.
this->_salinity =
this->_voltage *
this->_const_multiplier;
this->_status = 0.0;
this->_strStatus = "OK";
if(this->_salinity < this->_const_lower_boundary){
this->_status = this->_salinity - this->_const_lower_boundary;
this->_strStatus = "LW";
} else if(this->_salinity > this->_const_upper_boundary){
this->_status = this->_const_lower_boundary - this->_salinity;
this->_strStatus = "HI";
}
}
double SalinitySensor::getReading()
{
return(this->_reading);
}
double SalinitySensor::getVoltage()
{
return(this->_voltage);
}
double SalinitySensor::getSalinity()
{
return(this->_salinity);
}
double SalinitySensor::getStatus()
{
return(this->_status);
}
char* SalinitySensor::getStrStatus()
{
return(this->_strStatus);
}