Network Tree Fixes
Elastic is now able to display and add widgets for topics that don't contain a leading /
ElasticLib Python and API Rewrite
ElasticLib is now supported in Python. Additionally, the Java and C++ APIs have been rewritten to align more with language conventions. This does mean that existing code using ElasticLib will have to be modified, however the features of the library still remain the same.
Note about C++: The C++ api is now split into 2 files, elasticlib.h
, and elasticlib.cpp
, both of these files will have to be in your project in order for the library to compile
Special thanks to @DanPeled and @calcmogul for their work on this!
Bug Fixes and Stability Improvements
An issue was fixed that prevented list layouts from being created in certain situations. Additionally, the logic for widget dragging and grid updating has been changed to automatically update the grid whenever a widget changes, which fixes several errors that would occur when dragging widgets out of a list layout, and should increase reliability.
There was also an issue where some text boxes would submit before the user confirmed, which made it impossible to configure grid sizes, this has now been fixed.
Settings Menu Rewrite
The settings menu has been redesigned and is now much easier to navigate!
Camera Stream Optimizations (Again!)
The logic for decoding and rendering camera streams has been completely rewritten in a style better optimized for continuous streaming. The logic for determining when to stop streaming has been simplified, and also fixes the issue of streams starting before the widget becomes visible.
This has not been tested on a robot, so if you encounter any issues with camera streams from this update, please report it!
Remote Layout Downloading
I am very happy to support a much easier and more reliable way of downloading layouts from a robot. Previously, the only way to retrieve a layout through a robot connection was with the Shuffleboard Code API, which can be time consuming to set up, and is very difficult to maintain on the dashboard end. Instead, all you have to do now is export your layout as a json file, put it into your deploy folder, add one line of code to your robot, and you can remotely download and merge a layout from connecting to your robot.
The robot code side of this feature will be available with the release of WPILib 2025 Beta 3
Details on this new feature can be found here
Shuffleboard API Deprecation
With the release of the remote layout downloading feature, Elastic's support for creating layouts through the Shuffleboard API is now deprecated and will be removed after the 2025 season. The documentation linked above has a migration guide for code layouts, and a replacement for the tab-switching feature will be added in a future update. Starting with this release, a warning message will appear when a code layout is created with the Shuffleboard API, with a link to the migration guide.
Other Small Features
- Added an icon on the top of the menu bar when there's a new update, clicking it will bring you to the download page
Full Changelog
- Add a fix for NT topics without a leading / by @Gold872 in #137
- Added support for elasticlib in python by @DanPeled in #136
- Added an app bar icon when there's an update by @Gold872 in #142
- Fix list layout creation for unregistered sendable types by @Gold872 in #151
- Tab Grid Fixes and Cleanup by @Gold872 in #150
- Moved lock layout icon and cleaned up notifications by @Gold872 in #152
- Fix continuous text submission by @Gold872 in #154
- Settings rewrite by @DanPeled in #86
- Camera stream optimizations by @Gold872 in #156
- Make elasticlib C++ and Python libraries more idiomatic by @calcmogul in #140
- Add CI for ElasticLib formatting by @Gold872 in #139
- Remote Layout Download from Robot by @Gold872 in #153
- Update version to 2025.0.0-beta-5 by @Gold872 in #157
New Contributors
- @calcmogul made their first contribution in #140