update scan FSM.
This commit is contained in:
@@ -190,7 +190,7 @@ typedef struct
|
||||
{
|
||||
bool isLocked; // init acq done.
|
||||
bool isAdvRecvd; // bm received.
|
||||
bool isAcked; // 2way acq done.
|
||||
bool isAckPending; // 2way acq done.
|
||||
uint8_t scanCnt;
|
||||
uint8_t beamNo;
|
||||
uint32_t advTimeout;
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
|
||||
/************************** Function Prototypes ******************************/
|
||||
static void LockStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state);
|
||||
static void AdvrecvStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state);
|
||||
static void CfmStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state);
|
||||
static void AdvRecvStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state);
|
||||
static void StageUpdate(L2_SCAN_FSM *scanFsmPtr, SCAN_STAGE newStage);
|
||||
static void PendCfmAck(L2_SCAN_FSM *scanFsmPtr);
|
||||
|
||||
static int32_t Scan_InitScanHandler(L2_INST *instPtr);
|
||||
static int32_t Scan_AdvHandler(L2_INST *instPtr);
|
||||
@@ -60,11 +60,11 @@ static inline void LockStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state)
|
||||
/**
|
||||
* @brief Update Base-info Advertisement state.
|
||||
*/
|
||||
static void AdvrecvStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state)
|
||||
static void AdvRecvStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state)
|
||||
{
|
||||
ASSERT(scanFsmPtr != NULL);
|
||||
DBG_INFO("Update AdvRecvState from [%d] to [%d].\n",
|
||||
scanFsmPtr->isBmRecvd, state);
|
||||
scanFsmPtr->isAdvRecvd, state);
|
||||
scanFsmPtr->isAdvRecvd = state;
|
||||
return;
|
||||
}
|
||||
@@ -72,12 +72,11 @@ static void AdvrecvStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state)
|
||||
/**
|
||||
* @brief Update 2-Way Acquisition ack state.
|
||||
*/
|
||||
static void CfmStateUpdate(L2_SCAN_FSM *scanFsmPtr, bool state)
|
||||
static void PendCfmAck(L2_SCAN_FSM *scanFsmPtr)
|
||||
{
|
||||
ASSERT(scanFsmPtr != NULL);
|
||||
DBG_INFO("Update CfmAckState from [%d] to [%d].\n",
|
||||
scanFsmPtr->isAcked, state);
|
||||
scanFsmPtr->isAcked = state;
|
||||
DBG_INFO("Pending Cfm-Ack...\n");
|
||||
scanFsmPtr->isAckPending = true;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -143,7 +142,7 @@ static int32_t Scan_InitScanHandler(L2_INST *instPtr)
|
||||
static int32_t Scan_AdvHandler(L2_INST *instPtr)
|
||||
{
|
||||
L2_SCAN_FSM *scanFsmPtr = instPtr->scanFSM;
|
||||
DBG_INFO("** Netsetup - Advertisement Procedure (Timeout: %u) **\n", scanFsmPtr->advTimeout);
|
||||
DBG_INFO("** Net-Setup - Advertisement Procedure (Timeout: %u) **\n", scanFsmPtr->advTimeout);
|
||||
|
||||
// if received a valid bm frame.
|
||||
if (scanFsmPtr->isAdvRecvd == true)
|
||||
@@ -330,7 +329,7 @@ void L2_Scan_Reset(L2_SCAN_FSM *scanFSMPtr)
|
||||
ASSERT(scanFSMPtr != NULL);
|
||||
scanFSMPtr->isLocked = false;
|
||||
scanFSMPtr->isAdvRecvd = false;
|
||||
scanFSMPtr->isAcked = false;
|
||||
scanFSMPtr->isAckPending = false;
|
||||
scanFSMPtr->scanCnt = 0;
|
||||
scanFSMPtr->beamNo = 0;
|
||||
scanFSMPtr->advTimeout = 0;
|
||||
@@ -622,10 +621,13 @@ int32_t L2_Scan_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntry)
|
||||
case L2_SLOT_CONFIRM:
|
||||
if (torState == L2_TOR_TX)
|
||||
{
|
||||
if (L2_GetNodeType(instPtr) != L2_NODE_HEAD && L2_isDataAvail(instPtr) == false)
|
||||
if (L2_GetNodeType(instPtr) != L2_NODE_HEAD)
|
||||
{
|
||||
DBG_INFO("Member node is not ready to send CFM frame.\n");
|
||||
if (instPtr->scanFSM->isAckPending == false)
|
||||
{
|
||||
DBG_INFO("Member node has no pending CFM-Ack frame.\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
memset(instPtr->sendPktData, 0xAA, L2_PACK_LEN_MAX);
|
||||
if (ScanMsg_Packing(instPtr, L2_CFM_FRAME, rtneEntry->dst) != SUCCESS)
|
||||
|
||||
Reference in New Issue
Block a user