Writing packet payloads to file

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 Fri, Nov 16, 2012 at 6:28 PM, Colleen J. [email protected]
wrote:

message.
Class of 2013
Colleen,

Have you tried to use struck.unpack?

Tom

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 Wed, Nov 21, 2012 at 2:21 PM, Colleen J. [email protected]
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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs