MPL3115A2_for_weather_shield
Dependents: SPARKFUN_WEATHER_SHIELD
Fork of MPL3115A2 by
Temperature.cpp@0:beb43bc3d6d4, 2014-04-01 (annotated)
- Committer:
- sophtware
- Date:
- Tue Apr 01 21:35:23 2014 +0000
- Revision:
- 0:beb43bc3d6d4
Initial Checkin
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sophtware | 0:beb43bc3d6d4 | 1 | #include "Temperature.h" |
sophtware | 0:beb43bc3d6d4 | 2 | #include "mbed.h" |
sophtware | 0:beb43bc3d6d4 | 3 | |
sophtware | 0:beb43bc3d6d4 | 4 | Temperature::Temperature() |
sophtware | 0:beb43bc3d6d4 | 5 | { |
sophtware | 0:beb43bc3d6d4 | 6 | _temperature = 0.0; |
sophtware | 0:beb43bc3d6d4 | 7 | |
sophtware | 0:beb43bc3d6d4 | 8 | _compressed[0] = 0; |
sophtware | 0:beb43bc3d6d4 | 9 | _compressed[1] = 0; |
sophtware | 0:beb43bc3d6d4 | 10 | } |
sophtware | 0:beb43bc3d6d4 | 11 | |
sophtware | 0:beb43bc3d6d4 | 12 | Temperature::Temperature(float t, unitsType units) |
sophtware | 0:beb43bc3d6d4 | 13 | { |
sophtware | 0:beb43bc3d6d4 | 14 | setTemperature(t, units); |
sophtware | 0:beb43bc3d6d4 | 15 | } |
sophtware | 0:beb43bc3d6d4 | 16 | |
sophtware | 0:beb43bc3d6d4 | 17 | Temperature::Temperature(const char* compressed) |
sophtware | 0:beb43bc3d6d4 | 18 | { |
sophtware | 0:beb43bc3d6d4 | 19 | setTemperature(compressed); |
sophtware | 0:beb43bc3d6d4 | 20 | } |
sophtware | 0:beb43bc3d6d4 | 21 | |
sophtware | 0:beb43bc3d6d4 | 22 | Temperature::Temperature(const char msb, const char lsb) |
sophtware | 0:beb43bc3d6d4 | 23 | { |
sophtware | 0:beb43bc3d6d4 | 24 | setTemperature(msb, lsb); |
sophtware | 0:beb43bc3d6d4 | 25 | } |
sophtware | 0:beb43bc3d6d4 | 26 | |
sophtware | 0:beb43bc3d6d4 | 27 | void Temperature::setTemperature() |
sophtware | 0:beb43bc3d6d4 | 28 | { |
sophtware | 0:beb43bc3d6d4 | 29 | setTemperature(_compressed[0], _compressed[1]); |
sophtware | 0:beb43bc3d6d4 | 30 | } |
sophtware | 0:beb43bc3d6d4 | 31 | |
sophtware | 0:beb43bc3d6d4 | 32 | void Temperature::setTemperature(float t, unitsType units) |
sophtware | 0:beb43bc3d6d4 | 33 | { |
sophtware | 0:beb43bc3d6d4 | 34 | // TODO: |
sophtware | 0:beb43bc3d6d4 | 35 | } |
sophtware | 0:beb43bc3d6d4 | 36 | |
sophtware | 0:beb43bc3d6d4 | 37 | void Temperature::setTemperature(const char* compressed) |
sophtware | 0:beb43bc3d6d4 | 38 | { |
sophtware | 0:beb43bc3d6d4 | 39 | setTemperature(compressed[0], compressed[1]); |
sophtware | 0:beb43bc3d6d4 | 40 | } |
sophtware | 0:beb43bc3d6d4 | 41 | |
sophtware | 0:beb43bc3d6d4 | 42 | void Temperature::setTemperature(const char msb, const char lsb) |
sophtware | 0:beb43bc3d6d4 | 43 | { |
sophtware | 0:beb43bc3d6d4 | 44 | float templsb = (lsb>>4) / 16.0; //temp, fraction of a degree |
sophtware | 0:beb43bc3d6d4 | 45 | _temperature = (float)(msb + templsb); |
sophtware | 0:beb43bc3d6d4 | 46 | } |
sophtware | 0:beb43bc3d6d4 | 47 | |
sophtware | 0:beb43bc3d6d4 | 48 | float Temperature::temperature(unitsType units) |
sophtware | 0:beb43bc3d6d4 | 49 | { |
sophtware | 0:beb43bc3d6d4 | 50 | switch (units) |
sophtware | 0:beb43bc3d6d4 | 51 | { |
sophtware | 0:beb43bc3d6d4 | 52 | case FAHRENHEIT: |
sophtware | 0:beb43bc3d6d4 | 53 | return (_temperature * 9.0)/ 5.0 + 32.0; |
sophtware | 0:beb43bc3d6d4 | 54 | |
sophtware | 0:beb43bc3d6d4 | 55 | case KELVIN: |
sophtware | 0:beb43bc3d6d4 | 56 | return _temperature + 273.15; |
sophtware | 0:beb43bc3d6d4 | 57 | } |
sophtware | 0:beb43bc3d6d4 | 58 | |
sophtware | 0:beb43bc3d6d4 | 59 | return _temperature; |
sophtware | 0:beb43bc3d6d4 | 60 | } |
sophtware | 0:beb43bc3d6d4 | 61 | |
sophtware | 0:beb43bc3d6d4 | 62 | const char* Temperature::print(unitsType units) |
sophtware | 0:beb43bc3d6d4 | 63 | { |
sophtware | 0:beb43bc3d6d4 | 64 | sprintf(_printBuffer, "%.1f", temperature(units)); |
sophtware | 0:beb43bc3d6d4 | 65 | return _printBuffer; |
sophtware | 0:beb43bc3d6d4 | 66 | } |