From de5759b392a510874a4f07262b8451a32b8258ad Mon Sep 17 00:00:00 2001 From: Gatsby Van Date: Wed, 20 Mar 2024 15:14:50 +0800 Subject: [PATCH] *add feature: frame type specialized attenuation --- .../src/networking/phy_layer/phy_layer.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/df_datalink_sp/src/networking/phy_layer/phy_layer.c b/df_datalink_sp/src/networking/phy_layer/phy_layer.c index 6c8ab0a..3e3be6e 100644 --- a/df_datalink_sp/src/networking/phy_layer/phy_layer.c +++ b/df_datalink_sp/src/networking/phy_layer/phy_layer.c @@ -59,6 +59,16 @@ #define ANT_COINFO_LEN 32 // bytes +#define ATTN_DEFAULT 0 +#define ATTN_2KBPS_100MS ATTN_DEFAULT +#define ATTN_2KBPS_20MS ATTN_DEFAULT +#define ATTN_10KBPS_10MS 31 +#define ATTN_10KBPS_20MS 31 +#define ATTN_40KBPS_10MS 21 +#define ATTN_40KBPS_20MS 21 +#define ATTN_200KBPS_5MS ATTN_DEFAULT +#define ATTN_1M2BPS_5MS ATTN_DEFAULT + /***************** Macros (Inline Functions) Definitions *********************/ /************************** Function Prototypes ******************************/ static void Phy_RcdShift(PHY_RCD *rcd, int32_t netxVal); @@ -696,41 +706,49 @@ int32_t Phy_SetupNextSlot(PHY_INST *instPtr, PHY_TOR_TYPE txrxMode, phyModeCtrl |= PHY_MODE_CTRL_FRAME_2KBPS_20MS; hopNum = L1_FRAME_2KBPS_20MS_HOPS; hopPattern = hopPattern_2KBPS_20MS; + instPtr->antConfig.rfTxMgc = ATTN_2KBPS_20MS; break; case L1_2KBPS_100MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_2KBPS_100MS; hopNum = L1_FRAME_2KBPS_100MS_HOPS; hopPattern = hopPattern_2KBPS_100MS; + instPtr->antConfig.rfTxMgc = ATTN_2KBPS_100MS; break; case L1_10KBPS_10MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_10KBPS_10MS; hopNum = L1_FRAME_10KBPS_20MS_HOPS; hopPattern = hopPattern_10KBPS_20MS; + instPtr->antConfig.rfTxMgc = ATTN_10KBPS_10MS; break; case L1_10KBPS_20MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_10KBPS_20MS; hopNum = L1_FRAME_10KBPS_20MS_HOPS; hopPattern = hopPattern_10KBPS_20MS; + instPtr->antConfig.rfTxMgc = ATTN_10KBPS_20MS; break; case L1_40KBPS_20MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_40KBPS_20MS; hopNum = L1_FRAME_40KBPS_20MS_HOPS; hopPattern = hopPattern_40KBPS_20MS; + instPtr->antConfig.rfTxMgc = ATTN_40KBPS_20MS; break; case L1_40KBPS_10MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_40KBPS_10MS; hopNum = L1_FRAME_40KBPS_10MS_HOPS; hopPattern = hopPattern_40KBPS_10MS; + instPtr->antConfig.rfTxMgc = ATTN_40KBPS_10MS; break; case L1_200KBPS_5MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_200KBPS_5MS; hopNum = L1_FRAME_200KBPS_5MS_HOPS; hopPattern = hopPattern_200KBPS_5MS; + instPtr->antConfig.rfTxMgc = ATTN_200KBPS_5MS; break; case L1_1M2BPS_5MS_FRAME: phyModeCtrl |= PHY_MODE_CTRL_FRAME_1M2BPS_5MS; hopNum = L1_FRAME_1M2BPS_5MS_HOPS; hopPattern = hopPattern_1M2BPS_5MS; + instPtr->antConfig.rfTxMgc = ATTN_1M2BPS_5MS; break; default: return EPARAM;