• 大小: 29KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: qt  gps  串口通信  

资源简介

qt实现GPS信息读取,基于NMEA-0183 协议,含注释与完整运行软件,值得参考

资源截图

代码片段和文件信息

#include “gpsGUI.h“
#include “QDebug“
#include “ui_mainwindow.h“

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    readTimer = new QTimer(this);
    //    connect(ui->searchButtonSIGNAL(clicked())thisSLOT(on_searchButton_clicked()));     //ui上使用槽后会自动connect不用再connect,否则会链接两遍
    //    connect(ui->openComButtonSIGNAL(clicked())thisSLOT(on_openComButton_clicked()));
    connect(readTimerSIGNAL(timeout())thisSLOT(readData()));
}

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

//自动搜索并设置端口号
void MainWindow::on_searchButton_clicked()
{
    foreach(const QSerialPortInfo &protInformation QSerialPortInfo::availablePorts())//遍历
    {
        ui->comInformationTextEdit -> clear(); //下方数据栏清空
        ui->comComboBox -> clear();           //串口下拉菜单栏清空
        QStringList comlist;                  //定义一个comlist存protInformation里的portName
        comlist << protInformation.portName();
        ui->comComboBox->addItems(comlist);   //将comlist里的内容传给ui上的comComboBox
        ui->boteComboBox->setCurrentText(“9600“);
        //       ui->comComboBox->addItems(ProtInfomation.portName());
        ui->comStatusLabel->setText(protInformation.portName().append(“可以使用“));//在comStatusLabel显示可以使用的端口名字append函数是用来追加元素到QList容器中
        ui->comInformationTextEdit->append(protInformation.portName());
        ui->comInformationTextEdit->append(protInformation.description());
        ui->comInformationTextEdit->append(protInformation.manufacturer());
    }
}

//打开串口并初始化按钮和文字
void MainWindow::on_openComButton_clicked()
{

    if(ui->openComButton->text()==tr(“打开串口“))      //如果openComButton上的字符为“打开串口”
    {
        serialPortset = new QSerialPort;
        serialPortset->setPortName(ui->comComboBox->currentText());//QSerialPort读取串口信息serialPortset,并将串口comComboBox的名称设置为当前找到的串口名
        serialPortset->open(QIODevice::ReadWrite);    //打开串口读写功能
        serialPortset->setBaudRate(ui->boteComboBox->currentText().toInt());//将当前波特率以整形显示在boteComboBox
        switch (ui->comComboBox->currentText().toInt())
        {
        case 8:serialPortset->setDataBits(QSerialPort::Data8);break;  //如果当前comComboBox选择8,则数据解析方案setDataBits选择Data8
        case 7:serialPortset->setDataBits(QSerialPort::Data7);break;
        case 6:serialPortset->setDataBits(QSerialPort::Data6);break;
        case 5:serialPortset->setDataBits(QSerialPort::Data5);break;
        default:break;
        }

        switch (ui->checkComboBox->currentIndex())    //校验位选择
        {
        case 0:serialPortset->setParity(QSerialPort::NoParity);break;
        case 1:serialPortset->setParity(QSerialPort::OddParity);break;
        case 2:serialPortset->setParity(QSerialPort::EvenParity);break;
        default:break;
        }

        switch (ui->stopComboBox->currentIndex()) //停止位选择
        {
        case 0:serialPortset->setStopBits(QSerialPort::OneStop);break;
        case 1:serialPortset->set

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     270398  2018-04-20 14:43  QT_GPS\GPS.ico

     文件      19105  2018-04-20 15:43  QT_GPS\GPS.pro.user

     文件       9558  2018-05-14 10:05  QT_GPS\gpsGUI.cpp

     文件       1113  2018-04-20 11:57  QT_GPS\gpsGUI.h

     文件      19037  2018-04-20 16:00  QT_GPS\GPS_1.pro.user

     文件      14435  2018-04-20 14:45  QT_GPS\GPS_test.pro.user

     文件       1095  2018-04-20 14:45  QT_GPS\GPS_user.pro

     文件      19082  2018-05-14 10:05  QT_GPS\GPS_user.pro.user

     文件        179  2018-04-17 10:06  QT_GPS\main.cpp

     文件      17289  2018-04-20 12:18  QT_GPS\mainwindow.ui

     目录          0  2018-05-14 10:05  QT_GPS

----------- ---------  ---------- -----  ----

               371291                    11


评论

共有 条评论