<!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">&lt;<a moz-do-not-send="true"
                  href="mailto:julio.vega@urjc.es">julio.vega@urjc.es</a>&gt;</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 &lt;<a
                        moz-do-not-send="true"
                        href="mailto:dav.lobato@gmail.com"
                        target="_blank">dav.lobato@gmail.com</a>&gt;
                      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">&lt;<a
                                moz-do-not-send="true"
                                href="mailto:julio.vega@urjc.es"
                                target="_blank">julio.vega@urjc.es</a>&gt;</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
                                    &lt;<a moz-do-not-send="true"
                                      href="mailto:dav.lobato@gmail.com"
                                      target="_blank">dav.lobato@gmail.com</a>&gt;
                                    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">&lt;<a
                                            moz-do-not-send="true"
                                            href="mailto:rocapal@libresoft.es"
                                            target="_blank">rocapal@libresoft.es</a>&gt;</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>&gt; Julio,<br>
                                            &gt;<br>
                                            &gt;<br>
                                            &gt; Por qué no pones el
                                            código con el que estás
                                            teniendo problemas?<br>
                                            &gt; Sin entender el
                                            problema del todo, me parece
                                            que usar pipes es una<br>
                                            &gt; 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>
                                              &gt;<br>
                                              &gt;<br>
                                              &gt; Saludetes!<br>
                                              &gt;<br>
                                              &gt; 2011/11/23 Julio Vega
                                              &lt;<a
                                                moz-do-not-send="true"
                                                href="mailto:julio.vega@urjc.es"
                                                target="_blank">julio.vega@urjc.es</a>&gt;<br>
                                              &gt;         Eso que dices
                                              suena a solución :) me voy
                                              a poner a añadir eso<br>
                                              &gt;         y ya te
                                              cuento.<br>
                                              &gt;         Gracias
                                              Rober!<br>
                                              &gt;<br>
                                              &gt;         Roberto Calvo
                                              &lt;<a
                                                moz-do-not-send="true"
                                                href="mailto:rocapal@libresoft.es"
                                                target="_blank">rocapal@libresoft.es</a>&gt;
                                              escribió:<br>
                                              &gt;<br>
                                              &gt;                 En
                                              ese mismo ejemplo, yo tuve
                                              un problema similar y<br>
                                              &gt;                 puede
                                              que te ayude a<br>
                                              &gt;                 ti.
                                              Lo resolví usando pipes.<br>
                                              &gt;<br>
                                              &gt;                 Si
                                              miras "startRecording",
                                              hace de cliente, llama a
                                              un<br>
                                              &gt;                
                                              Recorder con un<br>
                                              &gt;                
                                              callback y espera leyendo
                                              el pipe. El callback [1],<br>
                                              &gt;                 que
                                              hace de<br>
                                              &gt;                
                                              servidor, recibe la
                                              respuesta y escribe en el
                                              pipe.<br>
                                              &gt;<br>
                                              &gt;                 En
                                              este caso es síncrono,
                                              pero podrías hacerlo<br>
                                              &gt;                
                                              asíncrono. Podrías probar<br>
                                              &gt;                
                                              quitando el thread que
                                              tienes, y metiéndolo en la<br>
                                              &gt;                 clase
                                              servidora para<br>
                                              &gt;                 que
                                              haga un read del pipe. En
                                              el main, cuando recibes<br>
                                              &gt;                 el
                                              número haces el<br>
                                              &gt;                 write
                                              en el pipe. Creo que eso
                                              debería funcionarte.<br>
                                              &gt;<br>
                                              &gt;                 Un
                                              saludete!<br>
                                              &gt;<br>
                                              &gt;                 [1]
                                              class
                                              AMI_Recorder_startRecordingI
                                              : public<br>
                                              &gt;                
                                              jderobot::AMI_Recorder_startRecording<br>
                                              &gt;<br>
                                              &gt;                 El
                                              mié, 23-11-2011 a las
                                              16:06 +0100, Julio Vega<br>
                                              &gt;                
                                              escribió:<br>
                                              &gt;                 &gt;
                                              Ya he estado ojeando el
                                              componente que me dices y<br>
                                              &gt;                 sí,
                                              actúa como<br>
                                              &gt;                 &gt;
                                              cliente y servidor al
                                              mismo tiempo.<br>
                                              &gt;                 &gt;
                                              Ese problema lo tengo
                                              solucionado. El conflicto<br>
                                              &gt;                 viene
                                              cuando lo que<br>
                                              &gt;                 &gt;
                                              quiero es que haga de
                                              cliente y además modifique
                                              lo<br>
                                              &gt;                 que
                                              pilla como<br>
                                              &gt;                 &gt;
                                              cliente, y que sirva ese
                                              nuevo valor como<br>
                                              &gt;                
                                              servidor... No sé como
                                              pasar<br>
                                              &gt;                 &gt;
                                              ese valor, que es un
                                              float, dentro del
                                              componente<br>
                                              &gt;                 hasta
                                              llegar a la<br>
                                              &gt;                 &gt;
                                              zona "servidora".<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                              Roberto Calvo &lt;<a
                                                moz-do-not-send="true"
                                                href="mailto:rocapal@libresoft.es"
                                                target="_blank">rocapal@libresoft.es</a>&gt;
                                              escribió:<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      Julito,<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      ¿Qué es lo que no
                                              te funciona, no te hace de<br>
                                              &gt;                
                                              cliente, o de servidor? O<br>
                                              &gt;                 &gt;
                                                      nada de nada.<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      Yo lo que puedo
                                              decirte es que el
                                              componente<br>
                                              &gt;                
                                              RecordingServer [1] hace
                                              de<br>
                                              &gt;                 &gt;
                                                      servidor y de
                                              cliente (realiza
                                              peticiones al<br>
                                              &gt;                
                                              Recorder). Echale un ojo a<br>
                                              &gt;                 &gt;
                                                      como configuro la
                                              Ice::Application (abajo<br>
                                              &gt;                 del
                                              todo del fichero cpp), que<br>
                                              &gt;                 &gt;
                                                      pueden ir por ahí
                                              los tiros.<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      Un saludete!<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      [1]<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 <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>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      El mar, 22-11-2011
                                              a las 23:58 +0100, Julio<br>
                                              &gt;                 Vega
                                              escribió:<br>
                                              &gt;                 &gt;
                                                      &gt; Hola
                                              developers,<br>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;
                                                      &gt;    he creado
                                              unos componentes ICE en
                                              [1].<br>
                                              &gt;                 Estos
                                              componentes son básicos,<br>
                                              &gt;                 &gt;
                                                      &gt; así como el
                                              interfaz ICE creado.
                                              Tenemos<br>
                                              &gt;                 lo
                                              siguiente:<br>
                                              &gt;                 &gt;
                                                      &gt;    -
                                              dummyServer: ejemplo
                                              sencillo de<br>
                                              &gt;                
                                              "servidor"<br>
                                              &gt;                 &gt;
                                                      ICE.<br>
                                              &gt;                 &gt;
                                                      &gt;    -
                                              dummyClient: ejemplo
                                              sencillo de<br>
                                              &gt;                
                                              "cliente" ICE.<br>
                                              &gt;                 &gt;
                                                      &gt;    -
                                              dummyInTheMiddle: ejemplo<br>
                                              &gt;                
                                              no-tan-sencillo de
                                              componente que hace de<br>
                                              &gt;                 &gt;
                                                      &gt;
                                              "cliente-servidor" ICE.<br>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;
                                                      &gt;    El
                                              problema está en ese
                                              tercer<br>
                                              &gt;                
                                              componente. No logro hacer
                                              que<br>
                                              &gt;                 &gt;
                                                      &gt; funcione como
                                              cliente y como servidor al<br>
                                              &gt;                 mismo
                                              tiempo. La idea es que<br>
                                              &gt;                 &gt;
                                                      &gt; tal
                                              componente sea cliente de<br>
                                              &gt;                
                                              "dummyServer" (del cual
                                              recibe un número)<br>
                                              &gt;                 &gt;
                                                      &gt; y, por
                                              ejemplo, modifique ese
                                              número para<br>
                                              &gt;                 que
                                              "dummyClient" lo pille de<br>
                                              &gt;                 &gt;
                                                      &gt; aquí
                                              modificado.<br>
                                              &gt;                 &gt;
                                                      &gt;    Sí, ya sé
                                              que es un ejemplo
                                              tontorrón<br>
                                              &gt;                 (de
                                              ahí el nombre), y quizás<br>
                                              &gt;                 &gt;
                                                      &gt; sin sentido.
                                              Pero obviamente el
                                              objetivo<br>
                                              &gt;                 es
                                              otro componente mucho más<br>
                                              &gt;                 &gt;
                                                      &gt; complejo...<br>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;
                                                      &gt;    Por favor,
                                              si alguien conoce algo más<br>
                                              &gt;                 sobre
                                              ICE y puede echar un ojo<br>
                                              &gt;                 &gt;
                                                      &gt; a ese
                                              componente, a ver qué
                                              falla, se lo<br>
                                              &gt;                
                                              agradecería.<br>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;
                                                      &gt;    Saludos,<br>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;
                                                      &gt;    Julio<br>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;
                                                      &gt;    [<br>
                                              &gt;                 &gt;
                                                       1]<br>
                                              &gt;                 <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>
                                              &gt;                 &gt;
                                                      &gt;<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      --<br>
                                              &gt;                 &gt;
                                                      Roberto Calvo
                                              Palomino          | Libre<br>
                                              &gt;                
                                              Software Engineering Lab
                                              (GSyC)<br>
                                              &gt;                 &gt;
                                                      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>
                                              &gt;                
                                              Universidad Rey Juan
                                              Carlos<br>
                                              &gt;                 &gt;
                                                      <a
                                                moz-do-not-send="true"
                                                href="mailto:rocapal@libresoft.es"
                                                target="_blank">rocapal@libresoft.es</a>
                                                         | Edif.<br>
                                              &gt;                
                                              Biblioteca - Despacho
                                              B103<br>
                                              &gt;                 &gt;
                                                      <a
                                                moz-do-not-send="true"
                                                href="http://libresoft.es/"
                                                target="_blank">http://libresoft.es/</a>
                                                         | Camino del<br>
                                              &gt;                
                                              Molino s/n - 28943
                                               (Madrid)<br>
                                              &gt;                 &gt;<br>
                                              &gt;                 &gt;
                                                      GPG-KEY:<br>
                                              &gt;                 <a
                                                moz-do-not-send="true"
                                                href="http://gsyc.es/%7Erocapal/rocapal.gpg"
                                                target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
                                              &gt;                 &gt;<br>
                                            </div>
                                          </div>
                                          &gt;                
                                          ______________________________________________________<br>
                                          <div>
                                            <div>&gt;<br>
                                              &gt;<br>
                                              &gt;                 &gt;
                                              Jde-developers mailing
                                              list<br>
                                              &gt;                 &gt;
                                              <a moz-do-not-send="true"
