Link

lib7842 - November 28, 2019

What is lib7842?

lib7842 is a PROS library for advanced controls which is built around OkapiLib. It is designed to be a good example for advanced programming and a useful tool for competition.

I have been working of lib7842 since summer 2019, and plan on releasing it to the VEX community by summer 2020. I will use it for competition through the season, which will not only provide testing and experience, but also provide a direction and motivation for the library.

I have shared the library with some teams in the US who are part of TVA for testing and collaboration purposes.

What will lib7842 provide?

The core of lib7842 will be:

  • Fluent path generation API
  • Pure Pursuit path follower
  • Pure Pursuit X-Drive path follower
  • Odometry-based PID motion controller
  • Odometry-based PID X-Drive controller
  • Flexible GUI library
  • Vision sensor management and filtering

There are other utilities and functionality in lib7842, but these are the main elements of it.

Programming Practices:

lib7842 is a full library that will be used by many VEX competitors. To deliver the best product possible, I am learning how to follow the best C++ coding standards and practices for lib7842.

  • Git
    • Make a commit for every change made
    • Use imperative tense for commit messages
    • Use git flow for source and feature management
  • Formatting
    • Format all code using clang-format
  • CI and Tests
    • Tests need to be made for each public API
    • Each commit is compiled and tested by Azure Pipelines
    • CI Results
      • V5 binary and template
      • Test results
      • Valgrind memory leak detector results
      • Callgrind profiler results
      • CppCheck static analysis
      • Codacity static analysis
      • Codefactor static analysis

Commit Messages

Here is an example of lib7842 commit messages, which are intended to be as informative as possible:


Copyright © 2020-2021