#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QSerialPort>
#include<QSerialPortInfo>
#include<QMessageBox>
#include<QInputDialog>
#include"stringtohex.h"
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug()<<"MainWindow has been setup";
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
{
ui->comboBox->addItem(info.portName());
}
info=new QLabel("null");
ui->statusBar->addWidget(info);
ui->comboBoxBaud->addItem("9600");
ui->comboBoxBaud->addItem("19200");
ui->comboBoxBaud->addItem("38400");
ui->comboBoxBaud->addItem("57600");
ui->comboBoxBaud->addItem("115200");
ui->comboBoxDatebits->addItem("8");
ui->comboBoxDatebits->addItem("7");
ui->comboBoxDatebits->addItem("6");
ui->comboBoxDatebits->addItem("5");
ui->comboBoxParity->addItem("None");
ui->comboBoxParity->addItem("Even");
ui->comboBoxParity->addItem("Odd");
ui->comboBoxParity->addItem("Mark");
ui->comboBoxParity->addItem("Space");
ui->comboBoxStopBits->addItem("1");
ui->comboBoxStopBits->addItem("1.5");
ui->comboBoxStopBits->addItem("2");
ui->checkBoxrAscii->setChecked(true);
ui->checkBoxrhex->setChecked(false);
ui->checkBoxsAscii->setChecked(true);
ui->checkBoxshex->setChecked(false);
GroupRev = new QButtonGroup(this);
GroupSend=new QButtonGroup(this);
GroupRev->addButton(ui->checkBoxrAscii);
GroupRev->addButton(ui->checkBoxrhex);
GroupSend->addButton(ui->checkBoxsAscii);
GroupSend->addButton(ui->checkBoxshex);
serialPortHelper=new SerialPortHelper;
//connect(serialPortHelper,SIGNAL(SerialDataIn(QByteArray)),this,SLOT(on_SerialBytesIn(QByteArray)));
connect(serialPortHelper,SIGNAL(SerialDataIn(QString)),this,SLOT(on_SerailStringIn(QString)));
}
MainWindow::~MainWindow()
{
delete info;
delete GroupRev;
delete GroupSend;
delete serialPortHelper;
delete ui;
}
void MainWindow::on_pushButtonOpen_clicked()
{
auto text=ui->pushButtonOpen->text();
if(text=="Open")
{
ui->pushButtonOpen->setText("Close");
serialPortHelper->Load(ui->comboBox->currentText(),ui->comboBoxBaud->currentText(),
ui->comboBoxDatebits->currentText(),
ui->comboBoxStopBits->currentText(),
ui->comboBoxParity->currentText());
}
else
{
ui->pushButtonOpen->setText("Open");
serialPortHelper->UnLoad();
}
}
void MainWindow::on_pushButtonSend_clicked()
{
QString cmdstr=ui->textEditSender->toPlainText();
if(ui->checkBoxsAscii->checkState()==Qt::Checked)
{
serialPortHelper->Write(cmdstr);
}
else
{
QByteArray arr;
StringToHex(cmdstr,arr);
serialPortHelper->Write(arr);
}
}
void MainWindow::on_SerailStringIn(QString data)
{
if(ui->checkBoxrAscii->checkState()==Qt::Checked)
ui->textEditReceiver->append(data);
}
void MainWindow::on_SerialBytesIn(QByteArray data)
{
if(ui->checkBoxrhex->checkState()==Qt::Unchecked) return;
QString ret(data.toHex().toUpper());
int len = ret.length()/2;
qDebug()<<len;
for(int i=1;i<len;i++)
{
qDebug()<<i;
ret.insert(2*i+i-1," ");
}
ui->textEditReceiver->append(ret);
}
MAC平台下QT开发的串口助手源码
5星 · 超过95%的资源 需积分: 50 186 浏览量
2018-06-13
12:37:57
上传
评论
收藏 8KB ZIP 举报
LemoStudio
- 粉丝: 0
- 资源: 14
最新资源
- PHP端通过modbus协议跟第三方设备进行数据通信
- navicat安装包亲测可用
- 算法部署-使用OpenVINO部署MobileStyleGAN轻量化高保真图像合成算法-项目源码-优质项目实战.zip
- 基于java实现远程采集华为逆变器使用modbus tcp协议进行通讯的设备数据
- Unity画面共享Spout插件
- 基于C++用modbus实现的工业设备的数据采集程序,支持Tcp、串口
- 完结12章AI Agent智能应用从0到1定制开发
- 15白落梅:你是锦瑟我为流年:三毛的万水千山-3491776.mobi
- Federated Learning-Aided Prognostics in the Shipping 4.0: Princi
- OFDM 的鲁棒频率和定时同步文献部分阅读笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