HLAs - Overlapping frames

I am working on an HLA to parse serial packets, and had this idea to show parts of the packet, and then an additional frame that says what the entire packet is generally. Right now it seems that returning frames in the same time, whichever one is return last will get painted on top. The idea being that in the case of fragments or bad packets, I can still at least display whatever data was successfully parsed.

Does this exist somehow already, or could it be planned?

1 Like

It doesn’t exist but it’s planned :slight_smile:

Would you rather have a single “channel” with multiple rows as a single block (e.g. re-ordering will move the entire block) or multiple separate “channels” in this case?

EDIT: We’re leaning towards the latter as it simplifies show/hiding channels (once we implement that feature) and the merging algorithm that combines results.

I think the latter you’re describing is this?

If that is the case, I am completely in favor of that. I managed to implement this using a setting, and just adding a ternary on my returns. Adding two analyzers, each choosing one setting seems to make it work.

2 Likes

Yes, exactly that. This is awesome!

I can’t wait to launch the marketplace and allow everyone to share their HLAs :hugs:

Maybe the specification could be done in the dict returned from set_settings(…)? Something like:

def set_settings(self, settings):
    return {
        "result_types": {
            "packet_text": {"format": "{{{data.text}}}"},
            "part_text": {"format": "{{{data.text}}}"},
            },
        "channels": {
            "packets": "packet_text",
            "parts": "part_text"
            }
        }

Without a “channels” entry everything goes to a single channel of output as it does now so legacy and simple HLAs need no change.

1 Like