BLE test

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
Andrea Palmieri
Date:
Mon May 16 17:22:03 2016 +0200
Revision:
229:9981f62cdb1a
Parent:
132:51056160fa4a
Child:
259:323f588e5f57
Fix issues and add features

- Fix handles management
- Fix UUIDs management
- Implement API to read random address
- Fix clearing/setting of ADV payload
- Fix scanning behaviour
- Fix scanning while a connection is ongoing
- Implement Char Descriptor discovery
- Implement scanning/advertising filter policy (White List partial management)
- Update underlying BlueNRG stack
- Cosmetics

Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Andrea Palmieri 229:9981f62cdb1a 1 /* mbed Microcontroller Library
Andrea Palmieri 229:9981f62cdb1a 2 * Copyright (c) 2006-2013 ARM Limited
Andrea Palmieri 229:9981f62cdb1a 3 *
Andrea Palmieri 229:9981f62cdb1a 4 * Licensed under the Apache License, Version 2.0 (the "License");
Andrea Palmieri 229:9981f62cdb1a 5 * you may not use this file except in compliance with the License.
Andrea Palmieri 229:9981f62cdb1a 6 * You may obtain a copy of the License at
Andrea Palmieri 229:9981f62cdb1a 7 *
Andrea Palmieri 229:9981f62cdb1a 8 * http://www.apache.org/licenses/LICENSE-2.0
Andrea Palmieri 229:9981f62cdb1a 9 *
Andrea Palmieri 229:9981f62cdb1a 10 * Unless required by applicable law or agreed to in writing, software
Andrea Palmieri 229:9981f62cdb1a 11 * distributed under the License is distributed on an "AS IS" BASIS,
Andrea Palmieri 229:9981f62cdb1a 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Andrea Palmieri 229:9981f62cdb1a 13 * See the License for the specific language governing permissions and
Andrea Palmieri 229:9981f62cdb1a 14 * limitations under the License.
Andrea Palmieri 229:9981f62cdb1a 15 */
Andrea Palmieri 229:9981f62cdb1a 16
Andrea Palmieri 229:9981f62cdb1a 17 #include "BlueNRGDiscoveredCharacteristic.h"
Andrea Palmieri 229:9981f62cdb1a 18 #include "BlueNRGGattClient.h"
Andrea Palmieri 229:9981f62cdb1a 19
Andrea Palmieri 229:9981f62cdb1a 20 void BlueNRGDiscoveredCharacteristic::setup(BlueNRGGattClient *gattcIn,
Andrea Palmieri 229:9981f62cdb1a 21 Gap::Handle_t connectionHandleIn,
Andrea Palmieri 229:9981f62cdb1a 22 DiscoveredCharacteristic::Properties_t propsIn,
Andrea Palmieri 229:9981f62cdb1a 23 GattAttribute::Handle_t declHandleIn,
Andrea Palmieri 229:9981f62cdb1a 24 GattAttribute::Handle_t valueHandleIn,
Andrea Palmieri 229:9981f62cdb1a 25 GattAttribute::Handle_t lastHandleIn)
Andrea Palmieri 229:9981f62cdb1a 26 {
Andrea Palmieri 229:9981f62cdb1a 27 gattc = gattcIn;
Andrea Palmieri 229:9981f62cdb1a 28 connHandle = connectionHandleIn;
Andrea Palmieri 229:9981f62cdb1a 29 declHandle = declHandleIn;
Andrea Palmieri 229:9981f62cdb1a 30 valueHandle = valueHandleIn;
Andrea Palmieri 229:9981f62cdb1a 31 lastHandle = lastHandleIn;
Andrea Palmieri 229:9981f62cdb1a 32
Andrea Palmieri 229:9981f62cdb1a 33 props._broadcast = propsIn.broadcast();
Andrea Palmieri 229:9981f62cdb1a 34 props._read = propsIn.read();
Andrea Palmieri 229:9981f62cdb1a 35 props._writeWoResp = propsIn.writeWoResp();
Andrea Palmieri 229:9981f62cdb1a 36 props._write = propsIn.write();
Andrea Palmieri 229:9981f62cdb1a 37 props._notify = propsIn.notify();
Andrea Palmieri 229:9981f62cdb1a 38 props._indicate = propsIn.indicate();
Andrea Palmieri 229:9981f62cdb1a 39 props._authSignedWrite = propsIn.authSignedWrite();
Andrea Palmieri 229:9981f62cdb1a 40 }
Andrea Palmieri 229:9981f62cdb1a 41
Andrea Palmieri 229:9981f62cdb1a 42 void BlueNRGDiscoveredCharacteristic::setup(BlueNRGGattClient *gattcIn,
Andrea Palmieri 229:9981f62cdb1a 43 Gap::Handle_t connectionHandleIn,
Andrea Palmieri 229:9981f62cdb1a 44 UUID uuidIn,
Andrea Palmieri 229:9981f62cdb1a 45 DiscoveredCharacteristic::Properties_t propsIn,
Andrea Palmieri 229:9981f62cdb1a 46 GattAttribute::Handle_t declHandleIn,
Andrea Palmieri 229:9981f62cdb1a 47 GattAttribute::Handle_t valueHandleIn,
Andrea Palmieri 229:9981f62cdb1a 48 GattAttribute::Handle_t lastHandleIn)
Andrea Palmieri 229:9981f62cdb1a 49 {
Andrea Palmieri 229:9981f62cdb1a 50 gattc = gattcIn;
Andrea Palmieri 229:9981f62cdb1a 51 connHandle = connectionHandleIn;
Andrea Palmieri 229:9981f62cdb1a 52 uuid = uuidIn;
Andrea Palmieri 229:9981f62cdb1a 53 declHandle = declHandleIn;
Andrea Palmieri 229:9981f62cdb1a 54 valueHandle = valueHandleIn;
Andrea Palmieri 229:9981f62cdb1a 55 lastHandle = lastHandleIn;
Andrea Palmieri 229:9981f62cdb1a 56
Andrea Palmieri 229:9981f62cdb1a 57 props._broadcast = propsIn.broadcast();
Andrea Palmieri 229:9981f62cdb1a 58 props._read = propsIn.read();
Andrea Palmieri 229:9981f62cdb1a 59 props._writeWoResp = propsIn.writeWoResp();
Andrea Palmieri 229:9981f62cdb1a 60 props._write = propsIn.write();
Andrea Palmieri 229:9981f62cdb1a 61 props._notify = propsIn.notify();
Andrea Palmieri 229:9981f62cdb1a 62 props._indicate = propsIn.indicate();
Andrea Palmieri 229:9981f62cdb1a 63 props._authSignedWrite = propsIn.authSignedWrite();
Andrea Palmieri 229:9981f62cdb1a 64 }