Hello, everyone who is interested!
I've just pushed what should be the last update to the CCRE that breaks backwards compatibility - we figured that we want to make all of our changes that break backwards compatibility before this gets much use by other teams, which is now.
So if you have code right now using the CCRE, it's probably now broken. Sorry. See below for a list of the major changes so that it will be easy to fix it.
On the flip-side, it's now also very good! These changes improve the maintainability of the CCRE by a large amount, and make a lot of things easier to use. As well, it means that we will (hopefully) not have to make any more changes that break backwards compatibility in the near future!
I've also set the STABLE branch to this point, and it will remain at this point for the near future, although important bugfixes will still be added to this branch. If you don't trust the changes that are often pushed, the STABLE branch might be right for you as it changes very infrequently!
I will be working on upgrading the CCRE's documentation next, as it is several months out of date, so if you've experienced any issues with this, they should hopefully be resolved shortly. (If you have any recommendations for how to document this well, please let me know!)
Changes in this final refactoring sprint:
- EventProducer, Event, and EventConsumer renamed to the more consistent EventInput, EventStatus, and EventOutput.
- InputProducers are removed, and the functionality is merged into Inputs. This is because it makes little sense to have an Input without a get() method.
- BooleanOutputs and FloatOutputs now implement set() instead of writeValue().
- BooleanInputs, BooleanInputPolls, FloatInputs, and FloatInputPolls now implement get() instead of readValue().
- Inputs now use send() and unsend() instead of addListener/addTarget and removeListener/removeTarget. These all now return void, instead of random ones returning booleans instead.
- CluckGlobals is renamed to Cluck.
- CluckNode.publish and CluckNode.subscribe* are now moved to static methods in CluckPublisher, with proxy methods in Cluck. (So instead of CluckGlobals.node.publish or CluckGlobals.getNode().publish, you now use Cluck.publish.)
- Most of the methods in Mixing are now split into BooleanMixing, FloatMixing, and EventMixing, corresponding to the main focus of the method.
- Igneous programs now interface with static methods on the Igneous class instead of protected methods inherited from IgneousCore. (Same with fields.)
- Igneous programs are now initialized in setupRobot() instead of create*() methods, and may now also interface with hardware BEFORE this method is called, if necessary.
- InstinctRegistrars are removed. Now use Igneous.registerAutonomous(InstinctModule) instead of InstinctModule.register(this) in your Igneous applications.
- StorageSegments now save in a text-based instead of binary-packed format. This means that any currently-saved values will be lost!
- Some Igneous event names are changed - startTele instead of startedTeleop, for example. This, as a whole, make the system more regular.
- Events are moved to the ccre.channel package.
- ISimpleJoystick is merged into IDispatchJoystick and now called IJoystick for simplicity.
- FloatTuners are now removed, as their purpose was vestigal.
- Igneous programs may now implement IgneousApplication instead of extending IgneousCore (although they may continue to do so.)
- MultiTargetLogger is now removed, as it no longer serves a purpose.
- Network.Provider is now moved outside of Network and called NetworkProvider.
- StorageSegments are now implemented once in the CCRE instead of once per platform.
- PhidgetReader now uses static methods instead of fields.
- The entire PeripheralTree subsystem has been removed, as its purpose proved irrelevant to the CCRE and bloated the system, besides being completely untested.
- Correspondingly, the CEL interpreter has been removed. It was never finished, so this shouldn't impact anyone.
- Text-based loggers no longer use abbreviations of LogLevel names, but rather the full names, for reasons of clarity.
- Other minor changes have been made, but they were deemed unimportant enough to be left off of this list.
__________________
Software manager alumnus. Developer of
the CCRE, a powerful robot code framework based on dataflow and composibility.
Refer to as she/her/hers. Years of FRC: 2012, 2013, 2014, 2015, 2016. FLL for a few years beforehand.
Team 1540:
The Flaming Chickens | Portland, Oregon |
Twitter |
Facebook