windelbouwman / lognplot Goto Github PK
View Code? Open in Web Editor NEWPlotting and logging of real-time data for desktop.
License: GNU General Public License v3.0
Plotting and logging of real-time data for desktop.
License: GNU General Public License v3.0
Given several plots, it should be possible to link the x-axis to allow analysis across different plots.
This issue aims to gather all troubles on windows when running lognplotgtk
Tasks:
Any other issues?
We can export data to HDF5 format, but we need to import this data back as well. This can be handy for later analysis.
We have options for tailing last time spans. Add an option to popup and query a timespan to tail.
Hi,
just a minor notice: in the README you wrote
$ cd lognplotgtk
$ cargo run --release
but it shoud be
$ cargo build --release
right?
Thanks for that awesome program!
Greets, Karl
It would be cool to add a simulink adapter in some way.
I can see multiple ways on how this could work:
Any other ideas how this could work? What would be a good way to do this?
On mac, you can scroll horizontally on a track pad. This should pan the view horizontally.
Figure a way to visualize text messages, like for example log message or state enums.
Add a ADS adapter which will download signals from beckhof ADS and sends them into the lognplot tool.
The lognplotgtk application crashes when adding plots to the "extra" 2x2 plot window.
To reproduce:
cargo run --release
Output:
Updating crates.io index
Finished release [optimized] target(s) in 4.45s
Running `/Users/frits/Documents/Projects/lognplot/target/release/lognplotgtk`
2020-03-04 20:29:50,819 INFO [lognplotgtk] Starting lognplot GUI tool
2020-03-04 20:29:50,823 INFO [lognplot::net::server] Server thread begun!!!
2020-03-04 20:29:50,823 INFO [lognplot::net::server] Starting up server at port 12345!
2020-03-04 20:29:50,824 INFO [lognplot::net::server] Server listening on [::]:12345
2020-03-04 20:29:50.936 lognplotgtk[56082:1894993] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
(<unknown>:56082): Gdk-WARNING **: 20:29:51.144: GdkQuartzDisplay does not implement the monitor vfuncs
Key! 65513
2020-03-04 20:29:57,273 INFO [lognplotgtk::mainwindow] New window!
2020-03-04 20:30:06,201 INFO [lognplotgtk::chart_widget] DROP ["META_chart_render_time_chart1"]
2020-03-04 20:30:14,775 INFO [lognplotgtk::chart_widget] DROP ["META_chart_render_time_chart1"]
2020-03-04 20:30:16,954 INFO [lognplotgtk::chart_widget] DROP ["META_chart_render_time_chart1"]
2020-03-04 20:30:20,572 INFO [lognplotgtk::chart_widget] DROP ["META_chart_render_time_chart1"]
2020-03-04 20:30:22,448 INFO [lognplotgtk::chart_widget] DROP ["META_chart_render_time_chart1"]
2020-03-04 20:30:24,512 INFO [lognplotgtk::chart_widget] DROP ["META_chart_render_time_chart1"]
2020-03-04 20:30:24,512 INFO [lognplotgtk::chart_widget] Signal META_chart_render_time_chart1 is already shown
(<unknown>:56082): Gdk-WARNING **: 20:30:24.514: losing last reference to undestroyed window
(<unknown>:56082): GLib-GObject-CRITICAL **: 20:30:24.514: g_object_ref: assertion 'old_val > 0' failed
[1] 56082 segmentation fault cargo run --release
Test environment:
Add a python script which subscribes to all MQTT topics and pushes them on to the lognplot tool.
Points of interest:
The file can be added to the demos folder, or in a new folder named adapters
.
There are several options for plotting data with arduino.
Having compatibility with arduino would extend the user base.
See this link with an overview:
https://arduino.stackexchange.com/questions/1180/serial-data-plotting-programs
Not sure how this should work, but there must be a good way to make this work properly.
To be able to trigger the plot to a certain signal, a trigger signal comes in handy. This signal should be usable in the plot to select as a trigger.
On Fedora 31 with python3 (3.7.5) and python3-qt5 (5.13.1) the drop area is not working. The signals in the list get nicely updated, but I cannot plot them.
There are some issues with mixing ipv4 / ipv6.
Check:
For now ipv4 is used, but it should work seamless.
The RocksDB library provides a persistent key value store. Keys and values are arbitrary byte arrays. The keys are ordered within the key value store according to a user-specified comparator function.
Implementation is in C++, there are rust and python binding available. The database is stored in a single directory (not single-file).
https://github.com/facebook/rocksdb/blob/gh-pages-old/intro.pdf?raw=true
https://github.com/facebook/rocksdb/wiki
Python bindings for rocksdb:
https://python-rocksdb.readthedocs.io/en/latest/index.html
Rust bindings for rocksdb:
https://github.com/rust-rocksdb/rust-rocksdb
This project can trace data from an application, as a library.
https://github.com/amzn/hawktracer
Create an example adapter to visualize this data.
Another feature request:
gtkwave features a 'save' file that stores the configuration of the user interface at any savepoint. Restarting gtkwave with a previously saved configuration gives you an identical setup. This is useful for repetitive measurements / introspections, as it may be quite cumbersome to re-configure a complex aggregation of signals and plots. (For the insiders; referring to the embedded debugger UI.)
So, I think it would be nice to be able to define a subset of the available signals and store that selection, together with the visualization properties and corresponding plot configuration. The data source may have (slightly) changed, but its values are then projected into the same look'n'feel.
Hi!
Do you plan to release the ITM code as a lib on crates.io somehow?
I am very interested in it! I could write it myself ofc, but not sure that's worth it, but I have no interest in a binary crate :)
Also I only have interest in the protocol itself, as we have all the debug probe stuff down already.
Do you think this is a possibility?
Best,
Noah
Lognplot crashes if you zoom in as far as posible. Application stops responding, and quits after a while.
Distributed compiler with a central scheduler to share build load:
https://github.com/icecc/icecream
icecream comes with an 'icecream monitor' to visualize the active workload and distribution among the connected clients. It would be nice to visualize that in lognplot as well. The monitor works by listening on a UDP port. I guess it would be doable to translate the info to lognplot.
I'm trying to write a program that uses the TcpClient, but I had to modify mod.rs
to expose it properly in order for my application to use it. The modification required is:
diff --git a/lognplot/src/net/mod.rs b/lognplot/src/net/mod.rs
index bd488aa..b20e910 100644
--- a/lognplot/src/net/mod.rs
+++ b/lognplot/src/net/mod.rs
@@ -9,7 +9,7 @@
//! - Read data from file
//! - Demo data (random values)
-mod client;
+pub mod client;
mod payload;
Am I doing something wrong here (I'm not a very experienced rust programmer)? What is the proper way for an application to use the TcpClient structure to communicate with the GUI?
The influx DB line protocol is described here: https://v2.docs.influxdata.com/v2.0/reference/syntax/line-protocol/
It would be great to have a python adapter which can handle this line protocol and forward the data to the lognplot gui.
I am not yet too familiar with rust to find out how to explicitly try an older version of futures-io. That would likely work as it seems to be an indirect dependency.
Or is my Rust to rusty..? I guess 1.39 is not too old yet...
I read through the list of related tools in the README. Since this is still low-profile, I take the liberty of writing down 2 feature request / wishes. Those are the things that at least partially lack in either one of the tools mentioned.
Maybe there is a better way to gather feature requests?
In order to use the Rust client in external projects, we need a new release to crates.io because the current 0.1 release do not have the TcpClient
.
Thank you
When you zoom in / out on the horizontal axis, the vertical axis gets reset. This is somewhat unexpected as you loose your focus point.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.