Martin et. al., The fix that makes this block work for us in any scenario, is to add a break statement at the end of every case statement (don't allow the fall through's to happen).
This leads me to believe the source of the issues comes from the way offsets are calculated between states within one general_work call. Letting general_work return after every state resolves any of these issues. I think this points to check_items_available as the problem child, but I couldn't confirm that. The testbench I use to confirm this has the built-in HPD block and my custom HPD block, which has break statements at the end of each state. The built-in HPD block will start producing errors seconds after I start the flowgraph. With the built-in disabled and my custom block in the same flowgraph, it will run indefinitely (tested for 20 hours). The settings of both blocks were: *Header Length: 8* *Items per Symbol: 8* *Length tag key: "packet_length"* *Output Format: Items* *IO Type: Complex* *Trigger Tag Key: blank* The input to HPD is unpacked and the header is 64 bits long when packed. I did the bulk of testing using a custom tag_trigger block that outputs a 1 when it sees a certain tag and 0 otherwise to feed the detect port of HPD. I just tried it using the Trigger Tag Key of the HPD block itself and it also seems to be fine. So either way seems to work. I looked at the bug submission instructions, I think forking from github is the easiest way of doing it, but I need a little clarification. In this case, am I correct to fork the repo, add the break statements to the HPD source, and request a pull along with this explanation? I won't be adding QA tests or anything else. v/r, Rich
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio