miki sumito / Mbed 2 deprecated four_wheel_omni

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers SBDBT.cpp Source File

SBDBT.cpp

00001 #include "SBDBT.hpp"
00002 #include "mbed.h"
00003 
00004 Serial pc(USBTX,USBRX);
00005 
00006 sbdbt::sbdbt(PinName TX, PinName RX){
00007     i = 0;
00008     pos = 0;
00009     val = 0x80;
00010     len = 10;
00011     data = new char[len];
00012     PS3_Data = new char[len];
00013     dev = new Serial(TX, RX);
00014     dev -> baud(9600);
00015     dev -> attach(callback(this,&sbdbt::get),Serial::RxIrq);
00016 }
00017 
00018 sbdbt::sbdbt(PinName TX, PinName RX, int baud){
00019     i = 0;
00020     pos = 0;
00021     val = 0x80;
00022     len = 10;
00023     data = new char[len];
00024     PS3_Data = new char[len];
00025     dev = new Serial(TX, RX);
00026     dev -> baud(9600);
00027     pc.baud(baud);
00028     dev -> attach(callback(this,&sbdbt::get),Serial::RxIrq);
00029 }
00030 
00031 void sbdbt::get(){
00032     data[i] = dev -> getc();
00033     if(data[i] == val){
00034         if(i != pos){
00035             data[pos] = val;
00036             i = pos + 1;
00037         }
00038         else{
00039             i++;
00040         }
00041     }
00042     else{
00043         if(i == pos);
00044         else{
00045             i++;
00046         }
00047     }
00048     if(i >= len){
00049         PS3_Data[0] = data[0];
00050         PS3_Data[1] = data[1];
00051         PS3_Data[2] = data[2];
00052         PS3_Data[3] = data[3];
00053         PS3_Data[4] = data[4];
00054         PS3_Data[5] = data[5];
00055         PS3_Data[6] = data[6];
00056         PS3_Data[7] = data[7];
00057         PS3_Data[8] = data[8];
00058         PS3_Data[9] = data[9];
00059         i = 0;
00060     }
00061 }
00062 
00063 void sbdbt::button_state(){pc.printf("UP: %d,  DOW: %d,  RIG: %d,  LEF: %d,  TRI: %d,  CRO: %d,  CIR: %d,  SQU: %d,  L1: %d,  L2: %d,  R1: %d,  R2: %d,  STA: %d,  SEL: %d  LSX: %3d,  LSY: %3d,  RSX: %3d,  RY: %3d,  L2An: %3d,  R2An: %3d\n",up(), down(), right(), left(), tri(), cross(), circle(), square(), l1(), l2(), r1(), r2(), start(), select(), lsx(), lsy(), rsx(), rsy(), l2An(), r2An());}
00064 
00065 void sbdbt::data_print(){pc.printf("%2x %2x %2x %2x %2x %2x %2x %2x %2x %2x\n",PS3_Data[0], PS3_Data[1], PS3_Data[2], PS3_Data[3], PS3_Data[4], PS3_Data[5], PS3_Data[6], PS3_Data[7], PS3_Data[8], PS3_Data[9]);}
00066 
00067 bool sbdbt::neutral(){
00068     if(data[9] == 0) return 1;
00069     return 0;
00070 }
00071 
00072 bool sbdbt::up(){
00073     if(data[2] & UP) return 1;
00074     return 0;
00075 }
00076 
00077 bool sbdbt::down(){
00078     if(data[2] & DOWN) return 1;
00079     return 0;
00080 }
00081 
00082 bool sbdbt::left(){
00083     if(data[2] & LEFT) return 1;
00084     return 0;
00085 }
00086 
00087 bool sbdbt::right(){
00088     if(data[2] & RIGHT) return 1;
00089     return 0;
00090 }
00091 
00092 bool sbdbt::tri(){
00093     if(data[2] & TRI) return 1;
00094     return 0;
00095 }
00096 
00097 bool sbdbt::cross(){
00098     if(data[2] & CROSS) return 1;
00099     return 0;
00100 }
00101 
00102 bool sbdbt::square(){
00103     if(data[2] & SQUARE) return 1;
00104     return 0;
00105 }
00106 
00107 bool sbdbt::circle(){
00108     if(data[1] & CIRCLE) return 1;
00109     return 0;
00110 }
00111 bool sbdbt::l1(){
00112     if(data[1] & L1) return 1;
00113     return 0;
00114 }
00115 
00116 bool sbdbt::l2(){
00117     if(data[1] & L2) return 1;
00118     return 0;
00119 }
00120 
00121 bool sbdbt::r1(){
00122     if(data[1] & R1) return 1;
00123     return 0;
00124 }
00125 
00126 bool sbdbt::r2(){
00127     if(data[1] & R2) return 1;
00128     return 0;
00129 }
00130 
00131 bool sbdbt::start(){
00132     if(data[1] & START) return 1;
00133     return 0;
00134 }
00135 
00136 bool sbdbt::select(){
00137     if(data[1] & SELECT) return 1;
00138     return 0;
00139 }
00140 
00141 char sbdbt::lsx(){return data[3];}
00142 
00143 char sbdbt::lsy(){return data[4];}
00144 
00145 char sbdbt::rsx(){return data[5];}
00146 
00147 char sbdbt::rsy(){return data[6];}
00148 
00149 char sbdbt::l2An(){return data[7];}
00150 
00151 char sbdbt::r2An(){return data[8];}
00152 
00153 sbdbt::~sbdbt(){
00154     delete dev;
00155     delete data;
00156     delete PS3_Data;
00157 }