[Sugar-devel] TA NXT plugin - cleanup and faster startup
Martin Langhoff
martin.langhoff at gmail.com
Wed Mar 23 12:54:32 EDT 2011
Hi Emiliano, Walter, list,
At http://dev.laptop.org/git/users/martin/turtleart/ you'll find
current TA master plus 2 patches. One is Emiliano's work, presented as
a single patch that only touches the relevant files. I think this is
good to merge.
Author: Emiliano Pastorino <epastorino at plan.ceibal.edu.uy>
Date: Wed Mar 23 11:49:02 2011 -0400
Add LEGO Mindstorms NXT2.0 plugin based on nxt_python 2.1.0
icons/nxtoff.svg | 84 ++++++++++++
icons/nxton.svg | 83 ++++++++++++
plugins/nxt_plugin.py | 339 +++++++++++++++++++++++++++++++++++++++++++++++++
po/es.po | 168 ++++++++++++++++++++++++
4 files changed, 674 insertions(+), 0 deletions(-)
The other one is
Author: Martin Langhoff <martin at laptop.org>
Date: Wed Mar 23 12:33:08 2011 -0400
nxt: delay finding the NXT brick, offer NXT block everytime
- Startup delays --due to searching for NXT bricks -- are gone
these delays affected all users with the libs installed.
- All users that have nxt libraries installed see NXT blocks, and
can load/edit files w them.
- NXT detection is delayed until we hit an NXT-related action block
- We only try to stop NXT motors if we have seen an nxt brick
plugins/nxt_plugin.py | 52 ++++++++++++++++++++++++++++--------------------
To use/test my rework of Emiliano's patches, you'll want to have the
following rpms installed. They are built for Python 2.7 so F14 onwards
-- will prep F9 and F11 packages soon.
http://dev.laptop.org/~martin/public_rpms/nxt_python-2.1.0-1.fc16.noarch.rpm
http://dev.laptop.org/~martin/public_rpms/lego-udevrules-1.0-1.fc14.noarch.rpm
With Emiliano's patch there is a very visible delay on startup, due to
the attempts to find an NXT brick. In fact I got worried for a moment
that the plugins model was to blame. My patch waits until we actually
need to talk to the brick to search for it, and displays a nice error
msg if we can't find it.
One situation that is not handled well is unplugging/replugging of the
usb cable -- which may well happen between "runs" in a busy classroom.
We could address that by wrapping every call to the NXT libs with a
try/except that retries the _find_brick() and retries the command.
cheers,
m
--
martin.langhoff at gmail.com
martin at laptop.org -- Software Architect - OLPC
- ask interesting questions
- don't get distracted with shiny stuff - working code first
- http://wiki.laptop.org/go/User:Martinlanghoff
More information about the Sugar-devel
mailing list