End of stream detection missing
Since our implementation doesn't use tags, there is no way the encoder block could tell there's no more data to encode. This results in missing End of Transmission frame. I suspect the Frame Number of the last frame doesn't get its MSB set to 1 either.
I don't suppose there is a way to implement a PTT button in GNURadio blocks that can signal that sort of thing, or if you did if it would require significant code changes to implement.
PTT signal is not needed. It is enough that the data source would mark the end of the data stream with a tag.
See https://github.com/jmfriedt/gr-m17/commit/0b5e5e425fba77db956932d8cd29c1e94324bf9b for an attempt at adding message passing to send an end-of-transmission information to the transmitter block. The GNU Radio flowgraph does not seem to be terminated when the block returns -1 though as would be expected from https://lists.gnu.org/archive/html/discuss-gnuradio/2017-01/msg00034.html whose outcome is not clear.
Is there a specific reason, that the implementation does not use tags? From what I know about GNU-Radio now, this looks like the most traight forward approach to me.
The tag might also be set by a different PTT block, which might read a serial or whatever. It could then propagate into the encoder block.
From my experience, message passing into the block by a separate stream might have a considerable amount of latency and synchronization issues. As this seem to only affect the EOT, latency might not be a big issue though.
Fixed in the devbranch.