Commit Graph
50 Commits
Author SHA1 Message Date
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 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 ca9b83ddc9 Switched from QtHelp to using straight HTML files for help.
This is because AppImage (for linux) is readonly and QtHelp requires
write access. But, HTML files shouldn't.
2019-08-18 18:52:15 -04: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 947f24f267 More fixes for compile warnings 2019-08-08 21:49:03 -04: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
shutingrz ca2fde0c55 fix null pointer access 2019-07-18 08:22:20 -07: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 842831e929 Fixes for issue #159 on github - Auto stroll sometimes didn't work and
playback didn't always update the current frame#.
2019-02-13 22:38:20 -05:00
Collin Kidder 151217bc3f Merge branch 'master' of github.com:collin80/SavvyCAN into WIP 2019-02-13 21:00:19 -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 c374c84786 Fixed a bug that caused playback system to send according to file upon
start up even though combobox said bus 0.
2018-12-30 20:08:13 -05:00
Collin Kidder eb6f7d87b8 Fix setting of ID filtering with keyboard 2018-06-04 19:23:50 -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 ed2cd7bd8c Reimplemented the ability to chain multiple log files and run them in sequences. 2017-11-08 21:09:20 -05:00
Collin Kidder 3bf19fdbc4 Moved a lot of the frame playback window functionality to a new class. This allows the functionality to be run
on a separate thread. The performance is a lot better and "use original timing" is now reasonably accurate.
2017-11-08 20:38:19 -05:00
Collin Kidder 9c9ab1933b Add mode to playback window to it to approximate the original frame
timings from the file/capture.
2017-10-24 21:27:55 -04:00
Collin Kidder 0f9584eaea Fixed ISOTP Interpreter Window - It functions again.
Also added UDS decoding to the ISOTP window. An attempt is made to see
if a frame looks like UDS and then it is decoded.

Also, some code clean up to remove some compiler warnings. There's a
LONG way to go still.
2017-10-09 20:59:25 -04:00
Collin Kidder c05bd2c043 Added flow control and other functionality to UDS / ISO_TP code. 2017-08-13 17:03:11 -04:00
Collin Kidder b309cce30b Updated version number, added buttons for filter load/save in playback
window
2017-04-24 21:36:28 -04:00
Collin Kidder 7222870b1e Many little fixes to clean up warnings and bugs. 2016-12-29 20:50:02 -05:00
Collin Kidder ddfac100d2 Changed sending windows to use new system where there are arbitrary number of buses 2016-12-08 20:21:42 -05:00
Collin Kidder 6a8b20a48e Merge branch 'master' of github.com:collin80/SavvyCAN into WIP2 2016-08-08 15:37:41 -04:00
Collin Kidder 9e37ded7cb Fixes for many issues in flowview, graphing window, and frame playback.
In FlowView:
- Drastically improved functionality of live mode. It actually works now
- Fixed several crash bugs
- Program didn't used to pick up new frames properly. This is now corrected.

In Graphing window:
- Fixed dynamic updates to work properly even under heavy bus loads

