Giter Club home page Giter Club logo

serialwizard's Introduction

kitty

Serial Wizard

Welcome to SerialWizard, A simple, lightweight, cross-platform desktop application used to monitor serial inputs and outputs. Created with Tauri, this application uses a Next.js frontend and a Rust backend. The aim of this project is to learn how to make desktop applications and improve my Rust skills.


demo

Installation

To get started with my serial monitor you can follow these simple steps:

  • After cloning the repo you can install the dependencies with npm install
  • To run the application you can use cargo tauri dev

Releases

If you want to start using Serial Wizard right away you can find bundled application installers and executables for all platforms in releases. Experience native cross-platform serial monitoring with ease! Feel free to explore and adapt this project to meet your requirements.

serialwizard's People

Contributors

franklaterza avatar

Stargazers

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

Watchers

 avatar

serialwizard's Issues

Lazy serial data polling

Currently, the serial buffer is being serviced every 25ms. This solution can be made more robust by switching to an async serial data interrupt that updates the front end. Essentially the backend will tell the frontend to update when it has new data.

Auto Scroll Not Useful On Serial Message Shift

When new data comes in and you're not at the bottom your place in the serial streams changes. Can't read values when not auto-scrolling. The problem arises from the rolling serial log. It pops off the first thing added and pushes on the newest. This queue behavior keeps the memory low, but when the data gets shifted it's hard to read the data on screen. A possible solution is to detect the shift and displace the scroll.

CPU running high on serial output

I noticed my CPU running high when testing for longer periods of time. I think this has to do with the way the javascript shifts the arrays or how its presented in the front end. Its most likely doing javascript things and making large copies when it doesn't need to. Check message_box.tsx.

Menu doesn't update ports

Ports are only set when the program is launched. Need to find a way to update menu items in Tauri.

Crash after overflow

I have been testing the monitor with two instances side by side. One fills up significantly and crashes after it has recorded lots of data. I believe this can be fixed by a fixed array size and popping off older data.

No auto scroll

You can't read previous data if new data is coming in. Currently it will auto scroll to the bottom when there is new data.

Connect Button Unsynced

The connect button doesn't sync after the connection has been disrupted. Fix would involve updating the frontend from the backend or changing the underlying logical structure. Maybe some persistence state control instead of event-driven silliness.

No Logo

This project has an awful read me and no logo.

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.