[Jde-dev] Problemas con Implementación de JointsArray
Juan Gonzalez
juan en iearobotics.com
Vie Mar 19 09:42:40 CET 2010
Hola,
Bueno, leyendo el manual, he conseguido solucionar mis problemas de
compilación. Ya he conseguido hacer el mapeo entre las articulaciones
del servidor (JointI) y asignarlas a JointSeq. El exorcismo en cuestión
es este:
JointIPtr j1 = new JointI(pcontroller);
JointPrx proxy = JointPrx::uncheckedCast(adapter->addWithUUID(j1));
_JointSeq.push_back(proxy);
Ahora compila, pero me sale un bonito
/usr/include/IceUtil/Handle.h:46: IceUtil::NullHandleException
en tiempo de ejecución al acceder desde el cliente a las articulaciones.
Se me ha debido pasar algo por alto.... seguiré probando. Pero al menos,
conseguir que me compilase ha sido todo un logro :-)
os seguiré informando
Saludos, Juan
El vie, 19-03-2010 a las 09:35 +0100, Juan Gonzalez escribió:
> Hola David,
>
> Gracias por la info. Creo que voy a tener que dedicar un más poco de
> tiempo a la lectura del manual para familiarizarme con toda la
> terminología de ICE.
>
> Me emocioné implementando la interfaz de Joint y pensé que JointsArray
> me llevaría menos tiempo. Me voy a documentar y luego volveré a la
> carga ;-)
>
> Saludos, Juan
>
> El jue, 18-03-2010 a las 13:43 -0400, David Lobato escribió:
> > Mirate el ejemplo del manual del Filesystem, declaran una secuencia
> > con la misma pinta.
> > EL asunto es que tienes que crear las instancias de los Joints,
> > añadirlas al object adapter y una vez echado a andar preguntar al
> > object adapter por los proxys de cada una de las instancias.
> >
> >
> > El tema concreto es servant locator.
> >
> >
> > David.
> >
> > 2010/3/18 Juan Gonzalez <juan en iearobotics.com>
> > Hola,
> >
> > Todavía estoy muy verde con el ICE y tampoco soy un
> > programador en C++
> > experimentado, por lo que estoy encontrando problemas para
> > implementar
> > el servidor de jointsArray. Necesito algo de luz ;-)
> >
> > De momento, estoy trabajando con esta interfaz:
> >
> > module jderobot {
> >
> > interface Joint {
> > idempotent void setPos(short pos);
> > idempotent short getPos();
> > };
> >
> > sequence<Joint*> JointSeq;
> >
> > interface JointsArray{
> > JointSeq getJoints();
> > };
> >
> > };
> >
> > La Interfaz "Joint" la tengo implementada y funciona bien. Mis
> > problemas
> > aparecen cuando intento implementar la función getJoints() de
> > la
> > interfaz "JointsArray". No sé cómo crear los elementos de
> > JointSeq.
> >
> > Según he leido en el manual de ice, el mapeo de esto:
> >
> > sequence<Joint*> JointSeq
> >
> > a c++ debería ser:
> >
> > vector<Joint*> JointSeq
> >
> > Desde aquí tendría fácil acceso a Joint en el servidor. Pero
> > como Joint
> > es a su vez una interfaz, el mapeo que hace es:
> >
> > typedef ::std::vector< ::jderobot::JointPrx> JointSeq;
> >
> > Y ahí ya estoy perdido. Ni idea de cómo puedo acceder a
> > Joint :-(
> >
> > ¿Alguien me arroja luz?
> >
> > Mientras tanto voy a seguir leyendo el manual de ICE
> >
> > Saludos, Juan
> >
> >
> >
> > --
> > Blog: www.iearobotics.com/blog
> > Web: www.iearobotics.com/juan
> >
> > _______________________________________________
> > Jde-developers mailing list
> > Jde-developers en gsyc.es
> > http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
> >
> >
--
Blog: www.iearobotics.com/blog
Web: www.iearobotics.com/juan
More information about the Jde-developers
mailing list