    Params().put_bool('JoystickDebugMode', True)
    joystick_sock = messaging.pub_sock('testJoystick')
    joystick = Keyboard() if use_keyboard else Joystick()
  
    while True:
      ret = joystick.update()
      if ret:
        dat = messaging.new_message('testJoystick')
        dat.testJoystick.axes = [joystick.axes_values[a] for a in joystick.axes_values]
        dat.testJoystick.buttons = [joystick.cancel]
 
</s> remove     self.min_axis_value = 0
    self.max_axis_value = 255
 </s> add     # TODO: find a way to get this from API, perhaps "inputs" doesn't support it
    self.min_axis_value = {'ABS_Y': 0., 'ABS_RZ': 0.}
    self.max_axis_value = {'ABS_Y': 1023., 'ABS_RZ': 255.}
  last_update = 0
    Params().put_bool('JoystickDebugMode', True)
    joystick_sock = messaging.pub_sock('testJoystick')
    joystick = Keyboard() if use_keyboard else Joystick()
  
  last_update = 0
    while True:
      ret = joystick.update()
      if ret:
        dat = messaging.new_message('testJoystick')
        dat.testJoystick.axes = [joystick.axes_values[a] for a in joystick.axes_values]
        dat.testJoystick.buttons = [joystick.cancel]
keep keep keep add keep keep keep keep keep keep
 joystickd: add WEB support, add logitech joystick support 
tools/joystick/joystickd.py