From 3efeadcbcfd26638d417c40a6ee033c08b00998e Mon Sep 17 00:00:00 2001 From: zydrunas Date: Wed, 13 Jun 2018 10:38:55 +0300 Subject: [PATCH] Added callback functions, Windows support, NCO settings, PyBOMBS support. Fixed some stream issues. Device number changed to Device serial. Added more examples. --- CMakeLists.txt | 7 - README.md | 27 +- docs/known_issues.txt | 4 +- examples/FM_RDS.grc | 3558 +++++++++++++++++ examples/FM_receiver.grc | 56 +- examples/FM_transmitter.grc | 54 +- examples/GFSK.grc | 1640 ++++++++ examples/signal_analyzer.grc | 915 +++++ examples/signal_generator.grc | 1102 +++++ grc/limesdr_sink.xml | 195 +- grc/limesdr_source.xml | 199 +- include/limesdr/api.h | 1 - include/limesdr/sink.h | 34 +- include/limesdr/source.h | 34 +- lib/common/device_handler.cc | 803 ++-- lib/common/device_handler.h | 89 +- lib/sink_impl.cc | 290 +- lib/sink_impl.h | 48 +- lib/source_impl.cc | 317 +- lib/source_impl.h | 44 +- windows/GNU_Radio/bin/LimeSuite.dll | Bin 0 -> 683008 bytes windows/GNU_Radio/bin/gnuradio-limesdr.dll | Bin 0 -> 90624 bytes .../lib/site-packages/limesdr/__init__.pyc | Bin 0 -> 347 bytes .../lib/site-packages/limesdr/__init__.pyo | Bin 0 -> 347 bytes .../site-packages/limesdr/_limesdr_swig.pyd | Bin 0 -> 320512 bytes .../lib/site-packages/limesdr/limesdr_swig.py | 956 +++++ .../site-packages/limesdr/limesdr_swig.pyc | Bin 0 -> 54884 bytes .../site-packages/limesdr/limesdr_swig.pyo | Bin 0 -> 54884 bytes .../gnuradio/grc/blocks/limesdr_sink.xml | 825 ++++ .../gnuradio/grc/blocks/limesdr_source.xml | 833 ++++ windows/Pothos_SDR/bin/gnuradio-limesdr.dll | Bin 0 -> 90624 bytes .../site-packages/limesdr/__init__.pyc | Bin 0 -> 347 bytes .../site-packages/limesdr/__init__.pyo | Bin 0 -> 347 bytes .../site-packages/limesdr/_limesdr_swig.pyd | Bin 0 -> 320512 bytes .../site-packages/limesdr/limesdr_swig.py | 956 +++++ .../site-packages/limesdr/limesdr_swig.pyc | Bin 0 -> 54884 bytes .../site-packages/limesdr/limesdr_swig.pyo | Bin 0 -> 54884 bytes .../gnuradio/grc/blocks/limesdr_sink.xml | 825 ++++ .../gnuradio/grc/blocks/limesdr_source.xml | 833 ++++ 39 files changed, 13908 insertions(+), 737 deletions(-) create mode 100644 examples/FM_RDS.grc create mode 100644 examples/GFSK.grc create mode 100644 examples/signal_analyzer.grc create mode 100644 examples/signal_generator.grc create mode 100644 windows/GNU_Radio/bin/LimeSuite.dll create mode 100644 windows/GNU_Radio/bin/gnuradio-limesdr.dll create mode 100644 windows/GNU_Radio/lib/site-packages/limesdr/__init__.pyc create mode 100644 windows/GNU_Radio/lib/site-packages/limesdr/__init__.pyo create mode 100644 windows/GNU_Radio/lib/site-packages/limesdr/_limesdr_swig.pyd create mode 100644 windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.py create mode 100644 windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.pyc create mode 100644 windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.pyo create mode 100644 windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_sink.xml create mode 100644 windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_source.xml create mode 100644 windows/Pothos_SDR/bin/gnuradio-limesdr.dll create mode 100644 windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/__init__.pyc create mode 100644 windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/__init__.pyo create mode 100644 windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/_limesdr_swig.pyd create mode 100644 windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.py create mode 100644 windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.pyc create mode 100644 windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.pyo create mode 100644 windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_sink.xml create mode 100644 windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_source.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c2cffe..a5dd8f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,7 +121,6 @@ endif(APPLE) # components required to the list of GR_REQUIRED_COMPONENTS (in all # caps such as FILTER or FFT) and change the version to the minimum # API compatible version required. -find_package(CppUnit) find_package(Doxygen) MESSAGE(STATUS "Configuring GNU Radio C++ Libraries...") @@ -132,10 +131,6 @@ if("${Gnuradio_VERSION}" VERSION_LESS MIN_GR_VERSION) MESSAGE(FATAL_ERROR "GnuRadio version required: >=\"" ${MIN_GR_VERSION} "\" found: \"" ${Gnuradio_VERSION} "\"") endif() -if(NOT CPPUNIT_FOUND) - message(FATAL_ERROR "CppUnit required to compile limesdr") -endif() - ######################################################################## # Find LimeSuite ######################################################################## @@ -178,14 +173,12 @@ include_directories( ${CMAKE_BINARY_DIR}/lib ${CMAKE_BINARY_DIR}/include ${Boost_INCLUDE_DIRS} - ${CPPUNIT_INCLUDE_DIRS} ${GNURADIO_ALL_INCLUDE_DIRS} ${LIMESUITE_INCLUDE_DIRS} ) link_directories( ${Boost_LIBRARY_DIRS} - ${CPPUNIT_LIBRARY_DIRS} ${GNURADIO_RUNTIME_LIBRARY_DIRS} ${LIMESUITE_LIB} ) diff --git a/README.md b/README.md index b0a7439..a90d53b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# gr-limesdr v0.9 beta +# gr-limesdr 1.0.0-RC Package includes GNU Radio blocks for LimeSDR-USB/LimeSDR-Mini boards. Various settings are hidden or shown, depending on the @@ -8,12 +8,6 @@ selected device type. * [MyriadRF Wiki page](https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio) -## Currently under development - -* Callback functions -* NCO setting -* Windows OS support - ## Dependencies * GNU Radio @@ -23,6 +17,8 @@ selected device type. ## Installation process +* Linux +
 cd gr-limesdr
 mkdir build
@@ -33,6 +29,21 @@ sudo make install
 sudo ldconfig
 
