serial arduino controller

Dependents:   serial_arduino 300_PS3Dribbler 300_PS3com Quadrifoglio_PS3COM

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers SerialArduino.cpp Source File

SerialArduino.cpp

00001 #include "SerialArduino.h"
00002 
00003 SerialArduino::SerialArduino(PinName TX,PinName RX, int baud)
00004 : mini(TX,RX,baud)
00005 {
00006 //    mini.attach(callback(this,&SerialArduino::serialLoop), SerialBase::RxIrq);
00007     state=0;
00008     thread.start(callback(this, &SerialArduino::serialLoop));
00009 }
00010 
00011 void SerialArduino::serialLoop()
00012 {
00013     while (1) {
00014         mini.read(&hedder1,1);
00015         mini.read(&hedder2,1);
00016     //    mini.read(buff,1);
00017     //    checkSum = atoi(&buff[2]);
00018         if(hedder1==0xff 
00019         && hedder2==0xee 
00020         )
00021         {
00022     //        mini.read(&button,2);
00023             mini.read(&b0,1);
00024             mini.read(&b1,1);
00025             mini.read(&trigger[0],1);
00026             mini.read(&trigger[1],1);
00027             mini.read(&stick[0],1);
00028             mini.read(&stick[1],1);
00029             mini.read(&stick[2],1);
00030             mini.read(&stick[3],1);
00031     //        mini.read(&checkSum,1);
00032             mini.read(&timeout,1);
00033     
00034         }
00035 //        mini.write(CRLF,2);
00036 //        ThisThread::sleep_for(1);
00037     }
00038 
00039 }
00040 
00041 bool SerialArduino::getState()
00042 {
00043 
00044     //button
00045     button = b0 << 8 | b1;
00046     for(i=11;i>=0;i--)
00047     {
00048         b[i] = button & high;
00049         button = button >> 1;
00050     }
00051     //timeout    
00052     if(timeout == past)
00053     {
00054         if(state) timeoutCount++;    
00055     }
00056     else
00057     {
00058         timeoutCount = 0;
00059         state=1;
00060     }
00061     if(timeoutCount > 20)
00062     {
00063         state=0;
00064     }
00065     past = timeout;
00066 
00067     return(state);
00068 }
00069 
00070 uint8_t SerialArduino::getHedder1()
00071 {
00072     return(hedder1);
00073 }
00074 
00075 uint8_t SerialArduino::getHedder2()
00076 {
00077     return(hedder2);
00078 }
00079 
00080 bool SerialArduino::getButton(int num)
00081 {
00082     return(b[num]);
00083 }
00084 
00085 uint8_t SerialArduino::getTrigger(int num)
00086 {
00087     return(trigger[num]);
00088 }
00089 
00090 uint8_t SerialArduino::getStick(int num)
00091 {
00092     return(stick[num]);
00093 }
00094 
00095 uint16_t SerialArduino::getTimeoutCount()
00096 {
00097     return(timeout);
00098 }
00099 
00100