I did some investigation on the BLF format and thought I might share my findings here in case I or someone else decides to give it a go in the future. The format is quite popular due to its compact footprint. On the other hand there is also the MDF format which is now an official industry standard but seems even more complex and the spec seems only available to members.
BLF is invented by Vector Informatik GmbH, and as with the ASCII-format, no specification is easily available. It could just be a matter of asking them though. BUSMASTER has implemented parsing support for it so I have looked at their C++ implementation.
The file starts with a 144 byte header. It contains some info that is not known until the log has stopped so it will have to be written last. The rest is one or more "log containers" which consists of a header and some zlib compressed data, usually up to 8 kB of uncompressed data each. This data contains the actual CAN messages.
Seems certainly doable to implement but might require some trial and error.
I did some investigation on the BLF format and thought I might share my findings here in case I or someone else decides to give it a go in the future. The format is quite popular due to its compact footprint. On the other hand there is also the MDF format which is now an official industry standard but seems even more complex and the spec seems only available to members.
BLF is invented by Vector Informatik GmbH, and as with the ASCII-format, no specification is easily available. It could just be a matter of asking them though. BUSMASTER has implemented parsing support for it so I have looked at their C++ implementation.
The file starts with a 144 byte header. It contains some info that is not known until the log has stopped so it will have to be written last. The rest is one or more "log containers" which consists of a header and some zlib compressed data, usually up to 8 kB of uncompressed data each. This data contains the actual CAN messages.
Seems certainly doable to implement but might require some trial and error.