aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python/usrp_hwd.py
diff options
context:
space:
mode:
Diffstat (limited to 'mpm/python/usrp_hwd.py')
-rwxr-xr-xmpm/python/usrp_hwd.py57
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())
+