PosCalibrate/posdevice.cpp
2025-10-15 14:50:31 +08:00

48 lines
1.3 KiB
C++

#include "posdevice.h"
PosDevice::PosDevice(QObject *parent)
: QObject{parent}
{
serialHandler = new QSerialPort(this);
serialHandler->setPortName(COMNAME);
serialHandler->setBaudRate(460800);
}
bool PosDevice::open(){
bool bState = false;
if(serialHandler->open(QIODevice::ReadWrite)){
bState = true;
}
connect(serialHandler,&QSerialPort::readyRead,this,&PosDevice::readData);
return bState;
}
void PosDevice::close(){
disconnect(serialHandler,&QSerialPort::readyRead,this,&PosDevice::readData);
serialHandler->close();
}
void PosDevice::readData(){
QByteArray datatmp = serialHandler->readAll();
if(!datatmp.isEmpty()){
QString data = QString::fromUtf8(datatmp);
QVector<QString> posdata;
// qDebug()<<data.split(',').at(3);
// qDebug()<<data.split(',').at(4);
// qDebug()<<data.split(',').at(5);
posdata.append(data.split(',').at(3)); // Heading
posdata.append(data.split(',').at(4)); // Pitch
posdata.append(data.split(',').at(5)); // Roll
posdata.append(data.split(',').at(6)); // Lantitude
posdata.append(data.split(',').at(7)); // Longtitude
posdata.append(data.split(',').at(8)); // Altitude
emit sendPosData(posdata);
}
}