import gevent import importlib.util spec = importlib.util.spec_from_file_location("CortexRPC", "../../rpc/rpc.py") rpc_module = importlib.util.module_from_spec(spec) spec.loader.exec_module(rpc_module) CortexRPC = rpc_module.CortexRPC if __name__ == '__main__': params = {} def get_params(): print('get params.') return params def set_param(key, value): print('log param. {}: {}'.format(key, value)) params[key] = value return 'ok' def ready(self): print("Connected!") i = 0 while 1: print('{}...'.format(i)) i = i+1 gevent.sleep(1) return 'ready' def process_cmd(cmd, payload): print('process command', cmd, payload) return 'processed' # 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' 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 for f in onlyfiles: gevent.sleep(1/10) if not self.working: return output = BytesIO() im = Image.open(os.path.join(path, f)) # im = im.convert('RGB') im.save(output, format='JPEG') frame = output.getvalue() output.close() self.send_frame(f.replace('png', 'jpg'), frame) self.working = False return 'ok' """ # this will block print("Connecting to relay...") rpc = CortexRPC(get_params, set_param, ready, process_cmd)