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 | getBdaddr (uint8_t *bdaddr) |
void | setMoveBdaddr (uint8_t *bdaddr) |
void | getMoveBdaddr (uint8_t *bdaddr) |
void | getMoveCalibration (uint8_t *data) |
USBDeviceConfig implementation | |
uint8_t | Init (uint8_t parent, uint8_t port, bool lowspeed) |
uint8_t | Release () |
uint8_t | Poll () |
virtual uint8_t | GetAddress () |
virtual bool | isReady () |
virtual bool | VIDPIDOK (uint16_t vid, uint16_t pid) |
PS3 Controller functions | |
bool | getButtonPress (ButtonEnum b) |
bool | getButtonClick (ButtonEnum b) |
uint8_t | getAnalogButton (ButtonEnum a) |
uint8_t | getAnalogHat (AnalogHatEnum a) |
uint16_t | getSensor (SensorEnum a) |
float | getAngle (AngleEnum a) |
bool | getStatus (StatusEnum c) |
void | printStatusString () |
void | setAllOff () |
void | setRumbleOff () |
void | setRumbleOn (RumbleEnum mode) |
void | setRumbleOn (uint8_t rightDuration, uint8_t rightPower, uint8_t leftDuration, uint8_t leftPower) |
void | setLedRaw (uint8_t value) |
void | setLedOff () |
void | setLedOff (LEDEnum a) |
void | setLedOn (LEDEnum a) |
void | setLedToggle (LEDEnum a) |
void | moveSetBulb (uint8_t r, uint8_t g, uint8_t b) |
void | moveSetBulb (ColorsEnum color) |
void | moveSetRumble (uint8_t rumble) |
void | attachOnInit (void(*funcOnInit)(void)) |
Public Member Functions inherited from USBDeviceConfig | |
virtual uint8_t | ConfigureDevice (uint8_t parent, uint8_t port, bool lowspeed) |
virtual void | ResetHubPort (uint8_t port) |
virtual bool | DEVCLASSOK (uint8_t klass) |
virtual bool | DEVSUBCLASSOK (uint8_t subklass) |
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 23 of file PS3USB.cpp.
|
virtual |
Initialize the PS3 Controller.
parent | Hub number. |
port | Port number on the hub. |
lowspeed | Speed of the device. |
Reimplemented from USBDeviceConfig.
Definition at line 47 of file PS3USB.cpp.
|
virtual |
Release the USB device.
Reimplemented from USBDeviceConfig.
Definition at line 262 of file PS3USB.cpp.
|
virtual |
Poll the USB Input endpoins and run the state machines.
Reimplemented from USBDeviceConfig.
Definition at line 272 of file PS3USB.cpp.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Used by the USB core to check what this driver support.
vid | The device's VID. |
pid | The device's PID. |
Reimplemented from USBDeviceConfig.
void PS3USB::setBdaddr | ( | uint8_t * | bdaddr | ) |
Used to set the Bluetooth address inside the Dualshock 3 and Navigation controller. Set using LSB first.
bdaddr | Your dongles Bluetooth address. |
Definition at line 468 of file PS3USB.cpp.
void PS3USB::getBdaddr | ( | uint8_t * | bdaddr | ) |
Used to get the Bluetooth address inside the Dualshock 3 and Navigation controller. Will return LSB first.
bdaddr | Your dongles Bluetooth address. |
Definition at line 481 of file PS3USB.cpp.
void PS3USB::setMoveBdaddr | ( | uint8_t * | bdaddr | ) |
Used to set the Bluetooth address inside the Move controller. Set using LSB first.
bdaddr | Your dongles Bluetooth address. |
Definition at line 530 of file PS3USB.cpp.
void PS3USB::getMoveBdaddr | ( | uint8_t * | bdaddr | ) |
Used to get the Bluetooth address inside the Move controller. Will return LSB first.
bdaddr | Your dongles Bluetooth address. |
Definition at line 546 of file PS3USB.cpp.
void PS3USB::getMoveCalibration | ( | uint8_t * | data | ) |
Used to get the calibration data inside the Move controller.
data | Buffer to store data in. Must be at least 147 bytes |
Definition at line 556 of file PS3USB.cpp.
bool PS3USB::getButtonPress | ( | ButtonEnum | b | ) |
getButtonPress(ButtonEnum b) will return true as long as the button is held down.
While getButtonClick(ButtonEnum b) will only return it once.
So you instance if you need to increase a variable once you would use getButtonClick(ButtonEnum b), but if you need to drive a robot forward you would use getButtonPress(ButtonEnum b).
b | ButtonEnum to read. |
Definition at line 316 of file PS3USB.cpp.
bool PS3USB::getButtonClick | ( | ButtonEnum | b | ) |
getButtonPress(ButtonEnum b) will return true as long as the button is held down.
While getButtonClick(ButtonEnum b) will only return it once.
So you instance if you need to increase a variable once you would use getButtonClick(ButtonEnum b), but if you need to drive a robot forward you would use getButtonPress(ButtonEnum b).
b | ButtonEnum to read. |
Definition at line 321 of file PS3USB.cpp.
uint8_t PS3USB::getAnalogButton | ( | ButtonEnum | a | ) |
uint8_t PS3USB::getAnalogHat | ( | AnalogHatEnum | a | ) |
uint16_t PS3USB::getSensor | ( | SensorEnum | 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 338 of file PS3USB.cpp.
float PS3USB::getAngle | ( | AngleEnum | a | ) |
bool PS3USB::getStatus | ( | StatusEnum | c | ) |
Get the StatusEnum from the controller.
c | The StatusEnum you want to read. |
Definition at line 363 of file PS3USB.cpp.
void PS3USB::printStatusString | ( | ) |
Read all the available statuses from the controller and prints it as a nice formated string.
Definition at line 367 of file PS3USB.cpp.
void PS3USB::setAllOff | ( | ) |
Used to set all LEDs and rumble off.
Definition at line 406 of file PS3USB.cpp.
void PS3USB::setRumbleOff | ( | ) |
Turn off rumble.
Definition at line 413 of file PS3USB.cpp.
void PS3USB::setRumbleOn | ( | RumbleEnum | mode | ) |
Turn on rumble.
mode | Either RumbleHigh or RumbleLow. |
Definition at line 423 of file PS3USB.cpp.
void PS3USB::setRumbleOn | ( | uint8_t | rightDuration, |
uint8_t | rightPower, | ||
uint8_t | leftDuration, | ||
uint8_t | leftPower | ||
) |
Turn on rumble using custom duration and power.
rightDuration | The duration of the right/low rumble effect. |
rightPower | The intensity of the right/low rumble effect. |
leftDuration | The duration of the left/high rumble effect. |
leftPower | The intensity of the left/high rumble effect. |
Definition at line 434 of file PS3USB.cpp.
void PS3USB::setLedRaw | ( | uint8_t | value | ) |
Set LED value without using the LEDEnum.
value | See: LEDEnum. |
Definition at line 444 of file PS3USB.cpp.
void PS3USB::setLedOff | ( | LEDEnum | a | ) |
Turn the specific LEDEnum off.
a | The LEDEnum to turn off. |
Definition at line 449 of file PS3USB.cpp.
void PS3USB::setLedOn | ( | LEDEnum | a | ) |
Turn the specific LEDEnum on.
a | The LEDEnum to turn on. |
Definition at line 454 of file PS3USB.cpp.
void PS3USB::setLedToggle | ( | LEDEnum | a | ) |
Toggle the specific LEDEnum.
a | The LEDEnum to toggle. |
Definition at line 463 of file PS3USB.cpp.
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 | ( | ColorsEnum | color | ) |
Use this to set the color using the predefined colors in ColorsEnum.
color | The desired color. |
Definition at line 516 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 520 of file PS3USB.cpp.
|
inline |
bool PS3USB::PS3Connected |
bool PS3USB::PS3MoveConnected |
bool PS3USB::PS3NavigationConnected |
|
protected |