diff options
author | Martin Braun <martin.braun@ettus.com> | 2017-03-08 09:28:55 -0800 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-12-22 15:03:44 -0800 |
commit | 1a4348038d0eb57d53475074dca49e8192aeb2d7 (patch) | |
tree | 04c8e87fa9c95d2702aac410f6fb271461acb9bb /mpm/python/usrp_hwd.py | |
parent | fc8cd827f6b16b9c8c354a216889e6a9d7f37456 (diff) | |
download | uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.gz uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.bz2 uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.zip |
Initial commit for N3xx development.
- Creates mpm/ subdirectory
- First pass at hardware daemon/MPM
- New code for LMK04828, AD9371
- spidev integration
Contributions by:
Martin Braun <martin.braun@ettus.com>
Derek Kozel <derek.kozel@ettus.com>
Mark Meserve <mark.meserve@ni.com>
Andrej Rode <andrej.rode@ettus.com>
Diffstat (limited to 'mpm/python/usrp_hwd.py')
-rwxr-xr-x | mpm/python/usrp_hwd.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/mpm/python/usrp_hwd.py b/mpm/python/usrp_hwd.py new file mode 100755 index 000000000..dc72ce3b9 --- /dev/null +++ b/mpm/python/usrp_hwd.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# +# Copyright 2017 Ettus Research (National Instruments) +# +# This program 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 of the License, or +# (at your option) any later version. +# +# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. +# +""" +Main executable for the USRP Hardware Daemon +""" + +from __future__ import print_function +from multiprocessing import Value +import ctypes +import signal +import time +import usrp_mpm as mpm +from usrp_mpm.types import shared_state +from usrp_mpm.types import graceful_exit + + +def signal_handler(signum, frame): + raise graceful_exit() + + +def main(): + """ + Go, go, go! + + Main process loop. + """ + procs = [] + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + shared = shared_state() + procs.append(mpm.spawn_discovery_process({'a': "foo"}, shared)) + # procs.append(mpm.spawn_rpc_process("Echo", 5000)) + procs.append(mpm.spawn_rpc_process("MPM", mpm.types.MPM_RPC_PORT, shared)) + try: + for proc in procs: + proc.join() + except mpm.types.graceful_exit: + pass + +if __name__ == '__main__': + exit(not main()) + |