Commit Graph
220 Commits
Author SHA1 Message Date
Chris Whiteford 0ae2b40f66 Calculate the default row height correctly
Ensure that the temporary row that is added to the view on startup is sized correctly before storing that height as the default.

Then use the calculated row height to set the default height for all added rows
2023-12-15 11:42:31 -05:00
Collin Kidder 310d75761f Add ability to save decoded CSV with absolute timestamp 2023-07-11 21:14:19 -04:00
Collin Kidder e2438efac5 Allow for decoded DBC signal output without attaching the name to the
resulting string. Used by CSV output.
2023-07-11 20:36:17 -04:00
Collin Kidder 39b43ebf38 Switched up the way time stamp formatting is done. Now tracked by an
enum for easier determination. Also changed graphing window to respect
"system clock" style timestamps and display them properly.
2023-03-15 19:50:58 -04:00
Collin Kidder b8ee038632 Merge branch 'master' of github.com:collin80/SavvyCAN 2023-02-22 21:06:52 -05:00
Collin Kidder 51ba7a2e76 Add a new window that can be used to bridge two CAN buses with
selective ID forwarding.
2023-02-22 21:06:23 -05:00
Angus Gratton 7ed9ebba21 main window: Fix error on "add to a graphing window" if !filter labels
Right-clicking and trying to graph a signal from a DBC with "Label filters"
unset would result in an error "Cannot find ID 0xNNN in DBC files(). Not adding
graph".

Filter labels unset is the default state when adding a new DBC file.
2023-02-22 21:32:58 +11:00
Andy Huska 2ec4c6fe62 Disable row expansion on new file load and turn off row expansion when row count gets too high 2022-12-12 13:44:06 -06:00
Collin Kidder e1f06be6fd Added a setting that allows for limiting the number of bytes per line.
This is useful if you have a 1920x1080 monitor or smaller resolution
but you want to capture 64 byte payloads. The default is 8 bytes but
usually 16 bytes is fine.
2022-12-08 20:35:33 -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
Andy Huska 01d793f21f Merge branch 'master' into fix_customsendcrash 2022-11-02 16:52:20 -05:00
Andy Huska ec00713033 Improved auto row expansion for new unique frames coming in 2022-11-02 16:06:50 -05:00
Andy Huska 1b41decd20 Custom sender is no longer crashing
There are a TON of explorations I did here, many may be unnecessary, but this is a stake in the ground.

The main issue was the strange queue logic in canconmanager::sendFrame which puts the tx data in the rx
queue so it will show up in the displayed data.  It caused SIGABRT and SIGSEG to show up everywhere.
It is NOT fixed yet, but TX works over the wire you just can't see it in the tableview.

I thought at first it was only when overwrite data was active, so I put in a a pile of changes to keep
frames and filtered frames as two seperate copies of data where frames was always complete and filtered
was only what was seen in the mainwindow.  It made it so the graphing window would work with overwrite
data active which is an improvement.  I wouldn't roll these changes back.  Because of these changes I
had to update the frame sorting code adjust the refresh function in canframemode.cpp

I also thought it was related to UI updates, but its not, that's been confirmed.

I put a mutex around the custom sender tick timer so that the 1ms timer wouldn't re-enter its callback.
This didn't fix the crash, but it sure seems to make a lot of sense, and the way I did it no elasped
time is lost for tracking purposes, and in reality theres no way 1ms was consistent anyway.

I put a mutex around the shrinking of frames and filteredframes to make sure we weren't deleting at
the same time as accessing, but honestly we acccess those lists in many places without semaphores so
that probably did nothing.

Fixed a bug in FrameSenderWindow:DoModifiers that was improperly parsing and sometimes crashing when
looking for the ~ operator before a symbol.

Also added some minor work to keep row expansion functioning when changing filters or sorting.  Need
to make some tweaks so it stops trying so hard when overwrite is not active

Theres also code in main.c taht makes debugging output super verbose.

Committing now to start cleanup
2022-11-01 15:01:07 -05:00
Andy Huska 61f1113d76 Added menu option to export decoded frames as CSV
More standard way of looking at parsed data

