Update BLE library to latest version

pull/230/head
Emilio Monti 2014-03-24 17:09:34 +00:00
parent 2dff8cf4f4
commit 5f2aec8bc7
6 changed files with 34 additions and 15 deletions

View File

@ -38,7 +38,7 @@ class GattServer
/* These functions must be defined in the sub-class */ /* These functions must be defined in the sub-class */
virtual ble_error_t addService(GattService &) = 0; virtual ble_error_t addService(GattService &) = 0;
virtual ble_error_t readValue(uint16_t, uint8_t[], uint16_t) = 0; virtual ble_error_t readValue(uint16_t, uint8_t[], uint16_t) = 0;
virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t) = 0; virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t, bool localOnly = false) = 0;
// ToDo: For updateValue, check the CCCD to see if the value we are // ToDo: For updateValue, check the CCCD to see if the value we are
// updating has the notify or indicate bits sent, and if BOTH are set // updating has the notify or indicate bits sent, and if BOTH are set

View File

@ -162,7 +162,7 @@ ble_error_t nRF51Gap::startAdvertising(GapAdvertisingParams & params)
return BLE_ERROR_PARAM_OUT_OF_RANGE; return BLE_ERROR_PARAM_OUT_OF_RANGE;
} }
/* ToDo: Start Advertising */ /* Start Advertising */
ble_gap_adv_params_t adv_para = { 0 }; ble_gap_adv_params_t adv_para = { 0 };
adv_para.type = params.getAdvertisingType() ; adv_para.type = params.getAdvertisingType() ;
@ -174,7 +174,7 @@ ble_error_t nRF51Gap::startAdvertising(GapAdvertisingParams & params)
ASSERT( ERROR_NONE == sd_ble_gap_adv_start(&adv_para), BLE_ERROR_PARAM_OUT_OF_RANGE); ASSERT( ERROR_NONE == sd_ble_gap_adv_start(&adv_para), BLE_ERROR_PARAM_OUT_OF_RANGE);
state.advertising = 1; state.advertising = 1;
return BLE_ERROR_NONE; return BLE_ERROR_NONE;
} }
@ -197,12 +197,10 @@ ble_error_t nRF51Gap::startAdvertising(GapAdvertisingParams & params)
/**************************************************************************/ /**************************************************************************/
ble_error_t nRF51Gap::stopAdvertising(void) ble_error_t nRF51Gap::stopAdvertising(void)
{ {
/* ToDo: Stop Advertising */ /* Stop Advertising */
ASSERT( ERROR_NONE == sd_ble_gap_adv_stop(), BLE_ERROR_PARAM_OUT_OF_RANGE);
/* ToDo: Check response */ state.advertising = 0;
wait(0.1);
state.advertising = 0;
return BLE_ERROR_NONE; return BLE_ERROR_NONE;
} }
@ -225,10 +223,11 @@ ble_error_t nRF51Gap::stopAdvertising(void)
/**************************************************************************/ /**************************************************************************/
ble_error_t nRF51Gap::disconnect(void) ble_error_t nRF51Gap::disconnect(void)
{ {
/* ToDo: Disconnect if we are connected to a central device */ /* Disconnect if we are connected to a central device */
// ASSERT( ERROR_NONE == sd_ble_gap_disconnect(), BLE_ERROR_PARAM_OUT_OF_RANGE);
state.advertising = 0; state.advertising = 0;
state.connected = 0; state.connected = 0;
return BLE_ERROR_NONE; return BLE_ERROR_NONE;
} }

View File

@ -136,8 +136,13 @@ ble_error_t nRF51GattServer::readValue(uint16_t charHandle, uint8_t buffer[], ui
@endcode @endcode
*/ */
/**************************************************************************/ /**************************************************************************/
ble_error_t nRF51GattServer::updateValue(uint16_t charHandle, uint8_t buffer[], uint16_t len) ble_error_t nRF51GattServer::updateValue(uint16_t charHandle, uint8_t buffer[], uint16_t len, bool localOnly)
{ {
if (localOnly)
{
/* Only update locally regardless of notify/indicate */
ASSERT_INT( ERROR_NONE, sd_ble_gatts_value_set(nrfCharacteristicHandles[charHandle].value_handle, 0, &len, buffer), BLE_ERROR_PARAM_OUT_OF_RANGE );
}
if ((p_characteristics[charHandle]->properties & (GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_INDICATE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY)) && if ((p_characteristics[charHandle]->properties & (GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_INDICATE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY)) &&
(m_connectionHandle != BLE_CONN_HANDLE_INVALID) ) (m_connectionHandle != BLE_CONN_HANDLE_INVALID) )
{ {

View File

@ -43,7 +43,7 @@ class nRF51GattServer : public GattServer
/* Functions that must be implemented from GattServer */ /* Functions that must be implemented from GattServer */
virtual ble_error_t addService(GattService &); virtual ble_error_t addService(GattService &);
virtual ble_error_t readValue(uint16_t, uint8_t[], uint16_t); virtual ble_error_t readValue(uint16_t, uint8_t[], uint16_t);
virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t); virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t, bool localOnly = false);
/* nRF51 Functions */ /* nRF51 Functions */
void eventCallback(void); void eventCallback(void);

View File

@ -1,3 +1,18 @@
/* Copyright (c) 2014 Nordic Semiconductor. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _NORDIC_GLOBAL_H_ #ifndef _NORDIC_GLOBAL_H_
#define _NORDIC_GLOBAL_H_ #define _NORDIC_GLOBAL_H_

View File

@ -1,4 +1,4 @@
/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved. /* Copyright (c) 2013 Nordic Semiconductor. All Rights Reserved.
* *
* The information contained herein is property of Nordic Semiconductor ASA. * The information contained herein is property of Nordic Semiconductor ASA.
* Terms and conditions of usage are described in detail in NORDIC * Terms and conditions of usage are described in detail in NORDIC