<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Habría que ver específicamente cual es el problema de usarlo localmente. Siempre pensé<div>que iba a haber algún tipo de mejora en el rendimiento pero no es así. Casi no cambia usar</div><div>el socket.</div><div><br></div><div>Creo que nunca se pensó el uso del server para mensajes cuya semántica no fueran correctos.</div><div>Lo que agregué hace mucho es una serie de comandos de ayuda que no sé si probaron.</div><div>Por ejemplo:</div><div><br></div><div>&gt;HELP</div><div>BUTIA_COUNT, CALL, CLIENTS, CLOSE, DESCRIBE, HELP, LIST, LISTI, OPEN, QUIT, REFRESH</div><div><br></div><div>Devuelve la lista de comandos que podemos llamar.</div><div><br></div><div>También podemos preguntar qué hace un comando a manera de "man":</div><div><br></div><div>&gt;HELP QUIT</div><div>Close PyBot server</div><div><br></div><div><div>&gt;HELP REFRESH</div><div>Search for new devices</div></div><div><br></div><div>Y está el DESCRIBE que nos dice las funciones que tiene un módulo. La lista de funciones las</div><div>obtiene dinámicamente desde el driver:</div><div><br></div><div><div>&gt;DESCRIBE button</div><div>{'getVersion': [], 'getValue': []}</div></div><div><br></div><div><div>&gt;DESCRIBE admin</div><div>{'reset': [], 'getVersion': [], 'send': ['data']}</div><div><br></div><div>&gt;DESCRIBE motors</div><div>{'setvelmtr': ['motor_id', 'sense', 'vel'], 'getVersion': [], 'getType': [], 'testMotors': [], 'setvel2mtr': ['left_sense', 'left_vel', 'right_sense', 'right_vel']}</div></div><div><br></div><div><br></div><div>Es buena idea distinguir los errores: si es un comando mal ingresado o que la placa no está.</div><div>Para eso habría que hacer un código de errores.</div><div><br></div><div>-1: Error en la placa</div><div>-2: Error de comando</div><div><br></div><div>??</div><div><br><div><hr id="stopSpelling">From: dearmas@fing.edu.uy<br>Date: Mon, 27 Apr 2015 20:17:50 -0300<br>To: butia-devel-l@fing.edu.uy<br>Subject: [Butia-devel-list] Bug o Falta de información<br><br><div dir="ltr"><div>Hola,<br><br></div><div><b>Posible Bug o Error de Uso.</b><br></div><div>Hoy luego de un uso intenso del Butiá (desde un cliente python) nos encontramos con el problema de que en varias màquinas distintas tras seguir el tutorial <a href="http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/PyBot" target="_blank">http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/PyBot</a><br></div><div>en la parte de<span id="ecxUsando_Pybot_localmente"> <i>Usando Pybot localmente</i> y luego de varios intentos</span> de leer un sensor de grises nos tira siempre -1.<br><br></div><div><div><div>Sin embargo si hacemos el mismo procedimiento pero ejecutamos por un lado el pybot_server y por otro un cliente pybot, la lectura del mismo sensor funciona correctamente.<br><br></div><div>nota: En estas maquinas que daba error aparecia una linea que decia algo relacionado a <br><i>pybot:usb4butia kernel_driver_active</i><br></div><div><br></div><div><b>Propuesta de mejora</b></div><div></div><div>Tambièn nos pasò que ejecutando desde una terminal el telnet yendo contra el pybot_server nos devuelve el mismo mensaje de error tanto cuando no hay conexión con la placa como cuando invocamos a una funcion que no existe. En todos los casos devuelve -1. Tal vez sea buena idea distinguir entre estos casos. Incluso debe haber algun otro caso para distinguir.<br><br></div><div>saludos<br></div><div><br></div><div>-- <br><div class="ecxgmail_signature"><b>Rodrigo Dearmas</b><div>Cel.: 091074641</div><div><a href="mailto:rodearm@gmail.com" target="_blank">rodearm@gmail.com</a><div><a href="mailto:dearmas@fing.edu.uy" target="_blank">dearmas@fing.edu.uy</a></div></div></div>
</div></div></div></div>
<br>_______________________________________________
Butia-devel-l site list
Butia-devel-l@fing.edu.uy
https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</div></div>                                               </div></body>
</html>