c

Fork of MyLib by gaku takasawa

Revision:
1:c75100913a65
Child:
8:dd476889a42e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PS3/PS3.h	Thu May 11 01:38:34 2017 +0000
@@ -0,0 +1,173 @@
+#ifndef PS3_H
+#define PS3_H
+#include "mbed.h"
+
+#define MARU 64
+#define BATU 32
+#define SIKAKU 1
+#define SANKAKU 16
+#define UE 1
+#define SITA 2
+#define MIGI 4
+#define HIDARI 8
+#define LEFT1 2
+#define LEFT2 4
+#define RIGHT1 8
+#define RIGHT2 16
+
+class PS3 : public Serial
+{
+    public:
+        PS3(PinName TX, PinName RX);
+        /*{
+            PS3Data[0] = 128;
+            PS3Data[1] = 0;
+            PS3Data[2] = 0;
+            PS3Data[3] = 64;
+            PS3Data[4] = 64;
+            PS3Data[5] = 64;
+            PS3Data[6] = 64;
+            PS3Data[7] = 0;
+            baud(2400);
+            Serial::attach(this, &PS3::getdata, Serial::RxIrq);
+        }*/
+        
+        bool maru();
+        /*{
+            return PS3Data[2] & MARU;
+        }*/
+        
+        bool batu();
+        /*{
+            return PS3Data[2] & BATU;
+        }*/
+        
+        bool sikaku();
+        /*{
+            return PS3Data[1] & SIKAKU;
+        }*/
+        
+        bool sankaku();
+        /*{
+            return PS3Data[2] & SANKAKU;
+        }*/
+        
+        bool ue();
+        /*{
+            return PS3Data[2] & UE && !(PS3Data[2] & SITA);
+        }*/
+        
+        bool sita();
+        /*{
+            return PS3Data[2] & SITA && !(PS3Data[2] & UE);
+        }*/
+        
+        bool start();
+        /*{
+            return PS3Data[2] & UE && PS3Data[2] & SITA;
+        }*/
+        
+        bool migi();
+        /*{
+            return PS3Data[2] & MIGI && !(PS3Data[2] & HIDARI);
+        }*/
+        
+        bool hidari();
+        /*{
+            return PS3Data[2] & HIDARI && !(PS3Data[2] & MIGI);
+        }*/
+        
+        bool select();
+        /*{
+            return PS3Data[2] & MIGI && PS3Data[2] & HIDARI;
+        }*/
+        
+        bool L1();
+        /*{
+            return PS3Data[1] & LEFT1;
+        }*/
+        
+        bool L2();
+        /*{
+            return PS3Data[1] & LEFT2;
+        }*/
+        
+        bool R1();
+        /*{
+            return PS3Data[1] & RIGHT1;
+        }*/
+        
+        bool R2();
+        /*{
+            return PS3Data[1] & RIGHT2;
+        }*/
+        
+        int8_t analogLX();
+        /*{
+            if(PS3Data[3] == 0)
+                PS3Data[3]=1;
+            return PS3Data[3]-64;
+        }*/
+        
+        int8_t analogLY();
+        /*{
+            if(PS3Data[4] == 0)
+                PS3Data[4]=1;
+            return (PS3Data[4]-64)*(-1);
+        }*/
+        
+        int8_t analogRX();
+        /*{
+            if(PS3Data[5] == 0)
+                PS3Data[5]=1;
+            return PS3Data[5]-64;
+        }*/
+        
+        int8_t analogRY();
+        /*{
+            if(PS3Data[6] == 0)
+                PS3Data[6]=1;
+            return (PS3Data[6]-64)*(-1);
+        }*/
+        
+        
+        
+    private:
+
+        int8_t sum;
+        int8_t PS3Data[8];
+        int8_t GetData[8];
+    
+        void getdata();
+        /*{
+            while(Serial::getc() != 128)
+            {
+            }
+            for(int i = 1;i < 8;i++)
+            {
+                GetData[i] = Serial::getc();
+            }
+            
+            sum = GetData[1] + GetData[2];
+            for(int i = 3;i < 7;i++)
+            {
+               sum += GetData[i] - 64;
+            }
+                
+            if(sum < 0)
+                 sum+=128;
+                    
+            if(sum == GetData[7])
+            {
+                for(int i = 0;i < 8;i++)
+                {
+                    PS3Data[i]=GetData[i];
+                }
+            }
+        }*/
+        
+};
+            
+#endif            
+            
+        
\ No newline at end of file