@@ -93,7 +93,14 @@ void AirQualityClass::end()
93
93
float AirQualityClass::readVOC ()
94
94
{
95
95
if (_revision == BOARD_REVISION_2) {
96
- while (!iaqSensor->run ()){ }
96
+ unsigned int time_Start = millis ();
97
+ while (millis () - time_Start < BME68X_TIMEOUT) {
98
+ if (iaqSensor->run ()){
99
+ break ;
100
+ } else {
101
+ checkIaqSensorStatus ();
102
+ }
103
+ }
97
104
float reading = iaqSensor->breathVocEquivalent ;
98
105
return reading;
99
106
}
@@ -102,7 +109,14 @@ float AirQualityClass::readVOC()
102
109
float AirQualityClass::readGasResistor ()
103
110
{
104
111
if (_revision == BOARD_REVISION_2) {
105
- while (!iaqSensor->run ()){ }
112
+ unsigned int time_Start = millis ();
113
+ while (millis () - time_Start < BME68X_TIMEOUT) {
114
+ if (iaqSensor->run ()){
115
+ break ;
116
+ } else {
117
+ checkIaqSensorStatus ();
118
+ }
119
+ }
106
120
float reading = iaqSensor->gasResistance ;
107
121
return reading;
108
122
}
@@ -111,7 +125,14 @@ float AirQualityClass::readGasResistor()
111
125
float AirQualityClass::readIAQ ()
112
126
{
113
127
if (_revision == BOARD_REVISION_2) {
114
- while (!iaqSensor->run ()){ }
128
+ unsigned int time_Start = millis ();
129
+ while (millis () - time_Start < BME68X_TIMEOUT) {
130
+ if (iaqSensor->run ()){
131
+ break ;
132
+ } else {
133
+ checkIaqSensorStatus ();
134
+ }
135
+ }
115
136
float reading = iaqSensor->iaq ;
116
137
return reading;
117
138
}
@@ -120,7 +141,14 @@ float AirQualityClass::readIAQ()
120
141
float AirQualityClass::readIAQAccuracy ()
121
142
{
122
143
if (_revision == BOARD_REVISION_2) {
123
- while (!iaqSensor->run ()){ }
144
+ unsigned int time_Start = millis ();
145
+ while (millis () - time_Start < BME68X_TIMEOUT) {
146
+ if (iaqSensor->run ()){
147
+ break ;
148
+ } else {
149
+ checkIaqSensorStatus ();
150
+ }
151
+ }
124
152
float reading = iaqSensor->iaqAccuracy ;
125
153
return reading;
126
154
}
@@ -129,7 +157,14 @@ float AirQualityClass::readIAQAccuracy()
129
157
float AirQualityClass::readStaticIAQ ()
130
158
{
131
159
if (_revision == BOARD_REVISION_2) {
132
- while (!iaqSensor->run ()){ }
160
+ unsigned int time_Start = millis ();
161
+ while (millis () - time_Start < BME68X_TIMEOUT) {
162
+ if (iaqSensor->run ()){
163
+ break ;
164
+ } else {
165
+ checkIaqSensorStatus ();
166
+ }
167
+ }
133
168
float reading = iaqSensor->staticIaq ;
134
169
return reading;
135
170
}
@@ -139,7 +174,14 @@ float AirQualityClass::readStaticIAQ()
139
174
float AirQualityClass::readCO2 ()
140
175
{
141
176
if (_revision == BOARD_REVISION_2) {
142
- while (!iaqSensor->run ()){ }
177
+ unsigned int time_Start = millis ();
178
+ while (millis () - time_Start < BME68X_TIMEOUT) {
179
+ if (iaqSensor->run ()){
180
+ break ;
181
+ } else {
182
+ checkIaqSensorStatus ();
183
+ }
184
+ }
143
185
float reading = iaqSensor->co2Equivalent ;
144
186
return reading;
145
187
}
0 commit comments