Skip to content

Releases: solar-engine/common-chicken-runtime-engine

ccre-v3.4.0: Major changes:

07 May 19:23
Compare
Choose a tag to compare
* Add optional Phase Verifier system

Minor changes:
* Add safe ExtendedMotor control methods
* Add unique identifiers to roboRIOs
* Support programmatic autonomous mode aborting
* Export IO subscribes through Cluck API
* Add 16-bit integer decoders to ByteFiddling
* Scale up PoultryInspector webcam views
* Raise PoultryInspector Webcam highlight components on top of everything else
* Allow DeploymentEngine users to access Emulator API
* Add view toggle button to PoultryInspector channel components
* Change default views on float components to textual
* Add startIfNotAlive to ReporterThread
* Add reset method to PIDController
* Remove CCRE 2->3 updater
* Let RS232IO extend Flushable
* Use events for flow phase cancels in Scheduler
* Improve Deployment Engine API slightly
* Add launcher for CCRE core tests
* Improve sample robot code
* Improve Javadoc slightly

Invisible changes:
* Increase priority of InstinctModule threads
* Streamline roboRIO detection in DeploymentEngine
* Improve TimelineInspector project setup
* Improve use of @Override
* Add phase annotations to a significant portion of the CCRE
* Simplify miscellaneous pieces of code
* Cache byte arrays to avoid GC churn in WebcamReader

Bugfixes:
* Ensure that the user intends to overwrite files in PoultryInspector save dialog
* Fix IO subscriber suffix confusion bug
* Fix Emulator reference issues by offloading classloading from itself
* Fix PauseTimer BooleanInput contract violation
* Fix camera over-refresh bug
* Provide consistent velocities in Emulator
* Remove extraneous logging from Emulator joysticks
* Hide NoRouteToHost log spam
* Increase length of Cluck TX queue
* Ensure that voltage logging includes the entire range
* Fix recorder printing name bug
* Fix miscellaneous Eclipse issue

ccre-v3.3.0: Release of CCRE with API 3.3.0.

04 Mar 00:32
Compare
Choose a tag to compare
Major changes:
* Add recording toolkit and Timeline Analyzer
* Add discrete channels
* Rearchitect and expand serial bus handling system
* Add new fleshed-out CAN Talon SRX interface: TalonExtendedMotor
* Add ethernet camera support to PoultryInspector
* Overhaul timing system to use a unified scheduler
* Add StopwatchTimer
* Add support for SD540 speed controller
* Add support for Spark speed controller
* Add support for Victor SP speed controller
* Add support for Talon SRX over PWM

Minor changes:
* Extend Time.* constants to longs to avoid overflow
* Add rumble support to Joysticks
* Support axis inversion in ControlBindings
* Add "OPEN NETWORK" button to PoultryInspector
* Allow PoultryInspector component removal by dropping components back into network palettes
* Add tunable ramping methods
* Add main class selector to SampleRobot
* Add recorder example to Valkyrie code
* Add selectByState to StateMachine
* Add mode tracking via discrete inputs to FRC API
* Add discrete input support to BehaviorArbitrator
* Add Storage support for deletion, existence checking, and file listing
* Deprecate old derivative implementation; add version without the zero-delta bug
* Add modulation (remainder) operation to FloatOperation
* PauseTimers now can take a FloatInput for the delay
* Add support for reading total current of the PDP
* Add Faultable<F> interface
* Add Derived...IO classes to match Derived...Input classes
* Allow Cluck publishing of any IOs, not just Cells
* Improved documentation in various ways

Invisible changes:
* Speed up unit tests
* Overhaul time testing system
* Switch travis CI from trusty-based to container-based
* Add support for reversed InputStreams to Cluck
* Add support for multiple SuperCanvas applications
* Update libwpilibJavaJNI.so to newer, slimmer, custom version
* ExtendedMotors are now enabled as part of simpleControl()
* Miscellaneous code clean-up and refactoring
* Apply author name change

