From 93f50e78184631c11057e47cfbc95bd7af6d536f Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Thu, 18 Jun 2020 21:46:41 +0200 Subject: [PATCH] fix(ble): Update advertising data even when it is empty --- .../stack/ble-profiles/sources/apps/app/app_slave.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/sdk/Libraries/BTLE/stack/ble-profiles/sources/apps/app/app_slave.c b/lib/sdk/Libraries/BTLE/stack/ble-profiles/sources/apps/app/app_slave.c index bc298c745..fa2a857c1 100644 --- a/lib/sdk/Libraries/BTLE/stack/ble-profiles/sources/apps/app/app_slave.c +++ b/lib/sdk/Libraries/BTLE/stack/ble-profiles/sources/apps/app/app_slave.c @@ -206,6 +206,12 @@ static void appSetAdvScanDataFrag(uint8_t advHandle, uint8_t location) remainLen = appSlaveCb.maxAdvDataLen[advHandle]; } + if(remainLen == 0) + { + op = HCI_ADV_DATA_OP_COMP_FRAG; + DmAdvSetData(advHandle, op, APP_LOC_2_DM_LOC(location), 0, NULL); + } + /* while there remains data to be sent */ while (remainLen > 0) { @@ -257,13 +263,15 @@ static void appSetAdvScanData(uint8_t advHandle, uint8_t mode) scanLoc = APP_MODE_2_SCAN_LOC(mode); /* set advertising data */ - if (appSlaveCb.advDataOffset[advHandle][advLoc] < appSlaveCb.advDataLen[advHandle][advLoc]) + if (appSlaveCb.advDataOffset[advHandle][advLoc] < appSlaveCb.advDataLen[advHandle][advLoc] || + appSlaveCb.advDataLen[advHandle][advLoc] == 0) { appSetAdvScanDataFrag(advHandle, advLoc); } /* set scan data */ - if (appSlaveCb.advDataOffset[advHandle][scanLoc] < appSlaveCb.advDataLen[advHandle][scanLoc]) + if (appSlaveCb.advDataOffset[advHandle][scanLoc] < appSlaveCb.advDataLen[advHandle][scanLoc] || + appSlaveCb.advDataLen[advHandle][scanLoc] == 0) { appSetAdvScanDataFrag(advHandle, scanLoc); } -- GitLab