Hello,
I have recently cleaned-up constants for message sizes [1], which had
the side effect of breaking new VMs (post-change) with old Studios
(pre-change). Following a comment from Philippe, I have added back a
compatibility constant [2].
I do not like this solution because it keeps old dirty hacks in. Yet I
agree that given our Thymio user base, in the current situation it is
highly probable that someone will flash a firmware with the new VM to
the Thymio from the old Studio, breaking Aseba on the Thymio.
Therefore, I think that we should have a mechanism to force a certain
version of Studio before flashing a Thymio. I propose the following:
- To release firmwares in a container, having the .hex file and a
"manifest" file, that will specify conditions (Aseba versions, etc.)
that allow flashing. For the container, we could simply use a zip file,
and use a Qt-compatible implementation of zip such as osdab-zip [3].
- To increment the versioning in the Aseba protocol, which will tell the
user to upgrade Studio. This would work even without the proper check of
the firmware, but it is quite nasty to let the user upgrade a robot with
the wrong Studio. I would also turn the current warning [4] into a fatal
error, if the node is using a more recent version than Studio, and keep
a warning if the node is using an older version (i.e. we have backward
compatibility but not forward).
What do you think?
Cheers,
Stéphane
[1]
https://github.com/aseba-community/aseba/commit/f2376db125434c3975b09c6554394ce1c2fa9cdc
[2]
https://github.com/aseba-community/aseba/commit/4292805a42e2eab45590631b126b58645eef8b55
[3]
http://code.google.com/p/osdab/downloads/detail?name=OSDaB-Zip-20120910.tar.bz2&can=2&q=
[4] studio/DashelTarget.cpp:315
--
Dr Stéphane Magnenat
http://stephane.magnenat.net
_______________________________________________
Aseba-dev mailing list
Aseba-dev@gna.org
https://mail.gna.org/listinfo/aseba-dev