16 explicit BMP280(int8_t address = 0x76,
float altitude = NAN)
17 : address(address), sensorStatus(
false), altitude(altitude) {
21 float value = TEMPERATURE_NOT_AVAILABLE;
22 bool retryDone =
false;
24 if (!sensorStatus || isnan(value)) {
25 sensorStatus = bmp.begin(address);
28 value = TEMPERATURE_NOT_AVAILABLE;
30 value = bmp.readTemperature();
32 }
while (isnan(value) && !retryDone);
37 float value = PRESSURE_NOT_AVAILABLE;
38 bool retryDone =
false;
40 if (!sensorStatus || isnan(value)) {
41 sensorStatus = bmp.begin(address);
44 value = PRESSURE_NOT_AVAILABLE;
46 value = bmp.readPressure() / 100.0;
48 }
while (isnan(value) && !retryDone);
49 if (!isnan(altitude)) {
50 value = bmp.seaLevelForAltitude(altitude, value);
56 sensorStatus = bmp.begin(address);
58 channel.setNewValue(getTemp());
59 pressureChannel.setNewValue(getPressure());
62 void setAltitude(
float newAltitude) {
63 altitude = newAltitude;