Radio Control Layer (RCL)
generic.c File Reference
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
#include <ti/log/Log.h>
#include <ti/drivers/rcl/RCL_Command.h>
#include <ti/drivers/rcl/RCL_Buffer.h>
#include <ti/drivers/rcl/RCL_Scheduler.h>
#include <ti/drivers/rcl/RCL_Profiling.h>
#include <ti/drivers/rcl/RCL_Feature.h>
#include <ti/drivers/rcl/LRF.h>
#include <ti/drivers/rcl/hal/RCL_Hal.h>
#include <ti/drivers/rcl/commands/generic.h>
+ Include dependency graph for generic.c:

Data Structures

struct  .common
 
union  .__unnamed__
 
struct  .__unnamed__.tx
 
struct  .__unnamed__.txTest
 
struct  .__unnamed__.rx
 
struct  .__unnamed__.nesb
 

Functions

static uint32_t RCL_Handler_Generic_prepareSynth (void)
 
static void RCL_Handler_Generic_setSynthPowerState (bool fsOff)
 
static void RCL_Handler_Generic_updateRxCurBufferAndFifo (List_List *rxBuffers)
 
static RCL_CommandStatus RCL_Handler_Generic_mapLrfErrorStatusToRclStatus (void)
 
static uint32_t RCL_Handler_Generic_updateTxBuffers (List_List *txBuffers, uint32_t maxBuffers)
 
static void RCL_Handler_Generic_updateRxStats (RCL_StatsGeneric *stats, uint32_t startTime)
 
static void RCL_Handler_Generic_updateLongStats (void)
 
static bool RCL_Handler_Generic_initRxStats (RCL_StatsGeneric *stats, uint32_t startTime)
 
static void RCL_Handler_Nesb_updateHeader (List_List *txBuffers, uint8_t autoRetransmitMode, uint8_t hdrConf, uint8_t seqNumber)
 
static void RCL_Handler_Nesb_updateStats (RCL_StatsNesb *stats, uint32_t startTime)
 
static void RCL_Handler_Nesb_updateLongStats (void)
 
static bool RCL_Handler_Nesb_initStats (RCL_StatsNesb *stats, uint32_t startTime)
 
