diff --git a/df_datalink_sp/src/networking/link_layer/scan.c b/df_datalink_sp/src/networking/link_layer/scan.c index 837829c..a08aee7 100644 --- a/df_datalink_sp/src/networking/link_layer/scan.c +++ b/df_datalink_sp/src/networking/link_layer/scan.c @@ -608,18 +608,19 @@ int32_t L2_Scan_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntry) if (rtneEntry->dst == L2_GetNodeId(instPtr) || rtneEntry->dst == L2_BROADCAST_ID) { torState = L2_TOR_RX; - commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->dst); + commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->src); } else if (rtneEntry->src == L2_GetNodeId(instPtr) || rtneEntry->src == L2_BROADCAST_ID) { torState = L2_TOR_TX; - commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->src); + commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->dst); } else { torState = L2_TOR_SUSPEND; } + // Setup antenna beam Phy_SetBeamWidth(instPtr->config.phyInstPtr, PHY_ANT_BEAM_25); instPtr->log.lastBeamWidth = PHY_ANT_BEAM_25; if (commNode != NULL) @@ -641,6 +642,7 @@ int32_t L2_Scan_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntry) { torState = L2_TOR_SUSPEND; } + // Setup antenna beam Phy_SetBeamWidth(instPtr->config.phyInstPtr, PHY_ANT_BEAM_120); instPtr->log.lastBeamWidth = PHY_ANT_BEAM_120; } diff --git a/df_datalink_sp/src/networking/link_layer/service.c b/df_datalink_sp/src/networking/link_layer/service.c index 2b583e9..4eefac5 100644 --- a/df_datalink_sp/src/networking/link_layer/service.c +++ b/df_datalink_sp/src/networking/link_layer/service.c @@ -373,7 +373,7 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr if (rtneEntry->src == L2_GetNodeId(instPtr)) { torState = L2_TOR_TX; - commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->src); + commNode = L2_GetNodeById(instPtr->nodeList, rtneEntry->dst); } else if (rtneEntry->dst == L2_GetNodeId(instPtr)) { @@ -385,6 +385,7 @@ int32_t L2_Service_Routine(L2_INST *instPtr, const L2_RTNE_TABLE_ENTRY *rtneEntr torState = L2_TOR_SUSPEND; } + // Setup antenna beam if (L2_GetNodeType(instPtr) != L2_NODE_HEAD && commNode != NULL) { Phy_SetBeamWidth(phyRef, PHY_ANT_BEAM_25);