Updated

Fork of BLE_API by Bluetooth Low Energy

Committer:
vcoubard
Date:
Wed Apr 06 19:15:30 2016 +0100
Revision:
1179:4ab722f8dca0
Parent:
1159:1aa7f8be1f76
Child:
1183:1589830dbdb7
Synchronized with git rev ca632aaf
Author: Andres Amaya Garcia
Update Gap state after advertising times out

The BLE API was not updating the Gap internal state when the advertising stops
because of a user timeout. This commit fixes the issue by updating the internal
state structure in Gap just before the registered callbacks are notified of the
advertising timeout.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vcoubard 1131:692ddf04fc42 1 /* mbed Microcontroller Library
vcoubard 1131:692ddf04fc42 2 * Copyright (c) 2006-2013 ARM Limited
vcoubard 1131:692ddf04fc42 3 *
vcoubard 1131:692ddf04fc42 4 * Licensed under the Apache License, Version 2.0 (the "License");
vcoubard 1131:692ddf04fc42 5 * you may not use this file except in compliance with the License.
vcoubard 1131:692ddf04fc42 6 * You may obtain a copy of the License at
vcoubard 1131:692ddf04fc42 7 *
vcoubard 1131:692ddf04fc42 8 * http://www.apache.org/licenses/LICENSE-2.0
vcoubard 1131:692ddf04fc42 9 *
vcoubard 1131:692ddf04fc42 10 * Unless required by applicable law or agreed to in writing, software
vcoubard 1131:692ddf04fc42 11 * distributed under the License is distributed on an "AS IS" BASIS,
vcoubard 1131:692ddf04fc42 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
vcoubard 1131:692ddf04fc42 13 * See the License for the specific language governing permissions and
vcoubard 1131:692ddf04fc42 14 * limitations under the License.
vcoubard 1131:692ddf04fc42 15 */
vcoubard 1131:692ddf04fc42 16
vcoubard 1131:692ddf04fc42 17 #ifndef __DISCOVERED_SERVICE_H__
vcoubard 1131:692ddf04fc42 18 #define __DISCOVERED_SERVICE_H__
vcoubard 1131:692ddf04fc42 19
vcoubard 1131:692ddf04fc42 20 #include "UUID.h"
vcoubard 1131:692ddf04fc42 21 #include "GattAttribute.h"
vcoubard 1131:692ddf04fc42 22
vcoubard 1131:692ddf04fc42 23 /**@brief Type for holding information about the service and the characteristics found during
vcoubard 1131:692ddf04fc42 24 * the discovery process.
vcoubard 1131:692ddf04fc42 25 */
vcoubard 1131:692ddf04fc42 26 class DiscoveredService {
vcoubard 1131:692ddf04fc42 27 public:
vcoubard 1179:4ab722f8dca0 28 void setup(UUID uuidIn, GattAttribute::Handle_t startHandleIn, GattAttribute::Handle_t endHandleIn) {
vcoubard 1179:4ab722f8dca0 29 uuid = uuidIn;
vcoubard 1179:4ab722f8dca0 30 startHandle = startHandleIn;
vcoubard 1179:4ab722f8dca0 31 endHandle = endHandleIn;
vcoubard 1179:4ab722f8dca0 32 }
vcoubard 1131:692ddf04fc42 33
vcoubard 1179:4ab722f8dca0 34 void setup(GattAttribute::Handle_t startHandleIn, GattAttribute::Handle_t endHandleIn) {
vcoubard 1179:4ab722f8dca0 35 startHandle = startHandleIn;
vcoubard 1179:4ab722f8dca0 36 endHandle = endHandleIn;
vcoubard 1179:4ab722f8dca0 37 }
vcoubard 1131:692ddf04fc42 38
vcoubard 1134:d540a48f650d 39 void setupLongUUID(UUID::LongUUIDBytes_t longUUID, UUID::ByteOrder_t order = UUID::MSB) {
vcoubard 1134:d540a48f650d 40 uuid.setupLong(longUUID, order);
vcoubard 1131:692ddf04fc42 41 }
vcoubard 1131:692ddf04fc42 42
vcoubard 1131:692ddf04fc42 43 public:
vcoubard 1131:692ddf04fc42 44 const UUID &getUUID(void) const {
vcoubard 1131:692ddf04fc42 45 return uuid;
vcoubard 1131:692ddf04fc42 46 }
vcoubard 1131:692ddf04fc42 47
vcoubard 1131:692ddf04fc42 48 const GattAttribute::Handle_t& getStartHandle(void) const {
vcoubard 1131:692ddf04fc42 49 return startHandle;
vcoubard 1131:692ddf04fc42 50 }
vcoubard 1131:692ddf04fc42 51 const GattAttribute::Handle_t& getEndHandle(void) const {
vcoubard 1131:692ddf04fc42 52 return endHandle;
vcoubard 1131:692ddf04fc42 53 }
vcoubard 1131:692ddf04fc42 54
vcoubard 1131:692ddf04fc42 55 public:
vcoubard 1131:692ddf04fc42 56 DiscoveredService() : uuid(UUID::ShortUUIDBytes_t(0)),
vcoubard 1131:692ddf04fc42 57 startHandle(GattAttribute::INVALID_HANDLE),
vcoubard 1131:692ddf04fc42 58 endHandle(GattAttribute::INVALID_HANDLE) {
vcoubard 1131:692ddf04fc42 59 /* empty */
vcoubard 1131:692ddf04fc42 60 }
vcoubard 1131:692ddf04fc42 61
vcoubard 1131:692ddf04fc42 62 private:
vcoubard 1131:692ddf04fc42 63 DiscoveredService(const DiscoveredService &);
vcoubard 1131:692ddf04fc42 64
vcoubard 1131:692ddf04fc42 65 private:
vcoubard 1131:692ddf04fc42 66 UUID uuid; /**< UUID of the service. */
vcoubard 1131:692ddf04fc42 67 GattAttribute::Handle_t startHandle; /**< Service Handle Range. */
vcoubard 1131:692ddf04fc42 68 GattAttribute::Handle_t endHandle; /**< Service Handle Range. */
vcoubard 1131:692ddf04fc42 69 };
vcoubard 1131:692ddf04fc42 70
rgrover1 716:11b41f651697 71 #endif /*__DISCOVERED_SERVICE_H__*/