From 0e84a98abe100d6963deccd0bd78fbe975257072 Mon Sep 17 00:00:00 2001 From: Pavel Lutskov Date: Sun, 24 Jun 2018 12:33:30 +0200 Subject: [PATCH] Tried to fix 'Cannot capture' --- pykick/imagereaders.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pykick/imagereaders.py b/pykick/imagereaders.py index 9d01880..f907e89 100644 --- a/pykick/imagereaders.py +++ b/pykick/imagereaders.py @@ -18,8 +18,10 @@ class NaoImageReader(object): def __init__(self, ip, port=9559, res=1, fps=30, cam_id=0): ip = bytes(ip) + self.res_id = res self.res = self.RESOLUTIONS[res] self.cam_id=cam_id + self.fps = fps self.vd = ALProxy('ALVideoDevice', ip, port) streamer_name = '_'.join(['lower' if cam_id else 'upper', str(res)]) self.sub = self.vd.subscribeCamera( @@ -39,7 +41,8 @@ class NaoImageReader(object): result = self.vd.getImageRemote(self.sub) self.vd.releaseImage(self.sub) if result is None or result[6] is None: - raise RuntimeError("Couldn't capture") + self.restart() + raise RuntimeError(self.sub + " couldn't capture") else: height, width = self.res return np.frombuffer(result[6], dtype=np.uint8).reshape( @@ -49,6 +52,12 @@ class NaoImageReader(object): def close(self): self.vd.unsubscribe(self.sub) + def restart(self): + self.close() + self.sub = self.vd.subscribeCamera( + self.sub, self.cam_id, self.res_id, 13, self.fps + ) + class VideoReader(object):