Dear all,
I'm trying to transmit data packets with variable length through GNURadio Companion v3.7.4 and USRP N210 (LTFX&LFRX). Firstly I found tunnel.py in repository but that file has not been updated for almost 3 years. And when I ran it, an import error with no receiver path module occurs.
Now I'm searching an approach to build an unidirectional link between two hosts. One PC can transmit any size packets to the other one though the virtual interfaces created by TUNTAP PDUs.
By referring to an example for testing Header/Payload Demux, I work out a flow graph forwarding variable length packets through two virtual interfaces created in the same host. For the flow graph, "Test_Flow_Graph.grc" file is attached.
Nevertheless, since the transmitter and receiver are performed in the same host in one flow graph, length tags can be passed through Tagged Stream Mux block and Header/Payload Demux block. And the tags will act as the mark to tell the receiver where is the first byte of a packet. But if transmitter and receiver are separated to two hosts and they are connected by USRP, receiver can only obtain data streams without tags. To fix this problem, I try to put a constant "1" source to the trigger port of Header/Payload demux. Actually in this way receiver can extract the payload by explicitly calibrating the header, however, if one byte is missed, all data stream will shift, which will cause Header/Payload demux block unable to detect the correct header. The transmitter.grc and receiver.grc are also attached.
Can someone help me with how to synchronize the sender and receiver without utilization of OFDM? The synchronization means that the receiver can tell which byte is the initial byte of each packet.
BTW, Can I use the length tag's value as the payload value of packet encoder block? If it's work, I think packet encoder/decoder would do the synchronization by access code.