#!/usr/bin/env python3 import uuid import paho.mqtt.client as mqtt from planet import Direction, Planet from communication import Mode, Communication from move import Move # DO NOT EDIT client = None def run(): # DO NOT EDIT global client # client_id has to be unique among ALL users client = mqtt.Client(client_id=str(uuid.uuid4()), clean_session=False, protocol=mqtt.MQTTv31) communication = Communication(client) move = Move() while(communication.planetname is None): communication.process_messages() while(communication.status() is not Mode.COMPLETE): while(communication.status() is Mode.GOTOSTATION or communication.status() is Mode.TARGET): # should be triggered if current station has no unexplored edges for instructions in communication.navto: for instructions in communication.navto: communication.update(None) move.turnto(instructions[1]) move.traversetonextstation(True) communication.update(move.getstationedges()) # TODO: Register in map move.turnto(communication.navto[0][1]) # TODO: add control mechanism to communication class if(communication.check(move.traversetonextstation(False)) is False): # TODO: let same control mechanism decide if station is known, also traversetonextstation needs a return value move.setcurdir(communication.getdir()) # DO NOT EDIT if __name__ == '__main__': run()