![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Mantenimiento de ISA/CRP: diagnóstico de problemasQué son el ISA/CRPSon dos programas que intervienen como intermediarios para solicitar a los equipos de InfoGlobal que se ponga una cámara en los retroproyectores gigantes del puesto de mando, de Puerta del Sur o en las pantallas de plasma de los TICS. Para algunas estaciones del metro, también se usa para enviar las petiones de cámaras en los casos en que dichas peticiones no vayan por la unidad maestra. Arquitectura[Retroproyectores] [VideoWall/aplicación de infoglobal] [CRP] [ISA] [ui_plano/ui_teleindicador_integ] Cada retroproyectos o pantalla de plasma es el monitor de un equipo de InfoGlobal denominado VideoWall (es una máquina WIndows, generalmente Windows 2000). Todos los VideoWalls que forman un mosaico "simulando una pantalla gigante" se conectan al mismo CRP (por socket TCP, puerto 7201 [7202, 7203...] en adelante, cada VideoWall a un puerto diferente; los puertos se asignan contado desde la esquina superior izquierda de izquierda a derecha y después avanzando de arriba a abajo). Hay una anomalía para el TICS de ministerios, en los que el CRP de seguridad tiene el puerto 7301 en adelante. El CRP de SICO es un equipo de los embebidos tipo pupitre_sc (de los negros de 1U) que corre una única aplicación: crp_main. Anomalías: los crps de Alto del Arenal (crp01, crp02) son máquinas normales, al igual que los crps de puerta del sur (panelvga05 y panelvga06). A dicho CRP se conectan los ISAS al puerto 7200 TCP (otra vez, anomalía en seguridad de TICS de ministerios que se conectan al 7300). El ISA es una aplicación que hace las funciones: 1) Dejar elegir al usuario dónde quiere situar la siguiente cámara 2) En el caso de los puestos de operador, poder elegir una cámara a poner de una lista (la lista está definida en un fichero de configuración llamado fich_video_estaciones; es muy importante porque si metro cambia la lista, hay que cambiar el fichero en todos los equipos que ejecutan el ISA). 3) En el caso de que se puedan fijar cámaras usando el ui_plano/ui_teleindicador_integ, el ui_plano/ui_teleindicador_integ usa un módulo llamado libisacd que le permite comunicarse con el ISA utilizando memoria compartida, y así solicitar al ISA que se fije tal o cuál cámara. La última parte es el ui_plano/ui_teleindicador_integ, que como decía en el punto (3), puede fijar cámaras usando una comunicación con el ISA por memoria compartida y señales. Tipos de cámarasEl CRP guarda un fichero de estado llamado estado.retros en el que se pueden ver qué cámaras están activas en cada posición junto con otros datos. En cada retro (o pantalla de plasma) puede haber una sólo cámara ocupando todo el retroproyector o bien 4 cámaras (con el retroproyectos dividido en 4 cuadrantes). Hay los siguientes tipos de cámaras: 1. Cámaras de estación tipo VEC...: son las que se ponen desde la lista que hay en el ISA. Viene de "Video de Estacion Central". Los números que le siguen son: VEC<ll><ee><ccc>; siendo <ll> el número de línea, <ee> el número de estación y <nnn> el número de entrada en la BBDD para esta línea/estación con la cámara que se quiere fijar. 2. Cámaras de estación tipo VEL...: son las que se ponen desde el ui_plano. Viene de "Vídeo de Estación Local". Se interpreta igual que el VEC sólo que <nnn> es el número cámara de la estación que se quiere fijar (mucho más lógico que lo de las BBDD de antes). 3. Cámaras de trenes tipo VTC...: Indican la cámara de un tren ("Vídeo de Trenes Central"). Los números que le siguen son: VTC<ttttt>/<nn>; siendo <ttttt> el número de unidad de tren (su matrícula), <nn> el número de cámara dentro de ese tren (puede ser 01 o 02). Así, una cámara de este tipo es VTC08263/01 4. Rondas tipo VER01...: indican una ronda (una lista prefijada de cámaras que el operador ha inicializado en la BBDD de infoglobal usando una aplicación de InfoGlobal llamada MetroCli). Otros equipos que pueden fijar cámarasTanto en el puesto de mando como en los TICs hay un PC windows de InfoGlobal con una aplicación llamada MetroCLI, que también les permite ver y fijar cámaras. Cómo entrar en los diferentes equiposen un CRP Se entra con un telnet a su IP (lo más cómodo es ip a la OP desde la que te han informado del problema y escribir "telnet CRP") con usuario/pass: isa/metro1. Una vez dentro te vas al directorio /home/ControlRetros/Datos Anomalía: en el TICS de ministerios hay un solo equipo CRP y dentro de él hay dos instancias del CRP. La parte de estaciones del TCS tiene sus datos en /home/ControlRetros/Datos, mientras que la parte de seguridad (de donde casi seguro que ha llegado la incidencia si la hay) está en /home/ControlRetros/Datos7300. En un operador que corre el ISA Entras de la manera habitual (si es un poi con un ssh, si es una op con un telnet/rlogin) y te vas al directorio $ cd /usr/local/sico/isacd En una estación Entras en el PC del TCE de la maera habitual y el ISA está en $ cd /home/metro/isacd El CRP está en $ cd /home/metro/crp (sí, en los PCs de estación que tienen el ISA, también corren de forma local el CRP). Problema: dicen que no funciona (normalmente que un videlwall de IG no está conectado)En el crp ves el estado actual (son los números entre paréntesis de APLI; los que están en blanco es que no están conectados; en el listado se empiezan a contar desde 0 pero infoglobal llama a los videowalls desde 1): # tail /home/ControlRetros/Datos/crp.log También para ver la conexiones/desconexiones sólo: # grep '!' /home/ControlRetros/Datos/crp.log Problema: cámaras o rondas que no existen en el ISAEso es que han actualizado la BBDD y hay que llevar el fich_video_estaciones a todas las máquinas. 1. Te vas a salchicha y entras como darío 2. Te vas al siguiente directorio: $ cd /home/dario/Programacion/proyectos/sico-actualiza/op/*es3. Ejecutas (en el monitor de salchicha): $ ./actualiza-todo.sh4. Cuando se te abre una ventana y te dice que apuntes un md5, lo apuntas (bueno, con que apuntes las primeras 4 "cifras" vale) 5. Vas dando al ENTER en la ventana original para que vaya actualizando cada máquina. Si en alguna se queda colgada, miras un poco más arriba el nombre de la máquina y la apuntas (o no, no importa mucho) haces un ctrl-c y seguirá con la siguiente. Después de actualizar una máquina te pone el md5 actualizado, compruebas que es el que apuntaste (si no coincide, seguramente es que el disco está en read-only; pero rara vez ocurre). 6. Apuntas aquí que lo has actualizado. Problema: "Largo Linea debe ser 1" (no se pueden fijar cámaras de vídeo de trenes)Si haces un grep de "Largo": cd /home/ControlRetros/Datos grep -B5 "Largo" crp.log Y obtienes algo del estilo de:
Entonces es que el ISA se ha desconfigurado. En la OP correspondiente haz lo siguiente: cd /usr/local/sico/isacdEdita el "autosel.cfg" para que la línea que empieza por "VIDEO TRENES" termine en "1,1" (cuando está mal, termina en "2,2":
Reinicias al isa: ps -efa | grep isa | grep -v grep | grep -b relaunch | sed "s/ */ /g" | cut -d " " -f 2 | xargs kill Y ya debería estar arreglado. Cosas que se pueden comprobar en directorio /home/ControlRetros/Datos de los CRPVer conexiones/desconexiones de aplicaciones y de ISAs (la exclamación)Se hace un cd /home/ControlRetros/Datos grep '!' crp.log Con eso te pone sólo las líneas de estado que corresponden con que se ha conectado o desconectado una APLI (es decir, un videowall) o ISA (es decir, un puesto de operador). Ejemplo:
En el ejemplo se ve que:
Si quieres tener información precisa de las conexiones, has de hacer lo siguiente: /home/ControlRetros/Datos$ cat crp.log | logs/logsocket2ip.tcl | grep CONX | grep -v INFO (en caso de no tener el ejecutable logs/logsocket2ip.tcl, lo coges de main1:/incoming y lo pones ahí, dándole permisos de ejecución con un "chmod 755 logsocket2ip.tcl"). Comprobar si ha habido peticiones de vídeo de trenesSe hace un: cd /home/ControlRetros/Datos grep VTC crp.log Qué es un "socket de -1" en el crp.logSignifica que esa aplicación (videowall) no estaba conectada en el momento de intentar mandar la petición. Problema de infoglobal => Sin incidencia para SICO. Comprobaciones adicionales (helper scripts)En caso de tener que mirar petición a petición qué ha pasado, hay una script en pike que se puede usar en frontpci02. Hace falta saber la IP del isa a comprobar. 1. Te llevas el crp.log a main1:/incoming 2. Entras en frontpci02 3. Te pones en el directorio /incoming 4. Haces: ./check-log-unfulfilled.pike crp.log ip_del_isa> /tmp/res5. Ver sólo los mensajes de error proporcionados por APLI (es decir, el videowall) grep -B1 Estado /tmp/res5. Examinar todas las peticiones y sus respuestas less /tmp/res Básicamente, en el fichero /tmp/res tienes filtrado el crp.log de manera que sólo ves las petiones del ISA que has indicado, y pone cada petición hecha por el ISA seguida de la respuesta que proporcionó la APLI (es decir, el videowall). |