diff --git a/README.md b/README.md index b5782ef46..eb5329ec6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,11 @@ -| CicleCI Build Status | Sonar Code Quality | +## Develop CI/CD Processes +| V2X-Hub Docker Image Builds (x86 or AMD) | V2X-Hub Docker Image Builds (ARM) | Sonar Code Quality | +|----------------------|---------------------|---------------------| + [![Build Workflows](https://github.com/usdot-fhwa-OPS/V2X-Hub/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/usdot-fhwa-OPS/V2X-Hub/actions/workflows/build.yml)|[![CircleCI](https://dl.circleci.com/status-badge/img/gh/usdot-fhwa-OPS/V2X-Hub/tree/develop.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/usdot-fhwa-OPS/V2X-Hub/tree/develop)| [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=usdot-fhwa-ops_V2X-Hub&metric=alert_status)](https://sonarcloud.io/dashboard?id=usdot-fhwa-ops_V2X-Hub) | + ## Release CI/CD Processes +| V2X-Hub Docker Image Builds (x86 or AMD) | V2X-Hub Docker Image Builds (ARM) | |----------------------|---------------------| -[![CircleCI](https://circleci.com/gh/usdot-fhwa-OPS/V2X-Hub.svg?style=svg)](https://circleci.com/gh/usdot-fhwa-OPS/V2X-Hub) | [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=usdot-fhwa-ops_V2X-Hub&metric=alert_status)](https://sonarcloud.io/dashboard?id=usdot-fhwa-ops_V2X-Hub) | - + [![Build Workflows](https://github.com/usdot-fhwa-OPS/V2X-Hub/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/usdot-fhwa-OPS/V2X-Hub/actions/workflows/build.yml)|[![CircleCI](https://dl.circleci.com/status-badge/img/gh/usdot-fhwa-OPS/V2X-Hub/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/usdot-fhwa-OPS/V2X-Hub/tree/master)| # Overview In order to bring infrastructure components into the Connected Vehicle architecture, you need software that will facilitate the exchange of data in a format that can be understood by both vehicles and infrastructure devices The V2X Hub, takes in data from vehicles via Basic Safety Messages (BSM) in a Society of Automotive Engineers (SAE) standard format and translates the data to a National Transportation Communications for ITS Protocol (NTCIP) that infrastructure components can understand. And vice versa. It translates Signal Phase and Timing (SPaT) data from NTCIP to SAE and sends it to the Roadside Unit (RSU) for broadcast to mobile devices, including vehicles. diff --git a/configuration/amd64/docker-compose.yml b/configuration/amd64/docker-compose.yml index 0c9d5feb2..89a1b00a9 100755 --- a/configuration/amd64/docker-compose.yml +++ b/configuration/amd64/docker-compose.yml @@ -20,7 +20,7 @@ services: - mysql-datavolume:/var/lib/mysql php: - image: usdotfhwaops/php:latest + image: usdotfhwaops/php:7.6.0 container_name: php network_mode: host depends_on: @@ -30,7 +30,7 @@ services: tty: true v2xhub: - image: usdotfhwaops/v2xhubamd:latest + image: usdotfhwaops/v2xhubamd:7.6.0 container_name: v2xhub network_mode: host restart: always @@ -46,7 +46,7 @@ services: - ./logs:/var/log/tmx - ./MAP:/var/www/plugins/MAP port_drayage_webservice: - image: usdotfhwaops/port-drayage-webservice:latest + image: usdotfhwaops/port-drayage-webservice:7.6.0 container_name: port_drayage_webservice network_mode: host secrets: diff --git a/configuration/arm64/docker-compose.yml b/configuration/arm64/docker-compose.yml index a32c31fab..4e378c4c5 100644 --- a/configuration/arm64/docker-compose.yml +++ b/configuration/arm64/docker-compose.yml @@ -20,7 +20,7 @@ services: - mysql-datavolume:/var/lib/mysql php: - image: usdotfhwaops/php_arm:latest + image: usdotfhwaops/php_arm:7.6.0 container_name: php network_mode: host depends_on: @@ -30,7 +30,7 @@ services: tty: true v2xhub: - image: usdotfhwaops/v2xhubarm:latest + image: usdotfhwaops/v2xhubarm:7.6.0 container_name: v2xhub network_mode: host restart: always @@ -44,7 +44,7 @@ services: - ./logs:/var/log/tmx - ./MAP:/var/www/plugins/MAP port_drayage_webservice: - image: usdotfhwaops/port-drayage-webservice_arm:latest + image: usdotfhwaops/port-drayage-webservice_arm:7.6.0 container_name: port_drayage_webservice network_mode: host secrets: diff --git a/ext/build.sh b/ext/build.sh index 91d59ca8a..d5c773685 100755 --- a/ext/build.sh +++ b/ext/build.sh @@ -65,7 +65,7 @@ pushd /tmp if [ -d "nats.c" ]; then rm -r nats.c fi -git clone https://github.com/nats-io/nats.c +git clone https://github.com/nats-io/nats.c --branch v3.7.0 cd nats.c cmake . -DNATS_BUILD_NO_SPIN=ON make -j${numCPU} diff --git a/src/v2i-hub/CARMACloudPlugin/CMakeLists.txt b/src/v2i-hub/CARMACloudPlugin/CMakeLists.txt index 6c913e69d..45ac871f1 100644 --- a/src/v2i-hub/CARMACloudPlugin/CMakeLists.txt +++ b/src/v2i-hub/CARMACloudPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( CARMACloudPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( CARMACloudPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "CARMACloud") add_compile_options(-fPIC) diff --git a/src/v2i-hub/CARMAStreetsPlugin/CMakeLists.txt b/src/v2i-hub/CARMAStreetsPlugin/CMakeLists.txt index 08981e25d..a4f9c63f0 100644 --- a/src/v2i-hub/CARMAStreetsPlugin/CMakeLists.txt +++ b/src/v2i-hub/CARMAStreetsPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( CARMAStreetsPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( CARMAStreetsPlugin VERSION 7.6.0 LANGUAGES CXX ) BuildTmxPlugin ( ) diff --git a/src/v2i-hub/CDASimAdapter/CMakeLists.txt b/src/v2i-hub/CDASimAdapter/CMakeLists.txt index 8fbc4f376..27fdc1093 100755 --- a/src/v2i-hub/CDASimAdapter/CMakeLists.txt +++ b/src/v2i-hub/CDASimAdapter/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( CDASimAdapter VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( CDASimAdapter VERSION 7.6.0 LANGUAGES CXX ) set(CMAKE_CXX_STANDARD 17) FIND_PACKAGE( carma-clock ) diff --git a/src/v2i-hub/CDASimAdapter/src/CDASimAdapter.cpp b/src/v2i-hub/CDASimAdapter/src/CDASimAdapter.cpp index b9665bcee..1986bb608 100644 --- a/src/v2i-hub/CDASimAdapter/src/CDASimAdapter.cpp +++ b/src/v2i-hub/CDASimAdapter/src/CDASimAdapter.cpp @@ -1,5 +1,5 @@ #include "include/CDASimAdapter.hpp" - +#include using namespace tmx::utils; @@ -18,12 +18,12 @@ namespace CDASimAdapter{ success = GetConfigValue("X", location.X); success = success && GetConfigValue("Y", location.Y); success = success && GetConfigValue("Z", location.Z); - PLOG(logINFO) << "Location of Simulated V2X-Hub updated to : {" << location.X << ", " + PLOG(logINFO) << "Location of Simulated V2X-Hub updated to : {" << location.X << ", " << location.Y << ", " << location.Z << "}." << std::endl; success = success && GetConfigValue("MaxConnectionAttempts", max_connection_attempts); success = success && GetConfigValue("ConnectionSleepTime", connection_sleep_time); if (connection_sleep_time < 1 ) { - PLOG(logWARNING) << "ConnectionSleepTime of " << connection_sleep_time << " is invalid. Valid values are <= 1." << std::endl; + PLOG(logWARNING) << "ConnectionSleepTime of " << connection_sleep_time << " is invalid. Valid values are <= 1." << std::endl; connection_sleep_time = 1; } if (!success) { @@ -33,7 +33,7 @@ namespace CDASimAdapter{ void CDASimAdapter::OnConfigChanged(const char *key, const char *value) { PluginClient::OnConfigChanged(key, value); - UpdateConfigSettings(); + UpdateConfigSettings(); } void CDASimAdapter::OnStateChange(IvpPluginState state) { @@ -41,7 +41,7 @@ namespace CDASimAdapter{ if (state == IvpPluginState_registered) { UpdateConfigSettings(); - + // While CARMA Simulation connection is down, attempt to reconnect int connection_attempts = 0; while ( (!connection || !connection->is_connected()) && (connection_attempts < max_connection_attempts || max_connection_attempts < 1 ) ) { @@ -66,22 +66,30 @@ namespace CDASimAdapter{ }else { PLOG(logERROR) << "CDASim connection failed!" << std::endl; } - + } } void CDASimAdapter::forward_time_sync_message(tmx::messages::TimeSyncMessage &msg) { + std::string payload =msg.to_string(); - PLOG(logDEBUG1) << "Sending Time Sync Message " << msg << std::endl; + // A script to validate time synchronization of tools in CDASim currently relies on the following + // log line. TODO: This line is meant to be removed in the future upon completion of this work: + // https://github.com/usdot-fhwa-stol/carma-analytics-fotda/pull/43 + auto time_now = std::chrono::system_clock::now(); + auto epoch = time_now.time_since_epoch(); + auto milliseconds = std::chrono::duration_cast(epoch); + PLOG(logDEBUG1) << "Simulation Time: " << msg.get_timestep() << " where current system time is: " << milliseconds.count() << ", where msgs: " << msg << std::endl; + this->BroadcastMessage(msg, _name, 0 , IvpMsgFlags_None); - + } void CDASimAdapter::forward_simulated_detected_message(tmx::messages::simulation::SensorDetectedObject &msg) { PLOG(logDEBUG1) << "Sending Simulated SensorDetectedObject Message " << msg << std::endl; - this->BroadcastMessage(msg, _name, 0 , IvpMsgFlags_None); + this->BroadcastMessage(msg, _name, 0 , IvpMsgFlags_None); } bool CDASimAdapter::connect() { @@ -97,7 +105,7 @@ namespace CDASimAdapter{ std::string infrastructure_id = sim::get_sim_config(sim::INFRASTRUCTURE_ID); std::string sensor_json_file_path = sim::get_sim_config(sim::SENSOR_JSON_FILE_PATH); - PLOG(logINFO) << "CDASim connecting " << simulation_ip << + PLOG(logINFO) << "CDASim connecting " << simulation_ip << "\nUsing Registration Port : " << std::to_string( simulation_registration_port) << " Time Sync Port: " << std::to_string( time_sync_port) << " and V2X Port: " << std::to_string(v2x_port) << std::endl; if ( connection ) { @@ -108,20 +116,20 @@ namespace CDASimAdapter{ connection = std::make_unique(simulation_ip, infrastructure_id, simulation_registration_port, sim_v2x_port, local_ip, time_sync_port, simulated_interaction_port, v2x_port, location, sensor_json_file_path); } - } + } catch (const TmxException &e) { PLOG(logERROR) << "Exception occured attempting to initialize CDASim Connection : " << e.what() << std::endl; return false; } catch (const std::invalid_argument &e ) { // std::stoul throws invalid arguement exception when provided with a string that contains characters that are not numbers. - PLOG(logERROR) << "Exception occured attempting to initialize CDASim Connection : " << e.what() << + PLOG(logERROR) << "Exception occured attempting to initialize CDASim Connection : " << e.what() << ". Check environment variables are set to the correct type!"; return false; - } + } return connection->connect(); } - + void CDASimAdapter::start_immediate_forward_thread() { @@ -130,10 +138,10 @@ namespace CDASimAdapter{ } immediate_forward_tick_id = immediate_forward_timer->AddPeriodicTick([this]() { this->attempt_message_from_v2xhub(); - + } // end of lambda expression , std::chrono::milliseconds(5) ); - + immediate_forward_timer->Start(); } @@ -170,19 +178,19 @@ namespace CDASimAdapter{ void CDASimAdapter::start_sensor_detected_object_detection_thread() { PLOG(logDEBUG) << "Creating Thread Timer for simulated external object" << std::endl; - try + try { if(!external_object_detection_thread_timer) { external_object_detection_thread_timer = std::make_unique(std::chrono::milliseconds(5)); - } + } external_object_detection_thread_timer->AddPeriodicTick([this](){ PLOG(logDEBUG1) << "Listening for Sensor Detected Message from CDASim." << std::endl; auto msg = connection->consume_sensor_detected_object_message(); - if ( !msg.is_empty()) { + if ( !msg.is_empty()) { this->forward_simulated_detected_message(msg); } - else + else { PLOG(logDEBUG1) << "CDASim connection has not yet received an simulated sensor detected message!" << std::endl; } @@ -190,7 +198,7 @@ namespace CDASimAdapter{ , std::chrono::milliseconds(5)); external_object_detection_thread_timer->Start(); } - catch ( const UdpServerRuntimeError &e ) + catch ( const UdpServerRuntimeError &e ) { PLOG(logERROR) << "Error occured :" << e.what() << std::endl; } @@ -238,23 +246,23 @@ namespace CDASimAdapter{ } } - + int CDASimAdapter::Main() { - PLOG(logINFO) << "Starting plugin " << _name << std::endl; + PLOG(logINFO) << "Starting plugin " << _name << std::endl; while (_plugin->state != IvpPluginState_error) { if (IsPluginState(IvpPluginState_registered)) { - + } } return EXIT_SUCCESS; } - + } diff --git a/src/v2i-hub/CommandPlugin/CMakeLists.txt b/src/v2i-hub/CommandPlugin/CMakeLists.txt index a1543ab51..3e4e8d521 100644 --- a/src/v2i-hub/CommandPlugin/CMakeLists.txt +++ b/src/v2i-hub/CommandPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( CommandPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( CommandPlugin VERSION 7.6.0 LANGUAGES CXX ) FIND_PACKAGE (OpenSSL REQUIRED) diff --git a/src/v2i-hub/CswPlugin/CMakeLists.txt b/src/v2i-hub/CswPlugin/CMakeLists.txt index 5e154a2c7..63243d902 100644 --- a/src/v2i-hub/CswPlugin/CMakeLists.txt +++ b/src/v2i-hub/CswPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( CswPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( CswPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "CSW") diff --git a/src/v2i-hub/DmsPlugin/CMakeLists.txt b/src/v2i-hub/DmsPlugin/CMakeLists.txt index 08cf09b17..f790c51fe 100644 --- a/src/v2i-hub/DmsPlugin/CMakeLists.txt +++ b/src/v2i-hub/DmsPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( DmsPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( DmsPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "Dynamic Message Sign") diff --git a/src/v2i-hub/ERVCloudForwardingPlugin/CMakeLists.txt b/src/v2i-hub/ERVCloudForwardingPlugin/CMakeLists.txt index cc456077a..ab0b8a9fb 100644 --- a/src/v2i-hub/ERVCloudForwardingPlugin/CMakeLists.txt +++ b/src/v2i-hub/ERVCloudForwardingPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT(ERVCloudForwardingPlugin VERSION 7.5.1 LANGUAGES CXX) +PROJECT(ERVCloudForwardingPlugin VERSION 7.6.0 LANGUAGES CXX) SET(TMX_PLUGIN_NAME "ERVCloudForwarding") add_compile_options(-fPIC) diff --git a/src/v2i-hub/ImmediateForwardPlugin/CMakeLists.txt b/src/v2i-hub/ImmediateForwardPlugin/CMakeLists.txt index 31e28d6ae..752f486c4 100644 --- a/src/v2i-hub/ImmediateForwardPlugin/CMakeLists.txt +++ b/src/v2i-hub/ImmediateForwardPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( ImmediateForwardPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( ImmediateForwardPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "Immediate Forward") diff --git a/src/v2i-hub/LocationPlugin/CMakeLists.txt b/src/v2i-hub/LocationPlugin/CMakeLists.txt index 5926227c4..cb6c943f7 100644 --- a/src/v2i-hub/LocationPlugin/CMakeLists.txt +++ b/src/v2i-hub/LocationPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -project( LocationPlugin VERSION 7.5.1 LANGUAGES CXX ) +project( LocationPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME Location) diff --git a/src/v2i-hub/MapPlugin/CMakeLists.txt b/src/v2i-hub/MapPlugin/CMakeLists.txt index 553f1e58a..e40a6c240 100644 --- a/src/v2i-hub/MapPlugin/CMakeLists.txt +++ b/src/v2i-hub/MapPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( MapPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( MapPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "MAP") diff --git a/src/v2i-hub/MessageLoggerPlugin/CMakeLists.txt b/src/v2i-hub/MessageLoggerPlugin/CMakeLists.txt index 514b31984..3153bd268 100644 --- a/src/v2i-hub/MessageLoggerPlugin/CMakeLists.txt +++ b/src/v2i-hub/MessageLoggerPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( MessageLoggerPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( MessageLoggerPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "MessageLoggerPlugin") diff --git a/src/v2i-hub/MessageReceiverPlugin/CMakeLists.txt b/src/v2i-hub/MessageReceiverPlugin/CMakeLists.txt index 908bc1e90..38d6cd7a0 100644 --- a/src/v2i-hub/MessageReceiverPlugin/CMakeLists.txt +++ b/src/v2i-hub/MessageReceiverPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( MessageReceiverPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( MessageReceiverPlugin VERSION 7.6.0 LANGUAGES CXX ) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/src/v2i-hub/ODEForwardPlugin/CMakeLists.txt b/src/v2i-hub/ODEForwardPlugin/CMakeLists.txt index 8c594fdbe..c574fc4b6 100644 --- a/src/v2i-hub/ODEForwardPlugin/CMakeLists.txt +++ b/src/v2i-hub/ODEForwardPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( ODEForwardPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( ODEForwardPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "ODEForwardPlugin") diff --git a/src/v2i-hub/PedestrianPlugin/CMakeLists.txt b/src/v2i-hub/PedestrianPlugin/CMakeLists.txt index ecb8c8cec..735d84e80 100755 --- a/src/v2i-hub/PedestrianPlugin/CMakeLists.txt +++ b/src/v2i-hub/PedestrianPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( PedestrianPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( PedestrianPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "Pedestrian") add_compile_options(-fPIC) diff --git a/src/v2i-hub/PortDrayagePlugin/CMakeLists.txt b/src/v2i-hub/PortDrayagePlugin/CMakeLists.txt index 199be4090..1a7a4b4da 100644 --- a/src/v2i-hub/PortDrayagePlugin/CMakeLists.txt +++ b/src/v2i-hub/PortDrayagePlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( PortDrayagePlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( PortDrayagePlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "PortDrayage") set(CMAKE_AUTOMOC ON) diff --git a/src/v2i-hub/PreemptionPlugin/CMakeLists.txt b/src/v2i-hub/PreemptionPlugin/CMakeLists.txt index 1613c3b46..a7c0db86a 100644 --- a/src/v2i-hub/PreemptionPlugin/CMakeLists.txt +++ b/src/v2i-hub/PreemptionPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( PreemptionPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( PreemptionPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "Preemption") diff --git a/src/v2i-hub/RSUHealthMonitorPlugin/CMakeLists.txt b/src/v2i-hub/RSUHealthMonitorPlugin/CMakeLists.txt index d863a4bf1..8cbcf79ce 100755 --- a/src/v2i-hub/RSUHealthMonitorPlugin/CMakeLists.txt +++ b/src/v2i-hub/RSUHealthMonitorPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT(RSUHealthMonitorPlugin VERSION 7.5.1 LANGUAGES CXX) +PROJECT(RSUHealthMonitorPlugin VERSION 7.6.0 LANGUAGES CXX) set(TMX_PLUGIN_NAME "RSU Health Monitor") diff --git a/src/v2i-hub/RtcmPlugin/CMakeLists.txt b/src/v2i-hub/RtcmPlugin/CMakeLists.txt index 694b04ef2..b4a5f0488 100644 --- a/src/v2i-hub/RtcmPlugin/CMakeLists.txt +++ b/src/v2i-hub/RtcmPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( RtcmPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( RtcmPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "RTCM") diff --git a/src/v2i-hub/SpatPlugin/CMakeLists.txt b/src/v2i-hub/SpatPlugin/CMakeLists.txt index fb28fcada..bdff7a0b8 100644 --- a/src/v2i-hub/SpatPlugin/CMakeLists.txt +++ b/src/v2i-hub/SpatPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( SpatPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( SpatPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "SPAT") diff --git a/src/v2i-hub/TelematicBridgePlugin/CMakeLists.txt b/src/v2i-hub/TelematicBridgePlugin/CMakeLists.txt index df7b1c0f7..59215c46f 100644 --- a/src/v2i-hub/TelematicBridgePlugin/CMakeLists.txt +++ b/src/v2i-hub/TelematicBridgePlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT (TelematicBridgePlugin VERSION 7.5.1 LANGUAGES CXX) +PROJECT (TelematicBridgePlugin VERSION 7.6.0 LANGUAGES CXX) set (TMX_PLUGIN_NAME "Telematic Bridge") diff --git a/src/v2i-hub/TimPlugin/CMakeLists.txt b/src/v2i-hub/TimPlugin/CMakeLists.txt index 3f8c9779e..51ad9797d 100644 --- a/src/v2i-hub/TimPlugin/CMakeLists.txt +++ b/src/v2i-hub/TimPlugin/CMakeLists.txt @@ -1,4 +1,4 @@ -PROJECT ( TimPlugin VERSION 7.5.1 LANGUAGES CXX ) +PROJECT ( TimPlugin VERSION 7.6.0 LANGUAGES CXX ) SET (TMX_PLUGIN_NAME "TIM") add_compile_options(-fPIC) diff --git a/web/admin/admin.html b/web/admin/admin.html index 735c9b63a..2dfdaa0e1 100644 --- a/web/admin/admin.html +++ b/web/admin/admin.html @@ -49,7 +49,7 @@
-
7.4.0
+
7.6.0