Skip to content

Commit 7cd659e

Browse files
committed
update tests
test reading of measurements where reasonable and wait after measurement command for measurements to be ready such that the read method does not return with NACK
1 parent 7b0324f commit 7cd659e

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

tests/scd4x_i2c_test.cpp

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,24 @@ TEST (SCD4X_Tests, test_measure_single_shot_rht_only1) {
186186
int16_t local_error = 0;
187187
local_error = scd4x_measure_single_shot_rht_only();
188188
CHECK_EQUAL_ZERO_TEXT(local_error, "measure_single_shot_rht_only");
189+
local_error = scd4x_read_measurement_raw(&co2_concentration, &temperature,
190+
&relative_humidity);
191+
CHECK_EQUAL_ZERO_TEXT(local_error, "read_measurement_raw");
192+
printf("co2_concentration: %u ", co2_concentration);
193+
printf("temperature: %u ", temperature);
194+
printf("relative_humidity: %u\n", relative_humidity);
189195
}
190196

191197
TEST (SCD4X_Tests, test_measure_single_shot1) {
192198
int16_t local_error = 0;
193199
local_error = scd4x_measure_single_shot();
194200
CHECK_EQUAL_ZERO_TEXT(local_error, "measure_single_shot");
201+
local_error = scd4x_read_measurement_raw(&co2_concentration, &temperature,
202+
&relative_humidity);
203+
CHECK_EQUAL_ZERO_TEXT(local_error, "read_measurement_raw");
204+
printf("co2_concentration: %u ", co2_concentration);
205+
printf("temperature: %u ", temperature);
206+
printf("relative_humidity: %u\n", relative_humidity);
195207
}
196208

197209
TEST (SCD4X_Tests, test_start_periodic_measurement1) {
@@ -205,6 +217,14 @@ TEST (SCD4X_Tests, test_start_periodic_measurement1) {
205217
uint16_t data_ready_status = 0;
206218
local_error = scd4x_start_periodic_measurement();
207219
CHECK_EQUAL_ZERO_TEXT(local_error, "start_periodic_measurement");
220+
// wait for measurement
221+
sensirion_hal_sleep_us(5000000);
222+
local_error = scd4x_get_data_ready_status(&arg_0);
223+
CHECK_EQUAL_ZERO_TEXT(local_error, "get_data_ready_status");
224+
printf("arg_0: %d\n", arg_0);
225+
local_error = scd4x_get_data_ready_status_raw(&data_ready_status);
226+
CHECK_EQUAL_ZERO_TEXT(local_error, "get_data_ready_status_raw");
227+
printf("data_ready_status: %u\n", data_ready_status);
208228
local_error = scd4x_read_measurement_raw(&co2_concentration, &temperature,
209229
&relative_humidity);
210230
CHECK_EQUAL_ZERO_TEXT(local_error, "read_measurement_raw");
@@ -221,12 +241,6 @@ TEST (SCD4X_Tests, test_start_periodic_measurement1) {
221241
local_error = scd4x_get_ambient_pressure_raw(&ambient_pressure);
222242
CHECK_EQUAL_ZERO_TEXT(local_error, "get_ambient_pressure_raw");
223243
printf("ambient_pressure: %u\n", ambient_pressure);
224-
local_error = scd4x_get_data_ready_status(&arg_0);
225-
CHECK_EQUAL_ZERO_TEXT(local_error, "get_data_ready_status");
226-
printf("arg_0: %d\n", arg_0);
227-
local_error = scd4x_get_data_ready_status_raw(&data_ready_status);
228-
CHECK_EQUAL_ZERO_TEXT(local_error, "get_data_ready_status_raw");
229-
printf("data_ready_status: %u\n", data_ready_status);
230244
local_error = scd4x_stop_periodic_measurement();
231245
CHECK_EQUAL_ZERO_TEXT(local_error, "stop_periodic_measurement");
232246
}
@@ -244,10 +258,8 @@ TEST (SCD4X_Tests, test_start_low_power_periodic_measurement1) {
244258
CHECK_EQUAL_ZERO_TEXT(local_error, "start_low_power_periodic_measurement");
245259
local_error = scd4x_read_measurement_raw(&co2_concentration, &temperature,
246260
&relative_humidity);
247-
CHECK_EQUAL_ZERO_TEXT(local_error, "read_measurement_raw");
248-
printf("co2_concentration: %u ", co2_concentration);
249-
printf("temperature: %u ", temperature);
250-
printf("relative_humidity: %u\n", relative_humidity);
261+
// as we do not wait the read measurement command returns with nack/error
262+
CHECK_EQUAL_TEXT(local_error, 1, "read_measurement_raw");
251263
local_error = scd4x_set_ambient_pressure(101300);
252264
CHECK_EQUAL_ZERO_TEXT(local_error, "set_ambient_pressure");
253265
local_error = scd4x_get_ambient_pressure(&a_ambient_pressure);

0 commit comments

Comments
 (0)