No conocía esto del JAMTank, pero es más o menos lo que estoy usando.<div><br></div><div>Gracias igual</div><div>Martín</div><div><br><br><div class="gmail_quote">El 1 de junio de 2011 15:45, Flavio Danesse <span dir="ltr">&lt;<a href="mailto:fdanesse@gmail.com">fdanesse@gmail.com</a>&gt;</span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">No contesto tu pregunta pues no se, hay que probar.<br>Pero te paso algo del código de JAMTank que utiliza algunas cosas de presence service, puede que te sirva de algo.<br>

<br><b>PD:</b><br>Todavía no entiendo del todo ni DBus ni Thelaphy.<br>
<br><span style="color:rgb(153, 0, 0)"># ------ Inicio de Funciones de Presencia ----------</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">OLPC_SESSION_BUS = &quot;/tmp/olpc-session-bus&quot;</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">PRESENCE_SERVICE = &quot;org.laptop.Sugar.Presence&quot;</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">PRESENCE_PATH = &quot;/org/laptop/Sugar/Presence&quot;</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">PRESENCE_IFACE = &quot;org.laptop.Sugar.Presence&quot;</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">BUDDY_IFACE = &quot;org.laptop.Sugar.Presence.Buddy&quot;</span><br style="color:rgb(153, 0, 0)">


<br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">def get_bus():</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)"># sugar presence</span><br style="color:rgb(153, 0, 0)">
<span style="color:rgb(153, 0, 0)">    if os.path.exists(OLPC_SESSION_BUS):</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        address = &quot;unix:path=%s&quot; % OLPC_SESSION_BUS</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">        return dbus.bus.BusConnection(address_or_type=address)</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">    else:</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">        if len(sys.argv) != 2:</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">            sys.exit(1)</span><br style="color:rgb(153, 0, 0)"><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">        if &#39;DBUS_SESSION_BUS_ADDRESS&#39; in os.environ:</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">            del os.environ[&#39;DBUS_SESSION_BUS_ADDRESS&#39;]</span><br style="color:rgb(153, 0, 0)">


<br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        display = sys.argv[1]</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        os.environ[&#39;DISPLAY&#39;] = display</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">        return dbus.bus.BusConnection()</span><br><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">def get_Xos():</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)"># devuelve la ip y el nombre de todas las xo en la red</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)"># En realidad devuelve el nick de todas las xo, la ip local y las ip en la mesh de las demás xo</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        bus = get_bus()</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">        ps = bus.get_object(PRESENCE_SERVICE, PRESENCE_PATH)</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        ps_iface = dbus.Interface(ps, PRESENCE_IFACE)</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">    buddies = map(lambda b: bus.get_object(PRESENCE_SERVICE, b), ps_iface.GetBuddies())</span><br style="color:rgb(153, 0, 0)"><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">    xos = []</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">    for buddy in buddies:</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        buddy_iface = dbus.Interface(buddy, BUDDY_IFACE)</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">        try:</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">            props = buddy_iface.GetProperties()</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">            ip = &quot;%s&quot; % (props[&#39;ip4-address&#39;].encode(&#39;utf-8&#39;))</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">            nick = &quot;%s&quot; % (props[&#39;nick&#39;].encode(&#39;utf-8&#39;))</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">            xo = (ip, nick)</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">            xos.append(xo)</span><br style="color:rgb(153, 0, 0)"><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">        except dbus.DBusException:</span><br style="color:rgb(153, 0, 0)">


<span style="color:rgb(153, 0, 0)">                pass</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">    return xos</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)"># ------ Fin de Funciones de Presencia ----------</span><br>


<br><br><br><br><br><div class="gmail_quote">El 1 de junio de 2011 13:50, Martin Giachino - INCO <span dir="ltr">&lt;<a href="mailto:giachino@fing.edu.uy" target="_blank">giachino@fing.edu.uy</a>&gt;</span> escribió:<div>

<div></div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
Gracias Daniel por la respuesta, creo que para el caso 1 me puede servir.<div><br></div><div>Para el caso 2 ya no depende de lo que yo tome, sino de la info que me está dando el dbus en esa interfaz de org.laptop.Sugar.Presence.</div>




<div><br></div><div>Martín</div><div><br><br><div class="gmail_quote">El 1 de junio de 2011 13:37, Daniel Castelo <span dir="ltr">&lt;<a href="mailto:dcastelo@plan.ceibal.edu.uy" target="_blank">dcastelo@plan.ceibal.edu.uy</a>&gt;</span> escribió:<div>


<div></div><div><br>

<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">No se viene el caso, pero si queres algo único en la XO podes leer el numero de serie<br>/ofw/serial-number<br>


<br>Saludos<br>

<br><div class="gmail_quote"><div><div></div><div>2011/6/1 Martin Giachino - INCO <span dir="ltr">&lt;<a href="mailto:giachino@fing.edu.uy" target="_blank">giachino@fing.edu.uy</a>&gt;</span><br>
</div></div><blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div><div></div><div>Hola, un par de dudas que quizás alguien me pueda confirmar....<div>




<br></div><div>- el comando hostname retorna un string, como por ejemplo: &quot;xo-2B-A1-F5....&quot;, que supongo que no debe ser casualidad, ya que coincide con los últimos 3 octetos de la MAC address. ¿Es correcto entonces considerar esto como un dato único por cada XO?</div>








<div><br></div><div>2 - Referido a conocer cuantos y a cuales vecinos estoy conectado, accedo por el dbus a la interfaz org.laptop.Sugar.Presence y ahí obtengo por ejemplo:</div><div><br></div><div><div>/org/laptop/Sugar/Presence/Buddies/keyid/bae7b305fa7b5989e71adab54459083947a32514</div>







<div>/org/laptop/Sugar/Presence/Buddies/keyid/e852b8318dbbe2a3b0258ea2ab3311c6b0dd10a5</div></div><div><br></div><div>Uno de estos dos identificadores corresponde a otra XO con la que estoy probando, que cuando la apago desaparece esa info, y cuando la vuelvo a conectar al mesh aparece nuevamente. En ambos casos el keyid con el que aparece esa otra XO fue el mismo, entonces la pregunta es, ¿eso es casualidad o puedo tomarlo como un dato de que siempre que aparezca esa XO la veré con el mismo keyid?</div>







<div><br></div><div><br></div><div>Gracias</div><div>Martín</div>
<br></div></div>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div><font color="#888888"><br><br clear="all"><br>-- <br>Ing. Daniel Castelo<br>Plan Ceibal - Área Técnica<br>Avda. Italia 6201<br>Montevideo - Uruguay.<br>Tel.: 2 601 57 73 Interno 2228<br>E-mail : <a href="mailto:dcastelo@plan.ceibal.edu.uy" target="_blank">dcastelo@plan.ceibal.edu.uy</a><br>






</font></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div></div></div><br>
</blockquote></div><br></div>