voidread_serial_data()
{
//寻找数据包起始同步字节,2个
if(ReadOneByte() == 0xAA)//先读一个
{
if(ReadOneByte() == 0xAA)//读第二个
{
payloadLength = ReadOneByte();//读取第三个,数据包字节的长度
if(payloadLength == 0x20)//如果接收到的是大包数据才继续读取,小包数据则舍弃不读取
{
generatedChecksum = 0; //校验变量清0
for(inti = 0; i<payloadLength; i++)//连续读取32个字节
{
payloadData[i] = ReadOneByte();//读取指定长度数据包中的数据
generatedChecksum += payloadData[i];//计算数据累加和
}
checksum = ReadOneByte();//读取校验字节
//校验
generatedChecksum = (~generatedChecksum)&0xff;
//比较校验字节
if(checksum == generatedChecksum)//数据接收正确,继续处理
{
signalquality = 0;//信号质量变量
attention = 0; //注意力值变量
//赋值数据
signalquality = payloadData[1];//信号值
attention = payloadData[29];//注意力值
meditation = payloadData[31];//放松度值
if(!DEBUGOUTPUT)
//打印信号质量
{Serial2.print("SignalQuality: ");
Serial2.print(signalquality, DEC);
//打印注意力值
Serial2.print("Attation: ");
Serial2.print(attention, DEC);
//打印放松度值