@@ -44,34 +44,34 @@ SPDX-License-Identifier: BSD-3-Clause
44
44
#ifdef MBED_CONF_LORA_PHY
45
45
#if MBED_CONF_LORA_PHY == 0
46
46
#include " lorawan/lorastack/phy/LoRaPHYEU868.h"
47
- static LoRaPHYEU868 lora_phy;
47
+ static SingletonPtr< LoRaPHYEU868> lora_phy;
48
48
#elif MBED_CONF_LORA_PHY == 1
49
49
#include " lorawan/lorastack/phy/LoRaPHYAS923.h"
50
- static LoRaPHYAS923 lora_phy;
50
+ static SingletonPtr< LoRaPHYAS923> lora_phy;
51
51
#elif MBED_CONF_LORA_PHY == 2
52
52
#include " lorawan/lorastack/phy/LoRaPHYAU915.h"
53
- static LoRaPHYAU915 lora_phy;
53
+ static SingletonPtr< LoRaPHYAU915> lora_phy;
54
54
#elif MBED_CONF_LORA_PHY == 3
55
55
#include " lorawan/lorastack/phy/LoRaPHYCN470.h"
56
- static LoRaPHYCN470 lora_phy;
56
+ static SingletonPtr< LoRaPHYCN470> lora_phy;
57
57
#elif MBED_CONF_LORA_PHY == 4
58
58
#include " lorawan/lorastack/phy/LoRaPHYCN779.h"
59
- static LoRaPHYCN779 lora_phy;
59
+ static SingletonPtr< LoRaPHYCN779> lora_phy;
60
60
#elif MBED_CONF_LORA_PHY == 5
61
61
#include " lorawan/lorastack/phy/LoRaPHYEU433.h"
62
- static LoRaPHYEU433 lora_phy;
62
+ static SingletonPtr< LoRaPHYEU433> lora_phy;
63
63
#elif MBED_CONF_LORA_PHY == 6
64
64
#include " lorawan/lorastack/phy/LoRaPHYIN865.h"
65
- static LoRaPHYIN865 lora_phy;
65
+ static SingletonPtr< LoRaPHYIN865> lora_phy;
66
66
#elif MBED_CONF_LORA_PHY == 7
67
67
#include " lorawan/lorastack/phy/LoRaPHYKR920.h"
68
- static LoRaPHYKR920 lora_phy;
68
+ static SingletonPtr< LoRaPHYKR920> lora_phy;
69
69
#elif MBED_CONF_LORA_PHY == 8
70
70
#include " lorawan/lorastack/phy/LoRaPHYUS915.h"
71
- static LoRaPHYUS915 lora_phy;
71
+ static SingletonPtr< LoRaPHYUS915> lora_phy;
72
72
#elif MBED_CONF_LORA_PHY == 9
73
73
#include " lorawan/lorastack/phy/LoRaPHYUS915Hybrid.h"
74
- static LoRaPHYUS915Hybrid lora_phy;
74
+ static SingletonPtr< LoRaPHYUS915Hybrid> lora_phy;
75
75
#endif // MBED_CONF_LORA_PHY == VALUE
76
76
#else
77
77
#error "Must set LoRa PHY layer parameters."
@@ -170,9 +170,10 @@ radio_events_t *LoRaWANStack::bind_radio_driver(LoRaRadio& radio)
170
170
// Store pointer to callback routines inside MAC layer (non-IRQ safe)
171
171
_mac_handlers = GetPhyEventHandlers ();
172
172
// passes the reference to radio driver down to PHY layer
173
- lora_phy.set_radio_instance (radio);
173
+ lora_phy.get ()-> set_radio_instance (radio);
174
174
return _mac_handlers;
175
175
}
176
+
176
177
lora_mac_status_t LoRaWANStack::initialize_mac_layer (EventQueue *queue)
177
178
{
178
179
if (DEVICE_STATE_NOT_INITIALIZED != _device_current_state)
@@ -203,7 +204,7 @@ lora_mac_status_t LoRaWANStack::initialize_mac_layer(EventQueue *queue)
203
204
LoRaMacPrimitives.MacMcpsConfirm = callback (this , &LoRaWANStack::mcps_confirm);
204
205
LoRaMacPrimitives.MacMcpsIndication = callback (this , &LoRaWANStack::mcps_indication);
205
206
LoRaMacPrimitives.MacMlmeConfirm = callback (this , &LoRaWANStack::mlme_confirm);
206
- LoRaMacInitialization (&LoRaMacPrimitives, &LoRaMacCallbacks, & lora_phy, queue);
207
+ LoRaMacInitialization (&LoRaMacPrimitives, &LoRaMacCallbacks, lora_phy. get () , queue);
207
208
208
209
mib_req.type = LORA_MIB_ADR;
209
210
mib_req.param .adr_enable = LORAWAN_ADR_ON;
@@ -336,7 +337,7 @@ lora_mac_status_t LoRaWANStack::send_frame_to_mac()
336
337
GetPhyParams_t phy_params;
337
338
PhyParam_t default_datarate;
338
339
phy_params.Attribute = PHY_DEF_TX_DR;
339
- default_datarate = lora_phy.get_phy_params (&phy_params);
340
+ default_datarate = lora_phy.get ()-> get_phy_params (&phy_params);
340
341
341
342
mcps_req.type = _tx_msg.type ;
342
343
@@ -484,7 +485,7 @@ lora_mac_status_t LoRaWANStack::add_channels(const lora_channelplan_t &channel_p
484
485
485
486
// Check first how many channels the selected PHY layer supports
486
487
get_phy.Attribute = PHY_MAX_NB_CHANNELS;
487
- phy_param = lora_phy.get_phy_params (&get_phy);
488
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
488
489
max_num_channels = (uint8_t ) phy_param.Value ;
489
490
490
491
// check if user is setting more channels than supported
@@ -528,17 +529,17 @@ lora_mac_status_t LoRaWANStack::drop_channel_list()
528
529
529
530
// Check first how many channels the selected PHY layer supports
530
531
get_phy.Attribute = PHY_MAX_NB_CHANNELS;
531
- phy_param = lora_phy.get_phy_params (&get_phy);
532
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
532
533
max_num_channels = (uint8_t ) phy_param.Value ;
533
534
534
535
// Now check the channel mask for enabled channels
535
536
get_phy.Attribute = PHY_CHANNELS_MASK;
536
- phy_param = lora_phy.get_phy_params (&get_phy);
537
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
537
538
channel_masks = phy_param.ChannelsMask ;
538
539
539
540
// Now check the channel mask for default channels
540
541
get_phy.Attribute = PHY_CHANNELS_DEFAULT_MASK;
541
- phy_param = lora_phy.get_phy_params (&get_phy);
542
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
542
543
default_channel_masks = phy_param.ChannelsMask ;
543
544
544
545
for (uint8_t i = 0 ; i < max_num_channels; i++) {
@@ -577,7 +578,7 @@ lora_mac_status_t LoRaWANStack::remove_a_channel(uint8_t channel_id)
577
578
578
579
// Check first how many channels the selected PHY layer supports
579
580
get_phy.Attribute = PHY_MAX_NB_CHANNELS;
580
- phy_param = lora_phy.get_phy_params (&get_phy);
581
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
581
582
max_num_channels = (uint8_t ) phy_param.Value ;
582
583
583
584
// According to specification channel IDs start from 0 and last valid
@@ -589,7 +590,7 @@ lora_mac_status_t LoRaWANStack::remove_a_channel(uint8_t channel_id)
589
590
590
591
// Now check the Default channel mask
591
592
get_phy.Attribute = PHY_CHANNELS_DEFAULT_MASK;
592
- phy_param = lora_phy.get_phy_params (&get_phy);
593
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
593
594
channel_masks = phy_param.ChannelsMask ;
594
595
595
596
// check if the channel ID give belongs to a default channel
@@ -624,12 +625,12 @@ lora_mac_status_t LoRaWANStack::get_enabled_channels(lora_channelplan_t& channel
624
625
625
626
// Check first how many channels the selected PHY layer supports
626
627
get_phy.Attribute = PHY_MAX_NB_CHANNELS;
627
- phy_param = lora_phy.get_phy_params (&get_phy);
628
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
628
629
max_num_channels = (uint8_t ) phy_param.Value ;
629
630
630
631
// Now check the Default channel mask
631
632
get_phy.Attribute = PHY_CHANNELS_MASK;
632
- phy_param = lora_phy.get_phy_params (&get_phy);
633
+ phy_param = lora_phy.get ()-> get_phy_params (&get_phy);
633
634
channel_masks = phy_param.ChannelsMask ;
634
635
635
636
// Request Mib to get channels
0 commit comments