Radio Control Layer (RCL)
ble5.h File Reference
+ 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...
 

Enumeration Type Documentation

§ RCL_BLE5_FilterListUpdateResult

Result of filter list update API.

Tells if RCL_BLE5_FilterListUpdateResult succeeded

Enumerator
RCL_BLE5_FilterListUpdateOk 

Update was successful

RCL_BLE5_FilterListUpdateIndexError 

Index was outside size of filter list or filter list was NULL

Function Documentation

§ RCL_Handler_BLE5_adv()

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_Handler_BLE5_scan_init()

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_Handler_BLE5_conn()

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_Handler_BLE5_dtmTx()

§ RCL_Handler_BLE5_genericRx()

RCL_Events RCL_Handler_BLE5_genericRx ( RCL_Command *  cmd,
LRF_Events  lrfEvents,
RCL_Events  rclEventsIn 
)

§ RCL_Handler_BLE5_genericTx()

§ RCL_Handler_Ble5_txTest()

§ RCL_Handler_BLE5_aux_adv()

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_Handler_BLE5_periodicAdv()

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_Handler_BLE5_periodicScan()

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:

  • AdvMode is 0b00
  • Extended Header does not include AdvA, TargetA, AuxPtr, or SyncInfo fields if the extended header length is non-zero.

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_Handler_BLE5_ChannelAssessment()

§ RCL_BLE5_updateFilterList()

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

Parameters
newEntryNew filter list entry to apply
filterListFilter accept list to update
indexIndex into filter accept list to update
Returns
Result telling if update was successful

References ble5HandlerState, RCL_SchedulerState::currCmd, PBE_NUM_FILTER_ENTRIES, RCL_BLE5_FilterListUpdateIndexError, RCL_BLE5_FilterListUpdateOk, RCL_EventHandlerCmdUpdate, RCL_Scheduler_postEvent(), and rclSchedulerState.

§ RCL_BLE5_setDefaultRfFrequency()

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.

Parameters
rfFrequencyRF frequency in Hz

References ble5HandlerState.

§ RCL_BLE5_getRxChannel()

static RCL_Ble5Channel RCL_BLE5_getRxChannel ( const RCL_Buffer_DataEntry *  rxEntry)
inlinestatic

Get channel field from packet.

Returns the channel that the packet was received on

Parameters
rxEntryReceived data entry
Returns
Channel for receiving packet

References RCL_BLE5_getAuxAdvStartTimeDelta(), RCL_BLE5_getRxRssi(), RCL_BLE5_getRxStatus(), and RCL_BLE5_getRxTimestamp().

§ RCL_BLE5_getRxStatus()

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

Parameters
rxEntryReceived data entry
Returns
Receive packet status

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().

§ RCL_BLE5_getRxRssi()

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

Parameters
rxEntryReceived data entry
Returns
Reported RSSI of received packet

References ble5HandlerState, LRF_RSSI_INVALID, and RCL_Handler_BLE5_findNumExtraBytes().

Referenced by RCL_BLE5_getRxChannel().

§ RCL_BLE5_getRxTimestamp()

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.

Parameters
rxEntryReceived data entry
Returns
Timestamp of received packet

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().

§ RCL_BLE5_getAuxAdvStartTimeDelta()

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.

Parameters
primaryPhyFeaturesPHY feature selector corresponding to the primary PHY
secondaryPhyFeaturesPHY feature selector corresponding to the secondary PHY
chMapChannel map. Bit positions 0-2 correspond to channels 37-39
advPayloadLenPayload length of ADV_EXT_IND
Returns
Time delta in 250[ns] units between the start time of the ADV_EXT_IND and the start time of the AUX_ADV_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().