USB Host Shield 2.0
|
#include <PS3USB.h>
Public Member Functions | |
PS3USB (USB *pUsb, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0) | |
void | setBdaddr (uint8_t *BDADDR) |
void | setMoveBdaddr (uint8_t *BDADDR) |
USBDeviceConfig implementation | |
virtual uint8_t | Init (uint8_t parent, uint8_t port, bool lowspeed) |
virtual uint8_t | Release () |
virtual uint8_t | Poll () |
virtual uint8_t | GetAddress () |
virtual bool | isReady () |
PS3 Controller functions | |
bool | getButtonPress (Button b) |
bool | getButtonClick (Button b) |
uint8_t | getAnalogButton (Button a) |
uint8_t | getAnalogHat (AnalogHat a) |
uint16_t | getSensor (Sensor a) |
double | getAngle (Angle a) |
bool | getStatus (Status c) |
String | getStatusString () |
void | setAllOff () |
void | setRumbleOff () |
void | setRumbleOn (Rumble mode) |
void | setLedOff (LED a) |
void | setLedOn (LED a) |
void | setLedToggle (LED a) |
void | moveSetBulb (uint8_t r, uint8_t g, uint8_t b) |
void | moveSetBulb (Colors color) |
void | moveSetRumble (uint8_t rumble) |
Public Attributes | |
bool | PS3Connected |
bool | PS3MoveConnected |
bool | PS3NavigationConnected |
Protected Attributes | |
USB * | pUsb |
uint8_t | bAddress |
EpInfo | epInfo [PS3_MAX_ENDPOINTS] |
This class implements support for all the official PS3 Controllers: Dualshock 3, Navigation or a Motion controller via USB.
One can only set the color of the bulb, set the rumble, set and get the bluetooth address and calibrate the magnetometer via USB on the Move controller.
Information about the protocol can be found at the wiki: https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information.
PS3USB::PS3USB | ( | USB * | pUsb, |
uint8_t | btadr5 = 0 , |
||
uint8_t | btadr4 = 0 , |
||
uint8_t | btadr3 = 0 , |
||
uint8_t | btadr2 = 0 , |
||
uint8_t | btadr1 = 0 , |
||
uint8_t | btadr0 = 0 |
||
) |
Constructor for the PS3USB class.
pUsb | Pointer to USB class instance. |
btadr5,btadr4,btadr3,btadr2,btadr1,btadr0 | Pass your dongles Bluetooth address into the constructor, so you are able to pair the controller with a Bluetooth dongle. |
Definition at line 41 of file PS3USB.cpp.
|
virtual |
Initialize the PS3 Controller.
parent | Hub number. |
port | Port number on the hub. |
lowspeed | Speed of the device. |
Implements USBDeviceConfig.
Definition at line 64 of file PS3USB.cpp.
|
virtual |
Release the USB device.
Implements USBDeviceConfig.
Definition at line 269 of file PS3USB.cpp.
|
virtual |
Poll the USB Input endpoins and run the state machines.
Implements USBDeviceConfig.
Definition at line 278 of file PS3USB.cpp.
|
inlinevirtual |
|
inlinevirtual |
void PS3USB::setBdaddr | ( | uint8_t * | BDADDR | ) |
Used to set the Bluetooth address inside the Dualshock 3 and Navigation controller.
BDADDR | Your dongles Bluetooth address. |
Definition at line 471 of file PS3USB.cpp.
void PS3USB::setMoveBdaddr | ( | uint8_t * | BDADDR | ) |
Used to set the Bluetooth address inside the Move controller.
BDADDR | Your dongles Bluetooth address. |
Definition at line 528 of file PS3USB.cpp.
bool PS3USB::getButtonPress | ( | Button | b | ) |
getButtonPress(Button b) will return true as long as the button is held down.
While getButtonClick(Button b) will only return it once.
So you instance if you need to increase a variable once you would use getButtonClick(Button b), but if you need to drive a robot forward you would use getButtonPress(Button b).
Definition at line 329 of file PS3USB.cpp.
bool PS3USB::getButtonClick | ( | Button | b | ) |
getButtonPress(Button b) will return true as long as the button is held down.
While getButtonClick(Button b) will only return it once.
So you instance if you need to increase a variable once you would use getButtonClick(Button b), but if you need to drive a robot forward you would use getButtonPress(Button b).
Definition at line 332 of file PS3USB.cpp.
uint8_t PS3USB::getAnalogButton | ( | Button | a | ) |
uint8_t PS3USB::getAnalogHat | ( | AnalogHat | a | ) |
uint16_t PS3USB::getSensor | ( | Sensor | a | ) |
Used to read the sensors inside the Dualshock 3 controller.
a | The Dualshock 3 has a 3-axis accelerometer and a 1-axis gyro inside. |
Definition at line 348 of file PS3USB.cpp.
double PS3USB::getAngle | ( | Angle | a | ) |
bool PS3USB::getStatus | ( | Status | c | ) |
Get the Status from the controller.
c | The Status you want to read. |
Definition at line 378 of file PS3USB.cpp.
String PS3USB::getStatusString | ( | ) |
Read all the available Status from the controller.
Definition at line 385 of file PS3USB.cpp.
void PS3USB::setAllOff | ( | ) |
Used to set all LEDs and Rumble off.
Definition at line 424 of file PS3USB.cpp.
void PS3USB::setRumbleOff | ( | ) |
Turn off Rumble.
Definition at line 430 of file PS3USB.cpp.
void PS3USB::setRumbleOn | ( | Rumble | mode | ) |
Turn on Rumble.
mode | Either RumbleHigh or RumbleLow. |
Definition at line 438 of file PS3USB.cpp.
void PS3USB::setLedOff | ( | LED | a | ) |
Turn the specific LED off.
a | The LED to turn off. |
Definition at line 459 of file PS3USB.cpp.
void PS3USB::setLedOn | ( | LED | a | ) |
Turn the specific LED on.
a | The LED to turn on. |
Definition at line 463 of file PS3USB.cpp.
void PS3USB::setLedToggle | ( | LED | a | ) |
void PS3USB::moveSetBulb | ( | uint8_t | r, |
uint8_t | g, | ||
uint8_t | b | ||
) |
Use this to set the Color using RGB values.
r,g,b | RGB value. |
Definition at line 507 of file PS3USB.cpp.
void PS3USB::moveSetBulb | ( | Colors | color | ) |
Use this to set the color using the predefined colors in Colors.
color | The desired color. |
Definition at line 515 of file PS3USB.cpp.
void PS3USB::moveSetRumble | ( | uint8_t | rumble | ) |
Set the rumble value inside the Move controller.
rumble | The desired value in the range from 64-255. |
Definition at line 518 of file PS3USB.cpp.
bool PS3USB::PS3Connected |
bool PS3USB::PS3MoveConnected |
bool PS3USB::PS3NavigationConnected |
|
protected |