+* Windows + +If you have "GNU Radio", merge windows\GNU_Radio folders with folders located in + +
+C:\Program Files\GNURadio-3.7
+
+ +If you have "Pothos SDR dev environment", merge windows\Pothos_SDR folders with +folders located in + +
+C:\Program Files\PothosSDR
+
+ ## Known issues Known issues are located in: @@ -42,5 +53,3 @@ gr-limesdr/docs/known_issues.txt GNU Radio-Companion examples are located in: gr-limesdr/examples - -Select .wav file path before running any of the TX examples. diff --git a/docs/known_issues.txt b/docs/known_issues.txt index fe98b87..7edc123 100644 --- a/docs/known_issues.txt +++ b/docs/known_issues.txt @@ -5,7 +5,5 @@ this line is need to be added in the end of .bashrc file. 2. Blocks work with LimeSuite version 17.10.0 and above. -3. LimeSuite libraries ar not in /usr/local/lib. Delete libraries from usr/lib and reinstall LimeSuite. - -4. While running GNU Radio flowgraph “aUaU” message is thrown. This means audio underrun (not enough +3. While running GNU Radio flowgraph “aUaU” message is thrown. This means audio underrun (not enough samples ready to send to sound sink. diff --git a/examples/FM_RDS.grc b/examples/FM_RDS.grc new file mode 100644 index 0000000..fcd359f --- /dev/null +++ b/examples/FM_RDS.grc @@ -0,0 +1,3558 @@ + + + + Thu Aug 28 08:24:49 2014 + + options + + author + Lime Microsystems + + + window_size + 4096,4096 + + + category + Custom + + + comment + + + + description + + + + _enabled + True + + + _coordinate + (14, 9) + + + _rotation + 0 + + + generate_options + wx_gui + + + hier_block_src_path + .: + + + id + rds_rx + + + max_nouts + 0 + + + qt_qss_theme + + + + realtime_scheduling + + + + run_command + {python} -u {filename} + + + run_options + prompt + + + run + True + + + sizing_mode + fixed + + + thread_safe_setters + + + + title + FM RDS receiver + + + placement + (0,0) + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (560, 4) + + + _rotation + 0 + + + id + audio_decim + + + value + 5 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (368, 1380) + + + _rotation + 0 + + + id + audio_decim_rate + + + value + baseband_rate/audio_decim + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (272, 1380) + + + _rotation + 0 + + + id + audio_rate + + + value + 48000 + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (448, 4) + + + _rotation + 0 + + + id + baseband_rate + + + value + samp_rate/bb_decim + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (664, 4) + + + _rotation + 0 + + + id + bb_decim + + + value + 4 + + + + variable_slider + + comment + + + + converver + float_converter + + + value + 100.1e6 + + + _enabled + True + + + _coordinate + (1360, 16) + + + _rotation + 0 + + + grid_pos + (1,0,1,2) + + + id + freq + + + label + Frequency + + + max + 108e6 + + + min + 88e6 + + + notebook + + + + num_steps + 1000 + + + style + wx.SL_HORIZONTAL + + + + variable_slider + + comment + + + + converver + int_converter + + + value + 40 + + + _enabled + True + + + _coordinate + (1216, 16) + + + _rotation + 0 + + + grid_pos + (0,0,1,1) + + + id + gain + + + label + RF Gain + + + max + 70 + + + min + 0 + + + notebook + + + + num_steps + 70 + + + style + wx.SL_HORIZONTAL + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (344, 4) + + + _rotation + 0 + + + id + samp_rate + + + value + 1000000 + + + + variable_slider + + comment + + + + converver + float_converter + + + value + 0.5 + + + _enabled + True + + + _coordinate + (1504, 16) + + + _rotation + 0 + + + grid_pos + (0,1,1,1) + + + id + volume + + + label + Volume + + + max + 2 + + + min + 0 + + + notebook + + + + num_steps + 51 + + + style + wx.SL_HORIZONTAL + + + + variable + + comment + + + + _enabled + True + + + _coordinate + (280, 308) + + + _rotation + 0 + + + id + xlate_bandwidth + + + value + 100000 + + + + analog_fm_deemph + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (632, 1308) + + + _rotation + 180 + + + id + analog_fm_deemph_0_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_rate + audio_decim_rate + + + tau + 75e-6 + + + + analog_fm_deemph + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (640, 1460) + + + _rotation + 180 + + + id + analog_fm_deemph_0_0_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_rate + audio_decim_rate + + + tau + 75e-6 + + + + analog_pll_refout_cc + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (864, 532) + + + _rotation + 0 + + + id + analog_pll_refout_cc_0 + + + w + 0.001 + + + max_freq + 2 * math.pi * (19000+200) / baseband_rate + + + maxoutbuf + 0 + + + min_freq + 2 * math.pi * (19000-200) / baseband_rate + + + minoutbuf + 0 + + + + analog_wfm_rcv + + audio_decimation + bb_decim + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (536, 380) + + + _rotation + 0 + + + id + analog_wfm_rcv_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + quad_rate + samp_rate + + + + audio_sink + + alias + + + + comment + + + + affinity + + + + device_name + + + + _enabled + True + + + _coordinate + (48, 1352) + + + _rotation + 180 + + + id + audio_sink_0 + + + num_inputs + 2 + + + ok_to_block + True + + + samp_rate + audio_rate + + + + blocks_add_xx + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (824, 1456) + + + _rotation + 180 + + + id + blocks_add_xx_0 + + + type + float + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + num_inputs + 2 + + + vlen + 1 + + + + blocks_complex_to_imag + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (872, 680) + + + _rotation + 0 + + + id + blocks_complex_to_imag_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + vlen + 1 + + + + blocks_complex_to_real + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (272, 1056) + + + _rotation + 0 + + + id + blocks_complex_to_real_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + vlen + 1 + + + + blocks_keep_one_in_n + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (232, 1100) + + + _rotation + 0 + + + id + blocks_keep_one_in_n_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + n + 2 + + + type + byte + + + vlen + 1 + + + + blocks_multiply_const_vxx + + alias + + + + comment + + + + const + volume + + + affinity + + + + _enabled + True + + + _coordinate + (472, 1468) + + + _rotation + 180 + + + id + blocks_multiply_const_vxx_0 + + + type + float + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + vlen + 1 + + + + blocks_multiply_const_vxx + + alias + + + + comment + + + + const + volume + + + affinity + + + + _enabled + True + + + _coordinate + (472, 1316) + + + _rotation + 180 + + + id + blocks_multiply_const_vxx_0_0 + + + type + float + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + vlen + 1 + + + + blocks_multiply_xx + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (1264, 736) + + + _rotation + 270 + + + id + blocks_multiply_xx_0 + + + type + float + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + num_inputs + 2 + + + vlen + 1 + + + + blocks_multiply_xx + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (928, 608) + + + _rotation + 180 + + + id + blocks_multiply_xx_1 + + + type + complex + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + num_inputs + 2 + + + vlen + 1 + + + + blocks_sub_xx + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (808, 1304) + + + _rotation + 180 + + + id + blocks_sub_xx_0 + + + type + float + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + num_inputs + 2 + + + vlen + 1 + + + + digital_binary_slicer_fb + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (80, 1104) + + + _rotation + 0 + + + id + digital_binary_slicer_fb_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + + digital_diff_decoder_bb + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (368, 1100) + + + _rotation + 0 + + + id + digital_diff_decoder_bb_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + modulus + 2 + + + + digital_mpsk_receiver_cc + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (48, 884) + + + _rotation + 0 + + + gain_mu + 0.05 + + + gain_omega + 0.001 + + + id + digital_mpsk_receiver_cc_0 + + + w + 1*cmath.pi/100.0 + + + M + 2 + + + fmax + 0.06 + + + maxoutbuf + 0 + + + fmin + -0.06 + + + minoutbuf + 0 + + + mu + 0.5 + + + omega_relative_limit + 0.005 + + + omega + samp_rate/bb_decim/audio_decim/ 2375.0 + + + theta + 0 + + + + fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + decim + audio_decim + + + _enabled + True + + + _coordinate + (668, 696) + + + _rotation + 270 + + + id + fir_filter_xxx_1 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_delay + 0 + + + taps + firdes.low_pass(1.0,baseband_rate,13e3,3e3,firdes.WIN_HAMMING) + + + type + fff + + + + fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + decim + 1 + + + _enabled + True + + + _coordinate + (864, 412) + + + _rotation + 180 + + + id + fir_filter_xxx_2 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_delay + 0 + + + taps + firdes.complex_band_pass(1.0,baseband_rate,19e3-500,19e3+500,1e3,firdes.WIN_HAMMING) + + + type + fcc + + + + fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + decim + 1 + + + _enabled + True + + + _coordinate + (1272, 380) + + + _rotation + 0 + + + id + fir_filter_xxx_3 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_delay + 0 + + + taps + firdes.band_pass(1.0,baseband_rate,38e3-13e3,38e3+13e3,3e3,firdes.WIN_HAMMING) + + + type + fff + + + + fir_filter_xxx + + alias + + + + comment + + + + affinity + + + + decim + audio_decim + + + _enabled + True + + + _coordinate + (1268, 1144) + + + _rotation + 270 + + + id + fir_filter_xxx_5 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_delay + 0 + + + taps + firdes.low_pass(1.0,baseband_rate,20e3,40e3,firdes.WIN_HAMMING) + + + type + fff + + + + freq_xlating_fir_filter_xxx + + alias + + + + center_freq + 0 + + + comment + + + + affinity + + + + decim + 1 + + + _enabled + True + + + _coordinate + (240, 368) + + + _rotation + 0 + + + id + freq_xlating_fir_filter_xxx_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_rate + samp_rate + + + taps + firdes.low_pass(1, samp_rate, xlate_bandwidth, 100000) + + + type + ccc + + + + freq_xlating_fir_filter_xxx + + alias + + + + center_freq + 57e3 + + + comment + + + + affinity + + + + decim + audio_decim + + + _enabled + True + + + _coordinate + (48, 648) + + + _rotation + 0 + + + id + freq_xlating_fir_filter_xxx_1 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samp_rate + baseband_rate + + + taps + firdes.low_pass(2500.0,baseband_rate,2.4e3,2e3,firdes.WIN_HAMMING) + + + type + fcc + + + + gr_rds_decoder + + alias + + + + comment + + + + affinity + + + + debug + False + + + _enabled + True + + + _coordinate + (408, 1156) + + + _rotation + 180 + + + id + gr_rds_decoder_0 + + + log + True + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + + gr_rds_panel + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + freq + freq + + + _coordinate + (40, 1168) + + + _rotation + 180 + + + grid_pos + + + + id + gr_rds_panel_0 + + + notebook + + + + + gr_rds_parser + + alias + + + + comment + + + + affinity + + + + debug + False + + + _enabled + True + + + _coordinate + (224, 1148) + + + _rotation + 180 + + + id + gr_rds_parser_0 + + + log + True + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + pty_locale + 0 + + + reset + 0 + + + + import + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (888, 484) + + + _rotation + 0 + + + id + import_0 + + + import + import math + + + + limesdr_source + + alias + + + + channel + 0 + + + analog_bandw_ch0 + 1.5e6 + + + analog_filter_ch0 + 1 + + + cmix_mode_ch0 + 0 + + + calibr_bandw_ch0 + 2.5e6 + + + calibration_ch0 + 1 + + + digital_bandw_ch0 + 100e3 + + + digital_filter_ch0 + 1 + + + gain_dB_ch0 + gain + + + lna_path_ch0 + 2 + + + lna_path_mini + 3 + + + nco_freq_ch0 + 0 + + + analog_bandw_ch1 + 10e6 + + + analog_filter_ch1 + 0 + + + cmix_mode_ch1 + 0 + + + calibr_bandw_ch1 + 10e6 + + + calibration_ch1 + 0 + + + digital_bandw_ch1 + 0 + + + digital_filter_ch1 + 0 + + + gain_dB_ch1 + 60 + + + lna_path_ch1 + 1 + + + nco_freq_ch1 + 100e6 + + + chip_mode + 1 + + + comment + + + + affinity + + + + serial + + + + device_type + 1 + + + _enabled + True + + + filename + + + + _coordinate + (8, 260) + + + _rotation + 0 + + + id + limesdr_source_0 + + + file_switch + 0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + oversample + 0 + + + rf_freq + freq + + + samp_rate + samp_rate + + + + notebook + + alias + + + + comment + + + + _enabled + True + + + _coordinate + (184, 6) + + + _rotation + 0 + + + grid_pos + (2,0,1,2) + + + id + nb + + + labels + ['BB', 'Demod', 'L+R', 'L-R', 'Pilot', 'DSBSC', 'RDS', 'RDS constellation','Waterfall'] + + + notebook + + + + style + wx.NB_TOP + + + + note + + alias + + + + comment + L+R for +stereo +receivers + + + _enabled + True + + + _coordinate + (776, 900) + + + _rotation + 180 + + + id + note_0 + + + note + L+R + + + + note + + alias + + + + comment + In FM stereo broadcasting, +a pilot tone of 19 kHz indicates +that there is stereophonic +information at 38 kHz +(19×2, the second harmonic of the pilot). +The receiver doubles the frequency +of the pilot tone and uses it as a +frequency and phase reference to +demodulate the stereo information. + + + _enabled + True + + + _coordinate + (1048, 460) + + + _rotation + 180 + + + id + note_0_0 + + + note + Pilot + + + + note + + alias + + + + comment + DSBSC modulation +of 38 kHz sinewave +for mono + + + _enabled + True + + + _coordinate + (1272, 276) + + + _rotation + 180 + + + id + note_0_0_0 + + + note + DSBSC + + + + note + + alias + + + + comment + L-R for +mono +receivers + + + _enabled + True + + + _coordinate + (1136, 900) + + + _rotation + 0 + + + id + note_0_1 + + + note + L-R + + + + note + + alias + + + + comment + Digital signal which +includes information such +as the name of the station, +or free text such as the title +of the program or the music. + + + _enabled + True + + + _coordinate + (264, 548) + + + _rotation + 180 + + + id + note_0_2 + + + note + RDS + + + + note + + alias + + + + comment + We use lowest possible +analog filter bandwidth +and +100 kHz digital filter bandwidth + + + _enabled + True + + + _coordinate + (8, 140) + + + _rotation + 180 + + + id + note_10 + + + note + LimeSDR + + + + rational_resampler_xxx + + alias + + + + comment + + + + affinity + + + + decim + audio_decim_rate + + + _enabled + True + + + fbw + 0 + + + _coordinate + (280, 1448) + + + _rotation + 180 + + + id + rational_resampler_xxx_0 + + + interp + audio_rate + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + taps + [] + + + type + fff + + + + rational_resampler_xxx + + alias + + + + comment + + + + affinity + + + + decim + audio_decim_rate + + + _enabled + True + + + fbw + 0 + + + _coordinate + (280, 1296) + + + _rotation + 180 + + + id + rational_resampler_xxx_0_0 + + + interp + audio_rate + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + taps + [] + + + type + fff + + + + root_raised_cosine_filter + + alpha + 1 + + + alias + + + + comment + + + + affinity + + + + decim + 1 + + + _enabled + True + + + type + fir_filter_ccf + + + _coordinate + (48, 760) + + + _rotation + 180 + + + gain + 1 + + + id + root_raised_cosine_filter_0 + + + interp + 1 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + ntaps + 100 + + + samp_rate + samp_rate/bb_decim/audio_decim + + + sym_rate + 2375 + + + + wxgui_fftsink2 + + avg_alpha + 0.8 + + + average + True + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + fft_size + 1024 + + + freqvar + None + + + _coordinate + (544, 120) + + + _rotation + 0 + + + grid_pos + + + + id + wxgui_fftsink2_0 + + + notebook + nb, 0 + + + peak_hold + False + + + ref_level + -30 + + + ref_scale + 2.0 + + + fft_rate + 15 + + + samp_rate + samp_rate + + + title + Baseband + + + type + complex + + + win_size + + + + win + None + + + y_divs + 10 + + + y_per_div + 10 + + + + wxgui_fftsink2 + + avg_alpha + 0.8 + + + average + True + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + fft_size + 1024 + + + freqvar + None + + + _coordinate + (904, 120) + + + _rotation + 180 + + + grid_pos + + + + id + wxgui_fftsink2_0_0 + + + notebook + nb, 1 + + + peak_hold + False + + + ref_level + 0 + + + ref_scale + 2.0 + + + fft_rate + 15 + + + samp_rate + baseband_rate + + + title + FM Demod + + + type + float + + + win_size + + + + win + None + + + y_divs + 10 + + + y_per_div + 10 + + + + wxgui_fftsink2 + + avg_alpha + 0 + + + average + False + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + fft_size + 1024 + + + freqvar + None + + + _coordinate + (736, 1012) + + + _rotation + 0 + + + grid_pos + + + + id + wxgui_fftsink2_0_0_0 + + + notebook + nb, 2 + + + peak_hold + False + + + ref_level + 0 + + + ref_scale + 2.0 + + + fft_rate + 15 + + + samp_rate + audio_decim_rate + + + title + L+R + + + type + float + + + win_size + + + + win + None + + + y_divs + 10 + + + y_per_div + 10 + + + + wxgui_fftsink2 + + avg_alpha + 0 + + + average + False + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + fft_size + 1024 + + + freqvar + None + + + _coordinate + (1504, 316) + + + _rotation + 0 + + + grid_pos + + + + id + wxgui_fftsink2_0_0_0_1 + + + notebook + nb, 5 + + + peak_hold + False + + + ref_level + 0 + + + ref_scale + 2.0 + + + fft_rate + 15 + + + samp_rate + baseband_rate + + + title + DSBSC Sub-carrier + + + type + float + + + win_size + + + + win + None + + + y_divs + 10 + + + y_per_div + 10 + + + + wxgui_fftsink2 + + avg_alpha + 0 + + + average + False + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + fft_size + 1024 + + + freqvar + None + + + _coordinate + (1096, 1012) + + + _rotation + 180 + + + grid_pos + + + + id + wxgui_fftsink2_0_0_0_1_0_0 + + + notebook + nb, 3 + + + peak_hold + False + + + ref_level + -50 + + + ref_scale + 2.0 + + + fft_rate + 15 + + + samp_rate + baseband_rate + + + title + L-R + + + type + float + + + win_size + + + + win + None + + + y_divs + 10 + + + y_per_div + 10 + + + + wxgui_fftsink2 + + avg_alpha + 0 + + + average + False + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + fft_size + 1024 + + + freqvar + None + + + _coordinate + (312, 684) + + + _rotation + 0 + + + grid_pos + + + + id + wxgui_fftsink2_0_0_0_1_0_1 + + + notebook + nb,6 + + + peak_hold + False + + + ref_level + 0 + + + ref_scale + 2.0 + + + fft_rate + 15 + + + samp_rate + audio_rate + + + title + RDS + + + type + complex + + + win_size + + + + win + None + + + y_divs + 10 + + + y_per_div + 10 + + + + wxgui_scopesink2 + + ac_couple + False + + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (864, 728) + + + _rotation + 180 + + + grid_pos + + + + id + wxgui_scopesink2_0 + + + notebook + nb, 4 + + + num_inputs + 1 + + + samp_rate + baseband_rate + + + t_scale + 0 + + + title + Pilot + + + trig_mode + wxgui.TRIG_MODE_AUTO + + + type + float + + + v_offset + 0 + + + v_scale + 0 + + + win_size + + + + xy_mode + False + + + y_axis_label + Counts + + + + wxgui_scopesink2 + + ac_couple + False + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (320, 904) + + + _rotation + 0 + + + grid_pos + + + + id + wxgui_scopesink2_1 + + + notebook + nb,7 + + + num_inputs + 1 + + + samp_rate + 2375 + + + t_scale + 0 + + + title + Scope Plot + + + trig_mode + wxgui.TRIG_MODE_AUTO + + + type + complex + + + v_offset + 0 + + + v_scale + 0.4 + + + win_size + + + + xy_mode + True + + + y_axis_label + Counts + + + + wxgui_waterfallsink2 + + avg_alpha + 0 + + + average + False + + + baseband_freq + 0 + + + alias + + + + comment + + + + affinity + + + + dynamic_range + 100 + + + _enabled + True + + + fft_rate + 15 + + + fft_size + 512 + + + freqvar + None + + + _coordinate + (736, 124) + + + _rotation + 0 + + + grid_pos + + + + id + wxgui_waterfallsink2_0 + + + notebook + nb,8 + + + ref_scale + 2.0 + + + ref_level + 0 + + + samp_rate + baseband_rate + + + title + Waterfall Plot + + + type + float + + + win_size + + + + win + None + + + + analog_fm_deemph_0_0 + blocks_multiply_const_vxx_0_0 + 0 + 0 + + + analog_fm_deemph_0_0_0 + blocks_multiply_const_vxx_0 + 0 + 0 + + + analog_pll_refout_cc_0 + blocks_multiply_xx_1 + 0 + 0 + + + analog_pll_refout_cc_0 + blocks_multiply_xx_1 + 0 + 1 + + + analog_wfm_rcv_0 + fir_filter_xxx_1 + 0 + 0 + + + analog_wfm_rcv_0 + fir_filter_xxx_2 + 0 + 0 + + + analog_wfm_rcv_0 + fir_filter_xxx_3 + 0 + 0 + + + analog_wfm_rcv_0 + freq_xlating_fir_filter_xxx_1 + 0 + 0 + + + analog_wfm_rcv_0 + wxgui_fftsink2_0_0 + 0 + 0 + + + analog_wfm_rcv_0 + wxgui_waterfallsink2_0 + 0 + 0 + + + blocks_add_xx_0 + analog_fm_deemph_0_0_0 + 0 + 0 + + + blocks_complex_to_imag_0 + blocks_multiply_xx_0 + 0 + 1 + + + blocks_complex_to_imag_0 + wxgui_scopesink2_0 + 0 + 0 + + + blocks_complex_to_real_0 + digital_binary_slicer_fb_0 + 0 + 0 + + + blocks_keep_one_in_n_0 + digital_diff_decoder_bb_0 + 0 + 0 + + + blocks_multiply_const_vxx_0 + rational_resampler_xxx_0 + 0 + 0 + + + blocks_multiply_const_vxx_0_0 + rational_resampler_xxx_0_0 + 0 + 0 + + + blocks_multiply_xx_0 + fir_filter_xxx_5 + 0 + 0 + + + blocks_multiply_xx_0 + wxgui_fftsink2_0_0_0_1_0_0 + 0 + 0 + + + blocks_multiply_xx_1 + blocks_complex_to_imag_0 + 0 + 0 + + + blocks_sub_xx_0 + analog_fm_deemph_0_0 + 0 + 0 + + + digital_binary_slicer_fb_0 + blocks_keep_one_in_n_0 + 0 + 0 + + + digital_diff_decoder_bb_0 + gr_rds_decoder_0 + 0 + 0 + + + digital_mpsk_receiver_cc_0 + blocks_complex_to_real_0 + 0 + 0 + + + digital_mpsk_receiver_cc_0 + wxgui_scopesink2_1 + 0 + 0 + + + fir_filter_xxx_1 + blocks_add_xx_0 + 0 + 0 + + + fir_filter_xxx_1 + blocks_sub_xx_0 + 0 + 0 + + + fir_filter_xxx_1 + wxgui_fftsink2_0_0_0 + 0 + 0 + + + fir_filter_xxx_2 + analog_pll_refout_cc_0 + 0 + 0 + + + fir_filter_xxx_3 + blocks_multiply_xx_0 + 0 + 0 + + + fir_filter_xxx_3 + wxgui_fftsink2_0_0_0_1 + 0 + 0 + + + fir_filter_xxx_5 + blocks_add_xx_0 + 0 + 1 + + + fir_filter_xxx_5 + blocks_sub_xx_0 + 0 + 1 + + + freq_xlating_fir_filter_xxx_0 + analog_wfm_rcv_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_0 + wxgui_fftsink2_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_1 + root_raised_cosine_filter_0 + 0 + 0 + + + freq_xlating_fir_filter_xxx_1 + wxgui_fftsink2_0_0_0_1_0_1 + 0 + 0 + + + gr_rds_decoder_0 + gr_rds_parser_0 + out + in + + + gr_rds_parser_0 + gr_rds_panel_0 + out + in + + + limesdr_source_0 + freq_xlating_fir_filter_xxx_0 + 0 + 0 + + + rational_resampler_xxx_0 + audio_sink_0 + 0 + 0 + + + rational_resampler_xxx_0_0 + audio_sink_0 + 0 + 1 + + + root_raised_cosine_filter_0 + digital_mpsk_receiver_cc_0 + 0 + 0 + + diff --git a/examples/FM_receiver.grc b/examples/FM_receiver.grc index 707890e..020a348 100644 --- a/examples/FM_receiver.grc +++ b/examples/FM_receiver.grc @@ -1,5 +1,5 @@ - + Tue Feb 20 16:15:20 2018 @@ -10,7 +10,7 @@ window_size - + (1200,500) category @@ -72,6 +72,10 @@ run True + + sizing_mode + fixed + thread_safe_setters @@ -80,6 +84,10 @@ title FM receiver + + placement + (0,0) + variable_slider @@ -101,7 +109,7 @@ _coordinate - (584, 17) + (248, 368) _rotation @@ -160,7 +168,7 @@ _coordinate - (728, 17) + (392, 368) _rotation @@ -219,7 +227,7 @@ _coordinate - (864, 17) + (896, 152) _rotation @@ -282,7 +290,7 @@ _coordinate - (616, 205) + (704, 260) _rotation @@ -329,7 +337,7 @@ _coordinate - (840, 140) + (1056, 268) _rotation @@ -376,7 +384,7 @@ _coordinate - (792, 212) + (896, 268) _rotation @@ -421,6 +429,10 @@ analog_filter_ch0 1 + + cmix_mode_ch0 + 0 + calibr_bandw_ch0 2.5e6 @@ -449,6 +461,10 @@ lna_path_mini 3 + + nco_freq_ch0 + 0 + analog_bandw_ch1 2e6 @@ -457,6 +473,10 @@ analog_filter_ch1 1 + + cmix_mode_ch1 + 0 + calibr_bandw_ch1 2.5e6 @@ -482,8 +502,8 @@ 2 - rf_freq - 100.1e6 + nco_freq_ch1 + 0 chip_mode @@ -498,8 +518,8 @@ - device_number - 0 + serial + device_type @@ -515,7 +535,7 @@ _coordinate - (8, 107) + (8, 148) _rotation @@ -541,6 +561,10 @@ oversample 0 + + rf_freq + 100.1e6 + samp_rate 2e6 @@ -582,7 +606,7 @@ _coordinate - (248, 170) + (288, 224) _rotation @@ -649,7 +673,7 @@ _coordinate - (440, 191) + (520, 248) _rotation @@ -720,7 +744,7 @@ _coordinate - (424, 13) + (520, 12) _rotation diff --git a/examples/FM_transmitter.grc b/examples/FM_transmitter.grc index 46106bd..edd6fcb 100644 --- a/examples/FM_transmitter.grc +++ b/examples/FM_transmitter.grc @@ -1,5 +1,5 @@ - + Tue Feb 20 16:22:48 2018 @@ -10,7 +10,7 @@ window_size - + (1000,500) category @@ -72,6 +72,10 @@ run True + + sizing_mode + fixed + thread_safe_setters @@ -80,6 +84,10 @@ title FM transmitter + + placement + (0,0) + analog_nbfm_tx @@ -105,7 +113,7 @@ _coordinate - (216, 199) + (200, 200) _rotation @@ -127,6 +135,10 @@ minoutbuf 0 + + fh + -1.0 + quad_rate 480000 @@ -160,7 +172,7 @@ _coordinate - (8, 213) + (16, 220) _rotation @@ -205,6 +217,10 @@ analog_filter_ch0 1 + + cmix_mode_ch0 + 0 + calibr_bandw_ch0 2.5e6 @@ -225,6 +241,10 @@ gain_dB_ch0 60 + + nco_freq_ch0 + 0 + pa_path_ch0 1 @@ -241,6 +261,10 @@ analog_filter_ch1 1 + + cmix_mode_ch1 + 0 + calibr_bandw_ch1 10e6 @@ -262,12 +286,12 @@ 0 - pa_path_ch1 - 1 + nco_freq_ch1 + 0 - rf_freq - 446.09375e6 + pa_path_ch1 + 1 chip_mode @@ -282,8 +306,8 @@ - device_number - 0 + serial + device_type @@ -299,7 +323,7 @@ _coordinate - (608, 19) + (696, 20) _rotation @@ -317,6 +341,10 @@ oversample 0 + + rf_freq + 446.09375e6 + samp_rate 2e6 @@ -350,7 +378,7 @@ _coordinate - (400, 199) + (448, 208) _rotation @@ -421,7 +449,7 @@ _coordinate - (608, 285) + (696, 308) _rotation diff --git a/examples/GFSK.grc b/examples/GFSK.grc new file mode 100644 index 0000000..891f9e8 --- /dev/null +++ b/examples/GFSK.grc @@ -0,0 +1,1640 @@ + + + + Thu May 24 14:58:19 2018 + + options + + author + Lime Microsystems + + + window_size + (1000,500) + + + category + Custom + + + comment + + + + description + + + + _enabled + True + + + _coordinate + (8, 8) + + + _rotation + 0 + + + generate_options + qt_gui + + + hier_block_src_path + .: + + + id + top_block + + + max_nouts + 0 + + + qt_qss_theme + + + + realtime_scheduling + + + + run_command + {python} -u {filename} + + + run_options + prompt + + + run + True + + + sizing_mode + fixed + + + thread_safe_setters + + + + title + GFSK loopback + + + placement + (0,0) + + + + analog_quadrature_demod_cf + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (656, 52) + + + _rotation + 0 + + + gain + 1 + + + id + analog_quadrature_demod_cf_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + + analog_quadrature_demod_cf + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (256, 292) + + + _rotation + 0 + + + gain + 1 + + + id + analog_quadrature_demod_cf_0_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + + blks2_packet_decoder + + access_code + + + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + _coordinate + (472, 388) + + + _rotation + 0 + + + id + blks2_packet_decoder_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + type + byte + + + threshold + -1 + + + + blks2_packet_encoder + + access_code + + + + bits_per_symbol + 1 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (240, 96) + + + _rotation + 0 + + + id + blks2_packet_encoder_0 + + + type + byte + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + pad_for_usrp + False + + + payload_length + 16 + + + preamble + + + + samples_per_symbol + 4 + + + + blocks_file_sink + + append + False + + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + file + + + + _coordinate + (640, 380) + + + _rotation + 0 + + + id + blocks_file_sink_0 + + + type + byte + + + unbuffered + True + + + vlen + 1 + + + + blocks_file_source + + begin_tag + pmt.PMT_NIL + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + file + + + + _coordinate + (72, 116) + + + _rotation + 0 + + + id + blocks_file_source_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + type + byte + + + repeat + True + + + vlen + 1 + + + + digital_gfsk_demod + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + freq_error + 0.0 + + + _coordinate + (256, 360) + + + _rotation + 0 + + + gain_mu + 0.175 + + + id + digital_gfsk_demod_0 + + + log + False + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + mu + 0.5 + + + omega_relative_limit + 0.005 + + + samples_per_symbol + 4 + + + sensitivity + 1 + + + verbose + False + + + + digital_gfsk_mod + + bt + 0.35 + + + alias + + + + comment + + + + affinity + + + + _enabled + True + + + _coordinate + (448, 112) + + + _rotation + 0 + + + id + digital_gfsk_mod_0 + + + log + False + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + samples_per_symbol + 4 + + + sensitivity + 1 + + + verbose + True + + + + limesdr_sink + + alias + + + + channel + 0 + + + analog_bandw_ch0 + 10e6 + + + analog_filter_ch0 + 0 + + + cmix_mode_ch0 + 0 + + + calibr_bandw_ch0 + 10e6 + + + calibration_ch0 + 0 + + + digital_bandw_ch0 + 0 + + + digital_filter_ch0 + 0 + + + gain_dB_ch0 + 40 + + + nco_freq_ch0 + 0 + + + pa_path_ch0 + 1 + + + pa_path_mini + 1 + + + analog_bandw_ch1 + 10e6 + + + analog_filter_ch1 + 0 + + + cmix_mode_ch1 + 0 + + + calibr_bandw_ch1 + 10e6 + + + calibration_ch1 + 0 + + + digital_bandw_ch1 + 0 + + + digital_filter_ch1 + 0 + + + gain_dB_ch1 + 60 + + + nco_freq_ch1 + 100e6 + + + pa_path_ch1 + 1 + + + chip_mode + 1 + + + comment + + + + affinity + + + + serial + + + + device_type + 2 + + + _enabled + 1 + + + filename + + + + _coordinate + (816, 120) + + + _rotation + 0 + + + id + limesdr_sink_0 + + + file_switch + 0 + + + oversample + 0 + + + rf_freq + 1e9 + + + samp_rate + 0.5e6 + + + + limesdr_source + + alias + + + + channel + 0 + + + analog_bandw_ch0 + 10e6 + + + analog_filter_ch0 + 0 + + + cmix_mode_ch0 + 0 + + + calibr_bandw_ch0 + 10e6 + + + calibration_ch0 + 0 + + + digital_bandw_ch0 + 0 + + + digital_filter_ch0 + 0 + + + gain_dB_ch0 + 40 + + + lna_path_ch0 + 2 + + + lna_path_mini + 3 + + + nco_freq_ch0 + 0 + + + analog_bandw_ch1 + 10e6 + + + analog_filter_ch1 + 0 + + + cmix_mode_ch1 + 0 + + + calibr_bandw_ch1 + 10e6 + + + calibration_ch1 + 0 + + + digital_bandw_ch1 + 0 + + + digital_filter_ch1 + 0 + + + gain_dB_ch1 + 60 + + + lna_path_ch1 + 1 + + + nco_freq_ch1 + 100e6 + + + chip_mode + 1 + + + comment + + + + affinity + + + + serial + + + + device_type + 2 + + + _enabled + 1 + + + filename + + + + _coordinate + (8, 240) + + + _rotation + 0 + + + id + limesdr_source_0 + + + file_switch + 0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + oversample + 0 + + + rf_freq + 1e9 + + + samp_rate + 0.5e6 + + + + qtgui_time_sink_x + + autoscale + False + + + axislabels + True + + + alias + + + + comment + + + + ctrlpanel + False + + + affinity + + + + entags + True + + + _enabled + True + + + _coordinate + (832, 32) + + + gui_hint + + + + _rotation + 0 + + + grid + False + + + id + qtgui_time_sink_x_0 + + + legend + True + + + alpha1 + 1.0 + + + color1 + "blue" + + + label1 + + + + marker1 + -1 + + + style1 + 1 + + + width1 + 1 + + + alpha10 + 1.0 + + + color10 + "blue" + + + label10 + + + + marker10 + -1 + + + style10 + 1 + + + width10 + 1 + + + alpha2 + 1.0 + + + color2 + "red" + + + label2 + + + + marker2 + -1 + + + style2 + 1 + + + width2 + 1 + + + alpha3 + 1.0 + + + color3 + "green" + + + label3 + + + + marker3 + -1 + + + style3 + 1 + + + width3 + 1 + + + alpha4 + 1.0 + + + color4 + "black" + + + label4 + + + + marker4 + -1 + + + style4 + 1 + + + width4 + 1 + + + alpha5 + 1.0 + + + color5 + "cyan" + + + label5 + + + + marker5 + -1 + + + style5 + 1 + + + width5 + 1 + + + alpha6 + 1.0 + + + color6 + "magenta" + + + label6 + + + + marker6 + -1 + + + style6 + 1 + + + width6 + 1 + + + alpha7 + 1.0 + + + color7 + "yellow" + + + label7 + + + + marker7 + -1 + + + style7 + 1 + + + width7 + 1 + + + alpha8 + 1.0 + + + color8 + "dark red" + + + label8 + + + + marker8 + -1 + + + style8 + 1 + + + width8 + 1 + + + alpha9 + 1.0 + + + color9 + "dark green" + + + label9 + + + + marker9 + -1 + + + style9 + 1 + + + width9 + 1 + + + name + Sent Signal + + + nconnections + 1 + + + size + 1024 + + + srate + 2.4e6 + + + stemplot + False + + + tr_chan + 0 + + + tr_delay + 0 + + + tr_level + 0.0 + + + tr_mode + qtgui.TRIG_MODE_FREE + + + tr_slope + qtgui.TRIG_SLOPE_POS + + + tr_tag + "" + + + type + float + + + update_time + 0.10 + + + ylabel + Amplitude + + + yunit + "" + + + ymax + 1 + + + ymin + -1 + + + + qtgui_time_sink_x + + autoscale + False + + + axislabels + True + + + alias + + + + comment + + + + ctrlpanel + False + + + affinity + + + + entags + True + + + _enabled + True + + + _coordinate + (440, 272) + + + gui_hint + + + + _rotation + 0 + + + grid + False + + + id + qtgui_time_sink_x_0_0 + + + legend + True + + + alpha1 + 1.0 + + + color1 + "blue" + + + label1 + + + + marker1 + -1 + + + style1 + 1 + + + width1 + 1 + + + alpha10 + 1.0 + + + color10 + "blue" + + + label10 + + + + marker10 + -1 + + + style10 + 1 + + + width10 + 1 + + + alpha2 + 1.0 + + + color2 + "red" + + + label2 + + + + marker2 + -1 + + + style2 + 1 + + + width2 + 1 + + + alpha3 + 1.0 + + + color3 + "green" + + + label3 + + + + marker3 + -1 + + + style3 + 1 + + + width3 + 1 + + + alpha4 + 1.0 + + + color4 + "black" + + + label4 + + + + marker4 + -1 + + + style4 + 1 + + + width4 + 1 + + + alpha5 + 1.0 + + + color5 + "cyan" + + + label5 + + + + marker5 + -1 + + + style5 + 1 + + + width5 + 1 + + + alpha6 + 1.0 + + + color6 + "magenta" + + + label6 + + + + marker6 + -1 + + + style6 + 1 + + + width6 + 1 + + + alpha7 + 1.0 + + + color7 + "yellow" + + + label7 + + + + marker7 + -1 + + + style7 + 1 + + + width7 + 1 + + + alpha8 + 1.0 + + + color8 + "dark red" + + + label8 + + + + marker8 + -1 + + + style8 + 1 + + + width8 + 1 + + + alpha9 + 1.0 + + + color9 + "dark green" + + + label9 + + + + marker9 + -1 + + + style9 + 1 + + + width9 + 1 + + + name + Received Signal + + + nconnections + 1 + + + size + 1024 + + + srate + 2.4e6 + + + stemplot + False + + + tr_chan + 0 + + + tr_delay + 0 + + + tr_level + 0.0 + + + tr_mode + qtgui.TRIG_MODE_FREE + + + tr_slope + qtgui.TRIG_SLOPE_POS + + + tr_tag + "" + + + type + float + + + update_time + 0.10 + + + ylabel + Amplitude + + + yunit + "" + + + ymax + 1 + + + ymin + -1 + + + + analog_quadrature_demod_cf_0 + qtgui_time_sink_x_0 + 0 + 0 + + + analog_quadrature_demod_cf_0_0 + qtgui_time_sink_x_0_0 + 0 + 0 + + + blks2_packet_decoder_0 + blocks_file_sink_0 + 0 + 0 + + + blks2_packet_encoder_0 + digital_gfsk_mod_0 + 0 + 0 + + + blocks_file_source_0 + blks2_packet_encoder_0 + 0 + 0 + + + digital_gfsk_demod_0 + blks2_packet_decoder_0 + 0 + 0 + + + digital_gfsk_mod_0 + analog_quadrature_demod_cf_0 + 0 + 0 + + + digital_gfsk_mod_0 + limesdr_sink_0 + 0 + 0 + + + limesdr_source_0 + analog_quadrature_demod_cf_0_0 + 0 + 0 + + + limesdr_source_0 + digital_gfsk_demod_0 + 0 + 0 + + diff --git a/examples/signal_analyzer.grc b/examples/signal_analyzer.grc new file mode 100644 index 0000000..00c6b3a --- /dev/null +++ b/examples/signal_analyzer.grc @@ -0,0 +1,915 @@ + + + + Mon May 21 21:44:03 2018 + + options + + author + Lime Microsystems + + + window_size + (1000,500) + + + category + Custom + + + comment + + + + description + + + + _enabled + True + + + _coordinate + (8, 8) + + + _rotation + 0 + + + generate_options + qt_gui + + + hier_block_src_path + .: + + + id + top_block + + + max_nouts + 0 + + + qt_qss_theme + + + + realtime_scheduling + + + + run_command + {python} -u {filename} + + + run_options + prompt + + + run + True + + + sizing_mode + fixed + + + thread_safe_setters + + + + title + Signal analyzer + + + placement + (0,0) + + + + variable_qtgui_entry + + comment + + + + value + 10 + + + _enabled + True + + + _coordinate + (176, 206) + + + gui_hint + 0,4,1,1 + + + _rotation + 0 + + + id + analog_filter_bandwidth_rx + + + label + RX analog filter bandwidth [MHz] + + + type + real + + + + variable_qtgui_chooser + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (200, 283) + + + gui_hint + + + + _rotation + 0 + + + id + analog_filter_rx + + + label0 + "OFF" + + + label1 + "ON" + + + label2 + + + + label3 + + + + label4 + + + + label + RX analog filter + + + labels + [] + + + num_opts + 2 + + + option0 + 0 + + + option1 + 1 + + + option2 + 2 + + + option3 + 3 + + + option4 + 4 + + + options + [0, 1, 2] + + + orient + Qt.QHBoxLayout + + + type + int + + + widget + radio_buttons + + + + variable_qtgui_entry + + comment + + + + value + 600 + + + _enabled + True + + + _coordinate + (176, 118) + + + gui_hint + 0,1,1,1 + + + _rotation + 0 + + + id + baseband_rx + + + label + RX baseband [MHz] + + + type + real + + + + variable_qtgui_entry + + comment + + + + value + sample_rate/2e6 + + + _enabled + True + + + _coordinate + (368, 206) + + + gui_hint + 0,6,1,1 + + + _rotation + 0 + + + id + digital_filter_bandwidth_rx + + + label + RX digital filter bandwidth [MHz] + + + type + real + + + + variable_qtgui_chooser + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (384, 283) + + + gui_hint + + + + _rotation + 0 + + + id + digital_filter_rx + + + label0 + "OFF" + + + label1 + "ON" + + + label2 + + + + label3 + + + + label4 + + + + label + RX digital filter + + + labels + [] + + + num_opts + 2 + + + option0 + 0 + + + option1 + 1 + + + option2 + 2 + + + option3 + 3 + + + option4 + 4 + + + options + [0, 1, 2] + + + orient + Qt.QHBoxLayout + + + type + int + + + widget + radio_buttons + + + + variable_qtgui_range + + comment + + + + value + 0 + + + _enabled + 1 + + + _coordinate + (392, 73) + + + gui_hint + 0,8,1,1 + + + _rotation + 0 + + + id + gain_rx + + + label + RX gain + + + min_len + 200 + + + orient + Qt.Horizontal + + + start + 0 + + + step + 1 + + + stop + 70 + + + rangeType + int + + + widget + counter_slider + + + + variable_qtgui_chooser + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (8, 283) + + + gui_hint + 0,3,1,1 + + + _rotation + 0 + + + id + nco_direction_rx + + + label0 + "UPCONVERT" + + + label1 + "DOWNCONVERT" + + + label2 + + + + label3 + + + + label4 + + + + label + RX NCO direction + + + labels + [] + + + num_opts + 2 + + + option0 + 0 + + + option1 + 1 + + + option2 + 2 + + + option3 + 3 + + + option4 + 4 + + + options + [0, 1, 2] + + + orient + Qt.QHBoxLayout + + + type + int + + + widget + radio_buttons + + + + variable_qtgui_entry + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (16, 206) + + + gui_hint + 0,2,1,1 + + + _rotation + 0 + + + id + nco_freq_rx + + + label + RX NCO [MHz] + + + type + real + + + + variable_qtgui_label + + comment + + + + value + 5e6 + + + _enabled + True + + + formatter + None + + + _coordinate + (192, 14) + + + gui_hint + 0,0,1,1 + + + _rotation + 0 + + + id + sample_rate + + + label + Sample rate [S/s] + + + type + raw + + + + limesdr_source + + alias + + + + channel + 0 + + + analog_bandw_ch0 + analog_filter_bandwidth_rx*1e6 + + + analog_filter_ch0 + analog_filter_rx + + + cmix_mode_ch0 + nco_direction_rx + + + calibr_bandw_ch0 + 5e6 + + + calibration_ch0 + 0 + + + digital_bandw_ch0 + digital_filter_bandwidth_rx*1e6 + + + digital_filter_ch0 + digital_filter_rx + + + gain_dB_ch0 + gain_rx + + + lna_path_ch0 + 2 + + + lna_path_mini + 1 + + + nco_freq_ch0 + nco_freq_rx*1e6 + + + analog_bandw_ch1 + 10e6 + + + analog_filter_ch1 + 0 + + + cmix_mode_ch1 + 0 + + + calibr_bandw_ch1 + 5e6 + + + calibration_ch1 + 0 + + + digital_bandw_ch1 + 0 + + + digital_filter_ch1 + 0 + + + gain_dB_ch1 + 0 + + + lna_path_ch1 + 2 + + + nco_freq_ch1 + 0 + + + chip_mode + 1 + + + comment + + + + affinity + + + + serial + + + + device_type + 2 + + + _enabled + 1 + + + filename + + + + _coordinate + (552, 120) + + + _rotation + 0 + + + id + limesdr_source_0 + + + file_switch + 0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + oversample + 0 + + + rf_freq + baseband_rx*1e6 + + + samp_rate + sample_rate + + + + qtgui_sink_x + + bw + sample_rate + + + alias + + + + fc + baseband_rx*1e6 + + + freqchangevar + None + + + comment + + + + affinity + + + + _enabled + True + + + fftsize + 4096 + + + _coordinate + (776, 200) + + + gui_hint + 1,0,8,8 + + + _rotation + 0 + + + id + qtgui_sink_x_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + name + + + + plotconst + True + + + plotfreq + True + + + plottime + True + + + plotwaterfall + True + + + showports + True + + + showrf + True + + + type + complex + + + rate + 10 + + + wintype + firdes.WIN_BLACKMAN_hARRIS + + + + limesdr_source_0 + qtgui_sink_x_0 + 0 + 0 + + diff --git a/examples/signal_generator.grc b/examples/signal_generator.grc new file mode 100644 index 0000000..c3e5a94 --- /dev/null +++ b/examples/signal_generator.grc @@ -0,0 +1,1102 @@ + + + + Mon May 21 21:11:53 2018 + + options + + author + Lime Microsystems + + + window_size + (1200,400) + + + category + Custom + + + comment + + + + description + + + + _enabled + True + + + _coordinate + (16, 23) + + + _rotation + 0 + + + generate_options + qt_gui + + + hier_block_src_path + .: + + + id + top_block + + + max_nouts + 0 + + + qt_qss_theme + + + + realtime_scheduling + + + + run_command + {python} -u {filename} + + + run_options + prompt + + + run + True + + + sizing_mode + fixed + + + thread_safe_setters + + + + title + Signal generator + + + placement + (0,0) + + + + variable_qtgui_entry + + comment + + + + value + 10 + + + _enabled + True + + + _coordinate + (776, 166) + + + gui_hint + + + + _rotation + 0 + + + id + analog_filter_bandwidth_tx + + + label + TX analog filter bandwidth [MHz] + + + type + real + + + + variable_qtgui_chooser + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (792, 251) + + + gui_hint + + + + _rotation + 0 + + + id + analog_filter_tx + + + label0 + "OFF" + + + label1 + "ON" + + + label2 + + + + label3 + + + + label4 + + + + label + TX analog filter + + + labels + [] + + + num_opts + 2 + + + option0 + 0 + + + option1 + 1 + + + option2 + 2 + + + option3 + 3 + + + option4 + 4 + + + options + [0, 1, 2] + + + orient + Qt.QHBoxLayout + + + type + int + + + widget + radio_buttons + + + + variable_qtgui_entry + + comment + + + + value + 600 + + + _enabled + True + + + _coordinate + (784, 86) + + + gui_hint + 1,0,2,2 + + + _rotation + 0 + + + id + baseband_tx + + + label + TX:Baseband [MHz] + + + type + real + + + + variable_qtgui_entry + + comment + + + + value + sample_rate/2e6 + + + _enabled + True + + + _coordinate + (944, 166) + + + gui_hint + + + + _rotation + 0 + + + id + digital_filter_bandwidth_tx + + + label + TX digital filter bandwidth [MHz] + + + type + real + + + + variable_qtgui_chooser + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (960, 251) + + + gui_hint + + + + _rotation + 0 + + + id + digital_filter_tx + + + label0 + "OFF" + + + label1 + "ON" + + + label2 + + + + label3 + + + + label4 + + + + label + TX digital filter + + + labels + [] + + + num_opts + 2 + + + option0 + 0 + + + option1 + 1 + + + option2 + 2 + + + option3 + 3 + + + option4 + 4 + + + options + [0, 1, 2] + + + orient + Qt.QHBoxLayout + + + type + int + + + widget + radio_buttons + + + + variable_qtgui_range + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (16, 113) + + + gui_hint + 6,0,1,2 + + + _rotation + 0 + + + id + frequency + + + label + Signal source frequency + + + min_len + 200 + + + orient + Qt.Horizontal + + + start + 0 + + + step + 0.05e6 + + + stop + 20e6 + + + rangeType + float + + + widget + counter_slider + + + + variable_qtgui_range + + comment + + + + value + 30 + + + _enabled + True + + + _coordinate + (976, 41) + + + gui_hint + 3,1,1,1 + + + _rotation + 0 + + + id + gain_tx + + + label + TX gain + + + min_len + 200 + + + orient + Qt.Horizontal + + + start + 0 + + + step + 1 + + + stop + 60 + + + rangeType + int + + + widget + counter_slider + + + + variable_qtgui_chooser + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (624, 251) + + + gui_hint + + + + _rotation + 0 + + + id + nco_direction_tx + + + label0 + "UPCONVERT" + + + label1 + "DOWNCONVERT" + + + label2 + + + + label3 + + + + label4 + + + + label + TX NCO direction + + + labels + [] + + + num_opts + 2 + + + option0 + 0 + + + option1 + 1 + + + option2 + 2 + + + option3 + 3 + + + option4 + 4 + + + options + [0, 1, 2] + + + orient + Qt.QHBoxLayout + + + type + int + + + widget + radio_buttons + + + + variable_qtgui_entry + + comment + + + + value + 0 + + + _enabled + True + + + _coordinate + (616, 166) + + + gui_hint + 4,1,1,1 + + + _rotation + 0 + + + id + nco_freq_tx + + + label + TX NCO value [MHz] + + + type + real + + + + variable_qtgui_range + + comment + + + + value + sample_rate + + + _enabled + True + + + _coordinate + (16, 233) + + + gui_hint + 6,2,1,2 + + + _rotation + 0 + + + id + samp_rate_sig_source + + + label + Signal source sample rate + + + min_len + 2000 + + + orient + Qt.Horizontal + + + start + 0 + + + step + 0.1e6 + + + stop + 20e6 + + + rangeType + float + + + widget + counter_slider + + + + variable_qtgui_label + + comment + + + + value + 5e6 + + + _enabled + True + + + formatter + None + + + _coordinate + (192, 30) + + + gui_hint + + + + _rotation + 0 + + + id + sample_rate + + + label + Sample rate [S/s] + + + type + real + + + + analog_sig_source_x + + amp + 1 + + + alias + + + + comment + + + + affinity + + + + _enabled + 1 + + + freq + frequency + + + _coordinate + (216, 216) + + + _rotation + 0 + + + id + analog_sig_source_x_0_0_0 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + offset + 0 + + + type + complex + + + samp_rate + samp_rate_sig_source + + + waveform + analog.GR_COS_WAVE + + + + limesdr_sink + + alias + + + + channel + 0 + + + analog_bandw_ch0 + analog_filter_bandwidth_tx*1e6 + + + analog_filter_ch0 + analog_filter_tx + + + cmix_mode_ch0 + nco_direction_tx + + + calibr_bandw_ch0 + 5e6 + + + calibration_ch0 + 0 + + + digital_bandw_ch0 + digital_filter_bandwidth_tx*1e6 + + + digital_filter_ch0 + digital_filter_tx + + + gain_dB_ch0 + gain_tx + + + nco_freq_ch0 + nco_freq_tx*1e6 + + + pa_path_ch0 + 1 + + + pa_path_mini + 1 + + + analog_bandw_ch1 + 10e6 + + + analog_filter_ch1 + 0 + + + cmix_mode_ch1 + 0 + + + calibr_bandw_ch1 + 5e6 + + + calibration_ch1 + 0 + + + digital_bandw_ch1 + 0 + + + digital_filter_ch1 + 0 + + + gain_dB_ch1 + 0 + + + nco_freq_ch1 + 0 + + + pa_path_ch1 + 1 + + + chip_mode + 1 + + + comment + + + + affinity + + + + serial + + + + device_type + 2 + + + _enabled + 1 + + + filename + + + + _coordinate + (416, 144) + + + _rotation + 0 + + + id + limesdr_sink_0 + + + file_switch + 0 + + + oversample + 0 + + + rf_freq + baseband_tx*1e6 + + + samp_rate + sample_rate + + + + qtgui_sink_x + + bw + sample_rate + + + alias + + + + fc + baseband_tx*1e6 + + + freqchangevar + None + + + comment + + + + affinity + + + + _enabled + 1 + + + fftsize + 4096 + + + _coordinate + (416, 32) + + + gui_hint + + + + _rotation + 0 + + + id + qtgui_sink_x_0_1 + + + maxoutbuf + 0 + + + minoutbuf + 0 + + + name + "Signal Source" + + + plotconst + True + + + plotfreq + True + + + plottime + True + + + plotwaterfall + True + + + showports + True + + + showrf + True + + + type + complex + + + rate + 10 + + + wintype + firdes.WIN_BLACKMAN_hARRIS + + + + analog_sig_source_x_0_0_0 + limesdr_sink_0 + 0 + 0 + + + analog_sig_source_x_0_0_0 + qtgui_sink_x_0_1 + 0 + 0 + + diff --git a/grc/limesdr_sink.xml b/grc/limesdr_sink.xml index 01d0912..f973b70 100644 --- a/grc/limesdr_sink.xml +++ b/grc/limesdr_sink.xml @@ -2,10 +2,10 @@ LimeSuite Sink (TX) limesdr_sink - LimeSuite + [LimeSuite] throttle import limesdr - limesdr.sink($device_number, + limesdr.sink($serial, $device_type, $chip_mode, $channel, @@ -30,13 +30,36 @@ $digital_filter_ch1, $digital_bandw_ch1, $gain_dB_ch0, - $gain_dB_ch1) + $gain_dB_ch1, + $nco_freq_ch0, + $nco_freq_ch1, + $cmix_mode_ch0, + $cmix_mode_ch1) + + set_rf_freq($rf_freq) + set_pa_path($pa_path_mini,0) + set_pa_path($pa_path_ch0,0) + set_pa_path($pa_path_ch1,1) + set_nco($nco_freq_ch0,$cmix_mode_ch0,0) + set_nco($nco_freq_ch1,$cmix_mode_ch1,1) + set_analog_filter($analog_filter_ch0,$analog_bandw_ch0,0) + set_analog_filter($analog_filter_ch1,$analog_bandw_ch1,1) + set_digital_filter($digital_filter_ch0,$digital_bandw_ch0,0) + set_digital_filter($digital_filter_ch1,$digital_bandw_ch1,1) + set_gain($gain_dB_ch0,0) + set_gain($gain_dB_ch1,1) + + + General + CH0 + CH1 + - Device number - device_number - 0 - int + Device serial + serial + + string none @@ -76,7 +99,7 @@ CH0 channel 0 - enum + int #if $device_type() == 1 all @@ -127,7 +150,7 @@ - Center frequency + RF frequency rf_freq 100e6 float @@ -143,7 +166,7 @@ Sample rate samp_rate - 10e6 + samp_rate float #if $file_switch() == 1 @@ -158,7 +181,7 @@ Oversample oversample 0 - enum + int #if $file_switch() == 1 all @@ -195,12 +218,50 @@ 32 - + + + CH0:NCO frequency + nco_freq_ch0 + 0 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:CMIX mode + cmix_mode_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + CH0:Calibration calibration_ch0 0 - enum + int #if $file_switch() == 1 all @@ -216,6 +277,7 @@ ON 1 + CH0 @@ -232,13 +294,14 @@ none #end if + CH0 CH0:PA path pa_path_mini 1 - enum + int #if $device_type() == 2 all @@ -254,13 +317,14 @@ Band2 2 + CH0 CH0:PA path pa_path_ch0 1 - enum + int #if $device_type() == 1 all @@ -278,13 +342,14 @@ Band2 2 + CH0 CH0:Analog filter analog_filter_ch0 - 0 - enum + 1 + int #if $file_switch() == 1 all @@ -300,12 +365,13 @@ ON 1 + CH0 CH0:Analog filter bandw. analog_bandw_ch0 - 10e6 + 5e6 float #if $analog_filter_ch0() == 0 @@ -316,13 +382,14 @@ none #end if + CH0 CH0:Digital filter digital_filter_ch0 0 - enum + int #if $file_switch() == 1 all @@ -338,6 +405,7 @@ ON 1 + CH0 @@ -354,12 +422,13 @@ none #end if + CH0 CH0:Gain,dB gain_dB_ch0 - 60 + 30 int #if $file_switch() == 1 @@ -368,13 +437,60 @@ none #end if + CH0 - + + + CH1:NCO frequency + nco_freq_ch1 + 0 + float + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:CMIX mode + cmix_mode_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + CH1:Calibration calibration_ch1 0 - enum + int #if $chip_mode() == 1 all @@ -394,6 +510,7 @@ ON 1 + CH1 @@ -414,13 +531,14 @@ none #end if + CH1 CH1:PA path pa_path_ch1 1 - enum + int #if $chip_mode() == 1 all @@ -440,13 +558,14 @@ Band2 2 + CH1 CH1:Analog filter analog_filter_ch1 - 0 - enum + 1 + int #if $chip_mode() == 1 all @@ -466,12 +585,13 @@ ON 1 + CH1 CH1:Analog filter bandw. analog_bandw_ch1 - 10e6 + 5e6 float #if $analog_filter_ch1() == 0 @@ -486,13 +606,14 @@ none #end if + CH1 CH1:Digital filter digital_filter_ch1 0 - enum + int #if $chip_mode() == 1 all @@ -512,6 +633,7 @@ ON 1 + CH1 @@ -532,12 +654,13 @@ none #end if + CH1 CH1:Gain,dB gain_dB_ch1 - 60 + 30 int #if $chip_mode() == 1 @@ -550,9 +673,9 @@ none #end if + CH1 - $device_number >= 0 $device_type >= $chip_mode $device_type >= 1 2 >= $device_type @@ -597,13 +720,13 @@ ------------------------------------------------------------------------------------------------------------------- -DEVICE NUMBER +DEVICE SERIAL -Device number obtained by running +Device serial number obtained by running LimeUtil --find -List numbering begins by 0. +Cannot be left blank. ------------------------------------------------------------------------------------------------------------------- DEVICE TYPE @@ -655,6 +778,14 @@ Here you can select oversampling value for TX. Default value uses highest possib Note: LimeSDR-Mini supports only the same oversampling value for TX and RX. ------------------------------------------------------------------------------------------------------------------- +NCO FREQUENCY + +Adjust numerically controlled oscillator for each channel. 0 means that NCO is OFF. +------------------------------------------------------------------------------------------------------------------- +CMIX MODE + +Controls NCO direction for each channel. +------------------------------------------------------------------------------------------------------------------- CALIBRATION Turn DC offset and IQ imbalance calibration ON/OFF for each channel. diff --git a/grc/limesdr_source.xml b/grc/limesdr_source.xml index 136aadf..3e436cc 100644 --- a/grc/limesdr_source.xml +++ b/grc/limesdr_source.xml @@ -2,10 +2,10 @@ LimeSuite Source (RX) limesdr_source - LimeSuite + [LimeSuite] throttle import limesdr - limesdr.source($device_number, + limesdr.source($serial, $device_type, $chip_mode, $channel, @@ -30,13 +30,36 @@ $digital_filter_ch1, $digital_bandw_ch1, $gain_dB_ch0, - $gain_dB_ch1) - + $gain_dB_ch1, + $nco_freq_ch0, + $nco_freq_ch1, + $cmix_mode_ch0, + $cmix_mode_ch1) + + set_rf_freq($rf_freq) + set_lna_path($lna_path_mini,0) + set_lna_path($lna_path_ch0,0) + set_lna_path($lna_path_ch1,1) + set_nco($nco_freq_ch0,$cmix_mode_ch0,0) + set_nco($nco_freq_ch1,$cmix_mode_ch1,1) + set_analog_filter($analog_filter_ch0,$analog_bandw_ch0,0) + set_analog_filter($analog_filter_ch1,$analog_bandw_ch1,1) + set_digital_filter($digital_filter_ch0,$digital_bandw_ch0,0) + set_digital_filter($digital_filter_ch1,$digital_bandw_ch1,1) + set_gain($gain_dB_ch0,0) + set_gain($gain_dB_ch1,1) + + + General + CH0 + CH1 + + - Device number - device_number - 0 - int + Device serial + serial + + string none @@ -76,7 +99,7 @@ CH0 channel 0 - enum + int #if $device_type() == 1 all @@ -127,7 +150,7 @@ - Center frequency + RF frequency rf_freq 100e6 float @@ -143,7 +166,7 @@ Sample rate samp_rate - 10e6 + samp_rate float #if $file_switch() == 1 @@ -158,7 +181,7 @@ Oversample oversample 0 - enum + int #if $file_switch() == 1 all @@ -196,11 +219,49 @@ + + CH0:NCO frequency + nco_freq_ch0 + 0 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:CMIX mode + cmix_mode_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + CH0:Calibration calibration_ch0 0 - enum + int #if $file_switch() == 1 all @@ -216,6 +277,7 @@ ON 1 + CH0 @@ -232,13 +294,14 @@ none #end if + CH0 CH0:LNA path lna_path_mini - 1 - enum + 3 + int #if $device_type() == 2 all @@ -254,13 +317,14 @@ W 3 + CH0 CH0:LNA path lna_path_ch0 - 1 - enum + 2 + int #if $device_type() == 1 all @@ -282,13 +346,14 @@ W 3 + CH0 CH0:Analog filter analog_filter_ch0 1 - enum + int #if $file_switch() == 1 all @@ -304,12 +369,13 @@ ON 1 + CH0 CH0:Analog filter bandw. analog_bandw_ch0 - 10e6 + 5e6 float #if $analog_filter_ch0() == 0 @@ -320,13 +386,14 @@ none #end if + CH0 CH0:Digital filter digital_filter_ch0 0 - enum + int #if $file_switch() == 1 all @@ -342,6 +409,7 @@ ON 1 + CH0 @@ -358,12 +426,13 @@ none #end if + CH0 CH0:Gain,dB gain_dB_ch0 - 60 + 30 int #if $file_switch() == 1 @@ -372,13 +441,60 @@ none #end if + CH0 - + + + CH1:NCO frequency + nco_freq_ch1 + 0 + float + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:CMIX mode + cmix_mode_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + CH1:Calibration calibration_ch1 0 - enum + int #if $chip_mode() == 1 all @@ -398,6 +514,7 @@ ON 1 + CH1 @@ -418,13 +535,14 @@ none #end if + CH1 CH1:LNA path lna_path_ch1 - 1 - enum + 2 + int #if $chip_mode() == 1 all @@ -448,13 +566,14 @@ W 3 + CH1 CH1:Analog filter analog_filter_ch1 1 - enum + int #if $chip_mode() == 1 all @@ -474,12 +593,13 @@ ON 1 + CH1 CH1:Analog filter bandw. analog_bandw_ch1 - 10e6 + 5e6 float #if $analog_filter_ch1() == 0 @@ -494,13 +614,14 @@ none #end if + CH1 CH1:Digital filter digital_filter_ch1 0 - enum + int #if $chip_mode() == 1 all @@ -520,6 +641,7 @@ ON 1 + CH1 @@ -540,12 +662,13 @@ none #end if + CH1 CH1:Gain,dB gain_dB_ch1 - 60 + 30 int #if $chip_mode() == 1 @@ -558,9 +681,9 @@ none #end if + CH1 - $device_number >= 0 $device_type >= $chip_mode $device_type >= 1 2 >= $device_type @@ -605,13 +728,13 @@ ------------------------------------------------------------------------------------------------------------------- -DEVICE NUMBER +DEVICE SERIAL -Device number obtained by running +Device serial number obtained by running LimeUtil --find -List numbering begins by 0. +Cannot be left blank. ------------------------------------------------------------------------------------------------------------------- DEVICE TYPE @@ -642,7 +765,7 @@ Generate .ini file with LimeSuite and select path. Note: setting must match in LimeSuite Source and Sink for the same device. ------------------------------------------------------------------------------------------------------------------- -CENTER FREQUENCY +RF FREQUENCY Set RF center frequency for RX (both channels). LimeSDR-USB supports [100e3,3800e6] Hz. @@ -663,6 +786,14 @@ Here you can select oversampling value for RX. Default value uses highest possib Note: LimeSDR-Mini supports only the same oversampling value for TX and RX. ------------------------------------------------------------------------------------------------------------------- +NCO FREQUENCY + +Adjust numerically controlled oscillator for each channel. 0 means that NCO is OFF. +------------------------------------------------------------------------------------------------------------------- +CMIX MODE + +Controls NCO direction for each channel. +------------------------------------------------------------------------------------------------------------------- CALIBRATION Turn DC offset and IQ imbalance calibration ON/OFF for each channel. diff --git a/include/limesdr/api.h b/include/limesdr/api.h index 6dfe0cb..3e9ba84 100644 --- a/include/limesdr/api.h +++ b/include/limesdr/api.h @@ -22,7 +22,6 @@ #define INCLUDED_LIMESDR_API_H #include -#include #ifdef gnuradio_limesdr_EXPORTS # define LIMESDR_API __GR_ATTR_EXPORT diff --git a/include/limesdr/sink.h b/include/limesdr/sink.h index 9dbefe0..f2e9db5 100644 --- a/include/limesdr/sink.h +++ b/include/limesdr/sink.h @@ -22,13 +22,13 @@ #define INCLUDED_LIMESDR_SINK_H #include -#include +#include namespace gr { namespace limesdr { - class LIMESDR_API sink : virtual public gr::sync_block + class LIMESDR_API sink : virtual public gr::block { public: typedef boost::shared_ptr sptr; @@ -38,6 +38,8 @@ namespace gr * To avoid accidental use of raw pointers, sink's * constructor is private. limesdr::sink::make is the public * interface for creating new instances. + * + * @param serial Device serial number. Cannot be left blank. * * @param device_type LimeSDR-Mini(1), LimeSDR-USB(2). * @@ -89,9 +91,17 @@ namespace gr * * @param gain_dB_ch1 Input TX gain channel 1 [0,60] dB. * + * @param nco_freq_ch0 NCO frequency channel 0 in Hz. + * + * @param nco_freq_ch1 NCO frequency channel 1 in Hz. + * + * @param cmix_mode_ch0 CMIX mode channel 0: UPCONVERT(0), DOWNCONVERT(1). + * + * @param cmix_mode_ch1 CMIX mode channel 1: UPCONVERT(0), DOWNCONVERT(1). + * * @return a new limesdr sink block object */ - static sptr make(int device_number, + static sptr make(std::string serial, int device_type, int chip_mode, int channel, @@ -116,7 +126,23 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1); + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1); + + virtual void set_rf_freq(float rf_freq) = 0; + + virtual void set_pa_path(int pa_path, int channel) = 0; + + virtual void set_nco(float nco_freq, int cmix_mode, int channel) = 0; + + virtual void set_analog_filter(int analog_filter, float analog_bandw, int channel) = 0; + + virtual void set_digital_filter(int digital_filter, float digital_bandw, int channel) = 0; + + virtual void set_gain(int gain_dB, int channel) = 0; }; } } diff --git a/include/limesdr/source.h b/include/limesdr/source.h index 9d677d7..751e11d 100644 --- a/include/limesdr/source.h +++ b/include/limesdr/source.h @@ -22,13 +22,13 @@ #define INCLUDED_LIMESDR_SOURCE_H #include -#include +#include namespace gr { namespace limesdr { - class LIMESDR_API source : virtual public gr::sync_block + class LIMESDR_API source : virtual public gr::block { public: typedef boost::shared_ptr sptr; @@ -39,6 +39,8 @@ namespace gr * To avoid accidental use of raw pointers, source's * constructor is private. limesdr::source::make is the public * interface for creating new instances. + * + * @param serial Device serial number. Cannot be left blank. * * @param device_type LimeSDR-Mini(1),LimeSDR-USB(2). * @@ -90,9 +92,17 @@ namespace gr * * @param gain_dB_ch1 Input RX gain channel 1 [0,70] dB. * + * @param nco_freq_ch0 NCO frequency channel 0 in Hz. + * + * @param nco_freq_ch1 NCO frequency channel 1 in Hz. + * + * @param cmix_mode_ch0 CMIX mode channel 0: UPCONVERT(0), DOWNCONVERT(1). + * + * @param cmix_mode_ch1 CMIX mode channel 1: UPCONVERT(0), DOWNCONVERT(1). + * * @return a new limesdr source block object */ - static sptr make(int device_number, + static sptr make(std::string serial, int device_type, int chip_mode, int channel, @@ -117,7 +127,23 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1); + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1); + + virtual void set_rf_freq(float rf_freq) = 0; + + virtual void set_lna_path(int lna_path, int channel) = 0; + + virtual void set_nco(float nco_freq, int cmix_mode, int channel) = 0; + + virtual void set_analog_filter(int analog_filter, float analog_bandw, int channel) = 0; + + virtual void set_digital_filter(int digital_filter, float digital_bandw, int channel) = 0; + + virtual void set_gain(int gain_dB, int channel) = 0; }; } } diff --git a/lib/common/device_handler.cc b/lib/common/device_handler.cc index e17270e..568cf18 100644 --- a/lib/common/device_handler.cc +++ b/lib/common/device_handler.cc @@ -26,42 +26,36 @@ void device_handler::error(int device_number) std::cout << "ERROR: " << LMS_GetLastErrorMessage() << std::endl; if (this->device_vector[device_number].address != NULL) close_all_devices(); - exit(0); } device_handler::~device_handler() -{ - close_all_devices(); -} +{} lms_device_t* device_handler::get_device(int device_number) { return this->device_vector[device_number].address; } -void device_handler::open_device(int device_number, int device_type) +int device_handler::open_device(std::string serial, int device_type) { - // Check device_number value - if(device_number < 0) - { - std::cout << "ERROR: device_handler::open_device(): device number cannot be lower than 0." << std::endl; - close_all_devices(); - exit(0); - } - + std::string search_name; + std::string start_string; + int last; + int device_number; + + std::cout << "##################" << std::endl; + std::cout << "Connecting to device" << std::endl; + // Read device list once if(list_read == false) { - if ((device_count = LMS_GetDeviceList(NULL)) < LMS_SUCCESS) - error(device_number); + device_count = LMS_GetDeviceList(list); std::cout << "##################" << std::endl; std::cout << "Devices found: " << device_count << std::endl; - - if (device_count < 1) - std::exit(0); std::cout << "##################" << std::endl; + if (device_count < 1) + exit(0); std::cout << "Device list:" << std::endl; - LMS_GetDeviceList(list); for (int i = 0; i < device_count; i++) { @@ -72,61 +66,82 @@ void device_handler::open_device(int device_number, int device_type) list_read = true; } - // Compare maximum device list value with device_number value - if(device_number > device_count-1) + // Serial must not be empty + if(serial.empty()) { - std::cout << "ERROR: device_handler::open_device(): device number " << device_number << " is not connected to this system. Please check the device list." << std::endl; - close_all_devices(); - std::cout << "---------------------------------------------------------------" << std::endl; - exit(0); + std::cout << "ERROR: device_handler::open_device(): no serial number." << std::endl; + std::cout << "INFO: device_handler::open_device(): use \"LimeUtil -- find\" in terminal to find device serial." << std::endl; + std::cout << "##################" << std::endl; + close_all_devices(); } - + + // Set device string search parameters + if (device_type == 1) + { + search_name = "LimeSDR Mini"; + start_string = "serial="; + last = 14; // length of LimeSDR-Mini serial + } + else if (device_type == 2) + { + search_name = "LimeSDR-USB"; + start_string = "serial="; + last = 16; // length of LimeSDR-USB serial + } + else + { + std::cout << "ERROR: device_handler::open_device(): wrong device_type." << std::endl; + close_all_devices(); + } + + // Identify device by device type and serial number + for (int i = 0; i < device_count; i++) + { + std::string device_string(list[i]); + unsigned first = device_string.find(start_string); + std::string aquired_serial = device_string.substr (first+7,last); + + // If device_type and serial match found acquire device number + if (device_string.find(search_name) != std::string::npos && aquired_serial == serial) + { + device_number = i; + break; + } + // If program was unable to find serial in list print error and stop program + else if ((i == device_count-1 && aquired_serial != serial) || (device_string.find(search_name) == std::string::npos && aquired_serial == serial)) + { + std::cout << "Unable to find " << search_name << " with device serial " << serial << "." << std::endl; + std::cout << "##################" << std::endl; + close_all_devices(); + } + } + // If device slot is empty, open and initialize device if(device_vector[device_number].address == NULL) { - std::string search_name; - if (device_type == 1) - search_name = "LimeSDR Mini"; - else if (device_type == 2) - search_name = "LimeSDR-USB"; - else - { - std::cout << "ERROR: device_handler::open_device(): wrong device_type." << std::endl; - close_all_devices(); - exit(0); - } - std::cout << "##################" << std::endl; - std::cout << "New connection" << std::endl; - - std::string device_string(list[device_number]); - - if (device_string.find(search_name) != std::string::npos) - { - if (LMS_Open(&device_vector[device_number].address, list[device_number], NULL)) - error(device_number); - - std::cout << "Device number " << device_number << " from the list is used." << std::endl; - - if (LMS_Init(device_vector[device_number].address) != LMS_SUCCESS) - error(device_number); - - std::cout << "##################" << std::endl; - std::cout << std::endl; - - ++open_devices; // Count open devices - } - else if ((device_string.find(search_name) == std::string::npos)) - { - std::cout << "Device number " << device_number << " from the list is not " << search_name << "." << std::endl; - close_all_devices(); - exit(0); - std::cout << "---------------------------------------------------------------" << std::endl; - } + std::cout << "Device number " << device_number << " from the list is used." << std::endl; + LMS_Open(&device_vector[device_number].address, list[device_number], NULL); + LMS_Init(device_vector[device_number].address); + ++open_devices; // Count open devices + std::cout << "##################" << std::endl; + std::cout << std::endl; + } + // If device is open do nothing + else + { + std::cout << "Previously connected device number " << device_number << " from the list is used." << std::endl; + std::cout << "##################" << std::endl; + std::cout << std::endl; } + + return device_number; // return device number to identify device_vector[device_number].address connection in other functions } -void device_handler::close_device(int device_number) +void device_handler::close_device(int device_number, int block_type) { + // Check if other block finished and close device + if(device_vector[device_number].source_flag == false || device_vector[device_number].sink_flag == false) + { if(this->device_vector[device_number].address != NULL) { std::cout << std::endl; @@ -139,117 +154,143 @@ void device_handler::close_device(int device_number) device_vector[device_number].address = NULL; std::cout << "##################" << std::endl; std::cout << std::endl; - } + } + } + // If two blocks used switch one block flag and let other block finish work + else + { + // Switch flag when closing device + switch(block_type) + { + case 1: + device_vector[device_number].source_flag = false; + break; + case 2: + device_vector[device_number].sink_flag = false; + break; + } + } } void device_handler::close_all_devices() { + if(close_flag == false) + { for(int i = 0; i <= open_devices; i++) - this->close_device(i); + { + if(this->device_vector[i].address != NULL) + { + LMS_Reset(this->device_vector[i].address); + LMS_Close(this->device_vector[i].address); + } + } + close_flag == true; + exit(0); + } } void device_handler::check_blocks(int device_number, int block_type, int device_type, int chip_mode, double sample_rate, size_t oversample, int file_switch, const char *filename) { - // Check how many blocks of each type are used for each device + // Get each block settings switch(block_type) { - case 1: // Source block - if(device_vector[device_number].source_flag == true) - { - std::cout << "ERROR: device_handler::check_blocks(): only one LimeSuite Source (RX) block is allowed per device." << std::endl; - close_all_devices(); - exit(0); - } - else - { - device_vector[device_number].source_flag = true; - device_vector[device_number].source_device_type = device_type; - device_vector[device_number].source_chip_mode = chip_mode; - if(file_switch == 0) - { - device_vector[device_number].source_sample_rate = sample_rate; - device_vector[device_number].source_oversample = oversample; - } - else - { - device_vector[device_number].source_file_switch = file_switch; - device_vector[device_number].source_filename = filename; - } - } - break; - - case 2: // Sink block - if(device_vector[device_number].sink_flag == true) - { - std::cout << "ERROR: device_handler::check_blocks(): only one LimeSuite Sink (TX) block is allowed per device." << std::endl; - device_handler::getInstance().close_device(device_number); - exit(0); - } - else - { - device_vector[device_number].sink_flag = true; - device_vector[device_number].sink_device_type = device_type; - device_vector[device_number].sink_chip_mode = chip_mode; - if(file_switch == 0) - { - device_vector[device_number].sink_sample_rate = sample_rate; - device_vector[device_number].sink_oversample = oversample; - } - else - { - device_vector[device_number].sink_file_switch = file_switch; - device_vector[device_number].sink_filename = filename; - } - } - break; - - default: - std::cout << "ERROR: device_handler::check_blocks(): incorrect block_type value." << std::endl; - close_all_devices(); - exit(0); + case 1: // Source block + if(device_vector[device_number].source_flag == true) + { + std::cout << "ERROR: device_handler::check_blocks(): only one LimeSuite Source (RX) block is allowed per device." << std::endl; + close_all_devices(); + } + else + { + device_vector[device_number].source_flag = true; + device_vector[device_number].source_device_type = device_type; + device_vector[device_number].source_chip_mode = chip_mode; + device_vector[device_number].source_file_switch = file_switch; + if(file_switch == 0) + { + device_vector[device_number].source_sample_rate = sample_rate; + device_vector[device_number].source_oversample = oversample; + } + else + { + device_vector[device_number].source_filename = filename; + } + } + break; + + case 2: // Sink block + if(device_vector[device_number].sink_flag == true) + { + std::cout << "ERROR: device_handler::check_blocks(): only one LimeSuite Sink (TX) block is allowed per device." << std::endl; + close_all_devices(); + } + else + { + device_vector[device_number].sink_flag = true; + device_vector[device_number].sink_device_type = device_type; + device_vector[device_number].sink_chip_mode = chip_mode; + device_vector[device_number].sink_file_switch = file_switch; + if(file_switch == 0) + { + device_vector[device_number].sink_sample_rate = sample_rate; + device_vector[device_number].sink_oversample = oversample; + } + else + { + device_vector[device_number].sink_filename = filename; + } + } + break; + + default: + std::cout << "ERROR: device_handler::check_blocks(): incorrect block_type value." << std::endl; + close_all_devices(); } - // Check matching block settings + // Check block settings which must match if(device_vector[device_number].source_flag && device_vector[device_number].sink_flag) { + // Device_type must match in blocks with the same serial if(device_vector[device_number].source_device_type != device_vector[device_number].sink_device_type) { std::cout << "ERROR: device_handler::check_blocks(): device_type mismatch in LimeSuite Source (RX) and LimeSuite Sink (TX) blocks." << std::endl; close_all_devices(); - exit(0); } - else if(device_vector[device_number].source_chip_mode != device_vector[device_number].sink_chip_mode) + + // Chip_mode must match in blocks with the same serial + if(device_vector[device_number].source_chip_mode != device_vector[device_number].sink_chip_mode) { std::cout << "ERROR: device_handler::check_blocks(): chip_mode mismatch in LimeSuite Source (RX) and LimeSuite Sink (TX)." << std::endl; close_all_devices(); - exit(0); } - else if(device_vector[device_number].source_file_switch != device_vector[device_number].sink_file_switch) + + // File_switch must match in blocks with the same serial + if(device_vector[device_number].source_file_switch != device_vector[device_number].sink_file_switch) { std::cout << "ERROR: device_handler::check_blocks(): file_switch must match in LimeSuite Source (RX) and LimeSuite Sink (TX)." << std::endl; close_all_devices(); - exit(0); } - else if(device_vector[device_number].source_file_switch && device_vector[device_number].sink_file_switch == 0) + + // When file_switch is 0 check LimeSDR-Mini sample_rate and oversample match throughout the blocks with the same serial + if( (device_vector[device_number].source_file_switch == 0) && (device_vector[device_number].sink_file_switch == 0)) { if((device_vector[device_number].source_sample_rate != device_vector[device_number].sink_sample_rate) && (device_type == 1)) { std::cout << "ERROR: device_handler::check_blocks(): sample_rate must match in LimeSuite Source (RX) and LimeSuite Sink (TX) when using LimeSDR-Mini." << std::endl; close_all_devices(); - exit(0); } else if((device_vector[device_number].source_oversample != device_vector[device_number].sink_oversample) && (device_type == 1)) { std::cout << "ERROR: device_handler::check_blocks(): oversample must match in LimeSuite Source (RX) and LimeSuite Sink (TX) when using LimeSDR-Mini." << std::endl; close_all_devices(); - exit(0); } } - else if(device_vector[device_number].source_filename != device_vector[device_number].sink_filename && device_vector[device_number].source_file_switch && device_vector[device_number].sink_file_switch == 1) + + // When file_switch is 1 check filename match throughout the blocks with the same serial + if(device_vector[device_number].source_filename != device_vector[device_number].sink_filename && (device_vector[device_number].source_file_switch == 1) && (device_vector[device_number].sink_file_switch == 1)) { std::cout << "ERROR: device_handler::check_blocks(): file must match in LimeSuite Source (RX) and LimeSuite Sink (TX)." << std::endl; close_all_devices(); - exit(0); } } } @@ -258,6 +299,15 @@ void device_handler::settings_from_file(int device_number, const char *filename) { if(LMS_LoadConfig(device_handler::getInstance().get_device(device_number),filename)) device_handler::getInstance().error(device_number); + + // Set LimeSDR-Mini switches based on .ini file + int antenna_ch0_tx; + int antenna_ch0_rx; + antenna_ch0_tx = LMS_GetAntenna(device_handler::getInstance().get_device(device_number),LMS_CH_TX,LMS_CH_0); + antenna_ch0_rx = LMS_GetAntenna(device_handler::getInstance().get_device(device_number),LMS_CH_RX,LMS_CH_0); + + LMS_SetAntenna(device_handler::getInstance().get_device(device_number),LMS_CH_TX,LMS_CH_0,antenna_ch0_tx); + LMS_SetAntenna(device_handler::getInstance().get_device(device_number),LMS_CH_RX,LMS_CH_0,antenna_ch0_rx); } void device_handler::set_chip_mode(int device_number, int device_type, int chip_mode, int channel, bool direction) @@ -301,28 +351,55 @@ void device_handler::set_samp_rate(int device_number, const double rate, size_t { std::cout << "ERROR: device_handler::set_samp_rate(): when LimeSDR-Mini samp_rate is more than 15.36e6 S/s and less or equal 30.72e6 S/s, oversample cannot be higher than 4." << std::endl; close_all_devices(); - exit(0); } else if(7.68e6 < rate && rate <= 15.36e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4 && oversample != 8) { std::cout << "ERROR: device_handler::set_samp_rate(): when LimeSDR-Mini samp_rate is more than 7.68e6 S/s and less or equal 15.36e6 S/s, oversample cannot be higher than 8." << std::endl; close_all_devices(); - exit(0); } else if(3.84e6 < rate && rate <= 7.68e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4 && oversample != 8 && oversample != 16) { std::cout << "ERROR: device_handler::set_samp_rate(): when LimeSDR-Mini samp_rate is more than 3.84e6 S/s and less or equal 7.68e6 S/s, oversample cannot be higher than 16." << std::endl; close_all_devices(); - exit(0); } - if(LMS_SetSampleRate(device_handler::getInstance().get_device(device_number),rate,oversample)!=LMS_SUCCESS) - device_handler::getInstance().error(device_number); + else if(oversample == 0) + { + if(15.36e6 < rate && rate <= 30.72e6) + { + if(LMS_SetSampleRate(device_handler::getInstance().get_device(device_number),rate,4)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(7.68e6 < rate && rate <= 15.36e6) + { + if(LMS_SetSampleRate(device_handler::getInstance().get_device(device_number),rate,8)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(3.84e6 < rate && rate <= 7.68e6) + { + if(LMS_SetSampleRate(device_handler::getInstance().get_device(device_number),rate,16)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(rate <= 3.84e6) + { + if(LMS_SetSampleRate(device_handler::getInstance().get_device(device_number),rate,32)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + } + else + { + if(LMS_SetSampleRate(device_handler::getInstance().get_device(device_number),rate,oversample)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + double host_value; + double rf_value; + if(LMS_GetSampleRate(device_handler::getInstance().get_device(device_number),LMS_CH_RX,LMS_CH_0,&host_value,&rf_value)) + device_handler::getInstance().error(device_number); + std::cout << "INFO: device_handler::set_samp_rate(): set sampling rate: " << host_value/1e6 << " MS/s." << std::endl; } else { std::cout << "ERROR: device_handler::set_samp_rate(): valid oversample values are: 0,1,2,4,8,16,32." << std::endl; close_all_devices(); - exit(0); } } @@ -336,34 +413,65 @@ void device_handler::set_samp_rate_dir(int device_number, const int direction, c { std::cout << "ERROR: device_handler::set_samp_rate(): RX samp_rate cannot be more than 61.44e6 S/s." << std::endl; close_all_devices(); - exit(0); } else if(30.72e6 < rate && rate <= 61.44e6 && oversample != 0 && oversample != 1 && oversample != 2) { std::cout << "ERROR: device_handler::set_samp_rate(): when RX samp_rate is more than 30.72e6 S/s and less or equal 61.44e6 S/s, oversample cannot be higher than 2." << std::endl; close_all_devices(); - exit(0); } else if(15.36e6 < rate && rate <= 30.72e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4) { std::cout << "ERROR: device_handler::set_samp_rate(): when RX samp_rate is more than 15.36e6 S/s and less or equal 30.72e6 S/s, oversample cannot be higher than 4." << std::endl; close_all_devices(); - exit(0); } else if(7.68e6 < rate && rate <= 15.36e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4 && oversample != 8) { std::cout << "ERROR: device_handler::set_samp_rate(): when RX samp_rate is more than 7.68e6 S/s and less or equal 15.36e6 S/s, oversample cannot be higher than 8." << std::endl; close_all_devices(); - exit(0); } else if(3.84e6 < rate && rate <= 7.68e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4 && oversample != 8 && oversample != 16) { std::cout << "ERROR: device_handler::set_samp_rate(): when RX samp_rate is more than 3.84e6 S/s and less or equal 7.68e6 S/s, oversample cannot be higher than 16." << std::endl; close_all_devices(); - exit(0); } - else if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,oversample)!=LMS_SUCCESS) + else if(oversample == 0) + { + if(30.72e6 < rate && rate <= 61.44e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,2)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(15.36e6 < rate && rate <= 30.72e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,4)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(7.68e6 < rate && rate <= 15.36e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,8)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(3.84e6 < rate && rate <= 7.68e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,16)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(rate <= 3.84e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,32)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + } + else + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,oversample)!=LMS_SUCCESS) device_handler::getInstance().error(device_number); + } + double host_value; + double rf_value; + if(LMS_GetSampleRate(device_handler::getInstance().get_device(device_number),LMS_CH_RX,LMS_CH_0,&host_value,&rf_value)) + device_handler::getInstance().error(device_number); + std::cout << "INFO: device_handler::set_samp_rate(): set [RX] sampling rate: " << host_value/1e6 << " MS/s." << std::endl; } else if(direction == LMS_CH_TX) { @@ -371,29 +479,51 @@ void device_handler::set_samp_rate_dir(int device_number, const int direction, c { std::cout << "ERROR: device_handler::set_samp_rate(): TX samp_rate cannot be more than 61.44e6 S/s." << std::endl; close_all_devices(); - exit(0); } else if(30.72e6 < rate && rate <= 61.44e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4 && oversample != 8) { std::cout << "ERROR: device_handler::set_samp_rate(): when TX samp_rate is more than 30.72e6 S/s and less or equal 61.44e6 S/s, oversample cannot be higher than 8." << std::endl; close_all_devices(); - exit(0); } else if(15.36e6 < rate && rate <= 30.72e6 && oversample != 0 && oversample != 1 && oversample != 2 && oversample != 4 && oversample != 8 && oversample != 16) { std::cout << "ERROR: device_handler::set_samp_rate(): when TX samp_rate is more than 15.36e6 S/s and less or equal 30.72e6 S/s, oversample cannot be higher than 16." << std::endl; close_all_devices(); - exit(0); } - else if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,oversample)!=LMS_SUCCESS) + else if(oversample == 0) + { + if(30.72e6 < rate && rate <= 61.44e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,8)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(15.36e6 < rate && rate <= 30.72e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,16)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + else if(rate <= 15.36e6) + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,32)!=LMS_SUCCESS) + device_handler::getInstance().error(device_number); + } + } + else + { + if(LMS_SetSampleRateDir(device_handler::getInstance().get_device(device_number),direction,rate,oversample)!=LMS_SUCCESS) device_handler::getInstance().error(device_number); + } + double host_value; + double rf_value; + if(LMS_GetSampleRate(device_handler::getInstance().get_device(device_number),LMS_CH_TX,LMS_CH_0,&host_value,&rf_value)) + device_handler::getInstance().error(device_number); + std::cout << "INFO: device_handler::set_samp_rate(): set [TX] sampling rate: " << host_value/1e6 << " MS/s." << std::endl; } } else { std::cout << "ERROR: device_handler::set_samp_rate_dir() valid oversample values are: 0,1,2,4,8,16,32." << std::endl; close_all_devices(); - exit(0); } } @@ -403,12 +533,19 @@ void device_handler::set_rf_freq(int device_number, int device_type, bool direct { std::cout << "ERROR: device_handler::set_rf_freq(): rf_freq must be more than 0 Hz." << std::endl; close_all_devices(); - exit(0); } else { - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), direction, channel, rf_freq) != LMS_SUCCESS) - device_handler::error(device_number); + int status = LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), direction, channel, rf_freq); + double value = 0; + LMS_GetLOFrequency(device_handler::getInstance().get_device(device_number), direction, channel, &value); + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX) + direction_string = "TX"; + + std::cout << "INFO: device_handler::set_rf_freq(): RF frequency set [" << direction_string << "]: " << value/1e6 << " MHz." << std::endl; } } @@ -419,35 +556,25 @@ void device_handler::calibrate(int device_number, int device_type, int calibrati std::cout << "INFO: device_handler::calibrate(): "; if(device_type == 2 && path == 2) // LNAL matching workaround [LimeSDR-USB] { - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, 200e6) != LMS_SUCCESS) - device_handler::error(device_number); - if(LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0)!= LMS_SUCCESS) - device_handler::getInstance().error(device_number); - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, rf_freq) != LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, 200e6); + LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, rf_freq); } else if(rf_freq >= 31e6) // Normal calibration { - if(LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0)!= LMS_SUCCESS) - device_handler::getInstance().error(device_number); + LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0); } else if(device_type == 1)// Lower than 31 MHz center frequency workaround [LimeSDR-Mini] { - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, 100e6) != LMS_SUCCESS) - device_handler::error(device_number); - if(LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0)!= LMS_SUCCESS) - device_handler::getInstance().error(device_number); - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, rf_freq) != LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, 100e6); + LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, rf_freq); } else if(device_type == 2)// Lower than 31 MHz center frequency workaround [LimeSDR-USB] { - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, 50e6) != LMS_SUCCESS) - device_handler::error(device_number); - if(LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0)!= LMS_SUCCESS) - device_handler::getInstance().error(device_number); - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, rf_freq) != LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, 50e6); + LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, bandwidth, 0); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_RX, channel, rf_freq); } } else if(calibration == 1 && direction == LMS_CH_TX) @@ -455,191 +582,74 @@ void device_handler::calibrate(int device_number, int device_type, int calibrati std::cout << "INFO: device_handler::calibrate(): "; if(rf_freq >= 31e6) { - if(LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, bandwidth, 0)!= LMS_SUCCESS) - device_handler::getInstance().error(device_number); + LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, bandwidth, 0); } else { - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, 50e6) != LMS_SUCCESS) - device_handler::error(device_number); - if(LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, bandwidth, 0)!= LMS_SUCCESS) - device_handler::getInstance().error(device_number); - if (LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, rf_freq) != LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, 50e6); + LMS_Calibrate(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, bandwidth, 0); + LMS_SetLOFrequency(device_handler::getInstance().get_device(device_number), LMS_CH_TX, channel, rf_freq); } } -} - -void device_handler::mini_switch_workaround(int device_number) -{ - if(device_vector[device_number].mini_switch_workaround_flag == false) - { - device_vector[device_number].mini_switch_workaround_flag = true; - - uint16_t addr = 0x0017; - uint16_t default_value = 0; - uint16_t value = 0x2204; - - if(LMS_ReadFPGAReg(device_handler::getInstance().get_device(device_number),addr, &default_value)) - device_handler::error(device_number); - - if(LMS_WriteFPGAReg(device_handler::getInstance().get_device(device_number),addr, value)) - device_handler::error(device_number); - - if(LMS_WriteFPGAReg(device_handler::getInstance().get_device(device_number),addr, default_value)) - device_handler::error(device_number); - } -} - -void device_handler::set_lna_path_mini(int device_number, int lna_path_mini) -{ - - if(lna_path_mini == 1 || lna_path_mini == 3) - { - uint16_t addr = 0x0017; - uint16_t value = 0; - int bit = 0; - if(LMS_ReadFPGAReg(device_handler::getInstance().get_device(device_number),addr, &value)) - device_handler::error(device_number); - - if(lna_path_mini==1) - { - bit = (value >> 8) & 1UL; - if(bit == 0) - { - value |= 1UL << 8; - value &= ~(1UL << 9); - } - else if(bit == 1) - { - - } - else - { - std::cout << "ERROR: device_handler::set_lna_path_mini(): failed to read 8th bit in 0x0017 registry." << std::endl; - close_all_devices(); - exit(0); - } - } - else if(lna_path_mini==3) - { - bit = (value >> 9) & 1UL; - if(bit == 0) - { - value |= 1UL << 9; - value &= ~(1UL << 8); - } - else if(bit == 1) - { - - } - else - { - std::cout << "ERROR: device_handler::set_lna_path_mini(): failed to read 9th bit in 0x0017 registry." << std::endl; - close_all_devices(); - exit(0); - } - } - - if(LMS_WriteFPGAReg(device_handler::getInstance().get_device(device_number),addr, value)) - device_handler::error(device_number); - } - else - { - std::cout << "ERROR: device_handler::set_lna_path_mini(): lna_path_mini must be 1 or 3." << std::endl; - close_all_devices(); - exit(0); - } -} - -void device_handler::set_lna_path(int device_number, int channel, int lna_path) -{ - if(lna_path == 1 || lna_path == 2 || lna_path == 3) - { - if(LMS_SetAntenna(device_handler::getInstance().get_device(device_number),LMS_CH_RX,channel,lna_path)) - device_handler::error(device_number); - } - else - { - std::cout << "ERROR: device_handler::set_lna_path(): lna_path value must be 1,2,3." << std::endl; - close_all_devices(); - exit(0); - } -} - -void device_handler::set_pa_path_mini(int device_number, int pa_path_mini) -{ - if(pa_path_mini == 1 || pa_path_mini == 2) + else if(calibration == 0) { - uint16_t addr = 0x0017; - uint16_t value = 0; - int bit = 0; - - if(LMS_ReadFPGAReg(device_handler::getInstance().get_device(device_number),addr, &value)) - device_handler::error(device_number); - if(pa_path_mini==1) - { - bit = (value >> 12) & 1UL; - if(bit == 0) - { - value |= 1UL << 12; - value &= ~(1UL << 13); - } - else if(bit == 1) - { - - } - else - { - std::cout << "ERROR: device_handler::set_pa_path_mini(): failed to read 12th bit in 0x0017 registry." << std::endl; - close_all_devices(); - exit(0); - } - } - else if(pa_path_mini==2) - { - bit = (value >> 13) & 1UL; - if(bit == 0) - { - value |= 1UL << 13; - value &= ~(1UL << 12); - } - else if(bit == 1) - { - - } - else - { - std::cout << "ERROR: device_handler::set_pa_path_mini(): failed to read 13th bit in 0x0017 registry." << std::endl; - close_all_devices(); - exit(0); - } - } - - if(LMS_WriteFPGAReg(device_handler::getInstance().get_device(device_number),addr, value)) - device_handler::error(device_number); + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX) + direction_string = "TX"; + std::cout << "INFO: device_handler::calibrate(): calibration channel " << channel << " [" << direction_string << "]: disabled." << std::endl; } else { - std::cout << "ERROR: device_handler::set_pa_path_mini(): pa_path_mini must be 1 or 2." << std::endl; - close_all_devices(); - exit(0); + std::cout << "ERROR: device_handler::calibrate(): calibration must be either enabled (1) or disabled (0). Disabling calibration due to incorrect parameters." << std::endl; } } -void device_handler::set_pa_path(int device_number, int channel, int pa_path) +void device_handler::set_antenna(int device_number, int channel, int direction, int antenna) { - if(pa_path == 1 || pa_path == 2) + LMS_SetAntenna(device_handler::getInstance().get_device(device_number),direction,channel,antenna); + int antenna_value = LMS_GetAntenna(device_handler::getInstance().get_device(device_number),direction,channel); + lms_range_t range; + LMS_GetAntennaBW(device_handler::getInstance().get_device(device_number),direction,channel,antenna,&range); + std::string antenna_string; + std::string direction_string; + if(direction == LMS_CH_RX) { - if(LMS_SetAntenna(device_handler::getInstance().get_device(device_number),LMS_CH_TX,channel,pa_path)) - device_handler::error(device_number); + direction_string = "RX"; + switch(antenna_value) + { + case 1: + antenna_string = "LNAH"; + break; + case 2: + antenna_string = "LNAL"; + break; + case 3: + antenna_string = "LNAW"; + break; + default: + antenna_string = "NONE"; + break; + } } - else + else if(direction == LMS_CH_TX) { - std::cout << "ERROR: device_handler::set_pa_path(): pa_path value must be 1,2." << std::endl; - close_all_devices(); - exit(0); + direction_string = "TX"; + switch(antenna_value) + { + case 1: + antenna_string = "BAND1"; + break; + case 2: + antenna_string = "BAND2"; + break; + default: + antenna_string = "NONE"; + break; + } } + std::cout << "INFO: device_handler::set_antenna(): channel " << channel << " antenna set [" << direction_string << "]: " << antenna_string << "." << std::endl; } void device_handler::set_analog_filter(int device_number, bool direction, int channel, int analog_filter, float analog_bandw) @@ -654,13 +664,15 @@ void device_handler::set_analog_filter(int device_number, bool direction, int ch { std::cout << "ERROR: device_handler::set_analog_filter(): analog_bandw TX value must be [5e6,130e6]." << std::endl; close_all_devices(); - exit(0); } else { std::cout << "INFO: device_handler::set_analog_filter(): "; - if(LMS_SetLPFBW(device_handler::getInstance().get_device(device_number),direction,channel,analog_bandw)!=LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetLPFBW(device_handler::getInstance().get_device(device_number),direction,channel,analog_bandw); + + double analog_value; + LMS_GetLPFBW(device_handler::getInstance().get_device(device_number),direction,channel,&analog_value); + std::cout << "Configured bandwidth: " << analog_value/1e6 << " MHz." << std::endl; } } else if(direction == LMS_CH_RX) @@ -669,39 +681,44 @@ void device_handler::set_analog_filter(int device_number, bool direction, int ch { std::cout << "ERROR: device_handler::set_analog_filter(): analog_bandw RX value must be [1.5e6,130e6]." << std::endl; close_all_devices(); - exit(0); } else { std::cout << "INFO: device_handler::set_analog_filter(): "; - if(LMS_SetLPFBW(device_handler::getInstance().get_device(device_number),direction,channel,analog_bandw)!=LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetLPFBW(device_handler::getInstance().get_device(device_number),direction,channel,analog_bandw); + + double analog_value; + LMS_GetLPFBW(device_handler::getInstance().get_device(device_number),direction,channel,&analog_value); + std::cout << "Configured bandwidth: " << analog_value/1e6 << " MHz." << std::endl; } } else { std::cout << "ERROR: device_handler::set_analog_filter(): direction must be 0(LMS_CH_RX) or 1(LMS_CH_TX)." << std::endl; close_all_devices(); - exit(0); } } else { std::cout << "ERROR: device_handler::set_analog_filter(): channel must be 0 or 1." << std::endl; close_all_devices(); - exit(0); } } else if(analog_filter == 0) { - if(LMS_SetLPF(device_handler::getInstance().get_device(device_number), direction, channel, false)!=LMS_SUCCESS) - device_handler::error(device_number); + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX) + direction_string = "TX"; + + std::cout << "INFO: device_handler::set_analog_filter(): analog filter channel " << channel << " [" << direction_string << "]: disabled (maximum value set)." << std::endl; + LMS_SetLPF(device_handler::getInstance().get_device(device_number),direction,channel,false); } else { - std::cout << "ERROR: device_handler::set_analog_filter(): analog_filter must be 0(OFF) or 1(ON)." << std::endl; - close_all_devices(); - exit(0); + std::cout << "ERROR: device_handler::set_analog_filter(): analog_filter must be either enabled (1) or disabled (0). Disabling analog_filter due to incorrect parameters." << std::endl; + LMS_SetLPF(device_handler::getInstance().get_device(device_number),direction,channel,false); } } @@ -709,35 +726,93 @@ void device_handler::set_digital_filter(int device_number, bool direction, int c { if(digital_filter != 0 && digital_filter != 1) { - std::cout << "ERROR: device_handler::set_digital_filter(): digital_filter must be 0(OFF) or 1(ON)." << std::endl; - close_all_devices(); - exit(0); + std::cout << "ERROR: device_handler::set_digital_filter(): digital_filter must be either enabled (1) or disabled (0). Disabling digital_filter due to incorrect parameters." << std::endl; + LMS_SetGFIRLPF(device_handler::getInstance().get_device(device_number),direction,channel,0,digital_bandw); } else if(digital_bandw < 0) { std::cout << "ERROR: device_handler::set_digital_filter(): digital_bandw must be more than 0." << std::endl; close_all_devices(); - exit(0); } - else + else if(digital_filter == 1) { - if(LMS_SetGFIRLPF(device_handler::getInstance().get_device(device_number),direction,channel,digital_filter,digital_bandw)!=LMS_SUCCESS) - device_handler::error(device_number); + LMS_SetGFIRLPF(device_handler::getInstance().get_device(device_number),direction,channel,digital_filter,digital_bandw); + + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX) + direction_string = "TX"; + + std::cout << "INFO: device_handler::set_digital_filter(): digital filter channel " << channel << " [" << direction_string << "]: " << digital_bandw/1e6 << " MHz." << std::endl; } + else if(digital_filter == 0) + { + + LMS_SetGFIRLPF(device_handler::getInstance().get_device(device_number),direction,channel,digital_filter,digital_bandw); + + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX) + direction_string = "TX"; + + std::cout << "INFO: device_handler::set_digital_filter(): digital filter channel " << channel << " set [" << direction_string << "]: disabled." << std::endl; + } } -void device_handler::set_gain(int device_number, bool direction, int channel, unsigned gain_dB) +void device_handler::set_gain(int device_number, bool direction, int channel, unsigned int gain_dB) { if((direction==LMS_CH_RX && gain_dB >= 0 && gain_dB <= 70)||(direction==LMS_CH_TX && gain_dB >= 0 && gain_dB <= 60)) { if(LMS_SetGaindB(device_handler::getInstance().get_device(device_number),direction,channel,gain_dB)!=LMS_SUCCESS) - device_handler::error(device_number); + device_handler::error(device_number); + + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX) + direction_string = "TX"; + + unsigned int gain_value; + LMS_GetGaindB(device_handler::getInstance().get_device(device_number),direction,channel,&gain_value); + std::cout << "INFO: device_handler::set_gain(): set gain [" << direction_string << "]: " << gain_value << " dB." << std::endl; } else { std::cout << "ERROR: device_handler::set_gain(): valid RX gain range [0, 70], TX gain range [0, 60]." << std::endl; close_all_devices(); - exit(0); } } + +void device_handler::set_nco(int device_number, bool direction, int channel, float nco_freq, float nco_pho, int cmix_mode) +{ + if(nco_freq == 0) + { + LMS_SetNCOIndex(device_handler::getInstance().get_device(device_number),direction,channel,-1,cmix_mode); + } + else + { + double freq_value_in[16]; + for (int i = 0; i < 16; ++i) + { + if(i==0) + freq_value_in[i]=nco_freq; + else + freq_value_in[i]=0; + } + LMS_SetNCOFrequency(device_handler::getInstance().get_device(device_number),direction,channel,freq_value_in,nco_pho); + LMS_SetNCOIndex(device_handler::getInstance().get_device(device_number),direction,channel,0,cmix_mode); + std::string direction_string; + if(direction == LMS_CH_RX) + direction_string = "RX"; + else if(direction == LMS_CH_TX); + direction_string = "TX"; + + double freq_value_out[16]; + double pho_value_out[16]; + LMS_GetNCOFrequency(device_handler::getInstance().get_device(device_number),direction,channel,freq_value_out,pho_value_out); + std::cout << "INFO: device_handler::set_nco(): set channel " << channel << " NCO [" << direction_string << "]: " << freq_value_out[0]/1e6 << " MHz (" << pho_value_out[0] << " deg.)." << std::endl; + } +} diff --git a/lib/common/device_handler.h b/lib/common/device_handler.h index a503826..e2dbb39 100644 --- a/lib/common/device_handler.h +++ b/lib/common/device_handler.h @@ -25,16 +25,18 @@ #include #include #include +#include +#include +#include #include -#include class device_handler { -private: - +private: int open_devices = 0; - + // Read device list once flag bool list_read = false; + // Calculate open devices to close them all on close_all_devices int device_count; struct device @@ -62,9 +64,11 @@ class device_handler }; //Device list - lms_info_str_t* list = new lms_info_str_t[5]; + lms_info_str_t* list = new lms_info_str_t[20]; // Device vector. Adds devices from the list std::vector device_vector; + // Run close_all_devices once with this flag + bool close_flag = false; device_handler() {}; device_handler(device_handler const&); @@ -80,6 +84,8 @@ class device_handler return instance; } ~device_handler(); + + mutable std::recursive_mutex block_mutex; /** * Print device error and close all devices. @@ -102,14 +108,14 @@ class device_handler * * @param device_type LimeSDR-Mini(1), LimeSDR-USB(2). */ - void open_device(int device_number, int device_type); + int open_device(std::string serial, int device_type); /** * Disconnect from the device. * * @param device_number Device number from the list of LMS_GetDeviceList. */ - void close_device(int device_number); + void close_device(int device_number, int block_type); /** * Disconnect from all devices. @@ -216,53 +222,9 @@ class device_handler * and center frequencies below 30 MHz (NCO). */ void calibrate(int device_number, int device_type, int calibration, int direction, int channel, double bandwidth, float rf_freq, int path); - - /** - * Workaround for LimeSDR-Mini switch bug. Call upon implementation. - * - * @param device_number Device number from the list of LMS_GetDeviceList. - */ - void mini_switch_workaround(int device_number); - - /** - * LNA switch for LimeSDR-Mini. - * - * @param device_number Device number from the list of LMS_GetDeviceList. - * - * @param lna_path_mini LNA switch: LNAH(1),LNAW(3). - */ - void set_lna_path_mini(int device_number, int lna_path_mini); - - /** - * Set LNA path. - * - * @param device_number Device number from the list of LMS_GetDeviceList. - * - * @param channel Channel selection: A(LMS_CH_0),B(LMS_CH_1). - * - * @param lna_path LNA path: no path(0),LNAH(1),LNAL(2),LNAW(3). - */ - void set_lna_path(int device_number, int channel, int lna_path); - - /** - * PA switch for LimeSDR-Mini. - * - * @param device_number Device number from the list of LMS_GetDeviceList. - * - * @param pa_path_mini PA path: BAND1(1),BAND2(2). - */ - void set_pa_path_mini(int device_number, int pa_path_mini); - - /** - * Set PA path. - * - * @param device_number Device number from the list of LMS_GetDeviceList. - * - * @param channel Channel selection: A(LMS_CH_0),B(LMS_CH_1). - * - * @param pa_path PA path: BAND1(1),BAND2(2). - */ - void set_pa_path(int device_number, int channel, int pa_path); + + + void set_antenna(int device_number, int channel, int direction, int antenna); /** * Set analog filters. @@ -311,6 +273,25 @@ class device_handler * @param gain_dB Desired gain: [0,70] RX, [0,60] TX. */ void set_gain(int device_number, bool direction, int channel, unsigned int gain_dB); + + /** + * Set NCO (numerically controlled oscillator). + * By selecting NCO frequency, phase offset and CMIX mode + * configure NCO. When NCO frequency is 0, NCO is off. + * + * @param device_number Device number from the list of LMS_GetDeviceList. + * + * @param direction Select RX or TX. + * + * @param channel Channel index. + * + * @param nco_freq NCO frequency in Hz. + * + * @param nco_pho NCO phase offset in deg. + * + * @param cmix_mode CMIX mode: UPCONVERT(0), DOWNCONVERT(1). + */ + void set_nco(int device_number, bool direction, int channel, float nco_freq, float nco_pho, int cmix_mode); }; diff --git a/lib/sink_impl.cc b/lib/sink_impl.cc index 3d146a5..11ee8e5 100644 --- a/lib/sink_impl.cc +++ b/lib/sink_impl.cc @@ -30,7 +30,7 @@ namespace gr namespace limesdr { sink::sptr - sink::make(int device_number, + sink::make(std::string serial, int device_type, int chip_mode, int channel, @@ -55,10 +55,14 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1) + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1) { return gnuradio::get_initial_sptr - (new sink_impl(device_number, + (new sink_impl(serial, device_type, chip_mode, channel, @@ -83,10 +87,14 @@ namespace gr digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, - gain_dB_ch1)); + gain_dB_ch1, + nco_freq_ch0, + nco_freq_ch1, + cmix_mode_ch0, + cmix_mode_ch1)); } - sink_impl::sink_impl(int device_number, + sink_impl::sink_impl(std::string serial, int device_type, int chip_mode, int channel, @@ -111,8 +119,12 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1) - : gr::sync_block("sink", + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1) + : gr::block("sink", args_to_io_signature(chip_mode), // Based on chip_mode SISO/MIMO use appropriate input signature gr::io_signature::make(0, 0, 0)) { @@ -121,9 +133,10 @@ namespace gr std::cout << std::endl; // 1. Store private variables upon implementation to protect from changing them later - stored.device_number = device_number; + stored.serial = serial; stored.device_type = device_type; stored.chip_mode = chip_mode; + stored.samp_rate = samp_rate; if(stored.device_type == 1) // LimeSDR-Mini stored.channel = LMS_CH_0; @@ -135,17 +148,18 @@ namespace gr stored.channel = LMS_CH_0; } + if(channel != 0 && channel != 1) + { + std::cout << "ERROR: sink_impl::sink_impl(): CH0 must be either 0 (A) or 1 (B)." << std::endl; + exit(0); + } + // 2. Open device if not opened - device_handler::getInstance().open_device(stored.device_number,stored.device_type); + stored.device_number = device_handler::getInstance().open_device(stored.serial,stored.device_type); // 3. Check where to load settings from (file or block) if(file_switch == 1) { - if(stored.device_type == 1) - { - device_handler::getInstance().mini_switch_workaround(stored.device_number); - device_handler::getInstance().set_pa_path_mini(stored.device_number,pa_path_mini); - } device_handler::getInstance().settings_from_file(stored.device_number,filename); device_handler::getInstance().check_blocks(stored.device_number,sink_block,stored.device_type, stored.chip_mode, 0, 0, file_switch,filename); } @@ -171,126 +185,176 @@ namespace gr device_handler::getInstance().set_digital_filter(stored.device_number,LMS_CH_TX,stored.channel,digital_filter_ch0, digital_bandw_ch0); - // 9. Set PA path switches and settings + // 9. Set PA path if(stored.device_type == 1) // LimeSDR-Mini - { - device_handler::getInstance().mini_switch_workaround(stored.device_number); - device_handler::getInstance().set_pa_path_mini(stored.device_number,pa_path_mini); - device_handler::getInstance().set_pa_path(stored.device_number,stored.channel,pa_path_mini); - } + device_handler::getInstance().set_antenna(stored.device_number,stored.channel,LMS_CH_TX,pa_path_mini); else if(stored.device_type == 2) // LimeSDR-USB - device_handler::getInstance().set_pa_path(stored.device_number,stored.channel,pa_path_ch0); + device_handler::getInstance().set_antenna(stored.device_number,stored.channel,LMS_CH_TX,pa_path_ch0); // 10. Set GAIN device_handler::getInstance().set_gain(stored.device_number,LMS_CH_TX,stored.channel,gain_dB_ch0); - + // 11. Perform calibration device_handler::getInstance().calibrate(stored.device_number,stored.device_type,calibration_ch0,LMS_CH_TX,stored.channel,calibr_bandw_ch0,rf_freq,pa_path_ch0); - - // 12. Begin configuring device for channel 1 (if chip_mode is MIMO) + + // 12. Set NCO + device_handler::getInstance().set_nco(stored.device_number,LMS_CH_TX,stored.channel,nco_freq_ch0,0,cmix_mode_ch0); + + // 13. Begin configuring device for channel 1 (if chip_mode is MIMO) if(stored.chip_mode == 2 && stored.device_type == 2) { - device_handler::getInstance().set_pa_path(stored.device_number,LMS_CH_1,pa_path_ch1); + device_handler::getInstance().set_antenna(stored.device_number,LMS_CH_1,LMS_CH_TX,pa_path_ch1); device_handler::getInstance().set_analog_filter(stored.device_number,LMS_CH_TX,LMS_CH_1,analog_filter_ch1,analog_bandw_ch1); device_handler::getInstance().set_digital_filter(stored.device_number,LMS_CH_TX,LMS_CH_1,digital_filter_ch1, digital_bandw_ch1); device_handler::getInstance().set_gain(stored.device_number,LMS_CH_TX,LMS_CH_1,gain_dB_ch1); device_handler::getInstance().calibrate(stored.device_number,stored.device_type,calibration_ch1,LMS_CH_TX,LMS_CH_1,calibr_bandw_ch1,rf_freq,pa_path_ch1); + device_handler::getInstance().set_nco(stored.device_number,LMS_CH_TX,LMS_CH_1,nco_freq_ch1,0,cmix_mode_ch1); } } - + + // 14. Initialize stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) + { + this->init_stream(stored.device_number,stored.channel,stored.samp_rate); + } + + // 15. Initialize both channels streams (if chip_mode is MIMO) + else if(stored.chip_mode == 2 && stored.device_type == 2) + { + this->init_stream(stored.device_number,LMS_CH_0,stored.samp_rate); + this->init_stream(stored.device_number,LMS_CH_1,stored.samp_rate); + } std::cout << "---------------------------------------------------------------" << std::endl; } sink_impl::~sink_impl() { - device_handler::getInstance().close_device(stored.device_number); + // Stop and destroy stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) + { + LMS_StopStream(&streamId[stored.channel]); + LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number),&streamId[stored.channel]); + } + // Stop and destroy stream for channels 0 & 1 (if chip_mode is MIMO) + else if(stored.chip_mode == 2) + { + LMS_StopStream(&streamId[LMS_CH_0]); + LMS_StopStream(&streamId[LMS_CH_1]); + LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number),&streamId[LMS_CH_0]); + LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number),&streamId[LMS_CH_1]); + } + device_handler::getInstance().close_device(stored.device_number,sink_block); } - bool sink_impl::start(void) - { - // Initialize and start stream for channel 0 (if chip_mode is SISO) - if(stored.chip_mode == 1) // If SISO configure prefered channel - { - this->init_stream(stored.device_number,stored.channel); - if(LMS_StartStream(&streamId[stored.channel]) != LMS_SUCCESS) - device_handler::getInstance().error(stored.device_number); - } + bool sink_impl::start(void) + { + std::unique_lock lock(device_handler::getInstance().block_mutex); + // Initialize and start stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) // If SISO configure prefered channel + { + LMS_StartStream(&streamId[stored.channel]); + } - // Initialize and start stream for channels 0 & 1 (if chip_mode is MIMO) - else if(stored.chip_mode == 2 && stored.device_type == 2) - { - this->init_stream(stored.device_number,LMS_CH_0); - this->init_stream(stored.device_number,LMS_CH_1); - if(LMS_StartStream(&streamId[LMS_CH_0]) != LMS_SUCCESS) - device_handler::getInstance().error(stored.device_number); - if(LMS_StartStream(&streamId[LMS_CH_1]) != LMS_SUCCESS) - device_handler::getInstance().error(stored.device_number); - } - return true; - } + // Initialize and start stream for channels 0 & 1 (if chip_mode is MIMO) + else if(stored.chip_mode == 2 && stored.device_type == 2) + { + LMS_StartStream(&streamId[LMS_CH_0]); + LMS_StartStream(&streamId[LMS_CH_1]); + } + std::unique_lock unlock(device_handler::getInstance().block_mutex); + return true; + } bool sink_impl::stop(void) { - // Stop and destroy stream for channel 0 (if chip_mode is SISO) - if(stored.chip_mode == 1) - { - LMS_StopStream(&streamId[stored.channel]); - LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number), &streamId[stored.channel]); - } - // Stop and destroy stream for channels 0 & 1 (if chip_mode is MIMO) - else if(stored.chip_mode == 2) - { - LMS_StopStream(&streamId[LMS_CH_0]); - LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number), &streamId[LMS_CH_0]); - LMS_StopStream(&streamId[LMS_CH_1]); - LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number), &streamId[LMS_CH_1]); - } + std::unique_lock lock(device_handler::getInstance().block_mutex); + // Stop stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) + { + LMS_StopStream(&streamId[stored.channel]); + } + // Stop streams for channels 0 & 1 (if chip_mode is MIMO) + else if(stored.chip_mode == 2) + { + LMS_StopStream(&streamId[LMS_CH_0]); + LMS_StopStream(&streamId[LMS_CH_1]); + } + std::unique_lock unlock(device_handler::getInstance().block_mutex); return true; } - + int - sink_impl::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) + sink_impl::general_work(int noutput_items, + gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) { - // Send stream for channel 0 (if chip_mode is SISO) + // Send stream for channel 0 (if chip_mode is SISO) if(stored.chip_mode == 1) { - int ret = LMS_SendStream(&streamId[stored.channel], + //Print stream stats to debug + if (stream_analyzer == true && std::time(0)>t) + { + lms_stream_status_t status; + LMS_GetStreamStatus(&streamId[stored.channel], &status); + std::cout << std::endl; + std::cout << "TX rate: " << status.linkRate / 1e6 << " MB/s "; + std::cout << "dropped packets: " << status.droppedPackets << " "; + std::cout << "FIFO: " << 100 * status.fifoFilledCount / status.fifoSize << "% "; + std::cout << "underrun: " << status.underrun << " overrun: " << status.overrun; + std::cout << " FIFO size: " << status.fifoSize << std::endl; + t = std::time(0); + } + + int ret0 = LMS_SendStream(&streamId[stored.channel], input_items[0], noutput_items, - NULL, 0); - if (ret < 0) + NULL, 100); + if(ret0 < 0) { - return 0; //call again + return 0; } - consume(0,ret); + consume(0,ret0); } // Send stream for channels 0 & 1 (if chip_mode is MIMO) else if(stored.chip_mode == 2) { + //Print stream stats to debug + if (stream_analyzer == true && std::time(0)>t) + { + lms_stream_status_t status; + LMS_GetStreamStatus(&streamId[LMS_CH_0], &status); + std::cout << std::endl; + std::cout << "TX rate: " << status.linkRate / 1e6 << " MB/s "; + std::cout << "dropped packets: " << status.droppedPackets << " "; + std::cout << "FIFO: " << 100 * status.fifoFilledCount / status.fifoSize << "% "; + std::cout << "underrun: " << status.underrun << " overrun: " << status.overrun << std::endl; + t = std::time(0); + } + int ret0 = LMS_SendStream(&streamId[LMS_CH_0], input_items[0], noutput_items, - NULL, 0); + NULL, 100); int ret1 = LMS_SendStream(&streamId[LMS_CH_1], input_items[1], noutput_items, - NULL, 0); + NULL, 100); if(ret0 < 0 || ret1 < 0) { - return 0; //call again + return 0; } consume(0,ret0); consume(1,ret1); } + return 0; } // Setup stream - void sink_impl::init_stream(int device_number, int channel) + void sink_impl::init_stream(int device_number, int channel, float samp_rate) { streamId[channel].channel = channel; - streamId[channel].fifoSize = fifosize; + streamId[channel].fifoSize = samp_rate/1e4; streamId[channel].throughputVsLatency = 0.5; streamId[channel].isTx = LMS_CH_TX; streamId[channel].dataFmt = lms_stream_t::LMS_FMT_F32; @@ -298,7 +362,7 @@ namespace gr if (LMS_SetupStream(device_handler::getInstance().get_device(device_number),&streamId[channel])!=LMS_SUCCESS) device_handler::getInstance().error(device_number); - std::cout << "INFO: sink_impl::init_stream(): sink channel " << channel << " (device nr. " << device_number << ") stream setup done." << std::endl; + std::cout << "INFO: sink_impl::init_stream(): sink channel " << channel << " (device nr. " << device_number << ") stream setup done." << std::endl; } // Return io_signature to manage module input count @@ -319,6 +383,76 @@ namespace gr exit(0); } } + + void sink_impl::set_rf_freq(float rf_freq) + { + device_handler::getInstance().set_rf_freq(stored.device_number,stored.device_type,LMS_CH_TX,LMS_CH_0,rf_freq); + } + + void sink_impl::set_pa_path(int pa_path, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "sink_impl::set_pa_path(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_antenna(stored.device_number,channel,LMS_CH_TX,pa_path); + } + } + + void sink_impl::set_nco(float nco_freq, int cmix_mode, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "sink_impl::set_nco(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_nco(stored.device_number,LMS_CH_TX,channel,nco_freq,0,cmix_mode); + } + } + + void sink_impl::set_analog_filter(int analog_filter, float analog_bandw, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "sink_impl::set_analog_filter(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_analog_filter(stored.device_number,LMS_CH_TX,channel,analog_filter,analog_bandw); + } + } + + void sink_impl::set_digital_filter(int digital_filter, float digital_bandw, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "sink_impl::set_digital_filter(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_digital_filter(stored.device_number,LMS_CH_TX,channel,digital_filter,digital_bandw); + } + } + + void sink_impl::set_gain(int gain_dB, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "sink_impl::set_gain(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_gain(stored.device_number,LMS_CH_TX,channel,gain_dB); + } + } } } diff --git a/lib/sink_impl.h b/lib/sink_impl.h index 95a41dd..736d765 100644 --- a/lib/sink_impl.h +++ b/lib/sink_impl.h @@ -21,6 +21,7 @@ #ifndef INCLUDED_LIMESDR_SINK_IMPL_H #define INCLUDED_LIMESDR_SINK_IMPL_H +#include #include #include "common/device_handler.h" @@ -32,22 +33,26 @@ namespace gr { private: lms_stream_t streamId[2]; - uint32_t fifosize = 4096*10; + + long t = std::time(0); + bool stream_analyzer = false; + int LMS_CH_0 = 0; + int LMS_CH_1 = 1; + int sink_block = 2; + struct constant_data { + std::string serial; int device_number; int device_type; int chip_mode; int channel; + float samp_rate; } stored; - - int LMS_CH_0 = 0; - int LMS_CH_1 = 1; - int sink_block = 2; public: - sink_impl(int device_number, + sink_impl(std::string serial, int device_type, int chip_mode, int channel, @@ -72,20 +77,37 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1); + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1); ~sink_impl(); - int work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items); + int general_work(int noutput_items, + gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); bool start(void); - bool stop(void); - - void init_stream(int device_number, int channel); + bool stop(void); inline gr::io_signature::sptr args_to_io_signature(int channel_number); + + void init_stream(int device_number, int channel, float samp_rate); + + void set_rf_freq(float rf_freq); + + void set_pa_path(int pa_path, int channel); + + void set_nco(float nco_freq, int cmix_mode, int channel); + + void set_analog_filter(int analog_filter, float analog_bandw, int channel); + + void set_digital_filter(int digital_filter, float digital_bandw, int channel); + + void set_gain(int gain_dB, int channel); }; } } diff --git a/lib/source_impl.cc b/lib/source_impl.cc index 8884e81..f3b6240 100644 --- a/lib/source_impl.cc +++ b/lib/source_impl.cc @@ -30,7 +30,7 @@ namespace gr namespace limesdr { source::sptr - source::make(int device_number, + source::make(std::string serial, int device_type, int chip_mode, int channel, @@ -55,10 +55,14 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1) + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1) { return gnuradio::get_initial_sptr - (new source_impl(device_number, + (new source_impl(serial, device_type, chip_mode, channel, @@ -83,10 +87,14 @@ namespace gr digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, - gain_dB_ch1)); + gain_dB_ch1, + nco_freq_ch0, + nco_freq_ch1, + cmix_mode_ch0, + cmix_mode_ch1)); } - source_impl::source_impl(int device_number, + source_impl::source_impl(std::string serial, int device_type, int chip_mode, int channel, @@ -111,8 +119,12 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1) - : gr::sync_block("source", + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1) + : gr::block("source", gr::io_signature::make(0, 0, 0), // Based on chip_mode SISO/MIMO use appropriate output signature args_to_io_signature(chip_mode)) { @@ -121,10 +133,11 @@ namespace gr std::cout << std::endl; // 1. Store private variables upon implementation to protect from changing them later - stored.device_number = device_number; + stored.serial = serial; stored.device_type = device_type; stored.chip_mode = chip_mode; - + stored.samp_rate = samp_rate; + if(stored.device_type == 1) // LimeSDR-Mini stored.channel = LMS_CH_0; else if(stored.device_type == 2) // LimeSDR-USB @@ -135,18 +148,18 @@ namespace gr stored.channel = LMS_CH_0; } + if(channel != 0 && channel != 1) + { + std::cout << "ERROR: source_impl::source_impl(): CH0 must be either 0 (A) or 1 (B)." << std::endl; + exit(0); + } + // 2. Open device if not opened - device_handler::getInstance().open_device(stored.device_number,stored.device_type); + stored.device_number = device_handler::getInstance().open_device(stored.serial,stored.device_type); // 3. Check where to load settings from (file or block) if(file_switch == 1) { - if(stored.device_type == 1) - { - device_handler::getInstance().mini_switch_workaround(stored.device_number); - device_handler::getInstance().set_lna_path_mini(stored.device_number,lna_path_mini); - } - device_handler::getInstance().settings_from_file(stored.device_number,filename); device_handler::getInstance().check_blocks(stored.device_number,source_block,stored.device_type, stored.chip_mode, 0, 0, file_switch,filename); } @@ -173,139 +186,188 @@ namespace gr device_handler::getInstance().set_digital_filter(stored.device_number,LMS_CH_RX,stored.channel,digital_filter_ch0, digital_bandw_ch0); - // 9. Set LNA path switches and settings + // 9. Set LNA path if(stored.device_type == 1) // LimeSDR-Mini - { - device_handler::getInstance().mini_switch_workaround(stored.device_number); - device_handler::getInstance().set_lna_path_mini(stored.device_number,lna_path_mini); - device_handler::getInstance().set_lna_path(stored.device_number,stored.channel,lna_path_mini); - } + device_handler::getInstance().set_antenna(stored.device_number,stored.channel,LMS_CH_RX,lna_path_mini); else if(stored.device_type == 2) // LimeSDR-USB - device_handler::getInstance().set_lna_path(stored.device_number,stored.channel,lna_path_ch0); - + device_handler::getInstance().set_antenna(stored.device_number,stored.channel,LMS_CH_RX,lna_path_ch0); // 10. Set GAIN device_handler::getInstance().set_gain(stored.device_number,LMS_CH_RX,stored.channel,gain_dB_ch0); - - + // 11. Perform calibration device_handler::getInstance().calibrate(stored.device_number,stored.device_type,calibration_ch0,LMS_CH_RX,stored.channel,calibr_bandw_ch0,rf_freq,lna_path_ch0); - - - // 12. Begin configuring device for channel 1 (if chip_mode is MIMO) + + // 12. Set NCO + device_handler::getInstance().set_nco(stored.device_number,LMS_CH_RX,stored.channel,nco_freq_ch0,0,cmix_mode_ch0); + + // 13. Begin configuring device for channel 1 (if chip_mode is MIMO) if(stored.chip_mode == 2 && stored.device_type == 2) { device_handler::getInstance().set_analog_filter(stored.device_number,LMS_CH_RX,LMS_CH_1,analog_filter_ch1, analog_bandw_ch1); device_handler::getInstance().set_digital_filter(stored.device_number,LMS_CH_RX,LMS_CH_1,digital_filter_ch1, digital_bandw_ch1); - device_handler::getInstance().set_lna_path(stored.device_number,LMS_CH_1,lna_path_ch1); + device_handler::getInstance().set_antenna(stored.device_number,LMS_CH_1,LMS_CH_RX,lna_path_ch1); device_handler::getInstance().set_gain(stored.device_number,LMS_CH_RX,LMS_CH_1,gain_dB_ch1); device_handler::getInstance().calibrate(stored.device_number,stored.device_type,calibration_ch1,LMS_CH_RX,LMS_CH_1,calibr_bandw_ch1,rf_freq,lna_path_ch1); + device_handler::getInstance().set_nco(stored.device_number,LMS_CH_RX,LMS_CH_1,nco_freq_ch1,0,cmix_mode_ch1); } } + // 14. Initialize stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) + { + this->init_stream(stored.device_number,stored.channel,stored.samp_rate); + } + + // 15. Initialize both channels streams (if chip_mode is MIMO) + else if(stored.chip_mode == 2 && stored.device_type == 2) + { + this->init_stream(stored.device_number,LMS_CH_0,stored.samp_rate); + this->init_stream(stored.device_number,LMS_CH_1,stored.samp_rate); + } std::cout << "---------------------------------------------------------------" << std::endl; } source_impl::~source_impl() { - device_handler::getInstance().close_device(stored.device_number); + // Stop and destroy stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) + { + LMS_StopStream(&streamId[stored.channel]); + LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number),&streamId[stored.channel]); + } + // Stop and destroy stream for channels 0 & 1 (if chip_mode is MIMO) + else if(stored.chip_mode == 2) + { + LMS_StopStream(&streamId[LMS_CH_0]); + LMS_StopStream(&streamId[LMS_CH_1]); + LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number),&streamId[LMS_CH_0]); + LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number),&streamId[LMS_CH_1]); + } + device_handler::getInstance().close_device(stored.device_number,source_block); } - bool source_impl::start(void) - { - // Initialize and start stream for channel 0 (if chip_mode is SISO) - if(stored.chip_mode == 1) // If SISO configure prefered channel - { - this->init_stream(stored.device_number,stored.channel); - if(LMS_StartStream(&streamId[stored.channel]) != LMS_SUCCESS) - device_handler::getInstance().error(stored.device_number); - } + bool source_impl::start(void) + { + std::unique_lock lock(device_handler::getInstance().block_mutex); + // Initialize and start stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) // If SISO configure prefered channel + { + if(LMS_StartStream(&streamId[stored.channel]) != LMS_SUCCESS) + device_handler::getInstance().error(stored.device_number); + } - // Initialize and start stream for channels 0 & 1 (if chip_mode is MIMO) - else if(stored.chip_mode == 2 && stored.device_type == 2) - { - this->init_stream(stored.device_number,LMS_CH_0); - this->init_stream(stored.device_number,LMS_CH_1); - if(LMS_StartStream(&streamId[LMS_CH_0]) != LMS_SUCCESS) - device_handler::getInstance().error(stored.device_number); - if(LMS_StartStream(&streamId[LMS_CH_1]) != LMS_SUCCESS) - device_handler::getInstance().error(stored.device_number); - } - return true; - } + // Initialize and start stream for channels 0 & 1 (if chip_mode is MIMO) + else if(stored.chip_mode == 2 && stored.device_type == 2) + { + if(LMS_StartStream(&streamId[LMS_CH_0]) != LMS_SUCCESS) + device_handler::getInstance().error(stored.device_number); + if(LMS_StartStream(&streamId[LMS_CH_1]) != LMS_SUCCESS) + device_handler::getInstance().error(stored.device_number); + } + std::unique_lock unlock(device_handler::getInstance().block_mutex); + return true; + } bool source_impl::stop(void) { - // Stop and destroy stream for channel 0 (if chip_mode is SISO) - if(stored.chip_mode == 1) - { - LMS_StopStream(&streamId[stored.channel]); - LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number), &streamId[stored.channel]); - } - // Stop and destroy stream for channels 0 & 1 (if chip_mode is MIMO) - else if(stored.chip_mode == 2) - { - LMS_StopStream(&streamId[LMS_CH_0]); - LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number), &streamId[LMS_CH_0]); - LMS_StopStream(&streamId[LMS_CH_1]); - LMS_DestroyStream(device_handler::getInstance().get_device(stored.device_number), &streamId[LMS_CH_1]); - } - return true; + std::unique_lock lock(device_handler::getInstance().block_mutex); + // Stop stream for channel 0 (if chip_mode is SISO) + if(stored.chip_mode == 1) + { + LMS_StopStream(&streamId[stored.channel]); + } + // Stop streams for channels 0 & 1 (if chip_mode is MIMO) + else if(stored.chip_mode == 2) + { + LMS_StopStream(&streamId[LMS_CH_0]); + LMS_StopStream(&streamId[LMS_CH_1]); + } + std::unique_lock unlock(device_handler::getInstance().block_mutex); + return true; } int - source_impl::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) + source_impl::general_work(int noutput_items, + gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items) { // Receive stream for channel 0 (if chip_mode is SISO) if(stored.chip_mode == 1) { - int ret = LMS_RecvStream(&streamId[stored.channel], + //Print stream stats to debug + if (stream_analyzer == true && std::time(0)>t) + { + lms_stream_status_t status; + LMS_GetStreamStatus(&streamId[stored.channel], &status); + std::cout << std::endl; + std::cout << "RX rate: " << status.linkRate / 1e6 << " MB/s "; + std::cout << "dropped packets: " << status.droppedPackets << " "; + std::cout << "FIFO: " << 100 * status.fifoFilledCount / status.fifoSize << "% "; + std::cout << "underrun: " << status.underrun << " overrun: " << status.overrun; + std::cout << " FIFO size: " << status.fifoSize << std::endl; + t = std::time(0); + } + + int ret0 = LMS_RecvStream(&streamId[stored.channel], output_items[0], noutput_items, - NULL, 0); - - if (ret < 0) - return 0; //call again - - produce(0,ret); + NULL, 100); + if(ret0 < 0) + { + return 0; + } + produce(0,ret0); return WORK_CALLED_PRODUCE; - } // Receive stream for channels 0 & 1 (if chip_mode is MIMO) else if(stored.chip_mode == 2) { + //Print stream stats to debug + if (stream_analyzer == true && std::time(0)>t) + { + lms_stream_status_t status; + LMS_GetStreamStatus(&streamId[LMS_CH_0], &status); + std::cout << std::endl; + std::cout << "RX rate: " << status.linkRate / 1e6 << " MB/s "; + std::cout << "dropped packets: " << status.droppedPackets << " "; + std::cout << "FIFO: " << 100 * status.fifoFilledCount / status.fifoSize << "% "; + std::cout << "underrun: " << status.underrun << " overrun: " << status.overrun << std::endl; + t = std::time(0); + } + int ret0 = LMS_RecvStream(&streamId[LMS_CH_0], output_items[0], noutput_items, - NULL, 0); + NULL, 100); int ret1 = LMS_RecvStream(&streamId[LMS_CH_1], output_items[1], noutput_items, - NULL, 0); - - if(ret0 < 0 || ret1 < 0) - return 0; //call again - - produce(0,ret0); - produce(1,ret1); + NULL, 100); + if(ret0 <= 0 || ret1 <= 0) + { + return 0; + } + this->produce(0,ret0); + this->produce(1,ret1); return WORK_CALLED_PRODUCE; } + return 0; } // Setup stream - void source_impl::init_stream(int device_number, int channel) + void source_impl::init_stream(int device_number, int channel, float samp_rate) { - this->streamId[channel].channel = channel; - this->streamId[channel].fifoSize = fifosize; - this->streamId[channel].throughputVsLatency = 0.5; - this->streamId[channel].isTx = LMS_CH_RX; - this->streamId[channel].dataFmt = lms_stream_t::LMS_FMT_F32; + streamId[channel].channel = channel; + streamId[channel].fifoSize = samp_rate/1e4; + streamId[channel].throughputVsLatency = 0.5; + streamId[channel].isTx = LMS_CH_RX; + streamId[channel].dataFmt = lms_stream_t::LMS_FMT_F32; if (LMS_SetupStream(device_handler::getInstance().get_device(stored.device_number),&streamId[channel])!=LMS_SUCCESS) device_handler::getInstance().error(stored.device_number); - std::cout << "INFO: source_impl::init_stream(): source channel " << channel << " (device nr. " << device_number << ") stream setup done." << std::endl; + std::cout << "INFO: source_impl::init_stream(): source channel " << channel << " (device nr. " << device_number << ") stream setup done." << std::endl; } // Return io_signature to manage module output count @@ -326,6 +388,75 @@ namespace gr exit(0); } } + void source_impl::set_rf_freq(float rf_freq) + { + device_handler::getInstance().set_rf_freq(stored.device_number,stored.device_type,LMS_CH_RX,LMS_CH_0,rf_freq); + } + + void source_impl::set_nco(float nco_freq, int cmix_mode, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "source_impl::set_nco(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_nco(stored.device_number,LMS_CH_RX,channel,nco_freq,0,cmix_mode); + } + } + + void source_impl::set_lna_path(int lna_path, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "source_impl::set_lna_path(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_antenna(stored.device_number,channel,LMS_CH_RX,lna_path); + } + } + + void source_impl::set_analog_filter(int analog_filter, float analog_bandw, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "source_impl::set_analog_filter(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_analog_filter(stored.device_number,LMS_CH_RX,channel,analog_filter,analog_bandw); + } + } + + void source_impl::set_digital_filter(int digital_filter, float digital_bandw, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "source_impl::set_digital_filter(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_digital_filter(stored.device_number,LMS_CH_RX,channel,digital_filter,digital_bandw); + } + } + + void source_impl::set_gain(int gain_dB, int channel) + { + if(stored.device_type == 1 && channel == 1) + { + // IGNORE CHANNEL 1 FOR LIMESDR-MINI + std::cout << "source_impl::set_gain(): INFO: Setting bypassed. LimeSDR-Mini does not support channel 1 configuration." << std::endl; + } + else + { + device_handler::getInstance().set_gain(stored.device_number,LMS_CH_RX,channel,gain_dB); + } + } } } diff --git a/lib/source_impl.h b/lib/source_impl.h index 280a297..0bdf6be 100644 --- a/lib/source_impl.h +++ b/lib/source_impl.h @@ -21,6 +21,7 @@ #ifndef INCLUDED_LIMESDR_SOURCE_IMPL_H #define INCLUDED_LIMESDR_SOURCE_IMPL_H +#include #include #include "common/device_handler.h" @@ -32,24 +33,26 @@ namespace gr { private: lms_stream_t streamId[2]; - uint32_t fifosize = 4096*10; - - - + + long t = std::time(0); + bool stream_analyzer = false; + int LMS_CH_0 = 0; int LMS_CH_1 = 1; int source_block = 1; struct constant_data { + std::string serial; int device_number; int device_type; int chip_mode; int channel; + float samp_rate; } stored; public: - source_impl(int device_number, + source_impl(std::string serial, int device_type, int chip_mode, int channel, @@ -74,20 +77,37 @@ namespace gr int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, - int gain_dB_ch1); + int gain_dB_ch1, + float nco_freq_ch0, + float nco_freq_ch1, + int cmix_mode_ch0, + int cmix_mode_ch1); ~source_impl(); - int work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items); + int general_work(int noutput_items, + gr_vector_int &ninput_items, + gr_vector_const_void_star &input_items, + gr_vector_void_star &output_items); bool start(void); - - bool stop(void); - void init_stream(int device_number, int channel); + bool stop(void); inline gr::io_signature::sptr args_to_io_signature(int channel_number); + + void init_stream(int device_number, int channel, float samp_rate); + + void set_rf_freq(float rf_freq); + + void set_lna_path(int lna_path, int channel); + + void set_nco(float nco_freq, int cmix_mode, int channel); + + void set_analog_filter(int analog_filter, float analog_bandw, int channel); + + void set_digital_filter(int digital_filter, float digital_bandw, int channel); + + void set_gain(int gain_dB, int channel); }; } } diff --git a/windows/GNU_Radio/bin/LimeSuite.dll b/windows/GNU_Radio/bin/LimeSuite.dll new file mode 100644 index 0000000000000000000000000000000000000000..233ce4182f10d4d88a91f2e02b7cbdc7f8ab07dc GIT binary patch literal 683008 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
WEv>C9hhPU*d_uvc@#A&6 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 literal 0 HcmV?d00001 diff --git a/windows/GNU_Radio/lib/site-packages/limesdr/__init__.pyc b/windows/GNU_Radio/lib/site-packages/limesdr/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c8a71d632e4a7de7f2cb2326659516c1b1033fa GIT binary patch literal 347 zcmZXP&q@O^5XL9F^$*b&ym`#cwdn3$L_D-e!IsiilwQJ;gx%2HO-QoH-h4XWM|=RC z)q)3y$uHl0%#ca^Ii&AzA6o(YIKcZJkH11lfGt2b0!ctdP!ZTXH)k+V5$q_q3m}9v z1YTqe>txVRl?b{iwP%>2RP15##8$b~hCR;a)AeMPpwj zOUM1IF2V^Kv)URLrp_6cU=7o literal 0 HcmV?d00001 diff --git a/windows/GNU_Radio/lib/site-packages/limesdr/__init__.pyo b/windows/GNU_Radio/lib/site-packages/limesdr/__init__.pyo new file mode 100644 index 0000000000000000000000000000000000000000..3c8a71d632e4a7de7f2cb2326659516c1b1033fa GIT binary patch literal 347 zcmZXP&q@O^5XL9F^$*b&ym`#cwdn3$L_D-e!IsiilwQJ;gx%2HO-QoH-h4XWM|=RC z)q)3y$uHl0%#ca^Ii&AzA6o(YIKcZJkH11lfGt2b0!ctdP!ZTXH)k+V5$q_q3m}9v z1YTqe>txVRl?b{iwP%>2RP15##8$b~hCR;a)AeMPpwj zOUM1IF2V^Kv)URLrp_6cU=7o literal 0 HcmV?d00001 diff --git a/windows/GNU_Radio/lib/site-packages/limesdr/_limesdr_swig.pyd b/windows/GNU_Radio/lib/site-packages/limesdr/_limesdr_swig.pyd new file mode 100644 index 0000000000000000000000000000000000000000..6934dad45e67cea5b301b4e1aca2ed0d009d8eee GIT binary patch literal 320512 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 oK#h~=N^jsJ38$i*&3rat)fYR3oYX1_< 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 (2, 7, 0): + def swig_import_helper(): + import importlib + pkg = __name__.rpartition('.')[0] + mname = '.'.join((pkg, '_limesdr_swig')).lstrip('.') + try: + return importlib.import_module(mname) + except ImportError: + return importlib.import_module('_limesdr_swig') + _limesdr_swig = swig_import_helper() + del swig_import_helper +elif _swig_python_version_info >= (2, 6, 0): + def swig_import_helper(): + from os.path import dirname + import imp + fp = None + try: + fp, pathname, description = imp.find_module('_limesdr_swig', [dirname(__file__)]) + except ImportError: + import _limesdr_swig + return _limesdr_swig + try: + _mod = imp.load_module('_limesdr_swig', fp, pathname, description) + finally: + if fp is not None: + fp.close() + return _mod + _limesdr_swig = swig_import_helper() + del swig_import_helper +else: + import _limesdr_swig +del _swig_python_version_info + +try: + _swig_property = property +except NameError: + pass # Python < 2.2 doesn't have 'property'. + +try: + import builtins as __builtin__ +except ImportError: + import __builtin__ + +def _swig_setattr_nondynamic(self, class_type, name, value, static=1): + if (name == "thisown"): + return self.this.own(value) + if (name == "this"): + if type(value).__name__ == 'SwigPyObject': + self.__dict__[name] = value + return + method = class_type.__swig_setmethods__.get(name, None) + if method: + return method(self, value) + if (not static): + object.__setattr__(self, name, value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + + +def _swig_setattr(self, class_type, name, value): + return _swig_setattr_nondynamic(self, class_type, name, value, 0) + + +def _swig_getattr(self, class_type, name): + if (name == "thisown"): + return self.this.own() + method = class_type.__swig_getmethods__.get(name, None) + if method: + return method(self) + raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) + + +def _swig_repr(self): + try: + strthis = "proxy of " + self.this.__repr__() + except __builtin__.Exception: + strthis = "" + return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) + + +def _swig_setattr_nondynamic_method(set): + def set_attr(self, name, value): + if (name == "thisown"): + return self.this.own(value) + if hasattr(self, name) or (name == "this"): + set(self, name, value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + return set_attr + + + +def high_res_timer_now(): + """high_res_timer_now() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_now() + +def high_res_timer_now_perfmon(): + """high_res_timer_now_perfmon() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_now_perfmon() + +def high_res_timer_tps(): + """high_res_timer_tps() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_tps() + +def high_res_timer_epoch(): + """high_res_timer_epoch() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_epoch() +class source(object): + """Proxy of C++ gr::limesdr::source class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int lna_path_mini, int lna_path_ch0, int lna_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> source_sptr""" + return _limesdr_swig.source_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + make = staticmethod(make) + + def set_rf_freq(self, rf_freq): + """set_rf_freq(source self, float rf_freq)""" + return _limesdr_swig.source_set_rf_freq(self, rf_freq) + + + def set_lna_path(self, lna_path, channel): + """set_lna_path(source self, int lna_path, int channel)""" + return _limesdr_swig.source_set_lna_path(self, lna_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(source self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.source_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(source self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.source_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(source self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.source_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(source self, int gain_dB, int channel)""" + return _limesdr_swig.source_set_gain(self, gain_dB, channel) + + __swig_destroy__ = _limesdr_swig.delete_source + __del__ = lambda self: None +source_swigregister = _limesdr_swig.source_swigregister +source_swigregister(source) + +def source_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """source_make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int lna_path_mini, int lna_path_ch0, int lna_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> source_sptr""" + return _limesdr_swig.source_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + +class source_sptr(object): + """Proxy of C++ boost::shared_ptr<(gr::limesdr::source)> class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + """ + __init__(boost::shared_ptr<(gr::limesdr::source)> self) -> source_sptr + __init__(boost::shared_ptr<(gr::limesdr::source)> self, source p) -> source_sptr + """ + this = _limesdr_swig.new_source_sptr(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + + def __deref__(self): + """__deref__(source_sptr self) -> source""" + return _limesdr_swig.source_sptr___deref__(self) + + __swig_destroy__ = _limesdr_swig.delete_source_sptr + __del__ = lambda self: None + + def make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(source_sptr self, std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int lna_path_mini, int lna_path_ch0, int lna_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> source_sptr""" + return _limesdr_swig.source_sptr_make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + + def set_rf_freq(self, rf_freq): + """set_rf_freq(source_sptr self, float rf_freq)""" + return _limesdr_swig.source_sptr_set_rf_freq(self, rf_freq) + + + def set_lna_path(self, lna_path, channel): + """set_lna_path(source_sptr self, int lna_path, int channel)""" + return _limesdr_swig.source_sptr_set_lna_path(self, lna_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(source_sptr self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.source_sptr_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(source_sptr self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.source_sptr_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(source_sptr self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.source_sptr_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(source_sptr self, int gain_dB, int channel)""" + return _limesdr_swig.source_sptr_set_gain(self, gain_dB, channel) + + + def history(self): + """history(source_sptr self) -> unsigned int""" + return _limesdr_swig.source_sptr_history(self) + + + def declare_sample_delay(self, *args): + """ + declare_sample_delay(source_sptr self, int which, int delay) + declare_sample_delay(source_sptr self, unsigned int delay) + """ + return _limesdr_swig.source_sptr_declare_sample_delay(self, *args) + + + def sample_delay(self, which): + """sample_delay(source_sptr self, int which) -> unsigned int""" + return _limesdr_swig.source_sptr_sample_delay(self, which) + + + def output_multiple(self): + """output_multiple(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_output_multiple(self) + + + def relative_rate(self): + """relative_rate(source_sptr self) -> double""" + return _limesdr_swig.source_sptr_relative_rate(self) + + + def start(self): + """start(source_sptr self) -> bool""" + return _limesdr_swig.source_sptr_start(self) + + + def stop(self): + """stop(source_sptr self) -> bool""" + return _limesdr_swig.source_sptr_stop(self) + + + def nitems_read(self, which_input): + """nitems_read(source_sptr self, unsigned int which_input) -> uint64_t""" + return _limesdr_swig.source_sptr_nitems_read(self, which_input) + + + def nitems_written(self, which_output): + """nitems_written(source_sptr self, unsigned int which_output) -> uint64_t""" + return _limesdr_swig.source_sptr_nitems_written(self, which_output) + + + def max_noutput_items(self): + """max_noutput_items(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_max_noutput_items(self) + + + def set_max_noutput_items(self, m): + """set_max_noutput_items(source_sptr self, int m)""" + return _limesdr_swig.source_sptr_set_max_noutput_items(self, m) + + + def unset_max_noutput_items(self): + """unset_max_noutput_items(source_sptr self)""" + return _limesdr_swig.source_sptr_unset_max_noutput_items(self) + + + def is_set_max_noutput_items(self): + """is_set_max_noutput_items(source_sptr self) -> bool""" + return _limesdr_swig.source_sptr_is_set_max_noutput_items(self) + + + def set_min_noutput_items(self, m): + """set_min_noutput_items(source_sptr self, int m)""" + return _limesdr_swig.source_sptr_set_min_noutput_items(self, m) + + + def min_noutput_items(self): + """min_noutput_items(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_min_noutput_items(self) + + + def max_output_buffer(self, i): + """max_output_buffer(source_sptr self, int i) -> long""" + return _limesdr_swig.source_sptr_max_output_buffer(self, i) + + + def set_max_output_buffer(self, *args): + """ + set_max_output_buffer(source_sptr self, long max_output_buffer) + set_max_output_buffer(source_sptr self, int port, long max_output_buffer) + """ + return _limesdr_swig.source_sptr_set_max_output_buffer(self, *args) + + + def min_output_buffer(self, i): + """min_output_buffer(source_sptr self, int i) -> long""" + return _limesdr_swig.source_sptr_min_output_buffer(self, i) + + + def set_min_output_buffer(self, *args): + """ + set_min_output_buffer(source_sptr self, long min_output_buffer) + set_min_output_buffer(source_sptr self, int port, long min_output_buffer) + """ + return _limesdr_swig.source_sptr_set_min_output_buffer(self, *args) + + + def pc_noutput_items(self): + """pc_noutput_items(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_noutput_items(self) + + + def pc_noutput_items_avg(self): + """pc_noutput_items_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_noutput_items_avg(self) + + + def pc_noutput_items_var(self): + """pc_noutput_items_var(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_noutput_items_var(self) + + + def pc_nproduced(self): + """pc_nproduced(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_nproduced(self) + + + def pc_nproduced_avg(self): + """pc_nproduced_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_nproduced_avg(self) + + + def pc_nproduced_var(self): + """pc_nproduced_var(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_nproduced_var(self) + + + def pc_input_buffers_full(self, *args): + """ + pc_input_buffers_full(source_sptr self, int which) -> float + pc_input_buffers_full(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_input_buffers_full(self, *args) + + + def pc_input_buffers_full_avg(self, *args): + """ + pc_input_buffers_full_avg(source_sptr self, int which) -> float + pc_input_buffers_full_avg(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_input_buffers_full_avg(self, *args) + + + def pc_input_buffers_full_var(self, *args): + """ + pc_input_buffers_full_var(source_sptr self, int which) -> float + pc_input_buffers_full_var(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_input_buffers_full_var(self, *args) + + + def pc_output_buffers_full(self, *args): + """ + pc_output_buffers_full(source_sptr self, int which) -> float + pc_output_buffers_full(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_output_buffers_full(self, *args) + + + def pc_output_buffers_full_avg(self, *args): + """ + pc_output_buffers_full_avg(source_sptr self, int which) -> float + pc_output_buffers_full_avg(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_output_buffers_full_avg(self, *args) + + + def pc_output_buffers_full_var(self, *args): + """ + pc_output_buffers_full_var(source_sptr self, int which) -> float + pc_output_buffers_full_var(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_output_buffers_full_var(self, *args) + + + def pc_work_time(self): + """pc_work_time(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time(self) + + + def pc_work_time_avg(self): + """pc_work_time_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time_avg(self) + + + def pc_work_time_var(self): + """pc_work_time_var(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time_var(self) + + + def pc_work_time_total(self): + """pc_work_time_total(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time_total(self) + + + def pc_throughput_avg(self): + """pc_throughput_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_throughput_avg(self) + + + def set_processor_affinity(self, mask): + """set_processor_affinity(source_sptr self, std::vector< int,std::allocator< int > > const & mask)""" + return _limesdr_swig.source_sptr_set_processor_affinity(self, mask) + + + def unset_processor_affinity(self): + """unset_processor_affinity(source_sptr self)""" + return _limesdr_swig.source_sptr_unset_processor_affinity(self) + + + def processor_affinity(self): + """processor_affinity(source_sptr self) -> std::vector< int,std::allocator< int > >""" + return _limesdr_swig.source_sptr_processor_affinity(self) + + + def active_thread_priority(self): + """active_thread_priority(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_active_thread_priority(self) + + + def thread_priority(self): + """thread_priority(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_thread_priority(self) + + + def set_thread_priority(self, priority): + """set_thread_priority(source_sptr self, int priority) -> int""" + return _limesdr_swig.source_sptr_set_thread_priority(self, priority) + + + def name(self): + """name(source_sptr self) -> std::string""" + return _limesdr_swig.source_sptr_name(self) + + + def symbol_name(self): + """symbol_name(source_sptr self) -> std::string""" + return _limesdr_swig.source_sptr_symbol_name(self) + + + def input_signature(self): + """input_signature(source_sptr self) -> io_signature_sptr""" + return _limesdr_swig.source_sptr_input_signature(self) + + + def output_signature(self): + """output_signature(source_sptr self) -> io_signature_sptr""" + return _limesdr_swig.source_sptr_output_signature(self) + + + def unique_id(self): + """unique_id(source_sptr self) -> long""" + return _limesdr_swig.source_sptr_unique_id(self) + + + def to_basic_block(self): + """to_basic_block(source_sptr self) -> basic_block_sptr""" + return _limesdr_swig.source_sptr_to_basic_block(self) + + + def check_topology(self, ninputs, noutputs): + """check_topology(source_sptr self, int ninputs, int noutputs) -> bool""" + return _limesdr_swig.source_sptr_check_topology(self, ninputs, noutputs) + + + def alias(self): + """alias(source_sptr self) -> std::string""" + return _limesdr_swig.source_sptr_alias(self) + + + def set_block_alias(self, name): + """set_block_alias(source_sptr self, std::string name)""" + return _limesdr_swig.source_sptr_set_block_alias(self, name) + + + def _post(self, which_port, msg): + """_post(source_sptr self, swig_int_ptr which_port, swig_int_ptr msg)""" + return _limesdr_swig.source_sptr__post(self, which_port, msg) + + + def message_ports_in(self): + """message_ports_in(source_sptr self) -> swig_int_ptr""" + return _limesdr_swig.source_sptr_message_ports_in(self) + + + def message_ports_out(self): + """message_ports_out(source_sptr self) -> swig_int_ptr""" + return _limesdr_swig.source_sptr_message_ports_out(self) + + + def message_subscribers(self, which_port): + """message_subscribers(source_sptr self, swig_int_ptr which_port) -> swig_int_ptr""" + return _limesdr_swig.source_sptr_message_subscribers(self, which_port) + +source_sptr_swigregister = _limesdr_swig.source_sptr_swigregister +source_sptr_swigregister(source_sptr) + + +source_sptr.__repr__ = lambda self: "" % (self.name(), self.unique_id()) +source = source.make; + +class sink(object): + """Proxy of C++ gr::limesdr::sink class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int pa_path_mini, int pa_path_ch0, int pa_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> sink_sptr""" + return _limesdr_swig.sink_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + make = staticmethod(make) + + def set_rf_freq(self, rf_freq): + """set_rf_freq(sink self, float rf_freq)""" + return _limesdr_swig.sink_set_rf_freq(self, rf_freq) + + + def set_pa_path(self, pa_path, channel): + """set_pa_path(sink self, int pa_path, int channel)""" + return _limesdr_swig.sink_set_pa_path(self, pa_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(sink self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.sink_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(sink self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.sink_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(sink self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.sink_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(sink self, int gain_dB, int channel)""" + return _limesdr_swig.sink_set_gain(self, gain_dB, channel) + + __swig_destroy__ = _limesdr_swig.delete_sink + __del__ = lambda self: None +sink_swigregister = _limesdr_swig.sink_swigregister +sink_swigregister(sink) + +def sink_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """sink_make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int pa_path_mini, int pa_path_ch0, int pa_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> sink_sptr""" + return _limesdr_swig.sink_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + +class sink_sptr(object): + """Proxy of C++ boost::shared_ptr<(gr::limesdr::sink)> class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + """ + __init__(boost::shared_ptr<(gr::limesdr::sink)> self) -> sink_sptr + __init__(boost::shared_ptr<(gr::limesdr::sink)> self, sink p) -> sink_sptr + """ + this = _limesdr_swig.new_sink_sptr(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + + def __deref__(self): + """__deref__(sink_sptr self) -> sink""" + return _limesdr_swig.sink_sptr___deref__(self) + + __swig_destroy__ = _limesdr_swig.delete_sink_sptr + __del__ = lambda self: None + + def make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(sink_sptr self, std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int pa_path_mini, int pa_path_ch0, int pa_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> sink_sptr""" + return _limesdr_swig.sink_sptr_make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + + def set_rf_freq(self, rf_freq): + """set_rf_freq(sink_sptr self, float rf_freq)""" + return _limesdr_swig.sink_sptr_set_rf_freq(self, rf_freq) + + + def set_pa_path(self, pa_path, channel): + """set_pa_path(sink_sptr self, int pa_path, int channel)""" + return _limesdr_swig.sink_sptr_set_pa_path(self, pa_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(sink_sptr self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.sink_sptr_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(sink_sptr self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.sink_sptr_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(sink_sptr self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.sink_sptr_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(sink_sptr self, int gain_dB, int channel)""" + return _limesdr_swig.sink_sptr_set_gain(self, gain_dB, channel) + + + def history(self): + """history(sink_sptr self) -> unsigned int""" + return _limesdr_swig.sink_sptr_history(self) + + + def declare_sample_delay(self, *args): + """ + declare_sample_delay(sink_sptr self, int which, int delay) + declare_sample_delay(sink_sptr self, unsigned int delay) + """ + return _limesdr_swig.sink_sptr_declare_sample_delay(self, *args) + + + def sample_delay(self, which): + """sample_delay(sink_sptr self, int which) -> unsigned int""" + return _limesdr_swig.sink_sptr_sample_delay(self, which) + + + def output_multiple(self): + """output_multiple(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_output_multiple(self) + + + def relative_rate(self): + """relative_rate(sink_sptr self) -> double""" + return _limesdr_swig.sink_sptr_relative_rate(self) + + + def start(self): + """start(sink_sptr self) -> bool""" + return _limesdr_swig.sink_sptr_start(self) + + + def stop(self): + """stop(sink_sptr self) -> bool""" + return _limesdr_swig.sink_sptr_stop(self) + + + def nitems_read(self, which_input): + """nitems_read(sink_sptr self, unsigned int which_input) -> uint64_t""" + return _limesdr_swig.sink_sptr_nitems_read(self, which_input) + + + def nitems_written(self, which_output): + """nitems_written(sink_sptr self, unsigned int which_output) -> uint64_t""" + return _limesdr_swig.sink_sptr_nitems_written(self, which_output) + + + def max_noutput_items(self): + """max_noutput_items(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_max_noutput_items(self) + + + def set_max_noutput_items(self, m): + """set_max_noutput_items(sink_sptr self, int m)""" + return _limesdr_swig.sink_sptr_set_max_noutput_items(self, m) + + + def unset_max_noutput_items(self): + """unset_max_noutput_items(sink_sptr self)""" + return _limesdr_swig.sink_sptr_unset_max_noutput_items(self) + + + def is_set_max_noutput_items(self): + """is_set_max_noutput_items(sink_sptr self) -> bool""" + return _limesdr_swig.sink_sptr_is_set_max_noutput_items(self) + + + def set_min_noutput_items(self, m): + """set_min_noutput_items(sink_sptr self, int m)""" + return _limesdr_swig.sink_sptr_set_min_noutput_items(self, m) + + + def min_noutput_items(self): + """min_noutput_items(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_min_noutput_items(self) + + + def max_output_buffer(self, i): + """max_output_buffer(sink_sptr self, int i) -> long""" + return _limesdr_swig.sink_sptr_max_output_buffer(self, i) + + + def set_max_output_buffer(self, *args): + """ + set_max_output_buffer(sink_sptr self, long max_output_buffer) + set_max_output_buffer(sink_sptr self, int port, long max_output_buffer) + """ + return _limesdr_swig.sink_sptr_set_max_output_buffer(self, *args) + + + def min_output_buffer(self, i): + """min_output_buffer(sink_sptr self, int i) -> long""" + return _limesdr_swig.sink_sptr_min_output_buffer(self, i) + + + def set_min_output_buffer(self, *args): + """ + set_min_output_buffer(sink_sptr self, long min_output_buffer) + set_min_output_buffer(sink_sptr self, int port, long min_output_buffer) + """ + return _limesdr_swig.sink_sptr_set_min_output_buffer(self, *args) + + + def pc_noutput_items(self): + """pc_noutput_items(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_noutput_items(self) + + + def pc_noutput_items_avg(self): + """pc_noutput_items_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_noutput_items_avg(self) + + + def pc_noutput_items_var(self): + """pc_noutput_items_var(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_noutput_items_var(self) + + + def pc_nproduced(self): + """pc_nproduced(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_nproduced(self) + + + def pc_nproduced_avg(self): + """pc_nproduced_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_nproduced_avg(self) + + + def pc_nproduced_var(self): + """pc_nproduced_var(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_nproduced_var(self) + + + def pc_input_buffers_full(self, *args): + """ + pc_input_buffers_full(sink_sptr self, int which) -> float + pc_input_buffers_full(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_input_buffers_full(self, *args) + + + def pc_input_buffers_full_avg(self, *args): + """ + pc_input_buffers_full_avg(sink_sptr self, int which) -> float + pc_input_buffers_full_avg(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_input_buffers_full_avg(self, *args) + + + def pc_input_buffers_full_var(self, *args): + """ + pc_input_buffers_full_var(sink_sptr self, int which) -> float + pc_input_buffers_full_var(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_input_buffers_full_var(self, *args) + + + def pc_output_buffers_full(self, *args): + """ + pc_output_buffers_full(sink_sptr self, int which) -> float + pc_output_buffers_full(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_output_buffers_full(self, *args) + + + def pc_output_buffers_full_avg(self, *args): + """ + pc_output_buffers_full_avg(sink_sptr self, int which) -> float + pc_output_buffers_full_avg(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_output_buffers_full_avg(self, *args) + + + def pc_output_buffers_full_var(self, *args): + """ + pc_output_buffers_full_var(sink_sptr self, int which) -> float + pc_output_buffers_full_var(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_output_buffers_full_var(self, *args) + + + def pc_work_time(self): + """pc_work_time(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time(self) + + + def pc_work_time_avg(self): + """pc_work_time_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time_avg(self) + + + def pc_work_time_var(self): + """pc_work_time_var(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time_var(self) + + + def pc_work_time_total(self): + """pc_work_time_total(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time_total(self) + + + def pc_throughput_avg(self): + """pc_throughput_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_throughput_avg(self) + + + def set_processor_affinity(self, mask): + """set_processor_affinity(sink_sptr self, std::vector< int,std::allocator< int > > const & mask)""" + return _limesdr_swig.sink_sptr_set_processor_affinity(self, mask) + + + def unset_processor_affinity(self): + """unset_processor_affinity(sink_sptr self)""" + return _limesdr_swig.sink_sptr_unset_processor_affinity(self) + + + def processor_affinity(self): + """processor_affinity(sink_sptr self) -> std::vector< int,std::allocator< int > >""" + return _limesdr_swig.sink_sptr_processor_affinity(self) + + + def active_thread_priority(self): + """active_thread_priority(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_active_thread_priority(self) + + + def thread_priority(self): + """thread_priority(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_thread_priority(self) + + + def set_thread_priority(self, priority): + """set_thread_priority(sink_sptr self, int priority) -> int""" + return _limesdr_swig.sink_sptr_set_thread_priority(self, priority) + + + def name(self): + """name(sink_sptr self) -> std::string""" + return _limesdr_swig.sink_sptr_name(self) + + + def symbol_name(self): + """symbol_name(sink_sptr self) -> std::string""" + return _limesdr_swig.sink_sptr_symbol_name(self) + + + def input_signature(self): + """input_signature(sink_sptr self) -> io_signature_sptr""" + return _limesdr_swig.sink_sptr_input_signature(self) + + + def output_signature(self): + """output_signature(sink_sptr self) -> io_signature_sptr""" + return _limesdr_swig.sink_sptr_output_signature(self) + + + def unique_id(self): + """unique_id(sink_sptr self) -> long""" + return _limesdr_swig.sink_sptr_unique_id(self) + + + def to_basic_block(self): + """to_basic_block(sink_sptr self) -> basic_block_sptr""" + return _limesdr_swig.sink_sptr_to_basic_block(self) + + + def check_topology(self, ninputs, noutputs): + """check_topology(sink_sptr self, int ninputs, int noutputs) -> bool""" + return _limesdr_swig.sink_sptr_check_topology(self, ninputs, noutputs) + + + def alias(self): + """alias(sink_sptr self) -> std::string""" + return _limesdr_swig.sink_sptr_alias(self) + + + def set_block_alias(self, name): + """set_block_alias(sink_sptr self, std::string name)""" + return _limesdr_swig.sink_sptr_set_block_alias(self, name) + + + def _post(self, which_port, msg): + """_post(sink_sptr self, swig_int_ptr which_port, swig_int_ptr msg)""" + return _limesdr_swig.sink_sptr__post(self, which_port, msg) + + + def message_ports_in(self): + """message_ports_in(sink_sptr self) -> swig_int_ptr""" + return _limesdr_swig.sink_sptr_message_ports_in(self) + + + def message_ports_out(self): + """message_ports_out(sink_sptr self) -> swig_int_ptr""" + return _limesdr_swig.sink_sptr_message_ports_out(self) + + + def message_subscribers(self, which_port): + """message_subscribers(sink_sptr self, swig_int_ptr which_port) -> swig_int_ptr""" + return _limesdr_swig.sink_sptr_message_subscribers(self, which_port) + +sink_sptr_swigregister = _limesdr_swig.sink_sptr_swigregister +sink_sptr_swigregister(sink_sptr) + + +sink_sptr.__repr__ = lambda self: "" % (self.name(), self.unique_id()) +sink = sink.make; + + + diff --git a/windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.pyc b/windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.pyc new file mode 100644 index 0000000000000000000000000000000000000000..61aa2dd469e68ba17b4b494f126cdd1dcc279ddc GIT binary patch literal 54884 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%0DcL$CQ6W5|1nYVM#op{6{45CgndW zi6@o+m?VxW|8Yq?rTix(aZLGdk_0v!J}HUg%0DWJH!J@sNt{srF-bh5{HG;xQu)Uv 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 literal 0 HcmV?d00001 diff --git a/windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.pyo b/windows/GNU_Radio/lib/site-packages/limesdr/limesdr_swig.pyo new file mode 100644 index 0000000000000000000000000000000000000000..61aa2dd469e68ba17b4b494f126cdd1dcc279ddc GIT binary patch literal 54884 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%0DcL$CQ6W5|1nYVM#op{6{45CgndW zi6@o+m?VxW|8Yq?rTix(aZLGdk_0v!J}HUg%0DWJH!J@sNt{srF-bh5{HG;xQu)Uv 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 literal 0 HcmV?d00001 diff --git a/windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_sink.xml b/windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_sink.xml new file mode 100644 index 0000000..f973b70 --- /dev/null +++ b/windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_sink.xml @@ -0,0 +1,825 @@ + + + LimeSuite Sink (TX) + limesdr_sink + [LimeSuite] + throttle + import limesdr + limesdr.sink($serial, + $device_type, + $chip_mode, + $channel, + $file_switch, + $filename, + $rf_freq, + $samp_rate, + $oversample, + $calibration_ch0, + $calibr_bandw_ch0, + $calibration_ch1, + $calibr_bandw_ch1, + $pa_path_mini, + $pa_path_ch0, + $pa_path_ch1, + $analog_filter_ch0, + $analog_bandw_ch0, + $analog_filter_ch1, + $analog_bandw_ch1, + $digital_filter_ch0, + $digital_bandw_ch0, + $digital_filter_ch1, + $digital_bandw_ch1, + $gain_dB_ch0, + $gain_dB_ch1, + $nco_freq_ch0, + $nco_freq_ch1, + $cmix_mode_ch0, + $cmix_mode_ch1) + + set_rf_freq($rf_freq) + set_pa_path($pa_path_mini,0) + set_pa_path($pa_path_ch0,0) + set_pa_path($pa_path_ch1,1) + set_nco($nco_freq_ch0,$cmix_mode_ch0,0) + set_nco($nco_freq_ch1,$cmix_mode_ch1,1) + set_analog_filter($analog_filter_ch0,$analog_bandw_ch0,0) + set_analog_filter($analog_filter_ch1,$analog_bandw_ch1,1) + set_digital_filter($digital_filter_ch0,$digital_bandw_ch0,0) + set_digital_filter($digital_filter_ch1,$digital_bandw_ch1,1) + set_gain($gain_dB_ch0,0) + set_gain($gain_dB_ch1,1) + + + General + CH0 + CH1 + + + + Device serial + serial + + string + none + + + + Device type + device_type + 2 + int + none + + + + + + Chip mode + chip_mode + 1 + int + none + + + + + + CH0 + channel + 0 + int + + #if $device_type() == 1 + all + #else if $chip_mode() == 2 + all + #else + none + #end if + + + + + + + Load settings + file_switch + 0 + int + none + + + + + + File + filename + + file_open + + #if $file_switch() == 0 + all + #else + none + #end if + + + + + RF frequency + rf_freq + 100e6 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Sample rate + samp_rate + samp_rate + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Oversample + oversample + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + + + + + + + + CH0:NCO frequency + nco_freq_ch0 + 0 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:CMIX mode + cmix_mode_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration + calibration_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration bandw. + calibr_bandw_ch0 + 10e6 + float + + #if $calibration_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:PA path + pa_path_mini + 1 + int + + #if $device_type() == 2 + all + #else + none + #end if + + + + CH0 + + + + CH0:PA path + pa_path_ch0 + 1 + int + + #if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Analog filter + analog_filter_ch0 + 1 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Analog filter bandw. + analog_bandw_ch0 + 5e6 + float + + #if $analog_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Digital filter + digital_filter_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Digital filter bandw. + digital_bandw_ch0 + 0 + float + + #if $digital_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Gain,dB + gain_dB_ch0 + 30 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH1:NCO frequency + nco_freq_ch1 + 0 + float + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:CMIX mode + cmix_mode_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration + calibration_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration bandw. + calibr_bandw_ch1 + 10e6 + float + + #if $calibration_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:PA path + pa_path_ch1 + 1 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Analog filter + analog_filter_ch1 + 1 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Analog filter bandw. + analog_bandw_ch1 + 5e6 + float + + #if $analog_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Digital filter + digital_filter_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Digital filter bandw. + digital_bandw_ch1 + 0 + float + + #if $digital_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Gain,dB + gain_dB_ch1 + 30 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + $device_type >= $chip_mode + $device_type >= 1 + 2 >= $device_type + + $chip_mode >= 1 + 2 >= $chip_mode + + $rf_freq > 0 + + $calibr_bandw_ch0 >= 2.5e6 + 120e6 >= $calibr_bandw_ch0 + + $calibr_bandw_ch1 >= 2.5e6 + 120e6 >= $calibr_bandw_ch1 + + $analog_bandw_ch0 >= 5e6 + 130e6 >= $analog_bandw_ch0 + + $analog_bandw_ch1 >= 5e6 + 130e6 >= $analog_bandw_ch1 + + $digital_bandw_ch0 >= 0 + $samp_rate >= $digital_bandw_ch0 + + $digital_bandw_ch1 >= 0 + $samp_rate >= $digital_bandw_ch1 + + $gain_dB_ch0 >= 0 + 60 >= $gain_dB_ch0 + + $gain_dB_ch1 >= 0 + 60 >= $gain_dB_ch1 + + $samp_rate > 0 + 61.44e6 >= $samp_rate + + + in + complex + $chip_mode + + + +------------------------------------------------------------------------------------------------------------------- +DEVICE SERIAL + +Device serial number obtained by running + + LimeUtil --find + +Cannot be left blank. +------------------------------------------------------------------------------------------------------------------- +DEVICE TYPE + +This setting lets you choose from predefined device type list and loads appropriate settings for the selected device. +Currently supported device types: LimeSDR-USB, LimeSDR-Mini. +------------------------------------------------------------------------------------------------------------------- +CHIP MODE + +Use this setting to choose between single-input and single-output (SISO)/multiple-input and multiple-output (MIMO) chip modes. + +Note: not all devices support MIMO mode. +------------------------------------------------------------------------------------------------------------------- +CH0 + +When in SISO mode select active channel as CH0. + +Note: not all devices have more than one channel. +------------------------------------------------------------------------------------------------------------------- +LOAD SETTINGS + +Enable loading settings from file. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +FILE + +Generate .ini file with LimeSuite and select path. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +CENTER FREQUENCY + +Set RF center frequency for TX (both channels). +LimeSDR-USB supports [100e3,3800e6] Hz. +LimeSDR-Mini supports [10e6,3800e6] Hz. +------------------------------------------------------------------------------------------------------------------- +SAMPLE RATE + +Here you can select sample rate for TX. + +LimeSDR-USB sample rate must be no more than 61.44e6 S/s. +LimeSDR-Mini sample rate must be no more than 30.72e6 S/s. + +Note: LimeSDR-Mini supports only the same sample rate for TX and RX. +------------------------------------------------------------------------------------------------------------------- +OVERSAMPLE + +Here you can select oversampling value for TX. Default value uses highest possible oversampling value. + +Note: LimeSDR-Mini supports only the same oversampling value for TX and RX. +------------------------------------------------------------------------------------------------------------------- +NCO FREQUENCY + +Adjust numerically controlled oscillator for each channel. 0 means that NCO is OFF. +------------------------------------------------------------------------------------------------------------------- +CMIX MODE + +Controls NCO direction for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION + +Turn DC offset and IQ imbalance calibration ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION BANDW. + +When calibration is turned ON this setting is used to set bandwidth for calibration for each channel. This value should be equal to your signal bandwidth. + +Calibration bandwidth range must be [2.5e6,120e6] Hz. +------------------------------------------------------------------------------------------------------------------- +PA PATH + +Select active power amplifier path of each channel. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER + +Turn low-pass filter ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER BANDW. + +Enter analog filter bandwidth for each channel. +Analog filter bandwidth range must be [5e6,130e6] Hz. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER + +Turn digital filters (GFIR) ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER BANDW. + +Enter digital filter bandwidth for each channel. Bandwidth should not be higher than sample rate. +------------------------------------------------------------------------------------------------------------------- +GAIN + +Controls combined TX gain settings. Gain range must be [0,60] dB. +------------------------------------------------------------------------------------------------------------------- + + diff --git a/windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_source.xml b/windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_source.xml new file mode 100644 index 0000000..3e436cc --- /dev/null +++ b/windows/GNU_Radio/share/gnuradio/grc/blocks/limesdr_source.xml @@ -0,0 +1,833 @@ + + + LimeSuite Source (RX) + limesdr_source + [LimeSuite] + throttle + import limesdr + limesdr.source($serial, + $device_type, + $chip_mode, + $channel, + $file_switch, + $filename, + $rf_freq, + $samp_rate, + $oversample, + $calibration_ch0, + $calibr_bandw_ch0, + $calibration_ch1, + $calibr_bandw_ch1, + $lna_path_mini, + $lna_path_ch0, + $lna_path_ch1, + $analog_filter_ch0, + $analog_bandw_ch0, + $analog_filter_ch1, + $analog_bandw_ch1, + $digital_filter_ch0, + $digital_bandw_ch0, + $digital_filter_ch1, + $digital_bandw_ch1, + $gain_dB_ch0, + $gain_dB_ch1, + $nco_freq_ch0, + $nco_freq_ch1, + $cmix_mode_ch0, + $cmix_mode_ch1) + + set_rf_freq($rf_freq) + set_lna_path($lna_path_mini,0) + set_lna_path($lna_path_ch0,0) + set_lna_path($lna_path_ch1,1) + set_nco($nco_freq_ch0,$cmix_mode_ch0,0) + set_nco($nco_freq_ch1,$cmix_mode_ch1,1) + set_analog_filter($analog_filter_ch0,$analog_bandw_ch0,0) + set_analog_filter($analog_filter_ch1,$analog_bandw_ch1,1) + set_digital_filter($digital_filter_ch0,$digital_bandw_ch0,0) + set_digital_filter($digital_filter_ch1,$digital_bandw_ch1,1) + set_gain($gain_dB_ch0,0) + set_gain($gain_dB_ch1,1) + + + General + CH0 + CH1 + + + + Device serial + serial + + string + none + + + + Device type + device_type + 2 + int + none + + + + + + Chip mode + chip_mode + 1 + int + none + + + + + + CH0 + channel + 0 + int + + #if $device_type() == 1 + all + #else if $chip_mode() == 2 + all + #else + none + #end if + + + + + + + Load settings + file_switch + 0 + int + none + + + + + + File + filename + + file_open + + #if $file_switch() == 0 + all + #else + none + #end if + + + + + RF frequency + rf_freq + 100e6 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Sample rate + samp_rate + samp_rate + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Oversample + oversample + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + + + + + + + + CH0:NCO frequency + nco_freq_ch0 + 0 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:CMIX mode + cmix_mode_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration + calibration_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration bandw. + calibr_bandw_ch0 + 10e6 + float + + #if $calibration_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:LNA path + lna_path_mini + 3 + int + + #if $device_type() == 2 + all + #else + none + #end if + + + + CH0 + + + + CH0:LNA path + lna_path_ch0 + 2 + int + + #if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + + CH0 + + + + CH0:Analog filter + analog_filter_ch0 + 1 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Analog filter bandw. + analog_bandw_ch0 + 5e6 + float + + #if $analog_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Digital filter + digital_filter_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Digital filter bandw. + digital_bandw_ch0 + 0 + float + + #if $digital_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Gain,dB + gain_dB_ch0 + 30 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH1:NCO frequency + nco_freq_ch1 + 0 + float + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:CMIX mode + cmix_mode_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration + calibration_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration bandw. + calibr_bandw_ch1 + 10e6 + float + + #if $calibration_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:LNA path + lna_path_ch1 + 2 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + + CH1 + + + + CH1:Analog filter + analog_filter_ch1 + 1 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Analog filter bandw. + analog_bandw_ch1 + 5e6 + float + + #if $analog_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Digital filter + digital_filter_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Digital filter bandw. + digital_bandw_ch1 + 0 + float + + #if $digital_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Gain,dB + gain_dB_ch1 + 30 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + $device_type >= $chip_mode + $device_type >= 1 + 2 >= $device_type + + $chip_mode >= 1 + 2 >= $chip_mode + + $rf_freq > 0 + + $calibr_bandw_ch0 >= 2.5e6 + 120e6 >= $calibr_bandw_ch0 + + $calibr_bandw_ch1 >= 2.5e6 + 120e6 >= $calibr_bandw_ch1 + + $analog_bandw_ch0 >= 1.5e6 + 130e6 >= $analog_bandw_ch0 + + $analog_bandw_ch1 >= 1.5e6 + 130e6 >= $analog_bandw_ch1 + + $digital_bandw_ch0 >= 0 + $samp_rate >= $digital_bandw_ch0 + + $digital_bandw_ch1 >= 0 + $samp_rate >= $digital_bandw_ch1 + + $gain_dB_ch0 >= 0 + 70 >= $gain_dB_ch0 + + $gain_dB_ch1 >= 0 + 70 >= $gain_dB_ch1 + + $samp_rate > 0 + 61.44e6 >= $samp_rate + + + out + complex + $chip_mode + + + +------------------------------------------------------------------------------------------------------------------- +DEVICE SERIAL + +Device serial number obtained by running + + LimeUtil --find + +Cannot be left blank. +------------------------------------------------------------------------------------------------------------------- +DEVICE TYPE + +This setting lets you choose from predefined device type list and loads appropriate settings for the selected device. +Currently supported device types: LimeSDR-USB, LimeSDR-Mini. +------------------------------------------------------------------------------------------------------------------- +CHIP MODE + +Use this setting to choose between single-input and single-output (SISO)/multiple-input and multiple-output (MIMO) chip modes. + +Note: not all devices support MIMO mode. +------------------------------------------------------------------------------------------------------------------- +CH0 + +When in SISO mode select active channel as CH0. + +Note: not all devices have more than one channel. +------------------------------------------------------------------------------------------------------------------- +LOAD SETTINGS + +Enable loading settings from file. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +FILE + +Generate .ini file with LimeSuite and select path. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +RF FREQUENCY + +Set RF center frequency for RX (both channels). +LimeSDR-USB supports [100e3,3800e6] Hz. +LimeSDR-Mini supports [10e6,3800e6] Hz. +------------------------------------------------------------------------------------------------------------------- +SAMPLE RATE + +Here you can select sample rate for RX. + +LimeSDR-USB sample rate must be no more than 61.44e6 S/s. +LimeSDR-Mini sample rate must be no more than 30.72e6 S/s. + +Note: LimeSDR-Mini supports only the same sample rate for TX and RX. +------------------------------------------------------------------------------------------------------------------- +OVERSAMPLE + +Here you can select oversampling value for RX. Default value uses highest possible oversampling value. + +Note: LimeSDR-Mini supports only the same oversampling value for TX and RX. +------------------------------------------------------------------------------------------------------------------- +NCO FREQUENCY + +Adjust numerically controlled oscillator for each channel. 0 means that NCO is OFF. +------------------------------------------------------------------------------------------------------------------- +CMIX MODE + +Controls NCO direction for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION + +Turn DC offset and IQ imbalance calibration ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION BANDW. + +When calibration is turned ON this setting is used to set bandwidth for calibration for each channel. This value should be equal to your signal bandwidth. + +Calibration bandwidth range must be [2.5e6,120e6] Hz. +------------------------------------------------------------------------------------------------------------------- +LNA PATH + +Select active low-noise amplifier path of each channel. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER + +Turn low-pass filter ON/OFF for each channel. When OFF device uses default values. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER BANDW. + +Enter analog filter bandwidth for each channel. +Analog filter bandwidth range must be [1.5e6,130e6] Hz. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER + +Turn digital filters (GFIR) ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER BANDW. + +Enter digital filter bandwidth for each channel. Bandwidth should not be higher than sample rate. +------------------------------------------------------------------------------------------------------------------- +GAIN + +Controls combined RX gain settings. Gain range must be [0,70] dB. +------------------------------------------------------------------------------------------------------------------- + + diff --git a/windows/Pothos_SDR/bin/gnuradio-limesdr.dll b/windows/Pothos_SDR/bin/gnuradio-limesdr.dll new file mode 100644 index 0000000000000000000000000000000000000000..b5bd8bfe2ebff34e2e083de303573c536811ba14 GIT binary patch literal 90624 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 literal 0 HcmV?d00001 diff --git a/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/__init__.pyc b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c8a71d632e4a7de7f2cb2326659516c1b1033fa GIT binary patch literal 347 zcmZXP&q@O^5XL9F^$*b&ym`#cwdn3$L_D-e!IsiilwQJ;gx%2HO-QoH-h4XWM|=RC z)q)3y$uHl0%#ca^Ii&AzA6o(YIKcZJkH11lfGt2b0!ctdP!ZTXH)k+V5$q_q3m}9v z1YTqe>txVRl?b{iwP%>2RP15##8$b~hCR;a)AeMPpwj zOUM1IF2V^Kv)URLrp_6cU=7o literal 0 HcmV?d00001 diff --git a/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/__init__.pyo b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/__init__.pyo new file mode 100644 index 0000000000000000000000000000000000000000..3c8a71d632e4a7de7f2cb2326659516c1b1033fa GIT binary patch literal 347 zcmZXP&q@O^5XL9F^$*b&ym`#cwdn3$L_D-e!IsiilwQJ;gx%2HO-QoH-h4XWM|=RC z)q)3y$uHl0%#ca^Ii&AzA6o(YIKcZJkH11lfGt2b0!ctdP!ZTXH)k+V5$q_q3m}9v z1YTqe>txVRl?b{iwP%>2RP15##8$b~hCR;a)AeMPpwj zOUM1IF2V^Kv)URLrp_6cU=7o literal 0 HcmV?d00001 diff --git a/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/_limesdr_swig.pyd b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/_limesdr_swig.pyd new file mode 100644 index 0000000000000000000000000000000000000000..217465055b1daadabcfdb822e3272bfa11408549 GIT binary patch literal 320512 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±5(Xn~#e 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 CrTe@9 literal 0 HcmV?d00001 diff --git a/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.py b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.py new file mode 100644 index 0000000..1268fb6 --- /dev/null +++ b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.py @@ -0,0 +1,956 @@ +# This file was automatically generated by SWIG (http://www.swig.org). +# Version 3.0.12 +# +# Do not make changes to this file unless you know what you are doing--modify +# the SWIG interface file instead. + +from sys import version_info as _swig_python_version_info +if _swig_python_version_info >= (2, 7, 0): + def swig_import_helper(): + import importlib + pkg = __name__.rpartition('.')[0] + mname = '.'.join((pkg, '_limesdr_swig')).lstrip('.') + try: + return importlib.import_module(mname) + except ImportError: + return importlib.import_module('_limesdr_swig') + _limesdr_swig = swig_import_helper() + del swig_import_helper +elif _swig_python_version_info >= (2, 6, 0): + def swig_import_helper(): + from os.path import dirname + import imp + fp = None + try: + fp, pathname, description = imp.find_module('_limesdr_swig', [dirname(__file__)]) + except ImportError: + import _limesdr_swig + return _limesdr_swig + try: + _mod = imp.load_module('_limesdr_swig', fp, pathname, description) + finally: + if fp is not None: + fp.close() + return _mod + _limesdr_swig = swig_import_helper() + del swig_import_helper +else: + import _limesdr_swig +del _swig_python_version_info + +try: + _swig_property = property +except NameError: + pass # Python < 2.2 doesn't have 'property'. + +try: + import builtins as __builtin__ +except ImportError: + import __builtin__ + +def _swig_setattr_nondynamic(self, class_type, name, value, static=1): + if (name == "thisown"): + return self.this.own(value) + if (name == "this"): + if type(value).__name__ == 'SwigPyObject': + self.__dict__[name] = value + return + method = class_type.__swig_setmethods__.get(name, None) + if method: + return method(self, value) + if (not static): + object.__setattr__(self, name, value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + + +def _swig_setattr(self, class_type, name, value): + return _swig_setattr_nondynamic(self, class_type, name, value, 0) + + +def _swig_getattr(self, class_type, name): + if (name == "thisown"): + return self.this.own() + method = class_type.__swig_getmethods__.get(name, None) + if method: + return method(self) + raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) + + +def _swig_repr(self): + try: + strthis = "proxy of " + self.this.__repr__() + except __builtin__.Exception: + strthis = "" + return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) + + +def _swig_setattr_nondynamic_method(set): + def set_attr(self, name, value): + if (name == "thisown"): + return self.this.own(value) + if hasattr(self, name) or (name == "this"): + set(self, name, value) + else: + raise AttributeError("You cannot add attributes to %s" % self) + return set_attr + + + +def high_res_timer_now(): + """high_res_timer_now() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_now() + +def high_res_timer_now_perfmon(): + """high_res_timer_now_perfmon() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_now_perfmon() + +def high_res_timer_tps(): + """high_res_timer_tps() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_tps() + +def high_res_timer_epoch(): + """high_res_timer_epoch() -> gr::high_res_timer_type""" + return _limesdr_swig.high_res_timer_epoch() +class source(object): + """Proxy of C++ gr::limesdr::source class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int lna_path_mini, int lna_path_ch0, int lna_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> source_sptr""" + return _limesdr_swig.source_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + make = staticmethod(make) + + def set_rf_freq(self, rf_freq): + """set_rf_freq(source self, float rf_freq)""" + return _limesdr_swig.source_set_rf_freq(self, rf_freq) + + + def set_lna_path(self, lna_path, channel): + """set_lna_path(source self, int lna_path, int channel)""" + return _limesdr_swig.source_set_lna_path(self, lna_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(source self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.source_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(source self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.source_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(source self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.source_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(source self, int gain_dB, int channel)""" + return _limesdr_swig.source_set_gain(self, gain_dB, channel) + + __swig_destroy__ = _limesdr_swig.delete_source + __del__ = lambda self: None +source_swigregister = _limesdr_swig.source_swigregister +source_swigregister(source) + +def source_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """source_make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int lna_path_mini, int lna_path_ch0, int lna_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> source_sptr""" + return _limesdr_swig.source_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + +class source_sptr(object): + """Proxy of C++ boost::shared_ptr<(gr::limesdr::source)> class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + """ + __init__(boost::shared_ptr<(gr::limesdr::source)> self) -> source_sptr + __init__(boost::shared_ptr<(gr::limesdr::source)> self, source p) -> source_sptr + """ + this = _limesdr_swig.new_source_sptr(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + + def __deref__(self): + """__deref__(source_sptr self) -> source""" + return _limesdr_swig.source_sptr___deref__(self) + + __swig_destroy__ = _limesdr_swig.delete_source_sptr + __del__ = lambda self: None + + def make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(source_sptr self, std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int lna_path_mini, int lna_path_ch0, int lna_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> source_sptr""" + return _limesdr_swig.source_sptr_make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, lna_path_mini, lna_path_ch0, lna_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + + def set_rf_freq(self, rf_freq): + """set_rf_freq(source_sptr self, float rf_freq)""" + return _limesdr_swig.source_sptr_set_rf_freq(self, rf_freq) + + + def set_lna_path(self, lna_path, channel): + """set_lna_path(source_sptr self, int lna_path, int channel)""" + return _limesdr_swig.source_sptr_set_lna_path(self, lna_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(source_sptr self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.source_sptr_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(source_sptr self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.source_sptr_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(source_sptr self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.source_sptr_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(source_sptr self, int gain_dB, int channel)""" + return _limesdr_swig.source_sptr_set_gain(self, gain_dB, channel) + + + def history(self): + """history(source_sptr self) -> unsigned int""" + return _limesdr_swig.source_sptr_history(self) + + + def declare_sample_delay(self, *args): + """ + declare_sample_delay(source_sptr self, int which, int delay) + declare_sample_delay(source_sptr self, unsigned int delay) + """ + return _limesdr_swig.source_sptr_declare_sample_delay(self, *args) + + + def sample_delay(self, which): + """sample_delay(source_sptr self, int which) -> unsigned int""" + return _limesdr_swig.source_sptr_sample_delay(self, which) + + + def output_multiple(self): + """output_multiple(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_output_multiple(self) + + + def relative_rate(self): + """relative_rate(source_sptr self) -> double""" + return _limesdr_swig.source_sptr_relative_rate(self) + + + def start(self): + """start(source_sptr self) -> bool""" + return _limesdr_swig.source_sptr_start(self) + + + def stop(self): + """stop(source_sptr self) -> bool""" + return _limesdr_swig.source_sptr_stop(self) + + + def nitems_read(self, which_input): + """nitems_read(source_sptr self, unsigned int which_input) -> uint64_t""" + return _limesdr_swig.source_sptr_nitems_read(self, which_input) + + + def nitems_written(self, which_output): + """nitems_written(source_sptr self, unsigned int which_output) -> uint64_t""" + return _limesdr_swig.source_sptr_nitems_written(self, which_output) + + + def max_noutput_items(self): + """max_noutput_items(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_max_noutput_items(self) + + + def set_max_noutput_items(self, m): + """set_max_noutput_items(source_sptr self, int m)""" + return _limesdr_swig.source_sptr_set_max_noutput_items(self, m) + + + def unset_max_noutput_items(self): + """unset_max_noutput_items(source_sptr self)""" + return _limesdr_swig.source_sptr_unset_max_noutput_items(self) + + + def is_set_max_noutput_items(self): + """is_set_max_noutput_items(source_sptr self) -> bool""" + return _limesdr_swig.source_sptr_is_set_max_noutput_items(self) + + + def set_min_noutput_items(self, m): + """set_min_noutput_items(source_sptr self, int m)""" + return _limesdr_swig.source_sptr_set_min_noutput_items(self, m) + + + def min_noutput_items(self): + """min_noutput_items(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_min_noutput_items(self) + + + def max_output_buffer(self, i): + """max_output_buffer(source_sptr self, int i) -> long""" + return _limesdr_swig.source_sptr_max_output_buffer(self, i) + + + def set_max_output_buffer(self, *args): + """ + set_max_output_buffer(source_sptr self, long max_output_buffer) + set_max_output_buffer(source_sptr self, int port, long max_output_buffer) + """ + return _limesdr_swig.source_sptr_set_max_output_buffer(self, *args) + + + def min_output_buffer(self, i): + """min_output_buffer(source_sptr self, int i) -> long""" + return _limesdr_swig.source_sptr_min_output_buffer(self, i) + + + def set_min_output_buffer(self, *args): + """ + set_min_output_buffer(source_sptr self, long min_output_buffer) + set_min_output_buffer(source_sptr self, int port, long min_output_buffer) + """ + return _limesdr_swig.source_sptr_set_min_output_buffer(self, *args) + + + def pc_noutput_items(self): + """pc_noutput_items(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_noutput_items(self) + + + def pc_noutput_items_avg(self): + """pc_noutput_items_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_noutput_items_avg(self) + + + def pc_noutput_items_var(self): + """pc_noutput_items_var(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_noutput_items_var(self) + + + def pc_nproduced(self): + """pc_nproduced(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_nproduced(self) + + + def pc_nproduced_avg(self): + """pc_nproduced_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_nproduced_avg(self) + + + def pc_nproduced_var(self): + """pc_nproduced_var(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_nproduced_var(self) + + + def pc_input_buffers_full(self, *args): + """ + pc_input_buffers_full(source_sptr self, int which) -> float + pc_input_buffers_full(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_input_buffers_full(self, *args) + + + def pc_input_buffers_full_avg(self, *args): + """ + pc_input_buffers_full_avg(source_sptr self, int which) -> float + pc_input_buffers_full_avg(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_input_buffers_full_avg(self, *args) + + + def pc_input_buffers_full_var(self, *args): + """ + pc_input_buffers_full_var(source_sptr self, int which) -> float + pc_input_buffers_full_var(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_input_buffers_full_var(self, *args) + + + def pc_output_buffers_full(self, *args): + """ + pc_output_buffers_full(source_sptr self, int which) -> float + pc_output_buffers_full(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_output_buffers_full(self, *args) + + + def pc_output_buffers_full_avg(self, *args): + """ + pc_output_buffers_full_avg(source_sptr self, int which) -> float + pc_output_buffers_full_avg(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_output_buffers_full_avg(self, *args) + + + def pc_output_buffers_full_var(self, *args): + """ + pc_output_buffers_full_var(source_sptr self, int which) -> float + pc_output_buffers_full_var(source_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.source_sptr_pc_output_buffers_full_var(self, *args) + + + def pc_work_time(self): + """pc_work_time(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time(self) + + + def pc_work_time_avg(self): + """pc_work_time_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time_avg(self) + + + def pc_work_time_var(self): + """pc_work_time_var(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time_var(self) + + + def pc_work_time_total(self): + """pc_work_time_total(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_work_time_total(self) + + + def pc_throughput_avg(self): + """pc_throughput_avg(source_sptr self) -> float""" + return _limesdr_swig.source_sptr_pc_throughput_avg(self) + + + def set_processor_affinity(self, mask): + """set_processor_affinity(source_sptr self, std::vector< int,std::allocator< int > > const & mask)""" + return _limesdr_swig.source_sptr_set_processor_affinity(self, mask) + + + def unset_processor_affinity(self): + """unset_processor_affinity(source_sptr self)""" + return _limesdr_swig.source_sptr_unset_processor_affinity(self) + + + def processor_affinity(self): + """processor_affinity(source_sptr self) -> std::vector< int,std::allocator< int > >""" + return _limesdr_swig.source_sptr_processor_affinity(self) + + + def active_thread_priority(self): + """active_thread_priority(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_active_thread_priority(self) + + + def thread_priority(self): + """thread_priority(source_sptr self) -> int""" + return _limesdr_swig.source_sptr_thread_priority(self) + + + def set_thread_priority(self, priority): + """set_thread_priority(source_sptr self, int priority) -> int""" + return _limesdr_swig.source_sptr_set_thread_priority(self, priority) + + + def name(self): + """name(source_sptr self) -> std::string""" + return _limesdr_swig.source_sptr_name(self) + + + def symbol_name(self): + """symbol_name(source_sptr self) -> std::string""" + return _limesdr_swig.source_sptr_symbol_name(self) + + + def input_signature(self): + """input_signature(source_sptr self) -> io_signature_sptr""" + return _limesdr_swig.source_sptr_input_signature(self) + + + def output_signature(self): + """output_signature(source_sptr self) -> io_signature_sptr""" + return _limesdr_swig.source_sptr_output_signature(self) + + + def unique_id(self): + """unique_id(source_sptr self) -> long""" + return _limesdr_swig.source_sptr_unique_id(self) + + + def to_basic_block(self): + """to_basic_block(source_sptr self) -> basic_block_sptr""" + return _limesdr_swig.source_sptr_to_basic_block(self) + + + def check_topology(self, ninputs, noutputs): + """check_topology(source_sptr self, int ninputs, int noutputs) -> bool""" + return _limesdr_swig.source_sptr_check_topology(self, ninputs, noutputs) + + + def alias(self): + """alias(source_sptr self) -> std::string""" + return _limesdr_swig.source_sptr_alias(self) + + + def set_block_alias(self, name): + """set_block_alias(source_sptr self, std::string name)""" + return _limesdr_swig.source_sptr_set_block_alias(self, name) + + + def _post(self, which_port, msg): + """_post(source_sptr self, swig_int_ptr which_port, swig_int_ptr msg)""" + return _limesdr_swig.source_sptr__post(self, which_port, msg) + + + def message_ports_in(self): + """message_ports_in(source_sptr self) -> swig_int_ptr""" + return _limesdr_swig.source_sptr_message_ports_in(self) + + + def message_ports_out(self): + """message_ports_out(source_sptr self) -> swig_int_ptr""" + return _limesdr_swig.source_sptr_message_ports_out(self) + + + def message_subscribers(self, which_port): + """message_subscribers(source_sptr self, swig_int_ptr which_port) -> swig_int_ptr""" + return _limesdr_swig.source_sptr_message_subscribers(self, which_port) + +source_sptr_swigregister = _limesdr_swig.source_sptr_swigregister +source_sptr_swigregister(source_sptr) + + +source_sptr.__repr__ = lambda self: "" % (self.name(), self.unique_id()) +source = source.make; + +class sink(object): + """Proxy of C++ gr::limesdr::sink class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + + def __init__(self, *args, **kwargs): + raise AttributeError("No constructor defined - class is abstract") + __repr__ = _swig_repr + + def make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int pa_path_mini, int pa_path_ch0, int pa_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> sink_sptr""" + return _limesdr_swig.sink_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + make = staticmethod(make) + + def set_rf_freq(self, rf_freq): + """set_rf_freq(sink self, float rf_freq)""" + return _limesdr_swig.sink_set_rf_freq(self, rf_freq) + + + def set_pa_path(self, pa_path, channel): + """set_pa_path(sink self, int pa_path, int channel)""" + return _limesdr_swig.sink_set_pa_path(self, pa_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(sink self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.sink_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(sink self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.sink_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(sink self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.sink_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(sink self, int gain_dB, int channel)""" + return _limesdr_swig.sink_set_gain(self, gain_dB, channel) + + __swig_destroy__ = _limesdr_swig.delete_sink + __del__ = lambda self: None +sink_swigregister = _limesdr_swig.sink_swigregister +sink_swigregister(sink) + +def sink_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """sink_make(std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int pa_path_mini, int pa_path_ch0, int pa_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> sink_sptr""" + return _limesdr_swig.sink_make(serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + +class sink_sptr(object): + """Proxy of C++ boost::shared_ptr<(gr::limesdr::sink)> class.""" + + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + + def __init__(self, *args): + """ + __init__(boost::shared_ptr<(gr::limesdr::sink)> self) -> sink_sptr + __init__(boost::shared_ptr<(gr::limesdr::sink)> self, sink p) -> sink_sptr + """ + this = _limesdr_swig.new_sink_sptr(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + + def __deref__(self): + """__deref__(sink_sptr self) -> sink""" + return _limesdr_swig.sink_sptr___deref__(self) + + __swig_destroy__ = _limesdr_swig.delete_sink_sptr + __del__ = lambda self: None + + def make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1): + """make(sink_sptr self, std::string serial, int device_type, int chip_mode, int channel, int file_switch, char const * filename, double rf_freq, double samp_rate, size_t oversample, int calibration_ch0, double calibr_bandw_ch0, int calibration_ch1, double calibr_bandw_ch1, int pa_path_mini, int pa_path_ch0, int pa_path_ch1, int analog_filter_ch0, double analog_bandw_ch0, int analog_filter_ch1, double analog_bandw_ch1, int digital_filter_ch0, double digital_bandw_ch0, int digital_filter_ch1, double digital_bandw_ch1, int gain_dB_ch0, int gain_dB_ch1, float nco_freq_ch0, float nco_freq_ch1, int cmix_mode_ch0, int cmix_mode_ch1) -> sink_sptr""" + return _limesdr_swig.sink_sptr_make(self, serial, device_type, chip_mode, channel, file_switch, filename, rf_freq, samp_rate, oversample, calibration_ch0, calibr_bandw_ch0, calibration_ch1, calibr_bandw_ch1, pa_path_mini, pa_path_ch0, pa_path_ch1, analog_filter_ch0, analog_bandw_ch0, analog_filter_ch1, analog_bandw_ch1, digital_filter_ch0, digital_bandw_ch0, digital_filter_ch1, digital_bandw_ch1, gain_dB_ch0, gain_dB_ch1, nco_freq_ch0, nco_freq_ch1, cmix_mode_ch0, cmix_mode_ch1) + + + def set_rf_freq(self, rf_freq): + """set_rf_freq(sink_sptr self, float rf_freq)""" + return _limesdr_swig.sink_sptr_set_rf_freq(self, rf_freq) + + + def set_pa_path(self, pa_path, channel): + """set_pa_path(sink_sptr self, int pa_path, int channel)""" + return _limesdr_swig.sink_sptr_set_pa_path(self, pa_path, channel) + + + def set_nco(self, nco_freq, cmix_mode, channel): + """set_nco(sink_sptr self, float nco_freq, int cmix_mode, int channel)""" + return _limesdr_swig.sink_sptr_set_nco(self, nco_freq, cmix_mode, channel) + + + def set_analog_filter(self, analog_filter, analog_bandw, channel): + """set_analog_filter(sink_sptr self, int analog_filter, float analog_bandw, int channel)""" + return _limesdr_swig.sink_sptr_set_analog_filter(self, analog_filter, analog_bandw, channel) + + + def set_digital_filter(self, digital_filter, digital_bandw, channel): + """set_digital_filter(sink_sptr self, int digital_filter, float digital_bandw, int channel)""" + return _limesdr_swig.sink_sptr_set_digital_filter(self, digital_filter, digital_bandw, channel) + + + def set_gain(self, gain_dB, channel): + """set_gain(sink_sptr self, int gain_dB, int channel)""" + return _limesdr_swig.sink_sptr_set_gain(self, gain_dB, channel) + + + def history(self): + """history(sink_sptr self) -> unsigned int""" + return _limesdr_swig.sink_sptr_history(self) + + + def declare_sample_delay(self, *args): + """ + declare_sample_delay(sink_sptr self, int which, int delay) + declare_sample_delay(sink_sptr self, unsigned int delay) + """ + return _limesdr_swig.sink_sptr_declare_sample_delay(self, *args) + + + def sample_delay(self, which): + """sample_delay(sink_sptr self, int which) -> unsigned int""" + return _limesdr_swig.sink_sptr_sample_delay(self, which) + + + def output_multiple(self): + """output_multiple(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_output_multiple(self) + + + def relative_rate(self): + """relative_rate(sink_sptr self) -> double""" + return _limesdr_swig.sink_sptr_relative_rate(self) + + + def start(self): + """start(sink_sptr self) -> bool""" + return _limesdr_swig.sink_sptr_start(self) + + + def stop(self): + """stop(sink_sptr self) -> bool""" + return _limesdr_swig.sink_sptr_stop(self) + + + def nitems_read(self, which_input): + """nitems_read(sink_sptr self, unsigned int which_input) -> uint64_t""" + return _limesdr_swig.sink_sptr_nitems_read(self, which_input) + + + def nitems_written(self, which_output): + """nitems_written(sink_sptr self, unsigned int which_output) -> uint64_t""" + return _limesdr_swig.sink_sptr_nitems_written(self, which_output) + + + def max_noutput_items(self): + """max_noutput_items(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_max_noutput_items(self) + + + def set_max_noutput_items(self, m): + """set_max_noutput_items(sink_sptr self, int m)""" + return _limesdr_swig.sink_sptr_set_max_noutput_items(self, m) + + + def unset_max_noutput_items(self): + """unset_max_noutput_items(sink_sptr self)""" + return _limesdr_swig.sink_sptr_unset_max_noutput_items(self) + + + def is_set_max_noutput_items(self): + """is_set_max_noutput_items(sink_sptr self) -> bool""" + return _limesdr_swig.sink_sptr_is_set_max_noutput_items(self) + + + def set_min_noutput_items(self, m): + """set_min_noutput_items(sink_sptr self, int m)""" + return _limesdr_swig.sink_sptr_set_min_noutput_items(self, m) + + + def min_noutput_items(self): + """min_noutput_items(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_min_noutput_items(self) + + + def max_output_buffer(self, i): + """max_output_buffer(sink_sptr self, int i) -> long""" + return _limesdr_swig.sink_sptr_max_output_buffer(self, i) + + + def set_max_output_buffer(self, *args): + """ + set_max_output_buffer(sink_sptr self, long max_output_buffer) + set_max_output_buffer(sink_sptr self, int port, long max_output_buffer) + """ + return _limesdr_swig.sink_sptr_set_max_output_buffer(self, *args) + + + def min_output_buffer(self, i): + """min_output_buffer(sink_sptr self, int i) -> long""" + return _limesdr_swig.sink_sptr_min_output_buffer(self, i) + + + def set_min_output_buffer(self, *args): + """ + set_min_output_buffer(sink_sptr self, long min_output_buffer) + set_min_output_buffer(sink_sptr self, int port, long min_output_buffer) + """ + return _limesdr_swig.sink_sptr_set_min_output_buffer(self, *args) + + + def pc_noutput_items(self): + """pc_noutput_items(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_noutput_items(self) + + + def pc_noutput_items_avg(self): + """pc_noutput_items_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_noutput_items_avg(self) + + + def pc_noutput_items_var(self): + """pc_noutput_items_var(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_noutput_items_var(self) + + + def pc_nproduced(self): + """pc_nproduced(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_nproduced(self) + + + def pc_nproduced_avg(self): + """pc_nproduced_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_nproduced_avg(self) + + + def pc_nproduced_var(self): + """pc_nproduced_var(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_nproduced_var(self) + + + def pc_input_buffers_full(self, *args): + """ + pc_input_buffers_full(sink_sptr self, int which) -> float + pc_input_buffers_full(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_input_buffers_full(self, *args) + + + def pc_input_buffers_full_avg(self, *args): + """ + pc_input_buffers_full_avg(sink_sptr self, int which) -> float + pc_input_buffers_full_avg(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_input_buffers_full_avg(self, *args) + + + def pc_input_buffers_full_var(self, *args): + """ + pc_input_buffers_full_var(sink_sptr self, int which) -> float + pc_input_buffers_full_var(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_input_buffers_full_var(self, *args) + + + def pc_output_buffers_full(self, *args): + """ + pc_output_buffers_full(sink_sptr self, int which) -> float + pc_output_buffers_full(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_output_buffers_full(self, *args) + + + def pc_output_buffers_full_avg(self, *args): + """ + pc_output_buffers_full_avg(sink_sptr self, int which) -> float + pc_output_buffers_full_avg(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_output_buffers_full_avg(self, *args) + + + def pc_output_buffers_full_var(self, *args): + """ + pc_output_buffers_full_var(sink_sptr self, int which) -> float + pc_output_buffers_full_var(sink_sptr self) -> pmt_vector_float + """ + return _limesdr_swig.sink_sptr_pc_output_buffers_full_var(self, *args) + + + def pc_work_time(self): + """pc_work_time(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time(self) + + + def pc_work_time_avg(self): + """pc_work_time_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time_avg(self) + + + def pc_work_time_var(self): + """pc_work_time_var(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time_var(self) + + + def pc_work_time_total(self): + """pc_work_time_total(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_work_time_total(self) + + + def pc_throughput_avg(self): + """pc_throughput_avg(sink_sptr self) -> float""" + return _limesdr_swig.sink_sptr_pc_throughput_avg(self) + + + def set_processor_affinity(self, mask): + """set_processor_affinity(sink_sptr self, std::vector< int,std::allocator< int > > const & mask)""" + return _limesdr_swig.sink_sptr_set_processor_affinity(self, mask) + + + def unset_processor_affinity(self): + """unset_processor_affinity(sink_sptr self)""" + return _limesdr_swig.sink_sptr_unset_processor_affinity(self) + + + def processor_affinity(self): + """processor_affinity(sink_sptr self) -> std::vector< int,std::allocator< int > >""" + return _limesdr_swig.sink_sptr_processor_affinity(self) + + + def active_thread_priority(self): + """active_thread_priority(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_active_thread_priority(self) + + + def thread_priority(self): + """thread_priority(sink_sptr self) -> int""" + return _limesdr_swig.sink_sptr_thread_priority(self) + + + def set_thread_priority(self, priority): + """set_thread_priority(sink_sptr self, int priority) -> int""" + return _limesdr_swig.sink_sptr_set_thread_priority(self, priority) + + + def name(self): + """name(sink_sptr self) -> std::string""" + return _limesdr_swig.sink_sptr_name(self) + + + def symbol_name(self): + """symbol_name(sink_sptr self) -> std::string""" + return _limesdr_swig.sink_sptr_symbol_name(self) + + + def input_signature(self): + """input_signature(sink_sptr self) -> io_signature_sptr""" + return _limesdr_swig.sink_sptr_input_signature(self) + + + def output_signature(self): + """output_signature(sink_sptr self) -> io_signature_sptr""" + return _limesdr_swig.sink_sptr_output_signature(self) + + + def unique_id(self): + """unique_id(sink_sptr self) -> long""" + return _limesdr_swig.sink_sptr_unique_id(self) + + + def to_basic_block(self): + """to_basic_block(sink_sptr self) -> basic_block_sptr""" + return _limesdr_swig.sink_sptr_to_basic_block(self) + + + def check_topology(self, ninputs, noutputs): + """check_topology(sink_sptr self, int ninputs, int noutputs) -> bool""" + return _limesdr_swig.sink_sptr_check_topology(self, ninputs, noutputs) + + + def alias(self): + """alias(sink_sptr self) -> std::string""" + return _limesdr_swig.sink_sptr_alias(self) + + + def set_block_alias(self, name): + """set_block_alias(sink_sptr self, std::string name)""" + return _limesdr_swig.sink_sptr_set_block_alias(self, name) + + + def _post(self, which_port, msg): + """_post(sink_sptr self, swig_int_ptr which_port, swig_int_ptr msg)""" + return _limesdr_swig.sink_sptr__post(self, which_port, msg) + + + def message_ports_in(self): + """message_ports_in(sink_sptr self) -> swig_int_ptr""" + return _limesdr_swig.sink_sptr_message_ports_in(self) + + + def message_ports_out(self): + """message_ports_out(sink_sptr self) -> swig_int_ptr""" + return _limesdr_swig.sink_sptr_message_ports_out(self) + + + def message_subscribers(self, which_port): + """message_subscribers(sink_sptr self, swig_int_ptr which_port) -> swig_int_ptr""" + return _limesdr_swig.sink_sptr_message_subscribers(self, which_port) + +sink_sptr_swigregister = _limesdr_swig.sink_sptr_swigregister +sink_sptr_swigregister(sink_sptr) + + +sink_sptr.__repr__ = lambda self: "" % (self.name(), self.unique_id()) +sink = sink.make; + + + diff --git a/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.pyc b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.pyc new file mode 100644 index 0000000000000000000000000000000000000000..23b361b35aceb422c35873209c98c3f882343e12 GIT binary patch literal 54884 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%0DcL$CQ6W5|1nYVM#op{6{45CgndW zi6@o+m?VxW|8Yq?rTix(aZLGdk_0v!J}HUg%0DWJH!J@sNt{srF-bh5{HG;xQu)Uv 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 literal 0 HcmV?d00001 diff --git a/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.pyo b/windows/Pothos_SDR/lib/python2.7/site-packages/limesdr/limesdr_swig.pyo new file mode 100644 index 0000000000000000000000000000000000000000..23b361b35aceb422c35873209c98c3f882343e12 GIT binary patch literal 54884 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%0DcL$CQ6W5|1nYVM#op{6{45CgndW zi6@o+m?VxW|8Yq?rTix(aZLGdk_0v!J}HUg%0DWJH!J@sNt{srF-bh5{HG;xQu)Uv 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 literal 0 HcmV?d00001 diff --git a/windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_sink.xml b/windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_sink.xml new file mode 100644 index 0000000..f973b70 --- /dev/null +++ b/windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_sink.xml @@ -0,0 +1,825 @@ + + + LimeSuite Sink (TX) + limesdr_sink + [LimeSuite] + throttle + import limesdr + limesdr.sink($serial, + $device_type, + $chip_mode, + $channel, + $file_switch, + $filename, + $rf_freq, + $samp_rate, + $oversample, + $calibration_ch0, + $calibr_bandw_ch0, + $calibration_ch1, + $calibr_bandw_ch1, + $pa_path_mini, + $pa_path_ch0, + $pa_path_ch1, + $analog_filter_ch0, + $analog_bandw_ch0, + $analog_filter_ch1, + $analog_bandw_ch1, + $digital_filter_ch0, + $digital_bandw_ch0, + $digital_filter_ch1, + $digital_bandw_ch1, + $gain_dB_ch0, + $gain_dB_ch1, + $nco_freq_ch0, + $nco_freq_ch1, + $cmix_mode_ch0, + $cmix_mode_ch1) + + set_rf_freq($rf_freq) + set_pa_path($pa_path_mini,0) + set_pa_path($pa_path_ch0,0) + set_pa_path($pa_path_ch1,1) + set_nco($nco_freq_ch0,$cmix_mode_ch0,0) + set_nco($nco_freq_ch1,$cmix_mode_ch1,1) + set_analog_filter($analog_filter_ch0,$analog_bandw_ch0,0) + set_analog_filter($analog_filter_ch1,$analog_bandw_ch1,1) + set_digital_filter($digital_filter_ch0,$digital_bandw_ch0,0) + set_digital_filter($digital_filter_ch1,$digital_bandw_ch1,1) + set_gain($gain_dB_ch0,0) + set_gain($gain_dB_ch1,1) + + + General + CH0 + CH1 + + + + Device serial + serial + + string + none + + + + Device type + device_type + 2 + int + none + + + + + + Chip mode + chip_mode + 1 + int + none + + + + + + CH0 + channel + 0 + int + + #if $device_type() == 1 + all + #else if $chip_mode() == 2 + all + #else + none + #end if + + + + + + + Load settings + file_switch + 0 + int + none + + + + + + File + filename + + file_open + + #if $file_switch() == 0 + all + #else + none + #end if + + + + + RF frequency + rf_freq + 100e6 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Sample rate + samp_rate + samp_rate + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Oversample + oversample + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + + + + + + + + CH0:NCO frequency + nco_freq_ch0 + 0 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:CMIX mode + cmix_mode_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration + calibration_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration bandw. + calibr_bandw_ch0 + 10e6 + float + + #if $calibration_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:PA path + pa_path_mini + 1 + int + + #if $device_type() == 2 + all + #else + none + #end if + + + + CH0 + + + + CH0:PA path + pa_path_ch0 + 1 + int + + #if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Analog filter + analog_filter_ch0 + 1 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Analog filter bandw. + analog_bandw_ch0 + 5e6 + float + + #if $analog_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Digital filter + digital_filter_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Digital filter bandw. + digital_bandw_ch0 + 0 + float + + #if $digital_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Gain,dB + gain_dB_ch0 + 30 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH1:NCO frequency + nco_freq_ch1 + 0 + float + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:CMIX mode + cmix_mode_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration + calibration_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration bandw. + calibr_bandw_ch1 + 10e6 + float + + #if $calibration_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:PA path + pa_path_ch1 + 1 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Analog filter + analog_filter_ch1 + 1 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Analog filter bandw. + analog_bandw_ch1 + 5e6 + float + + #if $analog_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Digital filter + digital_filter_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Digital filter bandw. + digital_bandw_ch1 + 0 + float + + #if $digital_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Gain,dB + gain_dB_ch1 + 30 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + $device_type >= $chip_mode + $device_type >= 1 + 2 >= $device_type + + $chip_mode >= 1 + 2 >= $chip_mode + + $rf_freq > 0 + + $calibr_bandw_ch0 >= 2.5e6 + 120e6 >= $calibr_bandw_ch0 + + $calibr_bandw_ch1 >= 2.5e6 + 120e6 >= $calibr_bandw_ch1 + + $analog_bandw_ch0 >= 5e6 + 130e6 >= $analog_bandw_ch0 + + $analog_bandw_ch1 >= 5e6 + 130e6 >= $analog_bandw_ch1 + + $digital_bandw_ch0 >= 0 + $samp_rate >= $digital_bandw_ch0 + + $digital_bandw_ch1 >= 0 + $samp_rate >= $digital_bandw_ch1 + + $gain_dB_ch0 >= 0 + 60 >= $gain_dB_ch0 + + $gain_dB_ch1 >= 0 + 60 >= $gain_dB_ch1 + + $samp_rate > 0 + 61.44e6 >= $samp_rate + + + in + complex + $chip_mode + + + +------------------------------------------------------------------------------------------------------------------- +DEVICE SERIAL + +Device serial number obtained by running + + LimeUtil --find + +Cannot be left blank. +------------------------------------------------------------------------------------------------------------------- +DEVICE TYPE + +This setting lets you choose from predefined device type list and loads appropriate settings for the selected device. +Currently supported device types: LimeSDR-USB, LimeSDR-Mini. +------------------------------------------------------------------------------------------------------------------- +CHIP MODE + +Use this setting to choose between single-input and single-output (SISO)/multiple-input and multiple-output (MIMO) chip modes. + +Note: not all devices support MIMO mode. +------------------------------------------------------------------------------------------------------------------- +CH0 + +When in SISO mode select active channel as CH0. + +Note: not all devices have more than one channel. +------------------------------------------------------------------------------------------------------------------- +LOAD SETTINGS + +Enable loading settings from file. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +FILE + +Generate .ini file with LimeSuite and select path. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +CENTER FREQUENCY + +Set RF center frequency for TX (both channels). +LimeSDR-USB supports [100e3,3800e6] Hz. +LimeSDR-Mini supports [10e6,3800e6] Hz. +------------------------------------------------------------------------------------------------------------------- +SAMPLE RATE + +Here you can select sample rate for TX. + +LimeSDR-USB sample rate must be no more than 61.44e6 S/s. +LimeSDR-Mini sample rate must be no more than 30.72e6 S/s. + +Note: LimeSDR-Mini supports only the same sample rate for TX and RX. +------------------------------------------------------------------------------------------------------------------- +OVERSAMPLE + +Here you can select oversampling value for TX. Default value uses highest possible oversampling value. + +Note: LimeSDR-Mini supports only the same oversampling value for TX and RX. +------------------------------------------------------------------------------------------------------------------- +NCO FREQUENCY + +Adjust numerically controlled oscillator for each channel. 0 means that NCO is OFF. +------------------------------------------------------------------------------------------------------------------- +CMIX MODE + +Controls NCO direction for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION + +Turn DC offset and IQ imbalance calibration ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION BANDW. + +When calibration is turned ON this setting is used to set bandwidth for calibration for each channel. This value should be equal to your signal bandwidth. + +Calibration bandwidth range must be [2.5e6,120e6] Hz. +------------------------------------------------------------------------------------------------------------------- +PA PATH + +Select active power amplifier path of each channel. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER + +Turn low-pass filter ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER BANDW. + +Enter analog filter bandwidth for each channel. +Analog filter bandwidth range must be [5e6,130e6] Hz. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER + +Turn digital filters (GFIR) ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER BANDW. + +Enter digital filter bandwidth for each channel. Bandwidth should not be higher than sample rate. +------------------------------------------------------------------------------------------------------------------- +GAIN + +Controls combined TX gain settings. Gain range must be [0,60] dB. +------------------------------------------------------------------------------------------------------------------- + + diff --git a/windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_source.xml b/windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_source.xml new file mode 100644 index 0000000..3e436cc --- /dev/null +++ b/windows/Pothos_SDR/share/gnuradio/grc/blocks/limesdr_source.xml @@ -0,0 +1,833 @@ + + + LimeSuite Source (RX) + limesdr_source + [LimeSuite] + throttle + import limesdr + limesdr.source($serial, + $device_type, + $chip_mode, + $channel, + $file_switch, + $filename, + $rf_freq, + $samp_rate, + $oversample, + $calibration_ch0, + $calibr_bandw_ch0, + $calibration_ch1, + $calibr_bandw_ch1, + $lna_path_mini, + $lna_path_ch0, + $lna_path_ch1, + $analog_filter_ch0, + $analog_bandw_ch0, + $analog_filter_ch1, + $analog_bandw_ch1, + $digital_filter_ch0, + $digital_bandw_ch0, + $digital_filter_ch1, + $digital_bandw_ch1, + $gain_dB_ch0, + $gain_dB_ch1, + $nco_freq_ch0, + $nco_freq_ch1, + $cmix_mode_ch0, + $cmix_mode_ch1) + + set_rf_freq($rf_freq) + set_lna_path($lna_path_mini,0) + set_lna_path($lna_path_ch0,0) + set_lna_path($lna_path_ch1,1) + set_nco($nco_freq_ch0,$cmix_mode_ch0,0) + set_nco($nco_freq_ch1,$cmix_mode_ch1,1) + set_analog_filter($analog_filter_ch0,$analog_bandw_ch0,0) + set_analog_filter($analog_filter_ch1,$analog_bandw_ch1,1) + set_digital_filter($digital_filter_ch0,$digital_bandw_ch0,0) + set_digital_filter($digital_filter_ch1,$digital_bandw_ch1,1) + set_gain($gain_dB_ch0,0) + set_gain($gain_dB_ch1,1) + + + General + CH0 + CH1 + + + + Device serial + serial + + string + none + + + + Device type + device_type + 2 + int + none + + + + + + Chip mode + chip_mode + 1 + int + none + + + + + + CH0 + channel + 0 + int + + #if $device_type() == 1 + all + #else if $chip_mode() == 2 + all + #else + none + #end if + + + + + + + Load settings + file_switch + 0 + int + none + + + + + + File + filename + + file_open + + #if $file_switch() == 0 + all + #else + none + #end if + + + + + RF frequency + rf_freq + 100e6 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Sample rate + samp_rate + samp_rate + float + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + Oversample + oversample + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + + + + + + + + + CH0:NCO frequency + nco_freq_ch0 + 0 + float + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:CMIX mode + cmix_mode_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration + calibration_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Calibration bandw. + calibr_bandw_ch0 + 10e6 + float + + #if $calibration_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:LNA path + lna_path_mini + 3 + int + + #if $device_type() == 2 + all + #else + none + #end if + + + + CH0 + + + + CH0:LNA path + lna_path_ch0 + 2 + int + + #if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + + CH0 + + + + CH0:Analog filter + analog_filter_ch0 + 1 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Analog filter bandw. + analog_bandw_ch0 + 5e6 + float + + #if $analog_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Digital filter + digital_filter_ch0 + 0 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + + + CH0 + + + + CH0:Digital filter bandw. + digital_bandw_ch0 + 0 + float + + #if $digital_filter_ch0() == 0 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH0:Gain,dB + gain_dB_ch0 + 30 + int + + #if $file_switch() == 1 + all + #else + none + #end if + + CH0 + + + + CH1:NCO frequency + nco_freq_ch1 + 0 + float + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:CMIX mode + cmix_mode_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration + calibration_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Calibration bandw. + calibr_bandw_ch1 + 10e6 + float + + #if $calibration_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:LNA path + lna_path_ch1 + 2 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + + CH1 + + + + CH1:Analog filter + analog_filter_ch1 + 1 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Analog filter bandw. + analog_bandw_ch1 + 5e6 + float + + #if $analog_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Digital filter + digital_filter_ch1 + 0 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + + + CH1 + + + + CH1:Digital filter bandw. + digital_bandw_ch1 + 0 + float + + #if $digital_filter_ch1() == 0 + all + #else if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + + CH1:Gain,dB + gain_dB_ch1 + 30 + int + + #if $chip_mode() == 1 + all + #else if $device_type() == 1 + all + #else if $file_switch() == 1 + all + #else + none + #end if + + CH1 + + + $device_type >= $chip_mode + $device_type >= 1 + 2 >= $device_type + + $chip_mode >= 1 + 2 >= $chip_mode + + $rf_freq > 0 + + $calibr_bandw_ch0 >= 2.5e6 + 120e6 >= $calibr_bandw_ch0 + + $calibr_bandw_ch1 >= 2.5e6 + 120e6 >= $calibr_bandw_ch1 + + $analog_bandw_ch0 >= 1.5e6 + 130e6 >= $analog_bandw_ch0 + + $analog_bandw_ch1 >= 1.5e6 + 130e6 >= $analog_bandw_ch1 + + $digital_bandw_ch0 >= 0 + $samp_rate >= $digital_bandw_ch0 + + $digital_bandw_ch1 >= 0 + $samp_rate >= $digital_bandw_ch1 + + $gain_dB_ch0 >= 0 + 70 >= $gain_dB_ch0 + + $gain_dB_ch1 >= 0 + 70 >= $gain_dB_ch1 + + $samp_rate > 0 + 61.44e6 >= $samp_rate + + + out + complex + $chip_mode + + + +------------------------------------------------------------------------------------------------------------------- +DEVICE SERIAL + +Device serial number obtained by running + + LimeUtil --find + +Cannot be left blank. +------------------------------------------------------------------------------------------------------------------- +DEVICE TYPE + +This setting lets you choose from predefined device type list and loads appropriate settings for the selected device. +Currently supported device types: LimeSDR-USB, LimeSDR-Mini. +------------------------------------------------------------------------------------------------------------------- +CHIP MODE + +Use this setting to choose between single-input and single-output (SISO)/multiple-input and multiple-output (MIMO) chip modes. + +Note: not all devices support MIMO mode. +------------------------------------------------------------------------------------------------------------------- +CH0 + +When in SISO mode select active channel as CH0. + +Note: not all devices have more than one channel. +------------------------------------------------------------------------------------------------------------------- +LOAD SETTINGS + +Enable loading settings from file. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +FILE + +Generate .ini file with LimeSuite and select path. + +Note: setting must match in LimeSuite Source and Sink for the same device. +------------------------------------------------------------------------------------------------------------------- +RF FREQUENCY + +Set RF center frequency for RX (both channels). +LimeSDR-USB supports [100e3,3800e6] Hz. +LimeSDR-Mini supports [10e6,3800e6] Hz. +------------------------------------------------------------------------------------------------------------------- +SAMPLE RATE + +Here you can select sample rate for RX. + +LimeSDR-USB sample rate must be no more than 61.44e6 S/s. +LimeSDR-Mini sample rate must be no more than 30.72e6 S/s. + +Note: LimeSDR-Mini supports only the same sample rate for TX and RX. +------------------------------------------------------------------------------------------------------------------- +OVERSAMPLE + +Here you can select oversampling value for RX. Default value uses highest possible oversampling value. + +Note: LimeSDR-Mini supports only the same oversampling value for TX and RX. +------------------------------------------------------------------------------------------------------------------- +NCO FREQUENCY + +Adjust numerically controlled oscillator for each channel. 0 means that NCO is OFF. +------------------------------------------------------------------------------------------------------------------- +CMIX MODE + +Controls NCO direction for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION + +Turn DC offset and IQ imbalance calibration ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +CALIBRATION BANDW. + +When calibration is turned ON this setting is used to set bandwidth for calibration for each channel. This value should be equal to your signal bandwidth. + +Calibration bandwidth range must be [2.5e6,120e6] Hz. +------------------------------------------------------------------------------------------------------------------- +LNA PATH + +Select active low-noise amplifier path of each channel. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER + +Turn low-pass filter ON/OFF for each channel. When OFF device uses default values. +------------------------------------------------------------------------------------------------------------------- +ANALOG FILTER BANDW. + +Enter analog filter bandwidth for each channel. +Analog filter bandwidth range must be [1.5e6,130e6] Hz. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER + +Turn digital filters (GFIR) ON/OFF for each channel. +------------------------------------------------------------------------------------------------------------------- +DIGITAL FILTER BANDW. + +Enter digital filter bandwidth for each channel. Bandwidth should not be higher than sample rate. +------------------------------------------------------------------------------------------------------------------- +GAIN + +Controls combined RX gain settings. Gain range must be [0,70] dB. +------------------------------------------------------------------------------------------------------------------- + +