永发信息网

跪求qt开发GPS相关参考资料

答案:1  悬赏:20  手机版
解决时间 2021-11-10 18:41
跪求qt开发GPS相关参考资料
最佳答案
已将全部源代码发至您邮箱,下面是主窗口的源代码。
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
updatingGps(false)
{
ui->setupUi(this);

}

MainWindow::~MainWindow()
{
delete ui;
}



void MainWindow::openGps()
{
myGpsCom =new Win_QextSerialPort("COM1",QextSerialBase::Polling);
//初始化com1端口
if(myGpsCom->open(QIODevice::ReadOnly))
ui->statusBar->showMessage(tr("open com1 success!!!"),2000);
else{
ui->statusBar->showMessage(tr("open com1 failed!!!"),2000);
return;
}

myGpsCom->setBaudRate(BAUD9600); //波特率设置,我们设置为115200

myGpsCom->setDataBits(DATA_8); //数据为设置,我们设置为8位数据位。

myGpsCom->setParity(PAR_NONE); //奇偶校验设置 为无

myGpsCom->setStopBits(STOP_1); //设置一位停止位

myGpsCom->setFlowControl(FLOW_OFF); //数据流控制设置,无

myGpsCom->setTimeout(TIME_OUT);//设置延时

readTimer = new QTimer(this);//创建一个定时器
readTimer->start(TIME_INTERVAL);
QObject::connect(readTimer,SIGNAL(timeout()),this,SLOT(readGpsDate()));

}

void MainWindow::GpsDisplay()
{

QString str;

if(updatingGps)
{
ui->altitudeDisplay->setText(Gps_list[3]+" "+Gps_list[4]);;

ui->longtitudeDisplay->setText(Gps_list[5]+" "+Gps_list[6]);

ui->speedDisplay->setText(Gps_list[7]);
ui->dateDisplay->setText(Gps_list[9]+" UTC");
ui->statusDisplay->setText(Gps_list[2]);

ui->timeDisplay->setText(Gps_list[1]+" UTC");
}
Gps_list.clear();
}

void MainWindow::readGpsDate()
{
int newGpsMsg;
if(updatingGps)
newGpsMsg = myGpsCom->bytesAvailable();
if(newGpsMsg)
ui->statusBar->showMessage(tr("Accepting data!!!"),1000);
else{
ui->statusBar->showMessage(tr("Time Delay or No data!"),1000);
return;//没有数据,就返回
}

QByteArray GPS_Data;
GPS_Data+= myGpsCom->readAll();//read(newGpsMsg);//读串口GPS信息

if(GPS_Data.contains("$GPRMC"))//读取RMC语句
{
GPS_Data.remove(0,GPS_Data.indexOf("$GPRMC"));

if(GPS_Data.contains("*"))
{
QByteArray GPS_RMC = GPS_Data.left(GPS_Data.indexOf("*"));
//获得,$GPRMC 句子的定位信息
Gps_list.clear();
Gps_list << GPS_RMC.split(',');
//提取分隔符之间的信息,存入容器列表

ui->statusBar->showMessage(tr("accept Gps Data in Gps_list"),1000);

GpsDisplay();

}
}

}

void MainWindow::on_StartGPSBtn_clicked()
{
if(!updatingGps)
{
updatingGps=true;
openGps();
}
ui->statusBar->showMessage(tr("GPS STARTED!"),1000);
}

void MainWindow::on_StopGPSBtn_clicked()
{
if(updatingGps)
{
myGpsCom->close();
delete myGpsCom;

readTimer->stop();
updatingGps=false;
ui->statusDisplay->setText(tr("Stop Working !!!"));
}
ui->statusBar->showMessage(tr("COM1 CLOSED!"),1000);

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
( )的青藏公路穿过( ),穿过( ),直抵拉萨
积石山县锦程洗涤服务中心地址在什么地方,想
以后成都成了直辖市了…绵阳会成为四川得省会
电焊不行咋整,才干一年
什么叫做黄金三角形?
我在香港买了一个itunes充值卡 打算充到韩国
HD7750显卡好还是GTX730好
西游记30到35章的摘抄
宗仪与《辍耕录》 宗仪客松江,躬亲稼樯。作
信而富APP和信富优贷是什么关系?
如何将厂家mib文件导入到mg-foft mib browser
私家车可以改造成警车吗?
冠捷一体机是自带网卡吗?
热板冷板哪种冲压的东西好
六千米九十米加上三千米五十米等于多少
推荐资讯
账单分期申请起来方便吗?
为什么我吃得太辣了下面就觉得火辣辣的
谁有镜音双子底边508式模型可以给我吗?
我们家大米生虫子了,爬出来好多,大米已经卖掉
篮球鞋士兵10蓝麂皮如何打理?
如何把50平米的房子!分成一个小客厅和小书房
永尚专业无痕接发(嘉定店)地址在哪,我要去那
纸币的冠字是什么
古代打了败仗为何叫“败北?
凉柚与歌与歌散酒初醒的QQ网名是什么关系
妇年康有官网吗?
武昌什么时候有为什么变成武汉呢?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?