fix: 修改路由表,指定接收节点; 修改总线部分的错误

This commit is contained in:
2025-06-23 00:22:33 +08:00
parent 5a91eaad72
commit 58a909673a
4 changed files with 58 additions and 51 deletions
+36 -36
View File
@@ -119,18 +119,18 @@ L2_RTNE_TABLE_ENTRY tab10Mng10Svc[L2_SLOTS_PER_FRAME] =
{L2_SLOT_ACKNOWLEDGE, 0x01, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x02, 0x0A, 0x01},
{L2_SLOT_ACKNOWLEDGE, 0x03, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x02, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x03, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x04, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x04, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x04},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x04},
{L2_SLOT_SERVICE, 0x00, 0x04, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x04, 0x01},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
@@ -180,14 +180,14 @@ L2_RTNE_TABLE_ENTRY tab10Mng10Svc[L2_SLOTS_PER_FRAME] =
{L2_SLOT_RTT, 0x01, 0x01, 0x04},
{L2_SLOT_RTT, 0x00, 0x04, 0x01},
{L2_SLOT_RTT, 0x01, 0x04, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x05, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x05, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x06, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x06, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x05},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x05},
{L2_SLOT_SERVICE, 0x00, 0x05, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x05, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x06},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x06},
{L2_SLOT_SERVICE, 0x00, 0x06, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x06, 0x01},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
@@ -235,14 +235,14 @@ L2_RTNE_TABLE_ENTRY tab10Mng10Svc[L2_SLOTS_PER_FRAME] =
{L2_SLOT_RTT, 0x01, 0x01, 0x07},
{L2_SLOT_RTT, 0x00, 0x07, 0x01},
{L2_SLOT_RTT, 0x01, 0x07, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x07, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x07, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x08, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x08, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x07},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x07},
{L2_SLOT_SERVICE, 0x00, 0x07, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x07, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x08},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x08},
{L2_SLOT_SERVICE, 0x00, 0x08, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x08, 0x01},
// 12 slots: network management, head <--> node
// 18 slots: message distribution, head ---> node
@@ -290,14 +290,14 @@ L2_RTNE_TABLE_ENTRY tab10Mng10Svc[L2_SLOTS_PER_FRAME] =
{L2_SLOT_RTT, 0x01, 0x01, 0x0A},
{L2_SLOT_RTT, 0x00, 0x0A, 0x01},
{L2_SLOT_RTT, 0x01, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x09, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x09, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x01, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x0A, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x01, 0x0A, L2_UNICAST_ID},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x09},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x09},
{L2_SLOT_SERVICE, 0x00, 0x09, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x09, 0x01},
{L2_SLOT_SERVICE, 0x00, 0x01, 0x0A},
{L2_SLOT_SERVICE, 0x01, 0x01, 0x0A},
{L2_SLOT_SERVICE, 0x00, 0x0A, 0x01},
{L2_SLOT_SERVICE, 0x01, 0x0A, 0x01},
};
L2_RTNE_TABLE_ENTRY tab10Mng3Svc[L2_SLOTS_PER_FRAME] =
+12 -7
View File
@@ -203,7 +203,7 @@ static int32_t Service_Packing128K(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t
SysMonitor_GetSendPayload(&sendPayload);
message->common.dst = sendPayload.nodeId;
message->dataId = sendPayload.dataId;
message->dataLen = sendPayload.dataLen;;
message->dataLen = sendPayload.dataLen;
memset(message->data, 0xAA, maxDataLen);
memcpy(message->data, sendPayload.data, sendPayload.dataLen);
}
@@ -327,7 +327,7 @@ static int32_t Service_Packing2M(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t d
SysMonitor_GetSendPayload(&sendPayload);
message->common.dst = sendPayload.nodeId;
message->dataId = sendPayload.dataId;
message->dataLen = sendPayload.dataLen;;
message->dataLen = sendPayload.dataLen;
memset(message->data, 0xAA, maxDataLen);
memcpy(message->data, sendPayload.data, sendPayload.dataLen);
@@ -655,7 +655,7 @@ static int32_t Service_PktHandler2M(L2_INST *instPtr, uint8_t *msg)
recvPayload.dataId = message->dataId;
recvPayload.nodeId = message->common.src;
recvPayload.dataLen = message->dataLen;
memcpy(recvPayload.data, message->data, message->dataLen);
memcpy(recvPayload.data, message->data, maxDataLen);
SysMonitor_GenRecvRsp(&recvPayload);
// Logging...
@@ -887,10 +887,9 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
memcpy(instPtr->sendPktData, testData, msgLen);
#endif
}
else
else if (rtneEntry->dst == L2_GetNodeId(instPtr))
{
// In services slots, rx mode is always enabled when other nodes are transmitting
commNode = L2_GetNodeById(instPtr->nodeList, L2_HEAD_ID);
commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->src);
// antenna selection based on node list
antIndex = commNode->nodeInfo.antIndex;
// member node receives message in advertise slot
@@ -898,7 +897,13 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr
svcFSMPtr->rxCnt++;
}
(void)Phy_SetAntIndex(phyRef, antIndex);
else
{
// otherwise suspend
antIndex = PHY_ANT_INDEX_NONE;
torState = L2_TOR_SUSPEND;
}
(void)Phy_SetAntIndex(instPtr->config.phyInstPtr, antIndex);
(void)L2_SetupNextSlot(instPtr, torState, L2_FRAME_SVC);
break;
default:
+5 -5
View File
@@ -71,8 +71,8 @@
// -- Request
// -- -- Enable control
#define WD_EN_CMD 0x02
#define EN_CMD_ENABLE 0x66
#define EN_CMD_SILENT 0x88
#define EN_CMD_ENABLE 0xAA
#define EN_CMD_SILENT 0x55
// -- -- Node mode control
#define WD_ID_CMD 0x03
// -- -- Service Rate control
@@ -322,7 +322,7 @@ static int32_t SystemBus_SystemConfig(SYSBUS *instPtr, uint8_t *msg)
.event = L2_ROUTINE_UPDATE,
.msg = &newRtneConfig
};
AssertL2Event(instPtr, &l2Event);
AssertL2Event(linkInstPtr, &l2Event);
break;
}
case 1:
@@ -334,7 +334,7 @@ static int32_t SystemBus_SystemConfig(SYSBUS *instPtr, uint8_t *msg)
.event = L2_ROUTINE_UPDATE,
.msg = &newRtneConfig
};
AssertL2Event(instPtr, &l2Event);
AssertL2Event(linkInstPtr, &l2Event);
break;
}
case 2:
@@ -346,7 +346,7 @@ static int32_t SystemBus_SystemConfig(SYSBUS *instPtr, uint8_t *msg)
.event = L2_ROUTINE_UPDATE,
.msg = &newRtneConfig
};
AssertL2Event(instPtr, &l2Event);
AssertL2Event(linkInstPtr, &l2Event);
break;
}
default:
+5 -3
View File
@@ -146,7 +146,8 @@ int SysbusUart_Send(SYSBUS_UART *instPtr, SYSBUS_UART_FRAME *frame)
free(sendBuff);
return FAILURE;
}
memcpy((void *)(instPtr->config.baseAddr + UART_TXBUFF_OFFSET), sendBuff, (sendLen + sizeof(uint32_t) - 1) / sizeof(uint32_t) * sizeof(uint32_t));
memcpy((void *)(instPtr->config.baseAddr + UART_TXBUFF_OFFSET), sendBuff,
NORMALIZE_SIZE((sendLen + sizeof(uint32_t) - 1) / sizeof(uint32_t) * sizeof(uint32_t)));
free(sendBuff);
// Start Sending
SYSTEMBUS_UART_mWriteReg(instPtr->config.baseAddr, UART_SEND_CMD, sendLen);
@@ -183,7 +184,8 @@ int SysbusUart_Recv(SYSBUS_UART *instPtr, SYSBUS_UART_FRAME *frame)
{
return ENOMEM;
}
memcpy(dBuff, (void *)(instPtr->config.baseAddr + UART_RXBUFF_OFFSET), sizeof(uint32_t) * dWLen);
memcpy(dBuff, (void *)(instPtr->config.baseAddr + UART_RXBUFF_OFFSET),
NORMALIZE_SIZE(sizeof(uint32_t) * dWLen));
plBuff = dBuff + FRAME_HEAD_LEN;
checkSumCal = 0;
checkSum = plBuff[dLen + FRAME_DUMMY_LEN];
@@ -263,4 +265,4 @@ bool SysbusUart_IsTxBusy(SYSBUS_UART *instPtr)
/** @} SystemBus_UART*/
/** @} SystemBus*/
/** @} SystemBus*/