Giter VIP home page Giter VIP logo

elastic-dashboard's Introduction

Hello There! I'm Nadav! ๐Ÿ‘‹

๐Ÿ‘ฉโ€๐Ÿ’ป About Me

๐Ÿซ High school computer science student

๐Ÿ’ป Head Programmer for FRC team 353

๐Ÿ“š Creating intended features since December 2020

๐Ÿ›  Languages

java logo cplusplus logo flutter logo dart logo git logo sqlite logo arduino logo

๐Ÿ›  Applications

vscode logo adobephotoshop logo adobepremierepro logo

๐Ÿ”ฅ My Stats :

stats graph languages graph

โœ๏ธ Random Dev Quote :

dev quote

github contribution grid snake animation

elastic-dashboard's People

Contributors

gold872 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

elastic-dashboard's Issues

Shuffleboard-metadata widgets are added to tab even if they already exist

Hi, I'm testing Elastic with code-generated layouts, and I'm seeing that every time I restart sim, all the widgets are added again to the tab, so that I have several sets of widgets all piling up in the corner grid square. I'm not using size or position metadata, just PreferredComponent. Is this intentional?

Use radians for swerve drive angles

I have no idea why I decided to go with degrees, but it should be in radians to stick with WPILib and math conventions. To prevent everyone's code from displaying incorrect information, there will be an option for which units to use (radians or degrees)

Changing grid size un-aligns widgets

If you go from let's say 128 to 140 grid size the grid moves but the widgets don't.

Proposed solution:
the widgets x, y, width, and height should be proportionally scaled.
var * (newGridSize/oldGridSize)

Submit a HomeBrew Cask

HomeBrew is a widely used package manager on macOS. It would be very convenient for macOS users to install if Elastic Dashboard is published on HomeBrew cask.

Graph widget not working

Describe the bug
When I add a Graph widget to the dashboard, a blank rectangle is rendered instead.

To Reproduce
Steps to reproduce the behavior:

  1. Add a number widget
  2. Right click on it and change the widget to show as "Graph"
  3. The inside of the widget is showing a blank rectangle
  4. The same blank rectangle is shown in the widget parameters.

Expected behavior
The Graph widget is rendered and usable as in the docs.

Screenshots
image
image
image

Desktop

  • OS: Windows 10

Add the option to switch tabs based on some condition

One way to implement that is to have a constant entry that holds the name of the tab which should be active/in focus.
A few use cases I thought of:

  • Before the match starts, switch to "Autonomous Configuration" tab (switch when DriverStation.isFMSAttached() is true).
  • When teleop starts switch to another tab than the one displayed in auto.
  • When running test functions in the pit that check subsystems, switch between subsystem-specific tabs when each subsystem check is finished (another way is to use the same tab and between every subsystem delete widgets and add others, but that may be harder to implement).

Feature request: shape differences for booleans

Is your feature request related to a problem? Please describe.
Color options for Boolean values are great for many of us. But for those who are color-blind, this is more difficult. While colors are configurable to perhaps avoid specific issues, changing shapes could also be helpful.

Describe the solution you'd like
Instead of just "box of green" and "box of red", how about "green checkmark" and "red x", etc. Or "green/red circle/square with black x or checkmark inlaid", etc. Such a solution could be quickly perceived both by those with full color perception and those who are color blind.

Describe alternatives you've considered
Picking a different color palette; reasonable, but I think we could go further.

Missing Widgets from Shuffleboard and SmartDashboard

  • 3-Axis Accelerometer
  • Accelerometer
  • Encoder
  • Motor Controller
  • Profiled PID Controller
  • Relay
  • Ultrasonic
  • Compressor
  • Double Solenoid
  • Solenoid
  • Digital Input
  • Digital Output
  • Analog Input
  • Analog Output
  • Nidec Brushless

State management redesign

Stateless widgets should not be managing their own states, which is what is happening right now. What needs to be done is instead of widgets themselves being created and modified by other widgets, their models need to be stored in memory, and everything is operated directly on their models.

