mylibrary

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PS3.h Source File

PS3.h

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