![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Sistema de Seguimiento de Objetos (OTS, teleindicadores)Sistema de Seguimiento de Objetos (OTS, teleindicadores)Documentación completa en formato Word: OTS.doc NOTA: Aquí puedes consultar la documentación antigua Índice
1. Nivel de usuarioA nivel de usuario se tienen las siguietes partes visibles:
La relación entre los distintos procesos se puede ver en el siguiente esquema: ![]() El equipo (Servidor de Datos Móviles) en el que se ejecuta el OTS en el metro se llama "datos1_moviles". Se puede acceder a él con sólo ejecutar el script "datos1" desde el equipo "salchicha". Para ver la ejecución gráfica del MIND hay que exportar el display de datos1_moviles al frontPCI02 con el siguiente comando export DISPLAY=152.200.169.3:0Después desde nuestro equipo de SICO, nos conectamos por VNC al frontPCI02, que desde la red interna se le conoce como rdsi2 y tiene dirección IP 172.16.1.2 1.1 Generación de la base de datosLa base de datos tiene dos partes, una dinámica, que se crea según van llegando datos de campo, y una estática, que se crea desde unos ficheros de configuración (.CFG). De la parte dinámica no nos tenemos que preocupar, ya que su creación es totalmente automática. La parte estática hay que crearla con el mind-db-init. Lo que hace dicho programa es leer los ficheros de configuración del SIV (teleindicadores), en los cuales se definen los circuitos de vía, las estaciones, etc, y meterlas en la base de datos del mind. Los ficheros que genera son del tipo LNN-static.db La manera de llamar al programa es la siguiente:
1.2 Arranque de mindEstá explicado de manera correcta en la documentación para programadores. Sin embargo, en dicha documentación no se menciona al tetra. Para que el mind-tetra2ots funcione, hay que tener arrancado el tetra, que es un demonio aparte y suministra información al mind-tetra2ots.
1.3 Arranque de vidiEl vidi está diseñada para correr en la misma máquina que el mind. Sin embargo esto no es lo habitual, y para ello se usa el mind-hub. En caso de correr en una máquina diferente del datos1, hay tener arrancado un mind-hub de manera que la base de datos de datos1 esté replicada en la máquina local, y así mantener en dicha máquina una base de datos actualizada y usable. Hay que tener en cuenta que el vidi abre conexiones tanto con el mind (o mind-hub) como con tetra.
2. Quién habla con quién2.1 BalizasEl software de balizas (Mondragón) abre un socket contra el mind-balizas2ots 2.2 CTCEl mind-ctc2ots abre una conexión contra el serv_siv, que a su vez obtiene los datos del CTC. 2.3 SDR-TETRAEl tetra abre una conexión contra el SDR o ShortDataRouter (Amper). 2.4 Servidor de AudioEl software del servidor de audio (AudioServer) abre una conexión contra tetra 2.5 mind-hubEl mind-hub puede abrir una conexión contra tantos elementos que soporten su protocolo como se quieran. En general sólo se usará de dos maneras:
2.6 vidiEl vidi se conecta con:
3. Descripcióin a nivel de programador del sistemaMensajesLos mensajes que se pasan entre los mind-*2ots y el mind-hub o entre el mind-hub y el vidi se llaman "eventos del ots", y están definidos en ots-event.c La base de datosEl sistema está orientado a mantener una base de datos en tiempo real. Dicha base de datos está guardada en formato Berkeley-DB v4 (base de datos sin servidor central, sino compartida a nivel de ficheros). La base de datos es compartida, de manera que varios procesos pueden abrirla y realizar actualizaciones (transacciones) sobre ella, de forma atómica. VisitantesHay un objeto (visitor) que es usado para:
Para poderla recorrer se ayuda de los objetos visitor. Para comprender más o menos como funciona eso, ver linea-db-dump.c El interfaz de usuarioEl vidi es el interfaz del usuario. Para mostrar las cosas se ayuda de dos visitantes específicos para el vidi: set-glade y get-glade. A su vez, estos usan los ui-filters, que transforman los resultados de los visitantes por medio de más consultas a la base de datos para que en vez de aparece identificadores aparezcan nombres (p. ej. en vez del identificador numérico de andén, que aparezca el nombre de éste). Datos en la base de datos dinámicaGuarda la composición de trenes tanto según le llega por
y están jerarquizadas (balizas es más fiable que tetra que a su vez es más fiable que CTC). TetraEs un módulo aparte, que es usado por
La versión utilizada es la 1.4.6, con un parche que hace:
OTS.doc |