接受功能

This commit is contained in:
才明洋
2018-01-17 15:35:59 +08:00
parent 70810f5e64
commit 0a8435bb63
4 changed files with 24 additions and 10 deletions
+8 -2
View File
@@ -28,10 +28,10 @@ MainWindow::MainWindow(QWidget *parent)
ParityLabel = new QLabel(tr("校验位"));
//发送与接受区域
RecvArea = new QPlainTextEdit();
RecvArea = new QTextEdit();
RecvArea->setReadOnly(true);
//RecvArea->setText(tr("Hello"));
SendArea = new QPlainTextEdit();
SendArea = new QTextEdit();
//按钮
OpenButton = new QPushButton(tr("打开串口"));
@@ -86,6 +86,7 @@ MainWindow::MainWindow(QWidget *parent)
connect(ParityBox, QComboBox::currentTextChanged, serialController, SerialController::getParity);
connect(this, sendData, serialController, SerialController::writeData);
connect(SendButton, QPushButton::clicked, this, SendContent);
connect(serialController, SerialController::recvData, this, getRecv);
}
void MainWindow::CheckSerials()
@@ -142,6 +143,11 @@ void MainWindow::serialClosed()
connect(OpenButton, QPushButton::clicked, this, OpenSerial);
}
void MainWindow::getRecv(QByteArray recv)
{
RecvArea->setText(RecvArea->toPlainText()+QString(recv));
}
void MainWindow::OpenSerial()
{
QString portName = COMBox->currentText().split(' ')[0];
+6 -4
View File
@@ -4,6 +4,7 @@
#include <QWidget>
#include <QComboBox>
#include <QGridLayout>
#include <QTextEdit>
#include <QPlainTextEdit>
#include <QPushButton>
#include <QTimer>
@@ -34,16 +35,17 @@ signals:
void sendData(QString content);
public slots:
void serialOpened();
void serialNotOpened();
void serialClosed();
void serialOpened(); //串口打开成功
void serialNotOpened(); //串口打开失败
void serialClosed(); //串口关闭
void getRecv(QByteArray recv); //串口接受数据
private:
QComboBox *COMBox, *BaudrateBox, *StopbitsBox, *DatabitsBox, *ParityBox;
QStringList COMList, BaudrateList, StopbitsList, DatabitsList, ParityList;
QLabel *BaudrateLabel, *StopbitsLabel, *DatabitsLabel, *ParityLabel;
QGridLayout *layout;
QPlainTextEdit *RecvArea, *SendArea;
QTextEdit *RecvArea, *SendArea;
QPushButton *OpenButton, *SendButton;
QTimer *CheckTimer;
SerialController *serialController;
+8 -4
View File
@@ -3,6 +3,7 @@
SerialController::SerialController(QObject *parent) : QObject(parent)
{
serial = new QSerialPort(this);
connect(serial, QSerialPort::readyRead, this, handleRecv);
}
void SerialController::openSerial(QString name)
@@ -71,13 +72,16 @@ void SerialController::writeData(QString content)
{
if(serial->isWritable())
{
qDebug()<<"Writing content: "<< content;
QByteArray data = content.toUtf8();
qDebug()<<"Byte: "<<data.toHex();
qint64 result = serial->write(data);
qint64 result = serial->write(content.toLatin1().data());
if(result == -1)
emit writeFailed();
else
emit writeSuccess(result);
}
}
void SerialController::handleRecv()
{
QByteArray data = serial->readAll();
emit recvData(data);
}
+2
View File
@@ -17,6 +17,7 @@ signals:
void closeSuccess(); //串口关闭成功
void writeSuccess(int len); //串口发送成功 len为成功发送的字节
void writeFailed(); //串口发送失败
void recvData(QByteArray content); //发送接收到的数据
public slots:
void openSerial(QString name);
@@ -26,6 +27,7 @@ public slots:
void getDatabits(QString databits); //改变数据为
void getParity(QString parity); //改变校验位
void writeData(QString content); //发送数据
void handleRecv(); //接受数据
private:
QSerialPort *serial;