USB Host Shield 2.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Public Attributes | List of all members
PS3BT Class Reference

#include <PS3BT.h>

Inheritance diagram for PS3BT:
Inheritance graph
[legend]
Collaboration diagram for PS3BT:
Collaboration graph
[legend]

Public Member Functions

 PS3BT (BTD *pBtd, uint8_t btadr5=0, uint8_t btadr4=0, uint8_t btadr3=0, uint8_t btadr2=0, uint8_t btadr1=0, uint8_t btadr0=0)
 
BluetoothService implementation
virtual void ACLData (uint8_t *ACLData)
 
virtual void Run ()
 
virtual void Reset ()
 
virtual void disconnect ()
 
PS3 Controller functions
bool getButtonPress (ButtonEnum b)
 
bool getButtonClick (ButtonEnum b)
 
uint8_t getAnalogButton (ButtonEnum a)
 
uint8_t getAnalogHat (AnalogHatEnum a)
 
int16_t getSensor (SensorEnum a)
 
double getAngle (AngleEnum a)
 
double get9DOFValues (SensorEnum a)
 
bool getStatus (StatusEnum c)
 
void printStatusString ()
 
String getTemperature ()
 
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 Attributes

bool PS3Connected
 
bool PS3MoveConnected
 
bool PS3NavigationConnected
 

Detailed Description

This BluetoothService class implements support for all the official PS3 Controllers: Dualshock 3, Navigation or a Motion controller via Bluetooth.

Information about the protocol can be found at the wiki: https://github.com/felis/USB_Host_Shield_2.0/wiki/PS3-Information.

Definition at line 32 of file PS3BT.h.

Constructor & Destructor Documentation

PS3BT::PS3BT ( BTD pBtd,
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 PS3BT class.

Parameters
pBtdPointer to BTD class instance.
btadr5,btadr4,btadr3,btadr2,btadr1,btadr0Pass your dongles Bluetooth address into the constructor, This will set BTD::my_bdaddr, so you don't have to plug in the dongle before pairing with your controller.

Definition at line 23 of file PS3BT.cpp.

Member Function Documentation

void PS3BT::ACLData ( uint8_t *  ACLData)
virtual

Used to pass acldata to the services.

Parameters
ACLDataIncoming acldata.

Reimplemented from BluetoothService.

Definition at line 227 of file PS3BT.cpp.

void PS3BT::Run ( )
virtual

Used to run part of the state machine.

Reimplemented from BluetoothService.

Definition at line 456 of file PS3BT.cpp.

void PS3BT::Reset ( )
virtual

Use this to reset the service.

Reimplemented from BluetoothService.

Definition at line 207 of file PS3BT.cpp.

void PS3BT::disconnect ( )
virtual

Used this to disconnect any of the controllers.

Reimplemented from BluetoothService.

Definition at line 220 of file PS3BT.cpp.

bool PS3BT::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).

Parameters
bButtonEnum to read.
Returns
getButtonPress(ButtonEnum b) will return a true as long as a button is held down, while getButtonClick(ButtonEnum b) will return true once for each button press.

Definition at line 52 of file PS3BT.cpp.

bool PS3BT::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).

Parameters
bButtonEnum to read.
Returns
getButtonPress(ButtonEnum b) will return a true as long as a button is held down, while getButtonClick(ButtonEnum b) will return true once for each button press.

Definition at line 56 of file PS3BT.cpp.

uint8_t PS3BT::getAnalogButton ( ButtonEnum  a)

Used to get the analog value from button presses.

Parameters
aThe ButtonEnum to read. The supported buttons are: UP, RIGHT, DOWN, LEFT, L1, L2, R1, R2, TRIANGLE, CIRCLE, CROSS, SQUARE, and T.
Returns
Analog value in the range of 0-255.

Definition at line 63 of file PS3BT.cpp.

uint8_t PS3BT::getAnalogHat ( AnalogHatEnum  a)

Used to read the analog joystick.

Parameters
aLeftHatX, LeftHatY, RightHatX, and RightHatY.
Returns
Return the analog value in the range of 0-255.

Definition at line 67 of file PS3BT.cpp.

int16_t PS3BT::getSensor ( SensorEnum  a)

Used to read the sensors inside the Dualshock 3 and Move controller.

Parameters
aThe Dualshock 3 has a 3-axis accelerometer and a 1-axis gyro inside. The Move controller has a 3-axis accelerometer, a 3-axis gyro, a 3-axis magnetometer and a temperature sensor inside.
Returns
Return the raw sensor value.

