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.
Dependencies: mbed
Fork of Elearnning 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 15:08:28 by
1.7.2