href="mailto:Jde-developers@gsyc.es" target="_blank">Jde-developers@gsyc.es</a><br>
                                              &gt;                 &gt;<br>
                                              &gt;                 <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>
                                              &gt;<br>
                                              &gt;                 --<br>
                                              &gt;                
                                              Roberto Calvo Palomino  
                                                     | Libre Software<br>
                                              &gt;                
                                              Engineering Lab (GSyC)<br>
                                              &gt;                 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>
                                              &gt;                
                                              Carlos<br>
                                              &gt;                 <a
                                                moz-do-not-send="true"
                                                href="mailto:rocapal@libresoft.es"
                                                target="_blank">rocapal@libresoft.es</a>
                                                         | Edif.
                                              Biblioteca -<br>
                                              &gt;                
                                              Despacho B103<br>
                                              &gt;                 <a
                                                moz-do-not-send="true"
                                                href="http://libresoft.es/"
                                                target="_blank">http://libresoft.es/</a>
                                                         | Camino del
                                              Molino<br>
                                              &gt;                 s/n -
                                              28943  (Madrid)<br>
                                              &gt;<br>
                                              &gt;                
                                              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>
                                              &gt;<br>
                                              &gt;<br>
                                              &gt;        
                                              _______________________________________________<br>
                                              &gt;        
                                              Jde-developers mailing
                                              list<br>
                                              &gt;         <a
                                                moz-do-not-send="true"
                                                href="mailto:Jde-developers@gsyc.es"
                                                target="_blank">Jde-developers@gsyc.es</a><br>
                                              &gt;         <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>
                                              &gt;<br>
                                              &gt;<br>
                                              &gt;<br>
                                              &gt;
                                              _______________________________________________<br>
                                              &gt; Jde-developers
                                              mailing list<br>
                                              &gt; <a
                                                moz-do-not-send="true"
                                                href="mailto:Jde-developers@gsyc.es"
                                                target="_blank">Jde-developers@gsyc.es</a><br>
                                              &gt; <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>