Commit Graph
1570 Commits
Author SHA1 Message Date
Refuhr db82b6ea1e feat: fix licencing issues 2026-08-03 15:20:13 +02:00
RefuhrandClaude Opus 5 2c8f9c6c23 fix: skip saved connections this build cannot create
CanConFactory::create() returns nullptr for a type the platform does not
support, and loadConnections() handed that straight to the model, which
appends it to the connection list unguarded. Every later iteration over that
list then dereferences it.

Reachable by carrying a settings file holding a gs_usb connection from
Windows to another platform, and by any saved type id the factory does not
recognise.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
2026-08-03 13:12:52 +02:00
RefuhrandClaude Opus 5 1f1861485d refactor: keep the gs_usb option out of non-Windows builds
The radio button was only disabled elsewhere, which advertised a connection
type that platform can never offer. Hide it instead, and guard the gs_usb.h
include so nothing outside Windows reaches for it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
2026-07-29 16:16:45 +02:00
RefuhrandClaude Opus 5 cefe1f7211 fix: link advapi32 for the candle API registry calls
candle_scan_vidpid() reads the device registry through RegQueryValueExW and
RegCloseKey. MinGW links advapi32 by default, MSVC does not, so the Windows
build failed with LNK2019 on both symbols.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
2026-07-29 11:34:53 +02:00
RefuhrandClaude Opus 5 c39c8660d7 fix: move __stdcall behind the pointer in the candle API
MSVC rejects a calling convention placed before the '*' of a pointer return
type with C2165, so every translation unit including candle.h failed to
compile. MinGW accepts the upstream spelling, which is why the cross build
did not catch this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
2026-07-29 11:26:12 +02:00
RefuhrandClaude Opus 5 3ae429ae48 feat: add gs_usb support on Windows
candleLight, CANable, CANnectivity and cantact adapters speak gs_usb. On
Linux and macOS the kernel driver exposes them as SocketCAN interfaces, so
SavvyCAN already reached them through Qt SerialBus. Windows has no such
driver, which left those adapters unusable there.

Add a GSUSBConnection that talks to the hardware directly over WinUSB:

- one connection per physical device, one SavvyCAN bus per CAN channel
- CAN FD including BRS, plus RTR, extended IDs and error frames
- known good bit timings for 16/48/80/160/170 MHz device clocks, with a
  generic solver for clocks the tables do not cover
- hardware timestamps, unwrapped across the 32 bit rollover and anchored
  to the host clock so they line up with the rest of SavvyCAN

gs_usb multiplexes every channel over a single USB bulk IN endpoint, so a
single reader thread drains it and hands frames to the connection thread in
batches, coalescing the wakeups. That keeps one producer on the lock free
queue, which the tx echo path already writes to.

Device scans skip adapters that a live connection holds. candle_dev_open()
shares the file handle and queues read URBs immediately, so probing a device
in use would consume frames the open connection is waiting for.

connections/candle_api is an unmodified copy of the candle Windows API, LGPL
3.0 rather than MIT and only compiled into Windows builds. See its README for
provenance.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
2026-07-29 09:25:32 +02:00
Refuhr 30328f773a ci: drop macOS x64 build 2026-07-11 13:34:51 +02:00
RefuhrandClaude Opus 4.8 0a7ca1201b ci: remove Discord notify job
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 19:00:16 +02:00
RefuhrandClaude Opus 4.8 bc75f8e4d3 ci: add manual trigger and tag releases
Add workflow_dispatch to allow manually running the build on any
branch, and publish a GitHub Release for each pushed tag. Scope the
continuous pre-release to master only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 18:41:48 +02:00
Refuhr d3e5eaa9bb feat: reorganize preferences to different tabs 2026-07-07 15:54:05 +02:00
Refuhr d94537d00c feat: add ctrl + r shortcut to reload all connections 2026-07-07 15:41:37 +02:00
Refuhr 137508392a fix: multiplexed value display to not jump all around
- feat: now have a array to cache values and always display them in the
  order in the DBC, also keep track of which values are not stale to not
