static void SPIslave_taskFxn(UArg a0, UArg a1) { GPIO_init(); SPI_init(); SPI_Handle slaveSpi; SPI_Params spiParams; SPI_Transaction transaction; SPI_Params_init(&spiParams); spiParams.frameFormat = SPI_POL1_PHA1; // Rising edge spiParams.mode = SPI_SLAVE; spiParams.transferCallbackFxn = transferCompleteFxn; spiParams.transferMode = SPI_MODE_BLOCKING; slaveSpi = SPI_open(CONFIG_SPI_SLAVE, &spiParams); SimpleBroadcaster_init(); // Get the ticks since startup uint32_t tickStart = Clock_getTicks(); SimpleBroadcaster_Simple2(); while(1) { memset((void *) rxBuf, 0, SPI_MSG_LENGTH); transaction.count = SPI_MSG_LENGTH; transaction.txBuf = NULL;//rxBuf; transaction.rxBuf = (void *) rxBuf;// transaction.rxBuf = rxBuf; SPI_transfer(slaveSpi, &transaction); SimpleBroadcaster_Reload(); } // Needed for SPI callback } static void SimpleBroadcaster_Simple2(void) { #ifndef BEACON_FEATURE advParams1.eventProps = GAP_ADV_PROP_SCANNABLE | GAP_ADV_PROP_LEGACY; #else advParams1.eventProps = GAP_ADV_PROP_LEGACY; #endif // !BEACON_FEATURE // Create Advertisement set GapAdv_create(&SimpleBroadcaster_advCallback, &advParams1, &advHandleLegacy); // Load advertising data GapAdv_loadByHandle(advHandleLegacy, GAP_ADV_DATA_TYPE_ADV, sizeof(advertData), advertData); // Load scan response data GapAdv_loadByHandle(advHandleLegacy, GAP_ADV_DATA_TYPE_SCAN_RSP, sizeof(scanResData1), scanResData1); // Set event mask GapAdv_setEventMask(advHandleLegacy, GAP_ADV_EVT_MASK_START_AFTER_ENABLE | GAP_ADV_EVT_MASK_END_AFTER_DISABLE | GAP_ADV_EVT_MASK_SET_TERMINATED); // Enable legacy advertising GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0); } static void SimpleBroadcaster_Reload(void) { GapAdv_disable(advHandleLegacy); GapAdv_prepareLoadByHandle(advHandleLegacy, GAP_ADV_FREE_OPTION_DONT_FREE); advertData[2]=rxBuf[1]; advertData[3]=rxBuf[2]; advertData[4]=rxBuf[3]; // Reload buffer to handle GapAdv_loadByHandle(advHandleLegacy, GAP_ADV_DATA_TYPE_ADV, sizeof(advertData), advertData); // Re-enable advertising GapAdv_enable(advHandleLegacy, GAP_ADV_ENABLE_OPTIONS_USE_MAX , 0); }