|
1 | 1 | # serial-monitor-rust |
2 | | -A cross-platform serial monitor/plotter written entirely in rust, the GUI is written using [egui](https://github.com/emilk/egui). |
3 | | -Inspired by the serial monitor/plotter from the Arduino IDE, but both plotting and reading the traffic can be done simultaneously. |
4 | | -Additionally, the output of the plot and the traffic can be saved to a file (TBD). The window of the plot can also be adjusted. |
5 | | -Data points in the received string between ", " or "," or ":" or ": " that can be parsed into floats will be plotted as lines, everything else will be discarded without raising an error. |
6 | | - |
| 2 | + |
| 3 | +A cross-platform serial monitor/plotter written entirely in rust, the GUI is written |
| 4 | +using [egui](https://github.com/emilk/egui). |
| 5 | +Inspired by the serial monitor/plotter from the Arduino IDE, but both plotting and reading the traffic can be done |
| 6 | +simultaneously. |
| 7 | +Additionally, the output of the plot and the traffic can be saved to a file (TBD). The window of the plot can also be |
| 8 | +adjusted. |
| 9 | +Data points in the received string between ", " or "," or ":" or ": " that can be parsed into floats will be plotted as |
| 10 | +lines, everything else will be discarded without raising an error. |
| 11 | + |
7 | 12 | Features: |
8 | | -* Plotting and printing of data simultaneously |
9 | | -* Smart data parser, works with ", " or "," or ":" or ": " |
10 | | -* History of the past sent commands |
11 | | -* Low CPU Usage, lightweight |
12 | | -* Clear history options |
13 | | -* Data Window width is adjustable |
14 | | -* Cross-platform, fully written in Rust |
15 | | -* Ability to save text to file |
16 | | -* Ability to save the plot (Attention: uses unsafe code, experimental) |
17 | | - |
18 | | -TODOs: |
19 | | -* Save raw data to file (at least as an option) |
20 | | -* Smarter data parser |
21 | | -* allow to put in labels for the different data columns (instead of column 1, 2, ...) |
22 | | -* make serial print selectable and show corresponding datapoint in plot |
23 | | -* COM-Port names on Windows (display manufacturer, name, pid or vid of device?) |
24 | | -* make side panel and plot/serial prompt be resizeable (snappy?) |
25 | | -* current command entered is lost when navigating through the history |
26 | | -* command history is currently unlimited (needs an upper limit to prevent huge memory usage) |
27 | | -* ... |
28 | 13 |
|
| 14 | +- [X] Plotting and printing of data simultaneously |
| 15 | +- [X] Smart data parser, works with ", " or "," or ":" or ": " |
| 16 | +- [X] History of the past sent commands |
| 17 | +- [X] Low CPU Usage, lightweight |
| 18 | +- [X] Clear history options |
| 19 | +- [X] Data Window width is adjustable |
| 20 | +- [X] Cross-platform, fully written in Rust |
| 21 | +- [X] Ability to save text to file |
| 22 | +- [X] Ability to save the plot (Attention: uses unsafe code, experimental) |
| 23 | +- [ ] Save raw data to file (at least as an option) |
| 24 | +- [ ] Smarter data parser |
| 25 | +- [ ] allow to put in labels for the different data columns (instead of column 1, 2, ...) |
| 26 | +- [ ] make serial print selectable and show corresponding datapoint in plot |
| 27 | +- [ ] COM-Port names on Windows (display manufacturer, name, pid or vid of device?) |
| 28 | +- [ ] make side panel and plot/serial prompt be resizeable (snappy?) |
| 29 | +- [ ] current command entered is lost when navigating through the history |
| 30 | +- [ ] command history is currently unlimited (needs an upper limit to prevent huge memory usage) |
| 31 | +- [ ] ... |
29 | 32 |
|
30 | 33 |  |
31 | 34 |
|
32 | 35 | The source code can be run using ```cargo run``` or bundled to a platform-executable using ```cargo bundle```. |
33 | | -Currently [cargo bundle](https://github.com/burtonageo/cargo-bundle) only supports linux and macOS bundles [see github issue](https://github.com/burtonageo/cargo-bundle/issues/77). |
| 36 | +Currently [cargo bundle](https://github.com/burtonageo/cargo-bundle) only supports linux and macOS |
| 37 | +bundles [see github issue](https://github.com/burtonageo/cargo-bundle/issues/77). |
34 | 38 | As a work-around we can use [cargo wix](https://github.com/volks73/cargo-wix) to create a windows installer. |
35 | 39 | It can be compiled and run on all platforms. |
36 | 40 | Tested on: |
| 41 | + |
37 | 42 | - macOS 12.4 Monterey x86 |
38 | 43 | - macOS 13.2.1 Ventura ARM |
39 | 44 | - Windows 10 x86 |
40 | | -- ... |
| 45 | +- ... |
41 | 46 |
|
42 | 47 | On Debian 12 (Testing) the following error occurred: |
| 48 | + |
43 | 49 | ``` |
44 | 50 | Error: glib-2.0 was not found in the pkg-config search path. |
45 | 51 | ``` |
| 52 | + |
46 | 53 | solved through |
| 54 | + |
47 | 55 | ``` |
48 | 56 | sudo apt-get install libgtk-3-dev |
49 | 57 | ``` |
|
0 commit comments