HLA > Export results to CSV


I might be mistaken, but is there an option, to export the "AnalyzerFrame"s created by a HLA?
Seem trivial and available with LLAs, but I cannot find that option with HLAs.
Thanks !

Niels Göran

1 Like

I believe you can export the AnalyzerFrames with HLA’s, but you need to code it into your script?
I may have that a little wrong, but am sure that’s how it works, as there has been a post on this, however for the “right” answer @timreyes will know.

FYI I use the automation API and write the python code in to save the frames etc.
Congrats on your first post also

Not sure if this helps or not, but here is what I do. The examples below are some stuff I am doing now to try to understand the differences between two different USB Hosting setups on how they handle a HUB…

I have a version of the USB LS/FS analyzer that supports the HLA, and a couple of HLA’s that boil the data down to what I mostly am interested in, which are the Setup, IN and OUT packets.

Here is showing the output in Data table mode.

The way I output is done manually, that is in Terminal mode, I make sure that the other analyzers do not output to terminal. For example:

And you will see my output is in a CSV format… Actually, I use Semi-colon Note in the image I highlighted that the LLA outputs are currently turned off.

I then select all of the text and copy to the clipboard. And then open excel and do a paste.
I then go to the Data tab/menu and select the text to columns item, and then follow the steps to use separators and select ; …
Which gives me data like:

1.39360519 SETUP 0x0 0x0 ACK [GET_DESCRIPTOR - DEVICE #:0 I:0x0 L:0x8] 0x80 0x6 0x0 0x1 0x0 0x0 0x8 0x0
1.393620256 IN 0x0 0x0 ACK 0x12 0x1 0x10 0x1 0x9 0x0 0x0 0x8
1.394682918 SETUP 0x0 0x0 ACK SET_ADDRESS I:0x0 L:0x0] 0x0 0x5 0x1 0x0 0x0 0x0 0x0 0x0
1.395682942 SETUP 0x0 0x1 ACK [GET_DESCRIPTOR - DEVICE #:0 I:0x0 L:0x12] 0x80 0x6 0x0 0x1 0x0 0x0 0x12 0x0
1.395697974 IN 0x0 0x1 ACK 0x12 0x1 0x10 0x1 0x9 0x0 0x0 0x8
1.39571154 IN 0x0 0x1 ACK 0x3c 0x41 0x4 0x10 0x0 0x48 0x1 0x2
1.395725106 IN 0x0 0x1 ACK 0x0 0x1
1.396682968 SETUP 0x0 0x1 ACK [GET_DESCRIPTOR - STRING #:0 I:0x0 L:0x7fc] 0x80 0x6 0x0 0x3 0x0 0x0 0xfc 0x7
1.396698166 IN 0x0 0x1 ACK 0x4 0x3 0x9 0x4
1.397682992 SETUP 0x0 0x1 ACK [GET_DESCRIPTOR - STRING #:1 I:0x409 L:0x7fc] 0x80 0x6 0x1 0x3 0x9 0x4 0xfc 0x7
1.397698122 IN 0x0 0x1 ACK 0xa 0x3 0x44 0x0 0x65 0x0 0x6c 0x0
1.39771169 IN 0x0 0x1 ACK 0x6c 0x0

And my HLA has print statements in it to generate the above stuff, like:

                if self.base == 10:
                    print(str(start_bias_time), ';', self.frame_data['pid'], ';', str(self.endpoint[0]), ';', str(self.addr[0]), ";", self.frame_data['ack'], ';', text_str, ";",data_str)
                    print(str(start_bias_time), ';', self.frame_data['pid'], ';', hex(self.endpoint[0]), ';', hex(self.addr[0]), ";", self.frame_data['ack'], ';', text_str, ";",data_str)

Not sure if that helps or not…
Current stuff up on github:
KurtE/Saleae_USB_Data_Packets_HLA at decode_bt (github.com)
KurtE/usb-analyzer: Saleae USB Analyzer (github.com)

Note: the above github projects are always WIP… Would be great if Saleae would make an official version of the USB analyzer that supports HLA…

Good luck

1 Like

Hej hej,

thanks @b.hughes1 and @KurtE for yoru replies !
I think that might be the way to go…
While I don’t quite understand why there is not at least the same functionality as for the LLAs…
But maybe someoen from Saleae can provide some insights here…

In general, I was supprised how easy it is to extend / write a LLA.
If anyone is interested, I extended the BISS-C aanlyzer from Marcus10110 (GitHub - saleae/biss-analyzer: Saleae BiSS (bidirectional/serial/synchronous) Analyzer) to also decode the additional data in a BISS-C SAFETY frame. You can find that analyzer here: GitHub - ngblume/biss-safety-analyzer: Saleae BiSS (bidirectional/serial/synchronous) Analyzer

I will look into outputing either to Terminal or get frames via Automation API.
Thanks and happy holidays !

Niels Göran

1 Like

You can export your HLA results by exporting the data table. if you want to exclude your LLA results, you can filter the LLA out of the results before exporting.

Click the dot-dot-dot menu on the analyzer table.
In the “analyzers” section, you can click to toggle results on and off for each analyzer.
Then click the “Export Table” option at the top.
There are a lot more settings, like turning off columns you don’t want, exporting only the search results, etc.

Also, selecting, copying, and pasting out of the data table works quite well, as long as you don’t try to copy more than about 1000 rows at once.

We never introduced a full custom export feature like we have in the LLA API. While I think this is useful, the new rich frameV2 system is very well suited for export without needing a custom export function for each HLA.

1 Like

Hello @markgarrison,

thank you for pointing that options out!
I didn’t see it for some reason or did not search thoroughly enough.
Works as advertised… Issue solved…

Have a nice holiday!
Niels Göran