danielhrisca / asammdf

Fast Python reader and editor for ASAM MDF / MF4 (Measurement Data Format) files
GNU Lesser General Public License v3.0
655 stars 226 forks source link

FEATURE: Make DBC decoding more seamless in GUI #656

Closed MatinF closed 1 year ago

MatinF commented 2 years ago

Feature summary

We suggest changing the DBC decoding functionality of the asammdf GUI to make it more seamless by e.g. avoiding the creation of a new separate file. We believe the below changes could elevate the UX and DBC functionality of asammdf to the next level.


Context/pain point

Today, the asammdf GUI enables decoding of raw 'bus logging' MDF files via the Bus Logging tab. The user loads a DBC file in this tab and clicks "Extract Bus signals" to create a new MDF file with the corresponding decoded data.

While this works as intended, it has some downsides: 1) For every new log file loaded, the user needs to go through all the DBC decoding steps 2) To decode a log file, the user has to 'create' a new MF4 (with the DBC decoded data) 3) There is no support for "remembering" loaded DBC files across sessions 4) The above steps become increasingly cumbersome if users want to analyze many individual log files


Possible solution

We suggest making the following changes:

First, integrate the DBC decoding of log files to avoid creating new separate DBC decoded files. Second, elevate the DBC decoding to go across log files.

Step 1: Enable DBC decoding without new log file creation

image

The above would allow end users to create plots quickly and avoid juggling "two files" for every 1 log file they wish to analyze. It would also simplify the general work flow as tabs like the Export tab can seamlessly be used across the two "forms" of the same log file.

Step 2: Move DBC decoding to a cross-file layer

The result of the above would have some similarities to the 'DBC decoding' in another tool, SavvyCAN: https://canlogger1000.csselectronics.com/img/DBC-decode-CAN-bus-data-SavvyCAN.mp4

For the probably 500+ users working with the asammdf GUI daily on CANedge raw bus logging files, the above changes would be a radical improvement. Based on my own usage, I believe it would reduce the no. of clicks required for day-to-day operations by 80-90%. At the same time, it would simplify the user interface by removing the 'Bus Logging' tab per file. And for most users, adding a DBC file for decoding would become a 1-time operation - not a 1-time-per-file operation.

I realize the above are dramatic changes, hence why I would propose the 2-step structure via feature branches. And at the end of the day, it is of course 100% your decision Daniel. But I hope you'll consider this as our team is confident this could be a 'game changer' in terms of UX for the asammdf GUI.

Martin

danielhrisca commented 2 years ago

Hello Martin,

this would be a big change for sure. I can't say if or when it would be tackled.

MatinF commented 2 years ago

Fully understand :-) thought I'd create a suggestion/outline for potential iteration over time and to serve as inspiration. I wouldn't expect this to be something that could be implemented short term

danielhrisca commented 1 year ago

@MatinF the development branch code contains the database manager (next to the Functions manager in the menu)

MatinF commented 1 year ago

Yes, it works great! I'm using it today and I think it's a great start in making the DBC decoding process more seamless for users.