Advertisement
otakus

Untitled

Aug 13th, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <XBOXUSB.h>
  2. #include <PS3BT.h>
  3.  
  4. #define deadzone_xbox 15
  5. #define offset_xbox 7
  6. #define deadzone_ps3 7
  7. #define offset_ps3 2
  8.  
  9. USB Usb;
  10.  
  11. XBOXUSB Xbox(&Usb);
  12. PS3BT PS3(&Usb,0x00,0x10,0x60,0x57,0xA0,0x48);
  13.  
  14. int vals[3];
  15. int pos, negOff, posOff, l2, r2;
  16.  
  17. void setup() {
  18.   Serial.begin(57600);
  19.   if (Usb.Init() == -1) {
  20.     Serial.print(F("\r\nOSC did not start"));
  21.     while(1);
  22.   }  
  23. }
  24.  
  25. void loop() {
  26.   Usb.Task();
  27.   if(Xbox.Xbox360Connected) {
  28.     calcXboxInput();
  29.   }else if(PS3.PS3Connected) {
  30.     calcPs3Input();
  31.   }
  32.   else{
  33.     vals[0]=127;vals[1]=0;vals[2]=0;
  34.   }
  35.  
  36.   sendData();
  37.   delay(10);
  38. }
  39.  
  40. void sendData(){
  41.   Serial.print(";@");
  42.   pad(vals[0]);s
  43.   pad(vals[1]);
  44.   pad(vals[2]);
  45.   Serial.println("@;");
  46. }
  47.  
  48. void pad(int number){
  49.   for(int i=0; i < 2 - byte(log10(number)); i++)
  50.     Serial.print('0');
  51.   Serial.print(number);
  52. }
  53.  
  54. void calcXboxInput(){
  55.   pos=Xbox.getAnalogHat(LeftHatX_XBOX)>>8;
  56.   negOff=offset_xbox-deadzone_xbox;
  57.   posOff=offset_xbox+deadzone_xbox;
  58.   l2=Xbox.getButton(L2_XBOX);
  59.   r2=Xbox.getButton(R2_XBOX);
  60.  
  61.   vals[0]=map(min(pos,negOff),negOff,-128,127,0)+map(max(pos,posOff),posOff,127,0,128);
  62.   vals[1]=((l2>0)? l2: r2);
  63.   vals[2]=((l2>0)? 1: 0);
  64. }
  65.  
  66. void calcPs3Input(){
  67.   pos=PS3.getAnalogHat(LeftHatX)-128;
  68.   negOff=offset_ps3-deadzone_ps3;
  69.   posOff=offset_ps3+deadzone_ps3;
  70.   l2=PS3.getAnalogButton(L2_ANALOG);
  71.   r2=PS3.getAnalogButton(R2_ANALOG);
  72.  
  73.   vals[0]=map(min(pos,negOff),negOff,-128,127,0)+map(max(pos,posOff),posOff,127,0,128);
  74.   vals[1]=((l2>0)? l2: r2);
  75.   vals[2]=((l2>0)? 1: 0);
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement