mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
modules/py_tof: Add proper deinit function.
This commit is contained in:
parent
c743cab6a3
commit
20d6b53f8a
@ -197,7 +197,7 @@ static mp_obj_t tof_get_depth_obj(int w, int h, float *frame, bool mirror,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static mp_obj_t py_tof_deinit() {
|
static mp_obj_t py_tof_reset() {
|
||||||
tof_width = 0;
|
tof_width = 0;
|
||||||
tof_height = 0;
|
tof_height = 0;
|
||||||
tof_transposed = false;
|
tof_transposed = false;
|
||||||
@ -216,6 +216,17 @@ static mp_obj_t py_tof_deinit() {
|
|||||||
#endif
|
#endif
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
static MP_DEFINE_CONST_FUN_OBJ_0(py_tof_reset_obj, py_tof_reset);
|
||||||
|
|
||||||
|
static mp_obj_t py_tof_deinit() {
|
||||||
|
tof_width = 0;
|
||||||
|
tof_height = 0;
|
||||||
|
tof_transposed = false;
|
||||||
|
#if (OMV_TOF_VL53L5CX_ENABLE == 1)
|
||||||
|
vl53l5cx_shutdown(&vl53l5cx_dev.platform);
|
||||||
|
#endif
|
||||||
|
return mp_const_none;
|
||||||
|
}
|
||||||
static MP_DEFINE_CONST_FUN_OBJ_0(py_tof_deinit_obj, py_tof_deinit);
|
static MP_DEFINE_CONST_FUN_OBJ_0(py_tof_deinit_obj, py_tof_deinit);
|
||||||
|
|
||||||
mp_obj_t py_tof_init(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
mp_obj_t py_tof_init(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||||
@ -228,7 +239,7 @@ mp_obj_t py_tof_init(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||||
|
|
||||||
py_tof_deinit();
|
py_tof_reset();
|
||||||
bool first_init = true;
|
bool first_init = true;
|
||||||
int type = args[ARG_type].u_int;
|
int type = args[ARG_type].u_int;
|
||||||
|
|
||||||
@ -302,7 +313,7 @@ mp_obj_t py_tof_init(uint n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
|||||||
omv_i2c_pulse_scl(&tof_bus);
|
omv_i2c_pulse_scl(&tof_bus);
|
||||||
goto TOF_VL53L5CX_RETRY;
|
goto TOF_VL53L5CX_RETRY;
|
||||||
} else if (error != 0) {
|
} else if (error != 0) {
|
||||||
py_tof_deinit();
|
py_tof_reset();
|
||||||
mp_raise_msg(&mp_type_RuntimeError, MP_ERROR_TEXT("Failed to init the VL53L5CX"));
|
mp_raise_msg(&mp_type_RuntimeError, MP_ERROR_TEXT("Failed to init the VL53L5CX"));
|
||||||
}
|
}
|
||||||
tof_sensor = TOF_VL53L5CX;
|
tof_sensor = TOF_VL53L5CX;
|
||||||
@ -579,7 +590,7 @@ static const mp_rom_map_elem_t globals_dict_table[] = {
|
|||||||
{ MP_ROM_QSTR(MP_QSTR_TOF_VL53L5CX), MP_ROM_INT(TOF_VL53L5CX) },
|
{ MP_ROM_QSTR(MP_QSTR_TOF_VL53L5CX), MP_ROM_INT(TOF_VL53L5CX) },
|
||||||
#endif
|
#endif
|
||||||
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&py_tof_init_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_init), MP_ROM_PTR(&py_tof_init_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR(&py_tof_init_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR(&py_tof_reset_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&py_tof_deinit_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_deinit), MP_ROM_PTR(&py_tof_deinit_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_type), MP_ROM_PTR(&py_tof_type_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_type), MP_ROM_PTR(&py_tof_type_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&py_tof_width_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_width), MP_ROM_PTR(&py_tof_width_obj) },
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user