Fdmonitor on socket waits for transmit before receiving

I’m using a a file monitor (portMonitor = le_fdMonitor_Create(“xxx”, sockfd, MyReadHandler, POLLIN | POLLPRI); ) after opening a port and I’m noticing the following behaviour:

  • as long as I keep sending every 10 seconds the callback is called immediately
  • if i wait longer than 10 seconds before sending data from the server to the device the data is not received until data is send from the device to the server

As there is a keep alive message send to the server every 60 seconds i’m not sure if the data would eventually be handled, but it’s still a bit weird.

Does anyone have any idea to get it to respond immediately?

is it the same issue as this one?

You can check the value of AT!GSTATUS?

Looks like it is, now to find out how to stay in RRC Connected without using too much data. Something similar was the reason we have the one minute keep alive and that’s already the biggest data usage in the current system.

Is there any way that you can subscribe to the RRC changing that you are aware of or a way to set this higher than the roughly 10s it is now on a public network.

I don’t see any method you can change that RRC…

I’ll settle for sending a single byte if i’ve not sent or received data in the past 10 seconds for now.

You might give a try to disable edrx feature.

AT+CEDRXS=0

That also seems to fix it, that seems like the better solution, thanks!