Skip to content

ReactJS based gauge cluster for embedded systems (or not)

Notifications You must be signed in to change notification settings

boxidau/react-gauge-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

React Gauge Cluster

Sample Dash

This project is intended to allow users to build highly customizable performant gauge clusters for use in embedded applications where webkit is available

I test this project on a Raspberry Pi running the wpe-buildroot environment. Data is supplied the the react gauge cluster from a backend server process over a websocket connection.

The backend process mentioned here is compatible with megasquirt; however any backend that offers a map of string keys and number values over a websocket can be used instead.

Features

  • Declarative configuration in src/config.ts (no react coding experience required)
  • Multiple pages of gauges is supported (click or tap to go to next page)
  • Layout fully configurable to suit cropped screen installations or other tricky layout issues

Gauge Types

  • Sparkline Sparkline Example
  • Radial Radial Example

TODO

  • "LED strip" AFR gauge
  • "LED strip" Shift Light
  • 7 segment display digits

Websockets i.e. known issues

A websocket connection being a TCP communication mechanism is bound to run into head of line blocking issues at some point. In this scenario messages from the backend data provider become more and more delayed as a queue of messages builds up until the front end display is essentially useless. Running the server and client on the same device means this is less likely to be an issue, however if it becomes problematic WebRTC could potentially be used instead. File an issue or better yet a PR if you want this fixed :)

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

About

ReactJS based gauge cluster for embedded systems (or not)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published