30class BMP180 :
public ThermPressMeter {
32 explicit BMP180(int8_t address = 0x77)
33 : address(address), sensorStatus(
false) {
37 float value = TEMPERATURE_NOT_AVAILABLE;
38 bool retryDone =
false;
40 if (!sensorStatus || isnan(value)) {
41 sensorStatus = bmp.begin(address);
44 value = TEMPERATURE_NOT_AVAILABLE;
46 value = bmp.readTemperature();
48 }
while (isnan(value) && !retryDone);
53 float value = PRESSURE_NOT_AVAILABLE;
54 bool retryDone =
false;
56 if (!sensorStatus || isnan(value)) {
57 sensorStatus = bmp.begin(address);
60 value = PRESSURE_NOT_AVAILABLE;
62 value = bmp.readPressure() / 100.0;
64 }
while (isnan(value) && !retryDone);
69 sensorStatus = bmp.begin(address);
71 channel.setNewValue(getTemp());
72 pressureChannel.setNewValue(getPressure());