Skip to content

Commit

Permalink
Merge release isetta to master (#480)
Browse files Browse the repository at this point in the history
<!-- Thanks for the contribution, this is awesome. -->

# PR Details
This PR is to merge release branch to master for release 7.4.0
## Description

<!--- Describe your changes in detail -->

## Related Issue

<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an
issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps
to reproduce -->
<!--- Please link to the issue here: -->

## Motivation and Context

<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?

<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran
to -->
<!--- see how your change affects other areas of the code, etc. -->

## Types of changes

<!--- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->

- [ ] Defect fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that cause existing functionality
to change)

## Checklist:

<!--- Go over all the following points, and put an `x` in all the boxes
that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->

- [ ] I have added any new packages to the sonar-scanner.properties file
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the **CONTRIBUTING** document.
[V2XHUB Contributing
Guide](https://github.com/usdot-fhwa-OPS/V2X-Hub/blob/develop/Contributing.md)
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
  • Loading branch information
codygarver authored Feb 10, 2023
2 parents e27028a + 8f7e7fb commit 00d1004
Show file tree
Hide file tree
Showing 59 changed files with 1,069 additions and 440 deletions.
15 changes: 8 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
FROM ubuntu:focal-20220113

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y sudo cmake gcc-7 g++-7 libboost1.71-all-dev libxerces-c-dev libcurl4-openssl-dev libsnmp-dev libmysqlclient-dev libjsoncpp-dev uuid-dev libusb-dev libusb-1.0-0-dev libftdi-dev swig liboctave-dev gpsd libgps-dev portaudio19-dev libsndfile1-dev libglib2.0-dev libglibmm-2.4-dev libpcre3-dev libsigc++-2.0-dev libxml++2.6-dev libxml2-dev liblzma-dev dpkg-dev libmysqlcppconn-dev libev-dev libuv1-dev git vim zip build-essential libssl-dev qtbase5-dev qtbase5-dev-tools curl libqhttpengine-dev libgtest-dev libcpprest-dev librdkafka-dev
RUN apt-get update && apt-get install -y sudo cmake gcc-7 g++-7 libboost1.71-all-dev libxerces-c-dev libcurl4-openssl-dev libsnmp-dev libmysqlclient-dev libjsoncpp-dev uuid-dev libusb-dev libusb-1.0-0-dev libftdi-dev swig liboctave-dev gpsd libgps-dev portaudio19-dev libsndfile1-dev libglib2.0-dev libglibmm-2.4-dev libpcre3-dev libsigc++-2.0-dev libxml++2.6-dev libxml2-dev liblzma-dev dpkg-dev libmysqlcppconn-dev libev-dev libuv1-dev git vim zip build-essential zlib1g libssl-dev qtbase5-dev qtbase5-dev-tools curl libqhttpengine-dev libgtest-dev libcpprest-dev librdkafka-dev wget

WORKDIR cd /usr/src/googletest/googletest
RUN mkdir ~/build
Expand Down Expand Up @@ -39,11 +38,13 @@ RUN make
RUN make install

WORKDIR /home/V2X-Hub/ext
RUN git clone https://github.com/usdot-fhwa-OPS/qhttpengine.git
WORKDIR /home/V2X-Hub/ext/qhttpengine
RUN cmake .
RUN make
RUN make install
RUN QHTTPENGINE_VERSION=1.0.1 && \
wget -O qhttpengine-${QHTTPENGINE_VERSION}.tar.gz https://github.com/nitroshare/qhttpengine/archive/refs/tags/${QHTTPENGINE_VERSION}.tar.gz && \
tar xvf qhttpengine-${QHTTPENGINE_VERSION}.tar.gz && \
cd qhttpengine-${QHTTPENGINE_VERSION}/ && \
cmake . && \
make -j && \
make install

WORKDIR /home/V2X-Hub/ext/
RUN git clone https://github.com/HowardHinnant/date.git
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![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) |

## Release Notes
As of July 29th, 2022, the V2X Hub software platform is on version 7.3.1 See more about release 7.3.1 here: [V2X Hub Release Notes](<docs/Release_notes.md>)
As of Feb 9th, 2023, the V2X Hub software platform is on version 7.4.0 See more about release 7.4.0 here: [V2X Hub Release Notes](<docs/Release_notes.md>)

# 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.
Expand All @@ -21,13 +21,13 @@ The V2X Hub system reduces time needed to create and deploy a roadside based V2X
* DMS Plugin – The Dynamic Message Sign (DMS) Plugin will receive messages from other plugins and translate the information to NTCIP 1203 for display on a DMS
* MAP Plugin – Produces intersection geometry in J2735 MAP format.
* SPAT Plugin – Communicates with a traffic signal controller (TSC) using NTCIP 1202, and creates a J2735 SPaT Message.
* DSRC Immediate Forward Plugin – Sends all J2735 traffic to the 4.1 RSU for transmission out the DSRC radio.
* Immediate Forward Plugin – Sends all J2735 traffic to the 4.1 RSU for transmission out the V2X radio.
* Message Receiver Plugin – Receives all J2735 traffic incoming from the 4.1 RSU for consumption by other V2X Hub plugins.
* Location Plugin – Communicates with GPS devices producing location information and optionally the NMEA GP* sentences for the V2X Hub system.
* RTCM Plugin – Communicates with a NTRIP network to create J2735 RTCM position correction messages.
* ODE Plugin – Pushes data to an operational data environment server using a known IP address and port.
* ODE Forward Plugin – Pushes data to an operational data environment server using a known IP address and port.
* Pedestrian Plugin – Creates a PSM using information obtained from nomadic devices (ex. cell phones) through a local webserver.
* Preemption Plugin – Calls a preemption table on a controller using NTCIP 1202 V3 commands to provide passage to an emergency vehicle upon request through BSMs
* Preemption Plugin – Calls a preemption table on a controller using NTCIP 1202 V3 commands to provide passage to an emergency vehicle upon request through BSMs
* SPAT Logger Plugin – Logs V2X Hub generated, UPER-encoded SPAT messages in a .csv file along with a system timestamp
* TIM Plugin – Creates and broadcasts a TIM message from an .xml file based on user input through GUI or local webserver
* BSM Logger Plugin – Decodes and logs BSMs received by the Message Receiver Plugin to a .csv file
Expand Down
6 changes: 3 additions & 3 deletions configuration/amd64/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ services:
- ./mysql/port_drayage.sql:/docker-entrypoint-initdb.d/port_drayage.sql

php:
image: usdotfhwaops/php:7.3.1
image: usdotfhwaops/php:7.4.0
container_name: php
network_mode: host
depends_on:
Expand All @@ -29,7 +29,7 @@ services:
tty: true

v2xhub:
image: usdotfhwaops/v2xhubamd:7.3.1
image: usdotfhwaops/v2xhubamd:7.4.0
container_name: v2xhub
network_mode: host
restart: always
Expand All @@ -43,7 +43,7 @@ services:
- ./logs:/var/log/tmx
- ./MAP:/var/www/plugins/MAP
port_drayage_webservice:
image: usdotfhwaops/port-drayage-webservice:7.3.1
image: usdotfhwaops/port-drayage-webservice:7.4.0
container_name: port_drayage_webservice
network_mode: host
secrets:
Expand Down
97 changes: 0 additions & 97 deletions configuration/amd64/mysql/localhost.sql

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions configuration/arm64/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ services:
- ./mysql/port_drayage.sql:/docker-entrypoint-initdb.d/port_drayage.sql

php:
image: usdotfhwaops/php_arm:7.3.1
image: usdotfhwaops/php_arm:7.4.0
container_name: php
network_mode: host
depends_on:
Expand All @@ -29,7 +29,7 @@ services:
tty: true

v2xhub:
image: usdotfhwaops/v2xhubarm:7.3.1
image: usdotfhwaops/v2xhubarm:7.4.0
container_name: v2xhub
network_mode: host
restart: always
Expand All @@ -43,7 +43,7 @@ services:
- ./logs:/var/log/tmx
- ./MAP:/var/www/plugins/MAP
port_drayage_webservice:
image: usdotfhwaops/port-drayage-webservice_arm:7.3.1
image: usdotfhwaops/port-drayage-webservice_arm:7.4.0
container_name: port_drayage_webservice
network_mode: host
secrets:
Expand Down
99 changes: 0 additions & 99 deletions configuration/arm64/mysql/localhost.sql

Large diffs are not rendered by default.

16 changes: 9 additions & 7 deletions docker/Dockerfile-depl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ FROM ubuntu:focal-20220113 AS install_dependencies

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y cmake git build-essential libgtest-dev libssl-dev qtbase5-dev \
zip libmysqlcppconn-dev libboost1.71-all-dev libmysqlclient-dev uuid-dev libxerces-c-dev qtbase5-dev \
libcurl4-openssl-dev libgps-dev libsnmp-dev librdkafka-dev libjsoncpp-dev libev-dev libuv1-dev libcpprest-dev
zip libmysqlcppconn-dev libboost1.71-all-dev libmysqlclient-dev uuid-dev zlib1g libxerces-c-dev qtbase5-dev \
libcurl4-openssl-dev libgps-dev libsnmp-dev librdkafka-dev libjsoncpp-dev libev-dev libuv1-dev libcpprest-dev wget
# Build and install GTest
WORKDIR cd /usr/src/googletest/googletest
RUN mkdir ~/build
Expand Down Expand Up @@ -44,11 +44,13 @@ RUN make
RUN make install

WORKDIR /home/V2X-Hub/ext
RUN git clone https://github.com/usdot-fhwa-OPS/qhttpengine.git
WORKDIR /home/V2X-Hub/ext/qhttpengine
RUN cmake .
RUN make
RUN make install
RUN QHTTPENGINE_VERSION=1.0.1 && \
wget -O qhttpengine-${QHTTPENGINE_VERSION}.tar.gz https://github.com/nitroshare/qhttpengine/archive/refs/tags/${QHTTPENGINE_VERSION}.tar.gz && \
tar xvf qhttpengine-${QHTTPENGINE_VERSION}.tar.gz && \
cd qhttpengine-${QHTTPENGINE_VERSION}/ && \
cmake . && \
make -j && \
make install

WORKDIR /home/V2X-Hub/ext/
RUN git clone https://github.com/HowardHinnant/date.git
Expand Down
44 changes: 41 additions & 3 deletions docs/Release_notes.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,53 @@
V2X-Hub Release Notes
---------------------------------
Version 7.4.0, released Feb 9th, 2023
--------------------------------------------------------

**Summary:**
V2X Hub release 7.4.0 includes added functionality changes for CARMA-Streets plugin to broadcast Spat movement event list and updated UC1 and UC3 scheduling messages logic. The MAP Plugin functionality to process with new ‘.uper’ extension and supports other formats of MAP messages. Updated V2Xhub plugin names in UI. V2xhub Core to include BSM Part II with extension that has destination points. Along with the above enhancements, several bug fixes and CI related enhancements are included in this release.

Enhancements in this release:
- Issue 398: Added functionality to Map Plugin to process files with extension '.uper' which will expect hex encoded MAP messages including the message frame. Also resolves some issues encountered with processing other formats of MAP messages.
- Issue 407: Updated CARMA-Streets plugin to broadcast SPaT include MovementEventList which consume modified spat JSON data from the Carma-streets traffic signal controller service and encode the streets internal spat JSON into J2735 SPAT message.
- Issue 412: Updated CARMA-Streets Plugin to consume UC 3 scheduling messages that only include ET (entering time) and read intersection type from scheduling message. Also updated UC3 and UC1 scheduling messages to include intersection ID in Mobility Header.
- Issue 422: Updated V2X-Hub Plugin names in UI as below:
1. DSRCImmediateForwardPlugin -> ImmediateForwardPlugin
2. ODELoggerPlugin -> ODEForwardPlugin
- Issue 423&425: Updated V2X-Hub Class names as below:
1. DSRCImmediateForwardPlugin -> ImmediateForwardPlugin
2. ODEForwardPlugin -> ODELoggerPlugin
3. MessageLoggerPlugin -> MessageLoggerPlugin
- Issue 427: Updated plugins to allow different channels for message file format and this channel configuration covers all messages being generated by V2X Hub.
- Issue 439: Updated V2xhub Core to include BSM Part II with extension that has destination points, and PARTII content that has the sirenUse and LightBarUse information.
- Issue 444: Updated Docker compose configuration files to allow MySQL data persistence across restarts to avoid data is lost.

Fixes in this release:
- Issue 351: Fixed PHP UI missing Configuration parameters due to the configuration parameter values stored in the localhost.sql files.
- Issue 415: Fixed CARMA-Streets Plugin Incorrectly translates BSM IDs with leading zeros which attempts to translate each byte in byte array to a hex resulting hex number with zeros to make it 4 bytes long.
- Issue 420: Fixed CARMA-Streets Plugin failed to encode SPaT as it should process valid SPaT messages from CARMA-Streets. For invalid messages, the plugin should print a warning or error log statement and continue with the next incoming message.
- Issue 424: Update V2X-Hub UI Version numbers with most recent numbers.
- Issue 432: Fixed libwebsockets which does not build on Ubuntu 22.04
- Issue 434: Fixed SCSM Security Issues as below:
1. HSM Location configuration parameter inside Message Receiver is never used and can be removed.
2. Message Receiver does not have a configuration parameter for plugin log level.
3. ImmediateForward plugin has a duplicate signature parameter.
4. Signature and sign Message
5. ImmediateForward plugin does not have a configuration parameter for plugin log level.
6. V2X-Hub ARM image currently has segmentation fault on message signature attempts likely related to sh: 1: curl: not found.
7. ImmediateForward plugin throws segmentation fault with receiving HTTP 500 response for message signature request
- Issue 442: Fixed DB connection pool file read errors are hidden and error message is not shown if the password file cannot be read to troubleshoot the root cause.
- Issue 446: Fixed Spat Plugin Socket Handling where spat plugin after it times out the messages are never received again.
- Issue 450: Support CI builds for forked pull requests
- Issue 451: Unit tests are failing but they're not failing the CI as they should cause build failures with unit test failures.
- Issue 467: ERV Cloud Forwarding Plugin RSU Request misses ending tag it nees to send correct format XML request.

Version 7.3.1, released July 29th, 2022
--------------------------------------------------------
**Summary:**
V2X Hub release version 7.3.1 is a hotfix release for 7.3.0. The fixes primarily occurred during the Implementation of IHP2 Speed Harmonization algorithm in Carma-cloud application.

Enhancements in this release:
- Issue 262: Updated CARMA Streets plugin to receive and decode Mobility Path messages into JSON through Kafka.
Bug fixes in this release:
- Issue 392: Fixed Large latencies experienced between V2XHub receiving a Traffic Control Request (TCR) and broadcasting corresponding Traffic Control Messages (TCMs).
- Issue 394: Fixed V2X Hub TCMs are broadcasted more than the configured maximum quantity, and are broadcasted after an acknowledgement is received.
- Issue 404: Fixed V2xhub cannot encode the TCM if the package detail has minplatoonhdwy tag.


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace SampleBSMPluginNS
MessageFrameMessage frame_msg(bsmMessage->get_j2735_data());
bsmEncodeMessage.set_data(TmxJ2735EncodedMessage<BasicSafetyMessage>::encode_j2735_message<codec::uper<MessageFrameMessage>>(frame_msg));
bsmEncodeMessage.set_flags(IvpMsgFlags_RouteDSRC);
bsmEncodeMessage.addDsrcMetadata(172, 0x20);
bsmEncodeMessage.addDsrcMetadata(0x20);
bsmEncodeMessage.refresh_timestamp();

routeable_message *rMsg = dynamic_cast<routeable_message *>(&bsmEncodeMessage);
Expand Down Expand Up @@ -59,7 +59,7 @@ namespace SampleBSMPluginNS

//Broadcast BSM
bsmEncoded.set_flags(IvpMsgFlags_RouteDSRC);
bsmEncoded.addDsrcMetadata(172, 0x20);
bsmEncoded.addDsrcMetadata(0x20);
bsmEncoded.refresh_timestamp();
routeable_message *rMsg = dynamic_cast<routeable_message *>(&bsmEncoded);
BroadcastMessage(*rMsg);
Expand Down
2 changes: 1 addition & 1 deletion ext/ccserver/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.2 FATAL_ERROR)

find_package(qhttpengine REQUIRED)
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ typedef struct TrafficControlGeometry {
Longitude_t reflon;
Latitude_t reflat;
DSRC_Elevation_t refelv;
long refwidth;
long *refwidth /* OPTIONAL */;
long heading;
struct TrafficControlGeometry__nodes {
A_SEQUENCE_OF(struct PathNode) list;
Expand Down
Loading

0 comments on commit 00d1004

Please sign in to comment.