int main(void) { ble.init(); ble.onDisconnection(disconnectionCallback); ble.onDataWritten(WrittenHandler); // setup advertising ble.accumulateAdvertisingPayload(GapAdvertisingData::GENERIC_PHONE); ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, (const uint8_t *)NAME, sizeof(NAME) - 1); ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (const uint8_t *)uart_base_uuid_rev, sizeof(uart_base_uuid)); ble.setAdvertisingPayload(); ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); ble.setActiveScan(false); ble.setAdvertisingInterval(100); ble.addService(uartService); ble.startAdvertising(); while(1) { ble.waitForEvent(); } }
/** * Test to change add a scan response */ void responseTest(void) { ble.gap().clearAdvertisingPayload(); ble.gap().clearScanResponse(); ble.gap().setAdvertisingTimeout(0); ble.setAdvertisingType(GapAdvertisingParams::ADV_SCANNABLE_UNDIRECTED); const static uint8_t trivialAdvPayload[] = {50, 50, 50, 50, 50}; ASSERT_NO_FAILURE(ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::SERVICE_DATA, trivialAdvPayload, sizeof(trivialAdvPayload))); const static uint8_t trivialScanResponse[] = {50, 50, 50, 50, 50}; ASSERT_NO_FAILURE(ble.gap().accumulateScanResponse(GapAdvertisingData::SERVICE_DATA, trivialScanResponse, sizeof(trivialScanResponse))); ble.gap().setAdvertisingInterval(500); /* in units of milliseconds. */ ASSERT_NO_FAILURE(ble.gap().startAdvertising()); printf("ASSERTIONS DONE\r\n"); }