aboutsummaryrefslogtreecommitdiffstats
path: root/apps/osmocom_siggen
diff options
context:
space:
mode:
authorDimitri Stolnikov <horiz0n@gmx.net>2013-04-28 12:41:35 +0200
committerDimitri Stolnikov <horiz0n@gmx.net>2013-04-28 12:46:03 +0200
commita31ea525fb8439b3708b8f4124ac99994ff7a978 (patch)
tree4906b0256fb03e5a02dbb310b77d311027e11bae /apps/osmocom_siggen
parenta5bdb272402fb012c0a97556cf50a69128e4c573 (diff)
apps: add spectrum browser and signal generator
usage examples: osmocom_fft -a "rtl=0" -f 100e6 -s 2.4e6 -g 15 osmocom_siggen_gui -a "hackrf=0" -s 5e6 -f 100e6 --sine osmocom_siggen_gui -a "hackrf=0" -s 5e6 -f 100e6 --sweep -x 2M -y 1 -c34 known issues: - switching between siggen modes is broken at the moment (WIP) and has to be made via cli switches only. - filter bandwidth controls have no effect for TX (this has to be investigated)
Diffstat (limited to 'apps/osmocom_siggen')
-rwxr-xr-xapps/osmocom_siggen51
1 files changed, 51 insertions, 0 deletions
diff --git a/apps/osmocom_siggen b/apps/osmocom_siggen
new file mode 100755
index 0000000..0283fcf
--- /dev/null
+++ b/apps/osmocom_siggen
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+#
+# Copyright 2008,2009,2011,2012 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+from gnuradio import gr
+from osmosdr import osmocom_siggen_base as osmocom_siggen
+import sys
+
+def main():
+ if gr.enable_realtime_scheduling() != gr.RT_OK:
+ print "Note: failed to enable realtime scheduling, continuing"
+
+ # Grab command line options and create top block
+ try:
+ (options, args) = osmocom_siggen.get_options()
+ tb = osmocom_siggen.top_block(options, args)
+
+ except RuntimeError, e:
+ print e
+ sys.exit(1)
+
+ tb.start()
+ raw_input('Press Enter to quit: ')
+ tb.stop()
+ tb.wait()
+
+# Make sure to create the top block (tb) within a function:
+# That code in main will allow tb to go out of scope on return,
+# which will call the decontructor on usrp and stop transmit.
+# Whats odd is that grc works fine with tb in the __main__,
+# perhaps its because the try/except clauses around tb.
+if __name__ == "__main__":
+ main()