Skip to content

Commit

Permalink
接受功能
Browse files Browse the repository at this point in the history
  • Loading branch information
才明洋 committed Jan 17, 2018
1 parent 70810f5 commit 0a8435b
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 10 deletions.
10 changes: 8 additions & 2 deletions mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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("打开串口"));
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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];
Expand Down
10 changes: 6 additions & 4 deletions mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <QWidget>
#include <QComboBox>
#include <QGridLayout>
#include <QTextEdit>
#include <QPlainTextEdit>
#include <QPushButton>
#include <QTimer>
Expand Down Expand Up @@ -34,16 +35,17 @@ class MainWindow : public QWidget
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;
Expand Down
12 changes: 8 additions & 4 deletions serialcontroller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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 changes: 2 additions & 0 deletions serialcontroller.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ class SerialController : public QObject
void closeSuccess(); //串口关闭成功
void writeSuccess(int len); //串口发送成功 len为成功发送的字节
void writeFailed(); //串口发送失败
void recvData(QByteArray content); //发送接收到的数据

public slots:
void openSerial(QString name);
Expand All @@ -26,6 +27,7 @@ public slots:
void getDatabits(QString databits); //改变数据为
void getParity(QString parity); //改变校验位
void writeData(QString content); //发送数据
void handleRecv(); //接受数据

private:
QSerialPort *serial;
Expand Down

0 comments on commit 0a8435b

Please sign in to comment.