地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.4 KiB

/*=====================================================================
APM_PLANNER Open Source Ground Control Station
(c) 2013, Bill Bonney <billbonney@communistech.com>
This file is part of the APM_PLANNER project
APM_PLANNER is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
APM_PLANNER is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with APM_PLANNER. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
/**
* @file
* @brief Terminal Console display View.
*
* @author Bill Bonney <billbonney@communistech.com>
*
* Influenced from Qt examples by :-
* Copyright (C) 2012 Denis Shienkov <denis.shienkov@gmail.com>
* Copyright (C) 2012 Laszlo Papp <lpapp@kde.org>
*
*/
#ifndef TERMINALCONSOLE_H
#define TERMINALCONSOLE_H
#include "SerialSettingsDialog.h"
#include <QWidget>
#include <qserialport.h>
namespace Ui {
class TerminalConsole;
}
class Console;
class SettingsDialog;
class QStatusBar;
class QComboBox;
class TerminalConsole : public QWidget
{
Q_OBJECT
public:
enum ConsoleMode { APM, PX4 };
public:
explicit TerminalConsole(QWidget *parent = 0);
~TerminalConsole();
private slots:
void openSerialPort();
void openSerialPort(const SerialSettings &settings);
void closeSerialPort();
void writeData(const QByteArray &data);
void readData();
void sendResetCommand();
void handleError(QSerialPort::SerialPortError error);
private slots:
void setBaudRate(int index);
void setLink(int index);
private:
void initConnections();
void addBaudComboBoxConfig();
void fillPortsInfo(QComboBox &comboxBox);
void addConsoleModesComboBoxConfig();
void writeSettings();
void loadSettings();
private:
Ui::TerminalConsole *ui;
Console *m_console;
QStatusBar *m_statusBar;
SettingsDialog *m_settingsDialog;
QSerialPort *m_serial;
SerialSettings m_settings;
ConsoleMode m_consoleMode;
};
#endif // TERMINALCONSOLE_H