Skip to content

Commit 1b82ffe

Browse files
committed
Removed possibility to extend default channels datarate range.
Any modification to the default channels is now refused. Issue(#586)
1 parent b71f767 commit 1b82ffe

File tree

7 files changed

+35
-131
lines changed

7 files changed

+35
-131
lines changed

src/mac/region/RegionAS923.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,11 @@ LoRaMacStatus_t RegionAS923ChannelAdd( ChannelAddParams_t* channelAdd )
976976
bool freqInvalid = false;
977977
uint8_t id = channelAdd->ChannelId;
978978

979+
if( id < AS923_NUMB_DEFAULT_CHANNELS )
980+
{
981+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
982+
}
983+
979984
if( id >= AS923_MAX_NB_CHANNELS )
980985
{
981986
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -995,26 +1000,6 @@ LoRaMacStatus_t RegionAS923ChannelAdd( ChannelAddParams_t* channelAdd )
9951000
drInvalid = true;
9961001
}
9971002

998-
// Default channels don't accept all values
999-
if( id < AS923_NUMB_DEFAULT_CHANNELS )
1000-
{
1001-
// Validate the datarate range for min: must be DR_0
1002-
if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
1003-
{
1004-
drInvalid = true;
1005-
}
1006-
// Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
1007-
if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, AS923_TX_MAX_DATARATE ) == false )
1008-
{
1009-
drInvalid = true;
1010-
}
1011-
// We are not allowed to change the frequency
1012-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
1013-
{
1014-
freqInvalid = true;
1015-
}
1016-
}
1017-
10181003
// Check frequency
10191004
if( freqInvalid == false )
10201005
{

src/mac/region/RegionCN779.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,11 @@ LoRaMacStatus_t RegionCN779ChannelAdd( ChannelAddParams_t* channelAdd )
908908
bool freqInvalid = false;
909909
uint8_t id = channelAdd->ChannelId;
910910

911+
if( id < CN779_NUMB_DEFAULT_CHANNELS )
912+
{
913+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
914+
}
915+
911916
if( id >= CN779_MAX_NB_CHANNELS )
912917
{
913918
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -927,26 +932,6 @@ LoRaMacStatus_t RegionCN779ChannelAdd( ChannelAddParams_t* channelAdd )
927932
drInvalid = true;
928933
}
929934

930-
// Default channels don't accept all values
931-
if( id < CN779_NUMB_DEFAULT_CHANNELS )
932-
{
933-
// Validate the datarate range for min: must be DR_0
934-
if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
935-
{
936-
drInvalid = true;
937-
}
938-
// Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
939-
if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, CN779_TX_MAX_DATARATE ) == false )
940-
{
941-
drInvalid = true;
942-
}
943-
// We are not allowed to change the frequency
944-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
945-
{
946-
freqInvalid = true;
947-
}
948-
}
949-
950935
// Check frequency
951936
if( freqInvalid == false )
952937
{

src/mac/region/RegionEU433.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,11 @@ LoRaMacStatus_t RegionEU433ChannelAdd( ChannelAddParams_t* channelAdd )
908908
bool freqInvalid = false;
909909
uint8_t id = channelAdd->ChannelId;
910910

911+
if( id < EU433_NUMB_DEFAULT_CHANNELS )
912+
{
913+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
914+
}
915+
911916
if( id >= EU433_MAX_NB_CHANNELS )
912917
{
913918
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -927,26 +932,6 @@ LoRaMacStatus_t RegionEU433ChannelAdd( ChannelAddParams_t* channelAdd )
927932
drInvalid = true;
928933
}
929934

930-
// Default channels don't accept all values
931-
if( id < EU433_NUMB_DEFAULT_CHANNELS )
932-
{
933-
// Validate the datarate range for min: must be DR_0
934-
if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
935-
{
936-
drInvalid = true;
937-
}
938-
// Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
939-
if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, EU433_TX_MAX_DATARATE ) == false )
940-
{
941-
drInvalid = true;
942-
}
943-
// We are not allowed to change the frequency
944-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
945-
{
946-
freqInvalid = true;
947-
}
948-
}
949-
950935
// Check frequency
951936
if( freqInvalid == false )
952937
{

src/mac/region/RegionEU868.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,11 @@ LoRaMacStatus_t RegionEU868ChannelAdd( ChannelAddParams_t* channelAdd )
941941
bool freqInvalid = false;
942942
uint8_t id = channelAdd->ChannelId;
943943

944+
if( id < EU868_NUMB_DEFAULT_CHANNELS )
945+
{
946+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
947+
}
948+
944949
if( id >= EU868_MAX_NB_CHANNELS )
945950
{
946951
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -960,26 +965,6 @@ LoRaMacStatus_t RegionEU868ChannelAdd( ChannelAddParams_t* channelAdd )
960965
drInvalid = true;
961966
}
962967

963-
// Default channels don't accept all values
964-
if( id < EU868_NUMB_DEFAULT_CHANNELS )
965-
{
966-
// Validate the datarate range for min: must be DR_0
967-
if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
968-
{
969-
drInvalid = true;
970-
}
971-
// Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
972-
if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, EU868_TX_MAX_DATARATE ) == false )
973-
{
974-
drInvalid = true;
975-
}
976-
// We are not allowed to change the frequency
977-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
978-
{
979-
freqInvalid = true;
980-
}
981-
}
982-
983968
// Check frequency
984969
if( freqInvalid == false )
985970
{

src/mac/region/RegionIN865.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -933,6 +933,11 @@ LoRaMacStatus_t RegionIN865ChannelAdd( ChannelAddParams_t* channelAdd )
933933
bool freqInvalid = false;
934934
uint8_t id = channelAdd->ChannelId;
935935

936+
if( id < IN865_NUMB_DEFAULT_CHANNELS )
937+
{
938+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
939+
}
940+
936941
if( id >= IN865_MAX_NB_CHANNELS )
937942
{
938943
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -952,26 +957,6 @@ LoRaMacStatus_t RegionIN865ChannelAdd( ChannelAddParams_t* channelAdd )
952957
drInvalid = true;
953958
}
954959

955-
// Default channels don't accept all values
956-
if( id < IN865_NUMB_DEFAULT_CHANNELS )
957-
{
958-
// Validate the datarate range for min: must be DR_0
959-
if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
960-
{
961-
drInvalid = true;
962-
}
963-
// Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
964-
if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, IN865_TX_MAX_DATARATE ) == false )
965-
{
966-
drInvalid = true;
967-
}
968-
// We are not allowed to change the frequency
969-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
970-
{
971-
freqInvalid = true;
972-
}
973-
}
974-
975960
// Check frequency
976961
if( freqInvalid == false )
977962
{

src/mac/region/RegionKR920.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,11 @@ LoRaMacStatus_t RegionKR920ChannelAdd( ChannelAddParams_t* channelAdd )
913913
bool freqInvalid = false;
914914
uint8_t id = channelAdd->ChannelId;
915915

916+
if( id < KR920_NUMB_DEFAULT_CHANNELS )
917+
{
918+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
919+
}
920+
916921
if( id >= KR920_MAX_NB_CHANNELS )
917922
{
918923
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -932,17 +937,6 @@ LoRaMacStatus_t RegionKR920ChannelAdd( ChannelAddParams_t* channelAdd )
932937
drInvalid = true;
933938
}
934939

935-
// Default channels don't accept all values
936-
if( id < KR920_NUMB_DEFAULT_CHANNELS )
937-
{
938-
// All datarates are supported
939-
// We are not allowed to change the frequency
940-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
941-
{
942-
freqInvalid = true;
943-
}
944-
}
945-
946940
// Check frequency
947941
if( freqInvalid == false )
948942
{

src/mac/region/RegionRU864.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -894,6 +894,11 @@ LoRaMacStatus_t RegionRU864ChannelAdd( ChannelAddParams_t* channelAdd )
894894
bool freqInvalid = false;
895895
uint8_t id = channelAdd->ChannelId;
896896

897+
if( id < RU864_NUMB_DEFAULT_CHANNELS )
898+
{
899+
return LORAMAC_STATUS_FREQ_AND_DR_INVALID;
900+
}
901+
897902
if( id >= RU864_MAX_NB_CHANNELS )
898903
{
899904
return LORAMAC_STATUS_PARAMETER_INVALID;
@@ -913,26 +918,6 @@ LoRaMacStatus_t RegionRU864ChannelAdd( ChannelAddParams_t* channelAdd )
913918
drInvalid = true;
914919
}
915920

916-
// Default channels don't accept all values
917-
if( id < RU864_NUMB_DEFAULT_CHANNELS )
918-
{
919-
// Validate the datarate range for min: must be DR_0
920-
if( channelAdd->NewChannel->DrRange.Fields.Min > DR_0 )
921-
{
922-
drInvalid = true;
923-
}
924-
// Validate the datarate range for max: must be DR_5 <= Max <= TX_MAX_DATARATE
925-
if( RegionCommonValueInRange( channelAdd->NewChannel->DrRange.Fields.Max, DR_5, RU864_TX_MAX_DATARATE ) == false )
926-
{
927-
drInvalid = true;
928-
}
929-
// We are not allowed to change the frequency
930-
if( channelAdd->NewChannel->Frequency != NvmCtx.Channels[id].Frequency )
931-
{
932-
freqInvalid = true;
933-
}
934-
}
935-
936921
// Check frequency
937922
if( freqInvalid == false )
938923
{

0 commit comments

Comments
 (0)