The system uses a SAMD51 ARM processor with an Atmel Start based project. Start says 8.23 but the headers say FreeRTOS V9.0.0rc2. The project uses UARTs (one debug port and one data port) on Sierra Wireless HL series modems. The modems will typically be CAT M1. It was intended to use AT commands to post HTTP JSON packet; however, the released M1 modems do not have an IP stack.
The main app will poll the modem and determine if IP stack is available. If so, it will use the built-in stack. If not, it will use PPP shadow functions.
If the stack supports Berkeley Sockets or similar, that is ideal. At the very least, we need the connection functions encapsulated. We would also like an HTTP task, as described below.
C function to initiate PPP connection
Contractor to specify arguments required. A minimum will be the Queue Handle to which responses are posted, qhResponseQueueHandle.
Function returns a queue handle to which main program posts requests. A null handle signifies a failure.
If the function is called and PPP is already initialized, the connection is closed and reopened.