RCL_Events RCL_Handler_Generic_Fs (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Generic_FsOff (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Generic_Tx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Generic_TxRepeat (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Generic_TxTest (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Generic_Rx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Generic_LrfOperation (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Nesb_Ptx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 
RCL_Events RCL_Handler_Nesb_Prx (RCL_Command *cmd, LRF_Events lrfEvents, RCL_Events rclEventsIn)
 

Variables

struct {
   struct {
uint16_t txFifoSize
 
uint16_t rxFifoSize
 
RCL_CommandStatus endStatus
 
bool activeUpdate
 
bool powerStandbyConstraintSet
 
bool powerSwtcxoConstraintSet
 
RCL_MultiBuffer * curBuffer
 
   } common
 
   union {
      struct {
bool gracefulStopObserved
 
bool stopFs
 
uint32_t txCount
 
uint32_t period
 
      } tx
 
      struct {
LRF_ModulationCtrl modulationCtrl
 
      } txTest
 
      struct {
uint32_t longOkCount
 
uint32_t longNokCount
 
LRF_SyncSearchCtrl syncSearchCtrl
 
      } rx
 
      struct {
uint32_t longTxCount
 
uint32_t longOkCount
 
uint32_t longNokCount
 
uint32_t longRxIgnoredCount
 
uint32_t longRxAddrMismatchCount
 
uint32_t longRxBufFullCount
 
LRF_SyncSearchCtrl syncSearchCtrl
 
      } nesb
 
   } 
 
genericHandlerState
 

Data Structure Documentation

§ .common

struct .common
Data Fields
uint16_t txFifoSize
uint16_t rxFifoSize
RCL_CommandStatus endStatus
bool activeUpdate
bool powerStandbyConstraintSet
bool powerSwtcxoConstraintSet
RCL_MultiBuffer * curBuffer

§ .__unnamed__

union .__unnamed__
Data Fields
__unnamed__ tx
__unnamed__ txTest
__unnamed__ rx
__unnamed__ nesb

§ .__unnamed__.tx

struct .__unnamed__.tx
Data Fields
bool gracefulStopObserved
bool stopFs
uint32_t txCount
uint32_t period

§ .__unnamed__.txTest

struct .__unnamed__.txTest
Data Fields
LRF_ModulationCtrl modulationCtrl

§ .__unnamed__.rx

struct .__unnamed__.rx
Data Fields
uint32_t longOkCount
uint32_t longNokCount
LRF_SyncSearchCtrl syncSearchCtrl

§ .__unnamed__.nesb

struct .__unnamed__.nesb
Data Fields
uint32_t longTxCount
uint32_t longOkCount
uint32_t longNokCount
uint32_t longRxIgnoredCount
uint32_t longRxAddrMismatchCount
uint32_t longRxBufFullCount
LRF_SyncSearchCtrl syncSearchCtrl

Function Documentation

§ RCL_Handler_Generic_prepareSynth()

§ RCL_Handler_Generic_setSynthPowerState()

§ RCL_Handler_Generic_updateRxCurBufferAndFifo()

static void RCL_Handler_Generic_updateRxCurBufferAndFifo ( List_List *  rxBuffers)
static

§ RCL_Handler_Generic_mapLrfErrorStatusToRclStatus()

§ RCL_Handler_Generic_updateTxBuffers()

static uint32_t RCL_Handler_Generic_updateTxBuffers ( List_List *  txBuffers,
uint32_t  maxBuffers 
)
static

§ RCL_Handler_Generic_updateRxStats()

static void RCL_Handler_Generic_updateRxStats ( RCL_StatsGeneric *  stats,
uint32_t  startTime 
)
static

§ RCL_Handler_Generic_updateLongStats()

§ RCL_Handler_Generic_initRxStats()

static bool RCL_Handler_Generic_initRxStats ( RCL_StatsGeneric *  stats,
uint32_t  startTime 
)
static

§ RCL_Handler_Nesb_updateHeader()

static void RCL_Handler_Nesb_updateHeader ( List_List *  txBuffers,
uint8_t  autoRetransmitMode,
uint8_t  hdrConf,
uint8_t  seqNumber 
)
static

References RCL_TxBuffer_head().

Referenced by RCL_Handler_Nesb_Ptx().

§ RCL_Handler_Nesb_updateStats()

static void RCL_Handler_Nesb_updateStats ( RCL_StatsNesb *  stats,
uint32_t  startTime 
)
static

§ RCL_Handler_Nesb_updateLongStats()

§ RCL_Handler_Nesb_initStats()

§ RCL_Handler_Generic_Fs()

§ RCL_Handler_Generic_FsOff()

§ RCL_Handler_Generic_Tx()

§ RCL_Handler_Generic_TxRepeat()

§ RCL_Handler_Generic_TxTest()

§ RCL_Handler_Generic_Rx()

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

References RCL_SchedulerState::actualStartTime, genericHandlerState, LRF_disable(), LRF_discardRxFifoWords(), LRF_enable(), LRF_enableHwInterrupt(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxNok, LRF_EventRxOk, LRF_hasRxWordToRead(), LRF_Interface_Generic_configOpRx(), LRF_Interface_Generic_disableSyncSearch(), LRF_Interface_Generic_getFifoCfg(), LRF_Interface_Generic_isFreqSynthLocked(), LRF_Interface_Generic_maskEventsByFifoConf(), LRF_Interface_Generic_programSyncWordA(), LRF_Interface_Generic_programSyncWordB(), LRF_Interface_Generic_restoreSyncSearch(), LRF_Interface_Generic_sendOpRx(), LRF_Interface_Generic_sendOpStop(), LRF_Interface_isCmdEndCauseEopStop(), LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_programFrequency(), LRF_readRxFifoWords(), LRF_setRxFifoEffSz(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_CommandStatus_Active, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_Synth, RCL_CommandStatus_Finished, RCL_EventNone, RCL_Hal_setupSyncFoundCap(), RCL_Handler_Generic_initRxStats(), RCL_Handler_Generic_mapLrfErrorStatusToRclStatus(), RCL_Handler_Generic_prepareSynth(), RCL_Handler_Generic_setSynthPowerState(), RCL_Handler_Generic_updateLongStats(), RCL_Handler_Generic_updateRxCurBufferAndFifo(), RCL_Handler_Generic_updateRxStats(), RCL_MultiBuffer_commitBytes(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PostprocStart, RCL_ProfilingEvent_PreprocStop, RCL_Scheduler_findStopStatus(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_StopType_Graceful, and rclSchedulerState.

§ RCL_Handler_Generic_LrfOperation()

§ RCL_Handler_Nesb_Ptx()

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

References RCL_SchedulerState::actualStartTime, genericHandlerState, LRF_disable(), LRF_enable(), LRF_enableHwInterrupt(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_hasRxWordToRead(), LRF_Interface_Generic_configNextOpTx(), LRF_Interface_Generic_configOpNesbPtx(), LRF_Interface_Generic_getFifoCfg(), LRF_Interface_Generic_isFreqSynthLocked(), LRF_Interface_Generic_maskEventsByFifoConf(), LRF_Interface_Generic_programSyncWordA(), LRF_Interface_Generic_programSyncWordB(), LRF_Interface_Generic_sendOpStop(), LRF_Interface_Generic_sendOpTx(), LRF_Interface_Generic_shouldNesbListenForAck(), LRF_Interface_getCmdEndCause(), LRF_Interface_isCmdEndCauseEndedWithoutSync(), LRF_Interface_isCmdEndCauseEndOk(), LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_retryTxFifo(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_BufferStateFinished, RCL_CommandStatus_Active, RCL_CommandStatus_Error_MissingTxBuffer, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_Synth, RCL_CommandStatus_Finished, RCL_CommandStatus_NoSync, RCL_Hal_setupSyncFoundCap(), RCL_Handler_Generic_mapLrfErrorStatusToRclStatus(), RCL_Handler_Generic_prepareSynth(), RCL_Handler_Generic_setSynthPowerState(), RCL_Handler_Generic_updateRxCurBufferAndFifo(), RCL_Handler_Generic_updateTxBuffers(), RCL_Handler_Nesb_initStats(), RCL_Handler_Nesb_updateHeader(), RCL_Handler_Nesb_updateLongStats(), RCL_Handler_Nesb_updateStats(), RCL_MultiBuffer_commitBytes(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PostprocStart, RCL_ProfilingEvent_PreprocStop, RCL_Scheduler_setNewStartNow(), RCL_Scheduler_setNewStartRelTime(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_TxBuffer_get(), rclSchedulerState, and TxPowerResult_Ok.

§ RCL_Handler_Nesb_Prx()

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

References RCL_SchedulerState::actualStartTime, RCL_FeatureControl::enablePaEsdProtection, genericHandlerState, LRF_disable(), LRF_discardRxFifoWords(), LRF_enable(), LRF_enableHwInterrupt(), LRF_EventOpDone, LRF_EventOpError, LRF_EventRxBufFull, LRF_EventRxIgnored, LRF_EventRxNok, LRF_EventRxOk, LRF_hasRxWordToRead(), LRF_Interface_Generic_configOpNesbPrx(), LRF_Interface_Generic_disableSyncSearch(), LRF_Interface_Generic_getFifoCfg(), LRF_Interface_Generic_getOpCfgNesbPrx(), LRF_Interface_Generic_isFreqSynthLocked(), LRF_Interface_Generic_maskEventsByFifoConf(), LRF_Interface_Generic_programSyncWordA(), LRF_Interface_Generic_programSyncWordB(), LRF_Interface_Generic_restoreSyncSearch(), LRF_Interface_Generic_sendOpRx(), LRF_Interface_Generic_sendOpStop(), LRF_Interface_Generic_updateSyncWordCfg(), LRF_Interface_isCmdEndCauseEopStop(), LRF_peekRxFifo(), LRF_prepareRxFifo(), LRF_prepareTxFifo(), LRF_programFrequency(), LRF_programTxPower(), LRF_readRxFifoWords(), LRF_setRxFifoEffSz(), LRF_updatePaEsdProtection(), LRF_waitForTopsmReady(), RCL_Buffer_DataEntry_paddedLen, RCL_CommandStatus_Active, RCL_CommandStatus_Error_Param, RCL_CommandStatus_Error_RxBufferCorruption, RCL_CommandStatus_Error_Synth, RCL_CommandStatus_Finished, RCL_EventNone, RCL_Hal_setupSyncFoundCap(), RCL_Handler_Generic_mapLrfErrorStatusToRclStatus(), RCL_Handler_Generic_prepareSynth(), RCL_Handler_Generic_setSynthPowerState(), RCL_Handler_Generic_updateRxCurBufferAndFifo(), RCL_Handler_Nesb_initStats(), RCL_Handler_Nesb_updateLongStats(), RCL_Handler_Nesb_updateStats(), RCL_MultiBuffer_commitBytes(), RCL_MultiBuffer_getBuffer(), RCL_MultiBuffer_getNextWritableByte(), RCL_ProfilingEvent_PostprocStart, RCL_ProfilingEvent_PreprocStop, RCL_Scheduler_findStopStatus(), RCL_Scheduler_setStartStopTimeEarliestStart(), RCL_StopType_Graceful, rclFeatureControl, rclSchedulerState, and TxPowerResult_Ok.

Variable Documentation

§ genericHandlerState