Gnuradioers,
I continue to struggle to get the Header/Payload Demux (HPD) block to work properly. The header output port is perfect while the payload output port is not. The payload output port is full of 0's that should not be there. I cannot figure out the reason why. I have attached a screenshot of my HPD config and the time sink outputs of the header port and payload port, as well as screenshot of the complete flowgraph.
My issue might stem from a misunderstanding of the HPD parameters. This block seems to have been written for OFDM, but I'm using it for single carrier QPSK. If someone wouldn't mind looking over my parameters with singe carrier in mind to confirm I've set it up correct, I would be grateful. My header is 32 bits long and the payload is 160 bytes or 1280 bits long. The documentation for this block is not very clear on how the parameters relate to the system.
The output of the header port is perfect. It is the exactly what I expect. I'm showing 3 headers worth of samples in the sink plot, and we see exactly 3 headers with tags on the first sample of each header. In the payload length portion of the header, the value 160 exists for the payload length. My second question is, when generating the header using packet_header_default, is the payload represented in bytes or bits?
Now if you look at the payload out sink plot, you will see payloads separated by zeros. Each payload portion (the non-zero portion) is the exact length as my payload should be, 160 bytes or 1280 bits. But you can see zeros are allowed through after the 1280th bit and a second payload shows up without a tag. This leads me to believe the HPD block is interpreting the payload length to be 4 times larger then I intend it to be. What parameters am I mixing up to create this?