Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README With UDP Demo Steps #506

Merged
merged 16 commits into from
Jun 28, 2023
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 30 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,13 @@ All stakeholders are invited to provide input to these documents. To provide fee
#########################################
-->

<a name="usgage-example"/>
<a name="usage-example"/>

## 1. Usage Example

Once the ODE is deployed and running locally, you may access the ODE's demonstration console by opening your browser and navigating to `http://localhost:8080`.
Once the ODE is deployed and running locally, you may access the ODE's demonstration console by opening your browser and navigating to `http://localhost:8080`. This portal can only be used to decode a subset of the supported message types: BSM and TIM messages. To decode messages such as MAP, SPaT, SRM and SSM, the ODE UDP ports must be utilized. The following sections will describe how to utilize both methods.

<b>For testing BSM and TIM decoding only:</b>
1. Press the `Connect` button to connect to the ODE WebSocket service.
2. Press `Select File` button to select an OBU log file containing BSMs and/or TIM messages as specified by the WYDOT CV Pilot project. See below documents for details:
- [Wyoming CV Pilot Log File Design](data/Wyoming_CV_Pilot_Log_File_Design.docx)
Expand All @@ -71,9 +72,31 @@ _Figure 2: ODE UI demonstrating message subscription_

Notice that the empty fields in the J2735 message are represented by a `null` value. Also note that ODE output strips the MessageFrame header and returns a pure BSM or TIM in the subscription topic.


With the PPM module running, all filtered BSMs that are uploaded through the web interface will be captured and processed. You will see an output of both submitted BSM and processed data unless the entire record was filtered out.

<b>For testing decoding with all supported ODE message types:</b>

To test decoding all supported ODE messages, the UDP endpoints must be utilized. These endpoints specifically take hex ASN1 encoded message data. These messages are allowed to have headers but do not need to.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this hex ASN.1 encoding UPER encoded? or?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What kind of headers?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whichever one the ASN.1 library supports. Not actually certain. The headers are trimmed out at the moment so the type of header isn't super important. How would you like me to specify this?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dan-du-car I have gone ahead and made adjustments to specify these.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!


Supported message types:
- BSM
- TIM
- MAP
- SPaT
- SRM
- SSM

1. Navigate to the [UDP sender Python scripts](<./scripts/tests/>) in the project.
2. Ensure the environment variable "DOCKER_HOST_IP" has been set in the shell that will be running the script. This must be set to the same IP that the ODE deployments are using.
3. Run the script of your choosing: `python3 ./scripts/tests/udpsender_spat.py`
4. View the output Kafka messages from kafkacat: `kafkacat -b $DOCKER_HOST_IP:9092 -G udp_test_group topic.OdeSpatJson -f '\nTopic: %t, Key: %k, Offset: %o, Timestamp: %T\nValue: %s\n'`
5. The script should continue to send the same message every 5 seconds and kafkacat should continue to output the latest message.
6. You may modify the content of the UDP sender scripts to test different payloads of your own.

<p align="center">
<img src="./docs/images/readme/figure3.png" width="80%" height="50%">
</p>

