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 e1f4f62..10f14fd 100644 --- a/df_datalink_sp/src/networking/phy_layer/phy_layer.c +++ b/df_datalink_sp/src/networking/phy_layer/phy_layer.c @@ -164,11 +164,27 @@ inline L1_FRAME_TYPE Phy_GetLastRecvFrameType(PHY_INST *instPtr) { return L1_NONE_FRAME; } - int32_t frame_type = (PhyRead(instPtr, PHY_MODE_CTRL) & PHY_MODE_CTRL_FRAME_MASK) >> PHY_MODE_CTRL_FRAME_SHIFT; - if (frame_type < L1_1M2BPS_5MS_FRAME) - return frame_type; - else + int32_t frame_type = (PhyRead(instPtr, COASE_FREQEST) & COASE_TYPE_MASK); + switch (frame_type) { + case COASE_TYPE_2KBPS_20MS: + return L1_2KBPS_20MS_FRAME; + case COASE_TYPE_2KBPS_100MS: + return L1_2KBPS_100MS_FRAME; + case COASE_TYPE_10KBPS_10MS: + return L1_10KBPS_10MS_FRAME; + case COASE_TYPE_10KBPS_20MS: + return L1_10KBPS_20MS_FRAME; + case COASE_TYPE_40KBPS_20MS: + return L1_40KBPS_20MS_FRAME; + case COASE_TYPE_40KBPS_10MS: + return L1_40KBPS_10MS_FRAME; + case COASE_TYPE_200KBPS_5MS: + return L1_200KBPS_5MS_FRAME; + case COASE_TYPE_1M2BPS_5MS: + return L1_1M2BPS_5MS_FRAME; + default: return L1_NONE_FRAME; + } } /*****************************************************************************/