logo logo
Inicio arrow Foros...
Wednesday, 07 de January de 2009
 
 
English English  Español Español  
Próximos Eventos
10.Jun. 2009

IWANN 2009
Salamanca, Spain
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
15.Jun. 2009

International Workshop on Machine Consciousness
Hong Kong, China
15.Jun. 2009

The 8th IEEE International Conference on Cognitive Informatics
Hong Kong, China
22.Jun. 2009

IWINAC 2009
Santiago de Compostela, Spain
Etiquetas
Análisis Artificial Científicos Conciencia Consciencia Consciencia Artificial Conscientes Consciousness Developer Documentación Documentation Español Howto Investigación Publicaciones Reviews Robotics Robots Robótica Servicios Spanish Studio VPL artificial
Destacados
Conscious-Robots.com Forum  


laso_d
Usuarios

Expert Boarder
Mensajes: 39
graphgraph
Karma: 4  
Duda sobre los partners - 2008/10/09 14:39 Buenas, Raul

Como ya te comenté tenía un problema con el dashboard de mi aplicación del tipo
Code:

 Partner enumeration during service startup failed.Service will not start

.
Pero mi pregunta no es sobre el error sino como se utilizan los partners, o mejor dicho si es necesario que se ejecuten en el mismo momento. No se si me explico. Te pongo un ejemplo.

Yo ejecuto mi simulación, donde el manifest inicializa cuatro servicios; para el caso, el dashboard y otros tres. Pero todo ello lo tengo dentro de la misma solución en VS. En ese momento tengo los servicios corriendo y el dashboard funcionando correctamente.
Ahora bien, si yo me voy al projecto (solo al projecto) del dashboard, y lo ejecuto me dá el error. De aquí la pregunta de como funciona la enumeración de los partnes. Perdona pero todavía no se muy bien como va el tema de inicialización de los servicios.

Gracias de antemano.
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Duda sobre los partners - 2008/10/09 21:08 Hola,

Fíjate que lo que hace Visual Studio cuando le das a ejecutar es llamar al nodo DSS pasándole como parámetro un archivo manifest. Concretamente si miras en las propiedades de proyecto, en la solapa de depuración verás algo de este estilo:

Code:

 Start external program: C:Microsoft Robotics Studio (1.5)binDssHost.exe Start options: -port:50000 -tcpport:50001 -manifest:"AppsUC3MCraniumDashboardCraniumDashboard.manifest.xml"



Esto quiere decir que cuando ejecutes este proyecto de VS se llama al nodo DSS (DssHost.exe) y se le indica que arranque los servicios especificados en el manifiesto que se le pasa como parámetro (Start Options).

Normalmente, cada proyecto individual de un servicio tiene un manifest que contiene sólo ese servicio, con lo que si le das a ejecutar sólo lanza el propio servicio. Pero puede darse el caso, como tú indicas, en el que una solución de VS contiene varios proyectos (o no los contiene, pero hace referencia a los correspondientes ensamblados) y lo que hace es indicar como parámetro para el nodo DSS un archivo de manifest que arranca inicialmente todos los servicios necesarios.

De todas formas, éste no es el único método para arrancar servicios en MSRS. De hecho, cuando creas entidades de simulación, probablemente en un servicio que tengas que crea el mundo simulado, creas al vuelo los servicios asociados a cada entidad. Por ejemplo, si miras mi código MazeSimulatorRA, verás cómo creo, entre otros, el servicio Differential Drive usando el método CreateService:

Code:

 drive.Contract.CreateService(ConstructorPort,      Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(         "http://localhost/" robotBaseEntity.State.Name) );



Analogamente hago (de una forma más simple) para crear el servicio de Sonar, asociado a una entidad de sonar simulada:

Code:

 CreateService(       pxsonar.Contract.Identifier,       Microsoft.Robotics.Simulation.Partners.CreateEntityPartner(          "http://localhost/" sonar.State.Name) );




Esto hace que se creen los servicios sin que estén especificados en el archivo manifest. Simplemente se crean cuando se ejecutan estas líneas de código de otro servicio.

Como ya he creado los servicios de sonar y de tracción diferencial durante la ejecución del servicio de simulación de laberintos, cuando quiera usar el sonar o el diffDrive desde un servicio de control, sólo tengo que especificar que son partners así:

Code:

 // Drive Partner [Partner("Drive"Contract pxdrive.Contract.IdentifierCreationPolicy PartnerCreationPolicy.UseExisting)] pxdrive.DriveOperations _drivePort = new pxdrive.DriveOperations(); pxdrive.DriveOperations _driveNotify = new pxdrive.DriveOperations(); // Sonar Partner [Partner("Sonar"Contract pxsonar.Contract.IdentifierCreationPolicy PartnerCreationPolicy.UseExisting)] pxsonar.SonarOperations _sonarPort = new pxsonar.SonarOperations(); pxsonar.SonarOperations _sonarNotify = new pxsonar.SonarOperations();



Si te fijas, como en este caso los servicios ya estarán creados, el atributo de creación que uso es UseExisting. Pero en otros casos podría usar UseExistingOrCreate o CreateAlways para forzar a que se cree el servicio indicado.
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
laso_d
Usuarios

Expert Boarder
Mensajes: 39
graphgraph
Karma: 4  
Re:Duda sobre los partners - 2008/10/18 21:47 Buenas, Raul:

Haber si lo he entendido.

Quiere esto decir que los servicios se lanzan con el Manifest o dentro del propio servicio lanzadolos mediante CreateService, y una vez hecho esto se pueden utilizar en el resto de servicios mientras el resto de servicios los tengan como partners ¿no?

Gracias.
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:Duda sobre los partners - 2008/10/19 13:46 Sí, basicamente así es como veo que me funcionan a mi las cosas... No sé si hay documentación específica de Microsoft al respecto, pero echaré un vistazo y si veo algo (a parte de los tutoriales de servicios) lo pongo aquí.
Saludos,
Raúl.

Mensaje editado por: Raúl, el: 2008/10/19 13:46
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.
Titulares RSS
 Conscious Robots RSS FeedFuente RSS de Conscious Robots





¿Recuperar contraseña?
¿Quieres registrarte? Hazlo aquí
Mensajes en el Foro
 
Top!
Advertising links: Credit Cards - Arizona Pools - Loans - Guitar Books
Top!