serial arduino controller

Dependents:   serial_arduino 300_PS3Dribbler 300_PS3com Quadrifoglio_PS3COM

SerialArduino.cpp

Committer:
piroro4560
Date:
2022-06-17
Revision:
2:3b34130dfdd2
Parent:
1:36350a60662e

File content as of revision 2:3b34130dfdd2:

#include "SerialArduino.h"

SerialArduino::SerialArduino(PinName TX,PinName RX, int baud)
: mini(TX,RX,baud)
{
//    mini.attach(callback(this,&SerialArduino::serialLoop), SerialBase::RxIrq);
    state=0;
    thread.start(callback(this, &SerialArduino::serialLoop));
}

void SerialArduino::serialLoop()
{
    while (1) {
        mini.read(&hedder1,1);
        mini.read(&hedder2,1);
    //    mini.read(buff,1);
    //    checkSum = atoi(&buff[2]);
        if(hedder1==0xff 
        && hedder2==0xee 
        )
        {
    //        mini.read(&button,2);
            mini.read(&b0,1);
            mini.read(&b1,1);
            mini.read(&trigger[0],1);
            mini.read(&trigger[1],1);
            mini.read(&stick[0],1);
            mini.read(&stick[1],1);
            mini.read(&stick[2],1);
            mini.read(&stick[3],1);
    //        mini.read(&checkSum,1);
            mini.read(&timeout,1);
    
        }
//        mini.write(CRLF,2);
//        ThisThread::sleep_for(1);
    }

}

bool SerialArduino::getState()
{

    //button
    button = b0 << 8 | b1;
    for(i=11;i>=0;i--)
    {
        b[i] = button & high;
        button = button >> 1;
    }
    //timeout    
    if(timeout == past)
    {
        if(state) timeoutCount++;    
    }
    else
    {
        timeoutCount = 0;
        state=1;
    }
    if(timeoutCount > 20)
    {
        state=0;
    }
    past = timeout;

    return(state);
}

uint8_t SerialArduino::getHedder1()
{
    return(hedder1);
}

uint8_t SerialArduino::getHedder2()
{
    return(hedder2);
}

bool SerialArduino::getButton(int num)
{
    return(b[num]);
}

uint8_t SerialArduino::getTrigger(int num)
{
    return(trigger[num]);
}

uint8_t SerialArduino::getStick(int num)
{
    return(stick[num]);
}

uint16_t SerialArduino::getTimeoutCount()
{
    return(timeout);
}