Bugfixes:
* Fix long-standing serialization issue in PoultryInspector
* Fix FRC.counter to not fail most of the time
* Miscellaneous fixes

ccre-v3.2.0: Release of CCRE with API 3.2.0.

22 Jan 23:17
Compare
Choose a tag to compare
Major changes:
* Implement CCRE Eggs, which package up a code snapshot for later deployment
* Implement Behavior Arbitrators, which manage active subsystem controllers

Minor changes:
* Add static Output.combine methods
* Add negateIf, negatedIf
* Add conditional method for booleans: BooleanInput.select
* Add ExpirationTimer.getRunning method as BooleanIO
* Add ExpirationTimer.runWhen method
* Add onPress, onRelease, onChange with integrated send
* Add absolute value filter
* Add cell() shortcut to Outputs
* Add event and toggle button control bindings
* Add sample of Behavior Arbitrator use
* Provide BooleanIO-based control of InstinctModules
* Remove year-specific message from library version

Bugfixes:
* Fix certain test failures to not appear as errors
* Fix broken FRC inTeleopMode() method
* Fix loading storage segments with escaped names
* Fix version shortening for development versions
* Fix PoultryInspector RConf left click glitch
* Fix POV always-UP glitch that broke ControlBinding
* Fix javac incompatibility on some systems

ccre-v3.1.0: Release of CCRE with API 3.1.0.

11 Jan 18:11
Compare
Choose a tag to compare
Major changes:
* Add support for 2016 roboRIO image

Minor changes:
* Support new mDNS hostname
* Remove extraneous StandardStreamLogger
* Add support for testing logging messages
* Add testbed sample for Valkyrie

Bugfixes:
* Fix serialization of PoultryInspector components
* Fix infinite loop bug with recursive error reporting in Cluck
* Fix CCRE version number support

ccre-v3.0.0: Release of CCRE with API 3.0.0. Changes are since prerelease 3.0.0-pre1.

06 Jan 00:04
Compare
Choose a tag to compare
Major changes:
* Rename DriverImpls to Drive and drop "Drive" from method names
* Expand new-style documentation significantly
* Extract setup-mode EventOutputs as CancelOutputs

Minor changes:
* Add single-parameter motor creators to FRC
* Add FloatIO accumulate & friends
* Rename static BooleanOutput.onChange to BooleanOutput.polarize
* Made FloatOutput.filter work consistently with BooleanOutput.filter
* Add waitUntilNot with timeout for symmetry with waitUntil
* Change default value of subscribed FloatInputs to start at NaN
* Collapse various duplicate transformation methods to use each other
* #90: Remove HALControlWord
* Made InstinctMultiModule final
* Clean up miscellaneous code

Bugfixes:
* Fix handling of infinities by motors
* Fix edge case of onChangeBy
* Fix timing issue in PauseTimer unit test
* Fix float inspecificity in testing utilities
* Fix lack of error information during setRoots in Deployment Engine
* Fix occasional error silencing bug in testing utilities
* Fix miscellaneous documentation typos
* Fix CI integration issues

ccre-v3.0.0-pre1: Prerelease of CCRE with API 3.0.0-pre1.

11 Nov 01:16
Compare
Choose a tag to compare
Highlights:

* Structure: Removed support for cRIO.
* Structure: Started using Java 8 features everywhere.
* Dataflow: Removed pollability as a dimension of complexity.
* Dataflow: Moved *Mixing methods to instead be default methods on interfaces.
* FRC and roboRIO: Renamed Igneous to FRC.
* Documentation: Added a new Scribble-based documentation system.
* Deployment: Added DeploymentEngine system to manage deployment to robots, which is many times faster than WPILib's deployment tool.

Documentation changes:

* Added a new Scribble-based documentation system.
* Removed examples from last year's FIRSTFare presentation and added this year's examples.
* Continuous integration via Travis CI is now in use, which covers unit testing and checking of certain code maintenance targets, such as keeping license headers up-to-date. This should help future maintainers.
* Javadocumented just about everything important.

Dataflow changes:

