Move38 / Blinks-SDK

Development for Blinks starts here. This codebase includes everything you need to get up and running in the Arduino IDE with Blinks.

Home Page:http://forum.move38.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Broken chain programming

jbobrow opened this issue · comments

Start a programming chain with Blinks. Remove the head of the chain. All following line up with a blue dot waiting for the programming to resume. When reconnecting the head, only the first Blink in the chain resumes learning, it does not pass it on to the rest of the chain. The second in the chain then signals failed transmission at the end of the first completing learning. This might be by design. Reminder here to simply keep track that it feels a little off

discussed with @bigjosh again today... not sure there is a better way to handle this, but worth revisiting at somepoint, it is admittedly a UX issue.

I checked and this is how it is supposed to work right now.

If a blink is sending a game to another blink and it does not hear anything for a while, then it will give up on that blink and move on. What is happening here is subtle, but because the 2nd blink is not hearing anything from the first blink, it is not sending anything to the 3rd blink, so the 3rd blink is not responding, so the 2nd blink is timing out the 3rd blink and moving on. Got it?

You want to have this timeout or else if you were to disconnect a blink in the middle of a download, the sending blink would just be stuck waiting forever for the now gone one. This seems worse.

To try and improve the UX in this failure mode, I now have a blink send the LETSGO packet even after a failed download attempt. This will at least trigger any blinks waiting to fail into the blinking red mode - and blinks waiting on them will then also fail. This way you should be able to at least restart the download after that and it should work.

PR with this change forthcoming...