Skip to content

Releases: teamhyper/hyperLib

v2.0.0

23 Jan 01:23
Compare
Choose a tag to compare
Version 2.0.0.

No code changes since 2.0.0-rc1, so this was last tested with the 2021 version
of wpilib.  The only change is in our release process, which we needed to test
anyway.

Release v1.1.2

10 Feb 21:06
6db0a0d
Compare
Choose a tag to compare
Include HYPERVision & Connector files

Release v1.1.1

10 Feb 20:20
Compare
Choose a tag to compare
Re-release of VisionConnector so Travis can build and release properly

Release v1.1.0

10 Feb 18:46
6db0a0d
Compare
Choose a tag to compare

Convert hyperLib's Vision System to use a VisionConnector to post information from the Raspberry Pi to NetworkTables, and allow the robot code to subscribe to those updates for Vision Commands.

Release v1.0.1

09 Jan 04:41
Compare
Choose a tag to compare
Add MecanumDrive to DriveParameters

Release v1.0.0

05 Jan 23:42
Compare
Choose a tag to compare
This is the first official stable release.  Only very minor changes
were made from the last release, in order to update to WPILIB
2019.1.1.  From this point on, I'll make sure to maintain backwards
compatibility, until version 2.

Documentation on the wiki is now mostly up-to-date.  A sample gradle
file to use this release is coming soon.

v0.4.0-2018-compat

19 Nov 22:16
Compare
Choose a tag to compare
Version of 0.4.0 compatible with the 2018 libraries.

v0.4.0-travis: Re-release of v0.4.0

18 Nov 03:10
Compare
Choose a tag to compare
Pre-release
(Hopefully) fixed a bug in the travis deploy script.

Release v0.3.1

01 Jun 18:06
Compare
Choose a tag to compare
Release v0.3.1 Pre-release
Pre-release
This release makes the preferences library thread-safe, and fixes
a bug with how the labels on "pressed" vs "released" in the robot
inspector.  This is the first release after competition, and is
what we'll be using to teach the new programmers over the summer.

Also, I'm trying this release with an annotated tag instead of a
lightweight one, since that's the "proper" way to do releases in
git.  It seems github releases like lightweight better, but jgitver
likes annotated better, so we'll see how it goes.

Release v0.3.0

24 Feb 03:57
Compare
Choose a tag to compare
Release v0.3.0 Pre-release
Pre-release

This release contains the code that is going with our robot to the 2017 competitions. Once we migrate some of the vision processing from hypercode2017 to here, and we've had some more "user acceptance testing" with junior programmers on the team, it looks like a 1.0 release will be in sight!

Most notably, we've added CommandBuilder, a builder-pattern type of thing which replaces CommandGroups (actually, it uses a CommandGroup under the hood, but it aims to be more ergonomic. In the future, we might change from CommandGroups entirely to our own thing, and code would still be compatible). Some features include:

  • Easily chain together commands (e.g. new CommandBuilder().sequential(foo).parallel(bar).build())
  • Wait for times, conditions, and other commands with waitForDuration, waitForCondition, waitForMatchTime, and waitForChildren. This way you can separate what a command does from when it finishes.
  • Easily end parallel commands with release(Subsystem) and releaseAll(). This combines well with the waitFor* methods, something we had a good deal of trouble with in 2016.
  • Use control flow in commands using ifThen, forLoop, and whileLoop. ifThen uses a WPILib ConditionalCommand, but it takes a lambda instead of requiring you to extend an abstract class. The loop commands are entirely original.

Currently the syntax on the loops and ifs makes it cumbersome to nest loops and branches. In a future release we may change it to beginWhile and endWhile, and so on, with validation being done in build(). This is low priority, since currently we don't have any autonomous mode or other routines that need this complexity. (Or perhaps this difficulty has stopped us from trying anything too complex?)

Minor change: we now use one-letter abbreviations for "pressed", "release", and "held" in the OI diagrams, to save space. These diagrams could still use some work to make them pretty.

Lastly, we've set up more unit testing. As the library grows and becomes more complex, this will only get more important.