Skip to content

Latest commit

 

History

History
307 lines (286 loc) · 13.1 KB

changelog.md

File metadata and controls

307 lines (286 loc) · 13.1 KB

Version history 📕

Version 3.0b3 | 12/15/24 (Newest)

Build Size: 229KB

🚀 New Features

  • 🛠️ Diagnostic Mode
    • Added a diagnostic mode for advanced debugging of drivetrain and system states.
    • New display task functions provide real-time drivetrain telemetry.
  • 🎨 Custom Theming
    • Introduced support for custom themes, allowing personalization of the interface.
    • Features include dynamic GIF backgrounds and team number overlays, all configurable via SD card.
  • 🔄 FWD/AWD/RWD Switcher
    • Implemented a drivetrain mode switcher for FWD, AWD, and RWD configurations.
    • Can be toggled dynamically during runtime for flexible performance tuning.
  • 🎮 Controller Settings
    • Added enhanced controller configuration options.
    • Features include dead zone adjustments, rumble settings, and button remapping support.
  • 🚗 Traction Control, Stability Control, and ABS
    • Traction Control: Detects and prevents wheel slip by comparing motor RPMs.
    • Stability Control: Automatically applies corrective braking to maintain steering stability.
    • ABS: Optimized braking to prevent wheel lock during sudden stops.
  • 📏 Odometer
    • Tracks the total distance traveled by the drivetrain.
    • Provides useful metrics for analyzing robot performance and system wear.
  • 🛠️ Maintenance Reminders
    • Built-in reminders for system servicing based on usage intervals.
    • Customizable thresholds for drivetrain maintenance and other components.

🛠️ Fixed / Improved

  • 🎥 GIF Player
    • Optimized memory usage, reducing reliance on the heap for improved stability.
    • SD card support for advanced GIF configuration is in the pipeline.
  • 💾 SD Card Enhancements
    • Improved handling of configuration file reads and data storage.
    • Enhanced reliability for large file operations.
  • 📋 Logging
    • Added color-coded log output for better readability.
    • Introduced scrolling log display on controller screens for real-time diagnostics.
  • `getuseroption` Improvements
    • Now supports unlimited user options loaded via SD card configuration.
  • 🔁 Accurate Turning
    • Refined algorithms for consistent turning precision under various conditions.
  • ✨ Error Handling in `StringToLong`
    • Added robust error handling to manage invalid inputs gracefully.

✖️ Deprecated

  • Removed the following legacy features:
    • LOCALLOGO
    • CTRLR2ENABLE
    • VISIONENABLE

🪝 Error Handling

  • Enabled try and catch in StringToLong for structured exception handling.

⚙️ Other Changes

  • VS Code Updates
    • Added support for extended C++ file associations and error squiggles.
    • Updated configurations to align with the latest VEX SDK and GCC/Clang versions.
  • Config Manager Enhancements
    • Introduced new methods for managing complex configurations dynamically.
    • Improved internal performance and error handling.
  • 📊 Motor Monitoring
    • Consolidated motor diagnostics into a unified monitoring system.
    • Enhanced visualization for drivetrain telemetry.
  • 🎥 GIF Player and Log Handler
    • Added new features for streamlined functionality and better performance.
  • 🧹 Code Cleanup
    • Refactored several modules for improved readability and maintainability.
    • Removed deprecated or unused functions to reduce clutter.

Version 3.0b2 | 6/26/24

Build size: 374KB

New 🎉

  • New configManager for well, configuring things!
    • With this, we can now get a part number for a motor, it's gear ratio, and whetherwhether it is reversed.
    • Maintenance warnings 's after a certain distance are a thing now!
  • gifplayer is back!
  • Updated custom sdk to 1.1.3!

Fixed / Improved 🛠️

  • I don't even know how many spelling fixes...
  • Better code structure to make it easy for everyone to look at.
  • Improved the Makefile, now supports any depth of folders for include and src.
  • Using -O3 rather than -Os for speed =) (Performance should be ~5% faster)

Version 2.0pr4 | 5/15/24

Build size: 339KB

New 🎉

  • New support for reading a cfg file on an SD card is here!
  • New support for different gifs 's for each mode (Loading, Auto, Drivercontrol).
  • Redesigned getUserOption, and is blazing fast!

    • Old -> Print to display: 0.6S.
    • New -> Print to display in: 0.2S.
  • Added new functions resetOrInitializeConfig, stringtobool, stringtofloat, configParser.

  • Custom PID!

Fixed / Improved 🛠️

  • In the function setValForConfig, Handling unknown keys in the configuration file by either resetting the config or ignoring them.
  • Modified variable initialization for improved readability and consistency.
  • Fixed a bug in the stringtobool function where the logical OR operator was incorrectly used.
  • Fixed a bug in the configParser function where the existence of the readme file was not properly checked.
  • Optimized many functions to use by reference, and threaded.
  • Fixed minor typos throughout the code.

