Skip to content

Commit

Permalink
pybricks.iodevices.lwp3device: Add disconnect method.
Browse files Browse the repository at this point in the history
  • Loading branch information
laurensvalk committed Apr 4, 2024
1 parent ce8a7c9 commit 5be8751
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
### Added
- Added optional keyword arguments to `pybricks.tools.read_input_byte()` for
automatic conversion via `chr` and to skip to the last byte ([support#1574]).
- Added `disconnect` method to `pybricks.pupdevices.Remote` and
`pybricks.iodevices.LWP3Device` ([support#802]).

### Changed
- Raise a descriptive error when the `Car` class can't find a steering mechanism
Expand All @@ -15,6 +17,7 @@
### Fixed
- Fixed hubs not shutting down when holding hub button ([support#1419]).

[support#802]: https://github.com/pybricks/support/issues/802
[support#1419]: https://github.com/pybricks/support/issues/1419
[support#1564]: https://github.com/pybricks/support/issues/1564
[support#1574]: https://github.com/pybricks/support/issues/1574
Expand Down
10 changes: 10 additions & 0 deletions pybricks/iodevices/pb_type_iodevices_lwp3device.c
Original file line number Diff line number Diff line change
Expand Up @@ -433,13 +433,22 @@ STATIC mp_obj_t pb_lwp3device_name(size_t n_args, const mp_obj_t *args) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(pb_lwp3device_name_obj, 1, 2, pb_lwp3device_name);

STATIC mp_obj_t pb_lwp3device_disconnect(mp_obj_t self_in) {
pb_lwp3device_t *lwp3device = &pb_lwp3device_singleton;
pb_lwp3device_assert_connected();
pbdrv_bluetooth_peripheral_disconnect(&lwp3device->task);
return pb_module_tools_pbio_task_wait_or_await(&lwp3device->task);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(pb_lwp3device_disconnect_obj, pb_lwp3device_disconnect);

STATIC const pb_attr_dict_entry_t pb_type_pupdevices_Remote_attr_dict[] = {
PB_DEFINE_CONST_ATTR_RO(MP_QSTR_buttons, pb_type_pupdevices_Remote_obj_t, buttons),
PB_DEFINE_CONST_ATTR_RO(MP_QSTR_light, pb_type_pupdevices_Remote_obj_t, light),
PB_ATTR_DICT_SENTINEL
};

STATIC const mp_rom_map_elem_t pb_type_pupdevices_Remote_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_disconnect), MP_ROM_PTR(&pb_lwp3device_disconnect_obj) },
{ MP_ROM_QSTR(MP_QSTR_name), MP_ROM_PTR(&pb_lwp3device_name_obj) },
};
STATIC MP_DEFINE_CONST_DICT(pb_type_pupdevices_Remote_locals_dict, pb_type_pupdevices_Remote_locals_dict_table);
Expand Down Expand Up @@ -525,6 +534,7 @@ STATIC mp_obj_t lwp3device_read(mp_obj_t self_in) {
STATIC MP_DEFINE_CONST_FUN_OBJ_1(lwp3device_read_obj, lwp3device_read);

STATIC const mp_rom_map_elem_t pb_type_iodevices_LWP3Device_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_disconnect), MP_ROM_PTR(&pb_lwp3device_disconnect_obj) },
{ MP_ROM_QSTR(MP_QSTR_name), MP_ROM_PTR(&pb_lwp3device_name_obj) },
{ MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&lwp3device_write_obj) },
{ MP_ROM_QSTR(MP_QSTR_read), MP_ROM_PTR(&lwp3device_read_obj) },
Expand Down

0 comments on commit 5be8751

Please sign in to comment.