Hello all, I am researching a new coding algorithm. I am transmitting and coding a text file using payload_tx.py and then write the binary of the packet payload to a file to do offline analysis. I am having trouble writing packet payloads to file, however, because the I can't seem to find a way to get data out of a gr_message except for the to_string() method. If I try and convert the string back to binary (my attempt involved python's binascii module), I get an "Error: illegal char" message. This makes sense, since the data is still coded, and should not be a valid ascii string. But how can I get around this problem and write binary to file?
on 2012-11-17 00:29
on 2012-11-20 19:09
On Fri, Nov 16, 2012 at 6:28 PM, Colleen Josephson <firstname.lastname@example.org> wrote: > message. > Class of 2013 Colleen, Have you tried to use struck.unpack? Tom
on 2012-11-21 20:22
Thanks for the response. I'm not sure I understand how struct.unpack will help, since the only data I can get seems to already be a python string. If I transmit a packet with "hello world" as my payload, the only thing I ever see in the receive script is the python string "hello world". I don't know how to access the intermediate binary representation.
on 2012-11-24 16:31
On Wed, Nov 21, 2012 at 2:21 PM, Colleen Josephson <email@example.com> wrote: > Thanks for the response. I'm not sure I understand how struct.unpack will > help, since the only data I can get seems to already be a python string. If > I transmit a packet with "hello world" as my payload, the only thing I ever > see in the receive script is the python string "hello world". I don't know > how to access the intermediate binary representation. Colleen, Take a look at how we handle this stuff in gr-digital. Specifically, in gr-digital/python/pkt.py, the method run() of _queue_watcher_thread extracts the message contents as a string and passes it to packet_utils.unmake_packet (in packet_utils.py). We have a bunch of helper functions in there to handle the string data (such as string_to_hex_list and the like). Finally, the paylad (As a string) is passed up to the example scripts like gr-digital/examples/narrowband/benchmark_rx.py where the rx_callback metho uses struct.unpack to extract the packet number, which is non-ASCII. Hopefully, following the way we handle the messages as strings and the various methods we use to manipulate them here will help you with your tasks. Tom