options: parameters: author: '' catch_exceptions: 'True' category: '[GRC Hier Blocks]' cmake_opt: '' comment: '' copyright: '' description: '' gen_cmake: 'On' gen_linking: dynamic generate_options: qt_gui hier_block_src_path: '.:' id: data_saver max_nouts: '0' output_language: python placement: (0,0) qt_qss_theme: '' realtime_scheduling: '' run: 'True' run_command: '{python} -u {filename}' run_options: prompt sizing_mode: fixed thread_safe_setters: '' title: data_saver window_size: '' states: bus_sink: false bus_source: false bus_structure: null coordinate: [8, 8] rotation: 0 state: enabled blocks: - name: freq id: variable parameters: comment: '' value: 1.160e9 states: bus_sink: false bus_source: false bus_structure: null coordinate: [56, 307] rotation: 0 state: true - name: samp_rate id: variable parameters: comment: '' value: 20e6 states: bus_sink: false bus_source: false bus_structure: null coordinate: [56, 212] rotation: 0 state: enabled - name: epy_block_0 id: epy_block parameters: Delay: '0.1' FileTag: '''DJI_3''' SaveDir: '''D:/Dataset/1160''' SplitSize: '400000' _source_code: "\"\"\"\nEmbedded Python Blocks:\n\nEach time this file is saved,\ \ GRC will instantiate the first class it finds\nto get ports and parameters\ \ of your block. The arguments to __init__ will\nbe the parameters. All of\ \ them are required to have default values!\n\"\"\"\n\nimport numpy as np\n\ from gnuradio import gr\nimport os\nimport time\nimport matplotlib.pyplot as\ \ plt\nimport sys\nimport gc\n\nclass Simsi_Sink(gr.sync_block): # other base\ \ classes are basic_block, decim_block, interp_block\n \"\"\"Embedded Python\ \ Block example - a simple multiply const\"\"\"\n\n def __init__(self, SaveDir=\"\ ./signal\", FileTag=\"fragment_\", SplitSize=1000000, Delay=2): # only default\ \ arguments here\n \"\"\"arguments to this function show up as parameters\ \ in GRC\"\"\"\n gr.sync_block.__init__(\n self,\n \ \ name='Simsi_Sink', # will show up in GRC\n in_sig=[np.complex64],\n\ \ out_sig=None#[np.complex64]\n )\n self.Delay = Delay\n\ \ self.FileTag = FileTag\n self.SplitSize = SplitSize\n \ \ \n self.SaveDir = SaveDir\n if not os.path.exists(self.SaveDir)\ \ and self.SaveDir == \"./signal\":\n os.mkdir(\"signal\")\n \ \ \n self.it = 0\n self.Signal = np.array([], dtype=np.float32)\n\ \ self.data_dir = SaveDir\n\n self.last_file_path = self.data_dir\ \ + \"/\" + self.FileTag + str(self.it)\n self.last_fd = open(self.last_file_path,\ \ \"wb\")\n self.last_file_len = 0\n\n\n self.reading_in_progress_file_path\ \ = self.data_dir + \"/reading_in_progress\"\n self.reading_in_progress_file_fd\ \ = open(self.reading_in_progress_file_path, \"wb\")\n\n print(self.Signal)\n\ \ print(self.data_dir)\n # if an attribute with the same name\ \ as a parameter is found,\n # a callback is registered (properties work,\ \ too).\n\n def work(self, input_items, output_items):\n \"\"\"example:\ \ multiply with constant\"\"\"\n length = len(input_items[0])\n \ \ self.last_file_len += length\n\n if self.last_file_len > self.SplitSize:\n\ \ print(\"Saving file: \" + str(self.last_file_path))\n \ \ length = length - (self.last_file_len - self.SplitSize)\n self.last_fd.write(input_items[0][0:length].copy())\n\ \ self.it += 1\n self.last_file_len = 0\n self.last_file_path\ \ = self.data_dir + '/' + self.FileTag + str(self.it)\n self.last_fd.close()\n\ \ self.reading_in_progress_file_fd.close()\n os.remove(self.reading_in_progress_file_path)\n\ \ time.sleep(self.Delay)\n self.reading_in_progress_file_fd\ \ = open(self.reading_in_progress_file_path, \"wb\")\n self.last_fd\ \ = open(self.last_file_path, \"wb\")\n \n else:\n \ \ self.last_fd.write(input_items[0].copy())\n\n\n return len(input_items[0])\n" affinity: '' alias: '' comment: '' maxoutbuf: '0' minoutbuf: '0' states: _io_cache: ('Simsi_Sink', 'Simsi_Sink', [('SaveDir', "'./signal'"), ('FileTag', "'fragment_'"), ('SplitSize', '1000000'), ('Delay', '2')], [('0', 'complex', 1)], [], 'Embedded Python Block example - a simple multiply const', ['Delay', 'FileTag', 'SaveDir', 'SplitSize']) bus_sink: false bus_source: false bus_structure: null coordinate: [728, 336.0] rotation: 0 state: enabled - name: osmosdr_source_1 id: osmosdr_source parameters: affinity: '' alias: '' ant0: '' ant1: '' ant10: '' ant11: '' ant12: '' ant13: '' ant14: '' ant15: '' ant16: '' ant17: '' ant18: '' ant19: '' ant2: '' ant20: '' ant21: '' ant22: '' ant23: '' ant24: '' ant25: '' ant26: '' ant27: '' ant28: '' ant29: '' ant3: '' ant30: '' ant31: '' ant4: '' ant5: '' ant6: '' ant7: '' ant8: '' ant9: '' args: hackrf=0 bb_gain0: '36' bb_gain1: '20' bb_gain10: '20' bb_gain11: '20' bb_gain12: '20' bb_gain13: '20' bb_gain14: '20' bb_gain15: '20' bb_gain16: '20' bb_gain17: '20' bb_gain18: '20' bb_gain19: '20' bb_gain2: '20' bb_gain20: '20' bb_gain21: '20' bb_gain22: '20' bb_gain23: '20' bb_gain24: '20' bb_gain25: '20' bb_gain26: '20' bb_gain27: '20' bb_gain28: '20' bb_gain29: '20' bb_gain3: '20' bb_gain30: '20' bb_gain31: '20' bb_gain4: '20' bb_gain5: '20' bb_gain6: '20' bb_gain7: '20' bb_gain8: '20' bb_gain9: '20' bw0: '0' bw1: '0' bw10: '0' bw11: '0' bw12: '0' bw13: '0' bw14: '0' bw15: '0' bw16: '0' bw17: '0' bw18: '0' bw19: '0' bw2: '0' bw20: '0' bw21: '0' bw22: '0' bw23: '0' bw24: '0' bw25: '0' bw26: '0' bw27: '0' bw28: '0' bw29: '0' bw3: '0' bw30: '0' bw31: '0' bw4: '0' bw5: '0' bw6: '0' bw7: '0' bw8: '0' bw9: '0' clock_source0: '' clock_source1: '' clock_source2: '' clock_source3: '' clock_source4: '' clock_source5: '' clock_source6: '' clock_source7: '' comment: '' corr0: '0' corr1: '0' corr10: '0' corr11: '0' corr12: '0' corr13: '0' corr14: '0' corr15: '0' corr16: '0' corr17: '0' corr18: '0' corr19: '0' corr2: '0' corr20: '0' corr21: '0' corr22: '0' corr23: '0' corr24: '0' corr25: '0' corr26: '0' corr27: '0' corr28: '0' corr29: '0' corr3: '0' corr30: '0' corr31: '0' corr4: '0' corr5: '0' corr6: '0' corr7: '0' corr8: '0' corr9: '0' dc_offset_mode0: '0' dc_offset_mode1: '0' dc_offset_mode10: '0' dc_offset_mode11: '0' dc_offset_mode12: '0' dc_offset_mode13: '0' dc_offset_mode14: '0' dc_offset_mode15: '0' dc_offset_mode16: '0' dc_offset_mode17: '0' dc_offset_mode18: '0' dc_offset_mode19: '0' dc_offset_mode2: '0' dc_offset_mode20: '0' dc_offset_mode21: '0' dc_offset_mode22: '0' dc_offset_mode23: '0' dc_offset_mode24: '0' dc_offset_mode25: '0' dc_offset_mode26: '0' dc_offset_mode27: '0' dc_offset_mode28: '0' dc_offset_mode29: '0' dc_offset_mode3: '0' dc_offset_mode30: '0' dc_offset_mode31: '0' dc_offset_mode4: '0' dc_offset_mode5: '0' dc_offset_mode6: '0' dc_offset_mode7: '0' dc_offset_mode8: '0' dc_offset_mode9: '0' freq0: freq freq1: 100e6 freq10: 100e6 freq11: 100e6 freq12: 100e6 freq13: 100e6 freq14: 100e6 freq15: 100e6 freq16: 100e6 freq17: 100e6 freq18: 100e6 freq19: 100e6 freq2: 100e6 freq20: 100e6 freq21: 100e6 freq22: 100e6 freq23: 100e6 freq24: 100e6 freq25: 100e6 freq26: 100e6 freq27: 100e6 freq28: 100e6 freq29: 100e6 freq3: 100e6 freq30: 100e6 freq31: 100e6 freq4: 100e6 freq5: 100e6 freq6: 100e6 freq7: 100e6 freq8: 100e6 freq9: 100e6 gain0: '12' gain1: '10' gain10: '10' gain11: '10' gain12: '10' gain13: '10' gain14: '10' gain15: '10' gain16: '10' gain17: '10' gain18: '10' gain19: '10' gain2: '10' gain20: '10' gain21: '10' gain22: '10' gain23: '10' gain24: '10' gain25: '10' gain26: '10' gain27: '10' gain28: '10' gain29: '10' gain3: '10' gain30: '10' gain31: '10' gain4: '10' gain5: '10' gain6: '10' gain7: '10' gain8: '10' gain9: '10' gain_mode0: 'False' gain_mode1: 'False' gain_mode10: 'False' gain_mode11: 'False' gain_mode12: 'False' gain_mode13: 'False' gain_mode14: 'False' gain_mode15: 'False' gain_mode16: 'False' gain_mode17: 'False' gain_mode18: 'False' gain_mode19: 'False' gain_mode2: 'False' gain_mode20: 'False' gain_mode21: 'False' gain_mode22: 'False' gain_mode23: 'False' gain_mode24: 'False' gain_mode25: 'False' gain_mode26: 'False' gain_mode27: 'False' gain_mode28: 'False' gain_mode29: 'False' gain_mode3: 'False' gain_mode30: 'False' gain_mode31: 'False' gain_mode4: 'False' gain_mode5: 'False' gain_mode6: 'False' gain_mode7: 'False' gain_mode8: 'False' gain_mode9: 'False' if_gain0: '30' if_gain1: '20' if_gain10: '20' if_gain11: '20' if_gain12: '20' if_gain13: '20' if_gain14: '20' if_gain15: '20' if_gain16: '20' if_gain17: '20' if_gain18: '20' if_gain19: '20' if_gain2: '20' if_gain20: '20' if_gain21: '20' if_gain22: '20' if_gain23: '20' if_gain24: '20' if_gain25: '20' if_gain26: '20' if_gain27: '20' if_gain28: '20' if_gain29: '20' if_gain3: '20' if_gain30: '20' if_gain31: '20' if_gain4: '20' if_gain5: '20' if_gain6: '20' if_gain7: '20' if_gain8: '20' if_gain9: '20' iq_balance_mode0: '0' iq_balance_mode1: '0' iq_balance_mode10: '0' iq_balance_mode11: '0' iq_balance_mode12: '0' iq_balance_mode13: '0' iq_balance_mode14: '0' iq_balance_mode15: '0' iq_balance_mode16: '0' iq_balance_mode17: '0' iq_balance_mode18: '0' iq_balance_mode19: '0' iq_balance_mode2: '0' iq_balance_mode20: '0' iq_balance_mode21: '0' iq_balance_mode22: '0' iq_balance_mode23: '0' iq_balance_mode24: '0' iq_balance_mode25: '0' iq_balance_mode26: '0' iq_balance_mode27: '0' iq_balance_mode28: '0' iq_balance_mode29: '0' iq_balance_mode3: '0' iq_balance_mode30: '0' iq_balance_mode31: '0' iq_balance_mode4: '0' iq_balance_mode5: '0' iq_balance_mode6: '0' iq_balance_mode7: '0' iq_balance_mode8: '0' iq_balance_mode9: '0' maxoutbuf: '0' minoutbuf: '0' nchan: '1' num_mboards: '1' sample_rate: samp_rate sync: sync time_source0: '' time_source1: '' time_source2: '' time_source3: '' time_source4: '' time_source5: '' time_source6: '' time_source7: '' type: fc32 states: bus_sink: false bus_source: false bus_structure: null coordinate: [244, 164] rotation: 0 state: true - name: qtgui_time_sink_x_0_1 id: qtgui_time_sink_x parameters: affinity: '' alias: '' alpha1: '1.0' alpha10: '1.0' alpha2: '1.0' alpha3: '1.0' alpha4: '1.0' alpha5: '1.0' alpha6: '1.0' alpha7: '1.0' alpha8: '1.0' alpha9: '1.0' autoscale: 'False' axislabels: 'True' color1: blue color10: dark blue color2: red color3: green color4: black color5: cyan color6: magenta color7: yellow color8: dark red color9: dark green comment: '' ctrlpanel: 'False' entags: 'True' grid: 'False' gui_hint: '' label1: '' label10: '' label2: '' label3: '' label4: '' label5: '' label6: '' label7: '' label8: '' label9: '' legend: 'True' marker1: '-1' marker10: '-1' marker2: '-1' marker3: '-1' marker4: '-1' marker5: '-1' marker6: '-1' marker7: '-1' marker8: '-1' marker9: '-1' name: '""' nconnections: '1' size: '1000000' srate: samp_rate stemplot: 'False' style1: '1' style10: '1' style2: '1' style3: '1' style4: '1' style5: '1' style6: '1' style7: '1' style8: '1' style9: '1' 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: complex update_time: '0.01' width1: '1' width10: '1' width2: '1' width3: '1' width4: '1' width5: '1' width6: '1' width7: '1' width8: '1' width9: '1' ylabel: Amplitude ymax: '2' ymin: '-2' yunit: '""' states: bus_sink: false bus_source: false bus_structure: null coordinate: [720, 92.0] rotation: 0 state: enabled - name: qtgui_waterfall_sink_x_0 id: qtgui_waterfall_sink_x parameters: affinity: '' alias: '' alpha1: '1.0' alpha10: '1.0' alpha2: '1.0' alpha3: '1.0' alpha4: '1.0' alpha5: '1.0' alpha6: '1.0' alpha7: '1.0' alpha8: '1.0' alpha9: '1.0' axislabels: 'True' bw: samp_rate color1: '0' color10: '0' color2: '0' color3: '0' color4: '0' color5: '0' color6: '0' color7: '0' color8: '0' color9: '0' comment: '' fc: freq fftsize: '32768' freqhalf: 'True' grid: 'False' gui_hint: '' int_max: '10' int_min: '-140' label1: '' label10: '' label2: '' label3: '' label4: '' label5: '' label6: '' label7: '' label8: '' label9: '' legend: 'True' maxoutbuf: '0' minoutbuf: '0' name: '""' nconnections: '1' showports: 'False' type: complex update_time: '0.10' wintype: window.WIN_HAMMING states: bus_sink: false bus_source: false bus_structure: null coordinate: [1040, 172.0] rotation: 0 state: enabled connections: - [osmosdr_source_1, '0', epy_block_0, '0'] - [osmosdr_source_1, '0', qtgui_time_sink_x_0_1, '0'] - [osmosdr_source_1, '0', qtgui_waterfall_sink_x_0, '0'] metadata: file_format: 1 grc_version: 3.10.9.2