X_NUCLEO_IDB05A1
Dependencies: mbed-os-example-ble-Advertising
Revision 253:9665a6f8bbdb, committed 2016-09-15
- Comitter:
- Vincent Coubard
- Date:
- Thu Sep 15 10:49:39 2016 +0100
- Branch:
- sync_with_github
- Parent:
- 252:0c2cb16a7166
- Child:
- 254:f4d217cadbde
- Commit message:
- Sync with 4607c9b8b84bb61287ac96092cab09641a8e8c37\nMinor adjustements to sync with the github repository at this point in time.
Changed in this revision
--- a/source/BlueNRGDevice.cpp Mon Jun 27 15:51:20 2016 +0200
+++ b/source/BlueNRGDevice.cpp Thu Sep 15 10:49:39 2016 +0100
@@ -37,7 +37,7 @@
* @{
*/
-#include "mbed.h"
+#include "mbed-drivers/mbed.h"
#include "BlueNRGDevice.h"
#include "BlueNRGGap.h"
#include "BlueNRGGattServer.h"
--- a/source/BlueNRGGap.cpp Mon Jun 27 15:51:20 2016 +0200
+++ b/source/BlueNRGGap.cpp Thu Sep 15 10:49:39 2016 +0100
@@ -39,7 +39,7 @@
*/
#include "BlueNRGDevice.h"
-#include "mbed.h"
+#include "mbed-drivers/mbed.h"
#include "Payload.h"
#include "Utils.h"
#include "debug.h"
@@ -102,6 +102,9 @@
PRINTF("Exceeded the advertising payload length\n\r");
return BLE_ERROR_BUFFER_OVERFLOW;
}
+ // Reset the length of the ADV payload each time
+ // since we get fields of argument 'advData' iteratively
+ AdvLen = 0;
/* Make sure we have a payload! */
if (advData.getPayloadLen() == 0) {
@@ -110,10 +113,15 @@
local_name_length = 0;
txPowLevSet = 0;
servUuidlength = 0;
- AdvLen = 0;
} else {
PayloadPtr loadPtr(advData.getPayload(), advData.getPayloadLen());
+ /* Align the GAP Service Appearance Char value coherently
+ This setting is duplicate (see below GapAdvertisingData::APPEARANCE)
+ since BLE API has an overloaded function for appearance
+ */
+ STORE_LE_16(deviceAppearance, advData.getAppearance());
+ setAppearance((GapAdvertisingData::Appearance)(deviceAppearance[1]<<8|deviceAppearance[0]));
for(uint8_t index=0; index<loadPtr.getPayloadUnitCount(); index++) {
loadPtr.getUnitAtIndex(index);
@@ -182,7 +190,6 @@
{
PRINTF("Advertising type: COMPLETE_LOCAL_NAME\n\r");
loadPtr.getUnitAtIndex(index).printDataAsString();
- loadPtr.getUnitAtIndex(index).printDataAsHex();
local_name_length = *loadPtr.getUnitAtIndex(index).getLenPtr()-1;
// The total length should include the Data Type Value
if(local_name_length>ADV_DATA_MAX_SIZE-1) {
@@ -248,6 +255,20 @@
break;
}
+ case GapAdvertisingData::APPEARANCE: /**< Appearance */
+ {
+ PRINTF("Advertising type: APPEARANCE\n\r");
+
+ GapAdvertisingData::Appearance appearanceP;
+ memcpy(deviceAppearance, loadPtr.getUnitAtIndex(index).getDataPtr(), 2);
+
+ PRINTF("input: deviceAppearance= 0x%x 0x%x\n\r", deviceAppearance[1], deviceAppearance[0]);
+
+ appearanceP = (GapAdvertisingData::Appearance)(deviceAppearance[1]<<8|deviceAppearance[0]);
+ /* Align the GAP Service Appearance Char value coherently */
+ setAppearance(appearanceP);
+ break;
+ }
case GapAdvertisingData::ADVERTISING_INTERVAL: /**< Advertising Interval */
{
printf("Advertising type: ADVERTISING_INTERVAL\n\r");
@@ -292,10 +313,6 @@
scan_rsp_length = scanResponse.getPayloadLen();
}
- /* Align the GAP Service Appearance Char value coherently */
- STORE_LE_16(deviceAppearance, advData.getAppearance());
- setAppearance((GapAdvertisingData::Appearance)(deviceAppearance[1]<<8|deviceAppearance[0]));
-
// Update the ADV data if we are already in ADV mode
if(AdvLen > 0 && state.advertising == 1) {
@@ -823,6 +840,11 @@
uint8_t bdaddr[BDADDR_SIZE];
uint8_t data_len_out;
+ if (type == BLEProtocol::AddressType::RANDOM_PRIVATE_NON_RESOLVABLE ||
+ type == BLEProtocol::AddressType::RANDOM_PRIVATE_RESOLVABLE) {
+ return BLE_ERROR_OPERATION_NOT_PERMITTED;
+ }
+
if(typeP != NULL) {
*typeP = addr_type;
}
@@ -1018,7 +1040,7 @@
uint8_t deviceAppearance[2];
STORE_LE_16(deviceAppearance, appearance);
- PRINTF("input: incoming = %d deviceAppearance= 0x%x 0x%x\n\r", appearance, deviceAppearance[1], deviceAppearance[0]);
+ PRINTF("setAppearance= 0x%x 0x%x\n\r", deviceAppearance[1], deviceAppearance[0]);
ret = aci_gatt_update_char_value(g_gap_service_handle,
g_appearance_char_handle,
--- a/source/BlueNRGGattClient.cpp Mon Jun 27 15:51:20 2016 +0200 +++ b/source/BlueNRGGattClient.cpp Thu Sep 15 10:49:39 2016 +0100 @@ -37,6 +37,7 @@ */ #include "BlueNRGGattClient.h" +#include "mbed-drivers/mbed.h" #include "BlueNRGGap.h" #include "Utils.h" #include "debug.h"
--- a/source/BlueNRGGattServer.cpp Mon Jun 27 15:51:20 2016 +0200 +++ b/source/BlueNRGGattServer.cpp Thu Sep 15 10:49:39 2016 +0100 @@ -37,7 +37,7 @@ */ #include "BlueNRGGattServer.h" -#include "mbed.h" +#include "mbed-drivers/mbed.h" #include "BlueNRGGap.h" #include "Utils.h" #include "debug.h"
--- a/source/platform/btle.cpp Mon Jun 27 15:51:20 2016 +0200
+++ b/source/platform/btle.cpp Thu Sep 15 10:49:39 2016 +0100
@@ -163,7 +163,7 @@
BlueNRGGap::getInstance().setAddress(BLEProtocol::AddressType::RANDOM_STATIC, BLE_address_BE);
ret = aci_gatt_init();
- if(ret){
+ if(ret != BLE_STATUS_SUCCESS){
PRINTF("GATT_Init failed.\n");
}
if (bnrg_expansion_board == IDB05A1) {
@@ -190,8 +190,8 @@
USE_FIXED_PIN_FOR_PAIRING,
123456,
BONDING);
- if (ret == BLE_STATUS_SUCCESS) {
- PRINTF("Auth Req set successfully.\n");
+ if (ret != BLE_STATUS_SUCCESS) {
+ PRINTF("Auth Req set failed.\n");
}
aci_hal_set_tx_power_level(1,4);
--- a/source/platform/clock.c Mon Jun 27 15:51:20 2016 +0200 +++ b/source/platform/clock.c Thu Sep 15 10:49:39 2016 +0100 @@ -1,7 +1,7 @@ #include "clock.h" -#include "wait_api.h" -#include "rtc_time.h" +#include "mbed-drivers/wait_api.h" +#include "mbed-drivers/rtc_time.h" const uint32_t CLOCK_SECOND = 1000;
--- a/x-nucleo-idb0xa1/BlueNRGDevice.h Mon Jun 27 15:51:20 2016 +0200 +++ b/x-nucleo-idb0xa1/BlueNRGDevice.h Thu Sep 15 10:49:39 2016 +0100 @@ -40,7 +40,7 @@ #include "btle.h" -#include "mbed.h" +#include "mbed-drivers/mbed.h" #include "ble/blecommon.h" #include "ble/BLEInstanceBase.h" #include "ble/BLE.h"
--- a/x-nucleo-idb0xa1/BlueNRGGap.h Mon Jun 27 15:51:20 2016 +0200 +++ b/x-nucleo-idb0xa1/BlueNRGGap.h Thu Sep 15 10:49:39 2016 +0100 @@ -35,7 +35,7 @@ #ifndef __BLUENRG_GAP_H__ #define __BLUENRG_GAP_H__ -#include "mbed.h" +#include "mbed-drivers/mbed.h" #include "ble/blecommon.h" #include "btle.h" #include "ble/GapAdvertisingParams.h"
--- a/x-nucleo-idb0xa1/BlueNRGGattClient.h Mon Jun 27 15:51:20 2016 +0200 +++ b/x-nucleo-idb0xa1/BlueNRGGattClient.h Thu Sep 15 10:49:39 2016 +0100 @@ -34,7 +34,7 @@ #ifndef __BLUENRG_GATT_CLIENT_H__ #define __BLUENRG_GATT_CLIENT_H__ -#include "mbed.h" +#include "mbed-drivers/mbed.h" #include "ble/blecommon.h" #include "btle.h" #include "ble/GattClient.h"
--- a/x-nucleo-idb0xa1/BlueNRGGattServer.h Mon Jun 27 15:51:20 2016 +0200 +++ b/x-nucleo-idb0xa1/BlueNRGGattServer.h Thu Sep 15 10:49:39 2016 +0100 @@ -34,7 +34,7 @@ #ifndef __BLUENRG_GATT_SERVER_H__ #define __BLUENRG_GATT_SERVER_H__ -#include "mbed.h" +#include "mbed-drivers/mbed.h" #include "ble/blecommon.h" #include "btle.h" #include "ble/GattService.h"
--- a/x-nucleo-idb0xa1/utils/Payload.h Mon Jun 27 15:51:20 2016 +0200 +++ b/x-nucleo-idb0xa1/utils/Payload.h Thu Sep 15 10:49:39 2016 +0100 @@ -14,7 +14,7 @@ * limitations under the License. */ -#include "mbed.h" +#include "mbed-drivers/mbed.h" #include "debug.h" #ifndef __PAYLOAD_H__
--- a/x-nucleo-idb0xa1/utils/Utils.h Mon Jun 27 15:51:20 2016 +0200
+++ b/x-nucleo-idb0xa1/utils/Utils.h Thu Sep 15 10:49:39 2016 +0100
@@ -22,7 +22,7 @@
#include "ble_status.h"
#include "hal_types.h"
-#include "mbed.h"
+#include "mbed-drivers/mbed.h"
#define STORE_LE_16(buf, val) ( ((buf)[0] = (uint8_t) (val) ) , \
((buf)[1] = (uint8_t) (val>>8) ) )
--- a/x-nucleo-idb0xa1/x_nucleo_idb0xa1_targets.h Mon Jun 27 15:51:20 2016 +0200
+++ b/x-nucleo-idb0xa1/x_nucleo_idb0xa1_targets.h Thu Sep 15 10:49:39 2016 +0100
@@ -65,7 +65,7 @@
/* NOTE: Stack Mode 0x04 allows Simultaneous Scanning and Advertisement (SSAdv)
Define macro 'SSADV' to enable it
*/
-//#define SSADV
+#define SSADV
#if defined(SSADV)
#define IDB0XA1_STACK_MODE (0x04)
#else