extmod/nimble: Allow modbluetooth binding to hook "sent HCI packet".

This commit is contained in:
Jim Mussared 2021-07-21 17:04:41 +10:00 committed by Damien George
parent 53dfb279da
commit edfb5d56c8
3 changed files with 12 additions and 0 deletions

View File

@ -27,6 +27,7 @@
#include "py/runtime.h"
#include "py/mphal.h"
#include "nimble/ble.h"
#include "extmod/nimble/modbluetooth_nimble.h"
#include "extmod/nimble/hal/hal_uart.h"
#include "extmod/nimble/nimble/nimble_npl_os.h"
#include "extmod/mpbthci.h"
@ -74,6 +75,11 @@ void hal_uart_start_tx(uint32_t port) {
#endif
mp_bluetooth_hci_uart_write(mp_bluetooth_hci_cmd_buf, len);
if (len > 0) {
// Allow modbluetooth bindings to hook "sent packet" (e.g. to unstall l2cap channels).
mp_bluetooth_nimble_sent_hci_packet();
}
}
int hal_uart_close(uint32_t port) {

View File

@ -1392,6 +1392,9 @@ int mp_bluetooth_gattc_exchange_mtu(uint16_t conn_handle) {
#endif // MICROPY_PY_BLUETOOTH_ENABLE_GATT_CLIENT
void mp_bluetooth_nimble_sent_hci_packet(void) {
}
#if MICROPY_PY_BLUETOOTH_ENABLE_L2CAP_CHANNELS
// Fortunately NimBLE uses mbuf chains correctly with L2CAP COC (rather than

View File

@ -71,5 +71,8 @@ void mp_bluetooth_nimble_port_start(void);
// Tell the port to stop its background task.
void mp_bluetooth_nimble_port_shutdown(void);
// --- Called by the HCI UART layer to let us know when packets have been sent.
void mp_bluetooth_nimble_sent_hci_packet(void);
#endif // MICROPY_INCLUDED_EXTMOD_NIMBLE_MODBLUETOOTH_NIMBLE_H