Unable to Create tabs via Shuffleboard API

Describe the bug
Utilizing the shuffleboard api and the getTab method fails to create a new tab. Where as the exact same code will cause a new tab to be created within shuffleboard dashboard itself.

To Reproduce
Steps to reproduce the behavior:

  1. Run Shuffleboard.getTab("test");
  2. Shuffleboard.selectTab("test");
  3. Tab is created and switched to via Shuffleboard Dashboard
  4. Elastic fails to do so.

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
Bug shown where tab Autonomous2 is not being created.
bug

Desktop (please complete the following information):

  • OS: Windows
  • WPILIb: 2024.1.1 - Java
  • Elastic 2024.0.2

Additional context
Add any other context about the problem here.

Add ability to add raw network table Entries/paths Via Shuffleboard API

Currently if you load load Elastic from a file you are able to display and view values directly out of network tables. However this is not possible to do programmatically via the Shuffleboard api. Where it is required to publish a second duplicate record of the data to network tables to be viewable within the dashboard. This is specifically a problem when wanting to view vision data or values from a co-processor publishing to network tables directly. Where the only way to programmatically publish these would be to read the data from network tables and republish it to shuffleboard on the robot adding unneeded latency.

It would be nice to be able to just tell elastic to look at a particular network table entry/path by only publishing the string of the path itself vs needing to send a copy of the value.

Dashboard issues

Describe the bug
A clear and concise description of what the bug is.

I have 2 issues here:

  1. If you go to windows and change display scaling, the widgets don't resize to the size that screen is scaled to
  • For example: I made layout on 100% scaling, then on my laptop its 125% scaling and the widgets are going across the dashboard window.
  1. Whenever you make a new tab, I rename the tab to some value then I press enter on my keyboard but it doesn't close window but renames the tab to the value

To Reproduce
Steps to reproduce the behavior:

  1. Scaling issues:
  • Start by making layout in a certain scaling eg. 100%
  • Then change to 125% scaling
  1. Tab rename window
  • Create a new tab
  • Rename tab
  • Press enter button (keyboard) instead of pressing the button

Expected behavior
A clear and concise description of what you expected to happen.

  1. I expected the layout to scale and widgets to be smaller
  2. I expected the window to rename closes after pressing enter on keyboard

Screenshots
If applicable, add screenshots to help explain your problem.
(Will add some later)

Desktop (please complete the following information):

  • OS: Windows 11
  • Browser: Firefox
  • Version: Latest

Smartphone (please complete the following information):

  • Device: Samsung
  • OS: Android 13
  • Browser: Chrome
  • Version: Latest

Additional context
Add any other context about the problem here.

N/A

Incorrect field property definition for robot height in documentation.

On Widget List and Properties Page for the field widget under properties robot "height" is defined as

robot_height - The length of the robot in meters (defaults to 0.85)
Decimal number
Capture

I have found that it needs to be "robot_length", using "robot_height" for the property doesn't work.

//xxx example of how it has to be defined using Shuffleboard API with properties to make it work correctly.

frc::Shuffleboard::GetTab("Teleoperated").Add("Field", m_field).WithProperties({{"robot_width", nt::Value::MakeDouble(kTrackWidth.value())}, {"robot_length", nt::Value::MakeDouble(kWheelBase.value())}}).WithSize(10, 5).WithPosition(2, 0);

Elastic not loading layout json

We're trying to create a dashboard for our drivers, and we saved the layout in a json.
When we load the layout in elastic it just stops. Whether the simulation is running or not it doesn't load.
Did we forget something?

Color Theme Limited Range

Describe the bug
Selecting bright colors, i.e., orange, defaults to a relatively muted hue.

To Reproduce
Steps to reproduce the behavior:

  1. Go to Settings, and go to color theme wheel
  2. Pick a bright color and exit settings
  3. See that the bright color gets changes to something else.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.