Skip to content
DGT 3.0 edited this page Nov 14, 2024 · 53 revisions

El caso de uso 10 está dedicado a la información relativa a eventos deportivos.

La DGT, con el servicio de balizamiento perimetral de eventos deportivos, recopila y publica la información de la localización en tiempo real de todos los eventos deportivos (competiciones ciclistas, eventos de atletismo en carretera, rallies, etc) que afectan a la circulación y seguridad vial de los usuarios que transitan por las vías del territorio español. La creación, publicación y eliminación de los planes y los recorridos de dichos eventos se realizará a través de los sistemas de la DGT.

Se utilizarán balizas V-2 para realizar el seguimiento de los eventos y conos conectados que informarán de los distintos cortes de las carreteras en las inmediaciones del circuito para garantizar la seguridad. De esta forma el usuario planifica mejor sus desplazamientos, y considerar la opción del uso del transporte público que permite reducción de las emisiones contaminantes.

La información de balizamiento de los eventos deportivos que llega al usuario final dependerá de la implementación realizada por el agente/tercero que consume la información de la plataforma DGT 3.0 y la publica a través del sistema de información del vehículo, aplicación móvil u otros dispositivos.

La plataforma cuenta con dos funcionalidades diferenciadas para la publicación (envío) y para la suscripción (recepción) de información. La primera es a través de una API REST del caso de uso y la segunda a través de un servicio MQTT en tiempo real.

La funcionalidad de publicación requiere de certificados de acceso que deben ser solicitados y suministrados por DGT 3.0. Estos certificados, de no haber sido solicitados ya, se deberán solicitar a soporte@cmobility30.es.

A continuación se muestran las URLs con las que se accede a cada funcionalidad:

Modo URL Descripción
Publicación https://pre.cmobility30.es/use-case-10 Endpoint del entorno de integración de clientes para la publicación (ciertos métodos de publicación serán accesibles para el consumo)
Suscripción ssl://production.cmobility30.es:8883 Endpoint para la suscripción

Publicación

Este caso de uso dispone de una API REST para la publicación (envío) de los datos por parte de las empresas que así lo deseen. En los siguientes apartados se pueden encontrar los detalles de esta:

  • Los detalles generales para realizar una petición:

General · (cmobility30.es)

  • Información relativa a los métodos específicos del caso de uso:

Metodos de publicación

  • Información relativa al detalles de las tablas maestras:

Tablas maestras

Suscripción

Este caso de uso también dispone de un servicio de suscripción (recepción) de datos por parte de las empresas que así lo deseen mediante el protocolo MQTT. Este caso de uso es solo para recibir el seguimiento de los conos y las balizas v2.

A continuación se pueden encontrar los detalles de la suscripción MQTT para este caso de uso 10 (Eventos deportivos):

MQTT (MQ Telemetry Transport) es un protocolo de mensajería que se usa como un método simple y liviano para transferir datos hacia/desde dispositivos de baja potencia.

El protocolo admite un único patrón de mensajería, cada mensaje es publicado en un tópico al que se debe suscribir para recibir la información. Existen dos tópicos diferentes, para representar la información de conos y señales v2.

La suscripción al servicio de este caso de uso deberá ser mediante los tópicos:

out_usecase10_cones

out_usecase10_v2

En los tópicos se publican los eventos en formato JSON. Aquí se puede ver un ejemplo para cada tópico:

out_usecase10_cones:

{
"actionId":"f58ed72f41c9f3e10dd34e62afb7bf2a92b313e1bb2f74e367de80092c854a7c",
"timestamp":"2024-09-03T10:02:01.203Z",
"lon":-3.68563,
"lat":40.24298,
"eventTypeId":2
}

out_usecase10_v2:

{
"actionId":"bb0bf84312ed13e30591279a6e0bc8e3ea46901161703dd2f045868e0bc71904",
"beaconTypeId":1,
"lon":-7.009654361999935,
"lat":38.52736428400004,
"timestamp":"2024-09-03T10:25:26.932Z",
"speed":50.0
}

Descripción de los campos para el caso de uso de eventos deportivos a través de la plataforma DGT 3.0.

  • actionId (texto): Identificador único del evento.
  • beaconTypeId (número entero): Tipo de baliza.
  • lon (número decimal): longitud de coordenadas de tipo WGS 84 donde se ha generado el evento.
  • lat (número decimal): latitud de coordenadas de tipo WGS 84 donde se ha generado el evento.
  • timestamp (Fecha UTC): Fecha y hora en formato UTC del momento en el que el evento se ha generado. Es necesario que sea de un máximo de 30 segundos de antigüedad con respecto a la hora UTC.
  • speed (número decimal): Velocidad a la que se mueve el dispositivo v2.

Ver más información y un ejemplo de conexión aquí.

Errores

Todas las respuestas HTTP que no sean 200 – OK, se pueden considerar inválidas. No obstante, determinados métodos de la API pueden responder con código 202 - ACCEPTED junto con una descripción indicando el motivo de aceptación. Independientemente de si el código del mensaje es 202 o uno de error, el formato de la respuesta es como el siguiente ejemplo:

{
    "status": 401,
    "code": 1,
    "message": "User not found or valid"
}

Respuestas parcialmente satisfactorias

  • HTTP Status: 202 - Accepted

    Code Message
    27 One more Beacon is expected in order to do the dynamic tracking

La información relativa a los errores en este caso de uso se puede encontrar aquí. Estos errores tendrán tres categorías principales:

Error de Autentificación

  • HTTP Status: 401 - Unauthorized

    Code Message
    1 User not found or valid

Error de Cliente

  • HTTP Status: 400 - Bad Request

    Code Message
    0 Authenticate
    2 Entity ID not found
    3 Missing required property
    4 The entity received cannot be processed
    5 Incorrect token received
    6 Expired token received
    7 There is an error with the token provided. Please request a new one
    8 No token received
    9 Required request body is missing
    10 Event is marked as expired by timestamp
    11 Missing request header
    12 Access denied role
    13 Unique key violated
    14 There is an error in one or more elements
    15 Invalid GeoJson
    16 GeoJson does not belong to municipality
    17 TimestampStart should be future
    18 TimestampEnd should be future
    19 TimestampStart should be before TimestampEnd
    20 The type is not a cone
    21 Cone use type has to be Infrastructure
    22 Cone vehicle type has to be None
    23 The beacon type must have value 4 (Unique)
    24 The plan requested to track was not found
    25 The event requested to track has not started yet or has already finished
    26 The provided coordinates for both dynamic tracking beacons are exactly the same

En el caso de obtener un error 3 - Missing required property la respuesta obtenida tendrá un valor en el message que nos indicará los campos que faltan por enviar:

{
    "status": 400,
    "code": 3,
    "message": "[cityIne: must not be null, parkingId: must not be null, timestamp: must not be null]"
}

Error de Servidor

  • HTTP Status: 500 - Internal Server Error

    Code Message
    28 Internal error