Skip to content

Releases: Gold872/elastic-dashboard

Elastic 2025.0.0 Beta 3

21 Oct 18:00
a96201d
Compare
Choose a tag to compare

Camera Stream Freezing Fix

A critical bug where camera streams freeze when disconnecting and reconnecting from a robot has been fixed.

Full Changelog

v2025.0.0-beta-2...v2025.0.0-beta-3

Elastic 2025.0.0 Beta 2

18 Oct 19:32
2e8537f
Compare
Choose a tag to compare

This updates adds some performance improvements to live data viewing, fixes some issues when running on Linux, and adds an installer for MacOS.

Data Streaming Refactor

Switch from using StreamBuilder to ValueListenableBuilder on NT widgets. Users should now see significant performance improvements.

Linux Build Fixes

Fixed compatibility issues on Linux, on some versions of Linux. Flutter has also been upgraded 3.22.3, which fixes some graphical rendering issues.

MacOS Installer (Experimental)

Added an installer for MacOS. This has had very little testing so any feedback or issues experienced with it will be helpful.

Full Changelog

v2025.0.0-beta-1...v2025.0.0-beta-2

Elastic 2025.0.0 Beta 1

06 Oct 19:53
076925d
Compare
Choose a tag to compare

I'm happy to begin initial 2025 beta testing for Elastic. For those who aren't familiar with Elastic, it's a Flutter driver dashboard that acts as a drop in replacement for Shuffleboard, with a nicer UI, network optimizations, and more customizability. Elastic was initially released last year, and I was blown away by the community response.

What Changed?

Overall, not much on the outside. The interface and UX is extremely similar, but the differences lie in all the tiny additions and new features.

Windows Installer

The most significant change for Elastic in 2025 isn't even in the actual app, it's how the app is installed. On the GitHub releases (linked at the bottom of the post), there are now 2 download options for Windows: a portable option (the only option during 2024 season) and now the installer option. Instead of having to manually extract a zip file and create shortcuts, an installer can be ran to install the app and create desktop shortcuts. The portable version will remain available for teams who wish to to continue using it.

This is only available on Windows as of right now.

Robot Notifications & ElasticLib

The Alerts widget (which is also being added to WPILib in 2025) is extremely useful for displaying any issues or potential warnings. However, if you want to post a temporary status update or grab the user's attention when the widget isn't visible, there isn't an easy way to do so. Which is why there is now the ability to send notifications from robot code.

Along with this is the introduction of ElasticLib, which is a 1 file library that can be dropped into a robot project to allow sending notifications. Here's an example of how to send an error notification with ElasticLib:

Elastic.sendAlert(new ElasticNotification(NotificationLevel.ERROR, "Error Notification", "This is an error notification!"));

Which will send an on-screen notification displaying "Error Notification" and "This is an error notification!".

As of right now, this is only supported in Java, but contributions for a C++ port are open.

Better Theme Customization

Elastic has always had the option to customize the color of the app. However, often times the color scheme generated wouldn't match the vibrancy of the color, especially for bright colors. Now, there are many options as to how to customize the color scheme, which allows for a much wider range of colors across the app.

Widget Copy & Paste

Ever had a widget that was customized a specific way that you wanted to be able to copy onto another tab? Well you will no longer have to recreate the widget, you can now copy and paste a widget onto another tab!

Camera Stream Quality

Camera streams can use up a LOT of bandwidth. While Elastic has made some measures to conserve bandwidth from the camera streams, if a camera was sending a high resolution stream at a high framerate, there wasn't much that could be done about it.

Now, there is now the ability to change the quality (compression), resolution, and fps, allowing for low bandwidth camera streams.

