LoRaMacStatus_t LoRaMacMibGetRequestConfirm()

in net/lora/node/src/mac/LoRaMac.c [2612:2731]


LoRaMacStatus_t LoRaMacMibGetRequestConfirm( MibRequestConfirm_t *mibGet )
{
    LoRaMacStatus_t status = LORAMAC_STATUS_OK;
    GetPhyParams_t getPhy;
    PhyParam_t phyParam;

    if (mibGet == NULL) {
        return LORAMAC_STATUS_PARAMETER_INVALID;
    }

    switch (mibGet->Type) {
        case MIB_DEVICE_CLASS:
            mibGet->Param.Class = LoRaMacDeviceClass;
            break;
        case MIB_NETWORK_JOINED:
            mibGet->Param.IsNetworkJoined = LM_F_IS_JOINED();
            break;
        case MIB_ADR:
            mibGet->Param.AdrEnable = AdrCtrlOn;
            break;
        case MIB_NET_ID:
            mibGet->Param.NetID = g_lora_mac_data.netid;
            break;
        case MIB_DEV_ADDR:
            mibGet->Param.DevAddr = g_lora_mac_data.dev_addr;
            break;
        case MIB_NWK_SKEY:
            mibGet->Param.NwkSKey = LoRaMacNwkSKey;
            break;
        case MIB_APP_SKEY:
            mibGet->Param.AppSKey = LoRaMacAppSKey;
            break;
        case MIB_PUBLIC_NETWORK:
            mibGet->Param.EnablePublicNetwork = (bool)LM_F_IS_PUBLIC_NWK();
            break;
        case MIB_REPEATER_SUPPORT:
            mibGet->Param.EnableRepeaterSupport = LM_F_REPEATER_SUPP();
            break;
        case MIB_CHANNELS:
            getPhy.Attribute = PHY_CHANNELS;
            phyParam = RegionGetPhyParam( LoRaMacRegion, &getPhy );

            mibGet->Param.ChannelList = phyParam.Channels;
            break;
        case MIB_RX2_CHANNEL:
            mibGet->Param.Rx2Channel = LoRaMacParams.Rx2Channel;
            break;
        case MIB_RX2_DEFAULT_CHANNEL:
            mibGet->Param.Rx2Channel = LoRaMacParamsDefaults.Rx2Channel;
            break;
        case MIB_CHANNELS_DEFAULT_MASK:
            getPhy.Attribute = PHY_CHANNELS_DEFAULT_MASK;
            phyParam = RegionGetPhyParam( LoRaMacRegion, &getPhy );

            mibGet->Param.ChannelsDefaultMask = phyParam.ChannelsMask;
            break;
        case MIB_CHANNELS_MASK:
            getPhy.Attribute = PHY_CHANNELS_MASK;
            phyParam = RegionGetPhyParam( LoRaMacRegion, &getPhy );

            mibGet->Param.ChannelsMask = phyParam.ChannelsMask;
            break;
        case MIB_CHANNELS_NB_REP:
            mibGet->Param.ChannelNbRep = LoRaMacParams.ChannelsNbRep;
            break;
        case MIB_MAX_RX_WINDOW_DURATION:
            mibGet->Param.MaxRxWindow = LoRaMacParams.MaxRxWindow;
            break;
        case MIB_RECEIVE_DELAY_1:
            mibGet->Param.ReceiveDelay1 = LoRaMacParams.ReceiveDelay1;
            break;
        case MIB_RECEIVE_DELAY_2:
            mibGet->Param.ReceiveDelay2 = LoRaMacParams.ReceiveDelay2;
            break;
        case MIB_JOIN_ACCEPT_DELAY_1:
            mibGet->Param.JoinAcceptDelay1 = LoRaMacParams.JoinAcceptDelay1;
            break;
        case MIB_JOIN_ACCEPT_DELAY_2:
            mibGet->Param.JoinAcceptDelay2 = LoRaMacParams.JoinAcceptDelay2;
            break;
        case MIB_CHANNELS_DEFAULT_DATARATE:
            mibGet->Param.ChannelsDefaultDatarate = LoRaMacParamsDefaults.ChannelsDatarate;
            break;
        case MIB_CHANNELS_DATARATE:
            mibGet->Param.ChannelsDatarate = LoRaMacParams.ChannelsDatarate;
            break;
        case MIB_CHANNELS_DEFAULT_TX_POWER:
            mibGet->Param.ChannelsDefaultTxPower = LoRaMacParamsDefaults.ChannelsTxPower;
            break;
        case MIB_CHANNELS_TX_POWER:
            mibGet->Param.ChannelsTxPower = LoRaMacParams.ChannelsTxPower;
            break;
        case MIB_UPLINK_COUNTER:
            mibGet->Param.UpLinkCounter = g_lora_mac_data.uplink_cntr;
            break;
        case MIB_DOWNLINK_COUNTER:
            mibGet->Param.DownLinkCounter = g_lora_mac_data.downlink_cntr;
            break;
        case MIB_MULTICAST_CHANNEL:
            mibGet->Param.MulticastList = MulticastChannels;
            break;
        case MIB_SYSTEM_MAX_RX_ERROR:
            mibGet->Param.SystemMaxRxError = LoRaMacParams.SystemMaxRxError;
            break;
        case MIB_MIN_RX_SYMBOLS:
            mibGet->Param.MinRxSymbols = LoRaMacParams.MinRxSymbols;
            break;
        case MIB_ANTENNA_GAIN:
            mibGet->Param.AntennaGain = LoRaMacParams.AntennaGain;
            break;
        case MIB_DEFAULT_ANTENNA_GAIN:
            mibGet->Param.DefaultAntennaGain = LoRaMacParamsDefaults.AntennaGain;
            break;
        default:
            status = LORAMAC_STATUS_SERVICE_UNKNOWN;
            break;
    }

    return status;
}