All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
profiling
feature with code to ease the ability for developers to profileplotinator3000
. - Add support for upcoming log version in Swiss auto FW v4.2
- Organize test data files etc. in the new
test_util
crate with utilities for generating basic test boiler plate - Set
CROSS_NO_WARNINGS=0
due to cross configuration conflict - Combine min & max MipMaps instead of showing each as a separate line
- Performance: Reduce copying by utilizing the new
egui_plot
feature of borrowingPlotPoints
.
- Bump
openssl
from0.10.68
->0.10.70
to fix RUSTSEC - Bump all dependencies with
cargo update
- Update egui from
0.30.0
to0.31.0
- Added product icon for windows
- Click delta now needs the
shift
modifier to place a point for measuring distance between points - Loaded log IDs are now guaranteed to be unique
- When a logs settings/metadata window is open, the plots from that log is highlighted
- Allow highlighting of plots from 2 logs by having the settings/metadata from one log open and hovering on another ones name
- Line width would not apply when displaying plots where down sampling was manually disabled
- MBED motor log
runtime
counter is displayed in hours instead of seconds
getset
: 0.1.3 → 0.1.4 (#166)
- Click delta now shows days/hours/minutes/seconds/milliseconds depending on the magnitude of the distance between the points
- Click delta text offset increased slightly such that it is more likely to not intersect with the line
- Highlighting plot lines from a given log now also applies if other elements on the line with the given loaded log is hovered
- View distance between specific points on the plot by clicking on them
- Font size now persists between sessions
- Fix bad
u8
cast forvbat
. Mbed v4 status log had changes to the log entries and still contained the bad cast that led tovbat
losing float precision.
- Support for MBED v4 logs
- To reduce clotter, grids are now off by default
- Update all dependencies to latest
cargo-bins/cargo-binstall
: 1.10.20 → 1.10.22 (#161)
- Allow deleting individual loaded files without removing everything at once.
- Hovering the cursor over a loaded log will highlight the plots and plot labels that came from that log.
- When the update process requires admin (on windows) it now shows a prompt and relaunches as admin if the users chooses to continue.
- Shows error context if errors occur during update process.
- No longer installs the updater binary (as the main binary handles the update process)
- Fixed
vbat
in mbed status log was accidentally cast tou8
, losing a lot of precision in the process.
- ci: Cargo audit job changed to manually install with
cargo binstall
ascargo-audit
is no longer installed on GitHub VMs by default - fix: X11 support was accidentally removed when updating to egui
0.30
serde
: 1.0.215 → 1.0.217chrono
: 0.4.38 → 0.4.39semver
: 1.0.23 → 1.0.24env_logger
: 0.11.5 → 0.11.6zip
: 2.2.1 → 2.2.2rfd
: 0.15.1 → 0.15.2 (#147)tempfile
: 3.14.0 → 3.15.0 (#147)reqwest
: 0.12.9 → 0.12.12 (#147)tokio
: 1.42.0 → 1.43.0 (#149)wasm-bindgen-futures
: 0.4.47 → 0.4.50 (#149)web-sys
: 0.3.74 → 0.3.77 (#149)thiserror
: 2.0.4 → 2.0.11 (#149)
- Update egui from
0.29.0
to0.30.0
- Port fixes from
eframe_template
- Only set font styles when it changes instead of at every frame (leftover tech-debt from starting to learn egui)
- Make the loaded files window scrollable - resolves #118
- Update dependencies
- Bump Rust compiler from
1.81.0
to1.82.0
- Bump dependencies
- Selfupdater failing to determine install receipt prevents it from doing an upgrade
- Show/hide all button for loaded files window
- Bump
thiserror
to 2.0 - Bump dependencies
- Self-updater has been fixed and re-enabled
- Update Mbed log v4 with the new config changes.
- Re-enable installation of an updater executable
- MBED logs now normalize
servo duty cycle
to 0-100%. The full range of the servo duty cycle is [0; 0.1].
- Bump cargo-dist from 0.23.0 -> 0.25.1
- Bump axoupdater from 0.7.3 -> 0.8.1
- Guard self-updater behind feature flag as it is currently broken.
- When auto downsampling is enabled and the mipmap level for a given plot is determined to be 1, we use all data points instead of downsampling to level 1. When we are plotting a downsampled min and max, level 1 is just as many data points as the original non-downsampled plot, so this is a strictly better solution.
- Support for Mbed log v3
- Preliminary support for Mbed log v3
- Updater was looking for an install receipt which plotinator3000 no longer uses. The updater now proceeds without needing an install receipt.
- Added a notification whenever a log is loaded, showing the total data points of loaded files.
- Cleanup unused library code
- Prepare support for a new version of the mbed config present in mbed log headers.
logviewer-rs
is now renamed toPlotinator3000
, signifying that it is not really a logviewer and more of a plotting app that will plot any supported format, and do it very fast.
- Auto updater that queries for newer versions and opens an installer window if a new update is available
- Support for the
NavSys.sps
format.
- Plot alignment
- Make some UI elements smaller
- Allow main window (viewport) to be shrink much more than before
- Plot setting UI elements wrap instead of stay fixed when window shrinks
- File dialog for native and web, which also allows mobile users to load logs.
- Various UI tweaks
- Clean up some outdated error messages.
- Decouple file parsing from file loading method.
- Web version of
plotinator3000
was broken due an integer overflow. When determining down sample level, a cast from 64-bit float to pointer size caused integer overflow on wasm due to wasm having a 32-bit pointer size.
- Initial support for
HDF
files, starting with bifrost (TX) loop current. The feature is currently guarded behind a feature flag, enabling it is tracked at: #84.
- Various UI tweaks
- Upgraded
cargo-dist
0.22.1
->0.23.0
- A warning notification is now shown if a log was parsed from contents where more than 128 bytes of the content was not recognized as log content (and therefor skipped)
- When viewing log info, the first line shows parse info, how many bytes were parsed out of the total length of the file.
- Plot labels are now sorted alphabetically
- Remove unused
T_SHUTDOWN
config value that was not supposed to be in mbed log v2. - Avoid downsampling all the way to 2 samples by setting a minimum downsample threshold (set to 512 samples)
- Avoid storing redundant copies of source plot data when creating multiple mipmaps from the same source.
- Refactor to simplify mipmap configuration
- Plots retain the color they originally were assigned, no matter if logs are toggled to be invisible or a plot filter is hiding some plots.
- Min/max downsampled plots now have the same color
- Refactor to reduce a bunch of duplication and tech debt
- Much faster way of determining which plot points that fit within plot boundings.
- Avoid double work when auto downsampling is enabled, previously the fitting downsampling level was first found before handing off that level to a filtering function, which would find partition bounds that were already known from finding the fitting downsampling level.
- Display log metadata when clicking on a loaded log.
Mbed status Log v2
mistakenly interpreted asMbed status Log v1
when loaded via a path (nativeplotinator3000
)
- Support for Mbed Log version 2
- Remove playback feature
- Integer overflow when searching for the appropriate downsampled MipMap level.
- Much faster implementation for finding the appropriate MipMap level for the current zoom level.
- Min/Max MipMap algorithm flipped min and max.
- Fix accidentally using plot name instead of plot label, causing name conflicts when plotting multiple plots with the same name
- Bad naming in a PID controller implementation caused misunderstanding, what we thought was the PID error was actually the PID output.
- Min/Max MipMap downsampling which makes plotting much larger datasets feasible, and facilitates outlier detection.
- Major clearing of tech debts related to plot settings and the ui for plot settings.
- Allow toggling whether or not plots from each loaded log are shown.
- Update dependencies
- Hovering on a plot now also shows the plot name.
- Allow Filtering the shown plots by legend/label name.
- (Native only) Recursively parsing drag-n-dropped directories also parses zip archives
- Reduce UI by allowing toggling the list of logs.
- Reduce UI cluttering by removing the "Time" label on the X-axis.
- Reduce verbosity of the name of logs
- Better visuals for viewing and changing settings of loaded logs
- Refactors
- (Not available on web version) Recursively parse drag-n-dropped directories for supported logs
- (Not available on web version) Recursively parse drag-n-dropped zip archives for supported logs
- Show tooltip when hovering above a clickable log name
- Refactors
- Ability for logs to add labels (rough initial mvp, needs more work)
show grid
button for showing/hiding grid lines on plots
- Better divide interfaces in the
log_if
crate and use a prelude to make it easy to import all relevant traits via glob imports. - Change
GitMetadata
trait to returnOption<String>
to accommodate logs that don't contain git metadata.
- Mbed motor control PID log's
RPM Error Count
andFirst Valid RPM Count
are moved to the plot ranging from 1-100.
- Allow Setting the date/offset of plots with the
Enter
-key and closing the settings window by pressingEscape
- Upgrade
egui
to v0.29 - Y-axis lock is now compatible with all zoom and scroll actions
- Migrate to workspace project structure
- Decouple Log implementation from the plotting interface