Changelog

  • Changed network latency to a decimal value by @Gold872 in #35
  • Removed websocket bandwidth calculation by @Gold872 in #36
  • Improved camera stream efficiency by @Gold872 in #37
  • Added ability to change camera stream quality by @Gold872 in #38
  • Update Flutter to 3.22.0 by @Gold872 in #39
  • Use new asset manifest api instead of reading AssetManifest.json by @Gold872 in #40
  • Remove codecov status CI by @Gold872 in #41
  • Fix widgets not unsubscribing if type doesn't have a widget implementation by @Gold872 in #43
  • Fix field objects not rendering if connection is already established during widget creation by @Gold872 in #44
  • Update color picker plugin by @Gold872 in #45
  • Replaced deprecated APIs by @Gold872 in #46
  • Allow robot created notifications by @EmeraldWither in #48
  • Increase notification width by @Gold872 in #49
  • Increase notification time by @Gold872 in #50
  • Add windows installer by @Gold872 in #54
  • Copy & paste feature by @DanPeled in #62
  • added dark mode & theme features by @DanPeled in #65
  • Added CI check for import sorting by @Gold872 in #67
  • Improved connection stability by @Gold872 in #69
  • Remove NetworkTables Singleton by @Gold872 in #42
  • Tab left+right navigation shortcuts by @Gold872 in #70
  • Added hotkey manager test by @Gold872 in #71
  • Fixed number views not working with integers by @Gold872 in #72
  • Fix grid size not working by @Gold872 in #75
  • Fix widget grid scaling when dragging in by @Gold872 in #76
  • Fix first notification not showing by @Gold872 in #77
  • added option to modify robot & trajectory colors by @DanPeled in #82
  • Add restore default to color picker by @Gold872 in #84
  • Fixed minimum window size on different DPI displays by @Gold872 in #87
  • Swerve angle offset feature by @DanPeled in #59
  • Fix command widget lockup by @Gold872 in #90
  • Added struct decoding for pose2d and swerve module state by @Gold872 in #93
  • Widget registrar by @DanPeled in #94
  • Update documentation screenshots by @Gold872 in #95
  • Changed macos bundle from "com.example" to "com.gold872" by @Gold872 in #97
  • Fix widget minimum width being applied to height by @Gold872 in #98
  • Added privacy policy by @Gold872 in #102
  • Compress field images with oxipng by @Gold856 in #103
  • Fix field images not disposing properly by @Gold872 in #105
  • Update innosetup CI and .gitignore by @Gold872 in #106
  • Fix camera stream edge case error when no image is received by @Gold872 in #107
  • Update version to 2025.0.0-beta-1 by @Gold872 in #108

New Contributors

Full Changelog: v2024.2.0...v2025.0.0-beta-1

Elastic v2024.2.0

24 Feb 19:01
aaee4c8
Compare
Choose a tag to compare

Added

  • Radial Gauge widget
  • Ability to sort options in dropdown chooser
  • Ability to hide command type in command widget
  • Ability to show a button to publish text display data
  • Ability to restore window position and size when opening the app

Changes/Fixes

  • Grid sizes are now saved in the json configuration
  • In-app notifications are shown in the correct spot
  • robot_height can now be used as a property in the field widget
  • Widgets are scaled to new grid sizes when grid size is changed
  • Settings dialog has been rearranged

Internal Code Changes

  • Flutter has been updated to 3.19.0
  • Shortcuts system has been reworked for the new version of Flutter
  • All variables and methods in the dashboard page and NT widgets are now private

Full Changelog: v2024.1.0...v2024.2.0

Elastic v2024.1.0

04 Feb 20:48
0f32027
Compare
Choose a tag to compare

Added

  • Option to change Swerve widget rotation units
  • Ability to lock layout
  • YAGSL compatible swerve drive widget
  • Option to update number slider data in real time

Changes/Fixes

  • Fixed minimum screen size being too big on high resolution displays
  • DS resizing now accounts for task bar visibility
  • Command scheduler no longer crashes if topic IDs and names have different lengths
  • Menu bar and widget container titles have been compacted
  • IP address text box now updates when connection mode is changed
  • Number slider and differential drive publishes the correct values when dragging
  • Shuffleboard API will create new tabs even if there's no widgets on them
  • Shuffleboard API no longer fails if data is missing or in the wrong order

Full Changelog: v2024.0.2...v2024.1.0

Elastic v2024.0.2

14 Jan 21:43
48cf85c
Compare
Choose a tag to compare

Added

  • Timestamped application logging
  • NT protocol in connection messages

Changes/Fixes

  • Crescendo field has the correct origin and size
  • When a new version is available, the notification will display the latest version

