Example for Bluetooth low energy interface

Dependencies:   mbed HC_SR04_Ultrasonic_Library

Committer:
julientiron
Date:
Tue May 19 16:43:59 2015 +0000
Revision:
0:3d641e170a74
BLE;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
julientiron 0:3d641e170a74 1 /* mbed Microcontroller Library
julientiron 0:3d641e170a74 2 * Copyright (c) 2006-2013 ARM Limited
julientiron 0:3d641e170a74 3 *
julientiron 0:3d641e170a74 4 * Licensed under the Apache License, Version 2.0 (the "License");
julientiron 0:3d641e170a74 5 * you may not use this file except in compliance with the License.
julientiron 0:3d641e170a74 6 * You may obtain a copy of the License at
julientiron 0:3d641e170a74 7 *
julientiron 0:3d641e170a74 8 * http://www.apache.org/licenses/LICENSE-2.0
julientiron 0:3d641e170a74 9 *
julientiron 0:3d641e170a74 10 * Unless required by applicable law or agreed to in writing, software
julientiron 0:3d641e170a74 11 * distributed under the License is distributed on an "AS IS" BASIS,
julientiron 0:3d641e170a74 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
julientiron 0:3d641e170a74 13 * See the License for the specific language governing permissions and
julientiron 0:3d641e170a74 14 * limitations under the License.
julientiron 0:3d641e170a74 15 */
julientiron 0:3d641e170a74 16
julientiron 0:3d641e170a74 17 #ifndef __BLUENRG_GAP_H__
julientiron 0:3d641e170a74 18 #define __BLUENRG_GAP_H__
julientiron 0:3d641e170a74 19
julientiron 0:3d641e170a74 20 #include "mbed.h"
julientiron 0:3d641e170a74 21 #include "blecommon.h"
julientiron 0:3d641e170a74 22 #include "btle.h"
julientiron 0:3d641e170a74 23 #include "GapAdvertisingParams.h"
julientiron 0:3d641e170a74 24 #include "GapAdvertisingData.h"
julientiron 0:3d641e170a74 25 #include "public/Gap.h"
julientiron 0:3d641e170a74 26
julientiron 0:3d641e170a74 27 #define BLE_CONN_HANDLE_INVALID 0x0
julientiron 0:3d641e170a74 28 #define BDADDR_SIZE 6
julientiron 0:3d641e170a74 29
julientiron 0:3d641e170a74 30 /**************************************************************************/
julientiron 0:3d641e170a74 31 /*!
julientiron 0:3d641e170a74 32 \brief
julientiron 0:3d641e170a74 33
julientiron 0:3d641e170a74 34 */
julientiron 0:3d641e170a74 35 /**************************************************************************/
julientiron 0:3d641e170a74 36 class BlueNRGGap : public Gap
julientiron 0:3d641e170a74 37 {
julientiron 0:3d641e170a74 38 public:
julientiron 0:3d641e170a74 39 static BlueNRGGap &getInstance() {
julientiron 0:3d641e170a74 40 static BlueNRGGap m_instance;
julientiron 0:3d641e170a74 41 return m_instance;
julientiron 0:3d641e170a74 42 }
julientiron 0:3d641e170a74 43
julientiron 0:3d641e170a74 44 /* Functions that must be implemented from Gap */
julientiron 0:3d641e170a74 45 virtual ble_error_t setAddress(addr_type_t type,
julientiron 0:3d641e170a74 46 const uint8_t address[6]);
julientiron 0:3d641e170a74 47 virtual ble_error_t setAdvertisingData(const GapAdvertisingData &,
julientiron 0:3d641e170a74 48 const GapAdvertisingData &);
julientiron 0:3d641e170a74 49 virtual ble_error_t startAdvertising(const GapAdvertisingParams &);
julientiron 0:3d641e170a74 50 virtual ble_error_t stopAdvertising(void);
julientiron 0:3d641e170a74 51 virtual ble_error_t disconnect(void);
julientiron 0:3d641e170a74 52 virtual ble_error_t getPreferredConnectionParams(ConnectionParams_t *params);
julientiron 0:3d641e170a74 53 virtual ble_error_t setPreferredConnectionParams(const ConnectionParams_t *params);
julientiron 0:3d641e170a74 54 virtual ble_error_t updateConnectionParams(Handle_t handle, const ConnectionParams_t *params);
julientiron 0:3d641e170a74 55
julientiron 0:3d641e170a74 56 void setConnectionHandle(uint16_t con_handle);
julientiron 0:3d641e170a74 57 uint16_t getConnectionHandle(void);
julientiron 0:3d641e170a74 58
julientiron 0:3d641e170a74 59 tHalUint8* getAddress();
julientiron 0:3d641e170a74 60 bool getIsSetAddress();
julientiron 0:3d641e170a74 61
julientiron 0:3d641e170a74 62 private:
julientiron 0:3d641e170a74 63 uint16_t m_connectionHandle;
julientiron 0:3d641e170a74 64 tHalUint8 bdaddr[BDADDR_SIZE];
julientiron 0:3d641e170a74 65 bool isSetAddress;
julientiron 0:3d641e170a74 66 tBleStatus ret;
julientiron 0:3d641e170a74 67
julientiron 0:3d641e170a74 68 //const char local_name[];// = {AD_TYPE_COMPLETE_LOCAL_NAME,'B','l','u','e','N','R','G'};
julientiron 0:3d641e170a74 69 //Local Variables
julientiron 0:3d641e170a74 70 //uint8_t *device_name;
julientiron 0:3d641e170a74 71 BlueNRGGap() {
julientiron 0:3d641e170a74 72 m_connectionHandle = BLE_CONN_HANDLE_INVALID;
julientiron 0:3d641e170a74 73 isSetAddress = false;
julientiron 0:3d641e170a74 74 //local_name[] = {AD_TYPE_COMPLETE_LOCAL_NAME,'B','l','u','e','N','R','G'};
julientiron 0:3d641e170a74 75
julientiron 0:3d641e170a74 76 }
julientiron 0:3d641e170a74 77
julientiron 0:3d641e170a74 78 BlueNRGGap(BlueNRGGap const &);
julientiron 0:3d641e170a74 79 void operator=(BlueNRGGap const &);
julientiron 0:3d641e170a74 80 };
julientiron 0:3d641e170a74 81
julientiron 0:3d641e170a74 82 #endif // ifndef __BLUENRG_GAP_H__