Skip to content

Commit

Permalink
Fix #63 (#65)
Browse files Browse the repository at this point in the history
* Update ws cam so it uses both camera.
* Update _version.py to 1.3.1
  • Loading branch information
pierre-rouanet committed Nov 12, 2020
1 parent a020bc3 commit 9e079bf
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 19 deletions.
2 changes: 1 addition & 1 deletion software/reachy/_version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
"""Version module."""
__version__ = '1.3.0'
__version__ = '1.3.1'
29 changes: 11 additions & 18 deletions software/reachy/io/ws.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,11 @@ def find_orbita_disks(self):

return disks

def find_dual_camera(self, default_camera):
def find_camera(self, index):
"""Retrieve a dual camera."""
cam = WsDualCamera(default_camera)
self.ws.cam = cam
side = 'left' if index == 0 else 'right'
cam = WsDualCamera(side=side)
setattr(self.ws, f'{side}_camera', cam)
return cam

def close(self):
Expand Down Expand Up @@ -161,20 +162,10 @@ def __init__(self):
class WsDualCamera(object):
"""Remote Camera."""

def __init__(self, default_camera):
def __init__(self, side):
"""Set remote camera up."""
self.set_active(default_camera)
self.frame = np.zeros((300, 480, 3), dtype=np.uint8)

@property
def active_side(self):
"""Get the active camera side."""
return self._camera_side

def set_active(self, camera_side):
"""Set one of the camera active (left or right)."""
self._camera_side = camera_side

def read(self):
"""Get latest received frame."""
return True, self.frame
Expand Down Expand Up @@ -218,11 +209,13 @@ async def sync(self, websocket, path):
resp = await websocket.recv()
state = json.loads(resp)

if hasattr(self, 'cam'):
eye = f'{self.cam.active_side}_eye'
if eye in state:
for side in ('left', 'right'):
eye = f'{side}_eye'

if eye in state and hasattr(self, f'{side}_camera'):
jpeg_data = b64decode(state[eye])
self.cam.frame = np.array(Image.open(BytesIO(jpeg_data)))
frame = np.array(Image.open(BytesIO(jpeg_data)))
getattr(self, f'{side}_camera').frame = frame

for m in state['motors']:
if m['name'] in self.motors:
Expand Down

0 comments on commit 9e079bf

Please sign in to comment.