ble nano hid over gatt
Dependencies: BLE_API mbed-dev nRF51822
Diff: HIDController_BLE.cpp
- Revision:
- 20:d8840ac38434
- Parent:
- 19:cd7f2fe05ae4
- Child:
- 21:d801c32231b0
--- a/HIDController_BLE.cpp Mon Aug 22 13:08:40 2016 +0000 +++ b/HIDController_BLE.cpp Mon Aug 22 14:37:16 2016 +0000 @@ -31,6 +31,7 @@ static DFUService* dfuService; static BLEProtocol::Address_t peerAddress; +static volatile bool connected = false; static void updateBatteryLevel() { if (!batteryService) return; @@ -83,11 +84,13 @@ static void onDisconnect(const Gap::DisconnectionCallbackParams_t *params) { printf("onDisconnect\r\n"); + connected = false; BLE::Instance(BLE::DEFAULT_INSTANCE).gap().startAdvertising(); } static void onTimeout(const Gap::TimeoutSource_t source) { printf("onTimeout\r\n"); + connected = false; BLE::Instance(BLE::DEFAULT_INSTANCE).gap().startAdvertising(); } @@ -115,6 +118,7 @@ // BLE::Instance(BLE::DEFAULT_INSTANCE).gap().setAdvertisingPolicyMode(Gap::ADV_POLICY_FILTER_CONN_REQS); BLE::Instance(BLE::DEFAULT_INSTANCE).gap().setAdvertisingPolicyMode(Gap::ADV_POLICY_FILTER_ALL_REQS); + connected = true; } else { printf("Security failed %d\r\n", status); } @@ -238,6 +242,10 @@ return; } +bool HIDController::connected() { + return connected; +} + void HIDController::init() { // https://github.com/jpbrucker/BLE_HID/blob/master/examples/examples_common.cpp printf("ble.init\r\n"); @@ -268,6 +276,7 @@ } void HIDController::queueCurrentReportData() { + if (!connected) return; if (keyboardService) { keyboardService->queueCurrentReportData(); }