In frame playback:
- Fixed a bug where single stepping through frames didn't send them over canbus
2016-06-05 22:08:47 -04:00
Collin Kidder a3cd14e495 Additional implementation of the new connection scheme. It is now possible to send frames to CANConnection objects indirectly based on registered bus number.
This further abstracts the interface. Things are reasonably stable now for frame reception. Initial work has been done to support frame transmission as well. This is currently less stable but mostly working.
2016-03-27 22:37:02 -04:00
Collin Kidder 43c03110f6 Found a place where the unified file loading code wasn't being used.
This has been fixed.
2016-01-30 21:05:30 -05:00
Collin Kidder 72f07f304f Addition of the range state window (it sort of works now too!),
refactoring of some DBC code, fixed some DBC calcs, fixed a bug in the
frame playback window, incremented version number to show that a lot
has been done.
2015-12-07 21:47:41 -05:00
Collin Kidder 3ec7638e7b A bunch of little tweaks to remove compile-time warnings. Just convenience really. 2015-08-13 21:00:34 -04:00
Collin Kidder c4c0079675 Fix to add proper file extension when saving even if OS does not automatically add it for us. 2015-08-12 20:49:31 -04:00
Collin Kidder 07de662532 Updated the entire program to work in either hex or decimal. Changing the mode in settings will change which is used in many places.
You can always still enter values in decimal, hex, or binary regardless of the mode you are in.
2015-08-12 20:18:33 -04:00
Collin Kidder 41ee0a8646 Now the playback window is capable of vastly quicker sending of frames.
Use the burst setting and crank it up. Set the time interval to around 2ms and the burst to 6 and you'll be slinging frames like crazy.
2015-07-29 20:16:44 -04:00
Collin Kidder b8bd058f40 Remove all the references to using non-native save windows. It didn't fix linux and it broke Windows and linux. SO, yeah, this is reverting that.
Also, 0 out data bytes that aren't used for the native format. The native format always shows 8 data bytes even if the frame didn't have that many. That way programs like Excel will still have data in all of the positions.
2015-07-27 21:15:46 -04:00
Collin Kidder 0e0dada271 Allow for saving/loading filter definition within the playback window 2015-07-21 20:42:32 -04:00
Collin Kidder 5ca70467d6 Fix init bug in playback window. Update version and required GVRET version. 2015-07-06 21:11:13 -04:00
Collin Kidder 04e7a570e2 Update to make it easier to get the sub-windows to respond to changed preferences. Implemented seconds mode in flow view. 2015-07-05 13:27:16 -04:00
Collin Kidder cfc296aab8 Fixed a long standing stupid issue where the playback window defaulted to "None" as the bus to send to. That's handy, huh? The new default is "From File" and this can now be changed as a preference as well. 2015-06-30 21:06:35 -04:00
Collin Kidder 0ba0e6a255 Implementation of a bunch more of the settings (all but hex on/off) 2015-06-28 20:41:56 -04:00
Collin Kidder 6c967d2071 Implemented window size and position tracking for the forms that are currently implemented and working 2015-06-28 18:55:46 -04:00
Collin Kidder 1af5c10506 Fix to make access of canbus frames const correct. It's now not really possible to modify the captured canbus frames from outside the model class that holds them. This is safer and more future proof.
Boring update but it might save head scratching in the future.
2015-06-24 20:44:38 -04:00
Collin Kidder 37f30116e7 Updated the program version tag, added ability to delete entries in the sequence in the playback window. 2015-06-23 21:59:03 -04:00
Collin Kidder 3aa2c42cf0 Completely revamped frame playback window that can play back files in sequence with various forms of looping. 2015-06-23 21:34:48 -04:00
Collin Kidder 4439a7373e Cause frame playback window to make a copy of the current frames when it is opened.
This way it'll send what was available when it started. You can clear the original data if you want, keep capturing, anything you want and it'll still be able to keep going with its own copy.
2015-06-16 20:16:52 -04:00
Collin Kidder 9450ba6c29 Added burst mode to the playback window to allow for faster data rates. 2015-06-14 10:50:45 -04:00
Collin Kidder afc4707575 Temporary commit to make savvy can work with older GVRET versions. 2015-06-13 20:23:58 -04:00
Collin Kidder ae7a301cfb Update the entire program to use QVector. This should make the performance better. Still trying to preallocate enough space for 10,000,000 frames which should be more than plenty. 2015-05-22 23:33:08 -04:00
Collin Kidder 8ca7b3548f Frame playback via the playback dialog window is now working. 2015-05-09 10:07:23 -04:00
Collin Kidder c37bca4132 Completed playback system except that sending frames isn't implemented in the project yet so that must be completed. 2015-05-06 19:56:30 -04:00
Collin Kidder fcfdb76225 Addition of a playback form - used to play back a log file onto one or both canbuses. However, not yet completed (but it won't crash) 2015-05-05 23:04:48 -04:00