在用QT读取GPS模块的时候,发现读取到的数据总是显示不出来经度,用debug调试,发现数据被分开,一条指令只能读到N那里,
“$GNRMC,064401.65,A,3110.4706987,N”
"110.3568,E,0.604,243.2,30,0713,0.0,W,A*3E”
类似于这种
网上找了好多办法,都没有,今天突然就想到了特别简单的办法,尝试了一下,就可以了,话不多少,看代码
我只放了如何解决这个问题的代码,别的GPS数据解析的网上一大堆,直接搜就得了
.h文件
int k = 0;
QByteArray Message,MessageHead,MessageEnd;
.cpp文件
connect(serial,&QSerialPort::readyRead,this,&Widget::serialRead);
void Widget::serialRead()
{
QByteArray TemporaryMessage;
TemporaryMessage = serial->readAll();
if(TemporaryMessage.contains("$GPRMC"))
{
MessageHead = TemporaryMessage;
k++;
}
if(TemporaryMessage.contains(",,,A*") && !TemporaryMessage.contains("M"))
{
MessageEnd = TemporaryMessage;
k++;
}
if(k==2)
{
Message = MessageHead.append(MessageEnd);
//ui->textEdit->append(Message);
k=0;
gpsAnalysis(Message);
}
}