forked from gatsby/df_datalink
fix: 修改路由表,指定接收节点; 修改总线部分的错误
This commit is contained in:
@@ -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] =
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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*/
|
||||
|
||||
Reference in New Issue
Block a user