Skip to content

cannet v0.9.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Aug 05:14
e139739

Remote CAN servers

  • New cannet-server: run a CAN interface on another machine and connect the GUI to it over the network — every RPC relays verbatim to the upstream interface. Replay and virtual-bus tooling moved behind a debug subcommand.
  • LAN discovery via mDNS (_cannet._tcp): the GUI browses , holds the live server list host-side, and shows advertised host names.
  • Servers panel: per-server rows with connect/forget/token affordances, a dedicated row for a server the host is still waiting on, and the session clock offset shown per server. The app's own sidecar never appears as a row.
  • The client tracks the peer's clock across the whole session and reconciles clocks across multiple servers with the client's clock for coherent message timing.
  • cannet-server ships inside every GUI bundle; standalone server archives are packaged per release platform (including a Linux-only leg).
  • Added command palette action to add cannet-server location to path
  • When server started with routable address, enables TLS and presents durable token a client can use to authenticate. Client is presented with server signature for trust verification.

MDF (MF4) support

  • Import MDF captures: channel scan, an import dialog with a checkbox per content, and embedded DBCs that load with the capture.
  • Signal-only (frameless) MF4 files import directly as signal files; DBC-decoded groups arrive as file-backed signals with provenance tracked in the signal cache.
  • Coded channels keep their value tables — imported enums label their values just like DBC enums.
  • Export: captures can write back out including marker/event annotations

Plotting

  • Multi-select signal rows in plot panels: bulk hide/show/remove/recolor/add.
  • Collapsible plot areas (persisted, with per-axis collapse); drag plot areas between plot panels.
  • Selected series bolded; "hide others" for a series; hidden signal rows compact to swatch + name.
  • Manual Y-range works under the normalized scale; plots recover cleanly after a DBC reload.
  • Honest rendering of sparse and stale data: extrapolated stretches draw dashed and clamped to the sample grid, stale lane tiles are hatched, markers land only where a real sample exists, and a one-sample series draws as a horizontal line.
  • Enum/categorical lanes: labels drawn in theme-legible ink over backing boxes, hover markers on every area (lanes included), and categorical data served by runs all the way to the live edge.
  • Follow-live window width comes from the user (no self-widening), and follow-live no longer predicts past the newest frame.

Signals & filtering

  • Generators: project-level regex rules derive signal attributes from names (stable colors).
  • Solo filter redesigned: capture-group paging (All→1…N), checkable group subsets, captureless patterns filter flat per area, unmatched areas untouched; persists with the project.
  • Undo/redo covers view edits — signals, plot areas, filters, renames, colors, columns; one gesture = one step. Actions that could impact the running system are not part of undo/redo (i.e. RBS value changes)

Capture & project workflow

  • Trace-open: persistent busy feedback, cooperatively cancellable imports, and one trace-open at a time.
  • Recent captures follow the project (both directions) and are reachable from the command palette.
  • Added project directory concern - when a cannet project exists in a directory along with a .cannet dir, that becomes the project directory. The scratch is stored in .cannet, along with window state. In this mode, the project can be autosaved.
  • Faster startup when restoring a saved capture; a forced cold pyramid rebuild announces itself and offers a way out.
  • Unsaved project view state is no longer restored on next launch

UI & usability

  • The DBC panel is now the Database panel; its value column covers file-backed rows.
  • Theme menu: light / lighthk / dark.
  • Ctrl+F focuses the current panel's find/filter box.
  • Gridview: Escape leaves cell edit (and returns from row content to the grid), Shift+Up/Down extends selection, first-drive fixes.
  • Assorted polish: keyboard/screen-reader affordances on trace rows, hit-target and alignment fixes, singleton-panel tab titles.

Performance & stability

  • 100M+-frame BLF imports ingest, decode, and plot more smoothly, though still with some brief periods of interactivity
  • Smarter signal cache: per-signal caches which should be dependent on message + scaling details to avoid expensive signal cache rebuilds which occasionally happened
  • Fixes: multiplexed-signal decode, sidecar readiness race on connect, PCAN debug-logging throughput, plus many small stability and performance improvements throughout.