Ejemplo n.º 1
0
class Robot(object):
    def __init__(self, ipAddress):
        self.sq = Queue()
        self.rq = Queue()
        self.struct = Struct('BBbB')  #command, selector, value, checksum
        self.sender = TCP(isServer=False,
                          isSender=True,
                          host=ipAddress,
                          port=1234,
                          q=self.sq)
        self.receiver = TCP(isServer=False,
                            isSender=False,
                            host=ipAddress,
                            port=5678,
                            q=self.rq)

    def motor(self, device, value):
        self.send(1, device, value)

    def send(self, command, device, value):
        self.sq.put(self.struct.pack(command, device, value))

    def connect(self):
        self.sender.start()
        self.receiver.start()

    def listen(self):
        pass

    def disconnect(self):
        while not self.sq.empty():
            sleep(0.01)
        self.sender.running = False
        self.receiver.running = False
        self.sender.disconnect()
        self.receiver.disconnect()
        self.sender.join()
        self.receiver.join()