kopia lustrzana https://github.com/pimoroni/pimoroni-pico
PAA5100/PMW3901 Fix default float argument bug for #228
rodzic
b6ad894052
commit
05c370abd4
|
@ -190,7 +190,7 @@ mp_obj_t BreakoutPAA5100_get_motion(size_t n_args, const mp_obj_t *pos_args, mp_
|
||||||
enum { ARG_self, ARG_timeout };
|
enum { ARG_self, ARG_timeout };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_obj_new_float((float)BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS / 1000)} },
|
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
@ -198,8 +198,13 @@ mp_obj_t BreakoutPAA5100_get_motion(size_t n_args, const mp_obj_t *pos_args, mp_
|
||||||
|
|
||||||
breakout_paa5100_BreakoutPAA5100_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_paa5100_BreakoutPAA5100_obj_t);
|
breakout_paa5100_BreakoutPAA5100_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_paa5100_BreakoutPAA5100_obj_t);
|
||||||
|
|
||||||
float timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
float timeout = (float)BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS / 1000.0f;
|
||||||
uint16_t timeout_ms = (uint16_t)(timeout * 1000.0f);
|
uint16_t timeout_ms = BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS;
|
||||||
|
|
||||||
|
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||||
|
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
timeout_ms = (uint16_t)(timeout * 1000.0f);
|
||||||
|
}
|
||||||
int16_t x = 0;
|
int16_t x = 0;
|
||||||
int16_t y = 0;
|
int16_t y = 0;
|
||||||
if(self->breakout->get_motion(x, y, timeout_ms)) {
|
if(self->breakout->get_motion(x, y, timeout_ms)) {
|
||||||
|
@ -215,7 +220,7 @@ mp_obj_t BreakoutPAA5100_get_motion_slow(size_t n_args, const mp_obj_t *pos_args
|
||||||
enum { ARG_self, ARG_timeout };
|
enum { ARG_self, ARG_timeout };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_obj_new_float((float)BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS / 1000)} },
|
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
@ -223,8 +228,13 @@ mp_obj_t BreakoutPAA5100_get_motion_slow(size_t n_args, const mp_obj_t *pos_args
|
||||||
|
|
||||||
breakout_paa5100_BreakoutPAA5100_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_paa5100_BreakoutPAA5100_obj_t);
|
breakout_paa5100_BreakoutPAA5100_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_paa5100_BreakoutPAA5100_obj_t);
|
||||||
|
|
||||||
float timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
float timeout = (float)BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS / 1000.0f;
|
||||||
uint16_t timeout_ms = (uint16_t)(timeout * 1000.0f);
|
uint16_t timeout_ms = BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS;
|
||||||
|
|
||||||
|
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||||
|
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
timeout_ms = (uint16_t)(timeout * 1000.0f);
|
||||||
|
}
|
||||||
int16_t x = 0;
|
int16_t x = 0;
|
||||||
int16_t y = 0;
|
int16_t y = 0;
|
||||||
if(self->breakout->get_motion_slow(x, y, timeout_ms)) {
|
if(self->breakout->get_motion_slow(x, y, timeout_ms)) {
|
||||||
|
@ -241,7 +251,7 @@ mp_obj_t BreakoutPAA5100_frame_capture(size_t n_args, const mp_obj_t *pos_args,
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_obj_new_float((float)BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS / 1000)} },
|
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
@ -256,8 +266,13 @@ mp_obj_t BreakoutPAA5100_frame_capture(size_t n_args, const mp_obj_t *pos_args,
|
||||||
mp_raise_ValueError("Supplied buffer is the wrong size for frame capture. Needs to be 1225.");
|
mp_raise_ValueError("Supplied buffer is the wrong size for frame capture. Needs to be 1225.");
|
||||||
}
|
}
|
||||||
|
|
||||||
float timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
float timeout = (float)BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS / 1000.0f;
|
||||||
uint16_t timeout_ms = (uint16_t)(timeout * 1000.0f);
|
uint16_t timeout_ms = BreakoutPAA5100::DEFAULT_MOTION_TIMEOUT_MS;
|
||||||
|
|
||||||
|
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||||
|
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
timeout_ms = (uint16_t)(timeout * 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t data_size = 0;
|
uint16_t data_size = 0;
|
||||||
uint8_t data[BreakoutPAA5100::FRAME_BYTES];
|
uint8_t data[BreakoutPAA5100::FRAME_BYTES];
|
||||||
|
|
|
@ -190,7 +190,7 @@ mp_obj_t BreakoutPMW3901_get_motion(size_t n_args, const mp_obj_t *pos_args, mp_
|
||||||
enum { ARG_self, ARG_timeout };
|
enum { ARG_self, ARG_timeout };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_obj_new_float((float)BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS / 1000)} },
|
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
@ -198,8 +198,13 @@ mp_obj_t BreakoutPMW3901_get_motion(size_t n_args, const mp_obj_t *pos_args, mp_
|
||||||
|
|
||||||
breakout_pmw3901_BreakoutPMW3901_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_pmw3901_BreakoutPMW3901_obj_t);
|
breakout_pmw3901_BreakoutPMW3901_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_pmw3901_BreakoutPMW3901_obj_t);
|
||||||
|
|
||||||
float timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
float timeout = (float)BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS / 1000.0f;
|
||||||
uint16_t timeout_ms = (uint16_t)(timeout * 1000.0f);
|
uint16_t timeout_ms = BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS;
|
||||||
|
|
||||||
|
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||||
|
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
timeout_ms = (uint16_t)(timeout * 1000.0f);
|
||||||
|
}
|
||||||
int16_t x = 0;
|
int16_t x = 0;
|
||||||
int16_t y = 0;
|
int16_t y = 0;
|
||||||
if(self->breakout->get_motion(x, y, timeout_ms)) {
|
if(self->breakout->get_motion(x, y, timeout_ms)) {
|
||||||
|
@ -215,7 +220,7 @@ mp_obj_t BreakoutPMW3901_get_motion_slow(size_t n_args, const mp_obj_t *pos_args
|
||||||
enum { ARG_self, ARG_timeout };
|
enum { ARG_self, ARG_timeout };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_obj_new_float((float)BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS / 1000)} },
|
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
@ -223,8 +228,13 @@ mp_obj_t BreakoutPMW3901_get_motion_slow(size_t n_args, const mp_obj_t *pos_args
|
||||||
|
|
||||||
breakout_pmw3901_BreakoutPMW3901_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_pmw3901_BreakoutPMW3901_obj_t);
|
breakout_pmw3901_BreakoutPMW3901_obj_t *self = MP_OBJ_TO_PTR2(args[ARG_self].u_obj, breakout_pmw3901_BreakoutPMW3901_obj_t);
|
||||||
|
|
||||||
float timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
float timeout = (float)BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS / 1000.0f;
|
||||||
uint16_t timeout_ms = (uint16_t)(timeout * 1000.0f);
|
uint16_t timeout_ms = BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS;
|
||||||
|
|
||||||
|
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||||
|
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
timeout_ms = (uint16_t)(timeout * 1000.0f);
|
||||||
|
}
|
||||||
int16_t x = 0;
|
int16_t x = 0;
|
||||||
int16_t y = 0;
|
int16_t y = 0;
|
||||||
if(self->breakout->get_motion_slow(x, y, timeout_ms)) {
|
if(self->breakout->get_motion_slow(x, y, timeout_ms)) {
|
||||||
|
@ -241,7 +251,7 @@ mp_obj_t BreakoutPMW3901_frame_capture(size_t n_args, const mp_obj_t *pos_args,
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_obj_new_float((float)BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS / 1000)} },
|
{ MP_QSTR_timeout, MP_ARG_OBJ, {.u_obj = mp_const_none} },
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
|
@ -256,8 +266,13 @@ mp_obj_t BreakoutPMW3901_frame_capture(size_t n_args, const mp_obj_t *pos_args,
|
||||||
mp_raise_ValueError("Supplied buffer is the wrong size for frame capture. Needs to be 1225.");
|
mp_raise_ValueError("Supplied buffer is the wrong size for frame capture. Needs to be 1225.");
|
||||||
}
|
}
|
||||||
|
|
||||||
float timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
float timeout = (float)BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS / 1000.0f;
|
||||||
uint16_t timeout_ms = (uint16_t)(timeout * 1000.0f);
|
uint16_t timeout_ms = BreakoutPMW3901::DEFAULT_MOTION_TIMEOUT_MS;
|
||||||
|
|
||||||
|
if (args[ARG_timeout].u_obj != mp_const_none) {
|
||||||
|
timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
timeout_ms = (uint16_t)(timeout * 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t data_size = 0;
|
uint16_t data_size = 0;
|
||||||
uint8_t data[BreakoutPMW3901::FRAME_BYTES];
|
uint8_t data[BreakoutPMW3901::FRAME_BYTES];
|
||||||
|
|
Ładowanie…
Reference in New Issue