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
* Update cellular library to MIT license
* Remove modules in cellular interface repo.
* Update README.
* Provide modules' repositories for reference implementations.
* Update doxygen files.
* Update HL7802 link in README.
* Fix spelling.
* Align introduction.
* Remove Lab- prefix at url links
* Update README.
* Create Community-Supported-Ports
Merged conflict.
* Handle undefined message when sending AT command (#110)
* Update pktio to handle undefined message when sending AT command
* Undefined message handler is moved to pkthandler
* Use PktRespMutex in pktio thread to keep data consistency
* Add test cases to cover the undefined message handle flow
* Update ATE0 handling in SARA R4 and HL7802. ATE0 may still echo back ATE0. Change the AT command type to CELLULAR_AT_WO_PREFIX
* Reset the AT command type before calling callback (#113)
* Reset the AT command type before calling pkthandler callback
* Remove thirdparty folder.
* Remove modules folder.
* Update README doc for integrating library with cellular modems.
* Remove Transport interface part in README.
* Convert PNG to SVG.
Co-authored-by: Ching-Hsin Lee <chinglee@amazon.com>
Co-authored-by: chinglee-iot <61685396+chinglee-iot@users.noreply.github.com>
The FreeRTOS Cellular Interface exposes the capability of a few popular cellular modems through a uniform API. Currently, this repository contains libraries for these three cellular modems.
The current version of the FreeRTOS Cellular Interface encapsulates the TCP stack offered by those cellular modems. They all implement the same uniform [Cellular Library API](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source/include/cellular_api.h). That API hides the complexity of AT commands, and exposes a socket-like interface to C programmers.
23
-
24
-
Even though applications can choose to use the FreeRTOS Cellular Interface API directly, the API is not designed for such a purpose. In a typical FreeRTOS system, applications use high level libraries, such as the [coreMQTT](https://github.com/FreeRTOS/coreMQTT) library and the [coreHTTP](https://github.com/FreeRTOS/coreHTTP) library, to communicate with other end points. Those high level libraries use an abstract interface, the [Transport Interface](https://github.com/FreeRTOS/coreMQTT/blob/main/source/interface/transport_interface.h), to send and receive data. A Transport Interface can be implemented on top of the FreeRTOS Cellular Interface.
17
+
The Cellular Interface library implement a simple unified [Application Programing Interfaces (APIs)](https://www.freertos.org/Documentation/api-ref/cellular/index.html) that hide the complexity of AT commands. The cellular modems to be interchangeable with the popular options built upon TCP stack and exposes a socket-like interface to C programmers.
25
18
26
19
Most cellular modems implement more or less the AT commands defined by the [3GPP TS v27.007](https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1515) standard. This project provides an implementation of such standard AT commands in a [reusable common component](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source/include/common). The three Cellular libraries in this project all take advantage of that common code. The library for each modem only implements the vendor-specific AT commands, then exposes the complete Cellular API.
* source : reusable common code that implements the standard AT commands defined by 3GPP TS v27.007.
54
-
* modules : vendor-specific code that implements non-3GPP AT commands for each cellular modem.
55
47
* docs : documentations.
56
48
* test : unit test and cbmc.
57
49
* tools : tools for Coverity static analysis and CMock.
58
50
59
-
## Integrate FreeRTOS Cellular Interface with MCU platforms
51
+
## Implement Comm Interface with MCU platforms
60
52
61
53
The FreeRTOS Cellular Interface runs on MCUs. It uses an abstracted interface - the [Comm Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source/interface/cellular_comm_interface.h), to communicate with cellular modems. A Comm Interface must be implemented as well on the MCU platform. The most common implementations of the Comm Interface are over UART hardware, but it can be implemented over other physical interfaces such as SPI as well. The documentation of the Comm Interface is found within the [Cellular API References](https://www.freertos.org/Documentation/api-ref/cellular/cellular_porting.html#cellular_porting_comm_if). These are example implementations of the Comm Interface:
62
54
@@ -71,7 +63,7 @@ The FreeRTOS Cellular Interface uses kernel APIs for task synchronization and me
71
63
72
64
FreeRTOS Cellular Interface now supports AT commands, TCP offloaded Cellular abstraction Layer. In order to add support for a new cellular modem, the developer can use the [common component](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source/include/common) that has already implemented the 3GPP standard AT commands.
73
65
74
-
In order to port the [common component](https://www.freertos.org/Documentation/api-ref/cellular_common/index.html):
66
+
In order to port the [common component](https://www.freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html):
75
67
76
68
1. Implement the cellular modem porting interface defined in [cellular_common_portable.h](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface/tree/main/source/include/common/cellular_common_portable.h) ([Document](https://www.freertos.org/Documentation/api-ref/cellular/cellular__common__portable_8h.html)).
77
69
2. Implement the subset of Cellular Library APIs that use vendor-specific (non-3GPP) AT commands. The APIs to be implemented are the ones not marked with an "o" in [this table](https://www.freertos.org/Documentation/api-ref/cellular/cellular_common__a_p_is.html).
@@ -82,9 +74,25 @@ It is recommended that you start by cloning the implementation of one of the exi
Follow these steps to integrate FreeRTOS Cellular Interface into your project:
88
+
1. Clone this repository into your project.
89
+
2. Clone one of the refenerce cellular module implementations ( BG96 / HL7802 / SARA-R4 )
90
+
or create your own cellular module implementaion in your project.
91
+
3. Implement comm interface.
92
+
4. Build these software components with your application and execute.
93
+
94
+
We also provide [Demos for FreeRTOS-Cellular-Interface on Windows simulator](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator)
95
+
as references for these three cellular modems example implementations.
| [Ublox SARA R4 series](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface-Reference-ublox-SARA-R4) |
24
25
New cellular module can reference these module porting to be integrated into FreeRTOS Cellular Library.<br>
25
-
Please reference cellular common library document for detail information about porting new cellular module.
26
+
Please reference [Porting module Guide](https://www.freertos.org/Documentation/api-ref/cellular/cellular_porting_module_guide.html) document for detail information about porting new cellular module.
26
27
- <b>Currently Supported Features in FreeRTOS Cellular Library</b>
27
28
- User of FreeRTOS Cellular Library is able to use Cat-M1 cellular technology to connect to network.
28
29
- User of FreeRTOS Cellular Library is able to perform control plane operations like (initialize modem, register on a network etc.) in a vendor agnostic way.
0 commit comments