Definition at line 71 of file PS3BT.cpp.

double PS3BT::getAngle ( AngleEnum  a)

Use this to get Pitch and Roll calculated using the accelerometer.

Parameters
aEither Pitch or Roll.
Returns
Return the angle in the range of 0-360.

Definition at line 88 of file PS3BT.cpp.

double PS3BT::get9DOFValues ( SensorEnum  a)

Read the sensors inside the Move controller.

Parameters
aaXmove, aYmove, aZmove, gXmove, gYmove, gZmove, mXmove, mYmove, and mXmove.
Returns
The value in SI units.

Definition at line 115 of file PS3BT.cpp.

bool PS3BT::getStatus ( StatusEnum  c)

Get the status from the controller.

Parameters
cThe StatusEnum you want to read.
Returns
True if correct and false if not.

Definition at line 159 of file PS3BT.cpp.

void PS3BT::printStatusString ( )

Read all the available statuses from the controller and prints it as a nice formated string.

Definition at line 163 of file PS3BT.cpp.

String PS3BT::getTemperature ( )

Read the temperature from the Move controller.

Returns
The temperature in degrees Celsius.

Definition at line 144 of file PS3BT.cpp.

void PS3BT::setAllOff ( )

Used to set all LEDs and rumble off.

Definition at line 521 of file PS3BT.cpp.

void PS3BT::setRumbleOff ( )

Turn off rumble.

Definition at line 532 of file PS3BT.cpp.

void PS3BT::setRumbleOn ( RumbleEnum  mode)

Turn on rumble.

Parameters
modeEither RumbleHigh or RumbleLow.

Definition at line 541 of file PS3BT.cpp.

void PS3BT::setRumbleOn ( uint8_t  rightDuration,
uint8_t  rightPower,
uint8_t  leftDuration,
uint8_t  leftPower 
)

Turn on rumble using custom duration and power.

Parameters
rightDurationThe duration of the right/low rumble effect.
rightPowerThe intensity of the right/low rumble effect.
leftDurationThe duration of the left/high rumble effect.
leftPowerThe intensity of the left/high rumble effect.

Definition at line 550 of file PS3BT.cpp.

void PS3BT::setLedRaw ( uint8_t  value)

Set LED value without using LEDEnum.

Parameters
valueSee: LEDEnum.

Definition at line 558 of file PS3BT.cpp.

void PS3BT::setLedOff ( )
inline

Turn all LEDs off.

Definition at line 147 of file PS3BT.h.

void PS3BT::setLedOff ( LEDEnum  a)

Turn the specific LED off.

Parameters
aThe LEDEnum to turn off.

Definition at line 563 of file PS3BT.cpp.

void PS3BT::setLedOn ( LEDEnum  a)

Turn the specific LED on.

Parameters
aThe LEDEnum to turn on.

Definition at line 568 of file PS3BT.cpp.

void PS3BT::setLedToggle ( LEDEnum  a)

Toggle the specific LED.

Parameters
aThe LEDEnum to toggle.

Definition at line 577 of file PS3BT.cpp.

void PS3BT::moveSetBulb ( uint8_t  r,
uint8_t  g,
uint8_t  b 
)

Use this to set the Color using RGB values.

Parameters
r,g,bRGB value.

Definition at line 603 of file PS3BT.cpp.

void PS3BT::moveSetBulb ( ColorsEnum  color)

Use this to set the color using the predefined colors in ColorsEnum.

Parameters
colorThe desired color.

Definition at line 612 of file PS3BT.cpp.

void PS3BT::moveSetRumble ( uint8_t  rumble)

Set the rumble value inside the Move controller.

Parameters
rumbleThe desired value in the range from 64-255.

Definition at line 616 of file PS3BT.cpp.

void PS3BT::attachOnInit ( void(*)(void)  funcOnInit)
inline

Used to call your own function when the controller is successfully initialized.

Parameters
funcOnInitFunction to call.

Definition at line 186 of file PS3BT.h.

Member Data Documentation

bool PS3BT::PS3Connected

Variable used to indicate if the normal Playstation controller is successfully connected.

Definition at line 188 of file PS3BT.h.

bool PS3BT::PS3MoveConnected

Variable used to indicate if the Move controller is successfully connected.

Definition at line 194 of file PS3BT.h.

bool PS3BT::PS3NavigationConnected

Variable used to indicate if the Navigation controller is successfully connected.

Definition at line 196 of file PS3BT.h.


The documentation for this class was generated from the following files: