nrf5/sdk: Implementing simple event handler for bluetooth stack driver.
This commit is contained in:
parent
7a43228a2d
commit
a79c5ca7ab
@ -35,6 +35,7 @@
|
|||||||
#include "ble_gap.h"
|
#include "ble_gap.h"
|
||||||
#include "ble.h" // sd_ble_uuid_encode
|
#include "ble.h" // sd_ble_uuid_encode
|
||||||
|
|
||||||
|
|
||||||
#define SD_TEST_OR_ENABLE() \
|
#define SD_TEST_OR_ENABLE() \
|
||||||
if (sd_enabled() == 0) { \
|
if (sd_enabled() == 0) { \
|
||||||
(void)sd_enable(); \
|
(void)sd_enable(); \
|
||||||
@ -440,3 +441,46 @@ bool sd_advertise_data(ubluepy_advertise_data_t * p_adv_params) {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ble_evt_handler(ble_evt_t * p_ble_evt) {
|
||||||
|
switch (p_ble_evt->header.evt_id) {
|
||||||
|
case BLE_GAP_EVT_CONNECTED:
|
||||||
|
printf(">>> GAP CONNECT\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BLE_GAP_EVT_DISCONNECTED:
|
||||||
|
printf(">>> GAP DISCONNECT\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BLE_GATTS_EVT_WRITE:
|
||||||
|
printf(">>> GATTS write\n");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
printf(">>> unhandled evt: 0x" HEX2_FMT, p_ble_evt->header.evt_id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static uint8_t m_ble_evt_buf[sizeof(ble_evt_t) + (GATT_MTU_SIZE_DEFAULT)] __attribute__ ((aligned (4)));
|
||||||
|
|
||||||
|
#ifdef NRF51
|
||||||
|
void SWI2_IRQHandler(void) {
|
||||||
|
#else
|
||||||
|
void SWI2_EGU2_IRQHandler(void) {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
printf("SWI2 IRQ\n");
|
||||||
|
uint32_t evt_id;
|
||||||
|
uint32_t err_code;
|
||||||
|
do {
|
||||||
|
err_code = sd_evt_get(&evt_id);
|
||||||
|
// TODO: handle non ble events
|
||||||
|
} while (err_code != NRF_ERROR_NOT_FOUND && err_code != NRF_SUCCESS);
|
||||||
|
|
||||||
|
uint16_t evt_len = sizeof(m_ble_evt_buf);
|
||||||
|
do {
|
||||||
|
err_code = sd_ble_evt_get(m_ble_evt_buf, &evt_len);
|
||||||
|
ble_evt_handler((ble_evt_t *)m_ble_evt_buf);
|
||||||
|
} while (err_code != NRF_ERROR_NOT_FOUND && err_code != NRF_SUCCESS);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user