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

Apuntes sobre la comunicación con el CBTC de bombardier

Analizando los dos primeros mensajes:

>>> 80 00 00 54 00 00 00 11 00 00 00 00 00 00 00 2D 00 00 00 65 00 00 00 66 00 00
00 44 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF

Mensaje de sico a bombardier (">>>"), marcador de último elemento del mensaje (empieza por 0x80), de tamaño 0x54 (84 bytes).

Como sólo se envía un tipo mensaje de sico a bombardier, no se requiere discriminante de tipo de mensaje, y vienen directamente los datos del mensaje. En este caso tiene como datos un entero (Ws) con valor 0x11 (17), seguido de 20 enteros con valores {0x0,0x2d,0x65,0x66,0x44,-1,...,-1}.

Se codifica en /home/teleind/linux/f_misc/SicoXDR.c:xdr_peticion_bd_rojo

<<< 80 00 00 20 00 00 52 E8 00 00 00 01 00 00 00 00 00 00 00 07 31 31 31 54 5F 5
0 43 00 00 00 00 00 00 00 00 00

Supongo que el primer mensaje que manda bombardier es "InitialStatus-message"

Este es un mensaje de bombardier a sico ("<<<").

Supongo que siendo el primer mensaje que manda bombardier, es un mensaje de tipo "InitialStatus-message", pero el mensaje que habéis enviado le falta el discriminador de tipo de mensaje (CBTC_MENS_INICIALIZACION, con valor 0x02), que debería ir justo detrás de la cabecera (debería empezar con algo del estilo de 0x80 0x00 0x00 0x20 0x00 0x00 0x00 0x02...).

El mensaje correcto (con el discriminador de tip de mensaje y ajustado el tamaño de mensaje en la cabecera), sería:

80 00 00 24 <-- Cabecera: Último fragmento, tamaño de datos en fragmento 0x24 (36 bytes)
00 00 00 02 <-- Discriminador de tipo de mensaje: CBTC_MENS_INICIALIZACION ("InitialStatus-message")
00 00 52 E8 <-- (Mensaje de estado inicial) índice unívoco: 0x52e8
00 00 00 01 <-- (Mensaje de estado inicial) número de línea: 1
00 00 00 00 <-- (Mensaje de estado inicial) Discriminador de tipo de objeto: 0 (CCBTC_CIRCUITO_VIA)
00 00 00 07 <-- (Mensaje de estado inicial, circuito via) Tamaño de cadena nombre objeto: 7
31 31 31 54 5F 50 43 00 <-- (Mensaje de estado inicial, circuito via) Cadena nombre de objeto: "111T_PC"
00 00 00 00 <-- (Mensaje de estado inicial, circuito via) Estado de circuito vía: 0x00
00 00 00 00 <-- (Mensaje de estado inicial, circuito via) Número de trenes en circuito: 0

Supongo que lo que os ha confundido es que los mensajes de sico a bombardier no tienen discriminador (por haber un único mensaje, no se necesita). Pero en los mensajes de bombardier a sico sí hay discriminador, y es esencial para saber qué mensaje enviando y así poderlo parsear de forma correcta.

Por otro lado, el segundo discriminador de la estructura "(Mensaje de estado inicial) Discriminador de tipo de objeto: 0 (CCBTC_CIRCUITO_VIA)" sí está siendo utilizado correctamente. Sólo hace falta añadir el discriminador del tipo de mensaje y los mensajes que enviais deberían ser correctos.

Se codifica en /home/teleind/linux/f_misc/SicoXDR.c:xdr_mensaje_cbtc

Otro mensaje decodificado: el de sincronización

<<< 80 00 00 24 00 00 00 01 00 00 00 01 00 00 00 09 00 00 00 13 32 30 30 37 2F 30 31 2F 30 39 20 31 31 3A 31 37 3A 34 37 00

"<<<": Bombardier a Sico
80 00 00 24 <-- Tamaño: 0x24 (36bytes), último fragmento
xdr_mensaje_cbtc
00 00 00 01 <-- Tipo de mensaje CBTC_MENS_CAMBIO_DE_ESTADO(1)
xdr_cambio_estado_cbtc
00 00 00 01 <-- Indice unívoco: 1
00 00 00 09 <-- Tipo de Objeto: CBTC_SINCRONIZACION(9)
xdr_sincronizacion_cbtc
00 00 00 13 <-- Tamaño de string 0x13 (19 bytes)
32 30 30 37 2F 30 31 2F 30 39 20 31 31 3A 31 37 3A 34 37 00 <-- String "2007/01/09 11:17:47"


