Releases: SwerveRobotics/ftc_app
Swerve Library v1.1.0
This is a relatively large-ish update. Most significantly, SynchronousOpModes now automatically use new easy modern motor and servo controller and easy legacy servo controller implementations in addition to the easy legacy motor controllers they used previously. These new implementations offer a simplified programming model, mostly of the consequence of the fact that reads and writes now always see the effect of previous writes: the controllers just do what you tell them to, and when you read from them, you read in the context of everything you've already done.
Additionally, this release now enforces the rule regarding the Wifi direct name used on robot controllers and driver stations. Please beware, and adjust your names and repair your phones as necessary.
Several miscellaneous bugs have also been fixed.
And, of course, some have undoubtedly been introduced, especially given the size of changes. If you happen to notice anomalies, please get in touch, and we'll endeavor to fix them as soon as we can.
Swerve Library v1.0.3
This release updates the Swerve Library to sync with the FTC HQ release of November 4th, 2015.
As with all updates that sync to a new version from FTC HQ, be sure to update your driver station in addition to syncing and rebuilding your app.
If you've made a copy of the YourCodeHere module: the build.gradle therein now must contain a versionCode of 5 or greater instead of 4 as was previously required.
Swerve Library v1.0.2
This release corrects a few bugs present in v1.0.1, most notably an error in DCMotor.getPosition().
There are no known breaking changes.
Swerve Library v1.0.1
This release of the library notably adds the EasyLegacyMotorController implementation, making it much easier to use the legacy motor controllers. A mechanism to play a sound when the robot initializes or fails to initialize is also added; see MyRobotControllerAdministration in YourCodeHere. Several other miscellaneous improvements have also been made.
This release synchronizes with the FTC HQ release of 2015.10.06. The extent of the changes can confuse Android Studio: a one-time 'Build/Rebuild Project' might be necessary.
There are a few breaking changes:
- YourCodeHere (or your copy thereof) build.gradle now must contain a versionCode of 4 or greater instead of 3 as was previously required.
- ClassFactory APIs are regularized and as a result slightly changed. Some, notably the IMU and the I2cDeviceClient creation APIs, now take a required OpMode context object.
- I2cDeviceClients are now created in a disarmed state and must be manually arm()ed to be functional.
- IAction was removed; uses were replaced with Runnable, with which it was redundant. IInteruptableAction was similarly removed.
- IStopActionRegistrar was removed; previous uses now use a new more robust shutdown notification mechanism.
v1.0.0 Release Candidate
Noteworthy in this update is that the passphrase to the Wifi Direct network whose 'access point' is hosted by the robot controller is now displayed on the robot controller screen. With this password you can connect from a laptop or desktop to the private wireless network of your robot controller as easily as you connect to any other wireless network. Just look for the SSID of the form 'Direct-twoRandomCharacters-yourRobotName'. Being able to connect in this way facilitates wireless debugging and code downloads, as connects a development machine to a robot controller without the need for a separate wireless network which might not be available, especially at competitions. Our BotBug tool might be of assistance in making these connections.
This password can also be found by looking for the string 'PassPhrase' in the Android Studio LogCat output from the robot controller. It has also been mentioned that a future release from FTC HQ may also display the password on the robot controller screen.
On other topics, there is a small breaking change in the administrative details of YourCodeHere. If you haven't renamed this to use your own team name (or whatever), things should be automatically handled for you. If you have, please see the comments in MyOpModeRegistrar.java.
FTC HQ sync, AdaFruit IMU completion
This release synchronizes with the update from FTC HQ published on Sept 18, 2015. It also includes a number of improvements of our own, notably what appears to be a fully functional AdaFruit IMU (this time for sure!).
There are small breaking changes in IBNO055, caused by the movement of Position, Velocity, etc to top level classes. I2cDeviceClient has several new features, which also causes some breakage.
Documentation, examples, I2C, registration, and a general tidy
This updated beta release tidies and reorganizes the code to reduce unnecessary differences with the robot controller runtime and to enhance maintainability over time; this is supported in part by a new annotation-based OpMode registration mechansim. The I2C and BNO055 IMU support now seems fully functional.
There are some small breaking changes in this release. Of note, telemetry.dashboard is no longer a nested object, and its methods have been moved to the main telemetry object, and 'line' has been changed to 'addLine'. Also, newGampadInputAvailable() is now updateGamepads().
Documentation, I2C, and IMU
This release includes documentation and many miscellaneous improvements to SynchronousOpMode. Additionally, a new I2cClient makes it easy to use I2C ports on the Core Device Interface Module, and an implementation of support for the BNO055 inertial motion unit from AdaFruit is layered on top of that.