mylibrary

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PS3.cpp Source File

PS3.cpp

00001 #include "PS3.h"
00002 
00003         PS3::PS3(PinName TX, PinName RX) : Serial(TX, RX)
00004         {
00005             PS3Data[0] = 128;
00006             PS3Data[1] = 0;
00007             PS3Data[2] = 0;
00008             PS3Data[3] = 64;
00009             PS3Data[4] = 64;
00010             PS3Data[5] = 64;
00011             PS3Data[6] = 64;
00012             PS3Data[7] = 0;
00013             baud(2400);
00014             Serial::attach(this, &PS3::getdata, Serial::RxIrq);
00015         }
00016         
00017         bool PS3::maru()
00018         {
00019             return PS3Data[2] & MARU;
00020         }
00021         
00022         bool PS3::batu()
00023         {
00024             return PS3Data[2] & BATU;
00025         }
00026         
00027         bool PS3::sikaku()
00028         {
00029             return PS3Data[1] & SIKAKU;
00030         }
00031         
00032         bool PS3::sankaku()
00033         {
00034             return PS3Data[2] & SANKAKU;
00035         }
00036         
00037         bool PS3::ue()
00038         {
00039             return PS3Data[2] & UE && !(PS3Data[2] & SITA);
00040         }
00041         
00042         bool PS3::sita()
00043         {
00044             return PS3Data[2] & SITA && !(PS3Data[2] & UE);
00045         }
00046         
00047         bool PS3::start()
00048         {
00049             return PS3Data[2] & UE && PS3Data[2] & SITA;
00050         }
00051         
00052         bool PS3::migi()
00053         {
00054             return PS3Data[2] & MIGI && !(PS3Data[2] & HIDARI);
00055         }
00056         
00057         bool PS3::hidari()
00058         {
00059             return PS3Data[2] & HIDARI && !(PS3Data[2] & MIGI);
00060         }
00061         
00062         bool PS3::select()
00063         {
00064             return PS3Data[2] & MIGI && PS3Data[2] & HIDARI;
00065         }
00066         
00067         bool PS3::L1()
00068         {
00069             return PS3Data[1] & LEFT1;
00070         }
00071         
00072         bool PS3::L2()
00073         {
00074             return PS3Data[1] & LEFT2;
00075         }
00076         
00077         bool PS3::R1()
00078         {
00079             return PS3Data[1] & RIGHT1;
00080         }
00081         
00082         bool PS3::R2()
00083         {
00084             return PS3Data[1] & RIGHT2;
00085         }
00086         
00087         int8_t PS3::analogLX()
00088         {
00089             if(PS3Data[3] == 0)
00090                 PS3Data[3] = 1;
00091             return PS3Data[3] - 64;
00092         }
00093         
00094         int8_t PS3::analogLY()
00095         {
00096             if(PS3Data[4] == 0)
00097                 PS3Data[4] = 1;
00098             return (PS3Data[4] - 64) * (-1);
00099         }
00100         
00101         int8_t PS3::analogRX()
00102         {
00103             if(PS3Data[5] == 0)
00104                 PS3Data[5] = 1;
00105             return PS3Data[5] - 64;
00106         }
00107         
00108         int8_t PS3::analogRY()
00109         {
00110             if(PS3Data[6] == 0)
00111                 PS3Data[6] = 1;
00112             return (PS3Data[6] - 64) * (-1);
00113         }
00114         
00115         
00116         
00117         void PS3::getdata()
00118         {
00119             while(Serial::getc() != 128)
00120             {
00121             }
00122             for(int i = 1; i < 8; i++)
00123             {
00124                 GetData[i] = Serial::getc();
00125             }
00126             
00127             sum = GetData[1] + GetData[2];
00128             for(int i = 3; i < 7; i++)
00129             {
00130                sum += GetData[i] - 64;
00131             }
00132                 
00133             if(sum < 0)
00134                  sum += 128;
00135                     
00136             if(sum == GetData[7])
00137             {
00138                 for(int i = 0; i < 8; i++)
00139                 {
00140                     PS3Data[i] = GetData[i];
00141                 }
00142             }
00143         }