Dear Sir :
Here is my environment.
CCS Version: 10.1.1.00004
SDK version : simplelink_cc13x2_26x2_sdk_4_30_00_54
Two TI LanuchPAD of Development kit.
Goal : Integrate rtls_master example project to multi-role project and two function work successfully.
When I integrate rtls_master example code to multi-role sample code and test them without other non-example codes. There are two issues I meet.
(1) I can find "Multi Role" broadcast by BLE app of cell phone.
But when I connect to "Multi Role" this service one time then disconnect, the "Multi Role" service will not appear again anymore for BLE app of cell phone.
(2) Reboot the LaunchPAD, verify "Multi Role" broadcast service of phone is ok.
Execute scan or connect command by console terminal via UART, "Multi Role" broadcast service will not appear a few time later.
Base on these above issues I think maybe some configurations conflict when multi_role_createTask() and RTLSMaster_createTask() exist at the same time.
Because when I mark multi_role_createTask() , execute scan or connect command by console that works fine.
When I mark RTLSMaster_createTask(), the "Multi Role" service of cell phone app can be observed and accessed.
Here is my code. Thank you.
My GitHub code Multi Role Source code (multi_role_CC26X2R1_LAUNCHXL_tirtos_ccs)
int main() { /* Register Application callback to trap asserts raised in the Stack */ halAssertCback = AssertHandler; Board_initGeneral(); // Enable iCache prefetching VIMSConfigure(VIMS_BASE, TRUE, TRUE); // Enable cache VIMSModeSet(VIMS_BASE, VIMS_MODE_ENABLED); /* Register Application callback to trap asserts raised in the Stack */ RegisterAssertCback(AssertHandler); #if !defined( POWER_SAVING ) || defined( USE_FPGA ) /* Set constraints for Standby, powerdown and idle mode */ // PowerCC26XX_SB_DISALLOW may be redundant Power_setConstraint(PowerCC26XX_SB_DISALLOW); Power_setConstraint(PowerCC26XX_IDLE_PD_DISALLOW); #endif // POWER_SAVING | USE_FPGA /* Update User Configuration of the stack */ user0Cfg.appServiceInfo->timerTickPeriod = Clock_tickPeriod; user0Cfg.appServiceInfo->timerMaxMillisecond = ICall_getMaxMSecs(); /* Initialize ICall module */ ICall_init(); /* Start tasks of external images - Priority 5 */ ICall_createRemoteTasks(); // Kick off application - Priority 1 multi_role_createTask(); // +++ Add AOA from rtls_master main.c // Kick off application - Priority 1 RTLSMaster_createTask(); // Kick off RTLS Control module - Priority 2 rtlsConfiguration_t rtlsConfig; rtlsConfig.rtlsCapab = (rtlsCapabilities_e)(RTLS_CAP_RTLS_MASTER | RTLS_CAP_AOA_RX); // Device ID and revision rtlsConfig.devId = DeviceFamily_ID; rtlsConfig.revNum = RTLS_CTRL_REV; rtlsConfig.maxNumConns = MAX_NUM_BLE_CONNS; memcpy(rtlsConfig.identifier, CHIP_ID_ADDR, CHIP_ID_SIZE); rtlsConfig.rtlsAppCb = RTLSMaster_rtlsCtrlMsgCb; RTLSCtrl_open(&rtlsConfig); // +++ end Add AOA from rtls_master main.c // enable interrupts and start SYS/BIOS BIOS_start(); return 0; }