Communications between ublox and Particle TCP client

Hello Everyone,

I’ve been using the Spark HTTP library. I’m finding that the process of retrieving a http packet of 2kB takes approximately 4 seconds. 4 seconds is ok but I need to re-arrange the library so that I can use any downtime processing other tasks.

In the modem HAL it shows that the pipe size has a size

ElectronSerialPipe(int rxSize = 256, int txSize = 256);

and the ublox triggers asyncronously via the,

extern "C" void HAL_USART3_Handler_Impl(void* reserved)

and the IRQ is

void ElectronSerialPipe::rxIrqBuf(void)
    if (_pipeRx.writeable()) {
        char c = USART_ReceiveData(USART3);
    } else {

So if the pipe is full the USART_RecieveData interupt won’t be able to add the data to the _pipeRx as the pipe is not writtable and the IRQ reconfigure the USART to disable the interupts.

I’m struggling to work out what will happen next. Will the ublox drop any more data recieved or will it store the data in a tempory buffer. So that when the pipe is read and free the USART will start back up again?

Thankyou Hayden