Refuhr and Claude 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
d94537d00c
feat: add ctrl + r shortcut to reload all connections
2026-07-07 15:41:37 +02:00
Tomasz Dobrowolski
5fa1bb43ef
simplify
2026-03-19 11:59:31 +01:00
Tomasz Dobrowolski
ee3e2e2712
cleanup
2026-03-18 13:21:54 +01:00
Tomasz Dobrowolski
5e3d6a305d
another fix
2026-03-18 13:08:26 +01:00
Tomasz Dobrowolski
1483aab2a7
fix timestamp rollover
2026-03-18 12:36:22 +01:00
Tomasz Dobrowolski
5313faff69
Fix LAWICELL timestamping bug
2026-03-18 11:32:11 +01:00
Collin Kidder
392ab4c7c2
Merge pull request #997 from Citizen07/master
...
fix: incorrect Extended FD frame DLC byte was used [lawicel]
2026-01-13 20:05:12 -05:00
Heikki Perea
87fbc633d4
fix: timestamp in milliseconds
...
Lawicel defined the timestamp in milliseconds
2025-10-13 10:47:55 -06:00
Citizen07
d6e3c25d51
Fix index for resizing buildData in readSerialData function
2025-10-09 14:33:31 +00:00
Heikki Perea
fd0fca0f45
fix: dynamic timestamp extraction for LAWICEL CAN frames
...
Fixed timestamp extraction in LAWICEL CAN frames by accounting for the CAN frame type.
2025-10-08 15:36:55 -06:00
b.lebreton
affa893f1d
Add support for extended can in canlogserver
2025-08-25 09:32:31 +02:00
Collin Kidder
e32c16f661
Merge pull request #895 from wernerc11/complete_connection_save
...
Implemented connection save with speeds and can fd at least for bus 0.
2025-05-05 18:35:22 -04:00
Collin Kidder
192ce4ccd0
Merge pull request #909 from anegrin/timestamp-issue
...
FIX Issues 878 and 834 - usec overflow (using system clock)
2025-05-05 18:33:38 -04:00
alessandro negrin
4905794926
using proper method
2025-03-29 17:10:50 +01:00
alessandro negrin
2f70a608e3
this was missing
2025-03-29 16:52:34 +01:00
alessandro negrin
49a5b761bc
some other timestamps
2025-03-26 19:28:26 +01:00
alessandro negrin
b0fba1b6de
setting proper system time
2025-03-26 19:09:16 +01:00
werner
60b0e65a18
Implemented connection save with speeds and can fd at least for bus 0.
2025-02-13 20:21:15 +01:00
Joris Pevcevicius
a3cdbaf685
Fix device deselection after connecting
2024-07-24 00:04:03 +03:00
Superwofy
6da492f0eb
Added/corrected timestamps for LAWICEL protocol.
...
Fixed System Clock timestamps and added decoding for timestamps coming from the tool.
2024-06-21 12:55:26 +01:00
Collin Kidder
df5b427f9f
Merge pull request #724 from esaulenka/fix/DebugDuplicates
...
ConnectionWindow: fix Device Console duplicates
2024-01-25 21:31:04 -05:00
Collin Kidder
f4bb8fb6eb
Merge pull request #723 from esaulenka/fix/MinorFixes
...
Several minor fixes
2024-01-25 21:30:29 -05:00
Alexey Esaulenko
8aa3659999
ConnectionWindow: declare debug output connection as unique to prevent duplicates
2024-01-19 15:40:00 +04:00
Alexey Esaulenko
2082845d03
SocketCANd: fix memory leak: string can be accessed after object destruction
2024-01-19 15:00:39 +04:00
Alexey Esaulenko
48f62ac41c
CANConnection constructor: use correct order of members in the initialization list
2024-01-19 14:59:30 +04:00
Alexey Esaulenko
3dc426a5b8
Access to the CANBus parameters only through setters/getters
...
Also removed explicit copy constructor, in such trivial cases
compiler can create all needed copy/move stubs automatically
2024-01-19 14:58:30 +04:00
Alexey Esaulenko
a6cd2f1baa
Update required C++ standard to C++17 (needed by [[fallthrough]] statements)
2024-01-19 14:33:40 +04:00
Collin Kidder
d1223f7511
Merge pull request #702 from maciek16c/master
...
LAWICEL CAN-FD support, CAN-FD data rate selection
2023-12-06 20:32:42 -05:00
Collin Kidder
e28235b24f
Merge pull request #672 from pasha745/master
...
Add 3000000 baudrate mode for Lawicel device
2023-12-06 20:28:55 -05:00
maciek16c
2bf0782946
CAN-FD
2023-11-22 15:23:38 +01:00
maciek16c
190d51ae90
LAWICEL CAN-FD support, CAN-FD data rate selection
2023-11-22 14:39:36 +01:00
Collin Kidder
7fef6eb49f
Merge pull request #679 from rusoku/master
...
Add support ListenOnly feature for Qt SerialBus plugins
2023-11-20 21:48:47 -05:00
Generoso Cesaro
cb2725e6c4
Added canlogserver CAN remote capture
2023-11-17 16:21:38 +01:00
Gediminas Simanskis
20348547a2
added EN_SILENT_MODE into QCanBusDevice::UserKey
2023-10-08 20:00:03 +03:00
Pavel Kurenev
771518c4fb
Add 3000000 baudrate mode for Lawicel device
2023-09-29 03:13:56 +03:00
Collin Kidder
aada0daf55
Add a fix for GVRET serial devices on MacOS
2023-09-13 20:55:19 -04:00
Pacerino
bb1a7623aa
Add Extended CAN Bus Frame to SLCAN/LAWICEL
2023-04-28 15:36:57 +02:00
Collin Kidder
0843081cc5
Merge branch 'master' of github.com:collin80/SavvyCAN
2023-04-11 21:16:42 -04:00
Collin Kidder
780e2fb1a2
Several changes suggested in draft pull requests from llange. Fix some
...
ambiguous places, fix warnings, fix errors when trying to compile with
QT6
2023-04-11 21:15:34 -04:00
Viktor Verebelyi
e082c7f651
Fix converting timestamp from MQTT payload
2023-03-28 18:15:32 +01:00
Collin Kidder
8c756a46b2
Change the default canbus speed to 500k which aids in making J2534
...
devices work out of the box.
A more thorough solution should be implemented later on.
2023-03-20 21:21:12 -04:00
Collin Kidder
7a1d36d856
Merge pull request #590 from diekleinekuh/fix-crash-happening-after-stopping-in-debugger
...
fix crash when stopping in debugger for too long
2023-02-21 18:27:40 -05:00
diekleinekuh
69c735b689
fix crash when stopping in debugger for too long
2023-02-21 14:55:07 +01:00
diekleinekuh
d51c048460
fix rare crash on exit
2023-02-21 14:50:31 +01:00
Chris Whiteford
c6c2869124
Support for getting live data from a CANserver
2023-01-22 11:31:41 -05:00
Chris Whiteford
55becb0d58
Clean up the old connection when its replaced by a new one
2023-01-22 11:26:00 -05:00
Collin Kidder
64220d613a
Fix for MacOS and GVRET Serial Devices
...
A previous commit caused any device with a . in the name to be treated as a network device. This is not correct as MacOS will name many usb serial devices with dots in the name. Hopefully this makes the behavior correct in all cases now.
2023-01-05 20:31:10 -05:00
Collin Kidder
99e8eab30c
Fixed crash bug in targetted frames code
2022-12-27 21:41:24 -05:00
Collin Kidder
edc210c336
Only code clean up to remove many warnings. There should be no changes
...
to program operation.
2022-12-05 19:33:47 -05:00