Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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);
}