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"><<a href="mailto:fdanesse@gmail.com">fdanesse@gmail.com</a>></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 = "/tmp/olpc-session-bus"</span><br style="color:rgb(153, 0, 0)">
<span style="color:rgb(153, 0, 0)">PRESENCE_SERVICE = "org.laptop.Sugar.Presence"</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">PRESENCE_PATH = "/org/laptop/Sugar/Presence"</span><br style="color:rgb(153, 0, 0)">
<span style="color:rgb(153, 0, 0)">PRESENCE_IFACE = "org.laptop.Sugar.Presence"</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)">BUDDY_IFACE = "org.laptop.Sugar.Presence.Buddy"</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 = "unix:path=%s" % 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 'DBUS_SESSION_BUS_ADDRESS' in os.environ:</span><br style="color:rgb(153, 0, 0)"><span style="color:rgb(153, 0, 0)"> del os.environ['DBUS_SESSION_BUS_ADDRESS']</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['DISPLAY'] = 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 = "%s" % (props['ip4-address'].encode('utf-8'))</span><br style="color:rgb(153, 0, 0)">
<span style="color:rgb(153, 0, 0)"> nick = "%s" % (props['nick'].encode('utf-8'))</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"><<a href="mailto:giachino@fing.edu.uy" target="_blank">giachino@fing.edu.uy</a>></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"><<a href="mailto:dcastelo@plan.ceibal.edu.uy" target="_blank">dcastelo@plan.ceibal.edu.uy</a>></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"><<a href="mailto:giachino@fing.edu.uy" target="_blank">giachino@fing.edu.uy</a>></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: "xo-2B-A1-F5....", 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>