Skip to content
This repository has been archived by the owner on Nov 11, 2024. It is now read-only.

Commit

Permalink
Documentation change only: better documentation of LENA-R8 limitations.
Browse files Browse the repository at this point in the history
  • Loading branch information
RobMeades committed Jun 12, 2024
1 parent bc4ebd3 commit ba0a0f1
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 3 deletions.
12 changes: 12 additions & 0 deletions cell/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,18 @@ This API relies upon the [common/at_client](/common/at_client) component to send

The operation of `ubxlib` does not rely on a particular FW version of the cellular module; the module FW versions that we test with are listed in the [test](test) directory.

# LENA-R8 Limitations
Note that support for LENA-R8 has the following limitations:

- LENA-R8001M10 does not support access to the internal GNSS chip via CMUX; the older `AT+UGUBX` message interface must be used and streamed position cannot be supported this way. If you require streamed position, please either:
- access the internal GNSS chip over either the USB interface instead (i.e. call `uCellCfgSetGnssProfile()` with the bit `U_CELL_CFG_GNSS_PROFILE_USB_AUX_UART` set, connect your MCU also to the USB interface of LENA-R8 and open the `ubxlib` GNSS device, separately, on that USB port), or
- connected a separate UART from your MCU to the dedicated `TXD_GNSS`/`RXD_GNSS` pins provided by the LENA-R8001M10 module (baud rate 38400) and open the built-in GNSS chip as an entirely separate GNSS device, not under the control of the cellular part of the LENA-R8001M10 module.
- LENA-R8 does not support HTTP properly, hence HTTP support is disabled for LENA-R8.
- LENA-R8 does not support security on an MQTTSN connection.
- LENA-R8 does not support reading any of the LTE-related RF parameters (RSRP, RSRQ, EARFCN or physical cell ID), just the 2G-related RF parameters (RSSI, CSQ and logical cell ID, though not ARFCN).
- LENA-R8 does not support reading the DNS address set by the network or the APN currently in use.
- LENA-R8 does not support use of a PPP connection on the same PDP context as the on-board IP/MQTT/HTTP clients; this _should_ not be an issue, see the PPP section below for more details.

# Usage
The [api](api) directory contains the files that define the cellular APIs, each API function documented in its header file. In the [src](src) directory you will find the implementation of the APIs and in the [test](test) directory the tests for the APIs that can be run on any platform.

Expand Down
6 changes: 6 additions & 0 deletions cell/api/u_cell_http.h
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,8 @@ void uCellHttpPrivateLink(void);
* -------------------------------------------------------------- */

