コード例 #1
0
ファイル: joystick.py プロジェクト: kralf/rotor
name = sys.argv[1]
registry = rotorc.RemoteRegistry( name )
options  = registry.options()


registry.registerMessageType( "JOYSTICK", joystickDefinition )
frequency = options.getDouble( name, "frequency", 10 )



joystickInfo = rotorc.Structure( "Joystick", None, registry )

pygame.init()
pygame.joystick.init()
joystick = pygame.joystick.Joystick( 0 )
joystick.init()
time = rotorc.seconds()

while True:
  delta   = rotorc.seconds()
  time = delta
  pygame.event.pump()
  joystickInfo.axesCount = joystick.get_numaxes()
  for i in xrange( joystickInfo.axesCount ):
    joystickInfo.axes[i] = joystick.get_axis( i )
  joystickInfo.buttonCount = joystick.get_numbuttons()
  for i in xrange( joystickInfo.buttonCount ):
    joystickInfo.buttons[i] = joystick.get_button( i )
  registry.sendStructure( "JOYSTICK", joystickInfo )
  rotorc.Thread.sleep( 0.1 )
コード例 #2
0
ファイル: carmen_base.py プロジェクト: kralf/rotor
    uint8_t * buttons;
  };
'''

name = sys.argv[1]
options  = rotorc.BaseOptions()
options.setString( "BOOTSTRAP", "server", "localhost" )
registry = rotorc.Registry.load( "CarmenRegistry", name, options, "/usr/lib" )

registry.registerType( joystickDefinition )
registry.registerMessage( "JOYSTICK", "Joystick" )
registry.subscribeToMessage( "JOYSTICK" )

registry.registerMessageType( "carmen_base_velocity", baseVelocityDefinition )
command = rotorc.Structure( "Command", None, registry )

oldTime = 0

while True:
  message = registry.receiveMessage()
  time    = rotorc.seconds()
  joystick = message.data
  command.tv = -joystick.axes[1] * 0.4;
  command.rv = -joystick.axes[0] * 1;
  command.timestamp = rotorc.microseconds();
  command.host  = "ventisca"
  registry.sendStructure( "carmen_base_velocity", command )
  sys.stdout.write( "\r%f\t%f \t%f" % ( command.tv, command.rv, time - oldTime )  )
  sys.stdout.flush()
  oldTime = time