|
Radio Control Layer (RCL)
|
#include <stdint.h>#include <ti/drivers/rcl/RCL_Command.h>#include <ti/drivers/rcl/RCL_Buffer.h>#include <ti/drivers/rcl/LRF.h>#include <ti/drivers/rcl/commands/ble5.h>
Include dependency graph for ble5.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Enumerations | |
| enum | RCL_BLE5_FilterListUpdateResult { RCL_BLE5_FilterListUpdateOk, RCL_BLE5_FilterListUpdateIndexError } |
| Result of filter list update API. More... | |
Functions | |
| RCL_Events | RCL_Handler_BLE5_adv (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_scan_init (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_conn (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_dtmTx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_genericRx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_genericTx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_Ble5_txTest (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_aux_adv (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_periodicAdv (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_periodicScan (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_Events | RCL_Handler_BLE5_ChannelAssessment (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn) |
| RCL_BLE5_FilterListUpdateResult | RCL_BLE5_updateFilterList (const RCL_FL_Entry *newEntry, RCL_FilterList *filterList, uint32_t index) |
| Update filter list. More... | |
| void | RCL_BLE5_setDefaultRfFrequency (uint32_t rfFrequency) |
| Set RF frequency to use if custom frequency is specified. More... | |
| static RCL_Ble5Channel | RCL_BLE5_getRxChannel (const RCL_Buffer_DataEntry *rxEntry) |
| Get channel field from packet. More... | |
| RCL_Ble5_RxPktStatus | RCL_BLE5_getRxStatus (const RCL_Buffer_DataEntry *rxEntry) |
| Get received status field from packet. More... | |
| int8_t | RCL_BLE5_getRxRssi (const RCL_Buffer_DataEntry *rxEntry) |
| Get received RSSI from packet. More... | |
| uint32_t | RCL_BLE5_getRxTimestamp (const RCL_Buffer_DataEntry *rxEntry) |
| Get received timestamp from packet. More... | |
| uint32_t | RCL_BLE5_getAuxAdvStartTimeDelta (uint16_t primaryPhyFeatures, uint16_t secondaryPhyFeatures, uint8_t chMap, uint8_t advPayloadLen) |
| Get the expected start time delta associated with sending an auxiliary advertising indication. More... | |
| RCL_Events RCL_Handler_BLE5_adv | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References RCL_SchedulerState::actualStartTime, ADV_ACCESS_ADDRESS, ADV_CRC_INIT, ble5HandlerState, BLE_ADV_AUX_SCAN_REQ_PKT_LEN, BLE_ADV_FILTER_POLICY_CONN, BLE_ADV_FILTER_POLICY_SCAN, BLE_ADV_MODE_BM, BLE_ADV_MODE_CONN_NONSCAN, BLE_ADV_MODE_NONCONN_NONSCAN, BLE_ADV_MODE_NONCONN_SCAN, BLE_AUX_OFFSET_30_US, BLE_convertSystimUnitsToOffsetUnits, BLE_CUSTOM_FREQ_BM, BLE_EXTENDED_HEADER_LENGTH_BM, BLE_HEADER_LENGTH, BLE_NUM_PAD, BLE_PDU_ADV_DIRECT_IND, BLE_PDU_ADV_EXTENDED, BLE_PDU_ADV_IND, BLE_PDU_ADV_NONCONN_IND, BLE_PDU_ADV_SCAN_IND, BLE_PDU_AUX_SCAN_REQ, BLE_PDU_TYPE_BM, BLE_T_IFS, channel, RCL_SchedulerStopInfo::cmdStopEnabled, EXT_ADV_INTERVAL_US, EXT_ADV_PHY_SWITCHING_DELAY_US, RCL_SchedulerState::gracefulStopInfo, hal_enable_graceful_stop_time_irq(), hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), hal_setup_sync_found_cap(), HIGH_DUTY_CYCLE_INTERVAL, LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_waitForTopsmReady(), RCL_BLE5_getRxStatus(), RCL_Buffer_DataEntry_paddedLen, RCL_Buffer_entryLen, RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Connect, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_TxBufferCorruption, RCL_CommandStatus_Finished, RCL_Handler_BLE5_commitPacket(), RCL_Handler_BLE5_findAdvChannel(), RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPacketDuration(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_getAuxPtrFromTxBuffer(), RCL_Handler_BLE5_initAdvScanInitStats(), RCL_Handler_BLE5_InitializeFilterList(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateAdvScanInitStats(), RCL_Handler_BLE5_updateAuxPtr(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_Handler_BLE5_updateTxBuffers(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PostprocStart, RCL_ProfilingEvent_PreprocStop, RCL_Scheduler_findStopStatus(), RCL_Scheduler_setNewStartNow(), RCL_Scheduler_setNewStartRelTime(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_SCHEDULER_SYSTIM_US, RCL_StopType_Graceful, RCL_StopType_Hard, RCL_TxBuffer_get(), RCL_TxBuffer_head(), RCL_TxBuffer_next(), rclSchedulerState, RCL_SchedulerState::requestedPhyFeatures, RCL_SchedulerStopInfo::schedStopEnabled, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_scan_init | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References RCL_SchedulerState::actualStartTime, ADV_ACCESS_ADDRESS, ADV_CRC_INIT, RCL_SchedulerStopInfo::apiStopEnabled, ble5HandlerState, BLE_ADV_CHAN_HI, BLE_ADV_CHAN_LO, BLE_ADV_CHAN_MID, BLE_ADV_EXTENDED_MAX_PKT_LEN, BLE_ADV_LEGACY_MAX_PKT_LEN, BLE_AUX_OFFSET_300_US, BLE_AUX_OFFSET_30_US, BLE_CLK_ACCURACY_SCALE_FACTOR, BLE_CONNECT_INT_UNIT, BLE_CONNECT_MSG_LEN, BLE_HEADER_LENGTH, BLE_INTERVAL_POS, BLE_LATENCY_POS, BLE_MAX_PKT_LEN, BLE_PDU_ADV_DIRECT_IND, BLE_PDU_ADV_EXTENDED, BLE_PDU_ADV_IND, BLE_PDU_AUX_CONNECT_RSP, BLE_PDU_TYPE_BM, BLE_PHY_FEATURE_PHY_2MBPS, BLE_PHY_FEATURE_PHY_CODED, BLE_PHY_FEATURE_PHY_MASK, BLE_SCALED_CLK_ACCURACY_500PPM, BLE_SCALED_CLK_ACCURACY_50PPM, BLE_T_IFS, BLE_TIMEOUT_POS, BLE_TRANSMIT_WINDOW_DELAY_EXT_CODED, BLE_TRANSMIT_WINDOW_DELAY_EXT_UNCODED, BLE_TRANSMIT_WINDOW_DELAY_LEGACY, BLE_WIN_OFFSET_POS, BLE_WIN_SIZE_POS, channel, RCL_SchedulerState::gracefulStopInfo, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), hal_setup_sync_found_cap(), RCL_SchedulerState::hardStopInfo, LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_getTxFifoWrAddr(), LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_waitForTopsmReady(), RCL_BLE5_CONNECT_INT_SUB_DIV, RCL_BLE5_CONNECT_SUB_INT, RCL_Buffer_DataEntry_paddedLen, RCL_CMDID_BLE5_INITIATOR, RCL_CommandStatus_Active, RCL_CommandStatus_Connect, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Finished, RCL_CommandStatus_MaxAuxWaitTimeExceeded, RCL_CommandStatus_NoSync, RCL_CommandStatus_RxErr, RCL_EventNone, RCL_Handler_BLE5_commitPacket(), RCL_Handler_BLE5_findConnectTime(), RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPacketDuration(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findRxSyncOverhead(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_initAdvScanInitStats(), RCL_Handler_BLE5_InitializeFilterList(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_prepareConnectTime(), RCL_Handler_BLE5_readAuxPtrFromRxBuffer(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateAdvScanInitStats(), RCL_Handler_BLE5_updateBackoffParams(), RCL_Handler_BLE5_updateFilterListEntry(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_Handler_BLE5_updateTxBuffers(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PreprocStop, RCL_Scheduler_cancelCmdStopTime(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_setCmdStopTime(), RCL_Scheduler_setNewStartAbsTime(), RCL_Scheduler_setNewStartNow(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_SCHEDULER_SYSTIM_US, RCL_StopType_Graceful, RCL_StopType_Hard, RCL_TxBuffer_head(), rclSchedulerState, RCL_SchedulerState::requestedPhyFeatures, RX_START_OVERHEAD, txBuffer_dataByte, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_conn | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References RCL_SchedulerState::actualStartTime, ble5HandlerState, BLE_MAX_PKT_LEN, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), hal_setup_sync_found_cap(), LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxEmpty, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_EventTxDone, LRF_getTxFifoWritable(), LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_TxBufferCorruption, RCL_CommandStatus_Finished, RCL_CommandStatus_MaxNak, RCL_CommandStatus_NoSync, RCL_CommandStatus_RxErr, RCL_CommandStatus_RxTimeout, RCL_Handler_BLE5_commitPacket(), RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_initConnStats(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateConnStats(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_Handler_BLE5_updateTxBuffers(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PostprocStart, RCL_ProfilingEvent_PreprocStop, RCL_Schedule_AbsTime, RCL_Scheduler_findStopStatus(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_StopType_Graceful, RCL_TxBuffer_get(), rclSchedulerState, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_dtmTx | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References ADV_CRC_INIT, ble5HandlerState, BLE_DTM_PAYLOAD_TYPE_00000000, BLE_DTM_PAYLOAD_TYPE_00001111, BLE_DTM_PAYLOAD_TYPE_01010101, BLE_DTM_PAYLOAD_TYPE_10101010, BLE_DTM_PAYLOAD_TYPE_11110000, BLE_DTM_PAYLOAD_TYPE_11111111, BLE_DTM_PAYLOAD_TYPE_PRBS15, BLE_DTM_PAYLOAD_TYPE_PRBS9, channel, DTM_ACCESS_ADDRESS, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), LRF_CLOCK_TICKS_PER_US, LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_waitForTopsmReady(), RCL_Buffer_bytesToWords, RCL_CommandStatus_Active, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Finished, RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_HANDLER_BLE5_PRBS15_INIT, RCL_HANDLER_BLE5_PRBS15_POLY, RCL_HANDLER_BLE5_PRBS9_INIT, RCL_HANDLER_BLE5_PRBS9_POLY, RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_StopType_Graceful, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_genericRx | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References RCL_SchedulerState::actualStartTime, ble5HandlerState, channel, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), hal_setup_sync_found_cap(), LRF_disable(), LRF_disableSynthRefsys(), LRF_discardRxFifoWords(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_programFrequency(), LRF_readRxFifoWords(), LRF_sendHardStop(), LRF_setRxFifoEffSz(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_CommandStatus_Active, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Finished, RCL_EventNone, RCL_Handler_BLE5_commitPacket(), RCL_Handler_BLE5_disableSync(), RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_initGenericRxStats(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_restoreSync(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateGenericRxStats(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_StopType_Graceful, and rclSchedulerState.
| RCL_Events RCL_Handler_BLE5_genericTx | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References ble5HandlerState, channel, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_waitForTopsmReady(), RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Finished, RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateTxBuffers(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_TxBuffer_get(), and TxPowerResult_Ok.
| RCL_Events RCL_Handler_Ble5_txTest | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References ble5HandlerState, channel, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_programFrequency(), LRF_programTxPower(), LRF_waitForTopsmReady(), RCL_CMD_BLE5_WH_MODE_DEFAULT, RCL_CMD_BLE5_WH_MODE_PRBS15, RCL_CMD_BLE5_WH_MODE_PRBS9, RCL_CommandStatus_Active, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Finished, RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_HANDLER_BLE5_PRBS15_INIT, RCL_HANDLER_BLE5_PRBS15_POLY, RCL_HANDLER_BLE5_PRBS32_INIT, RCL_HANDLER_BLE5_PRBS32_POLY, RCL_HANDLER_BLE5_PRBS9_INIT, RCL_HANDLER_BLE5_PRBS9_POLY, RCL_HANDLER_BLE5_PRBS_SYNC, RCL_HANDLER_BLE5_RESTORE_MODCTRL, RCL_HANDLER_BLE5_RESTORE_NONE, RCL_HANDLER_BLE5_RESTORE_WHITEN_POLY, RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Scheduler_setStartStopTimeEarliestStart(), and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_aux_adv | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References RCL_SchedulerState::actualStartTime, ADV_ACCESS_ADDRESS, ADV_CRC_INIT, ble5HandlerState, BLE_ADV_AUX_SCAN_REQ_PKT_LEN, BLE_ADV_FILTER_POLICY_SCAN, BLE_ADV_MODE_BM, BLE_ADV_MODE_CONN_NONSCAN, BLE_ADV_MODE_NONCONN_NONSCAN, BLE_ADV_MODE_NONCONN_SCAN, BLE_AUX_OFFSET_30_US, BLE_convertSystimUnitsToOffsetUnits, BLE_HEADER_LENGTH, BLE_NUM_PAD, BLE_PDU_ADV_EXTENDED, BLE_PDU_TYPE_BM, BLE_T_IFS, channel, RCL_SchedulerStopInfo::cmdStopEnabled, EXT_ADV_INTERVAL_US, RCL_SchedulerState::gracefulStopInfo, hal_enable_graceful_stop_time_irq(), hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), hal_setup_sync_found_cap(), LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_Buffer_entryLen, RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Connect, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_TxBufferCorruption, RCL_CommandStatus_Finished, RCL_Handler_BLE5_commitPacket(), RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPacketDuration(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_getAuxPtrFromTxBuffer(), RCL_Handler_BLE5_initAdvScanInitStats(), RCL_Handler_BLE5_InitializeFilterList(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateAdvScanInitStats(), RCL_Handler_BLE5_updateAuxPtr(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_Handler_BLE5_updateTxBuffers(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_setNewStartRelTime(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_SCHEDULER_SYSTIM_US, RCL_StopType_Graceful, RCL_StopType_Hard, RCL_TxBuffer_get(), RCL_TxBuffer_head(), RCL_TxBuffer_next(), rclSchedulerState, RCL_SchedulerStopInfo::schedStopEnabled, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_periodicAdv | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References RCL_SchedulerState::actualStartTime, ble5HandlerState, BLE_ADV_MODE_BM, BLE_ADV_MODE_NONCONN_NONSCAN, BLE_AUX_OFFSET_30_US, BLE_convertSystimUnitsToOffsetUnits, BLE_HEADER_LENGTH, BLE_PDU_ADV_EXTENDED, BLE_PDU_TYPE_BM, channel, RCL_SchedulerStopInfo::cmdStopEnabled, EXT_ADV_INTERVAL_US, RCL_SchedulerState::gracefulStopInfo, hal_enable_graceful_stop_time_irq(), hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_waitForTopsmReady(), RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_TxBufferCorruption, RCL_CommandStatus_Finished, RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPacketDuration(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_getAuxPtrFromTxBuffer(), RCL_Handler_BLE5_initAdvScanInitStats(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateAdvScanInitStats(), RCL_Handler_BLE5_updateAuxPtr(), RCL_Handler_BLE5_updateTxBuffers(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_setNewStartRelTime(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_SCHEDULER_SYSTIM_US, RCL_StopType_Graceful, RCL_StopType_Hard, RCL_TxBuffer_get(), RCL_TxBuffer_head(), rclSchedulerState, RCL_SchedulerStopInfo::schedStopEnabled, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_periodicScan | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
Validate the received packet as an AUX_SYNC_SUBEVENT_IND by ensuring:
Follows an AuxPtr only if this is not a PAwR scanner This is indicated by a perAdvType value of 0.
References RCL_SchedulerState::actualStartTime, RCL_SchedulerStopInfo::apiStopEnabled, ble5HandlerState, BLE_ADV_CHAN_HI, BLE_ADV_CHAN_LO, BLE_ADV_CHAN_MID, BLE_ADV_EXTENDED_MAX_PKT_LEN, BLE_ADV_MODE_BM, BLE_ADV_MODE_NONCONN_NONSCAN, BLE_AUX_OFFSET_300_US, BLE_AUX_OFFSET_30_US, BLE_CLK_ACCURACY_SCALE_FACTOR, BLE_EXTENDED_HEADER_BM, BLE_EXTENDED_HEADER_INVALID_SUBEVENT_IND_BM, BLE_EXTENDED_HEADER_LENGTH_BM, BLE_MAX_PKT_LEN, BLE_PDU_ADV_EXTENDED, BLE_PDU_AUX_CONNECT_REQ, BLE_PDU_TYPE_BM, BLE_SCALED_CLK_ACCURACY_500PPM, BLE_SCALED_CLK_ACCURACY_50PPM, channel, RCL_SchedulerState::gracefulStopInfo, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), hal_setup_sync_found_cap(), RCL_SchedulerState::hardStopInfo, LRF_disable(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Connect, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_TxBufferCorruption, RCL_CommandStatus_Finished, RCL_CommandStatus_MaxAuxWaitTimeExceeded, RCL_CommandStatus_NoSync, RCL_CommandStatus_RxErr, RCL_EventNone, RCL_Handler_BLE5_commitPacket(), RCL_Handler_BLE5_findNumExtraBytes(), RCL_Handler_BLE5_findPacketDuration(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findRxSyncOverhead(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_initAdvScanInitStats(), RCL_Handler_BLE5_maskEventsByFifoConf(), RCL_Handler_BLE5_readAuxPtrFromRxBuffer(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Handler_BLE5_updateAdvScanInitStats(), RCL_Handler_BLE5_updateRxCurBufferAndFifo(), RCL_Handler_BLE5_updateTxBuffers(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PostprocStart, RCL_ProfilingEvent_PreprocStop, RCL_Scheduler_cancelCmdStopTime(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_setCmdStopTime(), RCL_Scheduler_setNewStartAbsTime(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_SCHEDULER_SYSTIM_US, RCL_StopType_Graceful, RCL_StopType_Hard, RCL_TxBuffer_get(), rclSchedulerState, RX_START_OVERHEAD, and TxPowerResult_Ok.
| RCL_Events RCL_Handler_BLE5_ChannelAssessment | ( | RCL_Command * | cmd, |
| LRF_Events | lrfEvents, | ||
| RCL_Events | rclEventsIn | ||
| ) |
References ble5HandlerState, BLE_CH_ASSESSMENT_MIN_DURATION, BLE_CH_ASSESSMENT_SAMPLING_PERIOD, channel, hal_power_release_swtcxo_update_constraint(), hal_power_set_swtcxo_update_constraint(), LRF_disable(), LRF_disableHwInterrupt(), LRF_disableSynthRefsys(), LRF_enable(), LRF_enableHwInterrupt(), LRF_enableSynthRefsys(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRfesoft0, LRF_programFrequency(), LRF_readRssi(), LRF_RSSI_INVALID, LRF_sendHardStop(), LRF_waitForTopsmReady(), RCL_CommandStatus_Active, RCL_CommandStatus_ChannelBusy, RCL_CommandStatus_ChannelIdle, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Finished, RCL_EventNone, RCL_Handler_BLE5_disableSync(), RCL_Handler_BLE5_findPbeErrorEndStatus(), RCL_Handler_BLE5_findRfFreq(), RCL_Handler_BLE5_findWhitenInit(), RCL_Handler_BLE5_restoreSync(), RCL_Handler_BLE5_setPhy(), RCL_Handler_BLE5_setRfOperation(), RCL_Scheduler_findStopStatus(), RCL_Scheduler_getCurrentTime(), RCL_Scheduler_setStartStopTimeEarliestStart(), and RCL_StopType_Graceful.
| RCL_BLE5_FilterListUpdateResult RCL_BLE5_updateFilterList | ( | const RCL_FL_Entry * | newEntry, |
| RCL_FilterList * | filterList, | ||
| uint32_t | index | ||
| ) |
Update filter list.
Update the given filter list in a way that is safe even if a running command is using the filter list. The contents of newEntry will be copied into filterList->entries[index].
If a scanner or initiator function is running, the filter list in use in the radio will also be updated in a way that ensures no match will be found on a non-existing entry. In a short time, neither the old nor new entry will give a match.
If an advertiser command is running, the update will not apply until the next time the advertiser is started
| newEntry | New filter list entry to apply |
| filterList | Filter accept list to update |
| index | Index into filter accept list to update |
References ble5HandlerState, RCL_SchedulerState::currCmd, PBE_NUM_FILTER_ENTRIES, RCL_BLE5_FilterListUpdateIndexError, RCL_BLE5_FilterListUpdateOk, RCL_EventHandlerCmdUpdate, RCL_Scheduler_postEvent(), and rclSchedulerState.
| void RCL_BLE5_setDefaultRfFrequency | ( | uint32_t | rfFrequency | ) |
Set RF frequency to use if custom frequency is specified.
If a command specifies to use a custom frequency, it will program the frequency last set using this function.
| rfFrequency | RF frequency in Hz |
References ble5HandlerState.
|
inlinestatic |
Get channel field from packet.
Returns the channel that the packet was received on
| rxEntry | Received data entry |
References RCL_BLE5_getAuxAdvStartTimeDelta(), RCL_BLE5_getRxRssi(), RCL_BLE5_getRxStatus(), and RCL_BLE5_getRxTimestamp().
| RCL_Ble5_RxPktStatus RCL_BLE5_getRxStatus | ( | const RCL_Buffer_DataEntry * | rxEntry | ) |
Get received status field from packet.
Returns the packet status field of a received packet, or {.value = RCL_BLE5_RX_PKT_STATUS_INVALID} if status is not enabled
| rxEntry | Received data entry |
References ble5HandlerState, RCL_BLE5_RX_PKT_STATUS_INVALID, RCL_Handler_BLE5_findNumExtraBytes(), and RCL_Ble5_RxPktStatus::value.
Referenced by RCL_BLE5_getRxChannel(), and RCL_Handler_BLE5_adv().
| int8_t RCL_BLE5_getRxRssi | ( | const RCL_Buffer_DataEntry * | rxEntry | ) |
Get received RSSI from packet.
Returns the RSSI field of a received packet, or LRF_RSSI_INVALID if RSSI is not enabled
| rxEntry | Received data entry |
References ble5HandlerState, LRF_RSSI_INVALID, and RCL_Handler_BLE5_findNumExtraBytes().
Referenced by RCL_BLE5_getRxChannel().
| uint32_t RCL_BLE5_getRxTimestamp | ( | const RCL_Buffer_DataEntry * | rxEntry | ) |
Get received timestamp from packet.
Returns the timestamp a received packet, adjusted according to the PHY it was received on (1 Mbps assumed if packet status is not available). If timestamp is not enabled, 0 is returned. Note that this is a valid value, so it can not be used for error checking.
| rxEntry | Received data entry |
References ble5HandlerState, RCL_Ble5_RxPhy1Mbps, RCL_Ble5_RxPhy2Mbps, RCL_Ble5_RxPhyCodedS2, RCL_Ble5_RxPhyCodedS8, RCL_Handler_BLE5_findNumExtraBytes(), TIMESTAMP_ADJUST_1MBPS, TIMESTAMP_ADJUST_2MBPS, and TIMESTAMP_ADJUST_CODED.
Referenced by RCL_BLE5_getRxChannel().
| uint32_t RCL_BLE5_getAuxAdvStartTimeDelta | ( | uint16_t | primaryPhyFeatures, |
| uint16_t | secondaryPhyFeatures, | ||
| uint8_t | chMap, | ||
| uint8_t | advPayloadLen | ||
| ) |
Get the expected start time delta associated with sending an auxiliary advertising indication.
Returns the expected time delta between the start time of a non-connectable/non-scannable ADV_EXT_IND sent over a specific PHY on a defined channel map, and the start time of an AUX_ADV_IND that contains the SyncInfo field needed for periodic advertising establishment.
| primaryPhyFeatures | PHY feature selector corresponding to the primary PHY |
| secondaryPhyFeatures | PHY feature selector corresponding to the secondary PHY |
| chMap | Channel map. Bit positions 0-2 correspond to channels 37-39 |
| advPayloadLen | Payload length of ADV_EXT_IND |
References BLE_AUX_OFFSET_30_US, BLE_convertSystimUnitsToOffsetUnits, EXT_ADV_INTERVAL_US, EXT_ADV_PHY_SWITCHING_DELAY_US, RCL_Handler_BLE5_findPacketDuration(), and RCL_SCHEDULER_SYSTIM_US.
Referenced by RCL_BLE5_getRxChannel().