display 0 on init
2026-07-06 16:18:13 +02:00
Refuhr 863192ddef feat: add used and unused message ID overview window 2026-07-03 17:40:26 +02:00
Refuhr 19b794a575 feat: warn on duplicate CAN ID in DBC message editor 2026-07-03 17:40:26 +02:00
Leopixelo 51862b5c54 improve mousewheel zooming performance 2026-06-29 21:23:24 +02:00
Leopixelo f1a9e0d83e do not auto interpret isotp messages 2026-06-26 17:24:58 +02:00
Leopixelo 0a65e7100e Revert "sort by ID column by default"
This reverts commit 862d2bf7e4789ac186f6a0b899a5828b0d58bc2b.
2026-06-26 17:23:59 +02:00
Refuhr 68cf5098fb feat: sort multiplexed values by multiplex value ascending 2026-06-19 13:44:22 +02:00
Leopixelo 966c407638 fix sorting of multiplexed signals 2026-06-16 20:10:23 +02:00
Leopixelo 312165150f fix rebased version for QT5 compatibility + dbc handler fixes 2026-06-08 20:09:33 +02:00
Leopixelo d830d77885 switch to light theme 2026-06-08 15:13:46 +02:00
Leopixelo b8920c535e sort by ID column by default 2026-06-08 15:13:13 +02:00
Leopixelo 1b77ee8a35 add isotp ascii decoding and autoscroll 2026-06-08 15:13:13 +02:00
Refuhr be85c1e413 feat: also move selection when moving dbc files up or down 2026-06-08 15:13:13 +02:00
Leopixelo 2acbe443ec add support for start date offset 2026-06-08 15:13:13 +02:00
Leopixelo 0e26233dbf change application display name to internal joke 2026-06-08 15:13:13 +02:00
Leopixelo d24738eb7c sort signals in dbc editor by start bit 2026-06-08 15:13:12 +02:00
Leopixelo cae3ec29ea fix frame sender window modifier bug 2026-06-08 15:13:12 +02:00
Leopixelo 8510db79f2 do not close graphing window on escape 2026-06-08 15:13:12 +02:00
Leopixelo 614f2fef54 implement seeking in playback window and add playback line in graphing view 2026-06-08 15:13:12 +02:00
Leopixelo af048e8615 fix timestamp to always be in milliseconds 2026-06-08 15:13:08 +02:00
Leopixelo be077c52fb change default useOrigTiming and status update interval of CAN playback 2026-06-08 15:10:58 +02:00
Leopixelo 6b06ceacb5 always show timedelta in milliseconds when in overwrite mode 2026-06-08 15:10:58 +02:00
Leopixelo a2851653e3 add more shortcuts to main window and graphing window 2026-06-08 15:10:58 +02:00
Leopixelo 37d386f3c9 load all frames when overwrite mode is unchecked 2026-06-08 15:10:57 +02:00
Leopixelo 8d0c085f1e update README for QT6 2026-06-08 15:10:57 +02:00
Leopixelo 401c57b412 make right click on CAN frames view grid work 2026-06-08 15:10:57 +02:00
Leopixelo 2682e7c84d sort signals in main window can frames view by start bit instead of name 2026-06-08 15:10:47 +02:00
Leopixelo 539031d5b2 do not rescale y axis of graphing window when changing graph parameters 2026-06-08 15:03:38 +02:00
Leopixelo 1ac843ed3d set default state of graphing window follow end of graph to true 2026-06-08 15:03:38 +02:00
Leopixelo edd1f79c1f fix interaction with CAN message grid when overwrite mode is enabled 2026-06-08 15:03:38 +02:00
Leopixelo 93a642e3ab set default state of interpretFrames, overwriteDups and filtersPersistDuringClear to true 2026-06-08 15:03:38 +02:00
Collin Kidder 286df56895 Merge branch 'master' of github.com:collin80/SavvyCAN 2026-05-14 21:03:14 -04:00
Collin Kidder bb26f52c3d Add reading of the version map from firmware that shows which files to flash onto a given controller
given its buildid.
2026-05-14 21:01:43 -04:00
Collin Kidder 2be3351e16 Added ability to read buildid which is necessary in order to grab the proper firmware files for the given hardware 2026-05-14 20:33:56 -04:00
Collin Kidder 66e0987113 Add ability to set directory where Tesla firmware is stored, use it to populate fields and allow selection of ECU to flash. 2026-05-14 19:56:07 -04:00
Collin Kidder 035b65243b Remove old custom firmware sender and replace it with AI designed UDS firmware sender. Not tested AT ALL.
Committing merely to give a baseline for further changes
2026-05-13 20:46:53 -04:00
Collin Kidder fd1d2055a8 Add lrelease command for translation files
For some reason, this is not automatically done on MacOS but seems to be on Linux and Windows. Why? I'm not sure...
2026-04-16 21:14:37 -04:00
Collin Kidder 927ab49749 Merge pull request #1044 from lexcibien/master
Adding translation to app and Portuguese Brazilian translation
2026-04-15 21:05:04 -04:00
Collin Kidder c7515bbdd5 Add array include to utility.h 2026-04-15 20:57:45 -04:00