Open
Conversation
# Conflicts: # core/src/main/java/com/seattlesolvers/solverslib/command/CallbackCommand.java
refactor: renamed zero to reset method in Encoder
refactor: renamed zero to reset method in Encoder
# Conflicts: # core/src/main/java/com/seattlesolvers/solverslib/hardware/IncrementalEncoder.java # core/src/main/java/com/seattlesolvers/solverslib/hardware/motors/Motor.java # core/src/main/java/com/seattlesolvers/solverslib/kinematics/wpilibkinematics/DifferentialDriveOdometry.java
…oder, IncrementalEncoder)
…soluteAnalogEncoder due to dependency injection
Collaborator
|
This is a pretty large change, so I'm going to only merge in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note: Callbacks and AbsoluteAnalogEncoder are untested, but IncrementalEncoder is tested
What kind of change does this PR introduce?
Encoder,EncoderBase, andIncrementalEncoder.AbsoluteAnalogEncodernow extendsEncoderBase. A cool consequence is thatIncrementalEncodernow has angle related methods.CallbackCommandto easily add custom callbacks to commands. Also added default methoduninterruptible()toCommandto conveniently wrap inUninterruptibleCommand. If more convenience methods are welcome, let me know.CRServoExnow supportsAbsoluteAnalogEncoder,IncrementalEncoder, and anything that is anEncoder. This does require adding a generic, though.CRServoExconstructor specifically made forAbsoluteAnalogEncoderdue to dependency injection principles.I tried, but I can't add default methods
whenandwhenSelfinCommand. It requires knowledge of the self type, which is impossible unless you include it as a generic. However, doing that would break literally everything. However, the two most basic ones,when(BooleanSupplier condition, Runnable runnable)andwhen(BooleanSupplier condition, Command command)are still included in Command by default.Did this PR introduce a breaking change?
Motor.Encoder, everything is now extracted intoIncrementalEncoder. Old methods kept. I can revert this change easily if it's considered too breaking. You could, of course, put theIncrementalEncoderimplementation as a revised Motor.Encoder and removeIncrementalEncoderentirely.AbsoluteAnalogEncodermethods and constructors the same, but deprecated some in favor of better names. It won't break old code.AbsoluteAnalogEncoderis new anyways so it doesn't even matter that much.Motor.Directionis extracted intoRotationDirection, since it's very common. Don't know if this is a good idea, can revert.