mirror of
https://github.com/felis/USB_Host_Shield_2.0.git
synced 2024-03-22 11:31:26 +01:00
Several minor adjustments
This commit is contained in:
parent
b66a8f214c
commit
d638d726e2
5 changed files with 255 additions and 255 deletions
73
PS3BT.cpp
73
PS3BT.cpp
|
@ -369,6 +369,9 @@ void PS3BT::PrintEndpointDescriptor( const USB_ENDPOINT_DESCRIPTOR* ep_ptr )
|
|||
/* Performs a cleanup after failed Init() attempt */
|
||||
uint8_t PS3BT::Release()
|
||||
{
|
||||
PS3Connected = false;
|
||||
PS3MoveConnected = false;
|
||||
PS3NavigationConnected = false;
|
||||
pUsb->GetAddressPool().FreeAddress(bAddress);
|
||||
bAddress = 0;
|
||||
bPollEnable = false;
|
||||
|
@ -486,13 +489,13 @@ double PS3BT::getAngle(Angle a) {
|
|||
double accYval;
|
||||
double accZval;
|
||||
|
||||
if(PS3BTConnected) {
|
||||
if(PS3Connected) {
|
||||
// Data for the Kionix KXPC4 used in the DualShock 3
|
||||
const double zeroG = 511.5; // 1.65/3.3*1023 (1,65V)
|
||||
accXval = -((double)getSensor(aX)-zeroG);
|
||||
accYval = -((double)getSensor(aY)-zeroG);
|
||||
accZval = -((double)getSensor(aZ)-zeroG);
|
||||
} else if(PS3MoveBTConnected) {
|
||||
} else if(PS3MoveConnected) {
|
||||
// It's a Kionix KXSC4 inside the Motion controller
|
||||
const uint16_t zeroG = 0x8000;
|
||||
accXval = getSensor(aXmove);
|
||||
|
@ -534,7 +537,7 @@ bool PS3BT::getStatus(Status c)
|
|||
}
|
||||
String PS3BT::getStatusString()
|
||||
{
|
||||
if (PS3BTConnected || PS3NavigationBTConnected)
|
||||
if (PS3Connected || PS3NavigationConnected)
|
||||
{
|
||||
char statusOutput[100];
|
||||
|
||||
|
@ -566,7 +569,7 @@ String PS3BT::getStatusString()
|
|||
return statusOutput;
|
||||
|
||||
}
|
||||
else if(PS3MoveBTConnected)
|
||||
else if(PS3MoveConnected)
|
||||
{
|
||||
char statusOutput[50];
|
||||
|
||||
|
@ -586,12 +589,12 @@ String PS3BT::getStatusString()
|
|||
}
|
||||
void PS3BT::disconnect()//Use this void to disconnect any of the controllers
|
||||
{
|
||||
if (PS3BTConnected)
|
||||
PS3BTConnected = false;
|
||||
else if (PS3MoveBTConnected)
|
||||
PS3MoveBTConnected = false;
|
||||
else if (PS3NavigationBTConnected)
|
||||
PS3NavigationBTConnected = false;
|
||||
if (PS3Connected)
|
||||
PS3Connected = false;
|
||||
else if (PS3MoveConnected)
|
||||
PS3MoveConnected = false;
|
||||
else if (PS3NavigationConnected)
|
||||
PS3NavigationConnected = false;
|
||||
|
||||
//First the HID interrupt channel has to be disconencted, then the HID control channel and finally the HCI connection
|
||||
l2cap_disconnection_request(0x0A, interrupt_dcid, interrupt_scid);
|
||||
|
@ -1030,7 +1033,7 @@ void PS3BT::ACL_event_task()
|
|||
else if (l2capinbuf[6] == interrupt_dcid[0] && l2capinbuf[7] == interrupt_dcid[1])//l2cap_interrupt
|
||||
{
|
||||
//Serial.print("\r\nL2CAP Interrupt");
|
||||
if(PS3BTConnected || PS3MoveBTConnected || PS3NavigationBTConnected)
|
||||
if(PS3Connected || PS3MoveConnected || PS3NavigationConnected)
|
||||
{
|
||||
readReport();
|
||||
#ifdef PRINTREPORT
|
||||
|
@ -1155,30 +1158,29 @@ void PS3BT::L2CAP_task()
|
|||
#ifdef DEBUG
|
||||
Notify(PSTR("\r\nDualshock 3 Controller Enabled\r\n"));
|
||||
#endif
|
||||
PS3BTConnected = true;
|
||||
PS3Connected = true;
|
||||
} else if (remote_name[0] == 'N') { // First letter in Navigation Controller ('N')
|
||||
setLedOn(LED1); // This just turns LED constantly on, on the Navigation controller
|
||||
#ifdef DEBUG
|
||||
Notify(PSTR("\r\nNavigation Controller Enabled\r\n"));
|
||||
#endif
|
||||
PS3NavigationBTConnected = true;
|
||||
PS3NavigationConnected = true;
|
||||
} else if(remote_name[0] == 'M') { // First letter in Motion Controller ('M')
|
||||
moveSetBulb(Red);
|
||||
timerBulbRumble = millis();
|
||||
#ifdef DEBUG
|
||||
Notify(PSTR("\r\nMotion Controller Enabled\r\n"));
|
||||
#endif
|
||||
PS3MoveBTConnected = true;
|
||||
PS3MoveConnected = true;
|
||||
}
|
||||
l2cap_state = L2CAP_EV_L2CAP_DONE;
|
||||
}
|
||||
break;
|
||||
|
||||
case L2CAP_EV_L2CAP_DONE:
|
||||
if (PS3MoveBTConnected)//The Bulb and rumble values, has to be send at aproximatly every 5th second for it to stay on
|
||||
if (PS3MoveConnected)//The Bulb and rumble values, has to be send at aproximatly every 5th second for it to stay on
|
||||
{
|
||||
dtimeBulbRumble = millis() - timerBulbRumble;
|
||||
if (dtimeBulbRumble > 4000)//Send at least every 4th second
|
||||
if (millis() - timerBulbRumble > 4000)//Send at least every 4th second
|
||||
{
|
||||
HIDMove_Command(HIDMoveBuffer, HID_BUFFERSIZE);//The Bulb and rumble values, has to be written again and again, for it to stay turned on
|
||||
timerBulbRumble = millis();
|
||||
|
@ -1217,11 +1219,13 @@ void PS3BT::L2CAP_task()
|
|||
/************************************************************/
|
||||
void PS3BT::readReport()
|
||||
{
|
||||
if (l2capinbuf == NULL)
|
||||
return;
|
||||
if(l2capinbuf[8] == 0xA1)//HID_THDR_DATA_INPUT
|
||||
{
|
||||
if(PS3BTConnected || PS3NavigationBTConnected)
|
||||
if(PS3Connected || PS3NavigationConnected)
|
||||
ButtonState = (uint32_t)(l2capinbuf[11] | ((uint16_t)l2capinbuf[12] << 8) | ((uint32_t)l2capinbuf[13] << 16));
|
||||
else if(PS3MoveBTConnected)
|
||||
else if(PS3MoveConnected)
|
||||
ButtonState = (uint32_t)(l2capinbuf[10] | ((uint16_t)l2capinbuf[11] << 8) | ((uint32_t)l2capinbuf[12] << 16));
|
||||
|
||||
//Notify(PSTR("\r\nButtonState");
|
||||
|
@ -1251,7 +1255,9 @@ void PS3BT::readReport()
|
|||
}
|
||||
|
||||
void PS3BT::printReport() //Uncomment "#define PRINTREPORT" to print the report send by the PS3 Controllers
|
||||
{
|
||||
{
|
||||
if (l2capinbuf == NULL)
|
||||
return;
|
||||
if(l2capinbuf[8] == 0xA1)//HID_THDR_DATA_INPUT
|
||||
{
|
||||
for(uint8_t i = 10; i < 58;i++)
|
||||
|
@ -1504,12 +1510,10 @@ void PS3BT::HID_Command(uint8_t* data, uint16_t nbytes)
|
|||
buf[7] = control_scid[1];
|
||||
|
||||
for (uint16_t i = 0; i < nbytes; i++)//L2CAP C-frame
|
||||
buf[8 + i] = data[i];
|
||||
buf[8 + i] = data[i];
|
||||
|
||||
dtimeHID = millis() - timerHID;
|
||||
|
||||
if (dtimeHID <= 250)// Check if is has been more than 250ms since last command
|
||||
delay((uint32_t)(250 - dtimeHID));//There have to be a delay between commands
|
||||
if (millis() - timerHID <= 250)// Check if is has been more than 250ms since last command
|
||||
delay((uint32_t)(250 - (millis() - timerHID)));//There have to be a delay between commands
|
||||
|
||||
pUsb->outTransfer(bAddress, epInfo[ BTD_DATAOUT_PIPE ].epAddr, (8 + nbytes), buf);
|
||||
|
||||
|
@ -1600,12 +1604,10 @@ void PS3BT::HIDMove_Command(uint8_t* data,uint16_t nbytes)
|
|||
buf[7] = interrupt_scid[1];
|
||||
|
||||
for (uint16_t i = 0; i < nbytes; i++)//L2CAP C-frame
|
||||
buf[8 + i] = data[i];
|
||||
buf[8 + i] = data[i];
|
||||
|
||||
dtimeHID = millis() - timerHID;
|
||||
|
||||
if (dtimeHID <= 250)// Check if is has been less than 200ms since last command
|
||||
delay((uint32_t)(250 - dtimeHID));//There have to be a delay between commands
|
||||
if (millis() - timerHID <= 250)// Check if is has been less than 200ms since last command
|
||||
delay((uint32_t)(250 - (millis() - timerHID)));//There have to be a delay between commands
|
||||
|
||||
pUsb->outTransfer(bAddress, epInfo[ BTD_DATAOUT_PIPE ].epAddr, (8 + nbytes), buf);
|
||||
|
||||
|
@ -1622,15 +1624,14 @@ void PS3BT::moveSetBulb(uint8_t r, uint8_t g, uint8_t b)//Use this to set the Co
|
|||
}
|
||||
void PS3BT::moveSetBulb(Colors color)//Use this to set the Color using the predefined colors in "enums.h"
|
||||
{
|
||||
//set the Bulb's values into the write buffer
|
||||
HIDMoveBuffer[3] = (uint8_t)(color >> 16);
|
||||
HIDMoveBuffer[4] = (uint8_t)(color >> 8);
|
||||
HIDMoveBuffer[5] = (uint8_t)(color);
|
||||
|
||||
HIDMove_Command(HIDMoveBuffer, HID_BUFFERSIZE);
|
||||
moveSetBulb((uint8_t)(color >> 16),(uint8_t)(color >> 8),(uint8_t)(color));
|
||||
}
|
||||
void PS3BT::moveSetRumble(uint8_t rumble)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
if(rumble < 64 && rumble != 0) // The rumble value has to at least 64, or approximately 25% (64/255*100)
|
||||
Notify(PSTR("\r\nThe rumble value has to at least 64, or approximately 25%"));
|
||||
#endif
|
||||
//set the rumble value into the write buffer
|
||||
HIDMoveBuffer[7] = rumble;
|
||||
|
||||
|
|
8
PS3BT.h
8
PS3BT.h
|
@ -361,9 +361,9 @@ public:
|
|||
void moveSetBulb(Colors color);//Use this to set the Color using the predefined colors in "enum Colors"
|
||||
void moveSetRumble(uint8_t rumble);
|
||||
|
||||
bool PS3BTConnected;// Variable used to indicate if the normal playstation controller is successfully connected
|
||||
bool PS3MoveBTConnected;// Variable used to indicate if the move controller is successfully connected
|
||||
bool PS3NavigationBTConnected;// Variable used to indicate if the navigation controller is successfully connected
|
||||
bool PS3Connected;// Variable used to indicate if the normal playstation controller is successfully connected
|
||||
bool PS3MoveConnected;// Variable used to indicate if the move controller is successfully connected
|
||||
bool PS3NavigationConnected;// Variable used to indicate if the navigation controller is successfully connected
|
||||
bool buttonChanged;//Indicate if a button has been changed
|
||||
bool buttonPressed;//Indicate if a button has been pressed
|
||||
bool buttonReleased;//Indicate if a button has been released
|
||||
|
@ -411,9 +411,7 @@ private:
|
|||
uint32_t ButtonState;
|
||||
uint32_t OldButtonState;
|
||||
uint32_t timerHID;// timer used see if there has to be a delay before a new HID command
|
||||
uint32_t dtimeHID;// delta time since last HID command
|
||||
uint32_t timerBulbRumble;// used to continuously set PS3 Move controller Bulb and rumble values
|
||||
uint32_t dtimeBulbRumble;// used to know how longs since last since the Bulb and rumble values was written
|
||||
|
||||
uint8_t my_bdaddr[6]; //Change to your dongles Bluetooth address in PS3BT.cpp
|
||||
uint8_t hcibuf[BULK_MAXPKTSIZE];//General purpose buffer for hci data
|
||||
|
|
202
examples/PS3/PS3BT/PS3BT.ino
Normal file
202
examples/PS3/PS3BT/PS3BT.ino
Normal file
|
@ -0,0 +1,202 @@
|
|||
/*
|
||||
Example sketch for the PS3 Bluetooth library - developed by Kristian Lauszus
|
||||
For more information visit my blog: http://blog.tkjelectronics.dk/ or
|
||||
send me an e-mail: kristianl@tkjelectronics.com
|
||||
*/
|
||||
|
||||
#include <PS3BT.h>
|
||||
USB Usb;
|
||||
/* You can create the instance of the class in two ways */
|
||||
PS3BT PS3(&Usb); // This will just create the instance
|
||||
//PS3BT PS3(&Usb,0x00,0x15,0x83,0x3D,0x0A,0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch
|
||||
|
||||
boolean printTemperature;
|
||||
boolean printAngle;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
|
||||
if (Usb.Init() == -1) {
|
||||
Serial.print(F("\r\nOSC did not start"));
|
||||
while(1); //halt
|
||||
}
|
||||
Serial.print(F("\r\nPS3 Bluetooth Library Started"));
|
||||
}
|
||||
void loop()
|
||||
{
|
||||
Usb.Task();
|
||||
|
||||
if(PS3.PS3Connected || PS3.PS3NavigationConnected) {
|
||||
if(PS3.getAnalogHat(LeftHatX) > 137 || PS3.getAnalogHat(LeftHatX) < 117 || PS3.getAnalogHat(LeftHatY) > 137 || PS3.getAnalogHat(LeftHatY) < 117 || PS3.getAnalogHat(RightHatX) > 137 || PS3.getAnalogHat(RightHatX) < 117 || PS3.getAnalogHat(RightHatY) > 137 || PS3.getAnalogHat(RightHatY) < 117) {
|
||||
if(PS3.getAnalogHat(LeftHatX) > 137 || PS3.getAnalogHat(LeftHatX) < 117) {
|
||||
Serial.print(F("LeftHatX: "));
|
||||
Serial.print(PS3.getAnalogHat(LeftHatX));
|
||||
Serial.print("\t");
|
||||
} if(PS3.getAnalogHat(LeftHatY) > 137 || PS3.getAnalogHat(LeftHatY) < 117) {
|
||||
Serial.print(F("LeftHatY: "));
|
||||
Serial.print(PS3.getAnalogHat(LeftHatY));
|
||||
Serial.print("\t");
|
||||
} if(PS3.getAnalogHat(RightHatX) > 137 || PS3.getAnalogHat(RightHatX) < 117) {
|
||||
Serial.print(F("RightHatX: "));
|
||||
Serial.print(PS3.getAnalogHat(RightHatX));
|
||||
Serial.print("\t");
|
||||
} if(PS3.getAnalogHat(RightHatY) > 137 || PS3.getAnalogHat(RightHatY) < 117) {
|
||||
Serial.print(F("RightHatY: "));
|
||||
Serial.print(PS3.getAnalogHat(RightHatY));
|
||||
}
|
||||
Serial.println("");
|
||||
}
|
||||
|
||||
//Analog button values can be read from almost all buttons
|
||||
if(PS3.getAnalogButton(L2_ANALOG) > 0 || PS3.getAnalogButton(R2_ANALOG) > 0) {
|
||||
if(PS3.getAnalogButton(L2_ANALOG) > 0) {
|
||||
Serial.print(F("L2: "));
|
||||
Serial.print(PS3.getAnalogButton(L2_ANALOG));
|
||||
Serial.print("\t");
|
||||
} if(PS3.getAnalogButton(R2_ANALOG) > 0) {
|
||||
Serial.print(F("R2: "));
|
||||
Serial.print(PS3.getAnalogButton(R2_ANALOG));
|
||||
}
|
||||
Serial.println("");
|
||||
}
|
||||
|
||||
if(PS3.buttonPressed)
|
||||
{
|
||||
Serial.print(F("PS3 Controller"));
|
||||
|
||||
if(PS3.getButton(PS)) {
|
||||
Serial.print(F(" - PS"));
|
||||
PS3.disconnect();
|
||||
} else {
|
||||
if(PS3.getButton(TRIANGLE))
|
||||
Serial.print(F(" - Traingle"));
|
||||
if(PS3.getButton(CIRCLE))
|
||||
Serial.print(F(" - Circle"));
|
||||
if(PS3.getButton(CROSS))
|
||||
Serial.print(F(" - Cross"));
|
||||
if(PS3.getButton(SQUARE))
|
||||
Serial.print(F(" - Square"));
|
||||
|
||||
if(PS3.getButton(UP)) {
|
||||
Serial.print(F(" - Up"));
|
||||
PS3.setAllOff();
|
||||
PS3.setLedOn(LED4);
|
||||
} if(PS3.getButton(RIGHT)) {
|
||||
Serial.print(F(" - Right"));
|
||||
PS3.setAllOff();
|
||||
PS3.setLedOn(LED1);
|
||||
} if(PS3.getButton(DOWN)) {
|
||||
Serial.print(F(" - Down"));
|
||||
PS3.setAllOff();
|
||||
PS3.setLedOn(LED2);
|
||||
} if(PS3.getButton(LEFT)) {
|
||||
Serial.print(F(" - Left"));
|
||||
PS3.setAllOff();
|
||||
PS3.setLedOn(LED3);
|
||||
}
|
||||
|
||||
if(PS3.getButton(L1))
|
||||
Serial.print(F(" - L1"));
|
||||
//if(PS3.getButton(L2))
|
||||
//Serial.print(F(" - L2"));
|
||||
if(PS3.getButton(L3))
|
||||
Serial.print(F(" - L3"));
|
||||
if(PS3.getButton(R1))
|
||||
Serial.print(F(" - R1"));
|
||||
//if(PS3.getButton(R2))
|
||||
//Serial.print(F(" - R2"));
|
||||
if(PS3.getButton(R3))
|
||||
Serial.print(F(" - R3"));
|
||||
|
||||
if(PS3.getButton(SELECT)) {
|
||||
Serial.print(F(" - Select - "));
|
||||
Serial.print(PS3.getStatusString());
|
||||
} if(PS3.getButton(START)) {
|
||||
Serial.print(F(" - Start"));
|
||||
printAngle = !printAngle;
|
||||
while(PS3.getButton(START))
|
||||
Usb.Task();
|
||||
}
|
||||
Serial.println("");
|
||||
}
|
||||
}
|
||||
if(printAngle) {
|
||||
Serial.print(F("Pitch: "));
|
||||
Serial.print(PS3.getAngle(Pitch));
|
||||
Serial.print(F("\tRoll: "));
|
||||
Serial.println(PS3.getAngle(Roll));
|
||||
}
|
||||
}
|
||||
else if(PS3.PS3MoveConnected)
|
||||
{
|
||||
if(PS3.getAnalogButton(T_MOVE_ANALOG) > 0) {
|
||||
Serial.print(F("T: "));
|
||||
Serial.println(PS3.getAnalogButton(T_MOVE_ANALOG));
|
||||
} if(PS3.buttonPressed) {
|
||||
Serial.print(F("PS3 Move Controller"));
|
||||
|
||||
if(PS3.getButton(PS_MOVE)) {
|
||||
Serial.print(F(" - PS"));
|
||||
PS3.disconnect();
|
||||
} else {
|
||||
if(PS3.getButton(SELECT_MOVE)) {
|
||||
Serial.print(F(" - Select"));
|
||||
printTemperature = !printTemperature;
|
||||
while(PS3.getButton(SELECT_MOVE))
|
||||
Usb.Task();
|
||||
} if(PS3.getButton(START_MOVE)) {
|
||||
Serial.print(F(" - Start"));
|
||||
printAngle = !printAngle;
|
||||
while(PS3.getButton(START_MOVE))
|
||||
Usb.Task();
|
||||
} if(PS3.getButton(TRIANGLE_MOVE)) {
|
||||
Serial.print(F(" - Triangle"));
|
||||
PS3.moveSetBulb(Red);
|
||||
} if(PS3.getButton(CIRCLE_MOVE)) {
|
||||
Serial.print(F(" - Circle"));
|
||||
PS3.moveSetBulb(Green);
|
||||
} if(PS3.getButton(SQUARE_MOVE)) {
|
||||
Serial.print(F(" - Square"));
|
||||
PS3.moveSetBulb(Blue);
|
||||
} if(PS3.getButton(CROSS_MOVE)) {
|
||||
Serial.print(F(" - Cross"));
|
||||
PS3.moveSetBulb(Yellow);
|
||||
} if(PS3.getButton(MOVE_MOVE)) {
|
||||
PS3.moveSetBulb(Off);
|
||||
Serial.print(F(" - Move"));
|
||||
Serial.print(F(" - "));
|
||||
Serial.print(PS3.getStatusString());
|
||||
}
|
||||
//if(PS3.getButton(T))
|
||||
//Serial.print(F(" - T"));
|
||||
|
||||
Serial.println("");
|
||||
}
|
||||
}
|
||||
if(printAngle) {
|
||||
Serial.print(F("Pitch: "));
|
||||
Serial.print(PS3.getAngle(Pitch));
|
||||
Serial.print(F("\tRoll: "));
|
||||
Serial.println(PS3.getAngle(Roll));
|
||||
}
|
||||
else if(printTemperature) {
|
||||
String templow;
|
||||
String temphigh;
|
||||
String input = String(PS3.getSensor(tempMove));
|
||||
|
||||
if (input.length() > 3) {
|
||||
temphigh = input.substring(0, 2);
|
||||
templow = input.substring(2);
|
||||
} else {
|
||||
temphigh = input.substring(0, 1);
|
||||
templow = input.substring(1);
|
||||
}
|
||||
Serial.print(F("Temperature: "));
|
||||
Serial.print(temphigh);
|
||||
Serial.print(F("."));
|
||||
Serial.println(templow);
|
||||
}
|
||||
}
|
||||
delay(1);
|
||||
}
|
|
@ -1,202 +0,0 @@
|
|||
/*
|
||||
Example sketch for the PS3 Bluetooth library - developed by Kristian Lauszus
|
||||
For more information visit my blog: http://blog.tkjelectronics.dk/ or
|
||||
send me an e-mail: kristianl@tkjelectronics.com
|
||||
*/
|
||||
|
||||
#include <PS3BT.h>
|
||||
USB Usb;
|
||||
/* You can create the instance of the class in two ways */
|
||||
PS3BT BT(&Usb); // This will just create the instance
|
||||
//PS3BT BT(&Usb,0x00,0x15,0x83,0x3D,0x0A,0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch
|
||||
|
||||
boolean printTemperature;
|
||||
boolean printAngle;
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
|
||||
if (Usb.Init() == -1) {
|
||||
Serial.print(F("\r\nOSC did not start"));
|
||||
while(1); //halt
|
||||
}
|
||||
Serial.print(F("\r\nPS3 Bluetooth Library Started"));
|
||||
}
|
||||
void loop()
|
||||
{
|
||||
Usb.Task();
|
||||
|
||||
if(BT.PS3BTConnected || BT.PS3NavigationBTConnected) {
|
||||
if(BT.getAnalogHat(LeftHatX) > 137 || BT.getAnalogHat(LeftHatX) < 117 || BT.getAnalogHat(LeftHatY) > 137 || BT.getAnalogHat(LeftHatY) < 117 || BT.getAnalogHat(RightHatX) > 137 || BT.getAnalogHat(RightHatX) < 117 || BT.getAnalogHat(RightHatY) > 137 || BT.getAnalogHat(RightHatY) < 117) {
|
||||
if(BT.getAnalogHat(LeftHatX) > 137 || BT.getAnalogHat(LeftHatX) < 117) {
|
||||
Serial.print(F("LeftHatX: "));
|
||||
Serial.print(BT.getAnalogHat(LeftHatX));
|
||||
Serial.print("\t");
|
||||
} if(BT.getAnalogHat(LeftHatY) > 137 || BT.getAnalogHat(LeftHatY) < 117) {
|
||||
Serial.print(F("LeftHatY: "));
|
||||
Serial.print(BT.getAnalogHat(LeftHatY));
|
||||
Serial.print("\t");
|
||||
} if(BT.getAnalogHat(RightHatX) > 137 || BT.getAnalogHat(RightHatX) < 117) {
|
||||
Serial.print(F("RightHatX: "));
|
||||
Serial.print(BT.getAnalogHat(RightHatX));
|
||||
Serial.print("\t");
|
||||
} if(BT.getAnalogHat(RightHatY) > 137 || BT.getAnalogHat(RightHatY) < 117) {
|
||||
Serial.print(F("RightHatY: "));
|
||||
Serial.print(BT.getAnalogHat(RightHatY));
|
||||
}
|
||||
Serial.println("");
|
||||
}
|
||||
|
||||
//Analog button values can be read from almost all buttons
|
||||
if(BT.getAnalogButton(L2_ANALOG) > 0 || BT.getAnalogButton(R2_ANALOG) > 0) {
|
||||
if(BT.getAnalogButton(L2_ANALOG) > 0) {
|
||||
Serial.print(F("L2: "));
|
||||
Serial.print(BT.getAnalogButton(L2_ANALOG));
|
||||
Serial.print("\t");
|
||||
} if(BT.getAnalogButton(R2_ANALOG) > 0) {
|
||||
Serial.print(F("R2: "));
|
||||
Serial.print(BT.getAnalogButton(R2_ANALOG));
|
||||
}
|
||||
Serial.println("");
|
||||
}
|
||||
|
||||
if(BT.buttonPressed)
|
||||
{
|
||||
Serial.print(F("PS3 Controller"));
|
||||
|
||||
if(BT.getButton(PS)) {
|
||||
Serial.print(F(" - PS"));
|
||||
BT.disconnect();
|
||||
} else {
|
||||
if(BT.getButton(TRIANGLE))
|
||||
Serial.print(F(" - Traingle"));
|
||||
if(BT.getButton(CIRCLE))
|
||||
Serial.print(F(" - Circle"));
|
||||
if(BT.getButton(CROSS))
|
||||
Serial.print(F(" - Cross"));
|
||||
if(BT.getButton(SQUARE))
|
||||
Serial.print(F(" - Square"));
|
||||
|
||||
if(BT.getButton(UP)) {
|
||||
Serial.print(F(" - Up"));
|
||||
BT.setAllOff();
|
||||
BT.setLedOn(LED4);
|
||||
} if(BT.getButton(RIGHT)) {
|
||||
Serial.print(F(" - Right"));
|
||||
BT.setAllOff();
|
||||
BT.setLedOn(LED1);
|
||||
} if(BT.getButton(DOWN)) {
|
||||
Serial.print(F(" - Down"));
|
||||
BT.setAllOff();
|
||||
BT.setLedOn(LED2);
|
||||
} if(BT.getButton(LEFT)) {
|
||||
Serial.print(F(" - Left"));
|
||||
BT.setAllOff();
|
||||
BT.setLedOn(LED3);
|
||||
}
|
||||
|
||||
if(BT.getButton(L1))
|
||||
Serial.print(F(" - L1"));
|
||||
//if(BT.getButton(L2))
|
||||
//Serial.print(F(" - L2"));
|
||||
if(BT.getButton(L3))
|
||||
Serial.print(F(" - L3"));
|
||||
if(BT.getButton(R1))
|
||||
Serial.print(F(" - R1"));
|
||||
//if(BT.getButton(R2))
|
||||
//Serial.print(F(" - R2"));
|
||||
if(BT.getButton(R3))
|
||||
Serial.print(F(" - R3"));
|
||||
|
||||
if(BT.getButton(SELECT)) {
|
||||
Serial.print(F(" - Select - "));
|
||||
Serial.print(BT.getStatusString());
|
||||
} if(BT.getButton(START)) {
|
||||
Serial.print(F(" - Start"));
|
||||
printAngle = !printAngle;
|
||||
while(BT.getButton(START))
|
||||
Usb.Task();
|
||||
}
|
||||
Serial.println("");
|
||||
}
|
||||
}
|
||||
if(printAngle) {
|
||||
Serial.print(F("Pitch: "));
|
||||
Serial.print(BT.getAngle(Pitch));
|
||||
Serial.print(F("\tRoll: "));
|
||||
Serial.println(BT.getAngle(Roll));
|
||||
}
|
||||
}
|
||||
else if(BT.PS3MoveBTConnected)
|
||||
{
|
||||
if(BT.getAnalogButton(T_MOVE_ANALOG) > 0) {
|
||||
Serial.print(F("T: "));
|
||||
Serial.println(BT.getAnalogButton(T_MOVE_ANALOG));
|
||||
} if(BT.buttonPressed) {
|
||||
Serial.print(F("PS3 Move Controller"));
|
||||
|
||||
if(BT.getButton(PS_MOVE)) {
|
||||
Serial.print(F(" - PS"));
|
||||
BT.disconnect();
|
||||
} else {
|
||||
if(BT.getButton(SELECT_MOVE)) {
|
||||
Serial.print(F(" - Select"));
|
||||
printTemperature = !printTemperature;
|
||||
while(BT.getButton(SELECT_MOVE))
|
||||
Usb.Task();
|
||||
} if(BT.getButton(START_MOVE)) {
|
||||
Serial.print(F(" - Start"));
|
||||
printAngle = !printAngle;
|
||||
while(BT.getButton(START_MOVE))
|
||||
Usb.Task();
|
||||
} if(BT.getButton(TRIANGLE_MOVE)) {
|
||||
Serial.print(F(" - Triangle"));
|
||||
BT.moveSetBulb(Red);
|
||||
} if(BT.getButton(CIRCLE_MOVE)) {
|
||||
Serial.print(F(" - Circle"));
|
||||
BT.moveSetBulb(Green);
|
||||
} if(BT.getButton(SQUARE_MOVE)) {
|
||||
Serial.print(F(" - Square"));
|
||||
BT.moveSetBulb(Blue);
|
||||
} if(BT.getButton(CROSS_MOVE)) {
|
||||
Serial.print(F(" - Cross"));
|
||||
BT.moveSetBulb(Yellow);
|
||||
} if(BT.getButton(MOVE_MOVE)) {
|
||||
BT.moveSetBulb(Off);
|
||||
Serial.print(F(" - Move"));
|
||||
Serial.print(F(" - "));
|
||||
Serial.print(BT.getStatusString());
|
||||
}
|
||||
//if(BT.getButton(T))
|
||||
//Serial.print(F(" - T"));
|
||||
|
||||
Serial.println("");
|
||||
}
|
||||
}
|
||||
if(printAngle) {
|
||||
Serial.print(F("Pitch: "));
|
||||
Serial.print(BT.getAngle(Pitch));
|
||||
Serial.print(F("\tRoll: "));
|
||||
Serial.println(BT.getAngle(Roll));
|
||||
}
|
||||
else if(printTemperature) {
|
||||
String templow;
|
||||
String temphigh;
|
||||
String input = String(BT.getSensor(tempMove));
|
||||
|
||||
if (input.length() > 3) {
|
||||
temphigh = input.substring(0, 2);
|
||||
templow = input.substring(2);
|
||||
} else {
|
||||
temphigh = input.substring(0, 1);
|
||||
templow = input.substring(1);
|
||||
}
|
||||
Serial.print(F("Temperature: "));
|
||||
Serial.print(temphigh);
|
||||
Serial.print(F("."));
|
||||
Serial.println(templow);
|
||||
}
|
||||
}
|
||||
delay(1);
|
||||
}
|
25
keywords.txt
25
keywords.txt
|
@ -1,16 +1,17 @@
|
|||
################################################
|
||||
# Syntax Coloring Map For PS3 Bluetooth Library
|
||||
################################################
|
||||
####################################################
|
||||
# Syntax Coloring Map For PS3 Bluetooth/USB Library
|
||||
####################################################
|
||||
|
||||
################################################
|
||||
####################################################
|
||||
# Datatypes (KEYWORD1)
|
||||
################################################
|
||||
####################################################
|
||||
|
||||
PS3BT KEYWORD1
|
||||
PS3USB KEYWORD1
|
||||
|
||||
################################################
|
||||
####################################################
|
||||
# Methods and Functions (KEYWORD2)
|
||||
################################################
|
||||
####################################################
|
||||
setBdaddr KEYWORD2
|
||||
setMoveBdaddr KEYWORD2
|
||||
|
||||
|
@ -32,18 +33,18 @@ setLedToggle KEYWORD2
|
|||
moveSetBulb KEYWORD2
|
||||
moveSetRumble KEYWORD2
|
||||
|
||||
PS3BTConnected KEYWORD2
|
||||
PS3MoveBTConnected KEYWORD2
|
||||
PS3NavigationBTConnected KEYWORD2
|
||||
PS3Connected KEYWORD2
|
||||
PS3MoveConnected KEYWORD2
|
||||
PS3NavigationConnected KEYWORD2
|
||||
buttonChanged KEYWORD2
|
||||
buttonPressed KEYWORD2
|
||||
buttonReleased KEYWORD2
|
||||
|
||||
isWatingForConnection KEYWORD2
|
||||
|
||||
################################################
|
||||
####################################################
|
||||
# Constants and enums (LITERAL1)
|
||||
################################################
|
||||
####################################################
|
||||
LED1 LITERAL1
|
||||
LED2 LITERAL1
|
||||
LED3 LITERAL1
|
||||
|
|
Loading…
Reference in a new issue