Otro mensaje decodificado: envío de base de datos
// ...24/01 13:10:26 WARNING (TraducirEstadoInicialCBTC2Rojo): CBTC_EQUIPO_DE_CAMPO NO implementado (IL MIGUEL HERNNDEZ)
//...24/01 13:10:26 BD 1 IndexCTC 17684 - (0 CV) 00000 Tren (0 - ) Composicion
#  remote2local 48 bytes
80 00 00 2C -- Tamaño: 0x2C (44bytes), último fragmento
00 00 00 02 -- Tipo de mensaje CBTC_MENS_INICIALIZACION(2)
00 00 45 14 -- Inice univoco 17684
00 00 00 01 -- Nro de Linea 1
00 00 00 04 -- Tipo de Objeto CBTC_EQUIPO_DE_CAMPO(4)
00 00 00 13 -- Tamaño de String: 19 bytes
49 4C 20 4D 49 47 55 45 4C 20 48 45 52 4E FF 4E 44 45 5A 00 -- String "IL MIGUEL HERN.NDEZ"
00 00 00 01 -- Estado de Objeto: 1

//...24/01 13:10:26 BD 1 IndexCTC 17700 157T_MH (0 CV) 00000 Tren (0 - ) Composicion
#  remote2local 240 bytes (extracto)
80 00 00 24 -- mensaje de 36 bytes
00 00 00 02 -- Tipo de mensaje CBTC_MENS_INICIALIZACION(2)
00 00 45 24 -- Ind. univ. 17700
00 00 00 01 -- Nro linea 1
00 00 00 00 -- Tipo de objeto CBTC_CIRCUITO_VIA(0)
00 00 00 07 -- Tamaño de String: 7 bytes
31 35 37 54 5F 4D 48 00 -- String "157T_MH"
00 00 00 00 -- Estado de Objeto: 0
00 00 00 00 -- !!!!! Entero con valor 0 no requerido, fuera de mensaje.Número de trenes pisando CV: 0
Diagnóstico: Se ha añadido un campo adicional de tipo entero con valor 0 al final del mensajeMensaje correcto

//...24/01 13:10:27 BD 1 IndexCTC 17745 D4T1_MH (0 CV) 00000 Tren (0 - ) Composicion

80 00 00 24 -- Tamaño de mensaje 36 bytes
00 00 00 02 -- Tipo de mensaje CBTC_MENS_INICIALIZACION(2)
00 00 45 51 -- Id. Univoco 17745
00 00 00 01 -- Nro linea 1
00 00 00 00 -- Tipo de objeto CBTC_CIRCUITO_VIA(0)
00 00 00 07 -- Tamaño de string 7 bytes
44 34 54 31 5F 4D 48 00 -- String "D4T1_MH"
00 00 00 00 -- Estado: 0
00 00 00 00 -- !!!!! Entero con valor 0 no requerido, fuera de mensaje.Número de trenes pisando CV: 0
Diagnóstico: Se ha añadido un campo adicional de tipo entero con valor 0 al final del mensajeMensaje correcto

//...24/01 13:10:27 BD 1 IndexCTC 17746 - (0 CV) 00000 Tren /2_BA_AA (12612 - ) Composicion A_AA

80 00 00 24 -- Tamaño de mensaje: 36 bytes
00 00 00 02 -- Tipo de mensaje CBTC_MENS_INICIALIZACION(2)
00 00 45 52 -- Id. unívoco 17746
00 00 00 01 -- Línea 1
00 00 00 01 -- Tipo de objeto CBTC_VUELTA_AUTOMATICA(1)
00 00 00 0A -- Tamaño de String 10
44 31 2F 32 5F 42 41 5F 41 41 00 00 -- Contenido de string de 10 bytes con valor "D1/2_BA_AA"
00 00 00 FF -- Estado 0xff
Diagnóstico: Se ha duplicado el campo de Tipo de Objeto CBTC_VUELTA_AUTOMATICA(1) Mensaje correcto

Link to this Page

  • SIV last edited on 20 December 2006 at 4:51:48 pm by salchicha.sico.local