33
33
#include "shared-bindings/_bleio/Address.h"
34
34
#include "shared-bindings/_bleio/Adapter.h"
35
35
36
- #define ADV_INTERVAL_MIN (0.0020f )
37
- #define ADV_INTERVAL_MIN_STRING "0.0020 "
36
+ #define ADV_INTERVAL_MIN (0.02001f )
37
+ #define ADV_INTERVAL_MIN_STRING "0.02001 "
38
38
#define ADV_INTERVAL_MAX (10.24f)
39
39
#define ADV_INTERVAL_MAX_STRING "10.24"
40
40
// 20ms is recommended by Apple
@@ -307,7 +307,7 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
307
307
mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
308
308
mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
309
309
310
- mp_float_t timeout = 0 ;
310
+ mp_float_t timeout = 0.0f ;
311
311
if (args [ARG_timeout ].u_obj != mp_const_none ) {
312
312
timeout = mp_obj_get_float (args [ARG_timeout ].u_obj );
313
313
}
@@ -325,6 +325,13 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
325
325
mp_raise_ValueError_varg (translate ("interval must be in range %s-%s" ), INTERVAL_MIN_STRING , INTERVAL_MAX_STRING );
326
326
}
327
327
328
+ #pragma GCC diagnostic push
329
+ #pragma GCC diagnostic ignored "-Wfloat-equal"
330
+ if (timeout != 0.0f && timeout < interval ) {
331
+ mp_raise_ValueError (translate ("non-zero timeout must be >= interval" ));
332
+ }
333
+ #pragma GCC diagnostic pop
334
+
328
335
const mp_float_t window = mp_obj_float_get (args [ARG_window ].u_obj );
329
336
if (window > interval ) {
330
337
mp_raise_ValueError (translate ("window must be <= interval" ));
0 commit comments