Skip to content

Releases: thebhef/cannet

cannet v0.10.0

cannet v0.10.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Aug 16:40
c30ebd8

Opening a capture

  • Fixed: a BLF written relative to capture start no longer draws
    negative times.
  • Fixed: an import now keeps every frame inside the range you asked
    for.
    • Previously it stopped at the first out-of-range frame and never
      resumed.
    • On the measured file that lost 90 of 121 frames, including the two
      earliest.
  • Fixed: a capture is anchored at its true earliest timestamp, not
    at whatever arrived first.
  • Fixed: the import dialog shows a file's real earliest and latest
    times, not the first and last objects in file order.
  • Fixed: a BLF whose writer crashed now opens. One missing trailing
    byte used to discard the whole file.
    • 16,387 frames recovered from the measured fixture; the file itself
      is never modified.
    • A system message says what was recovered, and that the absolute wall
      clock was lost.
  • New: loading shows real progress — bytes scanned, then frames
    imported, then frames decoded.
  • New: a Cancel button sits beside the progress bar and works during
    both load phases.
  • Fixed: cancelling a large MDF import now actually stops. It used
    to keep building caches for the capture you discarded.
  • Fixed: a signals-only MDF (signal data, no CAN frames) now plots.
    It used to import fine and draw nothing.
  • Fixed: clearing and re-importing the same file updates the view.
    It used to leave the trace stuck showing raw epoch seconds.
  • New: the channel-map dialog takes the keyboard — Enter accepts
    the defaults, Escape cancels, Tab stays inside it.
  • New: an example set at examples/time-origins/ shows how each
    kind of time origin behaves.

Saving a capture

  • Changed: the toolbar button reads Export and sits beside
    Import, wearing the mirror of its icon.
  • Fixed: a capture interrupted mid-write now leaves a visible file
    where you asked for it, and a BLF one still opens.
  • Fixed: Save Capture no longer rewrites out-of-order timestamps. A
    saved BLF now matches what was captured.
    • The measured error was 500 ms of invented delay on one frame.
  • Fixed: a saved BLF's header now states the capture's true end
    time, rather than its last-appended object.
  • Fixed: MDF event blocks now carry the ASAM-correct marker type.
    Files already written stay mislabelled.
  • Changed: an event's colour now fills a BLF marker's label instead
    of colouring its text.
    • Other tools will draw a solid coloured block where they drew thin
      coloured glyphs.

Databases and decoding

  • Fixed: a signal's enum labels now come from the database that
    actually decodes it.
  • Fixed: a trace row and a plot no longer disagree about the same
    signal's value.
  • New: a database assigned to no bus decodes nothing anywhere,
    instead of silently decoding every bus.
  • New: unchecking a bus parks that database's caches; assigning it
    back brings the samples straight back.
  • New: where two databases define one signal, you can pick which one
    wins. The pick is saved in the project.
  • New: one pick also re-points every reference to a signal that was
    renamed in a newer DBC.
  • Fixed: the Database panel no longer claims an unassigned database
    "applies to all buses".
  • New: two databases defining the same id now warn on the losing
    row, naming which one wins.
  • Fixed: a database edited on disk now reaches the plot, the
    filtered trace and the by-id view.
  • Fixed: renaming a VAL_ label updates the pickers and the plot
    without reopening the view.
  • Fixed: the ingest verifier no longer borrows a counter or CRC
    designation from a database that does not supply the message.
  • New: a plot series from a project older than per-bus binding is
    flagged as undecoded and can be re-pointed.
  • New: the Database panel groups a multiplexed message's signals by
    mux arm, named from the selector's own labels.
    • Dragging an arm plots that arm's signals in one gesture; search
      finds arms and reaches into them.
    • Single-signal arms stay flat; extended multiplexing stays a flat
      list with a note.

The signal mapping panel

  • New: a View Signals panel lists every signal your open views
    reference, and what currently decodes each one.
  • New: its toolbar badge counts the signals needing attention, live,
    whether or not the panel is open.
  • New: filter by status or by bus, wash rows by status, and sort by
    bus.
  • New: an RBS signals grid shows every field's encoder status, so an
    override the encoder dropped is visible.
  • New: a drifted row — scale changed, or gone stale — carries a
    one-click Accept that adopts the database's current definition
    across every referencing view.
  • New: RBS values clamp to the signal's physical range on entry,
    with out-of-range entries highlighted.
  • Fixed: a hex value typed into the RBS panel goes out as raw bits,
    not as a decimal physical value.

