Skip to content

Commit 185bea2

Browse files
committed
SCD4X: Support low power periodic measurements.
1 parent b79814c commit 185bea2

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

micropython/modules/breakout_scd41/breakout_scd41.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ static MP_DEFINE_CONST_FUN_OBJ_KW(scd41_init_obj, 0, scd41_init);
1313

1414
// Start/Stop measurement, no args (module-level, so no "self")
1515
static MP_DEFINE_CONST_FUN_OBJ_0(scd41_start_periodic_measurement_obj, scd41_start_periodic_measurement);
16+
static MP_DEFINE_CONST_FUN_OBJ_0(scd41_start_low_power_periodic_measurement_obj, scd41_start_low_power_periodic_measurement);
1617
static MP_DEFINE_CONST_FUN_OBJ_0(scd41_stop_periodic_measurement_obj, scd41_stop_periodic_measurement);
1718
static MP_DEFINE_CONST_FUN_OBJ_0(scd41_get_data_ready_obj, scd41_get_data_ready);
1819

@@ -30,6 +31,7 @@ static const mp_map_elem_t scd41_globals_table[] = {
3031
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_breakout_scd41) },
3132
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&scd41_init_obj) },
3233
{ MP_ROM_QSTR(MP_QSTR_start), MP_ROM_PTR(&scd41_start_periodic_measurement_obj) },
34+
{ MP_ROM_QSTR(MP_QSTR_start_low_power), MP_ROM_PTR(&scd41_start_low_power_periodic_measurement_obj) },
3335
{ MP_ROM_QSTR(MP_QSTR_stop), MP_ROM_PTR(&scd41_stop_periodic_measurement_obj) },
3436
{ MP_ROM_QSTR(MP_QSTR_measure), MP_ROM_PTR(&scd41_read_measurement_obj) },
3537
{ MP_ROM_QSTR(MP_QSTR_ready), MP_ROM_PTR(&scd41_get_data_ready_obj) },

micropython/modules/breakout_scd41/breakout_scd41.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,19 @@ mp_obj_t scd41_start_periodic_measurement() {
6464
return mp_const_none;
6565
}
6666

67+
mp_obj_t scd41_start_low_power_periodic_measurement() {
68+
if(!scd41_initialised) {
69+
mp_raise_msg(&mp_type_RuntimeError, NOT_INITIALISED_MSG);
70+
return mp_const_none;
71+
}
72+
int error = scd4x_start_low_power_periodic_measurement();
73+
if(error) {
74+
mp_raise_msg(&mp_type_RuntimeError, FAIL_MSG);
75+
}
76+
77+
return mp_const_none;
78+
}
79+
6780
mp_obj_t scd41_get_data_ready() {
6881
if(!scd41_initialised) {
6982
mp_raise_msg(&mp_type_RuntimeError, NOT_INITIALISED_MSG);

micropython/modules/breakout_scd41/breakout_scd41.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// Declare the functions we'll make available in Python
66
extern mp_obj_t scd41_init(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
77
extern mp_obj_t scd41_start_periodic_measurement();
8+
extern mp_obj_t scd41_start_low_power_periodic_measurement();
89
extern mp_obj_t scd41_stop_periodic_measurement();
910
extern mp_obj_t scd41_read_measurement();
1011
extern mp_obj_t scd41_get_data_ready();

0 commit comments

Comments
 (0)