Handles multiple message types. Each message gets its own columns.
With many message types there are a lot of blank cells but its easy to
analyze.
2022-10-17 11:01:10 -05:00
Andy Huska ef762e5ae5 Added menu items to export csv decoded data, still need wiring 2022-10-17 10:33:13 -05:00
Andy Huska c6c19b38aa for clint 2022-10-14 16:25:03 -05:00
Andy Huska dc0b25bee8 Added setting for fixed width vs normal font in the data tables 2022-09-30 16:33:07 -05:00
Andy Huska 8232d90a73 Merge branch 'add_allowfilterstostayuponclear' 2022-09-28 19:14:02 -05:00
Collin Kidder 52a2d719c7 Merge pull request #505 from llange/qt6.3-qmetatype
remove qRegisterMetaTypeStreamOperators (qt6)
2022-09-26 21:23:49 -05:00
Collin Kidder f653ef859a Merge pull request #503 from llange/qt6.3-qelapsedtimer
replace QTime with QElapsedTimer when possible (qt6)
2022-09-26 21:22:22 -05:00
Ludovic LANGE 5a18c611e1 replace QTime with QElapsedTimer when possible (qt6)
Since Qt5, some methods of QTime [are deprecated](https://doc.qt.io/qt-5/qtime-obsolete.html).

Qt6 remove those methods, thus in two instances we need to use
a [QElapsedTimer](https://doc.qt.io/qt-6/qelapsedtimer.html) instead of a QTime.

QElapsedTimer is available since Qt5.4, and is already used in the source
code.
2022-09-24 17:54:51 +02:00
Ludovic LANGE 9fb86e649f remove qRegisterMetaTypeStreamOperators (qt6)
Since Qt6, some methods of [QMetaType are removed](https://doc.qt.io/qt-6/qtcore-changes-qt6.html#the-qmetatype-class).

We remove `qRegisterMetaTypeStreamOperators()` calls for Qt >= 6
2022-09-24 17:51:25 +02:00
Andy Huska 9e9195b34e changed default data table font to be fixed-width for easier reading 2022-09-19 16:13:30 -05:00
Andy Huska 40dbf253af Saving, loading, clearing, and appending signal lists working!! 2022-09-19 15:28:53 -05:00
Andy Huska 6fa84df7e0 Added ability to maintain bus and msg filters when clearing frames 2022-09-19 13:31:00 -05:00
Collin Kidder c4a9f99445 Added two modes - millisecond timestamps for frames and a way to
ignore colors set in DBC files
2022-01-19 21:34:49 -05:00
Matthias Kelch 31c26a7df0 Fix segfaults when add to graphing window for signal not found in DBC 2021-09-27 17:52:30 +02:00
Collin Kidder 935032477d Modified CANDataGrid component to have two modes for better graphics,
updated version number and presentation on main window
2021-09-06 20:34:11 -04:00
Collin Kidder da0f1fe87e VERY belated increase in version number.
Added build date to main window title to make it easier to
differentiate continuous builds from each other.
2021-08-25 19:26:35 -04:00
Collin Kidder f53ad8a65a Fixed help system.
Also switched from Sphinx generated HTML to GitHub markup help files.

This improves compatibility and will allow the help files to more easily be viewed on github as well.
2021-05-30 23:40:47 -04:00
Chris Whiteford 51c25f0072 Support dragging and dropping of files onto app icon
Tested on macos and windows.  Drag and drop files onto either the dock icon or task bar icon once SavvyCCAN is running
2021-05-25 11:39:24 -04:00
Collin Kidder 35c1ef5387 Added ability to create multiple graphing windows that act separately.
Added ability to right check on signals in main view and graph them
directly.
2021-05-02 12:48:47 -04:00
Bertrand 57426d273a changing implementation of continuous logging
uncommenting function declaration
2021-02-23 09:52:24 +01:00
Bertrand ba63a25fe3 added bus filter to main window 2021-02-23 08:10:39 +01:00
Collin Kidder b345495178 Fix compilation on Windows, fix glitch that could cause windows to appear off the actual screen with no way to get them back. 2020-11-15 01:30:13 -08:00
Collin Kidder 9d545d44d1 Merge pull request #245 from collin80/WIP
Wip
2020-09-30 18:42:57 -07:00
Kanstantsin Shautsou 6eebfd7089 Add CARBUS Analyzer file load.
- Generic CSV parses file without failures, so CARBUS must be higher.
- File may be loaded but will have no packets. Adjusted UI message for this case.
- Obviously if we got CANHACKER header, then file is already detected and there is no need to parse.
2020-09-26 03:45:19 +03:00
Collin Kidder 18e20a2ee2 Fix UDS interpretation of read by ID, Fix up display issues with
interpreted messages on main screen.
2020-09-21 22:04:28 -04:00
Collin Kidder 4887ac8e62 Many fixes to file loading to prevent crashes and make failure more
clear.
2020-08-16 18:30:43 -04:00
Collin Kidder a5b7410629 Add tracking of DBC editing in order to warn when exiting without saving, add sorting to DBC routines, add a new screen that allows one to compare two DBC files for changes/differences. 2020-07-29 20:45:36 -04:00
Collin Kidder 9c143c2b12 Add two new buttons to expand or collapse all signals. 2020-04-02 21:47:20 -04:00
Collin Kidder e4a3854af4 Many little changes to get rid of compile-time warnings.
There now should be no warnings when compiling on LINUX. YMMV elsewhere.
2020-02-15 19:52:18 -05:00
Collin Kidder d550fa79a0 Changed a lot of pointer references to const (it's more correct and
fixes a weird problem), fixed a problem with JSON to DBC, a few other
fixes
2020-02-13 22:01:06 -05:00
Collin Kidder 8beb0e31a0 Converted more code to be easier to generalize to larger CAN payloads
for CAN-FD. Improved some code to be faster. Fixed up some compile
time warnings.
2019-12-15 15:02:06 -05:00
Collin Kidder ef24036d1c Finished switching over everything to the new can format (I hope). It
seems to function now but much more testing is needed.
2019-12-13 21:06:48 -05:00
Collin Kidder 2867838e75 Reformat status bar on main window and add text to explain F1 usage 2019-08-18 19:44:09 -04:00
mjuhanne cd5fe6da02 DBC settings and bugfixes
- Changes in DBC file manager are immediately propagated to the main window (frames, filter labeling)
- Prevent DBC file manager from saving settings too often and too early (this also fixes a bug where sometimes the settings of all but the first DBC file are lost)
2019-08-12 18:29:33 +03:00
mjuhanne 6272ba3911 Fix slowdown when loading big log files.
- updateFilterList was call repeatedly too many times
2019-08-12 01:33:10 +03:00
mjuhanne 428b19c5c4 - Save DBC file configuration when changed, and restore it when restarting the application (no need for manual entry everytime app is launched)
- Add GMLAN 29bit filtering feature. In addition to J1939 matching, it is now possible to match DBC messages using only the Arbitration Id (bits 14-26 of CAN Address), since  Priority id (higher bits) and Sender Id (lowest 13 bits) are not relevant when interpreting the CAN message content. This allows to use the excellent GM Global A DBC files on https://github.com/commaai/opendbc. Just remember to select the "GMLAN" matching criteria on DBC File manager.
- Add "Filter labeling" feature. Using loaded DBC files, it matches the filter Ids with DBC messages and shows them in filter windows. Labeling works in the main window (no need to set "Frame interpret" on, since this is a separate feature), as well as in Flow view, Frame data analysis, Playback and Fuzzzing windows. This makes it so much easier to concentrate on those CAN messages that matter. To use this feature, select global "Label filters using messages from DBC files" on Main Configuration page, and then enable the feature on individual DBC files (on DBC file manager) as needed. This is needed if there's overlap in CAN addresses between DBC files, and because the filter labeler cannot tell apart anymore which Filter ID is associated to which bus, it might label them incorrectly. But usually it's ok to just enable the labeling with all the DBC files.
- In Frame data analysis window, in addition to J1939 decoding show also GMLAN (Priority bits, Arbitration Id, Sender Id) decoding.
- FilterUtility static class used for centralized ListWidgetItem creation and for other helper functions
- DBC handler: To allow setting bus numbers even before connection is configured, do not enforce "valid" bus numbers
2019-08-11 23:16:02 +03:00
Collin Kidder e7e65b7216 Fixed up a bunch of compiler warnings.
There should be no functional difference, just less noise when compiling
2019-08-08 21:15:51 -04:00