High level Bluetooth Low Energy API and radio abstraction layer

Fork of BLE_API by Bluetooth Low Energy

Committer:
rgrover1
Date:
Mon Nov 02 09:09:06 2015 +0000
Revision:
857:7f578be2d01d
Parent:
854:ad4ae73c2b5a
Child:
858:38a4963a455e
Synchronized with git rev 976bcd4e
Author: Andres Amaya Garcia
Introduced fixes to Eddystone implementation

Fixed wrong memcpy arguments that caused the wrong number of bytes to be copied
and merged energy saving changes.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rgrover1 716:11b41f651697 1 /* mbed Microcontroller Library
rgrover1 716:11b41f651697 2 * Copyright (c) 2006-2013 ARM Limited
rgrover1 716:11b41f651697 3 *
rgrover1 716:11b41f651697 4 * Licensed under the Apache License, Version 2.0 (the "License");
rgrover1 716:11b41f651697 5 * you may not use this file except in compliance with the License.
rgrover1 716:11b41f651697 6 * You may obtain a copy of the License at
rgrover1 716:11b41f651697 7 *
rgrover1 716:11b41f651697 8 * http://www.apache.org/licenses/LICENSE-2.0
rgrover1 716:11b41f651697 9 *
rgrover1 716:11b41f651697 10 * Unless required by applicable law or agreed to in writing, software
rgrover1 716:11b41f651697 11 * distributed under the License is distributed on an "AS IS" BASIS,
rgrover1 716:11b41f651697 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rgrover1 716:11b41f651697 13 * See the License for the specific language governing permissions and
rgrover1 716:11b41f651697 14 * limitations under the License.
rgrover1 716:11b41f651697 15 */
rgrover1 716:11b41f651697 16
rgrover1 716:11b41f651697 17 #ifndef __BLE_DEVICE_INSTANCE_BASE__
rgrover1 716:11b41f651697 18 #define __BLE_DEVICE_INSTANCE_BASE__
rgrover1 716:11b41f651697 19
rgrover1 716:11b41f651697 20 #include "Gap.h"
rgrover1 853:2e829bcda785 21 #include "ble/SecurityManager.h"
rgrover1 716:11b41f651697 22
rgrover1 716:11b41f651697 23 /* forward declarations */
rgrover1 716:11b41f651697 24 class GattServer;
rgrover1 716:11b41f651697 25 class GattClient;
rgrover1 716:11b41f651697 26
rgrover1 716:11b41f651697 27 /**
rgrover1 716:11b41f651697 28 * The interface for the transport object to be created by the target library's
rgrover1 716:11b41f651697 29 * createBLEInstance().
rgrover1 716:11b41f651697 30 */
rgrover1 716:11b41f651697 31 class BLEInstanceBase
rgrover1 716:11b41f651697 32 {
rgrover1 716:11b41f651697 33 public:
rgrover1 857:7f578be2d01d 34 virtual ble_error_t init(void) = 0;
rgrover1 857:7f578be2d01d 35 virtual ble_error_t shutdown(void) = 0;
rgrover1 857:7f578be2d01d 36 virtual const char *getVersion(void) = 0;
rgrover1 857:7f578be2d01d 37 virtual Gap& getGap() = 0;
rgrover1 857:7f578be2d01d 38 virtual const Gap& getGap() const = 0;
rgrover1 857:7f578be2d01d 39 virtual GattServer& getGattServer() = 0;
rgrover1 857:7f578be2d01d 40 virtual const GattServer& getGattServer() const = 0;
rgrover1 857:7f578be2d01d 41 virtual GattClient& getGattClient() = 0;
rgrover1 857:7f578be2d01d 42 virtual SecurityManager& getSecurityManager() = 0;
rgrover1 716:11b41f651697 43 virtual const SecurityManager& getSecurityManager() const = 0;
rgrover1 857:7f578be2d01d 44 virtual void waitForEvent(void) = 0;
rgrover1 716:11b41f651697 45 };
rgrover1 716:11b41f651697 46
rgrover1 716:11b41f651697 47 /**
rgrover1 716:11b41f651697 48 * BLE uses composition to hide an interface object encapsulating the
rgrover1 716:11b41f651697 49 * backend transport.
rgrover1 716:11b41f651697 50 *
rgrover1 716:11b41f651697 51 * The following API is used to create the singleton interface object. An
rgrover1 716:11b41f651697 52 * implementation for this function must be provided by the device-specific
rgrover1 716:11b41f651697 53 * library, otherwise there will be a linker error.
rgrover1 716:11b41f651697 54 */
rgrover1 716:11b41f651697 55 extern BLEInstanceBase *createBLEInstance(void);
rgrover1 716:11b41f651697 56
rgrover1 716:11b41f651697 57 #endif // ifndef __BLE_DEVICE_INSTANCE_BASE__