MF4 to CSV Decoder

The CSV decoder stores the decoded output as CSV files.

The CSV output format has wide tool support but is generally inefficient (slow and big).


Output

The CSV output data-schema always include an epoch-timestamp column named t. The remaining column names are constructed from the database used for decoding, as in the example below:

t,Speed,SpeedAccuracy,SpeedValid
1650636883.519250,0.010000,2.006000,1.000000
1650636884.090300,0.010000,2.152000,1.000000
1650636885.041350,0.010000,2.290000,1.000000
1650636886.090500,0.010000,2.419000,1.000000

Note

Output values are always formatted as decimal numbers with 6 decimal places.

If specific values exceed the MIN/MAX as defined in the database, they are included in the output as NaN, as in the example below:

t,Speed,SpeedAccuracy,SpeedValid
1650636883.519250,0.010000,NaN,1.000000
1650636884.090300,0.010000,NaN,1.000000
1650636885.041350,0.010000,NaN,1.000000
1650636886.090500,0.010000,NaN,1.000000

Warning

Output rows are skipped if all values are NaN.


Performance

Below table provides some performance numbers for different input / output scenarios.

Input records

Input size total (MB)

Input files (#)

Output size total (MB)

Output files

Exe time (s)

Exe peak memory (MB)

Note

10.000.000

190

1

858

1

11

193

One input file one output file

10.000.000

292

1000

858

1

10

3

Many input files one output file

10.000.000

190

1

858

1000

11

199

One input file many output files

Note

All tests have been performed using default input arguments on a Intel Xeon @ 3.4 GHz running Linux (x86_64)


Changelog

# Changelog

All notable changes to this project will be documented in this file.

## [24.10.17]

### Added

- Support for transport protocols (ISO-TP, J1939-21, NMEA-TP, MUX-TP)

### Changed

- Versioning schema from SemVer to CalVer
- Default verbosity level changed to 2
- Restriction on max 5 DBC-files per interface/channel removed

## [2.3.2]

### Fixed

- Issue with merge of PGN source/destination addresses sometimes resulting in invalid output files

## [2.3.1]

### Added

- Support for float and double data types (defined in DBC file)
- Option to merge PGN source-address outputs
- Option to merge PGN destination-address outputs

### Changed

- DBC file message with name "VECTOR__INDEPENDENT_SIG_MSG" ignored
- DBC file empty attribute "BusType" now defaults to "CAN-bus"
- Improved error text on invalid output dir
- Improved error text on colliding message keys

## [2.2.2]

### Added

- Support for "signed" data type
- Support for compacted JSON password file

## [2.2.1]

### Added

- Input argument "dbdump" to dump loaded database to JSON-file

### Fixed

- Better handling of special characters in DBC-file

Download

Windows AMD64 / x86-64 (64-bit)

  • 24.10.17.zip (MD5: 8edb8776f6deb13bde964d1b65415108)
  • 2.3.2.zip (MD5: f2d213a3c0269c45830b338081a2f28c)
  • 2.3.1.zip (MD5: eb85dc50fe24f2889774a31d731ef0c2)
  • 2.2.2.zip (MD5: f7b16cc4efa3c5777606a2fcf737056b)
  • 2.2.1.zip (MD5: a025a8ce4ebe245690a1e92b66a100c3)
  • 2.1.1.zip (MD5: 6409cb1252463cde39f358532887c5e1)

Linux AMD64 / x86-64 (64-bit)

  • 24.10.17.zip (MD5: 1559dda936c2138d93674fb4976d2c95)
  • 2.3.2.zip (MD5: cfbf355bbd013d9e41807d9912569538)
  • 2.3.1.zip (MD5: fa826aa7f69ffae7b59446f8d8c2cd53)
  • 2.2.2.zip (MD5: ed51c25e18c4c078e118961b4ccc4c45)
  • 2.2.1.zip (MD5: 81016fe0e14f9754d2c29f761daee3f6)
  • 2.1.1.zip (MD5: e8e7b58a17157342994b1f489ab275e6)

Linux ARM64 (64-bit)

  • 24.10.17.zip (MD5: 279791cfa1f95a97bf16ac41fe85b30d)
  • 2.3.2.zip (MD5: 1de3a3ee3835ba380a477bf32d828d85)
  • 2.3.1.zip (MD5: aa2eb80f940fdebef03a49ce5b49de2c)
  • 2.2.2.zip (MD5: 7b53828bafe730731b1fae7463e028b2)
  • 2.2.1.zip (MD5: 466f25137740764b4a34487aca1745d5)
  • 2.1.1.zip (MD5: b7d2d929a38d12f7dfcc72464bacc689)