48 lines
1.3 KiB
C++
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);
|
|
}
|
|
|
|
}
|