Skip to content

Commit a8a5ac9

Browse files
author
Hasnain Virk
committed
LoRaWAN porting guide update
LoRaWANBase class has been retired and we need to reflect this in the porting guide.
1 parent 331ca4a commit a8a5ac9

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

docs/images/lora_base.png

-13.8 KB
Binary file not shown.

docs/porting/connectivity/LoRaPortingGuide.md

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ Mbed OS contains a native LoRaWAN stack (inside the Mbed OS tree) augmented with
44

55
The information in this section can be classified in two subsections:
66

7-
- Porting a LoRa RF driver for the Arm Mbed LoRaWAN stack or any other LoRaWAN stack.
8-
- Porting a third party LoRaWAN stack to Mbed OS .
9-
10-
The idea is to achieve universal application portability. In other words, a single application is compatible with the Arm Mbed LoRaWAN stack and any other third party LoRaWAN stack harnessing Arm Mbed OS.
7+
- Porting a LoRa RF driver for the Arm Mbed LoRaWAN stack.
8+
- Device design guide to use Arm Mbed LoRaWAN stack.
119

1210
The whole porting process consists of two key ingredients:
1311

1412
- An implementation of the [LoRaRadio](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_radio.html) class.
15-
- An implementation of the [LoRaWANBase](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_w_a_n_base.html) class.
13+
- Design considerations for utilizing [LoRaWANInterface](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_w_a_n_interface.html) class.
1614

1715
### Porting a LoRa RF driver
1816

@@ -26,19 +24,15 @@ For API use cases, details, explanation and meaning, please see the `LoRaRadio`
2624

2725
[![View code](https://www.mbed.com/embed/?type=library)](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_radio.html)
2826

29-
### Porting a third party LoRaWANStack
27+
### Device design guide for LoRaWAN Stack
3028

31-
The vision driving Arm Mbed OS entails one operating system for myriad IoT technologies encompassing a multitude of devices or platforms. However, it does not limit the user to design something specific or tailored to his or her needs. We designed Arm Mbed LoRaWAN APIs in such a way that a developer can totally replace the native Mbed OS LoRaWAN stack with one of his or her own.
29+
The vision driving Arm Mbed OS entails one operating system for myriad IoT technologies encompassing a multitude of devices or platforms. However, it does not limit the user to design something specific or tailored to his or her needs. It is trivial to derive from `LoRaWANInterface` class and override the APIs provided therein to seamlessly integrate a 3rd party stack, if required.
3230

33-
This subsection discusses how a third party LoRaWAN stack can seamlessly provide services to existing Mbed OS LoRaWAN applications or can reuse applications with minimal effort in terms of code.
31+
This subsection discusses how LoRaWAN stack can be integrated in the devices on the system level.
3432

3533
<span class="notes">**Note:** The way a third party LoRaWAN stack harnesses the powers of Arm Mbed OS, in other words, synchronization methods (if using RTOS), timers, HAL and so on is beyond the scope of this documentation.</span>
3634

37-
The [LoRaWANBase](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_w_a_n_base.html) class is a pure virtual class providing user facing APIs for a LoRaWAN stack.
38-
39-
The native Arm Mbed LoRaWAN stack implements `LoRaWANBase` as [LoRaWANInterface](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_w_a_n_interface.html), which then serves as a network interface for the application. Potentially, any developer or vendor can provide an implementation of `LoRaWANBase`, and that particular implementation would serve as a network interface for the application.
40-
41-
<span class="images">![](https://s3-us-west-2.amazonaws.com/mbed-os-docs-images/lora_base.png)<span>Figure 2. Inheriting from LoRaWANBase to provide portable APIs.</span></span>
35+
The native Arm Mbed LoRaWAN stack provides [LoRaWANInterface](https://os.mbed.com/docs/development/mbed-os-api-doxy/class_lo_ra_w_a_n_interface.html), which serves as a network interface for the application.
4236

4337
There can be many different scenarios when it comes to devices supporting LoRaWAN technology:
4438

@@ -60,11 +54,11 @@ An RF-MCU is an SoC including an MCU and LoRa transceiver on the same silicon pa
6054

6155
**Case 4: Design based on a LoRa modem**
6256

63-
A LoRa modem is a component that contains a stack and RF circuitry as a full package, mostly wired to a host MCU. In this case, if the developer wishes to be compliant with the existing applications, he or she may choose to write an adapter layer, which should be an implementation of `LoRaWANBase` and under the hood it could be AT commands to control the modem.
57+
A LoRa modem is a component that contains a stack and RF circuitry as a full package, mostly wired to a host MCU. In this case, if the developer wishes to be compliant with the existing applications, he or she may choose to write an adapter layer, which under the hood could be AT commands to control the modem.
6458

6559
<span class="images">![](https://s3-us-west-2.amazonaws.com/mbed-os-docs-images/lora_modem.png)<span>Figure 5. Design based on LoRa modem.</span></span>
6660

67-
Please follow the detailed reference of `LoRaWANBase` to understand what these APIs and related data structures mean and why are they designed in this way.
61+
Please follow the detailed reference of `LoRaWANInterface` to understand what these APIs and related data structures mean and why are they designed in this way.
6862

6963
You must implement the `initialize(events::EventQueue *queue)` API. Our design philosophy is that we wish to support the tiniest of devices with very little memory, and an event queue shared between the application and network stack is the best option in terms of memory.
7064

0 commit comments

Comments
 (0)