Ejemplo n.º 1
0
class ClientInterface(object):
    def __init__(self, host, port):
        self.camera_pos = (0.0, 0.0)
        self.wheel_speed = (0.0, 0.0)
        self.headlights = False

        self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
        self.socket.connect((host, port))

        self.cs = ControlSocket(self.socket)

        self.oldcontrol = {}

    def __del__(self):
        self.socket.close()

    def setCameraPos(self, x, y):
        self.camera_pos = (x, y)
    
    def getCameraPos(self):
        return self.camera_pos

    def setWheelSpeed(self, l, r):
        self.wheel_speed = (l, r)

    def getWheelSpeed(self):
        return self.wheel_speed

    def setHeadlights(self, h):
        self.headlights = h

    def getHeadlights(self):
        return self.headlights

    def updateControl(self):
        newcontrol = {"left_motor" : self.wheel_speed[0], "right_motor" : self.wheel_speed[1]}

        if self.oldcontrol != newcontrol:
            self.cs.transmitControl(newcontrol)
            self.oldcontrol = newcontrol
Ejemplo n.º 2
0
sendcounter = 0

while (1):
    pygame.event.pump()

    pkeys = pygame.key.get_pressed()
    up, down, left, right, quit = [
        (1.0 if pkeys[x] else 0.0)
        for x in [pygame.K_w, pygame.K_s, pygame.K_a, pygame.K_d, pygame.K_q]
    ]

    if quit > 0.5:
        break

    left_motor = clamp(up + right - left - down, -1, 1) / 2 + 0.5
    right_motor = clamp(up + left - right - down, -1, 1) / 2 + 0.5

    sendcounter += 1

    if sendcounter > 5:
        cs.transmitControl({
            "left_motor": left_motor,
            "right_motor": right_motor
        })
        sendcounter = 0

clientsocket.close()
pygame.quit()
exit(0)