Version 2.0pr2 4/14/24

Build size: 325KB

New: 🎉

  • New class: Log::Level
  • New armVol for controlling the arm voltage setting.
  • New scrolling support for get_User_Option.
  • New function motorMonitor that shows motor temps and battery voltage on the controller screen.

Fixed / Updated: 🛠️

  • Updated get_user_Option for more protections.
  • Fixed bug in get_User_Option that when the user fails the log for what buttons are a repeat.
  • Fixed bug that does not show % on the controller screen. (It requires %%)
  • Performance fixes by using references.

Version 1.0.0 3/9/24

Build size: 280KB

New: 🎉

  • Added a function clear_Screen to clear the controller and, optionally, the brain`s screen.
  • Added a function error_handler to handle and display error messages with optional output to the controller`s screen and colored output to the console.
  • Implemented autonomous and user control tasks with threading to run continuously during the respective phases of a VEX Competition.
  • Implemented a main function to set up competition callbacks for autonomous and driver control periods, start GUI startup, and handle continuous control of the drivetrain while preventing the main loop from exiting.

Fixed / Updated: 🛠

  • Faster execution time with ctrl1_Bttn_Presd using break to mimic a switch and case.
  • Improved ctrl1_Bttn_Presd print statement, now using a local variable as the way to print it on Debug_Mode.
  • Updated ctrl1_Bttn_Presd function to include error handling and prevent function execution if controller1Command flag is set.
  • Updated function get_User_Option to display options and get user input with error handling and prevention of function execution if controller1Command flag is set.
  • Updated controller_L1_Pressed, controller_L2_Pressed, controller_R1_Pressed, and controller_R2_Pressed functions to include error handling, to replace the rc_auto_loop_function_Controller1, and prevent function execution if controller1Command flag is not set.
  • Updated the setup function to create controller callback events, and new safety checks on startup.
  • Improved polling rate from 50Hz to 8000Hz on ctrl1_Bttn_Presd and the controller loop. (160X faster than the competition.)
  • Improved Global variables and function naming.
  • Improved comments.
  • Lots of performance improvements.
  • Lots of spelling fixes.

Version 0.3.0a6 / 1/27/24

Build size: 260KB

New: ✨

  • The rc_auto_loop_function_Controller1 is now run as a separate thread using vex::thread. This allows the main program to continue executing other tasks concurrently.
  • Thread creation and execution are printed to the console for debugging purposes.
  • Added print statements to indicate the start and completion of threading and callback operations.

Fixed: 🛠️

  • Lots of spelling fixes.

Version 0.3.0a5 / 1/26/24

Build size: 260KB

New: ✨

  • Added a debug mode for easier debugging. (Prints useful debug data to the console)
  • Created a new task (rc_auto_loop_function_Controller1) to monitor inputs from Controller1 in a loop, replacing multiple event handlers.
  • Added a new user control task (usercontrol) to manage user control operations.
  • Removed 3 global variables (major, minor, patch) in favor of a new one (Version).

Fixed / Improved: 🛠️

  • Updated print statements for better readability.
  • Improved organization and comments for better code structure.
  • Enhanced the control of motors based on joystick inputs for better responsiveness.
  • Corrected the print color for the main function.
  • Made new loops in GetUserOption for displaying options and general improvements to it.
  • Removed unnecessary delays and added appropriate waits for better performance.
  • Removed redundant statements in the setup function.

Removed: ❌

  • Removed unnecessary print statements for button presses.

0.3.0a4 / 1/23/24

Build size: 259KB

New: ✨

  • New images with data!

Fixed / Improved: 🛠️

  • General code fixes.

Removed: ❌

  • vex.h, robot-config.h, robot-config.cpp

0.3.2a1 / 1/22/24

New: ✨

  • New files! (robot-config.h, robot-config.cpp)
  • Made all code modular.
  • Autonomous control functions ready for writing.
  • Improved getUserOption functions.
  • Version printing.

Fixed / Improved: 🛠️

  • Main from exiting with an infinite loop.
  • Reduced file size from 563 KB to 258KB. (a 218% size reduction!) This required me to remove some standard library headers.
  • (Removed: stdlib.h, string.h, math.h. Added: string, iostream)
  • Better and WAY more comments.
  • Fix for inconsistency with 2 spaces vs a tab. This has been converted to 2 spaces.
  • Fix ctrl1_Bttn_Presd for if a user presses anything other than A it would return nothing.

Removed: ❌

  • Vex Sound play helper.
  • Input reading from controller1 as a task.