|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Quote:
Quote:
Using unboxing should work properly, as far as I can remember. This is a language feature, not a bytecode or library feature. (You can use all Java 1.5 language features safely on the cRIO when using the CCRE, as far as I know.) Using java.net.Socket will cause a compile-time error when targeting the cRIO (but not when targeting the roboRIO). This isn't an issue, though, because you can just use ccre.net.Network.connect(addr, port), which wraps both Squawk and Java SE interfaces for you into one interface. In general, things will either just work or have a compile-time error. There are few cases when something will fail at runtime. Of course! Since it's licensed under the LGPL, any team that wants to use it (or any subset, really, but if you're going to use part of it, you may as well use the rest) is free to do so. |
|
#2
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Weekly update on 2014-10-27
CCRE release 2.1.1 is available. Code:
Important changes since v2.0.0: Added PIDControl. Added Single Joystick drive. Improved ExpirationTimer. |
|
#3
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Semi-weekly update on 2014-11-05
CCRE release 2.2.0 is available! Code:
Changelog: * Removed legacy version of the Poultry Inspector. This should not affect you. * Moved ApolloGemini2014 to be another sample in SampleIgneousRobot, as would make more sense. * TuningContexts will remember their names so that publishing a save event doesn't need to have the name specified again. * TuningContexts will default to the global CluckNode if no node is specified. * Added `Igneous.NO_RAMPING` constant, equal to 0.0f, which may be used as the ramping argument to `make*Motor`. * Multiple interface savefiles are now supported by the PoultryInspector. Bugfixes: * Emulator failed to close if main code couldn't be loaded. * Inverse trigonometric functions were unavailable on cRIO. * (Partial) The build process paused a long time while old files are deleted. * Emulator launch built more than was required, slowing down emulator launching. * Poultry Inspector required Java 7, instead of Java 6. |
|
#4
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Semi-weekly update on 2014-11-21
CCRE release 2.3.0 is available! Lots of goodies here - a total of 48 commits to our Git repository since the last release! Code:
Major Changelog: * Added booleans to TuningContext, so that the tuning framework works with them as well as floats. * Added file and line number readouts to logging messages. * Automatically set motors to zero on disable, to prevent ramping jumps. * Added arithmetic on channels to FloatMixing. * Added listing of robot addresses in PoultryInspector, instead of a preset address. * Added lots of alternative views for PoultryInspector controls. * Added method by which .input and .output for the same channel get shown as the same channel in the PoultryInspector. Minor Changelog: * Removed launches from TemplateIgneousRobot, so that only real projects get them. * Sped up cRIO library building. * Miscellaneous visual improvements to the Poultry Inspector. * Cleaned up the implementation of the Mixing* classes: https://github.com/flamingchickens1540/Common-Chicken-Runtime-Engine/issues/7 * Added `IJoystick.getXSource()`, `IJoystick.getYSource()`. * Made the averageBits parameter optional in Igneous.makeAnalogInput. * Added OutputStream support to PoultryInspector. * Cluck can now publish EventStatuses without manually breaking out the channels. * Let DriverImpls Single Joystick Drive (Arcade Drive) take Joystick handles directly. * Added unofficial copy of the Squawk source code to the repo so that source shows up. * Added copy of the WPILibJ source code to the repo so that source shows up. * Added roboRIO debugging support. * Streamlined instantiation of TuningContext objects. * Marked `makeAnalogInput_ValueBased` as deprecated. * Added dynamic time waiting method to InstinctModule. * Added direct access function for `Utils.currentTimeSeconds`'s value. Bugfixes: * Fixed incorrect Java versioning on some CCRE projects. * Fixed off-by-one error with axes in roboRIO glue. * Fixed the out-of-limit bug with PoultryInspector float readouts. * Added backport rules for some mathematical functions that were unavailable on the cRIO. * Fixed the bug where dragging out BooleanOutputs in the PoultryInspector would set them to false immediately. * Fixed default positioning of the Logging Component in the PoultryInspector. As always, if you have any issues, suggestions, questions, comments, etcetera, about the CCRE, please post them here! |
|
#5
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Hotfix update on 2014-11-23
CCRE release 2.3.1 is available! This fixes a few problems, most importantly a major serialization bug introduced and present only in CCRE release 2.3.0. You should not be affected by this bug unless you're using the saved-layouts feature of the PoultryInspector. Code:
Bugfixes: * Fixed issue with saving PoultryInspector views that contain control components. * Added keepalives for Cluck. * Fixed ISOMETRIC_BUTTON stretching issue on PoultryInspector. We recommend keeping your copy of the CCRE as up-to-date as possible. See the short update guide on GitHub. |
|
#6
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
We're getting ready for release 2.4.0, but it's probably not going to be ready before Kickoff. However, we need to release all code before Kickoff by R13, so here are the details on where you can get it:
Everything is on the GitHub repository. The latest changes are in the devel-2.x.x branch, which is also publicly available. There is also a pull request in process (#10), which is also publicly available. If you want the sum total of everything we have "unreleased" (it's public but we haven't signed off on it as a stable CCRE release), those two places will have it. We also plan to get them together into ccre release 2.4.0 soon, so you can also wait for that. If anyone thinks that this doesn't satisfy R13, please let me know and I'll try to fix things. |
|
#7
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Release 2.4.0 should be up either today or tomorrow. The main thing remaining is to test the latest version to make sure that nothing's been accidentally broken since the last release.
Once this release is out, you will definitely want to upgrade - it has a number of fixes and improvements that are essential to programming the roboRIO with the CCRE, such as the rewritten Emulator that also supports the roboRIO. We're also going to be pretty much requiring Java 8 now, so make sure to grab it from Oracle's site. Also, we can see that a number of people have downloaded the CCRE recently! If you have, consider posting your opinions/findings here. (Especially if you plan to use it.) |
|
#8
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
CCRE update on 2015-01-06
CCRE release 2.4.0 is out! This is the major 2015 season release - it contains working versions of most of what you'll need to use the CCRE in the 2015 season. Code:
Major Changelog: * A new Emulator model: DeviceList. This doesn't use screen space as well, but is easier to understand and only shows what your code uses. * The Emulator now supports the roboRIO. * Java 8 is now required for development. * A new MultiModule system for easily selecting and configuring autonomous modes. * Added an example of good usage of the CCRE by rewriting last year's robot code. * ExtendedMotors were added, which allow for CAN motor support. * Barebones CAN motor support. Minor Changelog: * The PoultryInspector now allows the END key to be used in place of ENTER to avoid disabling the robot. * Added a version of `CluckTCPServer.setupServer` that takes a port number. * Added FMS-compatible ports to roboRIO and PoultryInspector defaults. * Added USB preset to PoultryInspector. * Added `BooleanMixing.whenBooleanChanges` and `FloatMixing.whenFloatChanges`. * `createDispatch` no longer ignores the initial value. * The Emulator now reports errors in the GUI. * Improved helpfulness of the message when the roboRIO plugin is not found. * A wide variety of internal code enhancements. * Moved the virtual phidget display to be a PoultryInspector component instead of a window. * Added buildscript for the PoultryInspector's package. * Added screenshots to PoultryInspector documentation. Bugfixes: * One implementation of `FloatMixing.onUpdate` was private. * ConnectionReceiverThread always said port 80 when connection failed regardless of port. * createDispatch now includes the original value in the result. * Mixing.select now updates even when the selector stays the same. * Fixed occasional link unavailable errors without useful information. * Miscellaneous behavior fixes in Mixing methods. * Miscellaneous concurrency fixes. * Several other miscellaneous fixes. * Fixed some minor licensing issues where the wrong documentation was provided. As usual, please send us any comments, questions, complaints, suggestions, etc! |
|
#9
|
||||
|
||||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Your framework looks really nice. I was reading your documentation on the logging portion of the framework. You mentioned that some logging frameworks wouldn't run on the limited FRC setup. I was wondering if the change to the Roborio increased performance so that some of the logging frameworks would now work? I was looking at having our team look at something like Log4J, but I'm concerned it won't work.
Brian Carlson Programming Mentor |
|
#10
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Quote:
You can certainly use Log4j, but you'd have to do your own work to integrate it. |
|
#11
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
Quote:
|
|
#12
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
CCRE release 2.5.0 is out! The main feature here is RS232 support.
Code:
Release of CCRE with API v2.5.0. Major Changelog: * Support for RS232 ports on cRIO and roboRIO. * Infrastructure to support Serial IO in general. * ExpirationTimers now allow for tunable delays. * A driver for the UM7LT heading sensor is now included. Minor Changelog: * CArrayUtils now has sorting methods. * Igneous now acquires method information during caller analysis, meaning that logging messages on the cRIO now include the line number as well as the file name. * Added direct isDoingWork() method to CollapsingWorkerThreads. * Removed old non-RawIO roboRIO IgneousLauncherImpl. * Added cRIO backporting support for java.util.Arrays. * Miscellaneous cRIO backporting support. * Moved most TODOs from the code into Trello and GitHub. * Refactored CluckPublisher subscribers to have less code duplication by factoring out `CluckRMTSubscriber`. * Most of Cluck now has an automated testing system set up, invokable via the PoultryInspector * A unit test for CArrayUtils sort methods has been added. * CLinkedList now has a `setAll` method used for bulk-reloading data. * Miscellaneous PoultryInspector graphical code cleanup. * Added missing documentation for Beeper. Bugfixes: * roboRIO RawIOIgneousLauncher no longer stores state statically. * If cRIO library builds fail, they will no longer silently allow robot projects to still be compiled with the old version. * Fixed a race condition in the Emulator's redrawing code. |
|
#13
|
|||
|
|||
|
Re: The CCRE: A comprehensive award-winning robot code framework
CCRE release 2.6.0 is out! A number of features have been added - CAN Talons, RConf, StateMachines, additional PoultryInspector configuration, log fetching, etc.
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. Code:
Release of CCRE with API v2.6.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: * Support for CAN Talons on the roboRIO. cRIO will not support them in the near future. * RConf (Remote Configuration) subsystem introduced. * StateMachine is now provided for middle-complexity subsystems. * PoultryInspector now allows for range configuration. * PoultryInspector components now configured via RConf views. * Support for multiple PCMs/Solenoid Modules. * Support for Joystick POV hats. * Support for log fetching from roboRIO targets. (Autoruns on code download.) * Code coverage for tests can now be generated. Tests expanded to cover approximately 30% of codebase. * Prototype (not used by default) version of roboRIO target that bypasses the majority of WPILib, for a theoretically more stable experience. Practically, don't use this yet for anything real. Minor Changelog: * Deprecated makeAccelerometerAxis, as it is so trivial that it shouldn't have a builtin method. * Removed ComputationBenchmark. It was completely unused and not particularly helpful in any way. * InstinctModule.waitUntilNot. * BooleanStatus.asInput, asOutput, asInvertedInput, asInvertedOutput. * EventStatus.countConsumers. * BooleanMixing.xorBooleans now supports BooleanInputs, not just BooleanInputPolls. * FloatMixing.floatIsOutsideRange, floatIsInRange, normalizeFloat now support Inputs, not just InputPolls. * Mixing.quadSelect now supports Inputs, not just InputPolls, at least for the selection parameters and return value. * BooleanMixing.setWhile, setWhileNot. * FloatMixing.setWhile, setWhileNot. * BooleanMixing.toggleEvent. * ExpirationTimer.terminate, PauseTimer.terminate. * Igneous reports the name of the main class at startup. * Fixed up Deprecation notes. * Usage reporting now includes CCRE note. * WPILib version number now includes CCRE version too. * Extracted AbstractJoystickWithPOV from various IJoystick implementations. * Automatic CAN error recovery - CAN motors are bypassed temporarily on exception-throwing communication failures, to keep the rest of the code running. Certain other errors are logged and ignored. * Removed testing package from cRIO builds. * ExtendedMotors now support ANY_FAULT and COMMS_FAULT. * ExtendedMotors no longer include _PID in mode names. * Now specified that ExtendedMotors report temperature in Celsius, if at all. * A number of ExtendedMotor methods no longer throw ExtendedMotorFailureException. * ExtendedMotorFailureException is now a checked exception. (Since CAN functionality is not an officially finalized API, changes like this don't officially break backwards compatibility.) * ByteFiddling.asInt32LE, ByteFiddling.asInt32BE. * Made IgneousLauncherHolder publicly accessible. * TestingException now always requires an argument. This was only internally used, so this shouldn't be an issue. * PoultryInspector float-based components now accept ranges. * Initial version of a deeper example of how to use the CCRE's more complex features on a simple robot. * Joystick access example added. * Added inversion option to BooleanDisplayComponent. * Added exclamation point to the warning light view for aesthetics. Bugfixes: * Fixed broken serialization on a variety of PoultryInspector and Cluck systems. * Fixed unbalanced SpinDevice weighting. * Removed extraneous debugging statement in DeviceListMain. * Improved Ticker synchronization. * Fixed NaN-propagation bug in PIDControl that could permanently deactivate the PID. * Clarified IJoystick documentation. * Code is much less likely to crash if CAN devices cannot be contacted at startup. * Removed some warnings for missing Javadoc in places where it doesn't make sense to be added. * Miscellaneous warning fixes. * Miscellaneous Javadoc fixes. Also, keep in mind that downloadable PoultryInspector builds for your Driver Station are available from our GitHub page. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|