forked from gatsby/df_datalink
feat: 调整节点ttl逻辑, 启用自动重入网; 根据物理层修改时间调整值
This commit is contained in:
@@ -1053,12 +1053,12 @@ static int32_t Linklayer_Routine(L2_INST *instPtr)
|
|||||||
if (L2_GetMainState(instPtr) != L2_INIT_STATE)
|
if (L2_GetMainState(instPtr) != L2_INIT_STATE)
|
||||||
{
|
{
|
||||||
L2_IterDeleteNode(instPtr->nodeList, IsNodeConnected);
|
L2_IterDeleteNode(instPtr->nodeList, IsNodeConnected);
|
||||||
if (L2_GetNodeListLen(instPtr->nodeList) < instPtr->config.netScale - 1)
|
if (L2_GetNodeType(instPtr) == L2_NODE_MEMBER && (L2_GetNodeById(instPtr->nodeList, instPtr->myInfo.headId) == NULL))
|
||||||
{
|
{
|
||||||
// reset scan process
|
// reset scan process
|
||||||
L2_EVENT l2Event;
|
L2_EVENT l2Event;
|
||||||
// Assert Net-Setup Done.
|
// Assert Net-Setup Done.
|
||||||
l2Event.event = (L2_GetNodeType(instPtr) == L2_NODE_HEAD) ? L2_EV_LOST_NODE : L2_EV_LOST_CXN;
|
l2Event.event = L2_EV_LOST_CXN;
|
||||||
l2Event.msg = NULL;
|
l2Event.msg = NULL;
|
||||||
AssertL2Event(instPtr, &l2Event);
|
AssertL2Event(instPtr, &l2Event);
|
||||||
}
|
}
|
||||||
@@ -1323,8 +1323,7 @@ int32_t L2_SetupNextSlot(L2_INST *instPtr, L2_TOR_TYPE txrxMode, L2_FRAME_TYPE f
|
|||||||
DBG_ERROR("Physical set listening timeout failed, with error code: %" PRId32 "\n", Status);
|
DBG_ERROR("Physical set listening timeout failed, with error code: %" PRId32 "\n", Status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
TIME_WORD pollTime = {0, 0};
|
TIME_WORD pollTime = {0, 0};
|
||||||
pollTime.int_part = TimeCtrl_GetIntCnt(instPtr->config.tmcInstPtr) + 1;
|
pollTime.int_part = TimeCtrl_GetIntCnt(instPtr->config.tmcInstPtr) + 1;
|
||||||
Status = Phy_SetTimeWord(phyRef, &pollTime, PHY_TIME_WORD_POLL);
|
Status = Phy_SetTimeWord(phyRef, &pollTime, PHY_TIME_WORD_POLL);
|
||||||
@@ -1332,7 +1331,6 @@ int32_t L2_SetupNextSlot(L2_INST *instPtr, L2_TOR_TYPE txrxMode, L2_FRAME_TYPE f
|
|||||||
{
|
{
|
||||||
DBG_ERROR("Physical set poll time failed, with error code: %" PRId32 "\n", Status);
|
DBG_ERROR("Physical set poll time failed, with error code: %" PRId32 "\n", Status);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
PHY_TOR_TYPE tor;
|
PHY_TOR_TYPE tor;
|
||||||
switch (txrxMode)
|
switch (txrxMode)
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ static int32_t ScanMsg_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
|
|||||||
DBG_ERROR("Fail to generate CRC, error code: %" PRId32 ".\n", Status);
|
DBG_ERROR("Fail to generate CRC, error code: %" PRId32 ".\n", Status);
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
message->crc = crcVal;
|
message->crc = (uint8_t)crcVal;
|
||||||
|
|
||||||
// Logging...
|
// Logging...
|
||||||
memcpy(instPtr->log.txLog.data, message, sizeof(L2_MSG_ADV));
|
memcpy(instPtr->log.txLog.data, message, sizeof(L2_MSG_ADV));
|
||||||
|
|||||||
@@ -42,11 +42,11 @@
|
|||||||
#define L1_FRAME_512KBPS_4MS_LEN (2584 / 8) // byte
|
#define L1_FRAME_512KBPS_4MS_LEN (2584 / 8) // byte
|
||||||
#define L1_FRAME_2MBPS_4MS_LEN (10224 / 8) // byte
|
#define L1_FRAME_2MBPS_4MS_LEN (10224 / 8) // byte
|
||||||
|
|
||||||
#define L1_FRAME_ADV_24MS_COMP 1841158 // FIXME: need update, *10ns(Timer_L)
|
#define L1_FRAME_ADV_24MS_COMP 1399800 // *10ns(Timer_L)
|
||||||
#define L1_FRAME_ACK_8MS_COMP 1841158 // FIXME: need update, *10ns(Timer_L)
|
#define L1_FRAME_ACK_8MS_COMP 598408 // *10ns(Timer_L)
|
||||||
#define L1_FRAME_128KBPS_4MS_COMP 850950 // FIXME: need update, *10ns(Timer_L)
|
#define L1_FRAME_128KBPS_4MS_COMP 9950 // *10ns(Timer_L)
|
||||||
#define L1_FRAME_512KBPS_4MS_COMP 850950 // FIXME: need update, *10ns(Timer_L)
|
#define L1_FRAME_512KBPS_4MS_COMP 9950 // *10ns(Timer_L)
|
||||||
#define L1_FRAME_2MBPS_4MS_COMP 111485 // FIXME: need update, *10ns(Timer_L)
|
#define L1_FRAME_2MBPS_4MS_COMP 9950 // *10ns(Timer_L)
|
||||||
|
|
||||||
#define L1_ANTCONFIG_MAX_LEN 8192
|
#define L1_ANTCONFIG_MAX_LEN 8192
|
||||||
#define L1_TXRXDATA_MAX_LEN 16384
|
#define L1_TXRXDATA_MAX_LEN 16384
|
||||||
@@ -747,7 +747,7 @@ int32_t Phy_SetupNextSlot(PHY_INST *instPtr, PHY_TOR_TYPE txrxMode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set frame configs
|
// Set frame configs
|
||||||
PhyWrite(instPtr, PHY_MODE_CTRL, phyModeCtrl);
|
PhyWrite(instPtr, PHY_MODE_CTRL, phyModeCtrl | PHY_MODE_CTRL_CRC_EN);
|
||||||
|
|
||||||
// TODO: Set antenna stand by, when suspend.
|
// TODO: Set antenna stand by, when suspend.
|
||||||
const uint8_t *dataSrcPtr = (uint8_t *)(&(instPtr->antConfig));
|
const uint8_t *dataSrcPtr = (uint8_t *)(&(instPtr->antConfig));
|
||||||
|
|||||||
Reference in New Issue
Block a user