summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-zeromq/examples/python/client.py16
-rw-r--r--gr-zeromq/examples/python/gui.py66
-rw-r--r--gr-zeromq/examples/python/server.py32
-rw-r--r--gr-zeromq/python/zeromq/probe_manager.py1
-rw-r--r--gr-zeromq/python/zeromq/rpc_manager.py4
5 files changed, 75 insertions, 44 deletions
diff --git a/gr-zeromq/examples/python/client.py b/gr-zeromq/examples/python/client.py
index cabdbebee7..30a73254e8 100644
--- a/gr-zeromq/examples/python/client.py
+++ b/gr-zeromq/examples/python/client.py
@@ -25,6 +25,8 @@ import time
###############################################################################
# GNU Radio top_block
###############################################################################
+
+
class top_block(gr.top_block):
def __init__(self, options):
gr.top_block.__init__(self)
@@ -34,7 +36,7 @@ class top_block(gr.top_block):
# socket addresses
rpc_adr = "tcp://*:6667"
probe_adr = "tcp://*:5557"
- source_adr = "tcp://"+self.options.servername+":5555"
+ source_adr = "tcp://" + self.options.servername + ":5555"
# blocks
#self.zmq_source = zeromq.req_source(gr.sizeof_float, 1, source_adr)
@@ -49,8 +51,8 @@ class top_block(gr.top_block):
# ZeroMQ
self.rpc_manager = zeromq.rpc_manager()
self.rpc_manager.set_reply_socket(rpc_adr)
- self.rpc_manager.add_interface("start_fg",self.start_fg)
- self.rpc_manager.add_interface("stop_fg",self.stop_fg)
+ self.rpc_manager.add_interface("start_fg", self.start_fg)
+ self.rpc_manager.add_interface("stop_fg", self.stop_fg)
self.rpc_manager.start_watcher()
def start_fg(self):
@@ -68,23 +70,29 @@ class top_block(gr.top_block):
###############################################################################
# Options Parser
###############################################################################
+
+
def parse_args():
"""Argument parser."""
parser = ArgumentParser()
parser.add_argument("-s", "--servername", default="localhost",
- help="Server hostname")
+ help="Server hostname")
args = parser.parse_args()
return args
###############################################################################
# Waiter Thread
###############################################################################
+
+
class waiter(Thread):
""" To keep the program alive when flowgraph is stopped. """
+
def run(self):
while keep_running:
time.sleep(1)
+
###############################################################################
# Main
###############################################################################
diff --git a/gr-zeromq/examples/python/gui.py b/gr-zeromq/examples/python/gui.py
index 3105470ec7..bbdcb10539 100644
--- a/gr-zeromq/examples/python/gui.py
+++ b/gr-zeromq/examples/python/gui.py
@@ -19,6 +19,7 @@ import PyQt5.Qwt5 as Qwt
from gnuradio import zeromq
import signal
+
class gui(QtGui.QMainWindow):
def __init__(self, window_name, options, parent=None):
QtGui.QMainWindow.__init__(self, parent)
@@ -26,20 +27,23 @@ class gui(QtGui.QMainWindow):
# give Ctrl+C back to system
signal.signal(signal.SIGINT, signal.SIG_DFL)
- self.gui = uic.loadUi(os.path.join(os.path.dirname(__file__),'main_window.ui'), self)
+ self.gui = uic.loadUi(os.path.join(
+ os.path.dirname(__file__), 'main_window.ui'), self)
self.update_timer = Qt.QTimer()
# socket addresses
- rpc_adr_server = "tcp://"+options.servername+":6666"
- rpc_adr_client = "tcp://"+options.clientname+":6667"
- probe_adr_server = "tcp://"+options.servername+":5556"
- probe_adr_client = "tcp://"+options.clientname+":5557"
+ rpc_adr_server = "tcp://" + options.servername + ":6666"
+ rpc_adr_client = "tcp://" + options.clientname + ":6667"
+ probe_adr_server = "tcp://" + options.servername + ":5556"
+ probe_adr_client = "tcp://" + options.clientname + ":5557"
# ZeroMQ
self.probe_manager = zeromq.probe_manager()
- self.probe_manager.add_socket(probe_adr_server, 'float32', self.plot_data_server)
- self.probe_manager.add_socket(probe_adr_client, 'float32', self.plot_data_client)
+ self.probe_manager.add_socket(
+ probe_adr_server, 'float32', self.plot_data_server)
+ self.probe_manager.add_socket(
+ probe_adr_client, 'float32', self.plot_data_client)
self.rpc_mgr_server = zeromq.rpc_manager()
self.rpc_mgr_server.set_request_socket(rpc_adr_server)
@@ -69,18 +73,29 @@ class gui(QtGui.QMainWindow):
grid_server.attach(self.gui.qwtPlotServer)
grid_client.attach(self.gui.qwtPlotClient)
- #Signals
- self.connect(self.update_timer, QtCore.SIGNAL("timeout()"), self.probe_manager.watcher)
- self.connect(self.gui.pushButtonRunServer, QtCore.SIGNAL("clicked()"), self.start_fg_server)
- self.connect(self.gui.pushButtonStopServer, QtCore.SIGNAL("clicked()"), self.stop_fg_server)
- self.connect(self.gui.pushButtonRunClient, QtCore.SIGNAL("clicked()"), self.start_fg_client)
- self.connect(self.gui.pushButtonStopClient, QtCore.SIGNAL("clicked()"), self.stop_fg_client)
- self.connect(self.gui.comboBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.set_waveform)
- self.connect(self.gui.spinBox, QtCore.SIGNAL("valueChanged(int)"), self.set_gain)
- self.shortcut_start = QtGui.QShortcut(Qt.QKeySequence("Ctrl+S"), self.gui)
- self.shortcut_stop = QtGui.QShortcut(Qt.QKeySequence("Ctrl+C"), self.gui)
- self.shortcut_exit = QtGui.QShortcut(Qt.QKeySequence("Ctrl+D"), self.gui)
- self.connect(self.shortcut_exit, QtCore.SIGNAL("activated()"), self.gui.close)
+ # Signals
+ self.connect(self.update_timer, QtCore.SIGNAL(
+ "timeout()"), self.probe_manager.watcher)
+ self.connect(self.gui.pushButtonRunServer, QtCore.SIGNAL(
+ "clicked()"), self.start_fg_server)
+ self.connect(self.gui.pushButtonStopServer,
+ QtCore.SIGNAL("clicked()"), self.stop_fg_server)
+ self.connect(self.gui.pushButtonRunClient, QtCore.SIGNAL(
+ "clicked()"), self.start_fg_client)
+ self.connect(self.gui.pushButtonStopClient,
+ QtCore.SIGNAL("clicked()"), self.stop_fg_client)
+ self.connect(self.gui.comboBox, QtCore.SIGNAL(
+ "currentIndexChanged(QString)"), self.set_waveform)
+ self.connect(self.gui.spinBox, QtCore.SIGNAL(
+ "valueChanged(int)"), self.set_gain)
+ self.shortcut_start = QtGui.QShortcut(
+ Qt.QKeySequence("Ctrl+S"), self.gui)
+ self.shortcut_stop = QtGui.QShortcut(
+ Qt.QKeySequence("Ctrl+C"), self.gui)
+ self.shortcut_exit = QtGui.QShortcut(
+ Qt.QKeySequence("Ctrl+D"), self.gui)
+ self.connect(self.shortcut_exit, QtCore.SIGNAL(
+ "activated()"), self.gui.close)
# start update timer
self.update_timer.start(30)
@@ -99,7 +114,7 @@ class gui(QtGui.QMainWindow):
# plot the data from the queues
def plot_data(self, plot, samples):
- self.x = list(range(0,len(samples),1))
+ self.x = list(range(0, len(samples), 1))
self.y = samples
# clear the previous points from the plot
plot.clear()
@@ -117,24 +132,26 @@ class gui(QtGui.QMainWindow):
self.plot_data(self.gui.qwtPlotClient, samples)
def set_waveform(self, waveform_str):
- self.rpc_mgr_server.request("set_waveform",[str(waveform_str)])
+ self.rpc_mgr_server.request("set_waveform", [str(waveform_str)])
def set_gain(self, gain):
self.rpc_set_gain(gain)
def rpc_set_gain(self, gain):
- self.rpc_mgr_server.request("set_k",[gain])
+ self.rpc_mgr_server.request("set_k", [gain])
###############################################################################
# Options Parser
###############################################################################
+
+
def parse_args():
"""Options parser."""
parser = ArgumentParser()
parser.add_argument("-s", "--servername", default="localhost",
- help="Server hostname")
+ help="Server hostname")
parser.add_argument("-c", "--clientname", default="localhost",
- help="Server hostname")
+ help="Server hostname")
args = parser.parse_args()
return args
@@ -148,4 +165,3 @@ if __name__ == "__main__":
qapp.main_window = gui("Remote GNU Radio GUI", args)
qapp.main_window.show()
qapp.exec_()
-
diff --git a/gr-zeromq/examples/python/server.py b/gr-zeromq/examples/python/server.py
index 24b9484cbe..3721fba163 100644
--- a/gr-zeromq/examples/python/server.py
+++ b/gr-zeromq/examples/python/server.py
@@ -40,7 +40,8 @@ class top_block(gr.top_block):
self.samp_rate = samp_rate = 48200
# blocks
- self.gr_sig_source = analog.sig_source_f(samp_rate, analog.GR_SIN_WAVE , 1000, 1, 0)
+ self.gr_sig_source = analog.sig_source_f(
+ samp_rate, analog.GR_SIN_WAVE, 1000, 1, 0)
self.throttle = blocks.throttle(gr.sizeof_float, samp_rate)
self.mult = blocks.multiply_const_ff(1)
#self.zmq_sink = zeromq.rep_sink(gr.sizeof_float, 1, sink_adr)
@@ -51,17 +52,19 @@ class top_block(gr.top_block):
#self.null_sink = blocks.null_sink(gr.sizeof_float)
# connects
- self.connect(self.gr_sig_source, self.mult, self.throttle, self.zmq_sink)
+ self.connect(self.gr_sig_source, self.mult,
+ self.throttle, self.zmq_sink)
self.connect(self.throttle, self.zmq_probe)
# ZeroMQ
self.rpc_manager = zeromq.rpc_manager()
self.rpc_manager.set_reply_socket(rpc_adr)
- self.rpc_manager.add_interface("start_fg",self.start_fg)
- self.rpc_manager.add_interface("stop_fg",self.stop_fg)
- self.rpc_manager.add_interface("set_waveform",self.set_waveform)
- self.rpc_manager.add_interface("set_k",self.mult.set_k)
- self.rpc_manager.add_interface("get_sample_rate",self.throttle.sample_rate)
+ self.rpc_manager.add_interface("start_fg", self.start_fg)
+ self.rpc_manager.add_interface("stop_fg", self.stop_fg)
+ self.rpc_manager.add_interface("set_waveform", self.set_waveform)
+ self.rpc_manager.add_interface("set_k", self.mult.set_k)
+ self.rpc_manager.add_interface(
+ "get_sample_rate", self.throttle.sample_rate)
self.rpc_manager.start_watcher()
def start_fg(self):
@@ -77,23 +80,26 @@ class top_block(gr.top_block):
self.wait()
def set_waveform(self, waveform_str):
- waveform = {'Constant' : analog.GR_CONST_WAVE,
- 'Sine' : analog.GR_SIN_WAVE,
- 'Cosine' : analog.GR_COS_WAVE,
- 'Square' : analog.GR_SQR_WAVE,
- 'Triangle' : analog.GR_TRI_WAVE,
- 'Saw Tooth' : analog.GR_SAW_WAVE}[waveform_str]
+ waveform = {'Constant': analog.GR_CONST_WAVE,
+ 'Sine': analog.GR_SIN_WAVE,
+ 'Cosine': analog.GR_COS_WAVE,
+ 'Square': analog.GR_SQR_WAVE,
+ 'Triangle': analog.GR_TRI_WAVE,
+ 'Saw Tooth': analog.GR_SAW_WAVE}[waveform_str]
self.gr_sig_source.set_waveform(waveform)
###############################################################################
# Options Parser
###############################################################################
+
+
def parse_args():
"""Argument parser."""
parser = ArgumentParser()
args = parser.parse_args()
return args
+
###############################################################################
# Main
###############################################################################
diff --git a/gr-zeromq/python/zeromq/probe_manager.py b/gr-zeromq/python/zeromq/probe_manager.py
index 0cdc2c5458..98ee3bb8fb 100644
--- a/gr-zeromq/python/zeromq/probe_manager.py
+++ b/gr-zeromq/python/zeromq/probe_manager.py
@@ -11,6 +11,7 @@ import time
import zmq
import numpy
+
class probe_manager(object):
def __init__(self):
self.zmq_context = zmq.Context()
diff --git a/gr-zeromq/python/zeromq/rpc_manager.py b/gr-zeromq/python/zeromq/rpc_manager.py
index 389214bb41..ba7a0ac86d 100644
--- a/gr-zeromq/python/zeromq/rpc_manager.py
+++ b/gr-zeromq/python/zeromq/rpc_manager.py
@@ -58,7 +58,7 @@ class rpc_manager(object):
self.rep_socket.send(pmt.serialize_str(pmt.to_pmt(reply)))
def start_watcher(self):
- self.watcher_thread = threading.Thread(target=self.watcher,args=())
+ self.watcher_thread = threading.Thread(target=self.watcher, args=())
self.watcher_thread.daemon = True
self.watcher_thread.start()
@@ -69,7 +69,7 @@ class rpc_manager(object):
def request(self, id_str, args=None):
socks = dict(self.poller_req_out.poll(10))
if socks.get(self.req_socket) == zmq.POLLOUT:
- self.req_socket.send(pmt.serialize_str(pmt.to_pmt((id_str,args))))
+ self.req_socket.send(pmt.serialize_str(pmt.to_pmt((id_str, args))))
socks = dict(self.poller_req_in.poll(10))
if socks.get(self.req_socket) == zmq.POLLIN:
reply = pmt.to_python(pmt.deserialize_str(self.req_socket.recv()))