Demo for the LinkLoss Service.

Dependencies:   BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1

Committer:
rgrover1
Date:
Thu Dec 11 12:07:38 2014 +0000
Revision:
0:440ee5e8595f
Child:
1:88466c5aed5f
demo for the LinkLoss Service.; https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.link_loss.xml

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 0:440ee5e8595f 18 #include "BLEDevice.h"
rgrover1 0:440ee5e8595f 19 #include "LinkLossService.h"
rgrover1 0:440ee5e8595f 20
rgrover1 0:440ee5e8595f 21 BLEDevice ble;
rgrover1 0:440ee5e8595f 22
rgrover1 0:440ee5e8595f 23 void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
rgrover1 0:440ee5e8595f 24 {
rgrover1 0:440ee5e8595f 25 ble.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 0:440ee5e8595f 36 ble.onDisconnection(disconnectionCallback);
rgrover1 0:440ee5e8595f 37
rgrover1 0:440ee5e8595f 38 LinkLossService linkLoss(ble, linkLossCallback, LinkLossService::HIGH_ALERT);
rgrover1 0:440ee5e8595f 39
rgrover1 0:440ee5e8595f 40 ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
rgrover1 0:440ee5e8595f 41 ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
rgrover1 0:440ee5e8595f 42 ble.setAdvertisingInterval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(1000)); /* 1second. */
rgrover1 0:440ee5e8595f 43 ble.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 }