[Back to top](#toc)

<!--
Expand Down Expand Up @@ -114,6 +137,10 @@ Read the following guides to familiarize yourself with ODE's Docker and Kafka mo
- [Docker README](docker.md)
- [Kafka README](kafka.md)

The following guide contains information about the data flow diagrams for the ODE.

- [Data Flow Diagrams README](docs/data-flow-diagrams/README.md)

**Installation and Deployment:**

- Docker builds may fail if you are on a corporate network due to DNS resolution errors.
Expand Down
Binary file removed data/spatTx_test_binary
Binary file not shown.
Binary file removed data/spatTx_test_binary.bin
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/data-flow-diagrams/ODE Data Flow Overview.drawio
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<mxfile host="Electron" modified="2022-04-14T19:40:36.983Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.4.2 Chrome/100.0.4896.60 Electron/18.0.1 Safari/537.36" etag="hnHgc1VZttJfM0MdCy9P" version="17.4.2" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>
<mxfile host="Electron" modified="2023-06-27T17:09:08.786Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.4.2 Chrome/100.0.4896.60 Electron/18.0.1 Safari/537.36" etag="uuR-LWwAbBXx5Qu2ZVIU" version="17.4.2" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>
Binary file modified docs/data-flow-diagrams/ODE Data Flow Overview.drawio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions docs/data-flow-diagrams/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ The purpose of these diagrams is to show:
1. The Asn1DecodeDataRouter class pulls from the Asn1DecodeOutput topic and deposits messages into the Pojo Messages group of topics and the Json Messages group of topics.
1. The PPM pulls from the Json Messages group of topics and pushes filtered messages to the Filtered Json Messages group of topics.
1. The FileUploadController class pulls from the Json Messages & Filtered Json Messages groups of topics and offloads them.
1. The GeoJSON Converter pulls from the Json Messages group of topics, converts the messages and pushes them to the Processed Spat/Map group of topics.
Copy link
Contributor

@dan-du-car dan-du-car Jun 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add GitHub hyperlink to each submodule? It is hard to identify/navigate to the submodules in the GitHub repos if someone is not familiar with all the modules pushed to GitHub. For example: ACM is from https://github.com/usdot-jpo-ode/asn1_codec/tree/develop/src. Another example: I do not know where this GeoJSON Converter submodule is located.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hyperlinks have been added!

1. The Conflict Monitor pulls from the Processed Map/Spat group of topics and pushes to the Conflict Monitor Output Topics group.

### Overview Data Flow 2
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need bullet point 9 and 10 at "Overview Data Flow 2"?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes we do! These have been added.

Copy link
Contributor

@dan-du-car dan-du-car Jun 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
Sounds good. Could we update the diagram to represent the rest of the steps? It looks like the diagram ends at step 8.

Copy link
Collaborator

@dmccoystephenson dmccoystephenson Jun 28, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 1 involves pushing the messages to the Json Messages group of topics. Once step 8 concludes and the data flows into the SDX, step 9 focuses on what occurs to the messages pushed to that group of topics after the initial step.

1. Messages come in through the TimDepositorController class and are pushed to the Broadcast Messages and Json Messages groups of topics, as well as the AsnEncoderInput topic.
Expand Down Expand Up @@ -74,6 +76,8 @@ The purpose of these diagrams is to show:
1. The Asn1DecodedDataRouter pushes the SPAT to the OdeSpatPojo, OdeSpatRxPojo, OdeDNMsgJson, OdeSpatRxJson, OdeSpatTxPojo and OdeSpatJson topics.
1. The PPM pulls from the OdeSpatJson topic, filters the SPAT, and pushes it to the FilteredOdeSpatJson topic.
1. The FileUploadController pulls from the OdeSpatJson and FilteredOdeSpatJson topics and offloads the SSM.
1. The GeoJSON Converter pulls from the OdeSpatJson topic, converts the SPAT and pushes it to the ProcessedOdeSpatJson topic.
1. The Conflict Monitor pulls from the ProcessedOdeSpatJson topic and pushes to the Conflict Monitor Output Topics group.

### MAP Data Flow
1. The MAP comes in through the MapReceiver class and is pushed to the OdeRawEncodedMAPJson topic.
Expand All @@ -83,6 +87,8 @@ The purpose of these diagrams is to show:
1. The AsnCodecRouterServiceController class pulls from the Asn1DecoderOutput topic and passes the MAP to the Asn1DecodedDataRouter class.
1. The Asn1DecodedDataRouter class pushes the MAP to the OdeMapTxPojo and OdeMapJson topics.
1. The FileUploadController pulls from the OdeMapJson topic and offloads the MAP.
1. The GeoJSON Converter pulls from the OdeMapJson topic, converts the MAP and pushes it to the ProcessedOdeMapJson topic.
1. The Conflict Monitor pulls from the ProcessedOdeMapJson topic and pushes to the Conflict Monitor Output Topics group.

### SRM Data Flow
1. The SRM comes in through the SrmReceiver class and is pushed to the OdeRawEncodedSRMJson topic.
Expand Down
Loading