Source code for vision.visionslave

import json
import redis
from vision.visionconstants import COMMAND_QUEUE_KEY, LOCATION_KEY


[docs]class VisionSlave: """ Used on jetson, inside vision loop check for new commands and always post location for last thing requested """ def __init__(self, host, port): """ establish connection :param host: redis host :param port: redis port """ self.host = host self.port = port self.r = redis.Redis(host, port)
[docs] def pop_command(self): """ check for a command on the queue, returns None if empty queue """ try: serial_json = self.r.rpop(COMMAND_QUEUE_KEY).decode() return json.loads(serial_json) except AttributeError: return None
[docs] def update_location(self, azimuth, altitude): """ send back the degrees relative to camera + or - from 0 degrees :param azimuth: :param altitude: :return: """ location = {'azimuth': azimuth, 'altitude': altitude} serial_json = json.dumps(location) return self.r.set(LOCATION_KEY, serial_json)