I am developing inertial sensor software for a blimp. The software consists of about 7 simultaneously running processes that read data from sensors, communicate via the IPC mechanisms of QNX and compute stuff. As the computations are very expensive, the processor has a load of circa 90%.
To allow for monitoring from a base station, the processes permanently send some status information to a linux-based computer via a wireless LAN router using UDP. Now this all works very nicely, even when sometimes the blimp moves too far away for the wireless to maintain a connection to the base station. The base station is blind then (of course), and the QNX processes just continue sending their data that will never arrive.
But when the blimp returns into the reception radius of the wireless LAN, something strange happens: something on the QNX machine seems to use up a lot of computation time, and my processes starve for a short time. As you might have guessed already, this failure of them meeting their realtime requirements must not happen.
My questions are:
Can anybody relate to that?
Does anybody have an explanation for what happens there?
As my claim that the reconnection of the wireless kills my realtime scheduling is only a conjecture: does anybody have an idea how to determine more precisely what is happening there?
Does anybody know where else I might inquire concerning this problem?
Does anybody have an idea for a fix?
Thanks a lot