Fri Dec 21 00:22:01 2018 options author Handiko window_size category [GRC Hier Blocks] comment description www.github.com/handiko/gr-APRS _enabled True _coordinate (8, 8) _rotation 0 generate_options qt_gui hier_block_src_path .: id APRS_RX_RTL max_nouts 0 qt_qss_theme realtime_scheduling run_command {python} -u {filename} run_options prompt run True sizing_mode fixed thread_safe_setters title APRS - With RTL-SDR dongle placement (0,0) variable_qtgui_range comment value -7 _enabled 1 _coordinate (128, 324) gui_hint 2,1,1,1 _rotation 0 id afgain label AF Gain (dB) min_len 100 orient Qt.Horizontal start -20 step 0.1 stop -1 rangeType float widget counter_slider variable comment _enabled True _coordinate (621, 4) _rotation 0 id baud value 1200 variable comment _enabled 1 _coordinate (538, 5) _rotation 0 id bb_rate value 192e3 variable comment _enabled 1 _coordinate (461, 6) _rotation 0 id ch_rate value 48e3 variable comment _enabled 1 _coordinate (376, 7) _rotation 0 id dev_ppm value 65 variable comment _enabled 1 _coordinate (276, 6) _rotation 0 id freq value 144.660e6 variable comment _enabled True _coordinate (909, 4) _rotation 0 id gmu value 0.175 variable comment _enabled True _coordinate (692, 4) _rotation 0 id mark value 1200 variable comment _enabled True _coordinate (833, 4) _rotation 0 id mu value 0.5 variable_qtgui_range comment value 25 _enabled True _coordinate (13, 323) gui_hint 2,0,1,1 _rotation 0 id rfgain label RF Gain (dB) min_len 100 orient Qt.Horizontal start 0 step 1 stop 49 rangeType float widget counter_slider variable comment _enabled True _coordinate (185, 7) _rotation 0 id samp_rate value 2.4e6 variable comment _enabled True _coordinate (762, 4) _rotation 0 id space value 2400 APRS_Rx baud baud alias comment affinity _enabled True _coordinate (864, 124) _rotation 0 gmu gmu id APRS_Rx_0 mark mark maxoutbuf 0 minoutbuf 0 mu mu samp_rate ch_rate space space analog_quadrature_demod_cf alias comment affinity _enabled 1 _coordinate (456, 100) _rotation 0 gain ch_rate/(2*math.pi*12e3/8.0) id analog_quadrature_demod_cf_0 maxoutbuf 0 minoutbuf 0 audio_sink alias comment affinity device_name _enabled 1 _coordinate (720, 76) _rotation 0 id audio_sink_0 num_inputs 1 ok_to_block True samp_rate 48000 blocks_message_debug alias comment affinity _enabled True _coordinate (1130, 337) _rotation 0 id blocks_message_debug_0 blocks_rotator_cc alias comment affinity _enabled True _coordinate (264, 196) _rotation 0 id blocks_rotator_cc_0 maxoutbuf 0 minoutbuf 0 phase_inc 0 blocks_socket_pdu alias comment affinity _enabled True _coordinate (1140, 238) _rotation 0 host id blocks_socket_pdu_0 mtu 10000 maxoutbuf 0 minoutbuf 0 port 52001 tcp_no_delay False type "TCP_SERVER" epy_block alias _io_cache ('HDLC to AX.25', 'blk', [], [('hdlc in', 'message', 1)], [('ax25 out', 'message', 1)], '\n Converts an array of bytes into a AX25Packet object.\n\n Connect to the "HDLC Deframer", or a block which emits a PMT tuple of\n (None, bytearray)\n ', []) _source_code """ Embedded Python Blocks: Each time this file is saved, GRC will instantiate the first class it finds to get ports and parameters of your block. The arguments to __init__ will be the parameters. All of them are required to have default values! """ import os, pty import struct import pmt import numpy as np from gnuradio import gr import packet class blk(gr.sync_block): # other base classes are basic_block, decim_block, interp_block """ Converts an array of bytes into a AX25Packet object. Connect to the "HDLC Deframer", or a block which emits a PMT tuple of (None, bytearray) """ def __init__(self): gr.sync_block.__init__(self, name="HDLC to AX.25", in_sig=None, out_sig=None) self.message_port_register_in(pmt.intern('hdlc in')) self.message_port_register_out(pmt.intern('ax25 out')) self.set_msg_handler(pmt.intern('hdlc in'), self.handle_msg) def handle_msg(self, msg_pmt): msg_pmt = pmt.pmt_to_python.pmt_to_python(msg_pmt) msg = bytearray(msg_pmt[1]) try: pkt = packet.from_bytes(msg) self.message_port_pub(pmt.intern('ax25 out'), pmt.cons(pmt.make_dict(), pmt.pmt_to_python.numpy_to_uvector(np.array([ord(c) for c in (packet.dump(pkt) + '\n')], np.uint8)))) except ValueError as e: print e def stop(self): gr.sync_block.stop(self) def work(self, input_items, output_items): in0 = input_items[0] # <+signal processing here+> return len(input_items[0]) comment Pyhton module which required to run this script (gr-APRS/Module/packet.py) need to be copied to the /usr/lib/python2.7 directory _enabled True _coordinate (1032, 64) _rotation 0 id epy_block_0 fft_filter_xxx alias comment affinity decim 1 _enabled 1 _coordinate (616, 156) _rotation 0 id fft_filter_xxx_1 maxoutbuf 0 minoutbuf 0 nthreads 1 samp_delay 0 taps firdes.band_pass(1,ch_rate,400,5e3,400,firdes.WIN_BLACKMAN) type fff import alias comment _enabled True _coordinate (993, 5) _rotation 0 id import_0 import import math pfb_decimator_ccf alias comment affinity decim int(samp_rate / bb_rate) _enabled True _coordinate (256, 268) _rotation 0 id pfb_decimator_ccf_0 maxoutbuf 0 minoutbuf 0 channel 0 samp_delay 0 atten 100 taps fft_filts True fft_rot True pfb_decimator_ccf alias comment affinity decim int(samp_rate / ch_rate) _enabled True _coordinate (240, 76) _rotation 0 id pfb_decimator_ccf_0_0 maxoutbuf 0 minoutbuf 0 channel 0 samp_delay 0 atten 100 taps fft_filts True fft_rot True qtgui_freq_sink_x autoscale False average 0.2 axislabels True bw 192e3 alias fc freq comment ctrlpanel False affinity _enabled 1 fftsize 2048 _coordinate (432, 364) gui_hint 0,0,1,2 _rotation 0 grid True id qtgui_freq_sink_x_0 legend False alpha1 0.8 color1 "blue" label1 width1 2 alpha10 1.0 color10 "dark blue" label10 width10 1 alpha2 1.0 color2 "red" label2 width2 1 alpha3 1.0 color3 "green" label3 width3 1 alpha4 1.0 color4 "black" label4 width4 1 alpha5 1.0 color5 "cyan" label5 width5 1 alpha6 1.0 color6 "magenta" label6 width6 1 alpha7 1.0 color7 "yellow" label7 width7 1 alpha8 1.0 color8 "dark red" label8 width8 1 alpha9 1.0 color9 "dark green" label9 width9 1 maxoutbuf 0 minoutbuf 0 name RF Spectrum nconnections 1 showports True freqhalf True tr_chan 0 tr_level 0.0 tr_mode qtgui.TRIG_MODE_FREE tr_tag "" type complex update_time 0.10 wintype firdes.WIN_BLACKMAN_hARRIS label Relative Gain ymax -10 ymin -120 units dB qtgui_freq_sink_x autoscale False average 0.2 axislabels True bw 8e3 alias fc 0 comment ctrlpanel False affinity _enabled 1 fftsize 1024 _coordinate (880, 364) gui_hint 1,2,2,1 _rotation 0 grid True id qtgui_freq_sink_x_0_0 legend False alpha1 0.8 color1 "blue" label1 width1 2 alpha10 1.0 color10 "dark blue" label10 width10 1 alpha2 1.0 color2 "red" label2 width2 1 alpha3 1.0 color3 "green" label3 width3 1 alpha4 1.0 color4 "black" label4 width4 1 alpha5 1.0 color5 "cyan" label5 width5 1 alpha6 1.0 color6 "magenta" label6 width6 1 alpha7 1.0 color7 "yellow" label7 width7 1 alpha8 1.0 color8 "dark red" label8 width8 1 alpha9 1.0 color9 "dark green" label9 width9 1 maxoutbuf 0 minoutbuf 0 name AF Spectrum nconnections 1 showports True freqhalf False tr_chan 0 tr_level 0.0 tr_mode qtgui.TRIG_MODE_FREE tr_tag "" type float update_time 0.10 wintype firdes.WIN_BLACKMAN_hARRIS label Relative Gain ymax 20 ymin -80 units dB qtgui_time_sink_x autoscale False axislabels True alias comment ctrlpanel False affinity entags True _enabled True _coordinate (888, 268) gui_hint 1,0,1,2 _rotation 0 grid True id qtgui_time_sink_x_0 legend False alpha1 1.0 color1 "blue" label1 marker1 -1 style1 1 width1 2 alpha10 1.0 color10 "blue" label10 marker10 -1 style10 1 width10 1 alpha2 1.0 color2 "red" label2 marker2 -1 style2 1 width2 1 alpha3 1.0 color3 "green" label3 marker3 -1 style3 1 width3 1 alpha4 1.0 color4 "black" label4 marker4 -1 style4 1 width4 1 alpha5 1.0 color5 "cyan" label5 marker5 -1 style5 1 width5 1 alpha6 1.0 color6 "magenta" label6 marker6 -1 style6 1 width6 1 alpha7 1.0 color7 "yellow" label7 marker7 -1 style7 1 width7 1 alpha8 1.0 color8 "dark red" label8 marker8 -1 style8 1 width8 1 alpha9 1.0 color9 "dark green" label9 marker9 -1 style9 1 width9 1 name Clock Recovery nconnections 1 size 256 srate 1200 stemplot False tr_chan 0 tr_delay 0 tr_level 0.0 tr_mode qtgui.TRIG_MODE_FREE tr_slope qtgui.TRIG_SLOPE_POS tr_tag "" type float update_time 0.10 ylabel Amplitude yunit "" ymax 2.1 ymin -2.1 qtgui_waterfall_sink_x axislabels True bw 192e3 alias fc 0 comment affinity _enabled 1 fftsize 4096/2 _coordinate (488, 260) gui_hint 0,2,1,1 _rotation 0 grid False id qtgui_waterfall_sink_x_0 int_max -20 int_min -105 legend False alpha1 1.0 color1 6 label1 alpha10 1.0 color10 0 label10 alpha2 1.0 color2 0 label2 alpha3 1.0 color3 0 label3 alpha4 1.0 color4 0 label4 alpha5 1.0 color5 0 label5 alpha6 1.0 color6 0 label6 alpha7 1.0 color7 0 label7 alpha8 1.0 color8 0 label8 alpha9 1.0 color9 0 label9 maxoutbuf 0 minoutbuf 0 name RF Spectrum nconnections 1 showports True freqhalf True type complex update_time 0.10 wintype firdes.WIN_BLACKMAN_hARRIS rational_resampler_xxx alias comment affinity decim int(ch_rate) _enabled True fbw 0 _coordinate (688, 364) _rotation 0 id rational_resampler_xxx_0 interp 8000 maxoutbuf 0 minoutbuf 0 taps type fff rtlsdr_source alias ant0 bb_gain0 20 bw0 samp_rate dc_offset_mode0 0 corr0 dev_ppm freq0 freq gain_mode0 False if_gain0 20 iq_balance_mode0 0 gain0 49 ant10 bb_gain10 20 bw10 0 dc_offset_mode10 0 corr10 0 freq10 100e6 gain_mode10 False if_gain10 20 iq_balance_mode10 0 gain10 10 ant11 bb_gain11 20 bw11 0 dc_offset_mode11 0 corr11 0 freq11 100e6 gain_mode11 False if_gain11 20 iq_balance_mode11 0 gain11 10 ant12 bb_gain12 20 bw12 0 dc_offset_mode12 0 corr12 0 freq12 100e6 gain_mode12 False if_gain12 20 iq_balance_mode12 0 gain12 10 ant13 bb_gain13 20 bw13 0 dc_offset_mode13 0 corr13 0 freq13 100e6 gain_mode13 False if_gain13 20 iq_balance_mode13 0 gain13 10 ant14 bb_gain14 20 bw14 0 dc_offset_mode14 0 corr14 0 freq14 100e6 gain_mode14 False if_gain14 20 iq_balance_mode14 0 gain14 10 ant15 bb_gain15 20 bw15 0 dc_offset_mode15 0 corr15 0 freq15 100e6 gain_mode15 False if_gain15 20 iq_balance_mode15 0 gain15 10 ant16 bb_gain16 20 bw16 0 dc_offset_mode16 0 corr16 0 freq16 100e6 gain_mode16 False if_gain16 20 iq_balance_mode16 0 gain16 10 ant17 bb_gain17 20 bw17 0 dc_offset_mode17 0 corr17 0 freq17 100e6 gain_mode17 False if_gain17 20 iq_balance_mode17 0 gain17 10 ant18 bb_gain18 20 bw18 0 dc_offset_mode18 0 corr18 0 freq18 100e6 gain_mode18 False if_gain18 20 iq_balance_mode18 0 gain18 10 ant19 bb_gain19 20 bw19 0 dc_offset_mode19 0 corr19 0 freq19 100e6 gain_mode19 False if_gain19 20 iq_balance_mode19 0 gain19 10 ant1 bb_gain1 20 bw1 0 dc_offset_mode1 0 corr1 0 freq1 100e6 gain_mode1 False if_gain1 20 iq_balance_mode1 0 gain1 10 ant20 bb_gain20 20 bw20 0 dc_offset_mode20 0 corr20 0 freq20 100e6 gain_mode20 False if_gain20 20 iq_balance_mode20 0 gain20 10 ant21 bb_gain21 20 bw21 0 dc_offset_mode21 0 corr21 0 freq21 100e6 gain_mode21 False if_gain21 20 iq_balance_mode21 0 gain21 10 ant22 bb_gain22 20 bw22 0 dc_offset_mode22 0 corr22 0 freq22 100e6 gain_mode22 False if_gain22 20 iq_balance_mode22 0 gain22 10 ant23 bb_gain23 20 bw23 0 dc_offset_mode23 0 corr23 0 freq23 100e6 gain_mode23 False if_gain23 20 iq_balance_mode23 0 gain23 10 ant24 bb_gain24 20 bw24 0 dc_offset_mode24 0 corr24 0 freq24 100e6 gain_mode24 False if_gain24 20 iq_balance_mode24 0 gain24 10 ant25 bb_gain25 20 bw25 0 dc_offset_mode25 0 corr25 0 freq25 100e6 gain_mode25 False if_gain25 20 iq_balance_mode25 0 gain25 10 ant26 bb_gain26 20 bw26 0 dc_offset_mode26 0 corr26 0 freq26 100e6 gain_mode26 False if_gain26 20 iq_balance_mode26 0 gain26 10 ant27 bb_gain27 20 bw27 0 dc_offset_mode27 0 corr27 0 freq27 100e6 gain_mode27 False if_gain27 20 iq_balance_mode27 0 gain27 10 ant28 bb_gain28 20 bw28 0 dc_offset_mode28 0 corr28 0 freq28 100e6 gain_mode28 False if_gain28 20 iq_balance_mode28 0 gain28 10 ant29 bb_gain29 20 bw29 0 dc_offset_mode29 0 corr29 0 freq29 100e6 gain_mode29 False if_gain29 20 iq_balance_mode29 0 gain29 10 ant2 bb_gain2 20 bw2 0 dc_offset_mode2 0 corr2 0 freq2 100e6 gain_mode2 False if_gain2 20 iq_balance_mode2 0 gain2 10 ant30 bb_gain30 20 bw30 0 dc_offset_mode30 0 corr30 0 freq30 100e6 gain_mode30 False if_gain30 20 iq_balance_mode30 0 gain30 10 ant31 bb_gain31 20 bw31 0 dc_offset_mode31 0 corr31 0 freq31 100e6 gain_mode31 False if_gain31 20 iq_balance_mode31 0 gain31 10 ant3 bb_gain3 20 bw3 0 dc_offset_mode3 0 corr3 0 freq3 100e6 gain_mode3 False if_gain3 20 iq_balance_mode3 0 gain3 10 ant4 bb_gain4 20 bw4 0 dc_offset_mode4 0 corr4 0 freq4 100e6 gain_mode4 False if_gain4 20 iq_balance_mode4 0 gain4 10 ant5 bb_gain5 20 bw5 0 dc_offset_mode5 0 corr5 0 freq5 100e6 gain_mode5 False if_gain5 20 iq_balance_mode5 0 gain5 10 ant6 bb_gain6 20 bw6 0 dc_offset_mode6 0 corr6 0 freq6 100e6 gain_mode6 False if_gain6 20 iq_balance_mode6 0 gain6 10 ant7 bb_gain7 20 bw7 0 dc_offset_mode7 0 corr7 0 freq7 100e6 gain_mode7 False if_gain7 20 iq_balance_mode7 0 gain7 10 ant8 bb_gain8 20 bw8 0 dc_offset_mode8 0 corr8 0 freq8 100e6 gain_mode8 False if_gain8 20 iq_balance_mode8 0 gain8 10 ant9 bb_gain9 20 bw9 0 dc_offset_mode9 0 corr9 0 freq9 100e6 gain_mode9 False if_gain9 20 iq_balance_mode9 0 gain9 10 comment affinity args _enabled True _coordinate (8, 124) _rotation 0 id rtlsdr_source_0 maxoutbuf 0 clock_source0 time_source0 clock_source1 time_source1 clock_source2 time_source2 clock_source3 time_source3 clock_source4 time_source4 clock_source5 time_source5 clock_source6 time_source6 clock_source7 time_source7 minoutbuf 0 nchan 1 num_mboards 1 type fc32 sample_rate samp_rate sync APRS_Rx_0 qtgui_time_sink_x_0 0 0 APRS_Rx_0 epy_block_0 HDLC hdlc in analog_quadrature_demod_cf_0 fft_filter_xxx_1 0 0 blocks_rotator_cc_0 pfb_decimator_ccf_0 0 0 blocks_rotator_cc_0 pfb_decimator_ccf_0_0 0 0 epy_block_0 blocks_message_debug_0 ax25 out print epy_block_0 blocks_socket_pdu_0 ax25 out pdus fft_filter_xxx_1 APRS_Rx_0 0 0 fft_filter_xxx_1 audio_sink_0 0 0 fft_filter_xxx_1 rational_resampler_xxx_0 0 0 pfb_decimator_ccf_0 qtgui_freq_sink_x_0 0 0 pfb_decimator_ccf_0 qtgui_waterfall_sink_x_0 0 0 pfb_decimator_ccf_0_0 analog_quadrature_demod_cf_0 0 0 rational_resampler_xxx_0 qtgui_freq_sink_x_0_0 0 0 rtlsdr_source_0 blocks_rotator_cc_0 0 0