HW layer for the Nucleo board, it only work with old BLE_API

Dependents:   Hello_BLE F446RE-BLE

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
hemddabral
Date:
Wed Apr 15 09:56:53 2015 +0000
Revision:
69:2c340304de64
Parent:
65:f9958b8f2548
Implementation of BlueNRGGap::getMaxAdvertisingInterval(), BlueNRGGap::getMinAdvertisingInterval(), and BlueNRGGap::getMinNonConnectableAdvertisingInterval().

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mridup 2:a2b623661316 1 /* mbed Microcontroller Library
hemddabral 58:027c65a54097 2 * Copyright (c) 2006-2013 ARM Limited
hemddabral 58:027c65a54097 3 *
hemddabral 58:027c65a54097 4 * Licensed under the Apache License, Version 2.0 (the "License");
hemddabral 58:027c65a54097 5 * you may not use this file except in compliance with the License.
hemddabral 58:027c65a54097 6 * You may obtain a copy of the License at
hemddabral 58:027c65a54097 7 *
hemddabral 58:027c65a54097 8 * http://www.apache.org/licenses/LICENSE-2.0
hemddabral 58:027c65a54097 9 *
hemddabral 58:027c65a54097 10 * Unless required by applicable law or agreed to in writing, software
hemddabral 58:027c65a54097 11 * distributed under the License is distributed on an "AS IS" BASIS,
hemddabral 58:027c65a54097 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
hemddabral 58:027c65a54097 13 * See the License for the specific language governing permissions and
hemddabral 58:027c65a54097 14 * limitations under the License.
hemddabral 58:027c65a54097 15 */
mridup 2:a2b623661316 16
mridup 64:6d7b775c3f6d 17 /**
mridup 64:6d7b775c3f6d 18 ******************************************************************************
mridup 64:6d7b775c3f6d 19 * @file BlueNRGGap.h
mridup 64:6d7b775c3f6d 20 * @author STMicroelectronics
mridup 64:6d7b775c3f6d 21 * @brief Header file for BlueNRG BLE_API Gap Class
mridup 64:6d7b775c3f6d 22 ******************************************************************************
mridup 64:6d7b775c3f6d 23 * @copy
mridup 64:6d7b775c3f6d 24 *
mridup 64:6d7b775c3f6d 25 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
mridup 64:6d7b775c3f6d 26 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
mridup 64:6d7b775c3f6d 27 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
mridup 64:6d7b775c3f6d 28 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
mridup 64:6d7b775c3f6d 29 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
mridup 64:6d7b775c3f6d 30 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
mridup 64:6d7b775c3f6d 31 *
mridup 64:6d7b775c3f6d 32 * <h2><center>&copy; COPYRIGHT 2013 STMicroelectronics</center></h2>
mridup 64:6d7b775c3f6d 33 */
mridup 64:6d7b775c3f6d 34
mridup 2:a2b623661316 35 #ifndef __BLUENRG_GAP_H__
mridup 2:a2b623661316 36 #define __BLUENRG_GAP_H__
mridup 2:a2b623661316 37
mridup 2:a2b623661316 38 #include "mbed.h"
mridup 2:a2b623661316 39 #include "blecommon.h"
mridup 2:a2b623661316 40 #include "btle.h"
mridup 2:a2b623661316 41 #include "GapAdvertisingParams.h"
mridup 2:a2b623661316 42 #include "GapAdvertisingData.h"
hemddabral 55:0e4db6804c8d 43 #include <public/Gap.h>
mridup 2:a2b623661316 44
mridup 2:a2b623661316 45 #define BLE_CONN_HANDLE_INVALID 0x0
mridup 41:95b8d531628c 46 #define BDADDR_SIZE 6
mridup 2:a2b623661316 47
hemddabral 69:2c340304de64 48 #define BLUENRG_GAP_ADV_INTERVAL_MIN (0)
hemddabral 69:2c340304de64 49 #define BLUENRG_GAP_ADV_INTERVAL_MAX (0)
hemddabral 69:2c340304de64 50 #define BLE_GAP_ADV_NONCON_INTERVAL_MIN (0)
hemddabral 69:2c340304de64 51
hemddabral 69:2c340304de64 52
mridup 2:a2b623661316 53 /**************************************************************************/
mridup 2:a2b623661316 54 /*!
mridup 2:a2b623661316 55 \brief
mridup 2:a2b623661316 56
mridup 2:a2b623661316 57 */
mridup 2:a2b623661316 58 /**************************************************************************/
mridup 2:a2b623661316 59 class BlueNRGGap : public Gap
mridup 2:a2b623661316 60 {
mridup 2:a2b623661316 61 public:
mridup 2:a2b623661316 62 static BlueNRGGap &getInstance() {
mridup 2:a2b623661316 63 static BlueNRGGap m_instance;
mridup 2:a2b623661316 64 return m_instance;
mridup 2:a2b623661316 65 }
mridup 2:a2b623661316 66
mridup 2:a2b623661316 67 /* Functions that must be implemented from Gap */
mridup 65:f9958b8f2548 68 virtual ble_error_t setAddress(addr_type_t type, const uint8_t address[6]);
mridup 65:f9958b8f2548 69 virtual ble_error_t getAddress(addr_type_t *typeP, address_t address);
mridup 65:f9958b8f2548 70 virtual ble_error_t setAdvertisingData(const GapAdvertisingData &, const GapAdvertisingData &);
mridup 2:a2b623661316 71 virtual ble_error_t startAdvertising(const GapAdvertisingParams &);
mridup 2:a2b623661316 72 virtual ble_error_t stopAdvertising(void);
mridup 65:f9958b8f2548 73 virtual uint16_t getMinAdvertisingInterval(void) const ;
mridup 65:f9958b8f2548 74 virtual uint16_t getMinNonConnectableAdvertisingInterval(void) const;
mridup 65:f9958b8f2548 75 virtual uint16_t getMaxAdvertisingInterval(void) const;
hemddabral 55:0e4db6804c8d 76 virtual ble_error_t disconnect(DisconnectionReason_t reason);
hemddabral 32:d1f250acad29 77 virtual ble_error_t getPreferredConnectionParams(ConnectionParams_t *params);
hemddabral 32:d1f250acad29 78 virtual ble_error_t setPreferredConnectionParams(const ConnectionParams_t *params);
hemddabral 32:d1f250acad29 79 virtual ble_error_t updateConnectionParams(Handle_t handle, const ConnectionParams_t *params);
hemddabral 55:0e4db6804c8d 80
hemddabral 55:0e4db6804c8d 81 virtual ble_error_t setDeviceName(const uint8_t *deviceName);
hemddabral 55:0e4db6804c8d 82 virtual ble_error_t getDeviceName(uint8_t *deviceName, unsigned *lengthP);
hemddabral 55:0e4db6804c8d 83 virtual ble_error_t setAppearance(uint16_t appearance);
hemddabral 55:0e4db6804c8d 84 virtual ble_error_t getAppearance(uint16_t *appearanceP);
hemddabral 55:0e4db6804c8d 85
mridup 2:a2b623661316 86
mridup 2:a2b623661316 87 void setConnectionHandle(uint16_t con_handle);
mridup 2:a2b623661316 88 uint16_t getConnectionHandle(void);
mridup 41:95b8d531628c 89
mridup 65:f9958b8f2548 90 //tHalUint8* getAddress();
mridup 41:95b8d531628c 91 bool getIsSetAddress();
mridup 2:a2b623661316 92
mridup 2:a2b623661316 93 private:
mridup 2:a2b623661316 94 uint16_t m_connectionHandle;
mridup 41:95b8d531628c 95 tHalUint8 bdaddr[BDADDR_SIZE];
mridup 41:95b8d531628c 96 bool isSetAddress;
mridup 2:a2b623661316 97 tBleStatus ret;
hemddabral 55:0e4db6804c8d 98 uint8_t *DeviceName;
hemddabral 55:0e4db6804c8d 99 uint8_t deviceAppearance[2];
hemddabral 58:027c65a54097 100
mridup 2:a2b623661316 101 BlueNRGGap() {
mridup 2:a2b623661316 102 m_connectionHandle = BLE_CONN_HANDLE_INVALID;
mridup 41:95b8d531628c 103 isSetAddress = false;
mridup 59:68e45913b2c4 104 DeviceName = NULL;
mridup 2:a2b623661316 105 }
mridup 2:a2b623661316 106
mridup 2:a2b623661316 107 BlueNRGGap(BlueNRGGap const &);
mridup 2:a2b623661316 108 void operator=(BlueNRGGap const &);
mridup 2:a2b623661316 109 };
mridup 2:a2b623661316 110
mridup 2:a2b623661316 111 #endif // ifndef __BLUENRG_GAP_H__