summaryrefslogtreecommitdiffstats
path: root/examples/slave/dialog.cpp
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@digia.com>2013-04-30 14:46:08 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-03 17:01:47 +0200
commit494c616951d41f2f394a7157f8970e14096f41b4 (patch)
tree9e42e9970b4b28809d97c0de94acc9fa7a81c54e /examples/slave/dialog.cpp
parentbcdeb589dd9d3b0ff7270d380d043b1882eefdc0 (diff)
Fix examples directory layout
Move examples into a dedicated 'serialport' directory. This is in line with what the other modules do, and makes sure that the examples show up in a sensible place even for the 'combined' source packages. Task-number: QTBUG-30912 Change-Id: Iefa2b634df3d2eb34f655b34f6fb24a224b78869 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Diffstat (limited to 'examples/slave/dialog.cpp')
-rw-r--r--examples/slave/dialog.cpp182
1 files changed, 0 insertions, 182 deletions
diff --git a/examples/slave/dialog.cpp b/examples/slave/dialog.cpp
deleted file mode 100644
index 06a2a152..00000000
--- a/examples/slave/dialog.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtSerialPort module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "dialog.h"
-
-#include <QLabel>
-#include <QLineEdit>
-#include <QComboBox>
-#include <QSpinBox>
-#include <QPushButton>
-#include <QGridLayout>
-
-#include <QtSerialPort/QSerialPortInfo>
-
-QT_USE_NAMESPACE
-
-Dialog::Dialog(QWidget *parent)
- : QDialog(parent)
- , transactionCount(0)
- , serialPortLabel(new QLabel(tr("Serial port:")))
- , serialPortComboBox(new QComboBox())
- , waitRequestLabel(new QLabel(tr("Wait request, msec:")))
- , waitRequestSpinBox(new QSpinBox())
- , responseLabel(new QLabel(tr("Response:")))
- , responseLineEdit(new QLineEdit(tr("Hello, I'm Slave.")))
- , trafficLabel(new QLabel(tr("No traffic.")))
- , statusLabel(new QLabel(tr("Status: Not running.")))
- , runButton(new QPushButton(tr("Start")))
-{
- waitRequestSpinBox->setRange(0, 10000);
- waitRequestSpinBox->setValue(20);
-
- foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
- serialPortComboBox->addItem(info.portName());
-
- QGridLayout *mainLayout = new QGridLayout;
- mainLayout->addWidget(serialPortLabel, 0, 0);
- mainLayout->addWidget(serialPortComboBox, 0, 1);
- mainLayout->addWidget(waitRequestLabel, 1, 0);
- mainLayout->addWidget(waitRequestSpinBox, 1, 1);
- mainLayout->addWidget(runButton, 0, 2, 2, 1);
- mainLayout->addWidget(responseLabel, 2, 0);
- mainLayout->addWidget(responseLineEdit, 2, 1, 1, 3);
- mainLayout->addWidget(trafficLabel, 3, 0, 1, 4);
- mainLayout->addWidget(statusLabel, 4, 0, 1, 5);
- setLayout(mainLayout);
-
- setWindowTitle(tr("Slave"));
- serialPortComboBox->setFocus();
-
- timer.setSingleShot(true);
-
- connect(runButton, SIGNAL(clicked()),
- this, SLOT(startSlave()));
- connect(&serial, SIGNAL(readyRead()),
- this, SLOT(readRequest()));
- connect(&timer, SIGNAL(timeout()),
- this, SLOT(processTimeout()));
-
- connect(serialPortComboBox, SIGNAL(currentIndexChanged(QString)),
- this, SLOT(activateRunButton()));
- connect(waitRequestSpinBox, SIGNAL(valueChanged(int)),
- this, SLOT(activateRunButton()));
- connect(responseLineEdit, SIGNAL(textChanged(QString)),
- this, SLOT(activateRunButton()));
-}
-
-void Dialog::startSlave()
-{
- if (serial.portName() != serialPortComboBox->currentText()) {
- serial.close();
- serial.setPortName(serialPortComboBox->currentText());
-
- if (!serial.open(QIODevice::ReadWrite)) {
- processError(tr("Can't open %1, error code %2")
- .arg(serial.portName()).arg(serial.error()));
- return;
- }
-
- if (!serial.setBaudRate(QSerialPort::Baud9600)) {
- processError(tr("Can't set baud rate 9600 baud to port %1, error code %2")
- .arg(serial.portName()).arg(serial.error()));
- return;
- }
-
- if (!serial.setDataBits(QSerialPort::Data8)) {
- processError(tr("Can't set 8 data bits to port %1, error code %2")
- .arg(serial.portName()).arg(serial.error()));
- return;
- }
-
- if (!serial.setParity(QSerialPort::NoParity)) {
- processError(tr("Can't set no patity to port %1, error code %2")
- .arg(serial.portName()).arg(serial.error()));
- return;
- }
-
- if (!serial.setStopBits(QSerialPort::OneStop)) {
- processError(tr("Can't set 1 stop bit to port %1, error code %2")
- .arg(serial.portName()).arg(serial.error()));
- return;
- }
-
- if (!serial.setFlowControl(QSerialPort::NoFlowControl)) {
- processError(tr("Can't set no flow control to port %1, error code %2")
- .arg(serial.portName()).arg(serial.error()));
- return;
- }
- }
-
- runButton->setEnabled(false);
- statusLabel->setText(tr("Status: Running, connected to port %1.")
- .arg(serialPortComboBox->currentText()));
-}
-
-void Dialog::readRequest()
-{
- if (!timer.isActive())
- timer.start(waitRequestSpinBox->value());
- request.append(serial.readAll());
-}
-
-void Dialog::processTimeout()
-{
- serial.write(responseLineEdit->text().toLocal8Bit());
-
- trafficLabel->setText(tr("Traffic, transaction #%1:"
- "\n\r-request: %2"
- "\n\r-response: %3")
- .arg(++transactionCount).arg(QString(request)).arg(responseLineEdit->text()));
- request.clear();
-}
-
-void Dialog::activateRunButton()
-{
- runButton->setEnabled(true);
-}
-
-void Dialog::processError(const QString &s)
-{
- activateRunButton();
- statusLabel->setText(tr("Status: Not running, %1.").arg(s));
- trafficLabel->setText(tr("No traffic."));
-}