diff --git a/ais_tx_laforge_nogui.py b/ais_tx_laforge_nogui.py new file mode 100755 index 0000000..ad2259d --- /dev/null +++ b/ais_tx_laforge_nogui.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python +################################################## +# Gnuradio Python Flow Graph +# Title: Top Block +# Generated: Wed Apr 1 18:19:41 2015 +################################################## + +from gnuradio import analog +from gnuradio import blocks +from gnuradio import digital +from gnuradio import eng_notation +from gnuradio import gr +from gnuradio import uhd +from gnuradio.eng_option import eng_option +from gnuradio.filter import firdes +from optparse import OptionParser +import AISTX +import time +import wx + +class top_block(gr.top_block): + + def __init__(self): + gr.top_block.__init__(self) + ################################################## + # Variables + ################################################## + self.samp_rate = samp_rate = 326531 + self.channel_select = channel_select = 1 + self.bit_rate = bit_rate = 9600 + + ################################################## + # Blocks + ################################################## + self.uhd_usrp_sink_0 = uhd.usrp_sink( + ",".join(("", "")), + uhd.stream_args( + cpu_format="fc32", + channels=range(1), + ), + ) + self.uhd_usrp_sink_0.set_subdev_spec("A:A", 0) + self.uhd_usrp_sink_0.set_samp_rate(samp_rate) + self.uhd_usrp_sink_0.set_center_freq(162000000, 0) + self.uhd_usrp_sink_0.set_gain(0, 0) + self.uhd_usrp_sink_0.set_antenna("TX/RX", 0) + self.digital_gmsk_mod_0_0 = digital.gmsk_mod( + samples_per_symbol=int(samp_rate/bit_rate), + bt=0.4, + verbose=False, + log=False, + ) + self.blocks_socket_pdu_0 = blocks.socket_pdu("TCP_SERVER", "", "52001", 10000, False) + self.blocks_pdu_to_tagged_stream_0 = blocks.pdu_to_tagged_stream(blocks.byte_t, "packet_len") + self.blocks_multiply_xx_0_0 = blocks.multiply_vcc(1) + self.blocks_multiply_const_vxx_0_1_0 = blocks.multiply_const_vcc((0.9, )) + self.analog_sig_source_x_0_0 = analog.sig_source_c(samp_rate, analog.GR_SIN_WAVE, 25000, 255, 0) + self.AisEncoder_0 = AISTX.AisEncoder(True, 256) + + ################################################## + # Connections + ################################################## + self.connect((self.analog_sig_source_x_0_0, 0), (self.blocks_multiply_xx_0_0, 1)) + self.connect((self.blocks_multiply_xx_0_0, 0), (self.blocks_multiply_const_vxx_0_1_0, 0)) + self.connect((self.digital_gmsk_mod_0_0, 0), (self.blocks_multiply_xx_0_0, 0)) + self.connect((self.blocks_multiply_const_vxx_0_1_0, 0), (self.uhd_usrp_sink_0, 0)) + self.connect((self.blocks_pdu_to_tagged_stream_0, 0), (self.digital_gmsk_mod_0_0, 0)) + + ################################################## + # Asynch Message Connections + ################################################## + self.msg_connect(self.blocks_socket_pdu_0, "pdus", self.AisEncoder_0, "pdus") + self.msg_connect(self.AisEncoder_0, "pdus", self.blocks_pdu_to_tagged_stream_0, "pdus") + + + def get_samp_rate(self): + return self.samp_rate + + def set_samp_rate(self, samp_rate): + self.samp_rate = samp_rate + self.analog_sig_source_x_0_0.set_sampling_freq(self.samp_rate) + self.uhd_usrp_sink_0.set_samp_rate(self.samp_rate) + + def get_channel_select(self): + return self.channel_select + + def set_channel_select(self, channel_select): + self.channel_select = channel_select + + def get_bit_rate(self): + return self.bit_rate + + def set_bit_rate(self, bit_rate): + self.bit_rate = bit_rate + +if __name__ == '__main__': + parser = OptionParser(option_class=eng_option, usage="%prog: [options]") + (options, args) = parser.parse_args() + tb = top_block() + tb.start() + raw_input('Press Enter to quit: ') + tb.stop()