Git Product home page Git Product logo

asn1_codec's Introduction

Abstract Syntax Notation One (ASN.1) Codec Module for the Operational Data Environment (ODE)

The ASN.1 Codec Module (ACM) processes Kafka data streams that preset ODE Metadata wrapped ASN.1 data. It can perform one of two functions depending on how it is started:

  1. Decode: This function is used to process messages from the connected vehicle environment to ODE subscribers. Specifically, the ACM extacts binary data from consumed messages (ODE Metatdata Messages) and decodes the binary ASN.1 data into a structure that is subsequently encoded into an alternative format more suitable for ODE subscribers (currently XML using XER).

  2. Encode: This function is used to process messages from the ODE to the connected vehicle environment. Specifically, the ACM extracts human-readable data from ODE Metadata and decodes it into a structure that is subsequently encoded into ASN.1 binary data.

ASN.1 Codec Operations

Table of Contents

  1. Release Notes
  2. Getting Involved
  3. Documentation
  4. Installation
  5. Configuration and Operation
  6. Interface
  7. Testing
  8. Project Management

Release Notes

  • ODE-537/581/584/585/586/537: ASN.1 codec module development and integration.

Getting Involved

This project is sponsored by the U.S. Department of Transportation and supports Operational Data Environment data type conversions. Here are some ways you can start getting involved in this project:

  • Pull the code and check it out! The ASN.1 Codec project uses the Pull Request Model.
    • Github has instructions for setting up an account and getting started with repositories.
  • If you would like to improve this code base or the documentation, fork the project and submit a pull request.
  • If you find a problem with the code or the documentation, please submit an issue.

Introduction

This project uses the Pull Request Model. This involves the following project components:

  • The usdot-jpo-ode organization project's master branch.
  • A personal GitHub account.
  • A fork of a project release tag or master branch in your personal GitHub account.

A high level overview of our model and these components is as follows. All work will be submitted via pull requests. Developers will work on branches on their personal machines (local clients), push these branches to their personal GitHub repos and issue a pull request to the organization asn1_codec project. One the project's main developers must review the Pull Request and merge it or, if there are issues, discuss them with the submitter. This will ensure that the developers have a better understanding of the code base and we catch problems before they enter master. The following process should be followed:

Initial Setup

  1. If you do not have one yet, create a personal (or organization) account on GitHub (assume your account name is <your-github-account-name>).
  2. Log into your personal (or organization) account.
  3. Fork asn1_codec into your personal GitHub account.
  4. On your computer (local client), clone the master branch from you GitHub account:
$ git clone https://github.com/<your-github-account-name>/asn1_codec.git

Additional Resources for Initial Setup

Documentation

This documentation is in the README.md file. Additional information can be found using the links in the Table of Contents. All stakeholders are invited to provide input to these documents. Stakeholders should direct all input on this document to the JPO Product Owner at DOT, FHWA, or JPO.

Code Documentation

Code documentation can be generated using Doxygen by following the commands below:

$ sudo apt install doxygen
$ cd <install root>/asn1_codec
$ doxygen

The documentation is in HTML and is written to the <install root>/asn1_codec/docs/html directory. Open index.html in a browser.

Project Management

This project is managed using the Jira tool.

asn1_codec's People

Contributors

jmcarter9t avatar hmusavi avatar aferber avatar mvs5465 avatar tonychen091 avatar

Watchers

Elennoel Bacongallo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.