logo logo
Inicio arrow Robotics Studio... arrow Robotics Studio Howto (Cómo hacer) arrow Más de 20 puertos en un PortSet
Tuesday, 07 de October de 2008
 
 
English English  Español Español  
Etiquetas
Análisis Artificial Associations Científicos Conciencia Consciencia Consciencia Artificial Conscientes Consciousness Howto Investigación Microsoft Máquinas Publicaciones Researchers Reviews Robot Robotics Robots Robótica Servicios Studio artificial conciencia
Más de 20 puertos en un PortSet Imprimir E-Mail
escrito por Raúl Arrabales Moreno   
Monday, 03 de September de 2007

¿Cómo usar más de veinte puertos en un PortSet?

En Robotics Studio las operaciones que soporta un servicio se definen como puertos de un PortSet de CCR (Microsoft.Ccr.Core.PortSet). Y esto se define como un conjunto de puertos de tipo genérico:  PortSet<T0, ..., T19>.

El problema aparece cuando quieres usar más de 20 puestos en el mismo conjunto de puertos, porque no hay una definición para por ejemplo:  PortSet<T0,...,T24>.

Las buena noticia (según la respuesta de George Chrysanthakopoulos en el foro de MSRS) es que hay un nuevo tipo de variable PortSet disponible en la versión 1.5 de MSRS. Usando este nuevo tipo puedes tener tantas operaciones como quieras.

Nota: En .NET Compact Framework la limitación es de 8 argumentos genéricos por clase. Sin embargo, este mismo enfoque se puede aplicar para soslayar este problema.

Sigue los siguientes pasos para tener tantas operaciones como quieras:

1.- En ves de usar el PortSet genérico, usa la clase PortSet  no-genérico y pasa los tipos de las operaciones como una lista en el constructor del PortSet:

Ejemplo:

En vez de usar esto:

class DriveControlEvents : PortSet<OnLoad,OnClosed,...> 

Usar lo siguiente:

public class DriveControlEvents : PortSet
{
public DriveControlEvents()

    : base(
typeof(OnLoad),
typeof(OnClosed),
typeof(OnChangeJoystick),
typeof(OnConnect),
typeof(OnConnectMotor),
typeof(OnConnectSonar),
typeof(OnConnectSickLRF),
typeof(OnConnectArticulatedArm),
typeof(OnConnectWebCam),
typeof(OnStartService),
typeof(OnMove),
typeof(OnRotate),
typeof(OnTranslate),
typeof(OnEStop),
typeof(OnApplyJointParameters),
typeof(OnDisconnectSonar),
typeof(OnDisconnectSickLRF),
typeof(OnDisconnectWebCam),
typeof(OnLogSetting),
typeof(OnQueryFrame),
typeof(OnConnectSetting),
typeof(OnOptionSettings))
{}
}

 

2.- Si tu servicio se envía mensajes a sí mismo, sustituye el mensaje post por la llamada PostUnknownType.

Ejemplo:

private void btnConnectSonar_Click(object sender, EventArgs e)
{
  
string SONAR = ServiceByContract(pxsonar.Contract.Identifier);
  
if (sonar != null)
   {
       _eventsPort.PostUnknownType(
new OnConnectSonar(this, sonar));
   }
}

 

3.- En el patrón Arbiter principal (por ejemplo, el Interleave donde especificas los manejadores para cada operación), sustituye Arbiter.Receive por ArbiterReceiveFromPortSet y Arbiter.ReceiveWithIterator por Arbiter.ReceiveWithIteratorFromPortSet para aquellas operaciones definidas en el PortSet no genérico.


Related Items:

  1. Páginas de Microsoft Robotics Studio
  2. Raúl Arrabales Moreno
  3. Cómo encontrar artículos sobre consciencia y robótica
  4. Consciencia e IA. AAAI Symposium. 2007
  5. International Workshop on Artificial Consciousness 2005
  6. Models of Consciousness Workshop 2003
  7. Toward a Science of Consciousness 2008
  8. 13 Conf. Finlandesa de Inteligencia Artificial (STeP 2008)
  9. Nokia Workshop on Machine Consciousness 2008
  10. Holland (2003) Machine Consciousness

Add as favourites (73) | Cite este artículo en su sitio | Views: 1589 | E-Mail

  Sea el primero en comentar el artículo
RSS de los comentarios

Solo los usuarios registrados pueden agregar sus comentarios.
Por favor, vaya a login, o regístrese.

Powered by AkoComment Tweaked Special Edition v.1.4.4

Modificado el ( Monday, 03 de September de 2007 )
 





¿Recuperar contraseña?
¿Quieres registrarte? Hazlo aquí
Categorías
Mensajes en el Foro
Últimos Comentarios
My review of Conscious Machines
Review of the book ‘The Co...
23/09/08 12:32 Más...
Por Raúl

Re: How do i use this in a simulated rob
Hi, let me answer...
12/08/08 14:46 Más...
Por Raúl

How do i use this in a simulated robot?
I\'m entirely new ...
10/08/08 16:30 Más...
Por carlcs

How do i use this in a simulated robot?
I\'m entirely new ...
10/08/08 16:29 Más...
Por carlcs

Foro de Robotics Studio en Español
Hola sutaro, he copiado...
17/07/08 14:32 Más...
Por Raúl

fallo de ejecución:Unhandled within caus
Hola a todos, es ...
17/07/08 13:03 Más...
Por sutaro

Amazed Challenge 2
Good news for those of you who missed t...
03/07/08 11:21 Más...
Por Raúl

Poster Session Pictures
Some pictures of the poster sessio...
08/04/08 13:17 Más...
Por Raúl

Final Announcement and Conference Overvi
Final Announcemen...
07/02/08 12:45 Más...
Por Raúl

Discussion about test for consciousness
More information a...
29/01/08 15:01 Más...
Por Raúl

 
Top! Top!