aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python/usrp_hwd.py
diff options
context:
space:
mode:
authorSamuel O'Brien <sam.obrien@ni.com>2020-07-24 08:35:35 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-10-28 15:25:48 -0500
commit00c306d5c441e60e7dfd2516e05e4e433977ecee (patch)
tree998752676d4ff9dbd06ad194056a214e7fdc763c /mpm/python/usrp_hwd.py
parentbd278a4b936f3e30f51d7cb9ff489f3ff7215379 (diff)
downloaduhd-00c306d5c441e60e7dfd2516e05e4e433977ecee.tar.gz
uhd-00c306d5c441e60e7dfd2516e05e4e433977ecee.tar.bz2
uhd-00c306d5c441e60e7dfd2516e05e4e433977ecee.zip
sim: Integrate simulator into UHD
This commit adds a device::register_device which allows uhd to start up a simulator when uhd is called with the arguments type=sim. Creating the device object creates a subprocess using pybind and an embedded interpreter, and destroying the object cleans up those subprocesses. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
Diffstat (limited to 'mpm/python/usrp_hwd.py')
-rwxr-xr-xmpm/python/usrp_hwd.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/mpm/python/usrp_hwd.py b/mpm/python/usrp_hwd.py
index fb8c1b94e..aaa426fc4 100755
--- a/mpm/python/usrp_hwd.py
+++ b/mpm/python/usrp_hwd.py
@@ -24,6 +24,10 @@ from threading import Event, Thread
_PROCESSES = []
_KILL_EVENT = Event()
+# This Global Variable is used by the Simulator to make the spawn_processes,
+# and by extension the main method, exit without waiting for the simulator to stop.
+# See process_manager.py:bootstrap() for more information.
+JOIN_PROCESSES = True
def setup_arg_parser():
"""
@@ -31,6 +35,12 @@ def setup_arg_parser():
"""
parser = argparse.ArgumentParser(description="USRP Hardware Daemon")
parser.add_argument(
+ '--no-logbuf',
+ dest='use_logbuf',
+ help="Do not send log messages to UHD",
+ action="store_false",
+ )
+ parser.add_argument(
'--daemon',
help="Run as daemon",
action="store_true",
@@ -169,8 +179,9 @@ def spawn_processes(log, args):
Thread(target=kill_thread, daemon=False).start()
signal.signal(signal.SIGTERM, kill_time)
signal.signal(signal.SIGINT, kill_time)
- for proc in _PROCESSES:
- proc.join()
+ if JOIN_PROCESSES:
+ for proc in _PROCESSES:
+ proc.join()
return True
def main():
@@ -181,6 +192,7 @@ def main():
"""
args = parse_args()
log = mpm.get_main_logger(
+ use_logbuf=args.use_logbuf,
log_default_delta=args.verbose-args.quiet
).getChild('main')
version_string = mpm.__version__