Skip to content

Motors Update

Daniel Fonseca Yarochewsky requested to merge motors-update into master

Created by: Baldstrom

New Motors Update

There are a lot of changes in this branch, some of which are breaking, but we believe that these changes make using motors and servos in Scarlet more intuitive.

Major Changes

  • Makes motors more user-friendly. For example, TalonMC and Cytron MCs handle input filters and threading internally.
  • TalonMC and CytronMD30C now take advantage of new IFilter requirement: IsSteadyState() to handle threading internally.
  • IMotor and IServo now use SetEnabled(bool Enabled) to set whether or not the motor runs
  • Made filter changes to add IsSteadyState() functionality to LowPass, Average, and Kalman filters.
  • Added Testing files for TalonMC
  • Added Constants class to Utils for across-code ease-of-use.
  • Removed file search utility in Utilities

Notes

  • All TalonMC tests pass
  • Added Testing playlists
  • Added LowPass test class (not populated)
  • Added TestablePWMOutput for testing purposes (to see changes directly on the duty cycle output)
  • Did not directly test CytronMD30C, but it works in the exact same way TalonMC does, except that it uses a GPIO pin to set the direction of the motor which was tested when it was originally implemented on an actual motor controller
  • None of these classes have been directly tested on physical motor controllers.
  • The generic Servo class is still not implemented.

Merge request reports