Plots

  • Fixed: a signal on a shared axis renders at its real amplitude —
    the −200 A drawn as −1.5 is gone.
    • Changed: unified mode no longer stretches each unit group to
      fill the canvas. Use per-unit or individual.
  • Fixed: enum y-axis ticks are bare numbers now; the quoted label
    beside every tick is gone.
  • Fixed: a 300-value enum no longer draws 300 ticks. The count
    follows the axis's height.
  • Fixed: a long enum label on a lane tile is ellipsized and drawn.
    It used to be omitted entirely.
  • Fixed: a plot on a stopped capture re-reads after a database
    change, instead of holding the old decode.
  • New: set a plot's visible range from the palette — two numbers for
    min and max, one for a width.
  • Fixed: measurement statistics over a span no longer drop a sample
    when two samples share a timestamp.
  • Fixed: a long event label wraps to two lines and ellipsizes
    instead of running over its neighbours; the highlighted marker draws
    on top instead of under them.

Long names

  • Fixed: long signal, message and enum names render correctly on
    sixteen surfaces instead of overflowing or being cut.
    • Names ellipsize in the middle, so two names sharing a prefix stay
      distinguishable.
    • The full name is a tooltip everywhere it is shortened.
    • One pathological name can no longer reflow a whole panel.
  • New: the shipped example databases carry long names and
    44-character enum labels.

The trace and the grid views

  • Fixed: clicking a signal inside an expanded row selects it instead
    of collapsing the message you were reading.
  • New: disclosed signals are real rows — arrow keys, Shift+click
    ranges and drag-select all work inside them.
  • Fixed: a timeline event now lands on the right trace row on an
    ordinary multi-bus capture.
    • The anchoring search assumed sorted timestamps; real captures dip
      several times a minute.
    • A marker could land on the wrong row, or be dropped with nothing
      said.
  • Fixed: arrow-key navigation no longer rings the whole grid
    viewport with a browser focus outline.
  • New: Space on an event row jumps to it; F2 renames it inline, in
    both the events view and the trace.
  • Fixed: finishing an event rename hands the keyboard back to the
    grid. The arrow keys used to go dead.
  • Fixed: an invalid palette prompt shows an inline error and stays
    open, instead of closing silently.
  • New: jump the whole session to a time with Mod+T; go-to-event
    gains Mod+E.

Events

  • New: an event can say what it is about — signals, messages, or
    other events, mixed in one event.
  • New: event rows carry subject chips naming the message or signal
    the event points at.
  • New: Shift+click a plot area with signals selected to create an
    event about exactly those signals.
  • New: right-click a trace frame row to create an event about that
    message, at that frame's time.
  • New: hovering or selecting an event lights up what it points at
    and fades everything else.
  • New: link two events, and the pair draws its extent as a coloured
    wash while either end is hovered.
  • New: events have kinds, and every view has a per-kind checklist to
    show or hide each one.
  • New: each event carries an editable description and a tag; the
    events view filters on both.
  • New: subjects, links, tags and descriptions survive a save and
    reopen, in both BLF and MDF.
  • Fixed: a BLF full of another tool's comments now survives a
    re-save. cannet used to drop every one.
  • Fixed: deleting an event removes every other event's reference to
    it, so no chip points at nothing.

Transmit and RBS

  • New: Space sends a one-shot transmit row, or starts and stops a
    periodic one.
  • Fixed: Space in the RBS panel enables or disables the row. It used
    to scroll the panel instead.
  • New: the RBS signals list is a real grid — visible cursor,
    click-to-focus, arrow keys and Space.
  • Fixed: opening a project can no longer put frames on a bus. RBS
    Run is no longer saved with the project.
  • Removed: the kill switch. There is now one answer to "how do I
    stop transmitting".
  • New: an RBS message row says whether it will transmit, and reads
    Muted when it cannot.
  • Fixed: a counter or CRC declared in a DBC now populates the fields
    editor. The controls used to be empty.
  • New: each populated field says whether it came from the DBC or
    from an override in this project.
  • Fixed: a malformed CannetCounter attribute now names the text it
    choked on.
  • Fixed: unassigning or reloading a database stops the RBS elements
    and periodics it was driving.
  • Fixed: a transmit row's Start is no longer disabled by a
    disconnected bus, so it matches what Space...
