Short answers:
Yes. In fact theblinkBIOS
deals with asynchronous IR packets and the blinklib
stuff is built on top of that to create the illusion of continuous value sharing and neighbor presence detection.
The IR LEDs communicate using very brief flashes that are spaced relatively far apart so use trivial amounts of power. The blinklib
framework is constantly ping-ponging over the IR links so at any given moment one side is always transmitting.
instantaneous
is all relative.
A blinklib
IR packet takes on the order of 10ms to transmit and includes a header, the setValueOnFace()
value, info that keeps a group of blinks from going to sleep when the button on any one of them has been recently pressed, and error detection.
A datagram sent though the blinklib
framework uses all the above time (there is a special “datagram data to follow” value) plus the time for the actual extra data and a checksum byte.