Releases: solar-engine/common-chicken-runtime-engine
Releases · solar-engine/common-chicken-runtime-engine
ccre-v3.4.0: Major changes:
* 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.