Shuta Nakamae / nRF51822

Fork of nRF51822 by Nordic Semiconductor

Committer:
rgrover1
Date:
Fri Jun 19 15:55:21 2015 +0100
Revision:
240:75b69581d1dd
Parent:
239:693a1f145b5a
Synchronized with git rev 11d76136
Author: Rohit Grover
add class NordicServiceDiscovery

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 194:c99fc3160091 1 /* mbed Microcontroller Library
rgrover1 194:c99fc3160091 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 194:c99fc3160091 3 *
rgrover1 194:c99fc3160091 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 194:c99fc3160091 5 * you may not use this file except in compliance with the License.
rgrover1 194:c99fc3160091 6 * You may obtain a copy of the License at
rgrover1 194:c99fc3160091 7 *
rgrover1 194:c99fc3160091 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 194:c99fc3160091 9 *
rgrover1 194:c99fc3160091 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 194:c99fc3160091 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 194:c99fc3160091 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 194:c99fc3160091 13 * See the License for the specific language governing permissions and
rgrover1 194:c99fc3160091 14 * limitations under the License.
rgrover1 194:c99fc3160091 15 */
rgrover1 194:c99fc3160091 16
rgrover1 194:c99fc3160091 17 #include "btle_gattc.h"
rgrover1 195:061ed80ffbcf 18 #include "UUID.h"
rgrover1 239:693a1f145b5a 19 #include "btle_discovery.h"
rgrover1 202:3ce954ce3eb8 20
rgrover1 240:75b69581d1dd 21 static NordicServiceDiscovery discoverySingleton;
rgrover1 240:75b69581d1dd 22 ServiceDiscovery *ServiceDiscovery::getSingleton(void) {
rgrover1 240:75b69581d1dd 23 return &discoverySingleton;
rgrover1 240:75b69581d1dd 24 }
rgrover1 240:75b69581d1dd 25
rgrover1 194:c99fc3160091 26 void bleGattcEventHandler(const ble_evt_t *p_ble_evt)
rgrover1 194:c99fc3160091 27 {
rgrover1 194:c99fc3160091 28 switch (p_ble_evt->header.evt_id) {
rgrover1 194:c99fc3160091 29 case BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP:
rgrover1 194:c99fc3160091 30 switch (p_ble_evt->evt.gattc_evt.gatt_status) {
rgrover1 235:10bb73f9d15d 31 case BLE_GATT_STATUS_SUCCESS:
rgrover1 240:75b69581d1dd 32 discoverySingleton.setupDiscoveredServices(&p_ble_evt->evt.gattc_evt.params.prim_srvc_disc_rsp);
rgrover1 195:061ed80ffbcf 33 break;
rgrover1 195:061ed80ffbcf 34
rgrover1 229:6394db9a71ba 35 case BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND:
rgrover1 229:6394db9a71ba 36 default:
rgrover1 240:75b69581d1dd 37 discoverySingleton.terminate();
rgrover1 194:c99fc3160091 38 break;
rgrover1 194:c99fc3160091 39 }
rgrover1 194:c99fc3160091 40 break;
rgrover1 194:c99fc3160091 41
rgrover1 235:10bb73f9d15d 42 case BLE_GATTC_EVT_CHAR_DISC_RSP:
rgrover1 194:c99fc3160091 43 switch (p_ble_evt->evt.gattc_evt.gatt_status) {
rgrover1 235:10bb73f9d15d 44 case BLE_GATT_STATUS_SUCCESS:
rgrover1 240:75b69581d1dd 45 discoverySingleton.setupDiscoveredCharacteristics(&p_ble_evt->evt.gattc_evt.params.char_disc_rsp);
rgrover1 219:681be3608738 46 break;
rgrover1 212:f2316b17d8be 47
rgrover1 229:6394db9a71ba 48 case BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND:
rgrover1 229:6394db9a71ba 49 default:
rgrover1 240:75b69581d1dd 50 discoverySingleton.terminateCharacteristicDiscovery();
rgrover1 212:f2316b17d8be 51 break;
rgrover1 194:c99fc3160091 52 }
rgrover1 194:c99fc3160091 53 break;
rgrover1 194:c99fc3160091 54 }
rgrover1 195:061ed80ffbcf 55
rgrover1 240:75b69581d1dd 56 discoverySingleton.progressCharacteristicDiscovery();
rgrover1 240:75b69581d1dd 57 discoverySingleton.progressServiceDiscovery();
rgrover1 194:c99fc3160091 58 }