View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Apuntes sobre el desarrollo de TETRA de los Moya (mind/vidi)

A continuación expongo lo que me dijo Paco en la conversaciónde 20/05/004 a las 13:45-14:20

Mind


Ha modificado mind para que ahora:
  • Usa una BBDD para cada línea
  • Tiene múltiples threads pero usando transacciones para los accesos ade la BBDD
  • Los objetos están confinados por dominios (líneas) y tablas estáticas ro (info geométrica) y tablas rw (cambios de estado).
  • Las tablas estáticas son fundamentalmente para el vido, pero también las usa MIND cuando aparece un tren por primera vez para saber la adyancencia, etc.
  • Ahora usa estructuras en vez de tipos genéricos, con lo que gana typesafeting en los tipos
  • Para poder tener con ese nuevo sistema un generador de tablas automático:
    • Hay macros para los cambios en las estructuras
    • genera los interfaces (tablas) automáticamente
    • Código para modificar los campos (ui->BBDD y llamar a los callbacks)
  • Los eventos ENTER/LEAVE se procesan para cada clase de objeto (p. ej. hay un ENTER_cvia, ENTER_baliza y un ENTER_ebts), de manera que las deducciones sean por dominio (y poder emular así la funcionalidad del SIV)
  • Usa un XMLgen delde el .x, para poder generar el código 'C' de los DUMP_tipoxxx (y así no depender del gawk para generar esas funciones).
  • El rpcgen2xml es un programa hecho por paco, mediante la modificación de los fuentes del rpcgen de toda la vida
  • Hay una tabla log de eventos indexada tanto por tipo como por tiempo, pero está limitada en tamaño.

Los protocolos


Test_audio_server ->[sicodaemon.x]->tetra o mind en puerto 36000

SDR en puerto 6006 <-[dimetra]<-TETRA

TETRA<->[monitor]<->mind

aunque ahora este último es simplemente
TETRA<[comando hardcoded del protocolo monitor]<-mind

Lo que FALTA


Sólo falta hacer un wrapper ligero de monitor a protocolo de proveedor de OTS, de manera que queden conectados TETRA y MIND, quedando:

 test_audio_server  <-> [sicodaemon.x]
                                  ^
                                  |
                                  v
                                tetra
                                  ^
                                  |
                                  v
                               [monitor]
                                  ^
                                  |
                                  v
                              proveedor mind
                                  ^
                                  |
                                  v
                                 mind

NOTAS


Entonces... lo del test_audio_server llegaría a mind a través del tetra (y no como ahora que le llega directamente).