/** Open a cellular HTTP client instance.
*
* Note that HTTP operation is NOT supported on LENA-R8.
*
* @param cellHandle the handle of the cellular instance to
* be used.
Expand Down Expand Up @@ -240,6 +242,8 @@ bool uCellHttpIsSecured(uDeviceHandle_t cellHandle, int32_t httpHandle,
* IMPORTANT: you MUST wait for pCallback to be called before issuing your next
* HTTP request.
*
* Note that HTTP operation is NOT supported on LENA-R8.
*
* This function is thread-safe provided the caller choses a response file name
* that does not clash with calls made from other threads (or uses the automatic
* option).
Expand Down Expand Up @@ -291,6 +295,8 @@ int32_t uCellHttpRequest(uDeviceHandle_t cellHandle, int32_t httpHandle,
* IMPORTANT: you MUST wait for pCallback to be called before issuing your next
* HTTP request.
*
* Note that HTTP operation is NOT supported on LENA-R8.
*
* This function is thread-safe provided the caller choses file names
* that do not clash with calls made from other threads (or uses the
* automatic option).
Expand Down
15 changes: 15 additions & 0 deletions common/http_client/api/u_http_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,9 @@ typedef struct {
* you will lose all settings and must call uHttpClientClose() followed
* by pUHttpClientOpen() to put them back again.
*
* Note that HTTP operation is NOT supported on the LENA-R8 cellular
* module.
*
* When this function is first called it will allocate a mutex which
* is never subsequently free()ed in order to ensure thread safety.
*
Expand Down Expand Up @@ -370,6 +373,9 @@ void uHttpClientClose(uHttpClientContext_t *pContext);
*
* Only one HTTP request, of any kind, may be outstanding at a time.
*
* Note that HTTP operation is NOT supported on the LENA-R8 cellular
* module.
*
* If you are going to perform large PUT requests (e.g. more than 1024
* bytes) then you should ensure that you have flow control on the interface
* to the module or you might experience data loss. If you do not have
Expand Down Expand Up @@ -444,6 +450,9 @@ int32_t uHttpClientPutRequestChunked(uHttpClientContext_t *pContext,
* IMPORTANT: see warning below about the validity of the pResponseBody and
* pResponseContentType pointers.
*
* Note that HTTP operation is NOT supported on the LENA-R8 cellular
* module.
*
* If you are going to perform large POST requests (e.g. more than 1024
* bytes) then you should ensure that you have flow control on the interface
* to the module or you might experience data loss. If you do not have
Expand Down Expand Up @@ -567,6 +576,9 @@ int32_t uHttpClientPostRequestChunked(uHttpClientContext_t *pContext,
* IMPORTANT: see warning below about the validity of the pResponseBody and
* pContentType pointers.
*
* Note that HTTP operation is NOT supported on the LENA-R8 cellular
* module.
*
* Multi-part content is not handled here: should you wish to handle such
* content you will need to do the re-assembly yourself.
*
Expand Down Expand Up @@ -661,6 +673,9 @@ int32_t uHttpClientGetRequestChunked(uHttpClientContext_t *pContext,
*
* IMPORTANT: see warning below about the validity of the pResponseHead pointer.
*
* Note that HTTP operation is NOT supported on the LENA-R8 cellular
* module.
*
* @param[in] pContext a pointer to the internal HTTP context
* structure that was originally returned by
* pUHttpClientOpen().
Expand Down
2 changes: 1 addition & 1 deletion example/http_client/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Introduction
This example shows how to use the [common/http_client](/common/http_client) API.
This example shows how to use the [common/http_client](/common/http_client) API. Note that HTTP operation is NOT supported on the LENA-R8 cellular module.

# Usage
To build and run this example on a supported platform you need to travel down into the [port/platform](/port/platform)`/<platform>/mcu/<mcu>` directory of your choice and find the `runner` build. The instructions there will tell you how to set/override \#defines. The following \#defines are relevant:
Expand Down
6 changes: 4 additions & 2 deletions example/http_client/http_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ const char *gpMyData = "Hello world!";

// Below is the module configuration
// When U_CFG_TEST_CELL_MODULE_TYPE is set this example will setup a
// cellular link using uNetworkCfgCell_t.
// cellular link using uNetworkCfgCell_t. Note that HTTP operation
// is NOT supported on the LENA-R8 cellular module.

// When U_CFG_TEST_SHORT_RANGE_MODULE_TYPE is set this example will
// instead use uNetworkCfgWifi_t config to setup a Wifi connection.

Expand Down Expand Up @@ -138,7 +140,7 @@ static const uDeviceCfg_t gDeviceCfg = {
.deviceType = U_DEVICE_TYPE_CELL,
.deviceCfg = {
.cfgCell = {
.moduleType = U_CFG_TEST_CELL_MODULE_TYPE,
.moduleType = U_CFG_TEST_CELL_MODULE_TYPE, // Note: LENA-R8 not supported
.pSimPinCode = NULL, /* SIM pin */
.pinEnablePower = U_CFG_APP_PIN_CELL_ENABLE_POWER,
.pinPwrOn = U_CFG_APP_PIN_CELL_PWR_ON,
Expand Down

0 comments on commit ba0a0f1

Please sign in to comment.