Build Size: 229KB
- 🛠️ 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.
- 🎥 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.
- Removed the following legacy features:
LOCALLOGO
CTRLR2ENABLE
VISIONENABLE
- Enabled
try
andcatch
inStringToLong
for structured exception handling.
- 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.
Build size: 374KB
- 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!
- 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)
Build size: 339KB
- 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!
- 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.
Build size: 325KB
- 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.
- 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.
Build size: 280KB
- 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.
- 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 ifcontroller1Command
flag is set. - Updated function
get_User_Option
to display options and get user input with error handling and prevention of function execution ifcontroller1Command
flag is set. - Updated
controller_L1_Pressed
,controller_L2_Pressed
,controller_R1_Pressed
, andcontroller_R2_Pressed
functions to include error handling, to replace therc_auto_loop_function_Controller1
, and prevent function execution ifcontroller1Command
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.
Build size: 260KB
- 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.
- Lots of spelling fixes.
Build size: 260KB
- 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
).
- 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 unnecessary print statements for button presses.
Build size: 259KB
- New images with data!
- General code fixes.
vex.h
,robot-config.h
,robot-config.cpp
- New files! (
robot-config.h
,robot-config.cpp
) - Made all code modular.
- Autonomous control functions ready for writing.
- Improved
getUserOption
functions. - Version printing.
- 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.
- Vex Sound play helper.
- Input reading from controller1 as a task.