mitigate: 整个地检和节点工程, 增加自动编译
更新了AD9361的profile
This commit is contained in:
@@ -0,0 +1,427 @@
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
* @file phy_antenna.h
|
||||
* @author FanHao ([email protected])
|
||||
* @brief Physical layer control antenna configuration functions.
|
||||
* @version 0.0
|
||||
* @date 2023-04-24
|
||||
*
|
||||
* @copyright Copyright(c) 2024 Beijing Institute of Technology.\n
|
||||
* Lab of Communication and Network
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
/**
|
||||
* @addtogroup PhysicalLayer
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup PhysicalLayer_AntennaControl
|
||||
* @{
|
||||
*/
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include "error.h"
|
||||
#include "phy_layer.h"
|
||||
|
||||
/**
|
||||
* @name PhysicalLayer_AntennaConfig_Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define ANT_PI 3.14159265358979323846
|
||||
|
||||
#define ANT_COINFO_HEAD 0xAA
|
||||
#define ANT_COINFO_TAIL 0xCC
|
||||
|
||||
#define CTRL_WORD_DEFAULT 0x00
|
||||
|
||||
#define ANT_ENABLE 0x01
|
||||
#define ANT_DISABLE 0x00
|
||||
#define ANT_MODE_RX_NORMAL 0x00
|
||||
#define ANT_MODE_RX_AJ 0x01
|
||||
|
||||
#define DEFAULT_CENTRTAL_FREQ 300U // 4 GHz
|
||||
|
||||
// Pair by regex
|
||||
// Regex: (([0-9]+, ){8})
|
||||
const uint16_t freqTable[L1_FRAME_MAX_HOPS] =
|
||||
{
|
||||
0U, 7U, 15U, 22U, 30U, 37U, 45U, 52U,
|
||||
60U, 67U, 75U, 82U, 90U, 97U, 105U, 112U,
|
||||
120U, 127U, 135U, 142U, 150U, 157U, 165U, 172U,
|
||||
180U, 187U, 195U, 202U, 210U, 217U, 225U, 232U,
|
||||
240U, 247U, 255U, 262U, 270U, 277U, 285U, 292U,
|
||||
300U, 307U, 315U, 322U, 330U, 337U, 345U, 352U,
|
||||
360U, 367U, 375U, 382U, 390U, 397U, 405U, 412U,
|
||||
420U, 427U, 435U, 442U, 450U, 457U, 465U, 472U,
|
||||
480U, 487U, 495U, 502U, 510U, 517U, 525U, 532U,
|
||||
540U, 547U, 555U, 562U, 570U, 577U, 585U, 592U,
|
||||
600U,
|
||||
};
|
||||
|
||||
|
||||
const uint8_t antCalTable[L1_ANT_NUM][L1_FRAME_MAX_HOPS][L1_ANT_CH_NUM] =
|
||||
//Antenna-JG01
|
||||
{
|
||||
// Antenna-1
|
||||
{
|
||||
{ 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
|
||||
{ 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
|
||||
{ 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
|
||||
{ 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
|
||||
{ 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
|
||||
{ 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
|
||||
{ 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
|
||||
{ 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
|
||||
{ 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
|
||||
{ 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
|
||||
{ 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
|
||||
{ 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
|
||||
{ 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
|
||||
{ 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
|
||||
{ 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
|
||||
{ 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
|
||||
{ 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
|
||||
{ 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
|
||||
{ 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
|
||||
{ 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
|
||||
{ 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
|
||||
{ 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
|
||||
{ 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
|
||||
{ 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
|
||||
{ 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
|
||||
{ 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
|
||||
{ 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
|
||||
{ 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
|
||||
{ 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
|
||||
{ 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
|
||||
{ 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
|
||||
{ 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
|
||||
{ 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
|
||||
{ 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
|
||||
{ 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
|
||||
{ 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
|
||||
{ 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
|
||||
{ 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
|
||||
{ 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
|
||||
{ 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
|
||||
{ 0, 1767, -7775, -8328},
|
||||
},
|
||||
// Antenna-2
|
||||
{
|
||||
{ 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
|
||||
{ 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
|
||||
{ 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
|
||||
{ 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
|
||||
{ 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
|
||||
{ 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
|
||||
{ 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
|
||||
{ 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
|
||||
{ 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
|
||||
{ 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
|
||||
{ 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
|
||||
{ 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
|
||||
{ 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
|
||||
{ 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
|
||||
{ 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
|
||||
{ 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
|
||||
{ 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
|
||||
{ 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
|
||||
{ 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
|
||||
{ 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
|
||||
{ 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
|
||||
{ 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
|
||||
{ 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
|
||||
{ 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
|
||||
{ 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
|
||||
{ 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
|
||||
{ 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
|
||||
{ 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
|
||||
{ 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
|
||||
{ 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
|
||||
{ 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
|
||||
{ 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
|
||||
{ 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
|
||||
{ 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
|
||||
{ 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
|
||||
{ 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
|
||||
{ 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
|
||||
{ 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
|
||||
{ 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
|
||||
{ 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
|
||||
{ 0, 1767, -7775, -8328},
|
||||
},
|
||||
// Antenna-3
|
||||
{
|
||||
{ 0, 2525, -7533, -6846}, { 0, 12726, -7818, -6860},
|
||||
{ 0, 2490, -7836, -6907}, { 0, 4479, -7716, -6837},
|
||||
{ 0, 6409, -7770, -6776}, { 0, 14616, -7977, -6816},
|
||||
{ 0, -22557, -8002, -6911}, { 0, -22587, -8121, -6918},
|
||||
{ 0, -1124, -8123, -7030}, { 0, -152, -8219, -7042},
|
||||
{ 0, 1823, -8209, -7130}, { 0, 1790, -8290, -7214},
|
||||
{ 0, 1669, -8362, -7283}, { 0, 1634, -8459, -7276},
|
||||
{ 0, 1615, -8315, -7415}, { 0, 1698, -8168, -7366},
|
||||
{ 0, 1535, -8285, -7520}, { 0, 1619, -8285, -7532},
|
||||
{ 0, 1609, -8201, -7693}, { 0, 1671, -8145, -7769},
|
||||
{ 0, 1676, -8135, -7805}, { 0, 951, -10279, -8871},
|
||||
{ 0, 976, -10235, -8978}, { 0, 1118, -10127, -9019},
|
||||
{ 0, 1175, -10003, -9007}, { 0, 1386, -9847, -9039},
|
||||
{ 0, 1535, -9572, -9058}, { 0, 1729, -9493, -9006},
|
||||
{ 0, -1158, -9312, -9003}, { 0, 23771, -9147, -8928},
|
||||
{ 0, 20733, -9074, -8924}, { 0, 2455, -8841, -8886},
|
||||
{ 0, 2622, -8718, -8735}, { 0, 2791, -8615, -8705},
|
||||
{ 0, 2861, -8168, -8331}, { 0, 3076, -8091, -8218},
|
||||
{ 0, 3257, -8046, -8100}, { 0, 3331, -7923, -8073},
|
||||
{ 0, 3396, -7826, -7994}, { 0, 3478, -7842, -8016},
|
||||
{ 0, 3518, -7846, -7765}, { 0, 3585, -7753, -7715},
|
||||
{ 0, 150, -8145, -8591}, { 0, 192, -8090, -8570},
|
||||
{ 0, 207, -8150, -8597}, { 0, 178, -8142, -8656},
|
||||
{ 0, 89, -8557, -8688}, { 0, 107, -8614, -8733},
|
||||
{ 0, 194, -8605, -8782}, { 0, 153, -8655, -8881},
|
||||
{ 0, 70, -8615, -8952}, { 0, 35, -8596, -9148},
|
||||
{ 0, 49, -8636, -9286}, { 0, 6, -8587, -9435},
|
||||
{ 0, -51, -8540, -9549}, { 0, -65, -8588, -9700},
|
||||
{ 0, -55, -8503, -9820}, { 0, -20, -8414, -9907},
|
||||
{ 0, -112, -8481, -10031}, { 0, -69, -8535, -10185},
|
||||
{ 0, 2, -8550, -10052}, { 0, -1, -8493, -10291},
|
||||
{ 0, -73, -8441, -10380}, { 0, 1958, -6930, -8295},
|
||||
{ 0, -1148, -6939, -8396}, { 0, 1915, -6784, -8370},
|
||||
{ 0, 1871, -6970, -8514}, { 0, 1821, -6974, -8387},
|
||||
{ 0, 1781, -6906, -8431}, { 0, 1736, -6897, -8462},
|
||||
{ 0, 1664, -7024, -8377}, { 0, 1629, -7127, -8436},
|
||||
{ 0, 1603, -7148, -8528}, { 0, 1577, -7198, -8500},
|
||||
{ 0, 1528, -7311, -8512}, { 0, 1577, -7390, -8570},
|
||||
{ 0, 1616, -7436, -8572}, { 0, 1589, -7597, -8590},
|
||||
{ 0, 1722, -7550, -8568}, { 0, 1741, -7691, -8449},
|
||||
{ 0, 1767, -7775, -8328},
|
||||
},
|
||||
};
|
||||
|
||||
const uint8_t hopPattern_ADV_24MS[L1_FRAME_ADV_24MS_HOPS] =
|
||||
{
|
||||
0U, 35U, 66U, 47U, 40U, 16U, 30U, 65U,
|
||||
43U, 7U, 70U, 63U, 7U, 65U, 42U, 28U,
|
||||
};
|
||||
|
||||
const uint8_t hopPattern_ACK_8MS[L1_FRAME_ACK_8MS_HOPS] =
|
||||
{
|
||||
0U, 5U, 49U, 25U,
|
||||
};
|
||||
|
||||
const uint8_t hopPattern_128KBPS_4MS[L1_FRAME_128KBPS_4MS_HOPS] =
|
||||
{
|
||||
80U, 16U, 17U, 65U, 60U, 54U, 31U, 15U,
|
||||
6U, 19U, 79U, 52U, 29U, 42U, 23U, 59U,
|
||||
60U, 58U, 76U, 67U, 31U, 76U, 77U, 79U,
|
||||
79U, 14U, 61U, 5U, 71U, 50U, 32U, 77U,
|
||||
60U,
|
||||
};
|
||||
|
||||
const uint8_t hopPattern_512KBPS_4MS[L1_FRAME_512KBPS_4MS_HOPS] =
|
||||
{
|
||||
80U, 62U, 40U, 66U, 65U, 33U, 55U, 33U,
|
||||
57U, 11U, 37U, 45U, 5U, 69U, 77U, 54U,
|
||||
37U, 63U, 14U, 64U, 76U, 31U, 45U, 52U,
|
||||
40U, 20U, 20U, 32U, 0U, 60U, 23U, 19U,
|
||||
15U, 38U, 62U, 18U,
|
||||
};
|
||||
|
||||
const uint8_t hopPattern_2MBPS_4MS[L1_FRAME_2MBPS_4MS_HOPS] =
|
||||
{
|
||||
0U, 13U, 37U, 44U, 16U, 0U, 59U, 50U,
|
||||
69U, 70U, 58U, 14U, 9U, 72U, 27U, 25U,
|
||||
21U, 76U, 20U, 35U, 30U, 58U, 22U, 59U,
|
||||
48U, 33U, 8U, 7U, 41U, 12U, 44U, 79U,
|
||||
77U, 38U, 76U, 75U, 48U, 56U,
|
||||
};
|
||||
|
||||
/** @} PhysicalLayer_AntennaConfig_Constants*/
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
* @brief Initialize antenna configurations (load preset values)
|
||||
*
|
||||
* @param antConfig pointer to antenna configure
|
||||
*
|
||||
* @return None.
|
||||
*
|
||||
******************************************************************************/
|
||||
void Phy_AntConfigInit(PHY_ANT_CONFIG *antConfig)
|
||||
{
|
||||
ASSERT(antConfig != NULL);
|
||||
|
||||
// FIXME: Dummy default value.
|
||||
for (uint8_t ii = 0; ii < L1_ANT_NUM; ii ++)
|
||||
{
|
||||
for (uint8_t jj = 0; jj < L1_ANT_CH_NUM; jj ++)
|
||||
{
|
||||
antConfig->rfNormComp[ii][jj] = 0;
|
||||
antConfig->rfNormIdpAttn[ii][jj] = 0;
|
||||
}
|
||||
antConfig->rfNormComAttn[ii] = 0;
|
||||
antConfig->rfFreq[ii][0] = (uint8_t)(DEFAULT_CENTRTAL_FREQ);
|
||||
antConfig->rfFreq[ii][1] = (uint8_t)(DEFAULT_CENTRTAL_FREQ >> 8);
|
||||
}
|
||||
|
||||
for (uint8_t ii = 0; ii < L1_ANT_CH_NUM; ii ++)
|
||||
{
|
||||
antConfig->rfAntiAttn[ii] = 0;
|
||||
}
|
||||
|
||||
antConfig->antControl.antMode = ANT_MODE_RX_NORMAL;
|
||||
antConfig->antControl.antRx1En = ANT_DISABLE;
|
||||
antConfig->antControl.antRx2En = ANT_DISABLE;
|
||||
antConfig->antControl.antRx3En = ANT_DISABLE;
|
||||
antConfig->antControl.antTx1En = ANT_DISABLE;
|
||||
antConfig->antControl.antTx2En = ANT_DISABLE;
|
||||
antConfig->antControl.antTx3En = ANT_DISABLE;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
* @brief Set tx antenna index
|
||||
*
|
||||
* @param instPtr pointer to physical layer instance
|
||||
* @param antTxIndex target tx antenna index
|
||||
*
|
||||
* @return None.
|
||||
*
|
||||
******************************************************************************/
|
||||
void Phy_SetTxAntIndex(PHY_INST *instPtr, PHY_ANT_INDEX antIndex)
|
||||
{
|
||||
ASSERT(instPtr != NULL);
|
||||
|
||||
switch (antIndex)
|
||||
{
|
||||
case PHY_ANT_INDEX_1:
|
||||
instPtr->antConfig.antControl.antTx1En = ANT_ENABLE;
|
||||
instPtr->antConfig.antControl.antTx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antTx3En = ANT_DISABLE;
|
||||
break;
|
||||
case PHY_ANT_INDEX_2:
|
||||
instPtr->antConfig.antControl.antTx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antTx2En = ANT_ENABLE;
|
||||
instPtr->antConfig.antControl.antTx3En = ANT_DISABLE;
|
||||
break;
|
||||
case PHY_ANT_INDEX_3:
|
||||
instPtr->antConfig.antControl.antTx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antTx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antTx3En = ANT_ENABLE;
|
||||
break;
|
||||
default:
|
||||
instPtr->antConfig.antControl.antTx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antTx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antTx3En = ANT_DISABLE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
* @brief Set rx antenna index
|
||||
*
|
||||
* @param instPtr pointer to physical layer instance
|
||||
* @param antRxIndex target rx antenna index
|
||||
*
|
||||
* @return None.
|
||||
*
|
||||
******************************************************************************/
|
||||
void Phy_SetRxAntIndex(PHY_INST *instPtr, PHY_ANT_INDEX antRxIndex)
|
||||
{
|
||||
ASSERT(instPtr != NULL);
|
||||
|
||||
if (instPtr->antConfig.antControl.antMode == ANT_MODE_RX_AJ)
|
||||
{
|
||||
switch (antRxIndex)
|
||||
{
|
||||
case PHY_ANT_INDEX_1:
|
||||
instPtr->antConfig.antControl.antRx1En = ANT_ENABLE;
|
||||
instPtr->antConfig.antControl.antRx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx3En = ANT_DISABLE;
|
||||
break;
|
||||
case PHY_ANT_INDEX_2:
|
||||
instPtr->antConfig.antControl.antRx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx2En = ANT_ENABLE;
|
||||
instPtr->antConfig.antControl.antRx3En = ANT_DISABLE;
|
||||
break;
|
||||
case PHY_ANT_INDEX_3:
|
||||
instPtr->antConfig.antControl.antRx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx3En = ANT_ENABLE;
|
||||
break;
|
||||
default:
|
||||
instPtr->antConfig.antControl.antRx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx3En = ANT_DISABLE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
instPtr->antConfig.antControl.antRx1En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx2En = ANT_DISABLE;
|
||||
instPtr->antConfig.antControl.antRx3En = ANT_DISABLE;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
* @brief Set rx mode to normal or anti-jamming.
|
||||
*
|
||||
* @param instPtr pointer to physical layer instance
|
||||
* @param antRxMode target rx mode
|
||||
*
|
||||
* @return None.
|
||||
*
|
||||
******************************************************************************/
|
||||
void Phy_SetRxMode(PHY_INST *instPtr, PHY_ANT_RX_MODE antRxMode)
|
||||
{
|
||||
ASSERT(instPtr != NULL);
|
||||
|
||||
instPtr->antConfig.antControl.antMode = antRxMode;
|
||||
// Sync logs to system monitor
|
||||
SysMonitor_UpdatePhysicalLayerLog(&(instPtr->phyLog));
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**
|
||||
* @brief Update antenna index of the next slot.
|
||||
*
|
||||
* @param instPtr pointer to physical layer instance
|
||||
* @param AntIndex antenna index
|
||||
*
|
||||
* @return SUCCESS.
|
||||
* EPARAM - antenna index exceeds predefined range
|
||||
*
|
||||
******************************************************************************/
|
||||
int32_t Phy_SetAntIndex(PHY_INST *instPtr, PHY_ANT_INDEX antIndex)
|
||||
{
|
||||
ASSERT(instPtr != NULL);
|
||||
|
||||
if (antIndex < 0 || antIndex >= L1_ANT_NUM)
|
||||
{
|
||||
DBG_ERROR("Antenna index out of range: %" PRIu8 ". \n", antIndex);
|
||||
return EPARAM;
|
||||
}
|
||||
DBG_INFO("Set new antenna index: %" PRId8 "\n", antIndex);
|
||||
instPtr->antIndex.next = antIndex;
|
||||
Phy_SetTxAntIndex(instPtr, antIndex);
|
||||
Phy_SetRxAntIndex(instPtr, antIndex);
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get antenna index of the next slot.
|
||||
*/
|
||||
inline size_t Phy_GetNextAntIndex(PHY_INST *instPtr)
|
||||
{
|
||||
ASSERT(instPtr != NULL);
|
||||
return instPtr->antIndex.next;
|
||||
}
|
||||
|
||||
/** @} PhysicalLayer_AntennaControl*/
|
||||
|
||||
/** @} PhysicalLayer*/
|
||||
Reference in New Issue
Block a user