summaryrefslogtreecommitdiff
path: root/rpc
diff options
context:
space:
mode:
Diffstat (limited to 'rpc')
-rw-r--r--rpc/__main__.py9
-rw-r--r--rpc/relay.py14
-rw-r--r--rpc/rpc.py59
3 files changed, 48 insertions, 34 deletions
diff --git a/rpc/__main__.py b/rpc/__main__.py
index 894f748..80588f2 100644
--- a/rpc/__main__.py
+++ b/rpc/__main__.py
@@ -1,8 +1,11 @@
from rpc import CortexRPC
if __name__ == '__main__':
- def log_param(key, value):
- print("log param. {}: {}".format(key, value))
+ def get_params(key, value):
+ print('get params.')
+ return 'test'
+ def set_param(key, value):
+ print('log param. {}: {}'.format(key, value))
# this will block
- rpc = CortexRPC(log_param)
+ rpc = CortexRPC(get_params, set_param)
diff --git a/rpc/relay.py b/rpc/relay.py
index 9e56001..57670d5 100644
--- a/rpc/relay.py
+++ b/rpc/relay.py
@@ -7,19 +7,19 @@ load_dotenv(find_dotenv())
class RelayRPC(object):
def start(self):
- print("Relay running on port {}".format(os.getenv('RELAY_PORT')))
+ print('Relay running on port {}'.format(os.getenv('RELAY_PORT')))
def connected(self, msg):
- print("got connect, trying to call back.")
- print("Connecting to RPC on port {}".format(os.getenv('RPC_PORT')))
+ print('got connect, trying to call back.')
+ print('Connecting to RPC on port {}'.format(os.getenv('RPC_PORT')))
client = zerorpc.Client()
- client.connect("tcp://127.0.0.1:" + os.getenv('RPC_PORT'))
- client.send_param("key", "value")
+ client.connect('tcp://127.0.0.1:' + os.getenv('RPC_PORT'))
+ client.send_param('key', 'value')
def send_frame(self, frame):
- print("got frame: {} bytes".format(len(frame)))
+ print('got frame: {} bytes'.format(len(frame)))
rpc = RelayRPC()
server = zerorpc.Server(rpc)
-server.bind("tcp://127.0.0.1:" + os.getenv('RELAY_PORT'))
+server.bind('tcp://127.0.0.1:' + os.getenv('RELAY_PORT'))
server.run()
diff --git a/rpc/rpc.py b/rpc/rpc.py
index 3239c44..27ec6b1 100644
--- a/rpc/rpc.py
+++ b/rpc/rpc.py
@@ -10,39 +10,41 @@ from PIL import Image
load_dotenv(find_dotenv())
class CortexRPC(object):
- def __init__(self, fn):
+ def __init__(self):
super().__init__()
- self._listener = fn
+ self._get_fn = get_fn
+ self._set_fn = set_fn
self.working = False
self.connect()
def connect(self):
- print("Connecting to RPC on port {}".format(os.getenv('RPC_PORT')))
+ print('Connecting to RPC on port {}'.format(os.getenv('RPC_PORT')))
self.rpc = zerorpc.Server(self)
- self.rpc.bind("tcp://127.0.0.1:" + os.getenv('RPC_PORT'))
+ self.rpc.bind('tcp://127.0.0.1:' + os.getenv('RPC_PORT'))
gevent.spawn(self.connected)
self.rpc.run()
def connected(self):
- print("RPC running on port {}".format(os.getenv('RPC_PORT')))
- print("Connecting to Relay on port {}".format(os.getenv('RELAY_PORT')))
+ print('RPC running on port {}'.format(os.getenv('RPC_PORT')))
+ print('Connecting to Relay on port {}'.format(os.getenv('RELAY_PORT')))
self.relay = zerorpc.Client()
- self.relay.connect("tcp://127.0.0.1:" + os.getenv('RELAY_PORT'))
+ self.relay.connect('tcp://127.0.0.1:' + os.getenv('RELAY_PORT'))
val = None
try:
- val = self.relay.connected("rpc")
- print("RPC connected...".format(val))
+ val = self.relay.connected('rpc')
+ print('RPC connected...'.format(val))
except zerorpc.TimeoutExpired:
- print("RPC timeout :(")
+ print('RPC timeout :(')
return val
- # print("defer sending a file...")
+ # print('defer sending a file...')
# gevent.sleep(1)
# return self.get_last_frame()
+ """
def get_last_frame(self):
if self.working:
self.working = False
- return "working"
+ return 'working'
path = os.getenv('TEST_FRAMES_PATH')
onlyfiles = sorted([f for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))])
self.working = True
@@ -54,36 +56,45 @@ class CortexRPC(object):
output = BytesIO()
im = Image.open(os.path.join(path, f))
# im = im.convert('RGB')
- im.save(output, format="JPEG")
+ im.save(output, format='JPEG')
frame = output.getvalue()
output.close()
self.send_frame(f.replace('png', 'jpg'), frame)
self.working = False
- return "ok"
+ return 'ok'
+ """
def send_param(self, key, value):
- print("aloha. {}: {}".format(key, value))
- if self._listener is not None:
- self._listener(key, value)
+ print('aloha. {}: {}'.format(key, value))
+ if self._set_fn is not None:
+ self._set_fn(key, value)
else:
- print("No listener provided to CortexRPC")
- return "ok"
+ print('No listener provided to CortexRPC')
+ return 'ok'
def get_params(self):
- print("Get params call received!")
- return "lmao ok"
+ print('Get params call received!')
+ return self._get_fn()
+
+ def send_pil_image(self, fn, im):
+ output = BytesIO()
+ # im = im.convert('RGB')
+ im.save(output, format='JPEG')
+ frame = output.getvalue()
+ output.close()
+ self.send_frame(f.replace('png', 'jpg'), frame)
def send_frame(self, fn, frame):
if self.relay is not None:
- # print("Send frame " + fn)
+ # print('Send frame ' + fn)
self.relay.send_frame(fn, frame)
else:
- print("Can't send frame, relay not ready...")
+ print('Can\'t send frame, relay not ready...')
if __name__ == '__main__':
def log_param(key, value):
- print("Log param. {}: {}".format(key, value))
+ print('Log param. {}: {}'.format(key, value))
# this will block
rpc = CortexRPC(log_param)