Read more

cannet v0.9.0

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.

cannet v0.8.1

cannet v0.8.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Aug 22:43
6293bc3
  • introduce themes, including light, default remains dark
  • additional logging and status messages for python sidecar, including its own log file
  • add connection status indicator to logical bus in project panel
  • extract base gridview control
    • used for:
      • trace (by-id and historical)
      • transmit
      • signals
      • dbc
      • rbs
    • commonizes scroll behaviors, keyboard nav, and multiselection for these views (actually fixes historical trace scroll-while-message-expanded bug)

cannet v0.7.0

cannet v0.7.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Aug 19:08
c2b845c
  • set window title - project + mesasge source
  • more fixes on scrolling in trace view. chronological should now handle expanded state correctly
  • plot - add configurable max/min and log scale in new y-axis right click context menu
  • add ability to add arbitrary sections to signal view
  • rename palette command now prompts for a new name and applies it
  • enum combobox selection now applied when selection is made
  • enum combobox now shows all items when expanded with down arrow keypress
  • plot - areas which have only constant signals now present a range based on the constant signal values, and dissimilar signals no longer overlap at 50% of the plot height.
  • allow collapsing project panel sections
  • add CannetDisplay dbc extension which currently only accepts 'hex' to indicate a signal should be rendered as hex
  • made exponential notation consistently happen at 5 decimal places for floats
  • improve display of fixed-precision values based on DBC config
  • plot - fixed issue where signal trace color didn't change until the plot panel was closed/reopened

cannet v0.6.0

cannet v0.6.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Aug 19:55
0555ca4
  • attempts to reduce idle work, especially driven by plot
  • mitigate long load times for plot signals when loading from cache/adding new plots/switching to previously unfocused plots
  • overhaul settings system, improved settings UI
  • add workspace concept per project. user can now create cannet project dir with .cannet_prj and .cannet dir. .cannet dir will hold data cache
  • unity scaled CAN signals now rendered as hex
  • units now in separate column from value in signals view
  • plot scale changes
    • hidden enums no longer take up vertical space
    • hidden other signals no longer contribute to scale sizing
    • scale of constant-valued signals now contributes to the overall plot scaling; previously they'd sit smack in the middle of the plot area
  • add ability to drag entire plot areas
  • ensure scrolling shows up on project panel, trace (L/R), transmit, system messages
  • ensure trace panel scroll bounds are updated when mesage signals are expanded
  • allow editing selection filters in signal and plot panels
  • attempt to mitigate unresponsiveness from adding many traces at once to an existing plot
  • mouseover time in trace view now shows local time for the message timestamp
  • free cursor in plot view now shows the time on the x axis
  • rename python sidecar exe

cannet v0.5.0

cannet v0.5.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Jul 22:58
7ecc66d

Fixes discrepancy between plotted enum lanes and displayed values in the plot panel

cannet v0.4.0

cannet v0.4.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Jul 21:27
c6b7ab3

Improves smoothness of plot follow-live

cannet v0.3.0

cannet v0.3.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 19:03
e314521
  • improve appearance of collapsed plot areas
  • add ecu name to message path in plot areas
  • ensure drag resize works on collapsed plot areas (the bottom edge drag works, and only the bottom when 2+adjacent areas are collapsed)
  • enable cursor and mousewheel when over collapsed plot area
  • set y gutter size the same on all plots in a plot panel so that all plots are the same x-width

cannet v0.2.0

cannet v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Jul 16:45
24803ea

Changes from previous rev:

Plot performance and usability improvements:

  • scroll + cursor work on more of the plot area
  • plot leading edge is smoother
  • plot no longer resizes on connect
  • plot no longer clears follow live on connect
  • zooming + follow live:
    • zooming on trailing half of plot (towards t=0) no longer disables follow live
    • zooming in on leading half of plot no longer disables follow live.
    • zooming out on leading half of plot disables follow live
  • cursor labels render on top of enum name overay
  • enum name overlay outline and text is more stable
  • plot area does not resize constantly while following live