In my tool I have constructors for the "byte array", i.e. e.g. F1 24 output, but also for "String array" for each data type and I have also toByteAray() and toStringArray() methods for exporting the data.
So in my tool at the point where I receive the data, if the Tool is writing the "debug feed", I parse the incoming byte-array and then write it as String array into a file. Then I have a tool, which can just read those files and push them again out as byte-arrays into the Tool (or somewhere else). This way I can easily record laps/sessions and then re-run them if there are some oddities or I need to fix something and test the fix. And I have a library of oddities, which I can test against new versions to see they behave correctly. This is quite handy way of doing it. And as the data is in "String array rows" format, you can use any tool like Notepad++ for looking into the data.
Cheers.