* Removed InputPolls. Inputs only now.
* Added DerivedInputs, which replace some functionality of InputPolls.
* Pollable I/O is replaced by interfaces which take polling events and return updating I/O.
* Moved *Mixing methods to instead be default methods on interfaces.
* Added UpdatingInput as a superinterface of the *Input classes.
* send is no longer a fundamental method, but an implementation on top of the new onUpdate.
* Removed `unsend` and replaced it with unsubscription EventOutputs returned by the `send` family of methods.
* Renamed Statuses to Cells and extracted IOs as superinterfaces that merge Inputs and Outputs.
* Converted PIDControl into PIDController and inverted control to make more sense.
* Support for taking derivatives of float channels.
* Added miscellaneous new remixing methods and constant fields.
* Renamed EventStatus.clearListeners to __UNSAFE_clearListeners.

Error handling changes:

* Let setupRobot() and autonomousMain() throw Throwables.
* Added safeSet/safeEvent for top-level handling of errors.
* Removed EventOutputRecoverable and restructured error handling to ensure consistent propagation.

FRC and roboRIO changes:

* Renamed Igneous to FRC.
* Shorted names of everything in FRC.
* Removed the WPILibJ-wrapping style of FRC/Igneous implementation. Direct is the only implementation now.
* Added support for FPGA Counters on the roboRIO.
* Removed WPILib Eclipse plugins as a dependency.
* Added sensorPeriodic as the default polling interval in FRC.
* Renamed IgneousLauncher to FRCImplementation.
* Removed the driver station screen I/O methods.
* Added simpleControl of CAN to FRC and ExtendedMotor.

Deployment and build changes:

* Added DeploymentEngine system to manage deployment to robots, which is many times faster than WPILib's deployment tool.
* Removed dependency on Git in build process; versions are now specified in a source file.

Control interface changes:

* All Joysticks have POV hats now.
* Converted POV hat accesses to angle checks rather than angle and press accessors.
* Added AbstractJoystick to assist conversion of pollable interfaces into updating interfaces.
* Added default ControlBinding.
* Renamed IJoystick to Joystick.

Structural changes:

* Removed support for cRIO.
* Started using Java 8 features everywhere.
* Renamed all of the projects to have shorter and more accurate names.
* Changed expected project structure; added script to autoupgrade projects to v3 structure.
* Removed CCRE Collections.

Testing changes:

* Added FakeTime, for faking time in tests.
* Converted test infrastructure to JUnit.
* Unit tested huge sections of the CCRE that weren't before.

Miscellaneous changes:

* Added an abstraction for Time, for use in time-influenced testing.
* Renamed StorageProvider to Storage.
* Made StorageSegment its own implementation: now final instead of abstract.
* Slimmed down ExpirationTimer.
* Slimmed down StateMachine slightly.
* Changed StateMachine numberOfStates to be a getter.
* Simplified PIDController by only allowing absolute maximums.
* Added support abstractions for the dataflow event dispatch infrastructure.
* Added utility to rewrite CRLFs to LFs.
* Added miscellaneous support abstractions.
* Rearranged a few packages.
* Renamed just about everything to make meanings clearer.

Networking changes:

* Deabstracted the networking system and integrated traffic metrics.
* Added versioning to the Cluck protocol, which is backwards-compatible with v2.x.x Cluck, but only until the first protocol version increment.
* Added ability to subscribe to IOs.
* Deprecated Cluck UNSUB messages; they are replaced with NACKs.
* Cells are no longer RConfable.
* Removed default PoultryInspector link naming.
* Removed openDataInputStream and openDataOutputStream from ClientSocket.
* Removed minimum logging levels from network logging.
* Removed old Cluck searching methods.

UI changes:

* Resized Emulator components so that they require less screen space.
* Added window title to PoultryInspector.

Removals:

