@@ -1225,6 +1225,8 @@ lorawan_status_t LoRaMac::ScheduleTx( void )
1225
1225
{
1226
1226
lorawan_time_t dutyCycleTimeOff = 0 ;
1227
1227
NextChanParams_t nextChan;
1228
+ GetPhyParams_t getPhy;
1229
+ PhyParam_t phyParam;
1228
1230
1229
1231
// Check if the device is off
1230
1232
if ( _params.sys_params .max_duty_cycle == 255 )
@@ -1251,7 +1253,9 @@ lorawan_status_t LoRaMac::ScheduleTx( void )
1251
1253
&_params.timers .aggregated_timeoff ) == false )
1252
1254
{
1253
1255
// Set the default datarate
1254
- _params.sys_params .channel_data_rate = _params.def_sys_params .channel_data_rate ;
1256
+ getPhy.Attribute = PHY_DEF_TX_DR;
1257
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1258
+ _params.sys_params .channel_data_rate = phyParam.Value ;
1255
1259
// Update datarate in the function parameters
1256
1260
nextChan.Datarate = _params.sys_params .channel_data_rate ;
1257
1261
}
@@ -1330,6 +1334,9 @@ void LoRaMac::CalculateBackOff( uint8_t channel )
1330
1334
1331
1335
void LoRaMac::ResetMacParameters ( void )
1332
1336
{
1337
+ GetPhyParams_t getPhy;
1338
+ PhyParam_t phyParam;
1339
+
1333
1340
_params.is_nwk_joined = false ;
1334
1341
1335
1342
// Counters
@@ -1352,14 +1359,37 @@ void LoRaMac::ResetMacParameters( void )
1352
1359
1353
1360
_params.is_rx_window_enabled = true ;
1354
1361
1355
- _params.sys_params .channel_tx_power = _params.def_sys_params .channel_tx_power ;
1356
- _params.sys_params .channel_data_rate = _params.def_sys_params .channel_data_rate ;
1357
- _params.sys_params .rx1_dr_offset = _params.def_sys_params .rx1_dr_offset ;
1358
- _params.sys_params .rx2_channel = _params.def_sys_params .rx2_channel ;
1359
- _params.sys_params .uplink_dwell_time = _params.def_sys_params .uplink_dwell_time ;
1360
- _params.sys_params .downlink_dwell_time = _params.def_sys_params .downlink_dwell_time ;
1361
- _params.sys_params .max_eirp = _params.def_sys_params .max_eirp ;
1362
- _params.sys_params .antenna_gain = _params.def_sys_params .antenna_gain ;
1362
+ getPhy.Attribute = PHY_DEF_TX_POWER;
1363
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1364
+
1365
+ _params.sys_params .channel_tx_power = phyParam.Value ;
1366
+
1367
+ getPhy.Attribute = PHY_DEF_TX_DR;
1368
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1369
+ _params.sys_params .channel_data_rate = phyParam.Value ;
1370
+
1371
+ getPhy.Attribute = PHY_DEF_DR1_OFFSET;
1372
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1373
+ _params.sys_params .rx1_dr_offset = phyParam.Value ;
1374
+
1375
+ getPhy.Attribute = PHY_DEF_RX2_FREQUENCY;
1376
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1377
+ _params.sys_params .rx2_channel .frequency = phyParam.Value ;
1378
+ getPhy.Attribute = PHY_DEF_RX2_DR;
1379
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1380
+ _params.sys_params .rx2_channel .datarate = phyParam.Value ;
1381
+
1382
+ getPhy.Attribute = PHY_DEF_UPLINK_DWELL_TIME;
1383
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1384
+ _params.sys_params .uplink_dwell_time = phyParam.Value ;
1385
+
1386
+ getPhy.Attribute = PHY_DEF_MAX_EIRP;
1387
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1388
+ _params.sys_params .max_eirp = phyParam.Value ;
1389
+
1390
+ getPhy.Attribute = PHY_DEF_ANTENNA_GAIN;
1391
+ phyParam = lora_phy->get_phy_params ( &getPhy );
1392
+ _params.sys_params .antenna_gain = phyParam.Value ;
1363
1393
1364
1394
_params.is_node_ack_requested = false ;
1365
1395
_params.is_srv_ack_requested = false ;
@@ -1727,75 +1757,66 @@ lorawan_status_t LoRaMac::LoRaMacInitialization(loramac_primitives_t *primitives
1727
1757
1728
1758
getPhy.Attribute = PHY_DEF_TX_POWER;
1729
1759
phyParam = lora_phy->get_phy_params ( &getPhy );
1730
- _params.def_sys_params .channel_tx_power = phyParam.Value ;
1760
+ _params.sys_params .channel_tx_power = phyParam.Value ;
1731
1761
1732
1762
getPhy.Attribute = PHY_DEF_TX_DR;
1733
1763
phyParam = lora_phy->get_phy_params ( &getPhy );
1734
- _params.def_sys_params .channel_data_rate = phyParam.Value ;
1764
+ _params.sys_params .channel_data_rate = phyParam.Value ;
1735
1765
1736
1766
getPhy.Attribute = PHY_MAX_RX_WINDOW;
1737
1767
phyParam = lora_phy->get_phy_params ( &getPhy );
1738
- _params.def_sys_params .max_rx_win_time = phyParam.Value ;
1768
+ _params.sys_params .max_rx_win_time = phyParam.Value ;
1739
1769
1740
1770
getPhy.Attribute = PHY_RECEIVE_DELAY1;
1741
1771
phyParam = lora_phy->get_phy_params ( &getPhy );
1742
- _params.def_sys_params .recv_delay1 = phyParam.Value ;
1772
+ _params.sys_params .recv_delay1 = phyParam.Value ;
1743
1773
1744
1774
getPhy.Attribute = PHY_RECEIVE_DELAY2;
1745
1775
phyParam = lora_phy->get_phy_params ( &getPhy );
1746
- _params.def_sys_params .recv_delay2 = phyParam.Value ;
1776
+ _params.sys_params .recv_delay2 = phyParam.Value ;
1747
1777
1748
1778
getPhy.Attribute = PHY_JOIN_ACCEPT_DELAY1;
1749
1779
phyParam = lora_phy->get_phy_params ( &getPhy );
1750
- _params.def_sys_params .join_accept_delay1 = phyParam.Value ;
1780
+ _params.sys_params .join_accept_delay1 = phyParam.Value ;
1751
1781
1752
1782
getPhy.Attribute = PHY_JOIN_ACCEPT_DELAY2;
1753
1783
phyParam = lora_phy->get_phy_params ( &getPhy );
1754
- _params.def_sys_params .join_accept_delay2 = phyParam.Value ;
1784
+ _params.sys_params .join_accept_delay2 = phyParam.Value ;
1755
1785
1756
1786
getPhy.Attribute = PHY_DEF_DR1_OFFSET;
1757
1787
phyParam = lora_phy->get_phy_params ( &getPhy );
1758
- _params.def_sys_params .rx1_dr_offset = phyParam.Value ;
1788
+ _params.sys_params .rx1_dr_offset = phyParam.Value ;
1759
1789
1760
1790
getPhy.Attribute = PHY_DEF_RX2_FREQUENCY;
1761
1791
phyParam = lora_phy->get_phy_params ( &getPhy );
1762
- _params.def_sys_params .rx2_channel .frequency = phyParam.Value ;
1792
+ _params.sys_params .rx2_channel .frequency = phyParam.Value ;
1763
1793
1764
1794
getPhy.Attribute = PHY_DEF_RX2_DR;
1765
1795
phyParam = lora_phy->get_phy_params ( &getPhy );
1766
- _params.def_sys_params .rx2_channel .datarate = phyParam.Value ;
1796
+ _params.sys_params .rx2_channel .datarate = phyParam.Value ;
1767
1797
1768
1798
getPhy.Attribute = PHY_DEF_UPLINK_DWELL_TIME;
1769
1799
phyParam = lora_phy->get_phy_params ( &getPhy );
1770
- _params.def_sys_params .uplink_dwell_time = phyParam.Value ;
1800
+ _params.sys_params .uplink_dwell_time = phyParam.Value ;
1771
1801
1772
1802
getPhy.Attribute = PHY_DEF_DOWNLINK_DWELL_TIME;
1773
1803
phyParam = lora_phy->get_phy_params ( &getPhy );
1774
- _params.def_sys_params .downlink_dwell_time = phyParam.Value ;
1804
+ _params.sys_params .downlink_dwell_time = phyParam.Value ;
1775
1805
1776
1806
getPhy.Attribute = PHY_DEF_MAX_EIRP;
1777
1807
phyParam = lora_phy->get_phy_params ( &getPhy );
1778
- _params.def_sys_params .max_eirp = phyParam.fValue ;
1808
+ _params.sys_params .max_eirp = phyParam.fValue ;
1779
1809
1780
1810
getPhy.Attribute = PHY_DEF_ANTENNA_GAIN;
1781
1811
phyParam = lora_phy->get_phy_params ( &getPhy );
1782
- _params.def_sys_params .antenna_gain = phyParam.fValue ;
1812
+ _params.sys_params .antenna_gain = phyParam.fValue ;
1783
1813
1784
1814
lora_phy->load_defaults (INIT_TYPE_INIT);
1785
1815
1786
1816
// Init parameters which are not set in function ResetMacParameters
1787
- _params.def_sys_params .retry_num = 1 ;
1788
- _params.def_sys_params .max_sys_rx_error = 10 ;
1789
- _params.def_sys_params .min_rx_symb = 6 ;
1790
-
1791
- _params.sys_params .max_sys_rx_error = _params.def_sys_params .max_sys_rx_error ;
1792
- _params.sys_params .min_rx_symb = _params.def_sys_params .min_rx_symb ;
1793
- _params.sys_params .max_rx_win_time = _params.def_sys_params .max_rx_win_time ;
1794
- _params.sys_params .recv_delay1 = _params.def_sys_params .recv_delay1 ;
1795
- _params.sys_params .recv_delay2 = _params.def_sys_params .recv_delay2 ;
1796
- _params.sys_params .join_accept_delay1 = _params.def_sys_params .join_accept_delay1 ;
1797
- _params.sys_params .join_accept_delay2 = _params.def_sys_params .join_accept_delay2 ;
1798
- _params.sys_params .retry_num = _params.def_sys_params .retry_num ;
1817
+ _params.sys_params .max_sys_rx_error = 10 ;
1818
+ _params.sys_params .min_rx_symb = 6 ;
1819
+ _params.sys_params .retry_num = 1 ;
1799
1820
1800
1821
ResetMacParameters ( );
1801
1822
@@ -1831,8 +1852,8 @@ lorawan_status_t LoRaMac::LoRaMacQueryTxPossible( uint8_t size, loramac_tx_info_
1831
1852
AdrNextParams_t adrNext;
1832
1853
GetPhyParams_t getPhy;
1833
1854
PhyParam_t phyParam;
1834
- int8_t datarate = _params.def_sys_params .channel_data_rate ;
1835
- int8_t txPower = _params.def_sys_params .channel_tx_power ;
1855
+ int8_t datarate = _params.sys_params .channel_data_rate ;
1856
+ int8_t txPower = _params.sys_params .channel_tx_power ;
1836
1857
uint8_t fOptLen = mac_commands.GetLength () + mac_commands.GetRepeatLength ();
1837
1858
1838
1859
if ( txInfo == NULL )
0 commit comments