Demo for the LinkLoss Service.

Dependencies:   BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1

Committer:
rgrover1
Date:
Sat Jun 20 23:37:56 2015 +0000
Revision:
4:88dca48b2397
Parent:
1:88466c5aed5f
Child:
5:04920b552c37
switch to new APIs; rename BLEDevice to BLE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 0:440ee5e8595f 1 /* mbed Microcontroller Library
rgrover1 0:440ee5e8595f 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 0:440ee5e8595f 3 *
rgrover1 0:440ee5e8595f 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 0:440ee5e8595f 5 * you may not use this file except in compliance with the License.
rgrover1 0:440ee5e8595f 6 * You may obtain a copy of the License at
rgrover1 0:440ee5e8595f 7 *
rgrover1 0:440ee5e8595f 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 0:440ee5e8595f 9 *
rgrover1 0:440ee5e8595f 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 0:440ee5e8595f 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 0:440ee5e8595f 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 0:440ee5e8595f 13 * See the License for the specific language governing permissions and
rgrover1 0:440ee5e8595f 14 * limitations under the License.
rgrover1 0:440ee5e8595f 15 */
rgrover1 0:440ee5e8595f 16
rgrover1 0:440ee5e8595f 17 #include "mbed.h"
rgrover1 4:88dca48b2397 18 #include "BLE.h"
rgrover1 0:440ee5e8595f 19 #include "LinkLossService.h"
rgrover1 0:440ee5e8595f 20
rgrover1 4:88dca48b2397 21 BLE ble;
rgrover1 0:440ee5e8595f 22
rgrover1 0:440ee5e8595f 23 void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
rgrover1 0:440ee5e8595f 24 {
rgrover1 4:88dca48b2397 25 ble.gap().startAdvertising();
rgrover1 0:440ee5e8595f 26 }
rgrover1 0:440ee5e8595f 27
rgrover1 0:440ee5e8595f 28 void linkLossCallback(LinkLossService::AlertLevel_t level)
rgrover1 0:440ee5e8595f 29 {
rgrover1 0:440ee5e8595f 30 printf("received link loss alert\r\n");
rgrover1 0:440ee5e8595f 31 }
rgrover1 0:440ee5e8595f 32
rgrover1 0:440ee5e8595f 33 int main(void)
rgrover1 0:440ee5e8595f 34 {
rgrover1 0:440ee5e8595f 35 ble.init();
rgrover1 4:88dca48b2397 36 ble.gap().onDisconnection(disconnectionCallback);
rgrover1 0:440ee5e8595f 37
rgrover1 0:440ee5e8595f 38 LinkLossService linkLoss(ble, linkLossCallback, LinkLossService::HIGH_ALERT);
rgrover1 0:440ee5e8595f 39
rgrover1 4:88dca48b2397 40 ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
rgrover1 4:88dca48b2397 41 ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
rgrover1 4:88dca48b2397 42 ble.gap().setAdvertisingInterval(1000); /* 1second. */
rgrover1 4:88dca48b2397 43 ble.gap().startAdvertising();
rgrover1 0:440ee5e8595f 44
rgrover1 0:440ee5e8595f 45 while (true) {
rgrover1 0:440ee5e8595f 46 ble.waitForEvent();
rgrover1 0:440ee5e8595f 47 }
rgrover1 0:440ee5e8595f 48 }