SavvyCAN icon indicating copy to clipboard operation
SavvyCAN copied to clipboard

Save Graph to csv assumes constant frame timing

Open bjnswe opened this issue 2 years ago • 1 comments

I have some logs which I want to export to CSV to analyze in Octave. I found a way to do that with the Graph window. (Is there a way to do it straight from a log with all signals in the DBC?)

However, I noticed that the output had frames spaced with an odd interval, something like 3.89ms. The log contains frames spaced 50ms with 1ms bursts

Looking through the code, I found this function void GraphingWindow::saveSpreadsheet()

Which has this section: //The idea now is to iterate from xMin to xMax slicing all graphs up into MaxCount slices. //But, actually, don't visit actual xMin or xMax, inset from there by one slice. Then, if //a given graph doesn't exist there use the value from the nearest place that does exist. double xSize = xMax - xMin; double sliceSize = xSize / ((double)maxCount); double equivValue = sliceSize / 100.0;

I wanted to analyze the fast bursts with 1ms spacing, but now I loose 70% of that data (3.89ms instead of 1ms).

Is there a way to fix this? (Or is there a way to export the interpreted log as a CSV with the original frame timing?)

bjnswe avatar Oct 05 '22 12:10 bjnswe

This PR was merged to master recently and may give you what you need: https://github.com/collin80/SavvyCAN/pull/534

AndyHuska avatar Nov 07 '22 14:11 AndyHuska