Source code for morse.middleware.sockets.depth_camera
import sys
import json
import base64
import logging; logger = logging.getLogger("morse." + __name__)
from morse.middleware.socket_datastream import SocketPublisher
[docs]class DepthCameraPublisher(SocketPublisher):
"""
Data of the DepthCamera gets JSON encoded to send via sockets
"""
_type_name = 'a JSON-Encoded message for the DepthCamera'
[docs] def encode(self):
if not self.component_instance.capturing:
return bytes() # press [Space] key to enable capturing
points = self.data['points']
if sys.version_info < (3,4):
points = bytes( points )
data = base64.b64encode( points ).decode() # get string
intrinsic = [ list(vec) for vec in self.data['intrinsic_matrix'] ]
res = {
'timestamp': self.data['timestamp'],
'height': self.component_instance.image_height,
'width': self.component_instance.image_width,
'points': data,
'intrinsic_matrix': intrinsic,
}
return (json.dumps(res) + '\n').encode()