logo logo
Home arrow Forums...
Saturday, 11 October 2008
 
 
English English  Español Español  
Tag Cloud
Architectures Artificial Associations Books Brain Conscious Consciousness Forums Howto Machine Machine Consciousness Machines Microsoft Neuroscience Projects Publications Research Researchers Reviews Robot Robotics Robots Services Studio
Conscious-Robots.com Forum  


sutaro
User

Expert Boarder
Posts: 37
graphgraph
Karma: 2  
Duda entre utilizar los Arbiter o no - 2008/07/18 14:30 Hola, me ha surgido una duda acerca de si debo poner o no en el procedimiento principal los arbiter de todos los procedimientos( o de algunos) o directamente no utilizarlos. He estado viendo los tutoriales de Robotics pero no me lo dejan claro. Otra duda es que no sé para qué se utiliza el SpawmIterator. Siento mi gran ignorancia pero es la única fuente de conocimientos que encontré buena en este campo.
Gracias
  The administrator has disabled public write access. Please, register to participate in the forum.
Raúl
Moderator

Moderator
Posts: 394
graph
Karma: 6  
Re:Duda entre utilizar los Arbiter o no - 2008/07/18 17:59 Hola, la verdad es que con la documentación que hay a veces es dificil enterarse de cómo funcionan estas cosas...

La función spawniterator sirve para poder llamar directamente a un manejador de operación que devuelve el tipo IEnumerator<ITask> sin tener que usar el mecanismo normal. Además te permite pasar al manejador los parámetros que quieras explícitamente.

Sobre lo que preguntas de usar la primitiva arbiter creo que no lo entiendo muy bien. Tienes que usarlo cada vez que quieras usar un patrón de coordinación de CCR, como un Interleave o un activate (o una combinación). Algo muy normal es tener un interleave principal en el método start del servicio, por ejemplo:

Code:

 // Service main port Request Hander Setup Activate(     Arbiter.Interleave(        new TeardownReceiverGroup(            // Default Service Drop            Arbiter.Receive<DsspDefaultDrop>(false_mainPortDropHandler)                     ),        new ExclusiveReceiverGroup(            // Sonar update handler                Arbiter.Receive<SonarUpdate>(true_mainPortSonarUpdateHandler),            // Bumper array update handler            Arbiter.Receive<BumpersUpdate>(true_mainPortBumpersUpdateHandler),            // Bumper update handler            Arbiter.Receive<BumperUpdate>(true_mainPortBumperUpdateHandler),            // Drive update handler            Arbiter.Receive<DriveUpdate>(true_mainPortDriveUpdateHandler)         ),         new ConcurrentReceiverGroup(                         // Default DSS Lookup handler                         Arbiter.Receive<DsspDefaultLookup>(true_mainPortDefaultLookupHandler)         )     ) );



¿Te queda algo más claro?
Raúl Arrabales Moreno. conscious-robots.com/raul
  The administrator has disabled public write access. Please, register to participate in the forum.





Lost Password?
No account yet? Register
Last Posts in Forum
 
Top!
Advertising links: Credit - Refinance - Personal Loan - Debt Loans
Top!