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

Conversation

drewjj
Copy link
Collaborator

@drewjj drewjj commented Jun 26, 2023

PR Details

Description

Includes updates to the README to provide detail on how to test the decoding of all ODE supported message types through the UDP endpoints. This included modifying the README, adding an image and removing misleading data examples for SPaT.

Related Issue

#481

Motivation and Context

The ODE Demo site only supports decoding BSM and TIM messages. SPaT, MAP, SRM and SSM messages require the UDP endpoints to demonstrate proper decoding. This update will make that clear in the documentation and walk users through how to perform this test.

How Has This Been Tested?

Manually walked through the steps myself and verified they successfully performed the test they describe.

Types of changes

  • 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:

  • 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.
    ODE Contributing Guide
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@drewjj
Copy link
Collaborator Author

drewjj commented Jun 27, 2023

Ready for review @dan-du-car

README.md Outdated
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!

@@ -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.
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.

@@ -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!

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.

Can we leave the old diagram as it or mark it old architecture diagram? I think the old diagram still correctly describes part of the system, but it is not up to date as we are adding more features. Also I do like to know what topics we have in the system, and which topics are used by which submodules. Additionally, In the old diagram, it used the submodule name like S3 depositor and SDC depositor. This submodule names match the GitHub repos we used, and it is easy to understand what roles the GitHub repos play in this TMC system environment. On the other hand, the new diagram has some new names for submodules like situation data exchange, VSD/ISD, SDC etc... I am not sure how to match these to the series of repos we have in the GitHub.

Copy link
Collaborator

Choose a reason for hiding this comment

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

The previous diagram, named figure1.old.png, has been reintroduced into the docs\images\readme directory.

The purpose of this diagram is to provide an overview of the system, focusing on high-level concepts. The specific relationships between topics and submodules are considered lower-level details and are better represented in data flow diagrams. We can include a low level diagram in the README that contains these details if you would like. This can be a modified version of figure1.old.png or even the ODE Data Flow Overview diagram.

Regarding the submodule names:

  • The S3 depositor, which is used for SDC and Firehose, is now positioned on the left side of the Data Export Services section.
  • The Situation Data Exchange (SDX) serves as a data destination where the jpo-sdw-depositor submodule deposits its data. We can change the name of the depositor on the diagram to SDW Depositor, but in the future this will likely be changed to SDX Depositor anyway.
  • VSD and ISD are types of data, as opposed to being submodules or components.

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.

Make sense. I guess if we go with high level concepts, in the architecture.md, do we have some brief descriptions about each high-level concepts/components and where those components are located?
I just realized that the user guide also used the architecture diagram: https://github.com/usdot-jpo-ode/jpo-ode/blob/develop/docs/UserGuide.md#3---system-overview. Could you also update that with the new one?

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.

Four of the submodules are displayed in https://github.com/usdot-jpo-ode/jpo-ode/blob/readme-update/docs/Architecture.md#31---ode-technology-stack, but I don't see any brief descriptions or location indicators at this time.

Copy link
Collaborator

Choose a reason for hiding this comment

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

The image file being used for figure 1 in the user guide has been updated.

Updated TMC environment diagram used in User Guide.
@drewjj
Copy link
Collaborator Author

drewjj commented Jun 28, 2023

@dan-du-car when you believe this PR is ready, please go ahead and merge it. I don't have permission to do so. Thanks!

@SaikrishnaBairamoni SaikrishnaBairamoni merged commit a3fd03e into develop Jun 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants