Demo for the LinkLoss Service.
Dependencies: BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1
Diff: main.cpp
- Revision:
- 0:440ee5e8595f
- Child:
- 1:88466c5aed5f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Dec 11 12:07:38 2014 +0000 @@ -0,0 +1,48 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "mbed.h" +#include "BLEDevice.h" +#include "LinkLossService.h" + +BLEDevice ble; + +void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason) +{ + ble.startAdvertising(); +} + +void linkLossCallback(LinkLossService::AlertLevel_t level) +{ + printf("received link loss alert\r\n"); +} + +int main(void) +{ + ble.init(); + ble.onDisconnection(disconnectionCallback); + + LinkLossService linkLoss(ble, linkLossCallback, LinkLossService::HIGH_ALERT); + + ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); + ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); + ble.setAdvertisingInterval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(1000)); /* 1second. */ + ble.startAdvertising(); + + while (true) { + ble.waitForEvent(); + } +}