diff --git a/samples/BLE/BLE_Broadcast/BLE_Broadcast_Sample.cpp b/samples/BLE/BLE_Broadcast/BLE_Broadcast_Sample.cpp new file mode 100644 index 0000000..c067fba --- /dev/null +++ b/samples/BLE/BLE_Broadcast/BLE_Broadcast_Sample.cpp @@ -0,0 +1,50 @@ +#include "BLE_Broadcast_Sample.h" + +#include + +#include "AdvertisingData.h" +#include "AdvertisingFlagsBuilder.h" +#include "BLEDevice.h" +#include "HCI_SharedMemory.h" +#include "STM32Serial.h" +#include "ble_utils.h" + +void BLE_Broadcast_Sample_main(codal::STM32STEAM32_WB55RG& steam32) +{ + steam32.serial.init(115200); + + printf("\r\n"); + printf("*******************************************\r\n"); + printf("* Demonstration broadcast du BLE *\r\n"); + printf("*******************************************\r\n"); + + HCI_SharedMemory hci; + BLEDevice ble(&hci); + + AdvertisingData adv; + AdvertisingData advScan; + + // hci.enableDebug(); + ble.init(); + + uint8_t flags = AdvertisingFlagsBuilder().addBrEdrNotSupported().addLeGeneralDiscoverableMode().build(); + adv.setFlags(flags); + adv.setLocalName("Broadcast test"); + adv.setUserData("Coucou !"); + + advScan.setUserData("Hi ! I'm scan response !"); + + ble.setAdvertisingData(adv); + ble.setScanResponseData(advScan); + + if (ble.startAdvertising() != BLEDeviceError::SUCCESS) { + printf("Failed to start BLE !"); + } + + while (1) { + steam32.sleep(1000); + + adv.setUserData(std::to_string(getCurrentMillis() / 1000) + " sec"); + ble.setAdvertisingData(adv); + } +} diff --git a/samples/BLE/BLE_Broadcast/BLE_Broadcast_Sample.h b/samples/BLE/BLE_Broadcast/BLE_Broadcast_Sample.h new file mode 100644 index 0000000..cedbca6 --- /dev/null +++ b/samples/BLE/BLE_Broadcast/BLE_Broadcast_Sample.h @@ -0,0 +1,12 @@ +#include "STM32STEAM32_WB55RG.h" + +#ifndef BLE_BROADCAST_SAMPLE_H +#define BLE_BROADCAST_SAMPLE_H + +#ifndef SAMPLE_MAIN +#define SAMPLE_MAIN BLE_Broadcast_Sample_main +#endif + +void BLE_Broadcast_Sample_main(codal::STM32STEAM32_WB55RG& steam32); + +#endif