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;
}