Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
6 years, 7 months ago.
TCPSocket in non-blocking mode: how to find out WHY callback method has been called
mbed-os 5.8: TCPSocket supports the non-blocking mode which makes use of a callback function. This function needs to be registered with TCPSocket using method sigio beforehand. Once one out of the following events occur, the method will be called ("The specified callback will be called on state changes such as when the socket can recv/send/accept successfully and on when an error occurs. The callback may also be called spuriously without reason" - taken from the 5.8-docu.). So far ... so good.
Now imagine one of the events has occured and the callback method is being called. How can i find out WHY the method has been called? What was the event causing the callback method call? There is no parameter indicating the event. How can i identify the "call without reason"?
Any ideas?
Matthias.
2 Answers
6 years ago.
Hi Matthias,
I am on the same probleme i can't identify the callback reason...
And an other probleme, you cannot do a TCPSocket.recv() without "MbedOS assertion failed" in TCPSocket.sigio() event.
MbedOS assertion failed on TCPSocket.recv() in TCPSocket.sigio() event
++ MbedOS Error Info ++ Error Status: 0x80FF0144 Code: 324 Module: 255 Error Message: Assertion failed: _readers == 0 Location: 0x1165B File: .\mbed-os\features\netsocket\TCPSocket.cpp+196 Error Value: 0x0 Current Thread: lwip_tcpip Id: 0x20001B0C Entry: 0x78C9 StackSize: 0x4B0 StackMem: 0x2000F310 SP: 0x2000F5BC For more info, visit: https://armmbed.github.io/mbedos-error/?error=0x80FF0144 -- MbedOS Error Info --
Some help?
5 years, 7 months ago.
Hello,
I am also having same problem. Did this solved in latest MBEDOS releases?
Vikas