<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Bueno, ya finalmente resolvimos el problema de una forma sencilla.
Eduardo propuso la idea de crear una clase-singleton a modo de
"buffer". Así, nos evitamos los problemas de pasar parámetros (en
este caso el float que queremos modificar en el "servidor"
intermedio).<br>
Dicho y hecho. Tenéis la solución, a modo de esqueleto básico de
paso de un float, en [1]. Espero que os sea útil a aquéllos que
tengáis necesidades similares.<br>
<br>
Gracias a todos. Es un lujazo contar con esta comunidad de
desarrolladores ;)<br>
<br>
[1] <a moz-do-not-send="true"
href="http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE"
target="_blank">http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE</a><br>
<br>
On 11-11-24 12:09 PM, David Lobato wrote:
<blockquote
cite="mid:CA+D9CLft51+V_O6Y5YYKmPeqa4AQnd1MMG9-cAatXTBVdVBYeA@mail.gmail.com"
type="cite">Pero puedes acceder al communicator ya inicializado
por jderobotice::Application. Para eso se pasa la instancia de
Context [1] a todos los elementos que quieren "jugar" con Ice.
<div>Fijate que lo pasas en el constructor de DummyII<br>
<div><br>
<div>[1] <a moz-do-not-send="true"
href="http://svn.jderobot.org/jderobot/trunk/src/libs/jderobotice/context.h">http://svn.jderobot.org/jderobot/trunk/src/libs/jderobotice/context.h</a></div>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<div>
<br>
<div class="gmail_quote">2011/11/24 Julio Vega <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:julio.vega@urjc.es">julio.vega@urjc.es</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
Porque el objeto de Ice::Communicator se define usando
esos parámetros. Y luego ese objeto se usa para crear el
proxy mediante propertyToProxy.
<div class="HOEnZb">
<div class="h5"><br>
<br>
<div class="gmail_quote">David Lobato <<a
moz-do-not-send="true"
href="mailto:dav.lobato@gmail.com"
target="_blank">dav.lobato@gmail.com</a>>
escribió:
<blockquote class="gmail_quote" style="margin: 0pt
0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
Julio,
<div><br>
</div>
<div>No veo los problemas...</div>
<div><br>
</div>
<div>1. Para que necesitas argc y argv
exactamente?</div>
<div>2. En el servidor normal declaras DummyI de
la misma manera, no?</div>
<div><br>
</div>
<div>
<br>
<br>
<div class="gmail_quote">2011/11/24 Julio Vega
<span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:julio.vega@urjc.es"
target="_blank">julio.vega@urjc.es</a>></span><br>
<blockquote class="gmail_quote"
style="margin: 0pt 0pt 0pt 0.8ex;
border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
Bueno, tras pelearme con dummyInTheMiddle
para intentar adaptarlo a lo que comentaba
David, sigo teniendo los mismos problemas:<br>
- De algún modo he de pasar argc y argv a
la clase DummyII para, por ejemplo,
acceder al PropertyToProxy del
Communicator.<br>
- No es posible reservar el interfaz
dummy2, que es de tipo abstracto,
habiéndolo declarado como un Object
genérico. Cualquier posibilidad humana
hace que el compilador te diga que él está
ahí :)<br>
<br>
En resumen, joeer con Ice.
<div>
<div><br>
<br>
<br>
<div class="gmail_quote">David Lobato
<<a moz-do-not-send="true"
href="mailto:dav.lobato@gmail.com"
target="_blank">dav.lobato@gmail.com</a>>
escribió:
<blockquote class="gmail_quote"
style="margin: 0pt 0pt 0pt 0.8ex;
border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
Julio,
<div><br>
</div>
<div>Ups! No vi el enlace, perdón!</div>
<div><br>
</div>
<div>El dummyInTheMiddle es un
buen lio... No entiendo que hace
esa hebra por ahí. Ándate con
ojo a la hora de mezclar
pthreads a pelo con Ice, a veces
no funciona como se espera.</div>
<div>Según entiendo tu problema,
lo que intentas hacer es algo
tipo cache, que se pone entre
medias de un servidor y un
cliente, no?</div>
<div>Estoy un poco oxidado con
ICE, pero creo que debería ser
algo como lo que te paso en el
adjunto. Vamos, que el propio
objeto tiene un proxy al
servidor real, y en sus
llamadas, según la lógica que tu
tengas pensado, llama al
servidor real.</div>
<div><br>
</div>
<div>Rober, lo pipes son muy
útiles y todo lo que tu quieras,
pero joder, ICE debe tener algún
mecanismo para lidiar con esto.
Además, usando pipes la solución
no es portable, usando Ice si.</div>
<div><br>
</div>
<div>Saludetes!</div>
<div><br>
</div>
<br>
<div class="gmail_quote">2011/11/23
Roberto Calvo <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:rocapal@libresoft.es"
target="_blank">rocapal@libresoft.es</a>></span><br>
<blockquote class="gmail_quote"
style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid
rgb(204, 204, 204);
padding-left: 1ex;">
El mié, 23-11-2011 a las 16:05
+0000, David Lobato escribió:<br>
<div>> Julio,<br>
><br>
><br>
> Por qué no pones el
código con el que estás
teniendo problemas?<br>
> Sin entender el
problema del todo, me parece
que usar pipes es una<br>
> solución un poco
ñapis...<br>
<br>
</div>
Verás como te escuchen NEMO y
cia! Ahhh y los que programan
UNIX ;-)<br>
<div>
<div><br>
><br>
><br>
> Saludetes!<br>
><br>
> 2011/11/23 Julio Vega
<<a
moz-do-not-send="true"
href="mailto:julio.vega@urjc.es"
target="_blank">julio.vega@urjc.es</a>><br>
> Eso que dices
suena a solución :) me voy
a poner a añadir eso<br>
> y ya te
cuento.<br>
> Gracias
Rober!<br>
><br>
> Roberto Calvo
<<a
moz-do-not-send="true"
href="mailto:rocapal@libresoft.es"
target="_blank">rocapal@libresoft.es</a>>
escribió:<br>
><br>
> En
ese mismo ejemplo, yo tuve
un problema similar y<br>
> puede
que te ayude a<br>
> ti.
Lo resolví usando pipes.<br>
><br>
> Si
miras "startRecording",
hace de cliente, llama a
un<br>
>
Recorder con un<br>
>
callback y espera leyendo
el pipe. El callback [1],<br>
> que
hace de<br>
>
servidor, recibe la
respuesta y escribe en el
pipe.<br>
><br>
> En
este caso es síncrono,
pero podrías hacerlo<br>
>
asíncrono. Podrías probar<br>
>
quitando el thread que
tienes, y metiéndolo en la<br>
> clase
servidora para<br>
> que
haga un read del pipe. En
el main, cuando recibes<br>
> el
número haces el<br>
> write
en el pipe. Creo que eso
debería funcionarte.<br>
><br>
> Un
saludete!<br>
><br>
> [1]
class
AMI_Recorder_startRecordingI
: public<br>
>
jderobot::AMI_Recorder_startRecording<br>
><br>
> El
mié, 23-11-2011 a las
16:06 +0100, Julio Vega<br>
>
escribió:<br>
> >
Ya he estado ojeando el
componente que me dices y<br>
> sí,
actúa como<br>
> >
cliente y servidor al
mismo tiempo.<br>
> >
Ese problema lo tengo
solucionado. El conflicto<br>
> viene
cuando lo que<br>
> >
quiero es que haga de
cliente y además modifique
lo<br>
> que
pilla como<br>
> >
cliente, y que sirva ese
nuevo valor como<br>
>
servidor... No sé como
pasar<br>
> >
ese valor, que es un
float, dentro del
componente<br>
> hasta
llegar a la<br>
> >
zona "servidora".<br>
> ><br>
> >
Roberto Calvo <<a
moz-do-not-send="true"
href="mailto:rocapal@libresoft.es"
target="_blank">rocapal@libresoft.es</a>>
escribió:<br>
> ><br>
> >
Julito,<br>
> ><br>
> >
¿Qué es lo que no
te funciona, no te hace de<br>
>
cliente, o de servidor? O<br>
> >
nada de nada.<br>
> ><br>
> >
Yo lo que puedo
decirte es que el
componente<br>
>
RecordingServer [1] hace
de<br>
> >
servidor y de
cliente (realiza
peticiones al<br>
>
Recorder). Echale un ojo a<br>
> >
como configuro la
Ice::Application (abajo<br>
> del
todo del fichero cpp), que<br>
> >
pueden ir por ahí
los tiros.<br>
> ><br>
> >
Un saludete!<br>
> ><br>
> >
[1]<br>
> ><br>
> <a
moz-do-not-send="true"
href="http://svn.jderobot.org/jderobot/trunk/src/components/recordingserver/"
target="_blank">http://svn.jderobot.org/jderobot/trunk/src/components/recordingserver/</a><br>
> ><br>
> >
El mar, 22-11-2011
a las 23:58 +0100, Julio<br>
> Vega
escribió:<br>
> >
> Hola
developers,<br>
> >
><br>
> >
> he creado
unos componentes ICE en
[1].<br>
> Estos
componentes son básicos,<br>
> >
> así como el
interfaz ICE creado.
Tenemos<br>
> lo
siguiente:<br>
> >
> -
dummyServer: ejemplo
sencillo de<br>
>
"servidor"<br>
> >
ICE.<br>
> >
> -
dummyClient: ejemplo
sencillo de<br>
>
"cliente" ICE.<br>
> >
> -
dummyInTheMiddle: ejemplo<br>
>
no-tan-sencillo de
componente que hace de<br>
> >
>
"cliente-servidor" ICE.<br>
> >
><br>
> >
> El
problema está en ese
tercer<br>
>
componente. No logro hacer
que<br>
> >
> funcione como
cliente y como servidor al<br>
> mismo
tiempo. La idea es que<br>
> >
> tal
componente sea cliente de<br>
>
"dummyServer" (del cual
recibe un número)<br>
> >
> y, por
ejemplo, modifique ese
número para<br>
> que
"dummyClient" lo pille de<br>
> >
> aquí
modificado.<br>
> >
> Sí, ya sé
que es un ejemplo
tontorrón<br>
> (de
ahí el nombre), y quizás<br>
> >
> sin sentido.
Pero obviamente el
objetivo<br>
> es
otro componente mucho más<br>
> >
> complejo...<br>
> >
><br>
> >
> Por favor,
si alguien conoce algo más<br>
> sobre
ICE y puede echar un ojo<br>
> >
> a ese
componente, a ver qué
falla, se lo<br>
>
agradecería.<br>
> >
><br>
> >
> Saludos,<br>
> >
><br>
> >
> Julio<br>
> >
><br>
> >
> [<br>
> >
1]<br>
> <a
moz-do-not-send="true"
href="http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE"
target="_blank">http://svn.jderobot.org/robotvision/trunk/jmvegaProjects/basicICE</a><br>
> >
><br>
> ><br>
> >
--<br>
> >
Roberto Calvo
Palomino | Libre<br>
>
Software Engineering Lab
(GSyC)<br>
> >
Tel: <a
moz-do-not-send="true"
href="tel:%28%2B34%29%2091%20488%2087%2073"
value="+34914888773"
target="_blank">(+34) 91
488 87 73</a> |<br>
>
Universidad Rey Juan
Carlos<br>
> >
<a
moz-do-not-send="true"
href="mailto:rocapal@libresoft.es"
target="_blank">rocapal@libresoft.es</a>
| Edif.<br>
>
Biblioteca - Despacho
B103<br>
> >
<a
moz-do-not-send="true"
href="http://libresoft.es/"
target="_blank">http://libresoft.es/</a>
| Camino del<br>
>
Molino s/n - 28943
(Madrid)<br>
> ><br>
> >
GPG-KEY:<br>
> <a
moz-do-not-send="true"
href="http://gsyc.es/%7Erocapal/rocapal.gpg"
target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
> ><br>
</div>
</div>
>
______________________________________________________<br>
<div>
<div>><br>
><br>
> >
Jde-developers mailing
list<br>
> >
<a moz-do-not-send="true"
href="mailto:Jde-developers@gsyc.es" target="_blank">Jde-developers@gsyc.es</a><br>
> ><br>
> <a
moz-do-not-send="true"
href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers"
target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
><br>
> --<br>
>
Roberto Calvo Palomino
| Libre Software<br>
>
Engineering Lab (GSyC)<br>
> Tel:
<a moz-do-not-send="true"
href="tel:%28%2B34%29%2091%20488%2087%2073" value="+34914888773"
target="_blank">(+34) 91
488 87 73</a> |
Universidad Rey Juan<br>
>
Carlos<br>
> <a
moz-do-not-send="true"
href="mailto:rocapal@libresoft.es"
target="_blank">rocapal@libresoft.es</a>
| Edif.
Biblioteca -<br>
>
Despacho B103<br>
> <a
moz-do-not-send="true"
href="http://libresoft.es/"
target="_blank">http://libresoft.es/</a>
| Camino del
Molino<br>
> s/n -
28943 (Madrid)<br>
><br>
>
GPG-KEY: <a
moz-do-not-send="true"
href="http://gsyc.es/%7Erocapal/rocapal.gpg"
target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
><br>
><br>
>
_______________________________________________<br>
>
Jde-developers mailing
list<br>
> <a
moz-do-not-send="true"
href="mailto:Jde-developers@gsyc.es"
target="_blank">Jde-developers@gsyc.es</a><br>
> <a
moz-do-not-send="true"
href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers"
target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
><br>
><br>
><br>
>
_______________________________________________<br>
> Jde-developers
mailing list<br>
> <a
moz-do-not-send="true"
href="mailto:Jde-developers@gsyc.es"
target="_blank">Jde-developers@gsyc.es</a><br>
> <a
moz-do-not-send="true"
href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers"
target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
<br>
--<br>
Roberto Calvo Palomino
| Libre Software
Engineering Lab (GSyC)<br>
Tel: <a
moz-do-not-send="true"
href="tel:%28%2B34%29%2091%20488%2087%2073"
value="+34914888773"
target="_blank">(+34) 91
488 87 73</a> |
Universidad Rey Juan
Carlos<br>
<a moz-do-not-send="true"
href="mailto:rocapal@libresoft.es" target="_blank">rocapal@libresoft.es</a>
| Edif.
Biblioteca - Despacho
B103<br>
<a moz-do-not-send="true"
href="http://libresoft.es/" target="_blank">http://libresoft.es/</a>
| Camino del Molino
s/n - 28943 (Madrid)<br>
<br>
GPG-KEY: <a
moz-do-not-send="true"
href="http://gsyc.es/%7Erocapal/rocapal.gpg"
target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
</div>
</div>
</blockquote>
</div>
<br>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Julio Vega | <a class="moz-txt-link-freetext" href="http://robotica-urjc.es/jmvega">http://robotica-urjc.es/jmvega</a>
</pre>
</body>
</html>