1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>
4 ** Copyright (C) 2012 Laszlo Papp <lpapp@kde.org>
5 ** Contact: http://www.qt-project.org/legal
6 **
7 ** This file is part of the QtSerialPort module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** Commercial License Usage
11 ** Licensees holding valid commercial Qt licenses may use this file in
12 ** accordance with the commercial license agreement provided with the
13 ** Software or, alternatively, in accordance with the terms contained in
14 ** a written agreement between you and Digia.  For licensing terms and
15 ** conditions see http://qt.digia.com/licensing.  For further information
16 ** use the contact form at http://qt.digia.com/contact-us.
17 **
18 ** GNU Lesser General Public License Usage
19 ** Alternatively, this file may be used under the terms of the GNU Lesser
20 ** General Public License version 2.1 as published by the Free Software
21 ** Foundation and appearing in the file LICENSE.LGPL included in the
22 ** packaging of this file.  Please review the following information to
23 ** ensure the GNU Lesser General Public License version 2.1 requirements
24 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 **
26 ** In addition, as a special exception, Digia gives you certain additional
27 ** rights.  These rights are described in the Digia Qt LGPL Exception
28 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 **
30 ** GNU General Public License Usage
31 ** Alternatively, this file may be used under the terms of the GNU
32 ** General Public License version 3.0 as published by the Free Software
33 ** Foundation and appearing in the file LICENSE.GPL included in the
34 ** packaging of this file.  Please review the following information to
35 ** ensure the GNU General Public License version 3.0 requirements will be
36 ** met: http://www.gnu.org/copyleft/gpl.html.
37 **
38 **
39 ** $QT_END_LICENSE$
40 **
41 ****************************************************************************/
42 
43 #ifndef CONSOLEWINDOW_H
44 #define CONSOLEWINDOW_H
45 
46 #include <QtCore/QtGlobal>
47 
48 #include <QMainWindow>
49 
50 #include <QtSerialPort/QSerialPort>
51 
52 QT_BEGIN_NAMESPACE
53 
54 namespace Ui {
55 class ConsoleWindow;
56 }
57 
58 QT_END_NAMESPACE
59 
60 class Console;
61 class ConsoleSettings;
62 
63 class ConsoleWindow : public QMainWindow
64 {
65     Q_OBJECT
66 
67 public:
68     explicit ConsoleWindow(QWidget *parent = 0);
69     ~ConsoleWindow();
70     void openSerialPort(const QString portName);
71     void closeSerialPort(const QString portName);
72 
73 protected:
74     void closeEvent(QCloseEvent *event);
75 
76 private slots:
77     void openSerialPort();
78     void closeSerialPort();
79     void about();
80     void writeData(const QByteArray &data);
81     void readData();
82     void handleError(QSerialPort::SerialPortError error);
83 
84 private:
85     void initActionsConnections();
86 
87 private:
88     Ui::ConsoleWindow *ui;
89     Console *console;
90     ConsoleSettings *settings;
91     QSerialPort *serial;
92 };
93 
94 #endif // CONSOLEWINDOW_H
95