Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of nRF51822 by
btle_discovery.cpp
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2013 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #include "nRF5xServiceDiscovery.h" 00018 #include "nRF5xGattClient.h" 00019 00020 #if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110) 00021 void bleGattcEventHandler(const ble_evt_t *p_ble_evt) 00022 { 00023 nRF5xServiceDiscovery &sdSingleton = nRF5xGattClient::getInstance().discovery; 00024 00025 switch (p_ble_evt->header.evt_id) { 00026 case BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP: 00027 switch (p_ble_evt->evt.gattc_evt.gatt_status) { 00028 case BLE_GATT_STATUS_SUCCESS: 00029 sdSingleton.setupDiscoveredServices(&p_ble_evt->evt.gattc_evt.params.prim_srvc_disc_rsp); 00030 break; 00031 00032 case BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND: 00033 default: 00034 sdSingleton.terminate(); 00035 break; 00036 } 00037 break; 00038 00039 case BLE_GATTC_EVT_CHAR_DISC_RSP: 00040 switch (p_ble_evt->evt.gattc_evt.gatt_status) { 00041 case BLE_GATT_STATUS_SUCCESS: 00042 sdSingleton.setupDiscoveredCharacteristics(&p_ble_evt->evt.gattc_evt.params.char_disc_rsp); 00043 break; 00044 00045 case BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND: 00046 default: 00047 sdSingleton.terminateCharacteristicDiscovery(); 00048 break; 00049 } 00050 break; 00051 00052 case BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP: 00053 if (sdSingleton.isActive()) { 00054 sdSingleton.processDiscoverUUIDResponse(&p_ble_evt->evt.gattc_evt.params.char_val_by_uuid_read_rsp); 00055 } 00056 break; 00057 00058 case BLE_GATTC_EVT_READ_RSP: { 00059 GattReadCallbackParams response = { 00060 .connHandle = p_ble_evt->evt.gattc_evt.conn_handle, 00061 .handle = p_ble_evt->evt.gattc_evt.params.read_rsp.handle, 00062 .offset = p_ble_evt->evt.gattc_evt.params.read_rsp.offset, 00063 .len = p_ble_evt->evt.gattc_evt.params.read_rsp.len, 00064 .data = p_ble_evt->evt.gattc_evt.params.read_rsp.data, 00065 }; 00066 nRF5xGattClient::getInstance().processReadResponse(&response); 00067 } 00068 break; 00069 00070 case BLE_GATTC_EVT_WRITE_RSP: { 00071 GattWriteCallbackParams response = { 00072 .connHandle = p_ble_evt->evt.gattc_evt.conn_handle, 00073 .handle = p_ble_evt->evt.gattc_evt.params.write_rsp.handle, 00074 .writeOp = (GattWriteCallbackParams::WriteOp_t)(p_ble_evt->evt.gattc_evt.params.write_rsp.write_op), 00075 .offset = p_ble_evt->evt.gattc_evt.params.write_rsp.offset, 00076 .len = p_ble_evt->evt.gattc_evt.params.write_rsp.len, 00077 .data = p_ble_evt->evt.gattc_evt.params.write_rsp.data, 00078 }; 00079 nRF5xGattClient::getInstance().processWriteResponse(&response); 00080 } 00081 break; 00082 00083 case BLE_GATTC_EVT_HVX: { 00084 GattHVXCallbackParams params; 00085 params.connHandle = p_ble_evt->evt.gattc_evt.conn_handle; 00086 params.handle = p_ble_evt->evt.gattc_evt.params.hvx.handle; 00087 params.type = static_cast<HVXType_t>(p_ble_evt->evt.gattc_evt.params.hvx.type); 00088 params.len = p_ble_evt->evt.gattc_evt.params.hvx.len; 00089 params.data = p_ble_evt->evt.gattc_evt.params.hvx.data; 00090 00091 nRF5xGattClient::getInstance().processHVXEvent(¶ms); 00092 } 00093 break; 00094 } 00095 00096 sdSingleton.progressCharacteristicDiscovery(); 00097 sdSingleton.progressServiceDiscovery(); 00098 } 00099 #endif
Generated on Tue Jul 12 2022 21:00:16 by
