The pingprobe bug on windows is solved. Actually it should be tested on Linux systems.
The org.ardulink.core.ConnectionBasedLink.waitForArduinoToBoot(int, TimeUnit, Mode) implementation is changed. Now it uses a BlockingQueue instead of explicitly Lock and Condition objects.
Maybe the problem on windows was caused by Condition implementation. BlockingQueue should work on both Linux and Windows systems.
Maybe also org.ardulink.core.qos.ResponseAwaiter implementation should change accordingly. It actually works on windows but it has the same logic of the previous waitForArduinoToBoot method.
With the fix we have reintroduced a Scanner too. It isn't the JDK Scanner for text streams but a specific Ardulink scanner able to scan binary streams. Separator messages string is fixed as well.
The pingprobe bug on windows is solved. Actually it should be tested on Linux systems.
The org.ardulink.core.ConnectionBasedLink.waitForArduinoToBoot(int, TimeUnit, Mode) implementation is changed. Now it uses a BlockingQueue instead of explicitly Lock and Condition objects.
Maybe the problem on windows was caused by Condition implementation. BlockingQueue should work on both Linux and Windows systems.
Maybe also org.ardulink.core.qos.ResponseAwaiter implementation should change accordingly. It actually works on windows but it has the same logic of the previous waitForArduinoToBoot method.
With the fix we have reintroduced a Scanner too. It isn't the JDK Scanner for text streams but a specific Ardulink scanner able to scan binary streams. Separator messages string is fixed as well.