diff options
author | Samuel O'Brien <sam.obrien@ni.com> | 2020-07-24 08:35:35 -0500 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2020-10-28 15:25:48 -0500 |
commit | 00c306d5c441e60e7dfd2516e05e4e433977ecee (patch) | |
tree | 998752676d4ff9dbd06ad194056a214e7fdc763c /mpm/python/usrp_hwd.py | |
parent | bd278a4b936f3e30f51d7cb9ff489f3ff7215379 (diff) | |
download | uhd-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-x | mpm/python/usrp_hwd.py | 16 |
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__ |