USB HID Device that emulates a Gamecontroller

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

USBJoystick Class Reference

USBJoystick Class Reference

USBJoystick example. More...

#include <USBJoystick.h>

Public Member Functions

 USBJoystick (uint16_t vendor_id=0x1234, uint16_t product_id=0x0100, uint16_t product_release=0x0001)
 Constructor.
bool update (int16_t t, int16_t r, int16_t x, int16_t y, uint8_t buttons, uint8_t hat)
 Write a state of the mouse.
bool update ()
 Write a state of the mouse.
bool throttle (int16_t t)
 Move the throttle position.
bool rudder (int16_t r)
 Move the rudder position.
bool move (int16_t x, int16_t y)
 Move the cursor to (x, y)
bool button (uint8_t button)
 Press one or several buttons.
bool hat (uint8_t hat)
 Press hat.

Detailed Description

USBJoystick example.

 #include "mbed.h"
 #include "USBJoystick.h"

 USBJoystick joystick;

 int main(void)
 {
   while (1)
   {
      joystick.move(20, 0);
      wait(0.5);
   }
 }
 #include "mbed.h"
 #include "USBJoystick.h"
 #include <math.h>

 USBJoystick joystick;

 int main(void)
 {
   int16_t i = 0;
   int16_t throttle = 0;
   int16_t rudder = 0;    
   int16_t x = 0;
   int16_t y = 0;
   int32_t radius = 120;
   int32_t angle = 0;
   int8_t button = 0;    
   int8_t hat = 0;    
   
   while (1) {
       // Basic Joystick
       throttle = (i >> 8) & 0xFF; // value -127 .. 128
       rudder = (i >> 8) & 0xFF;   // value -127 .. 128        
       button = (i >> 8) & 0x0F;   // value    0 .. 15, one bit per button     
        hat    = (i >> 8) & 0x07;   // value 0..7 or 8 for neutral         
       i++;        
       
       x = cos((double)angle*3.14/180.0)*radius;  // value -127 .. 128
       y = sin((double)angle*3.14/180.0)*radius;  // value -127 .. 128
       angle += 3;        

       joystick.update(throttle, rudder, x, y, button, hat);

       wait(0.001);
   }
 }

Definition at line 114 of file USBJoystick.h.


Constructor & Destructor Documentation

USBJoystick ( uint16_t  vendor_id = 0x1234,
uint16_t  product_id = 0x0100,
uint16_t  product_release = 0x0001 
)

Constructor.

Parameters:
vendor_idYour vendor_id (default: 0x1234)
product_idYour product_id (default: 0x0002)
product_releaseYour product_release (default: 0x0001)

Definition at line 124 of file USBJoystick.h.


Member Function Documentation

bool button ( uint8_t  button )

Press one or several buttons.

Parameters:
buttonbutton state
Returns:
true if there is no error, false otherwise

Definition at line 73 of file USBJoystick.cpp.

bool hat ( uint8_t  hat )

Press hat.

Parameters:
hathat state
Returns:
true if there is no error, false otherwise

Definition at line 78 of file USBJoystick.cpp.

bool move ( int16_t  x,
int16_t  y 
)

Move the cursor to (x, y)

Parameters:
x-axisposition
y-axisposition
Returns:
true if there is no error, false otherwise

Definition at line 67 of file USBJoystick.cpp.

bool rudder ( int16_t  r )

Move the rudder position.

Parameters:
rrudder position
Returns:
true if there is no error, false otherwise

Definition at line 62 of file USBJoystick.cpp.

bool throttle ( int16_t  t )

Move the throttle position.

Parameters:
tthrottle position
Returns:
true if there is no error, false otherwise

Definition at line 57 of file USBJoystick.cpp.

bool update (  )

Write a state of the mouse.

Returns:
true if there is no error, false otherwise

Definition at line 43 of file USBJoystick.cpp.

bool update ( int16_t  t,
int16_t  r,
int16_t  x,
int16_t  y,
uint8_t  buttons,
uint8_t  hat 
)

Write a state of the mouse.

Parameters:
tthrottle position
rrudder position
xx-axis position
yy-axis position
buttonsbuttons state
hathat state 0 (up), 1 (right, 2 (down), 3 (left) or 4 (neutral)
Returns:
true if there is no error, false otherwise

Definition at line 23 of file USBJoystick.cpp.