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.
C function to close PPP connection.
Closing the connection does not end the task or queues. When connection is closed, queued requests are responded to with “ERROR CLOSED PPP”.
C function to connect to a server (“ip address”, uint port, bool TCP_nUDP, char *key);
Returns an error code. Connection state is known to FreeRTOS Task_HTTP_POST. The stack should support a minimum of two outgoing connections. Key is the assess code required for https.
C function to test connection to a server (“ip address”, uint port, bool TCP_nUDP, bool Reconnect);
Function to test the connection state.
This task will block on an incoming command queue. The queue item will have two null terminated strings. The first string is the HTTP header. The task shall append the literal text in the macro, EOF_STRING, to the header and send it. The task will then send the body string.
If the connection state is not SERVER OK the task posts an error state. Error states are, at least, NOT INITIALIZED, NO PPP LINK, NO SERVER SOCKET
On error, the task will post the error code to qhResponseQueueHandle. On success, it will post the response. If the response length exceeds the queue length, it will be truncated. (option is to allocate memory for response and post only the pointer and length to queue, but I would rather avoid memory leaks).
Hello, thank you for the opportunity to bid on your project! I have implemented a FreeRTOS-compatible IP (including) PPP stack on a different processor so I am familiar with the challenges. Relevant Skills and Experie Daha Fazla
Bu iş için 4 freelancer ortalamada $875 teklif veriyor
Hi Sir, We read your project, we have done many projects in which we used JSON, HTTP etc for microcontroller to server communications. Lets talk to us on this project and consider it done. We offer our services a Daha Fazla
Have experince with FreeRTOS in embedded applications with TCP/IP stack. Relevant Skills and Experience ARM Cortex M4, FreeRTOS Stay tuned, I'm still working on this proposal.
Your project's posting has caught my attention as this lies exactly in my domain of expertise. To ask a few questions to gather all the requirements for this project, i request you to message me. Relevant Skills and Daha Fazla