h
Fork of MPL3115A2 by
Diff: Temperature.cpp
- Revision:
- 0:beb43bc3d6d4
diff -r 000000000000 -r beb43bc3d6d4 Temperature.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Temperature.cpp Tue Apr 01 21:35:23 2014 +0000 @@ -0,0 +1,66 @@ +#include "Temperature.h" +#include "mbed.h" + +Temperature::Temperature() +{ + _temperature = 0.0; + + _compressed[0] = 0; + _compressed[1] = 0; +} + +Temperature::Temperature(float t, unitsType units) +{ + setTemperature(t, units); +} + +Temperature::Temperature(const char* compressed) +{ + setTemperature(compressed); +} + +Temperature::Temperature(const char msb, const char lsb) +{ + setTemperature(msb, lsb); +} + +void Temperature::setTemperature() +{ + setTemperature(_compressed[0], _compressed[1]); +} + +void Temperature::setTemperature(float t, unitsType units) +{ + // TODO: +} + +void Temperature::setTemperature(const char* compressed) +{ + setTemperature(compressed[0], compressed[1]); +} + +void Temperature::setTemperature(const char msb, const char lsb) +{ + float templsb = (lsb>>4) / 16.0; //temp, fraction of a degree + _temperature = (float)(msb + templsb); +} + +float Temperature::temperature(unitsType units) +{ + switch (units) + { + case FAHRENHEIT: + return (_temperature * 9.0)/ 5.0 + 32.0; + + case KELVIN: + return _temperature + 273.15; + } + + return _temperature; +} + +const char* Temperature::print(unitsType units) +{ + sprintf(_printBuffer, "%.1f", temperature(units)); + return _printBuffer; +}