Full Changelog: v2024.0.1...v2024.0.2

Elastic v2024.0.1

07 Jan 21:38
4aa950c
Compare
Choose a tag to compare

Fixed

  • Graphs not rendering when created

Full Changelog: v2024.0.0...v2024.0.1

Elastic v2024.0.0

07 Jan 01:19
4180bd8
Compare
Choose a tag to compare

Added

  • Crescendo field images (image source)
  • Option to change graph line width
  • Option to change the time to display yellow and red in match timer

Changes/Fixes

  • NT connection timeout is in the correct units, disconnects will now correctly happen when the connection from network tables is lost
  • Topic ID signature is ignored when receiving RTT timestamps - fixes random disconnects
  • List layouts now ignore mouse button when disconnected
  • Camera streams are only updated & rendered when the widget is visible
  • Improved Graph time accuracy
  • PID controller widget only publishes when a button is pressed - improves robot safety when enabled
  • App bar title is properly centered

Full Changelog: v2024.2.0-beta...v2024.0.0

Elastic v2024.2.0-beta

23 Dec 17:20
77dfd9f
Compare
Choose a tag to compare

Added

  • Basic application logging
  • Missing widgets from Shuffleboard and SmartDashboard
    • 3-Axis Accelerometer
    • Accelerometer
    • Encoder
    • Motor Controller
    • Nidec Brushless
    • Profiled PID Controller
    • Relay
    • Ultrasonic
  • Text displaying network latency
  • RTT network tables protocol
    • Only uses if the server is running NT4.1, still works with WPILib 2023
  • Ability to automatically resize the height of the window to fit the Driver Station on screen (same thing the LabVIEW dashboard does)
  • Better looking context menus
  • Ability to change widget type from the context menu, even if not connected to network tables
  • Option to change the default update rate and graph rate
  • Option to hide metadata topics in the add widget dialog
  • Ability to drag a table and auto create a list layout

Changes/Fixes

  • Widgets are only rebuilt if subscription values change - significantly better performance
  • Widgets ignore the mouse pointer when dragging
    • Prevents the tooltip from showing on dropdown choosers
  • Default tabs get correctly created on initial startup
  • Team number doesn't display "null" if it's not set
  • Camera stream widget will no longer choose invalid stream URLs
  • Camera stream no longer breaks when switching tabs
  • Widgets correctly rebuild themselves when changing subscription settings
  • Differential drive vector arrow now points in the correct direction at the correct location
  • List layout label locations properly load on startup
  • List layout widget types and NT properties can now be edited without having to restart the app (oops)
  • Shuffleboard API won't add widgets if disconnected from Network Tables
  • Match time widget rounds down instead of up
  • NaN numbers don't crash the Field widget
  • Field trajectories draw a solid line instead of multiple dots
  • Drivetrain widgets are scaled to the size of the widget
  • Graph widgets use NT timestamps to update data - significantly higher accuracy
  • Array editing properly works in text display widgets

Internal Code Changes

  • Upgraded Flutter version to 3.16.5
  • NT widgets inherit an abstract class instead of using a mixin
  • All widgets are built using the NTWidgetBuilder so all constructors can be defined in one spot
  • Everything with NT4 related has been renamed to have NT, except for classes specific to NT4 (subscriptions and topics)
  • State management has been completely rebuilt, data is no longer stored in the draggable container classes themselves

Full Changelog: v2024.1.1-beta...v2024.2.0-beta

Elastic v2024.1.1-beta

25 Nov 21:54
628f18e
Compare
Choose a tag to compare

Added

  • New shortcuts system
  • Ability to reorder tabs
  • Ability to change position of labels in list layouts
  • More options for robot IP address connection

Changes/Fixes

  • Shuffleboard API integration now supports the property names of Shuffleboard widgets
  • Attempting to load an invalid JSON will now show an error on the screen
  • Default update period for widgets has been changed 100 ms to save bandwidth (except for graphs which is still 33ms), this of course can still be changed manually
  • Graph settings now update when you change them

UI Changes

  • List layouts take up significantly less space
  • Widgets now have a minimum size
  • Match time text takes up all available space

Full Changelog: v2024.1.0-beta...v2024.1.1-beta