During this time, the Espruino is drowning in events and totally floored, and if it gets a transmission, it'll snap out of it when it does, but otherwise, it's effectively hung. But that's okay, the timeout should stop it, and it should return to functionality within a second if it doesn't get a response (which is inevitable, since these rf transmitter/receivers suck). But... sometimes it seems to take many many seconds for the stopListen() to happen and unlock the Espruino, and a few times, it never happened, even minutes later, the Espruino was still totally floored.
Is there a bug in Espruino here? Any thoughts on how to get it to stop listening after a time, and have it reliably do so even though the Espruino is heavily loaded?
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I've been having some problems with my RF communication system. ( http://forum.espruino.com/conversations/255528/ )
What I do when expecting a packet is...
setTimeout("startListen()",200);
setTimeout("stopListen()",1000);
During this time, the Espruino is drowning in events and totally floored, and if it gets a transmission, it'll snap out of it when it does, but otherwise, it's effectively hung. But that's okay, the timeout should stop it, and it should return to functionality within a second if it doesn't get a response (which is inevitable, since these rf transmitter/receivers suck). But... sometimes it seems to take many many seconds for the stopListen() to happen and unlock the Espruino, and a few times, it never happened, even minutes later, the Espruino was still totally floored.
Is there a bug in Espruino here? Any thoughts on how to get it to stop listening after a time, and have it reliably do so even though the Espruino is heavily loaded?