Wow ! ... what a huge bunch of fixes and cleanup kwatters and I put into Servo. Really great having 2+ sets of eyes to get things done right !
This is a quick post to address a few minor remaining items.
We found a deadlock occur when the sweep function i implemented in Java-land was activated by a MrlComm event/call back to change direction. I changed the sweeping code to use a buffered/thread switching using send("moveTo") instead of a direct moveTo call. This fixed the problem, but has me worried as I see that basic logic - (getting events then providing control) would be a common use case.
I would propose that calling methods to mrlcomm block on acks, but callbacks are buffered.
I think (but am not sure - this just means a callback from mrlcomm gets acked by the reader, then the reader thread calls a buffered send to publish).
Another fun bug .. is although the sweep is great, and moves with current specified speed, and is very smooth -- I've noticed after a while it range shrinks ! ... I suspect a position problem in mrlcomm