<meta http-equiv="content-type" content="text/html; charset=utf-8"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">

One situation that is not handled well is unplugging/replugging of the<br>usb cable -- which may well happen between "runs" in a busy classroom.</blockquote><div><br></div><div>I was thinking just a moment ago on listening for "deviceadded" and "deviceremoved"</div>

<div>signals from hal, hidding/unhidding nxt palette and calling find_one_brick only when</div><div>necessary. Do you think this is a good approach?<br>Is it possible to add and remove a palette on the fly?</div><br><div class="gmail_quote">

On Wed, Mar 23, 2011 at 1:54 PM, Martin Langhoff <span dir="ltr"><<a href="mailto:martin.langhoff@gmail.com">martin.langhoff@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

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