Add support for passing manually various device parameters

All flowgraphs now support user defined parameters for most of their
configuration capabilities. These include:
* RF gain
* IF gain
* BB gain
* Custom device arguments for setups with multiple SDRs. These
coresponds to the 'Device arguments' field of the Osmocom source block.
* Antenna selection for devices with multiple antennas (USRPs, etc)

Changing sampling rate is not supported (yet).

For listing the arguments just execute <flowgraph> --help in a terminal
window.
This commit is contained in:
Manolis Surligas 2017-07-20 22:37:14 +03:00
parent cc9a305ebd
commit f3de63caf3
12 changed files with 1842 additions and 165 deletions

View File

@ -178,7 +178,7 @@ SDR received samples</value>
</param>
<param>
<key>_coordinate</key>
<value>(1480, 988)</value>
<value>(805, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -392,6 +392,92 @@ TX sampling rate</value>
<value>0</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(382, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>antenna</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_antenna</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(295, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bb_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_bb_gain</value>
</param>
</block>
<block>
<key>rational_resampler_xxx</key>
<param>
@ -467,7 +553,50 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(64, 984)</value>
<value>(47, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>dev_args</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_dev_args</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(47, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -510,7 +639,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(744, 988)</value>
<value>(494, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -596,6 +725,49 @@ TX sampling rate</value>
<value>ccc</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(215, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>if_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_if_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -648,11 +820,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>ant0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['antenna']</value>
<value>satnogs.handle_rx_antenna(rx_sdr_device, antenna)</value>
</param>
<param>
<key>bb_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['bb_gain']</value>
<value>satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)</value>
</param>
<param>
<key>bw0</key>
@ -676,7 +848,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>if_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['if_gain']</value>
<value>satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)</value>
</param>
<param>
<key>iq_balance_mode0</key>
@ -684,7 +856,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['rf_gain']</value>
<value>satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)</value>
</param>
<param>
<key>ant10</key>
@ -1936,7 +2108,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>args</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['dev_arg']</value>
<value>satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)</value>
</param>
<param>
<key>_enabled</key>
@ -1944,7 +2116,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(16, 376)</value>
<value>(15, 311)</value>
</param>
<param>
<key>_rotation</key>
@ -2063,7 +2235,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(1104, 996)</value>
<value>(734, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -2165,7 +2337,50 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(472, 984)</value>
<value>(143, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rf_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_rf_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(327, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -2208,7 +2423,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(616, 984)</value>
<value>(414, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -2251,7 +2466,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(312, 984)</value>
<value>(215, 857)</value>
</param>
<param>
<key>_rotation</key>
@ -2498,7 +2713,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(872, 988)</value>
<value>(598, 857)</value>
</param>
<param>
<key>_rotation</key>

View File

@ -178,7 +178,7 @@ SDR received samples</value>
</param>
<param>
<key>_coordinate</key>
<value>(1480, 988)</value>
<value>(845, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -475,6 +475,92 @@ TX sampling rate</value>
<value>analog.GR_COS_WAVE</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(398, 1065)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>antenna</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_antenna</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(311, 1065)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bb_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_bb_gain</value>
</param>
</block>
<block>
<key>rational_resampler_xxx</key>
<param>
@ -673,6 +759,49 @@ tone. This tone is typically 500-800 Hz.</value>
<value>1500</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(63, 1065)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>dev_args</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_dev_args</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -732,7 +861,7 @@ tone. This tone is typically 500-800 Hz.</value>
</param>
<param>
<key>_coordinate</key>
<value>(744, 988)</value>
<value>(534, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -818,6 +947,49 @@ tone. This tone is typically 500-800 Hz.</value>
<value>ccc</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(231, 1065)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>if_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_if_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -945,11 +1117,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>ant0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['antenna']</value>
<value>satnogs.handle_rx_antenna(rx_sdr_device, antenna)</value>
</param>
<param>
<key>bb_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['bb_gain']</value>
<value>satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)</value>
</param>
<param>
<key>bw0</key>
@ -973,7 +1145,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>if_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['if_gain']</value>
<value>satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)</value>
</param>
<param>
<key>iq_balance_mode0</key>
@ -981,7 +1153,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['rf_gain']</value>
<value>satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)</value>
</param>
<param>
<key>ant10</key>
@ -2233,7 +2405,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>args</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['dev_arg']</value>
<value>satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)</value>
</param>
<param>
<key>_enabled</key>
@ -2241,7 +2413,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(16, 376)</value>
<value>(15, 359)</value>
</param>
<param>
<key>_rotation</key>
@ -2360,7 +2532,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(1104, 996)</value>
<value>(773, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2403,7 +2575,50 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(472, 984)</value>
<value>(159, 1065)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rf_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_rf_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(351, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2446,7 +2661,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(616, 984)</value>
<value>(446, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2489,7 +2704,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(312, 984)</value>
<value>(231, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2787,7 +3002,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(872, 988)</value>
<value>(638, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2868,12 +3083,6 @@ we shift the LO a little further</value>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>osmosdr_source_0</source_block_id>
<sink_block_id>satnogs_doppler_correction_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>satnogs_coarse_doppler_correction_cc_0</source_block_id>
<sink_block_id>freq_xlating_fir_filter_xxx_0</sink_block_id>

View File

@ -178,7 +178,7 @@ SDR received samples</value>
</param>
<param>
<key>_coordinate</key>
<value>(1480, 988)</value>
<value>(805, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -475,6 +475,92 @@ TX sampling rate</value>
<value>analog.GR_COS_WAVE</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(398, 1081)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>antenna</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_antenna</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(311, 1081)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bb_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_bb_gain</value>
</param>
</block>
<block>
<key>rational_resampler_xxx</key>
<param>
@ -673,6 +759,49 @@ tone. This tone is typically 500-800 Hz.</value>
<value>700</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(63, 1081)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>dev_args</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_dev_args</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -732,7 +861,7 @@ tone. This tone is typically 500-800 Hz.</value>
</param>
<param>
<key>_coordinate</key>
<value>(744, 988)</value>
<value>(494, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -818,6 +947,49 @@ tone. This tone is typically 500-800 Hz.</value>
<value>ccc</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(231, 1081)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>if_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_if_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -945,11 +1117,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>ant0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['antenna']</value>
<value>satnogs.handle_rx_antenna(rx_sdr_device, antenna)</value>
</param>
<param>
<key>bb_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['bb_gain']</value>
<value>satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)</value>
</param>
<param>
<key>bw0</key>
@ -973,7 +1145,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>if_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['if_gain']</value>
<value>satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)</value>
</param>
<param>
<key>iq_balance_mode0</key>
@ -981,7 +1153,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['rf_gain']</value>
<value>satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)</value>
</param>
<param>
<key>ant10</key>
@ -2233,7 +2405,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>args</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['dev_arg']</value>
<value>satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)</value>
</param>
<param>
<key>_enabled</key>
@ -2241,7 +2413,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(16, 376)</value>
<value>(15, 335)</value>
</param>
<param>
<key>_rotation</key>
@ -2360,7 +2532,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(1104, 996)</value>
<value>(726, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2403,7 +2575,50 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(472, 984)</value>
<value>(159, 1081)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rf_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_rf_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(327, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2446,7 +2661,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(616, 984)</value>
<value>(414, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2489,7 +2704,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(312, 984)</value>
<value>(223, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2787,7 +3002,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(872, 988)</value>
<value>(590, 985)</value>
</param>
<param>
<key>_rotation</key>
@ -2868,12 +3083,6 @@ we shift the LO a little further</value>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>osmosdr_source_0</source_block_id>
<sink_block_id>satnogs_doppler_correction_cc_0</sink_block_id>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>satnogs_coarse_doppler_correction_cc_0</source_block_id>
<sink_block_id>freq_xlating_fir_filter_xxx_0</sink_block_id>

View File

@ -95,7 +95,7 @@ SDR received samples</value>
</param>
<param>
<key>_coordinate</key>
<value>(1704, 796)</value>
<value>(1069, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -178,7 +178,7 @@ SDR received samples</value>
</param>
<param>
<key>_coordinate</key>
<value>(1480, 988)</value>
<value>(781, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -260,7 +260,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(1704, 956)</value>
<value>(1196, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -369,7 +369,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(1088, 564)</value>
<value>(1085, 410)</value>
</param>
<param>
<key>_rotation</key>
@ -392,6 +392,92 @@ TX sampling rate</value>
<value>0</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(382, 945)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>antenna</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_antenna</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(295, 945)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bb_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_bb_gain</value>
</param>
</block>
<block>
<key>rational_resampler_xxx</key>
<param>
@ -420,7 +506,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(1272, 268)</value>
<value>(1196, 263)</value>
</param>
<param>
<key>_rotation</key>
@ -467,7 +553,50 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(64, 984)</value>
<value>(47, 945)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>dev_args</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_dev_args</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(47, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -510,7 +639,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(744, 988)</value>
<value>(478, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -596,6 +725,49 @@ TX sampling rate</value>
<value>ccc</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(215, 945)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>if_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_if_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -613,7 +785,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(1704, 608)</value>
<value>(869, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -648,11 +820,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>ant0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['antenna']</value>
<value>satnogs.handle_rx_antenna(rx_sdr_device, antenna)</value>
</param>
<param>
<key>bb_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['bb_gain']</value>
<value>satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)</value>
</param>
<param>
<key>bw0</key>
@ -676,7 +848,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>if_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['if_gain']</value>
<value>satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)</value>
</param>
<param>
<key>iq_balance_mode0</key>
@ -684,7 +856,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['rf_gain']</value>
<value>satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)</value>
</param>
<param>
<key>ant10</key>
@ -1936,7 +2108,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>args</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['dev_arg']</value>
<value>satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)</value>
</param>
<param>
<key>_enabled</key>
@ -2063,7 +2235,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(1104, 996)</value>
<value>(710, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -2106,7 +2278,50 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(472, 984)</value>
<value>(143, 945)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rf_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_rf_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(311, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -2149,7 +2364,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(616, 984)</value>
<value>(398, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -2192,7 +2407,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(312, 984)</value>
<value>(207, 865)</value>
</param>
<param>
<key>_rotation</key>
@ -2290,7 +2505,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(920, 548)</value>
<value>(877, 394)</value>
</param>
<param>
<key>_rotation</key>
@ -2439,7 +2654,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(872, 988)</value>
<value>(574, 865)</value>
</param>
<param>
<key>_rotation</key>

View File

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<?grc format='1' created='3.7.10'?>
<?grc format='1' created='3.7.11'?>
<flow_graph>
<timestamp>Thu May 5 00:22:45 2016</timestamp>
<block>
@ -358,6 +358,92 @@ TX sampling rate</value>
<value>analog.GR_COS_WAVE</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(398, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>antenna</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_antenna</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(311, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bb_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_bb_gain</value>
</param>
</block>
<block>
<key>blocks_file_sink</key>
<param>
@ -460,6 +546,49 @@ TX sampling rate</value>
<value>1</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(63, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>dev_args</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_dev_args</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -605,6 +734,49 @@ TX sampling rate</value>
<value>ccc</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(231, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>if_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_if_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -657,11 +829,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>ant0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['antenna']</value>
<value>satnogs.handle_rx_antenna(rx_sdr_device, antenna)</value>
</param>
<param>
<key>bb_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['bb_gain']</value>
<value>satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)</value>
</param>
<param>
<key>bw0</key>
@ -673,7 +845,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>corr0</key>
<value>0</value>
<value>ppm</value>
</param>
<param>
<key>freq0</key>
@ -685,7 +857,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>if_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['if_gain']</value>
<value>satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)</value>
</param>
<param>
<key>iq_balance_mode0</key>
@ -693,7 +865,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['rf_gain']</value>
<value>satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)</value>
</param>
<param>
<key>ant10</key>
@ -1945,7 +2117,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>args</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['dev_arg']</value>
<value>satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)</value>
</param>
<param>
<key>_enabled</key>
@ -1953,7 +2125,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(24, 256)</value>
<value>(23, 271)</value>
</param>
<param>
<key>_rotation</key>
@ -2056,6 +2228,49 @@ we shift the LO a little further</value>
<value></value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(183, 769)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>ppm</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>intx</value>
</param>
<param>
<key>value</key>
<value>0</value>
</param>
</block>
<block>
<key>qtgui_freq_sink_x</key>
<param>
@ -2355,6 +2570,49 @@ we shift the LO a little further</value>
<value>dB</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(159, 937)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rf_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_rf_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -2608,12 +2866,6 @@ we shift the LO a little further</value>
<source_key>0</source_key>
<sink_key>0</sink_key>
</connection>
<connection>
<source_block_id>osmosdr_source_0</source_block_id>
<sink_block_id>blocks_multiply_xx_0</sink_block_id>
<source_key>0</source_key>
<sink_key>1</sink_key>
</connection>
<connection>
<source_block_id>osmosdr_source_0</source_block_id>
<sink_block_id>satnogs_coarse_doppler_correction_cc_0</sink_block_id>

View File

@ -336,6 +336,49 @@ TX sampling rate</value>
<value>samp_rate_rx/ ( first_stage_decimation * int(samp_rate_rx/ first_stage_decimation / initial_bandwidth))</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(518, 634)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>antenna</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_antenna</value>
</param>
</block>
<block>
<key>band_pass_filter</key>
<param>
@ -415,6 +458,49 @@ TX sampling rate</value>
<value>firdes.WIN_HAMMING</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(430, 634)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>bb_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_bb_gain</value>
</param>
</block>
<block>
<key>blocks_complex_to_mag</key>
<param>
@ -458,6 +544,49 @@ TX sampling rate</value>
<value>1</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(183, 634)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>dev_args</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>string</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_dev_args</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -639,7 +768,7 @@ TX sampling rate</value>
</param>
<param>
<key>_coordinate</key>
<value>(296, 312)</value>
<value>(295, 295)</value>
</param>
<param>
<key>_rotation</key>
@ -721,6 +850,49 @@ TX sampling rate</value>
<value>firdes.WIN_HAMMING</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(351, 634)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>if_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_if_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
@ -816,11 +988,11 @@ we shift the LO a little further</value>
</param>
<param>
<key>ant0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['antenna']</value>
<value>satnogs.handle_rx_antenna(rx_sdr_device, antenna)</value>
</param>
<param>
<key>bb_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['bb_gain']</value>
<value>satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain)</value>
</param>
<param>
<key>bw0</key>
@ -844,7 +1016,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>if_gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['if_gain']</value>
<value>satnogs.handle_rx_if_gain(rx_sdr_device, if_gain)</value>
</param>
<param>
<key>iq_balance_mode0</key>
@ -852,7 +1024,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>gain0</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['rf_gain']</value>
<value>satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain)</value>
</param>
<param>
<key>ant10</key>
@ -2104,7 +2276,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>args</key>
<value>satnogs.hw_rx_settings[rx_sdr_device]['dev_arg']</value>
<value>satnogs.handle_rx_dev_args(rx_sdr_device, dev_args)</value>
</param>
<param>
<key>_enabled</key>
@ -2112,7 +2284,7 @@ we shift the LO a little further</value>
</param>
<param>
<key>_coordinate</key>
<value>(55, 243)</value>
<value>(15, 223)</value>
</param>
<param>
<key>_rotation</key>
@ -2376,6 +2548,49 @@ we shift the LO a little further</value>
<value>fff</value>
</param>
</block>
<block>
<key>parameter</key>
<param>
<key>alias</key>
<value></value>
</param>
<param>
<key>comment</key>
<value></value>
</param>
<param>
<key>_enabled</key>
<value>True</value>
</param>
<param>
<key>_coordinate</key>
<value>(279, 634)</value>
</param>
<param>
<key>_rotation</key>
<value>0</value>
</param>
<param>
<key>id</key>
<value>rf_gain</value>
</param>
<param>
<key>label</key>
<value></value>
</param>
<param>
<key>short_id</key>
<value></value>
</param>
<param>
<key>type</key>
<value>eng_float</value>
</param>
<param>
<key>value</key>
<value>satnogs.not_set_rx_rf_gain</value>
</param>
</block>
<block>
<key>parameter</key>
<param>

View File

@ -5,7 +5,7 @@
# Title: NOAA APT Decoder
# Author: Manolis Surligas, George Vardakis
# Description: A NOAA APT Decoder with automatic image synchronization
# Generated: Fri Jun 23 15:41:33 2017
# Generated: Thu Jul 20 22:29:00 2017
##################################################
from gnuradio import analog
@ -23,7 +23,7 @@ import time
class satnogs_noaa_apt_decoder(gr.top_block):
def __init__(self, doppler_correction_per_sec=1000, image_file_path='/tmp/noaa.png', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=90.4e6, rx_sdr_device='usrpb200'):
def __init__(self, doppler_correction_per_sec=1000, image_file_path='/tmp/noaa.png', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=90.4e6, rx_sdr_device='usrpb200', if_gain=satnogs.not_set_rx_if_gain, rf_gain=satnogs.not_set_rx_rf_gain, dev_args=satnogs.not_set_dev_args, bb_gain=satnogs.not_set_rx_bb_gain, antenna=satnogs.not_set_antenna):
gr.top_block.__init__(self, "NOAA APT Decoder")
##################################################
@ -36,6 +36,11 @@ class satnogs_noaa_apt_decoder(gr.top_block):
self.rigctl_port = rigctl_port
self.rx_freq = rx_freq
self.rx_sdr_device = rx_sdr_device
self.if_gain = if_gain
self.rf_gain = rf_gain
self.dev_args = dev_args
self.bb_gain = bb_gain
self.antenna = antenna
##################################################
# Variables
@ -69,17 +74,17 @@ class satnogs_noaa_apt_decoder(gr.top_block):
taps=None,
fractional_bw=None,
)
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.hw_rx_settings[rx_sdr_device]['dev_arg'] )
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
self.osmosdr_source_0.set_freq_corr(ppm, 0)
self.osmosdr_source_0.set_dc_offset_mode(2, 0)
self.osmosdr_source_0.set_iq_balance_mode(0, 0)
self.osmosdr_source_0.set_gain_mode(False, 0)
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
self.hilbert_fc_0 = filter.hilbert_fc(65, firdes.WIN_HAMMING, 6.76)
@ -159,10 +164,44 @@ class satnogs_noaa_apt_decoder(gr.top_block):
def set_rx_sdr_device(self, rx_sdr_device):
self.rx_sdr_device = rx_sdr_device
self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[self.rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
def get_if_gain(self):
return self.if_gain
def set_if_gain(self, if_gain):
self.if_gain = if_gain
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
def get_rf_gain(self):
return self.rf_gain
def set_rf_gain(self, rf_gain):
self.rf_gain = rf_gain
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
def get_dev_args(self):
return self.dev_args
def set_dev_args(self, dev_args):
self.dev_args = dev_args
def get_bb_gain(self):
return self.bb_gain
def set_bb_gain(self, bb_gain):
self.bb_gain = bb_gain
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
def get_antenna(self):
return self.antenna
def set_antenna(self, antenna):
self.antenna = antenna
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
def get_samp_rate_rx(self):
return self.samp_rate_rx
@ -233,6 +272,21 @@ def argument_parser():
parser.add_option(
"", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
help="Set rx_sdr_device [default=%default]")
parser.add_option(
"", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
help="Set if_gain [default=%default]")
parser.add_option(
"", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
help="Set rf_gain [default=%default]")
parser.add_option(
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
"", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
help="Set bb_gain [default=%default]")
parser.add_option(
"", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
help="Set antenna [default=%default]")
return parser
@ -240,7 +294,7 @@ def main(top_block_cls=satnogs_noaa_apt_decoder, options=None):
if options is None:
options, _ = argument_parser().parse_args()
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, image_file_path=options.image_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device)
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, image_file_path=options.image_file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, if_gain=options.if_gain, rf_gain=options.rf_gain, dev_args=options.dev_args, bb_gain=options.bb_gain, antenna=options.antenna)
tb.start()
tb.wait()

View File

@ -5,7 +5,7 @@
# Title: APT Generic Demodulation
# Author: Manolis Surligas (surligas@gmail.com)
# Description: A generic APT demodulation block
# Generated: Thu Jul 6 18:29:16 2017
# Generated: Thu Jul 20 22:24:59 2017
##################################################
from gnuradio import analog
@ -23,7 +23,7 @@ import time
class satnogs_apt_demod(gr.top_block):
def __init__(self, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat'):
def __init__(self, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat', if_gain=satnogs.not_set_rx_if_gain, rf_gain=satnogs.not_set_rx_rf_gain, dev_args=satnogs.not_set_dev_args, bb_gain=satnogs.not_set_rx_bb_gain, antenna=satnogs.not_set_antenna):
gr.top_block.__init__(self, "APT Generic Demodulation")
##################################################
@ -37,6 +37,11 @@ class satnogs_apt_demod(gr.top_block):
self.rx_freq = rx_freq
self.rx_sdr_device = rx_sdr_device
self.waterfall_file_path = waterfall_file_path
self.if_gain = if_gain
self.rf_gain = rf_gain
self.dev_args = dev_args
self.bb_gain = bb_gain
self.antenna = antenna
##################################################
# Variables
@ -64,17 +69,17 @@ class satnogs_apt_demod(gr.top_block):
taps=None,
fractional_bw=None,
)
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.hw_rx_settings[rx_sdr_device]['dev_arg'] )
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
self.osmosdr_source_0.set_freq_corr(ppm, 0)
self.osmosdr_source_0.set_dc_offset_mode(2, 0)
self.osmosdr_source_0.set_iq_balance_mode(0, 0)
self.osmosdr_source_0.set_gain_mode(False, 0)
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
@ -145,10 +150,10 @@ class satnogs_apt_demod(gr.top_block):
def set_rx_sdr_device(self, rx_sdr_device):
self.rx_sdr_device = rx_sdr_device
self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[self.rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
self.set_audio_gain(satnogs.fm_demod_settings[self.rx_sdr_device]['audio_gain'])
def get_waterfall_file_path(self):
@ -157,6 +162,40 @@ class satnogs_apt_demod(gr.top_block):
def set_waterfall_file_path(self, waterfall_file_path):
self.waterfall_file_path = waterfall_file_path
def get_if_gain(self):
return self.if_gain
def set_if_gain(self, if_gain):
self.if_gain = if_gain
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
def get_rf_gain(self):
return self.rf_gain
def set_rf_gain(self, rf_gain):
self.rf_gain = rf_gain
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
def get_dev_args(self):
return self.dev_args
def set_dev_args(self, dev_args):
self.dev_args = dev_args
def get_bb_gain(self):
return self.bb_gain
def set_bb_gain(self, bb_gain):
self.bb_gain = bb_gain
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
def get_antenna(self):
return self.antenna
def set_antenna(self, antenna):
self.antenna = antenna
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
def get_samp_rate_rx(self):
return self.samp_rate_rx
@ -232,6 +271,21 @@ def argument_parser():
parser.add_option(
"", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
help="Set waterfall_file_path [default=%default]")
parser.add_option(
"", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
help="Set if_gain [default=%default]")
parser.add_option(
"", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
help="Set rf_gain [default=%default]")
parser.add_option(
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
"", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
help="Set bb_gain [default=%default]")
parser.add_option(
"", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
help="Set antenna [default=%default]")
return parser
@ -239,7 +293,7 @@ def main(top_block_cls=satnogs_apt_demod, options=None):
if options is None:
options, _ = argument_parser().parse_args()
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path)
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path, if_gain=options.if_gain, rf_gain=options.rf_gain, dev_args=options.dev_args, bb_gain=options.bb_gain, antenna=options.antenna)
tb.start()
tb.wait()

View File

@ -2,10 +2,10 @@
# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: FM Generic Demodulation
# Title: BPSK Generic Demodulation
# Author: surligas, cshields, csete
# Description: A generic CW demodulation block
# Generated: Thu Jul 6 18:29:34 2017
# Description: A generic BPSK demodulation block
# Generated: Thu Jul 20 22:23:27 2017
##################################################
from gnuradio import analog
@ -23,8 +23,8 @@ import time
class satnogs_cw_demod(gr.top_block):
def __init__(self, cw_offset=700, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "FM Generic Demodulation")
def __init__(self, cw_offset=1500, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat', if_gain=satnogs.not_set_rx_if_gain, rf_gain=satnogs.not_set_rx_rf_gain, dev_args=satnogs.not_set_dev_args, bb_gain=satnogs.not_set_rx_bb_gain, antenna=satnogs.not_set_antenna):
gr.top_block.__init__(self, "BPSK Generic Demodulation")
##################################################
# Parameters
@ -38,6 +38,11 @@ class satnogs_cw_demod(gr.top_block):
self.rx_freq = rx_freq
self.rx_sdr_device = rx_sdr_device
self.waterfall_file_path = waterfall_file_path
self.if_gain = if_gain
self.rf_gain = rf_gain
self.dev_args = dev_args
self.bb_gain = bb_gain
self.antenna = antenna
##################################################
# Variables
@ -59,17 +64,17 @@ class satnogs_cw_demod(gr.top_block):
self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.hw_rx_settings[rx_sdr_device]['dev_arg'] )
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
self.osmosdr_source_0.set_freq_corr(ppm, 0)
self.osmosdr_source_0.set_dc_offset_mode(2, 0)
self.osmosdr_source_0.set_iq_balance_mode(0, 0)
self.osmosdr_source_0.set_gain_mode(False, 0)
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
self.low_pass_filter_0 = filter.fir_filter_ccf(1, firdes.low_pass(
@ -156,10 +161,10 @@ class satnogs_cw_demod(gr.top_block):
def set_rx_sdr_device(self, rx_sdr_device):
self.rx_sdr_device = rx_sdr_device
self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[self.rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
self.set_audio_gain(satnogs.fm_demod_settings[self.rx_sdr_device]['audio_gain'])
def get_waterfall_file_path(self):
@ -168,6 +173,40 @@ class satnogs_cw_demod(gr.top_block):
def set_waterfall_file_path(self, waterfall_file_path):
self.waterfall_file_path = waterfall_file_path
def get_if_gain(self):
return self.if_gain
def set_if_gain(self, if_gain):
self.if_gain = if_gain
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
def get_rf_gain(self):
return self.rf_gain
def set_rf_gain(self, rf_gain):
self.rf_gain = rf_gain
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
def get_dev_args(self):
return self.dev_args
def set_dev_args(self, dev_args):
self.dev_args = dev_args
def get_bb_gain(self):
return self.bb_gain
def set_bb_gain(self, bb_gain):
self.bb_gain = bb_gain
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
def get_antenna(self):
return self.antenna
def set_antenna(self, antenna):
self.antenna = antenna
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
def get_samp_rate_rx(self):
return self.samp_rate_rx
@ -218,10 +257,10 @@ class satnogs_cw_demod(gr.top_block):
def argument_parser():
description = 'A generic CW demodulation block'
description = 'A generic BPSK demodulation block'
parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
parser.add_option(
"", "--cw-offset", dest="cw_offset", type="eng_float", default=eng_notation.num_to_str(700),
"", "--cw-offset", dest="cw_offset", type="eng_float", default=eng_notation.num_to_str(1500),
help="Set cw_offset [default=%default]")
parser.add_option(
"", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
@ -247,6 +286,21 @@ def argument_parser():
parser.add_option(
"", "--waterfall-file-path", dest="waterfall_file_path", type="string", default='/tmp/waterfall.dat',
help="Set waterfall_file_path [default=%default]")
parser.add_option(
"", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
help="Set if_gain [default=%default]")
parser.add_option(
"", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
help="Set rf_gain [default=%default]")
parser.add_option(
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
"", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
help="Set bb_gain [default=%default]")
parser.add_option(
"", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
help="Set antenna [default=%default]")
return parser
@ -254,7 +308,7 @@ def main(top_block_cls=satnogs_cw_demod, options=None):
if options is None:
options, _ = argument_parser().parse_args()
tb = top_block_cls(cw_offset=options.cw_offset, doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path)
tb = top_block_cls(cw_offset=options.cw_offset, doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path, if_gain=options.if_gain, rf_gain=options.rf_gain, dev_args=options.dev_args, bb_gain=options.bb_gain, antenna=options.antenna)
tb.start()
tb.wait()

View File

@ -5,7 +5,7 @@
# Title: FM Generic Demodulation
# Author: Manolis Surligas (surligas@gmail.com)
# Description: A generic FM demodulation block
# Generated: Thu Jul 6 18:28:13 2017
# Generated: Thu Jul 20 22:29:23 2017
##################################################
from gnuradio import analog
@ -23,16 +23,21 @@ import time
class satnogs_fm_demod(gr.top_block):
def __init__(self, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, ppm=0, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat'):
def __init__(self, antenna=satnogs.not_set_antenna, bb_gain=satnogs.not_set_rx_bb_gain, dev_args=satnogs.not_set_dev_args, doppler_correction_per_sec=1000, file_path='test.wav', if_gain=satnogs.not_set_rx_if_gain, lo_offset=100e3, ppm=0, rf_gain=satnogs.not_set_rx_rf_gain, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', waterfall_file_path='/tmp/waterfall.dat'):
gr.top_block.__init__(self, "FM Generic Demodulation")
##################################################
# Parameters
##################################################
self.antenna = antenna
self.bb_gain = bb_gain
self.dev_args = dev_args
self.doppler_correction_per_sec = doppler_correction_per_sec
self.file_path = file_path
self.if_gain = if_gain
self.lo_offset = lo_offset
self.ppm = ppm
self.rf_gain = rf_gain
self.rigctl_port = rigctl_port
self.rx_freq = rx_freq
self.rx_sdr_device = rx_sdr_device
@ -58,17 +63,17 @@ class satnogs_fm_demod(gr.top_block):
self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
self.satnogs_ogg_encoder_0 = satnogs.ogg_encoder(file_path, audio_samp_rate, 1.0)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.hw_rx_settings[rx_sdr_device]['dev_arg'] )
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
self.osmosdr_source_0.set_freq_corr(ppm, 0)
self.osmosdr_source_0.set_dc_offset_mode(2, 0)
self.osmosdr_source_0.set_iq_balance_mode(0, 0)
self.osmosdr_source_0.set_gain_mode(False, 0)
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(int(samp_rate_rx/filter_rate), (xlate_filter_taps), lo_offset, samp_rate_rx)
@ -91,6 +96,26 @@ class satnogs_fm_demod(gr.top_block):
self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
def get_antenna(self):
return self.antenna
def set_antenna(self, antenna):
self.antenna = antenna
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
def get_bb_gain(self):
return self.bb_gain
def set_bb_gain(self, bb_gain):
self.bb_gain = bb_gain
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
def get_dev_args(self):
return self.dev_args
def set_dev_args(self, dev_args):
self.dev_args = dev_args
def get_doppler_correction_per_sec(self):
return self.doppler_correction_per_sec
@ -103,6 +128,13 @@ class satnogs_fm_demod(gr.top_block):
def set_file_path(self, file_path):
self.file_path = file_path
def get_if_gain(self):
return self.if_gain
def set_if_gain(self, if_gain):
self.if_gain = if_gain
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
def get_lo_offset(self):
return self.lo_offset
@ -118,6 +150,13 @@ class satnogs_fm_demod(gr.top_block):
self.ppm = ppm
self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
def get_rf_gain(self):
return self.rf_gain
def set_rf_gain(self, rf_gain):
self.rf_gain = rf_gain
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
def get_rigctl_port(self):
return self.rigctl_port
@ -138,10 +177,10 @@ class satnogs_fm_demod(gr.top_block):
def set_rx_sdr_device(self, rx_sdr_device):
self.rx_sdr_device = rx_sdr_device
self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[self.rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
self.set_audio_gain(satnogs.fm_demod_settings[self.rx_sdr_device]['audio_gain'])
def get_waterfall_file_path(self):
@ -202,18 +241,33 @@ class satnogs_fm_demod(gr.top_block):
def argument_parser():
description = 'A generic FM demodulation block'
parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
parser.add_option(
"", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
help="Set antenna [default=%default]")
parser.add_option(
"", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
help="Set bb_gain [default=%default]")
parser.add_option(
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
"", "--doppler-correction-per-sec", dest="doppler_correction_per_sec", type="intx", default=1000,
help="Set doppler_correction_per_sec [default=%default]")
parser.add_option(
"", "--file-path", dest="file_path", type="string", default='test.wav',
help="Set file_path [default=%default]")
parser.add_option(
"", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
help="Set if_gain [default=%default]")
parser.add_option(
"", "--lo-offset", dest="lo_offset", type="eng_float", default=eng_notation.num_to_str(100e3),
help="Set lo_offset [default=%default]")
parser.add_option(
"", "--ppm", dest="ppm", type="intx", default=0,
help="Set ppm [default=%default]")
parser.add_option(
"", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
help="Set rf_gain [default=%default]")
parser.add_option(
"", "--rigctl-port", dest="rigctl_port", type="intx", default=4532,
help="Set rigctl_port [default=%default]")
@ -233,7 +287,7 @@ def main(top_block_cls=satnogs_fm_demod, options=None):
if options is None:
options, _ = argument_parser().parse_args()
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path)
tb = top_block_cls(antenna=options.antenna, bb_gain=options.bb_gain, dev_args=options.dev_args, doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, if_gain=options.if_gain, lo_offset=options.lo_offset, ppm=options.ppm, rf_gain=options.rf_gain, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, waterfall_file_path=options.waterfall_file_path)
tb.start()
tb.wait()

View File

@ -5,7 +5,7 @@
# Title: Generic IQ samples receiver
# Author: Manolis Surligas (surligas@gmail.com)
# Description: A generic FM demodulation block
# Generated: Mon Nov 7 19:49:15 2016
# Generated: Thu Jul 20 22:27:27 2017
##################################################
from gnuradio import blocks
@ -22,7 +22,7 @@ import time
class satnogs_generic_iq_receiver(gr.top_block):
def __init__(self, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200'):
def __init__(self, doppler_correction_per_sec=1000, file_path='test.wav', lo_offset=100e3, rigctl_port=4532, rx_freq=100e6, rx_sdr_device='usrpb200', if_gain=satnogs.not_set_rx_if_gain, rf_gain=satnogs.not_set_rx_rf_gain, dev_args=satnogs.not_set_dev_args, bb_gain=satnogs.not_set_rx_bb_gain, antenna=satnogs.not_set_antenna, ppm=0):
gr.top_block.__init__(self, "Generic IQ samples receiver")
##################################################
@ -34,15 +34,21 @@ class satnogs_generic_iq_receiver(gr.top_block):
self.rigctl_port = rigctl_port
self.rx_freq = rx_freq
self.rx_sdr_device = rx_sdr_device
self.if_gain = if_gain
self.rf_gain = rf_gain
self.dev_args = dev_args
self.bb_gain = bb_gain
self.antenna = antenna
self.ppm = ppm
##################################################
# Variables
##################################################
self.samp_rate_rx = samp_rate_rx = satnogs.hw_rx_settings[rx_sdr_device]['samp_rate']
self.decimation_rx = decimation_rx = satnogs.fm_demod_settings[rx_sdr_device]['decimation_rx']
self.taps = taps = firdes.low_pass(12.0, samp_rate_rx, 100e3, 60000, firdes.WIN_HAMMING, 6.76)
self.quadrature_rate = quadrature_rate = samp_rate_rx / decimation_rx
self.audio_samp_rate = audio_samp_rate = 44100
self.audio_gain = audio_gain = satnogs.fm_demod_settings[rx_sdr_device]['audio_gain']
@ -53,19 +59,19 @@ class satnogs_generic_iq_receiver(gr.top_block):
##################################################
self.satnogs_tcp_rigctl_msg_source_0 = satnogs.tcp_rigctl_msg_source("127.0.0.1", rigctl_port, False, 1000, 1500)
self.satnogs_coarse_doppler_correction_cc_0 = satnogs.coarse_doppler_correction_cc(rx_freq, samp_rate_rx)
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.hw_rx_settings[rx_sdr_device]['dev_arg'] )
self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + satnogs.handle_rx_dev_args(rx_sdr_device, dev_args) )
self.osmosdr_source_0.set_sample_rate(samp_rate_rx)
self.osmosdr_source_0.set_center_freq(rx_freq - lo_offset, 0)
self.osmosdr_source_0.set_freq_corr(0, 0)
self.osmosdr_source_0.set_freq_corr(ppm, 0)
self.osmosdr_source_0.set_dc_offset_mode(2, 0)
self.osmosdr_source_0.set_iq_balance_mode(0, 0)
self.osmosdr_source_0.set_gain_mode(False, 0)
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(rx_sdr_device, rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(rx_sdr_device, if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(rx_sdr_device, bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(rx_sdr_device, antenna), 0)
self.osmosdr_source_0.set_bandwidth(samp_rate_rx, 0)
self.freq_xlating_fir_filter_xxx_0 = filter.freq_xlating_fir_filter_ccc(decimation_rx, (taps), lo_offset, samp_rate_rx)
self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_gr_complex*1, file_path, False)
self.blocks_file_sink_0.set_unbuffered(True)
@ -73,10 +79,10 @@ class satnogs_generic_iq_receiver(gr.top_block):
##################################################
# Connections
##################################################
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blocks_file_sink_0, 0))
self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
self.msg_connect((self.satnogs_tcp_rigctl_msg_source_0, 'freq'), (self.satnogs_coarse_doppler_correction_cc_0, 'freq'))
self.connect((self.freq_xlating_fir_filter_xxx_0, 0), (self.blocks_file_sink_0, 0))
self.connect((self.osmosdr_source_0, 0), (self.satnogs_coarse_doppler_correction_cc_0, 0))
self.connect((self.satnogs_coarse_doppler_correction_cc_0, 0), (self.freq_xlating_fir_filter_xxx_0, 0))
def get_doppler_correction_per_sec(self):
return self.doppler_correction_per_sec
@ -120,12 +126,53 @@ class satnogs_generic_iq_receiver(gr.top_block):
self.rx_sdr_device = rx_sdr_device
self.set_samp_rate_rx(satnogs.hw_rx_settings[self.rx_sdr_device]['samp_rate'])
self.set_decimation_rx(satnogs.fm_demod_settings[self.rx_sdr_device]['decimation_rx'])
self.osmosdr_source_0.set_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['rf_gain'], 0)
self.osmosdr_source_0.set_if_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['if_gain'], 0)
self.osmosdr_source_0.set_bb_gain(satnogs.hw_rx_settings[self.rx_sdr_device]['bb_gain'], 0)
self.osmosdr_source_0.set_antenna(satnogs.hw_rx_settings[self.rx_sdr_device]['antenna'], 0)
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
self.set_audio_gain(satnogs.fm_demod_settings[self.rx_sdr_device]['audio_gain'])
def get_if_gain(self):
return self.if_gain
def set_if_gain(self, if_gain):
self.if_gain = if_gain
self.osmosdr_source_0.set_if_gain(satnogs.handle_rx_if_gain(self.rx_sdr_device, self.if_gain), 0)
def get_rf_gain(self):
return self.rf_gain
def set_rf_gain(self, rf_gain):
self.rf_gain = rf_gain
self.osmosdr_source_0.set_gain(satnogs.handle_rx_rf_gain(self.rx_sdr_device, self.rf_gain), 0)
def get_dev_args(self):
return self.dev_args
def set_dev_args(self, dev_args):
self.dev_args = dev_args
def get_bb_gain(self):
return self.bb_gain
def set_bb_gain(self, bb_gain):
self.bb_gain = bb_gain
self.osmosdr_source_0.set_bb_gain(satnogs.handle_rx_bb_gain(self.rx_sdr_device, self.bb_gain), 0)
def get_antenna(self):
return self.antenna
def set_antenna(self, antenna):
self.antenna = antenna
self.osmosdr_source_0.set_antenna(satnogs.handle_rx_antenna(self.rx_sdr_device, self.antenna), 0)
def get_ppm(self):
return self.ppm
def set_ppm(self, ppm):
self.ppm = ppm
self.osmosdr_source_0.set_freq_corr(self.ppm, 0)
def get_samp_rate_rx(self):
return self.samp_rate_rx
@ -195,6 +242,24 @@ def argument_parser():
parser.add_option(
"", "--rx-sdr-device", dest="rx_sdr_device", type="string", default='usrpb200',
help="Set rx_sdr_device [default=%default]")
parser.add_option(
"", "--if-gain", dest="if_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_if_gain),
help="Set if_gain [default=%default]")
parser.add_option(
"", "--rf-gain", dest="rf_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_rf_gain),
help="Set rf_gain [default=%default]")
parser.add_option(
"", "--dev-args", dest="dev_args", type="string", default=satnogs.not_set_dev_args,
help="Set dev_args [default=%default]")
parser.add_option(
"", "--bb-gain", dest="bb_gain", type="eng_float", default=eng_notation.num_to_str(satnogs.not_set_rx_bb_gain),
help="Set bb_gain [default=%default]")
parser.add_option(
"", "--antenna", dest="antenna", type="string", default=satnogs.not_set_antenna,
help="Set antenna [default=%default]")
parser.add_option(
"", "--ppm", dest="ppm", type="intx", default=0,
help="Set ppm [default=%default]")
return parser
@ -202,7 +267,7 @@ def main(top_block_cls=satnogs_generic_iq_receiver, options=None):
if options is None:
options, _ = argument_parser().parse_args()
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device)
tb = top_block_cls(doppler_correction_per_sec=options.doppler_correction_per_sec, file_path=options.file_path, lo_offset=options.lo_offset, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, rx_sdr_device=options.rx_sdr_device, if_gain=options.if_gain, rf_gain=options.rf_gain, dev_args=options.dev_args, bb_gain=options.bb_gain, antenna=options.antenna, ppm=options.ppm)
tb.start()
tb.wait()

View File

@ -49,3 +49,84 @@ hw_rx_settings = {'usrpb200' : {'rf_gain' : 50.0, 'if_gain' : 0.0,
'rtlsdr' : {'rf_gain' : 32.8, 'if_gain' : 0.0,
'bb_gain' : 0.0, 'samp_rate' : 1e6,
'antenna' : '', 'dev_arg' : 'rtl,buffers=32,buflen=16384' }}
#===============================================================================
# Default values indicating that the user does not passed any custom value
#===============================================================================
not_set_rx_rf_gain = -1.0
not_set_rx_if_gain = -1.0
not_set_rx_bb_gain = -1.0
not_set_antenna = ''
not_set_dev_args = ''
def handle_rx_dev_args(device, dev_args):
"""
Handles the RX device arguments.
:param device: the device name
:type device: string
:param dev_args: the device arguments. Emtpy string for no or default
device arguements
:type dev_args: string
"""
if(len(dev_args) == 0):
return hw_rx_settings[device]['dev_arg']
else:
return dev_args
def handle_rx_rf_gain(device, gain):
"""
Handles the RX RF gain. If this parameter is not set from the user
the default settings are returned, otherwise the user setting itself
:param device: the device name
:type device: string
:param gain: the user defined gain value
:type gain: float
"""
if(gain == not_set_rx_rf_gain):
return hw_rx_settings[device]['rf_gain']
else:
return gain
def handle_rx_if_gain(device, gain):
"""
Handles the IF RF gain. If this parameter is not set from the user
the default settings are returned, otherwise the user setting itself
:param device: the device name
:type device: string
:param gain: the user defined gain value
:type gain: float
"""
if(gain == not_set_rx_if_gain):
return hw_rx_settings[device]['if_gain']
else:
return gain
def handle_rx_bb_gain(device, gain):
"""
Handles the RX BB gain. If this parameter is not set from the user
the default settings are returned, otherwise the user setting itself
:param device: the device name
:type device: string
:param gain: the user defined gain value
:type gain: float
"""
if(gain == not_set_rx_bb_gain):
return hw_rx_settings[device]['bb_gain']
else:
return gain
def handle_rx_antenna(device, antenna):
"""
Handles the RX antenna. If this parameter is not set from the user
the default settings are returned, otherwise the user setting itself
:param device: the device name
:type device: string
:param gain: the user defined antenna
:type gain: string
"""
if(len(antenna) == 0):
return hw_rx_settings[device]['antenna']
else:
return antenna