QSerialConsoleWindow::QSerialConsoleWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::QSerialConsoleWindow) { ui->setupUi(this); _portSettingsDialog = new QDialog(this); _dialogButtonBox = new QDialogButtonBox(_portSettingsDialog); _mainLayout = new QVBoxLayout(_portSettingsDialog); _serialPort = new QSerialDevice(); addToolBar(_serialPort->toolbar()); _dialogButtonBox->addButton(QDialogButtonBox::Ok); _portSettingsDialog->setWindowTitle("Port Settings"); _mainLayout->addWidget(_serialPort->widget()); _mainLayout->addWidget(_dialogButtonBox); _protocol = new Protocol(); _consoleWidget = new QConsoleWidget(ui->consoleFrame); _consoleWidget->showBanner("Welcome to QSerialConsole v 1.0\n"); portClosed(); connect(_serialPort, SIGNAL(portOpened()), this, SLOT(portOpened())); connect(_serialPort, SIGNAL(portClosed()), this, SLOT(portClosed())); connect(_serialPort, SIGNAL(msgAvailable(QByteArray)), _protocol, SLOT(decode(QByteArray))); connect(_protocol, SIGNAL(dataDecoded(QByteArray)), _consoleWidget, SLOT(showIncomingMessage(QByteArray))); connect(_consoleWidget, SIGNAL(newOutgoingMessage(QByteArray)), _protocol, SLOT(encode(QByteArray))); connect(_protocol, SIGNAL(dataEncoded(QByteArray)), _serialPort, SLOT(write(QByteArray))); connect(_dialogButtonBox, SIGNAL(accepted()), _portSettingsDialog, SLOT(close())); }
bool MdQextSerialCom::setupPort (QString sport, QString speed) { if ( port ) delete port; port = new QextSerialPort(sport, QextSerialPort::EventDriven); if ( speed == "115200") port->setBaudRate(BAUD115200); else port->setBaudRate(BAUD57600); port->setFlowControl(FLOW_OFF); port->setParity(PAR_NONE); port->setDataBits(DATA_8); port->setStopBits(STOP_1); //set timeouts to 500 ms port->setTimeout(500); if (port->open(QIODevice::ReadWrite) == true) { connect(port, SIGNAL(readyRead()), this, SLOT(onReadyRead())); // connect(port, SIGNAL(dsrChanged(bool)), this, SLOT(onDsrChanged(bool))); qDebug() << "listening for data on" << port->portName(); emit portOpened(); } else { qDebug() << "device failed to open:" << port->errorString(); return false; } return true; }
void MdQextSerialCom::openPort() { port->open(QIODevice::ReadWrite); qDebug("is open: %d", port->isOpen()); if ( port->isOpen() ) { emit showStatusMessage( "Serial Port opened" ); emit portOpened(); } else { emit showStatusMessage( "Could not open Serial Port" ); } }
void SerialPort::on_openButton_clicked() { // Make sure things are clear serial->close(); emit(portClosed()); // read in all the settings and open the port serial->setPortName(choosePort->currentText()); switch(chooseBaudRate->currentIndex()) { case 0: serial->setBaudRate(BAUD9600); break; case 1: serial->setBaudRate(BAUD19200); break; case 2: serial->setBaudRate(BAUD38400); break; case 3: serial->setBaudRate(BAUD57600); break; case 4: serial->setBaudRate(BAUD115200); } serial->setDataBits( (DataBitsType)(chooseDataBits->currentIndex()) ); serial->setParity( (ParityType)(chooseParity->currentIndex()) ); serial->setStopBits( (StopBitsType)(chooseStopBits->currentIndex()) ); serial->setFlowControl( (FlowType)(chooseFlowControl->currentIndex()) ); serial->setTimeout(0,100); if(serial->open()) { timer->start(); emit(portOpened()); } }