You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/porting/connectivity/LoRaPortingGuide.md
+9-15Lines changed: 9 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,15 +4,13 @@ Mbed OS contains a native LoRaWAN stack (inside the Mbed OS tree) augmented with
4
4
5
5
The information in this section can be classified in two subsections:
6
6
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.
11
9
12
10
The whole porting process consists of two key ingredients:
13
11
14
12
- 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.
16
14
17
15
### Porting a LoRa RF driver
18
16
@@ -26,19 +24,15 @@ For API use cases, details, explanation and meaning, please see the `LoRaRadio`
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.
32
30
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.
34
32
35
33
<spanclass="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>
36
34
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
-
<spanclass="images"><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.
42
36
43
37
There can be many different scenarios when it comes to devices supporting LoRaWAN technology:
44
38
@@ -60,11 +54,11 @@ An RF-MCU is an SoC including an MCU and LoRa transceiver on the same silicon pa
60
54
61
55
**Case 4: Design based on a LoRa modem**
62
56
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.
64
58
65
59
<spanclass="images"><span>Figure 5. Design based on LoRa modem.</span></span>
66
60
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.
68
62
69
63
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.
0 commit comments