Non Blocking MultiThreaded AT Commands? Alternatives?

I am working to create a high performance SMS / MMS appliance and need some advice. My understanding has been that I need to use AT commands over a serial connection to send. But since only one application at a time can access a serial port, how do I do a multi threaded operation? For instance, If I send all the commands to send an SMS, I have to wait for a response to know that that message was sent before I can start sending another.

That seems to introduce a massive bottleneck compared with how normal UDP-TCP/IP is handled and defeats the purpose of having more and more powerful chips. Even if there was 0 wait time for the chip itself to execute the commands, waiting for a response before sending more info is an issue.

I purchased a MangOH and 2 HL7588 chips and was worlking through the documentation. As I was reading the docs on the MMS side here … tion-note/

Where it talks about how to send an MMS on page 4:
9.1 Sending MMS
The application will use the MMS Client APIs for preparing the MMS; the settings, destinations, text, audio and graphics data
are all supplied to the MMS Client through these APIs & the client formats them. The application, in addition, has to create an
HTTP client socket for the MMS client.
Here is a stepwise guide to what the application needs to do:

  1. Start the GPRS bearer using wip_bearerxx() APIs.
  2. Create an HTTP client socket using wip_HTTPClientCreateOpts() API to the MMS server IP on port 8080.
  3. Initialise the MMS using wip_mmsCreateOpts() API; settings such as subject, sender’s number, sender’s visibility, message class & priority can be configured.
  4. Use wip_mmsSetOpts() API to set the destination; this could either be an MSISDN or an email address.
  5. Use wip_mmsAddPart() API to add the different parts one by one to the MMS; text, sound & pictures can be added.
  6. Use wip_mmsSend() API to send the MMS to the MMSC URL.
  7. Use wip_mmsClose() API when finished.

It is great to see that I can make an HTTP call on port 8080, but what I don’t see is what is the webserver that is controlling that? Is there a HTTP server built into the HL7588 or the MangOH?

Is there any API to send an SMS / MMS that doesn’t use AT commands that would allow for faster processing? Can they be sent using a network / USB / GPIO from a Raspberry Pi rather than over the UART? I see it has USB2.0, ADC, Can those interfaces be used for this application?


This problem needs a detailed technical analysis. Please contact your Technical support in SWI to provide you the solution.

Thanks & Regards,

But that document is not applicable for MangOH or the WP Series devices - that’s for the old Open-AT stuff :exclamation: