Commit Graph
29 Commits
Author SHA1 Message Date
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
Collin Kidder a8f4a51131 A quick fix to make frames with less than 8 data bytes not show
garbage after their valid bytes
2021-12-29 21:08:25 -05:00
Viktor Verebelyi c69f77630a Add timeline slider to flow view 2021-11-26 05:24:54 +00:00
Viktor Verebelyi 3a4f9c6699 Add selection of graph charts and slider to change chart range to flow view 2021-11-26 03:32:54 +00:00
Collin Kidder 1f421c5d2c Added hex labeling option to graphs in flowview and frame info windows, a few tweaks for potential QT6 support 2021-09-06 19:25:59 -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
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 367c072b45 Various fixes to issues caused by recent transition to QCanBusFrame 2020-02-18 21:31:18 -05: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 0baffa300f A partial commit that changes CANFrame over to be based on
QCanBusFrame so that things are more compatible with other Qt based
CAN bus code. Not complete yet but getting there.
2019-12-11 21:17:33 -05: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 1fdd67777c Add more customization support to CANDataGrid. Used that new functionality in Flow View
to allow for bitfield triggers. Click a cell to trigger on it.
Now playback will stop if that cell changes state while playing back.
2019-08-01 21:57:03 -04:00
Collin Kidder d4a735a710 Allow many places to load and save the last directory used for that functionality so it can easily be used again.
All frame file I/O uses the same directory load/save location but DBC files store separately as do filter files, graphing definitions, and stored text files from the various reverse engineering windows.
2019-06-17 20:58:56 -04:00
Collin Kidder e6ea250113 Tweaked the graph a bit in Flowview to make the X axis labels more
sensible.
2019-02-26 20:46:28 -05:00
Collin Kidder 1177e81bec Fix for crash in Flow View when a frame doesn't have 8 data bytes 2019-02-24 16:57:18 -05:00
MartinX 52f04791dd add setWindowFlags(Qt::Window) to improve window management
* improves window handling a lot
	(on Linux GNOME 3 at least: quickly resizing windows left/right, not forced in foreground anymore etc.)
	setWindowFlags() inserted in all *window.cpp files except mainwindow
    * some whitespace at EOL trimmed
2019-02-13 20:08:41 +01:00
Collin Kidder bc37da483d Fix support in FlowView for realtime mode 2018-04-17 20:04:00 -04:00
Collin Kidder 9302c18c33 Integrated help into the system. Most all the sub-screens that are actually complete
and working have integrated help now. Press F1 to bring up help for a given window.
2017-11-30 21:02:16 -05:00
Collin Kidder 3b9c793e99 Make CAN id's either be 3 hex digits or 8 hex digits when displayed - depending on whether a frame uses standard or extended id mode. 2017-11-26 16:30:48 -05:00
Collin Kidder 9f64eabd9f Add openGL mode to flowview, add histogram graphing to frame info
window (also openGL accelerated if you choose)
2017-09-03 13:46:02 -04:00
Collin Kidder 280a3e11d7 Fixes to Flowview and Graphing windows to make them work with new
QCustomPlot version
2017-08-13 18:01:05 -04:00
Collin Kidder 83399ed0a7 Switched to newest version of qcustomplot. 2017-08-06 21:25:17 -04:00
Collin Kidder 02aff6e0e0 Fix crash bugs in discrete state and flowview windows. 2017-01-08 19:26:51 -05:00
Collin Kidder 2758fa8a09 Removed a few more warnings, switched the way CAN callbacks work. 2016-12-30 14:24:17 -05:00
Collin Kidder 7222870b1e Many little fixes to clean up warnings and bugs. 2016-12-29 20:50:02 -05:00
Collin Kidder 0b46f564ab Reorganized source code 2016-12-11 21:06:41 -05:00