The ROBOTC Development Team is happy to announce a public preview of ROBOTC 4.51! This update is for the LEGO MINDSTORMS (NXT and EV3) physical and virtual robotics systems and includes some great new features, improvements, and a load of bug fixes.
Important Setup Information for ROBOTC 4.51:
LEGO NXT Users:
- Simply update to the latest ROBOTC firmware from inside of ROBOTC.
LEGO EV3 Users:
- All users will need to update the LEGO EV3′s Kernel by connecting the EV3 and selecting “Robot Menu -> Download EV3 Linux Kernel” from inside of ROBOTC. The version number (1.07X) is the same to keep alignment with the EV3 Programming Software and LEGO’s releases.
- After updating your EV3′s Linux Kernel, you’ll also need to update the ROBOTC firmware from inside of ROBOTC.
ROBOTC 4.50 —> 4.51 Change Log:
New Features and Improvements:
- Added support for simple mathematical expressions in numerical text boxes in Graphical.
- Datalogging has been added for the EV3 platform.
- Users can now log your data from inside your program, with or without a timestamp.
- Users can also configure motor, sensor and other values to be automatically polled at intervals as low as 10ms.
- Users can view data in ROBOTC as it polled in and save to a .CSV file for additional analysis in a popular spreadsheet software.
- Use standard keyboard shortcuts to Select All, Copy, Cut and Paste in the Debugstream Window.
- Natural Language Library Files have been enhanced for improved readability.
- “Port with no Motor” has been added as an option for graphical blocks that use multiple motors – this will allow you to unselect a specific motor.
- Graphical Copy and Paste has been improved to work better with comment blocks.
- A flag (-SUPPRESS ) has been added to allow suppression of command line activation errors.
- When compiling multiple files at once, the IDE will remain more responsive to user interaction.
- A setMotorBrakeMode block has been added to Graphical, allowing motors to be set to either “float” or “brake”. This will allow motors to be setup as “free running”. This command can be found in “Expert” and above menu levels.
- Additional programming samples have been added
General Fixes:
- ‘Trial’ indicator displays correctly, regardless of license combinations.
- Missing function added to the Function Library descriptions
- Fixed and improved “hover over” tool tip help descriptions inside of the Function Library.
- Resolved issue where the bottom of the Graphical Library view would not be cleared properly when scrolling
- Char arrays with “\0” are properly initialized.
- Selection of options inside of a Graphical Block can be reverted by using “undo”.
- RVW files with the extra tag but without the expected internal tags no longer crash ROBOTC
- Several float-related issues resolved:
- Compiler incorrectly optimizes constant expressions with ‘float’ operands.
- Formatted printing does not work with negative floats
- sscanf crashes VM with floats
- Using nSemaphore.nOwningTask comparison no longer generates a compiler warning
- Two enum issues related to overflowed values have been fixed.
- Functions returning pointers no longer generate errors when used in Boolean logic expressions.
- Values from arrays of pointers assigned to another pointer, no longer cause errors.
- setMotorBrakeMode commands take immediate effect, rather than after the first motor speed command.
- Closing a source file could cause am unhandled exception under certain conditions, this has been resolved.
- Compiling multiple Graphical programs at once no longer generates an error that there is no code to compile.
- Fixed an issue where the Global Variable Base Address was incorrectly displayed.
- RVW Package Manager will only self-elevate if multiple level packs are being installed.
- Numerous small visual enhancements and fixes.
MINDSTORMS Fixes:
- Changing the volume programmatically on an EV3 could cause a screen freeze when using the on-brick volume program after the program had exited.
- Fixed issue where Casper is not cleaned up properly when the application exits.
Happy Programming!