Export from a custom low-level analyzer to text/csv works as expected in Logic1. However, with Logic 2, the exported file has the “transaction” and “packet” for all frames as zero.
Presumably, both GetPacketContainingFrame() and GetTransactionContainingPacket() always return zero?
Is there (or will there be) an updated Analyzer* library that fixes this?
Good question. We started working on this, but there is a pretty significant problem with adding this.
The new Logic 2 software starts protocol analysis the moment the capture starts, but the Logic 1.x software started analyzers only after the trigger was found (if a trigger was used). Additionally, Logic 2 added a new looping mode.
The Analyzer API was designed around the idea that old analyzer results are never discarded. Frame 0 always refers to the same frame, and it will always be present after it has been created.
In Logic 2, we delete old Analyzer frames as they age out of the circular capture buffer.
This causes some issues with the existing analyzers, however the issues are largely pretty minor. Unfortunately, the problem is compounded with the introduction of the packet layer.
We’re still working out what route we should take for this. In the meantime though, I suggest folding the packet ID into your Frame data, which should be pretty easy. You can alternatively add your own collection to the results object to track packet IDs. (Note, if you store data outside of the Frame object, be sure to synchronize access, as the analysis thread and the export and bubble functions run on separate threads.)