#include "serialcontroller.h" SerialController::SerialController(QObject *parent) : QObject(parent) { serial = new QSerialPort(this); connect(serial, QSerialPort::readyRead, this, handleRecv); } void SerialController::openSerial(QString name) { serial->setPortName(name); if(serial->open(QIODevice::ReadWrite)) { //串口打开成功 serial->setDataTerminalReady(false); emit openSuccess(); } else { //串口打开失败 emit openFailed(); } } void SerialController::closeSerial() { if(serial->isOpen()) { serial->close(); emit closeSuccess(); } } void SerialController::getBaudrate(QString baudrate) { serial->setBaudRate(baudrate.toInt()); qDebug()<<"The baudrate now is "<setStopBits(QSerialPort::OneStop); else if(stopbits == "1.5") serial->setStopBits(QSerialPort::OneAndHalfStop); else if(stopbits == "2") serial->setStopBits(QSerialPort::TwoStop); qDebug()<<"The stopbits now is "<setDataBits(QSerialPort::DataBits(databits.toInt())); qDebug()<<"The databits now is "<setParity(QSerialPort::NoParity); else if(parity == tr("奇校验")) serial->setParity(QSerialPort::OddParity); else if(parity == tr("偶校验")) serial->setParity(QSerialPort::EvenParity); qDebug()<<"The parity now is "<isWritable()) { 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); }