* Removed support for Phidget.
* Removed BooleanFilter.
* Removed StringHolder.
* Removed IgneousCore.
* Removed BootLogger.
* Removed ccre.launcher.Launcher dispatcher.
* Removed RLoad client and server.
* Removed Tokenizer.
* Removed the CCRE_Examples project.
* Removed MultipleSourceBooleanController.
* Removed Utils.currentTimeSeconds.
* Removed cRIO workarounds.
* Removed alternate storage implementations.
* Removed miscellaneous premature optimizations.
* Removed all sorts of deprecated and outdated methods.
* Removed deprecated EventOutput and updateWhen code in InstinctModule.
* Removed ApolloGemini2014 and InfernoDante examples.
* Removed vestigal kinect support, as it was only easily supported with the cRIO.
* Removed other vestigal and deprecated utility methods.

Implementation changes:

* Moved useCustomCompressor into FRC.

Bugfixes:

* Fixed incorrect disabling of digital outputs in emulator.
* Improved all sorts of bounds and argument checks throughout the CCRE.
* Fixed lots of edge cases.
* Fixed encoding incompatibilities and standardized on UTF-8.
* Fixed incorrect error propagation when broadcasting.
* Added missing top-level error handling.
* Fixed some miscellaneous race conditions.
* Fixed incorrect naming of mecanum drive code.

ccre-v2.9.0: Release of CCRE with API 2.9.0.

31 Jul 05:54
Compare
Choose a tag to compare
WARNING: This release has not been tested on the cRIO due to a lack of a cRIO robot to test on. If you need cRIO functionality and don't have time to debug, refrain from upgrading.

Major changes:

* Added ControlBinding module.
* Added Mecanum implementation to DriverImpls.
* Added access to Joysticks 5 & 6 on the roboRIO. This still doesn't work on the cRIO even if a new DS is used.
* Added logging pane to emulator.

Minor changes:

* Added onInitComplete event to Igneous.
* Added addAllIfNotFound() to ConcurrentDispatchArray.
* Added asOutput()/asInput() to EventStatus and FloatStatus to match BooleanStatus.
* Added null checks to FloatFilter.
* Added invalid-parameter checks to some FloatMixing methods.
* Added CArrayUtils.collectIterable.
* Added LogLevel.next().
* Added ability to change bounds for PoultryInspector FloatControlComponent.
* Added ability to control LoggingTargets and RemoteProcedures from the PoultryInspector.
* Changed StorageProvider to accept arbitrary names for storage segments.
* Improved networking diagnostics.
* Expanded EventOutputRecoverable subsystem to include more EventOutputs. (debounce)
* Renamed BooleanMixing.ignoredBooleanOutput to BooleanMixing.ignored.
* Deprecated BooleanMixing.ignoredBooleanOutput.
* Renamed FloatMixing.ignoredFloatOutput to FloatMixing.ignored.
* Deprecated FloatMixing.ignoredFloatOutput.
* Deprecated EventStatus.countConsumers.
* Upgraded to Cobertura 2.1.1.
* Added deactivated QuickDeploy implementation.
* Added --failfast option to testing harness.
* Added assertFloatsNear to testing harness.
* Added TextBoxComponent to emulator.
* Added ccre.log.Logger to default list of imports in RobotTemplate.
* Deprecated CCRE.jar dispatch launcher.
* Deprecated RLoad mechanism.
* Deprecated Tokenizer.
* Deprecated Utils.dynamicCast.
* Deprecated Utils.getGenericClass.

Bugfixes:

* Fixed rendering glitches of PoultryInspector FloatControlComponent.
* Stopped attempting the impossible task of binding to port 80 on Linux and Mac OS.
* Specified behavior of CallerInfo more accurately.
* Improved edge case handling of DefaultThrowablePrinter.
* Improved behavior of ThrowablePrinter in exceptional scenarios.
* Improved edge case handling of CHashMap.
* Fixed DefaultStorageSegment handling of null values.
* Fixed completely broken FloatMixing.onUpdate() implementation.
* Simplified one FloatMixing.select() implementation.
* Improved error handling in PauseTimer main loop.
* Updated javadoc for DriverImpls.
* Fixed race conditions in EventStatus, MultipleSourceBooleanController, FloatMixing.select(), and PauseTimer.
* Fixed emulator race conditions.
* Fixed issue in check-header.sh caused by cRIO build.
* Clarified FloatMixing semantics on edge cases.
* Clarified *Input semantics on edge cases.
* Removed premature optimization of *Status objects.
* Clarified RemoteProcedure documentation.
* Slightly clarified licensing.
* Fixed miscellaneous typos.

