From 1a4348038d0eb57d53475074dca49e8192aeb2d7 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Wed, 8 Mar 2017 09:28:55 -0800 Subject: 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 Derek Kozel Mark Meserve Andrej Rode --- mpm/python/usrp_mpm/rpc_process.py | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 mpm/python/usrp_mpm/rpc_process.py (limited to 'mpm/python/usrp_mpm/rpc_process.py') diff --git a/mpm/python/usrp_mpm/rpc_process.py b/mpm/python/usrp_mpm/rpc_process.py new file mode 100644 index 000000000..b8783f325 --- /dev/null +++ b/mpm/python/usrp_mpm/rpc_process.py @@ -0,0 +1,48 @@ +# +# 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 . +# +""" +Code to run the discovery port +""" + +from __future__ import print_function +from multiprocessing import Process + +from gevent.server import StreamServer +from mprpc import RPCServer +from types import graceful_exit, MPM_RPC_PORT +import rpc_server + + + +def spawn_rpc_process(server, state, udp_port=MPM_RPC_PORT): + """ + Returns a process that contains the RPC server + """ + + p_args = [server, udp_port, state] + p = Process(target=_rpc_server_process, args=p_args) + p.start() + return p + + +def _rpc_server_process(server, shared_state, port): + try: + rpc_class = getattr(rpc_server, server+"Server") + server = StreamServer(('0.0.0.0', port), handle=rpc_class(shared_state)) + server.serve_forever() + except graceful_exit: + server.close() -- cgit v1.2.3