def set_auto_tr(self, enable):
if self._type == USRP1_TYPE: return self._subdev.set_auto_tr(enable)
- def __del__(self):
- #delete usrp1 specific subdev
- if self._type == USRP1_TYPE:
- del self._subdev
- self._subdev = None
- #delete the usrp device
- del self._u
- self._u = None
-
########################################################################
# generic usrp source
########################################################################
return (options, args)
# If this script is executed, the following runs. If it is imported, the below does not run.
-if __name__ == "__main__":
+def main():
if gr.enable_realtime_scheduling() != gr.RT_OK:
print "Note: failed to enable realtime scheduling, continuing"
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()
self.vbox.AddSpacer(5)
self.vbox.AddStretchSpacer()
-if __name__ == "__main__":
+def main():
try:
# Get command line parameters
(options, args) = usrp_siggen.get_options()
except RuntimeError, e:
print e
sys.exit(1)
+
+# 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()