New & improved tests:

* Added TestFilters.
* Added TestFloatMixing.
* Added TestWorkarounds.
* Added TestLineCollectorOutputStream.
* Added TestUniqueIds.
* Improved TestBooleanMixing.
* Improved TestPauseTimer.
* Expanded TestBooleanStatus.
* Expanded TestFloatStatus.
* Expanded TestMixing.
* Improved and expanded TestEventMixing.
* Improved and expanded TestEventStatus.
* Rewrote and expanded TestUtils.
* Rewrote, expanded, and improved TestCHashMap

ccre-v2.8.1: Release of CCRE with API v2.8.1.

13 May 15:06
Compare
Choose a tag to compare
WARNING: This release has not been tested on the cRIO due to a lack of a cRIO robot to test on. If you need cRIO functionality and don't have time to debug, refrain from upgrading.

Documentation changes:

* First tutorial sequence now assumes use of a roboRIO instead of use of a cRIO. (#24)

Minor Features:

* Emulator outputs now respect disabled mode! (#48)

Bugfixes:

* Cluck no longer propagates errors through transmission.
* Improved support for Linux networking implementations.
* Better error insulation for StorageProvider.
* Fixed unexplained crash with null keys in CHashMap. Now it's an explained crash.
* Updated version of Cobertura.
* Added some missing buttons to emulator.
* Fixed pointer-out-of-bounds bug in the PoultryInspector rendering of merged IO. (#26)
* Fixed .gitignore to exclude PoultryInspector logs.
* Fixed PoultryInspector incorrectly displaying RConfComponents that contain inline AUTO_REFRESH entries.

New Tests:

* Test of file saving/loading infrastructure.

ccre-v2.8.0: Release of CCRE with API v2.8.0.

28 Apr 22:52
Compare
Choose a tag to compare
WARNING: This release has not been tested on the cRIO due to a lack of a cRIO robot to test on. If you need cRIO functionality and don't have time to debug, refrain from upgrading.

Major Changelog:

* Added support for interrupts on Digital Inputs!
* Added "recoverable events" that extend the recovery subsystem to be smarter and work better with highly-layered channel code.
* Disconnected autonomous mode cycles from periodic events.

Minor Changelog:

* Added ability to check if robot is connected to an FMS (as opposed to running outside of an official field.)
* Made `waitForEvent` return quicker and not poll.
* Added `setAutoCycleRate` and `getAutoCycleRate` to InstinctModule to control update rates of autonomous modes.
* Deprecated `InstinctModule.updateWhen`.
* Increased range of Emulator's current channels from 20A to 100A, to better reflect real ranges.
* Made mode test channels have more consistent behavior.

Bugfixes:

* Fixed failure to build cRIO libraries preventing use of roboRIO.
* Added missing null check to `filterEvent`.
* Fixed miscellaneous typos.
* Fixed miscellaneous compilation warnings.
* Added missing `serialVersionUID` to some PoultryInspector components.
* Fixed PoultryInspector lock-up if multiple CluckUnitTestComponents are dragged out.

ccre-v2.7.1: Release of CCRE with API v2.7.1.

10 Mar 00:18
Compare
Choose a tag to compare
WARNING: This release has not been tested on the cRIO due to a lack of a cRIO robot to test on. If you need cRIO functionality and don't have time to debug, refrain from upgrading.

Major Changelog:

* Removed Javadoc from repository - generated files don't go here. Use the online version.

Minor Changelog:

* None.

Bugfixes:

* Removed most of the log spam from RConfComponents that can't connect.
* Fixed RConf-based autonomous mode switcher.