logo logo
Home arrow Forums...
Thursday, 08 January 2009
 
 
English English  Español Español  
Upcoming Events
10.Jun. 2009

IWANN 2009
Salamanca, Spain
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
14.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
Tag Cloud
Architectures Associations Books Conferences Conscious Consciousness Developer Documentación Documentation Español Howto Machine Machine Consciousness Machines Neuroscience Publications Research Researchers Reviews Robotics Robots Spanish Studio VPL
Spotlight
Conscious-Robots.com Forum  


Raúl
Moderator

Moderator
Posts: 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
  The administrator has disabled public write access. Please, register to participate in the forum.

      Topics Author Date
    thread link
Duda sobre los partners
laso_d 2008/10/09 14:39
    emo
thread linkthread link Re:Duda sobre los partners
Raúl 2008/10/09 21:08
    thread link
thread linkthread link Re:Duda sobre los partners
laso_d 2008/10/18 21:47
    emo
thread linkthread linkthread link Re:Duda sobre los partners
Raúl 2008/10/19 13:46
Syndicate
 Conscious Robots RSS FeedConscious Robots RSS Feed





Lost Password?
No account yet? Register
Last Posts in Forum
 
Top! Top!