Raúl
Moderador
 Moderador
| Mensajes: 443 |  | Karma: 6
|
Re:Dudas con el dashboard - 2008/08/18 08:59
Hola,
Lo primero, es que si estás usando un servicio que implementa GenericDifferentialDrive y este se está ejecutando cuando lanzas el SimpleDashboard deberías verlo en la lista de servicios que aparecen (una vez que te has conectado al nodo DSS).
En cualquier caso, te cuento como puedes hacer para controlar los servicios que aparecen en las lista del SimpleDashboard (por cierto, también puedes ver como lo he modificado yo en mi CraniumDashboard, que está incluido en la descarga de la aplicación ExplorerSimSonar).
En el proyecto del servicio SimpleDashboard hay un archivo que se llama DriveControl.cs. En ese archivo encontrarás un método que se llama ReplaceDirectoryList:
| Code: | public void ReplaceDirectoryList(ServiceInfoType[] list)
|
Este método se encarga de rellenar la lista de servicios que se presentan al usuario en la GUI de SimpleDashboard. Mira un ejemplo de mi código para que veas como he añadido el servicio de sonar:
| Code: | foreach (ServiceInfoType info in list)
{
if (info.Contract == sicklrf.Contract.Identifier ||
info.Contract == drive.Contract.Identifier ||
info.Contract == arm.Contract.Identifier ||
info.Contract == pxsonar.Contract.Identifier )
{
Uri serviceUri = new Uri(info.Service);
listDirectory.Items.Add(serviceUri.AbsolutePath);
}
}
|
Por lo tanto, sólo tienes que añadir tu servicio en este foreach. Te decía antes que el drive tiene que aparecer porque ya es la segunda condición del if, después del LRF..
Luego tienes que controlar qué pasa cada vez que el usuario hace doble clic en un elemento de esa lista (la lista de servicios), para eso mira el método listDirectory DoubleClick:
| Code: | private void listDirectory_DoubleClick(object sender, EventArgs e)
|
En el caso de un servicio que implemente drive, se hace lo siguiente:
| Code: | if (info.Contract == drive.Contract.Identifier)
{
_eventsPort.PostUnknownType(new OnConnectMotor(this, info.Service));
}
|
Bueno, en definitiva el tema es que para modificar el Dashboard que viene con MSRS tienes que entender todo este código... O al menos como funcionan estos métodos. Ya me contarás que tal te va..
Saludos,
Raúl.
Raúl Arrabales Moreno. conscious-robots.com/raul |