Binary Logging Format


Recommended Posts

Its just interleaved 64 bit integers (or floats, or whatever you select). If you only have one channel, then its just 8 bytes for each reading, with each subsequent 8 bytes corresponding to the next reading. If you had two channels, then the data is interleaved, so first 8 bytes is first channel, second 8 bytes is second channel, then move to next reading for both.

There is no header, though you can optionally have DF write a header file, which is handy just in case you forget the order of your data.

To read into C++ you'd simply read into a byte array, then cast the array to an array of 64 bit integers.

I should add that unless space is an absolute premium, or speed is of the utmost importance, CSV files are a better choice to log to. They are easier to import into any program, and easier to deal with if a part of the file gets corrupted. They also contain header information in the file itself.

Link to comment
Share on other sites


Is the time not stored as well?

Anyway, I can definitely play around until I figure it out.

Speed is an issue as I am running this on an older PC and have had many 'Buffer overreun' error when I start logging.

I'm hoping using the faster binary format eliminates some of these errors.



Link to comment
Share on other sites

Sorry, you are correct. Time is interleaved in there as well. It is the first column. How it is stored depends on the binary format you select, and this is covered in the help/User's guide.

If you have enough memory and are just doing a batch stream, you might consider using an export set and logging after the streaming is done. This would leave all the processor power for the streaming.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.