Skip to content
Snippets Groups Projects
Select Git revision
  • 5f568385e18a96ffc8def5cb9c4e1bee22fde09b
  • master default protected
  • development
3 results

Dockerfile

Blame
  • steering_wheel.py 1.63 KiB
    """ Steering wheel """
    
    import pygame
    
    DIRECTION=0
    SPEED=1
    BREAKS=2
    INPUTS=3
    
    OFFSET = 2.0
    
    class ManualSteeringWheel:
        """ Steering wheel """
        axis_count = 0
        joystick = None
        direction = 0
        speed = 0
        breaks = 0
    
        def __init__(self):
            pygame.init()
            self.joystick = pygame.joystick.Joystick(0)
            self.joystick.init()
            self.axis_count = self.joystick.get_numaxes()
    
        def get_direction(self, update=True):
            """ Update and return direction. """
            if update:
                pygame.event.get()
            self.direction = self.joystick.get_axis(DIRECTION)
            return self.direction
        
        def get_speed(self, update=True):
            """ Update and return speed."""
            if update:
                pygame.event.get()
            self.speed = (OFFSET - (self.joystick.get_axis(SPEED) + 1.0)) / OFFSET
            return self.speed
    
        def get_breaks(self, update=True):
            """ Update and return breaks. """
            if update:
                pygame.event.get()
            self.breaks = (OFFSET - (self.joystick.get_axis(BREAKS) + 1.0)) / OFFSET
            return self.breaks
    
        def on_update(self):
            """ Poll for pygame events. """
            pygame.event.get()
            self.get_direction(update=False)
            self.get_speed(update=False)
            self.get_breaks(update=False)
    
    if __name__ == '__main__':
        clock = pygame.time.Clock()
        sw = ManualSteeringWheel()
    
        while True:
            # Receive all occured events
            print("")
            print("Direction: " + str(sw.get_direction()))
            print("Speed:     " + str(sw.get_speed()))
            print("Breaks:    " + str(sw.get_breaks()))
            clock.tick(2)