/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Classes/cSettings.cpp |
---|
0,0 → 1,142 |
/*************************************************************************** |
* Copyright (C) 2008 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#include <QSettings> |
#include <QDir> |
#include "cSettings.h" |
cSettings::cSettings() |
{ |
Settings_ID = 1; |
read_Settings(); |
} |
void cSettings::read_Settings() |
{ |
QSettings Setting("QMK", QA_NAME); |
Setting.beginGroup("Global"); |
Settings_ID = Setting.value("Settings ID", Settings_ID).toInt(); |
Setting.endGroup(); |
Setting.beginGroup("SERVER"); |
SERVER.TCP_PORT = Setting.value("TCP-PORT", DEV_IP_PORT).toInt(); |
SERVER.UDP_PORT = Setting.value("UDP-PORT", DEV_IP_PORT).toInt(); |
SERVER.Password = Setting.value("Password", QString("")).toString(); |
Setting.endGroup(); |
Setting.beginGroup("LIVEDATA"); |
LIVEDATA.Server = Setting.value("Server", QString("")).toString(); |
LIVEDATA.Port = Setting.value("Port", QString("64410")).toString(); |
LIVEDATA.User = Setting.value("User", QString("")).toString(); |
LIVEDATA.Password = Setting.value("Password", QString("")).toString(); |
Setting.endGroup(); |
Setting.beginGroup("CLIENT"); |
CLIENT.TTY_MAX = Setting.value("TTY_MAX", 1).toInt(); |
CLIENT.TTY_ID = Setting.value("TTY_ID", 0).toInt(); |
for (int z = 0; z < CLIENT.TTY_MAX; z++) |
{ |
CLIENT.TTY_DEVICES[z] = Setting.value("TTY_DEVICE_" + QString("%1").arg(z), QString("/dev/ttyS3")).toString(); |
} |
CLIENT.TCP_MAX = Setting.value("TCP_MAX", 1).toInt(); |
CLIENT.TCP_ID = Setting.value("TCP_ID", 0).toInt(); |
CLIENT.TCP_Password = Setting.value("Password", QString("")).toString(); |
for (int z = 0; z < CLIENT.TCP_MAX; z++) |
{ |
CLIENT.TCP_SERVER[z] = Setting.value("TCP_SERVER_" + QString("%1").arg(z), QString("127.0.0.1:64400")).toString(); |
} |
Setting.endGroup(); |
Setting.beginGroup("GUI"); |
GUI.isMax = Setting.value("IsMax",false).toBool(); |
GUI.Size = Setting.value("Size", QSize(500, 350)).toSize(); |
GUI.Point = Setting.value("Point",QPoint(1,1)).toPoint(); |
Setting.endGroup(); |
Setting.beginGroup("TERMINAL"); |
TERMINAL.isMax = Setting.value("IsMax",false).toBool(); |
TERMINAL.Size = Setting.value("Size", QSize(500, 350)).toSize(); |
TERMINAL.Point = Setting.value("Point",QPoint(1,1)).toPoint(); |
DATA.Data = Setting.value("Data",false).toBool(); |
DATA.Info = Setting.value("Info",false).toBool(); |
DATA.Send = Setting.value("Send",false).toBool(); |
DATA.TCP = Setting.value("TCP",false).toBool(); |
Setting.endGroup(); |
} |
void cSettings::write_Settings() |
{ |
QSettings Setting("QMK", QA_NAME); |
Setting.beginGroup("Global"); |
Setting.setValue("Settings ID", Settings_ID); |
Setting.endGroup(); |
Setting.beginGroup("SERVER"); |
Setting.setValue("TCP-PORT", SERVER.TCP_PORT); |
Setting.setValue("UDP-PORT", SERVER.UDP_PORT); |
Setting.setValue("Password", SERVER.Password); |
Setting.endGroup(); |
Setting.beginGroup("LIVEDATA"); |
Setting.setValue("Server", LIVEDATA.Server); |
Setting.setValue("Port", LIVEDATA.Port); |
Setting.setValue("User", LIVEDATA.User); |
Setting.setValue("Password", LIVEDATA.Password); |
Setting.endGroup(); |
Setting.beginGroup("CLIENT"); |
Setting.setValue("TTY_MAX", CLIENT.TTY_MAX); |
Setting.setValue("TTY_ID", CLIENT.TTY_ID); |
Setting.setValue("Password", CLIENT.TCP_Password); |
for (int z = 0; z < CLIENT.TTY_MAX; z++) |
{ |
Setting.setValue("TTY_DEVICE_" + QString("%1").arg(z), CLIENT.TTY_DEVICES[z]); |
} |
Setting.setValue("TCP_MAX", CLIENT.TCP_MAX); |
Setting.setValue("TCP_ID", CLIENT.TCP_ID); |
for (int z = 0; z < CLIENT.TCP_MAX; z++) |
{ |
Setting.setValue("TCP_SERVER_" + QString("%1").arg(z), CLIENT.TCP_SERVER[z]); |
} |
Setting.endGroup(); |
Setting.beginGroup("GUI"); |
Setting.setValue("IsMax", GUI.isMax); |
Setting.setValue("Size", GUI.Size); |
Setting.setValue("Point", GUI.Point); |
Setting.endGroup(); |
Setting.beginGroup("TERMINAL"); |
Setting.setValue("IsMax", TERMINAL.isMax); |
Setting.setValue("Size", TERMINAL.Size); |
Setting.setValue("Point", TERMINAL.Point); |
Setting.setValue("Data", DATA.Data); |
Setting.setValue("Send", DATA.Send); |
Setting.setValue("Info", DATA.Info); |
Setting.setValue("TCP", DATA.TCP); |
Setting.endGroup(); |
} |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Classes/cSettings.h |
---|
0,0 → 1,87 |
/*************************************************************************** |
* Copyright (C) 2008 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#ifndef CSETTINGS_H |
#define CSETTINGS_H |
#include <QSize> |
#include <QPoint> |
#include <QString> |
#include "../Defines.h" |
struct set_SERVER |
{ |
int TCP_PORT; |
int UDP_PORT; |
QString Password; |
}; |
struct set_LIVEDATA |
{ |
QString Server; |
QString Port; |
QString User; |
QString Password; |
}; |
struct set_CLIENT |
{ |
QString TTY_DEVICES[10]; |
int TTY_MAX; |
int TTY_ID; |
QString TCP_SERVER[10]; |
QString TCP_Password; |
int TCP_MAX; |
int TCP_ID; |
}; |
struct set_GUI |
{ |
bool isMax; |
QSize Size; |
QPoint Point; |
}; |
struct set_DATA |
{ |
bool Send; |
bool Data; |
bool Info; |
bool TCP; |
}; |
class cSettings |
{ |
public: |
cSettings(); |
void read_Settings(); |
void write_Settings(); |
int Settings_ID; |
set_DATA DATA; |
set_GUI GUI; |
set_GUI TERMINAL; |
set_SERVER SERVER; |
set_CLIENT CLIENT; |
set_LIVEDATA LIVEDATA; |
}; |
#endif // CSETTINGS_H |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Defines.h |
---|
0,0 → 1,57 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#ifndef DEFINES_H |
#define DEFINES_H |
#include <QString> |
#include "../Global/Global.h" |
#include "../Global/Kopter.h" |
static const QString QA_NAME = "QMK-Communicator"; |
static const QString QA_VERSION_NR = "1.2.0"; |
#ifdef _BETA_ |
static const QString QA_VERSION = QA_VERSION_NR + " (BETA)"; |
#else |
static const QString QA_VERSION = QA_VERSION_NR; |
#endif |
static const QString QA_DATE = "28.03.2010"; |
static const QString QA_YEAR = "2008-2010"; |
static const QString QA_ABOUT = |
"<HTML>" |
"<p><b><font size=8>" + QA_NAME + "</font></b></p>" |
"<br />" |
"Version " + QA_VERSION + " - " + QA_DATE + " on " + QA_OS + "" |
"<br /><br /><b>kompatibel zu " + QA_HWVERSION + "</b>" |
"<br /><br />" |
"(C) " + QA_YEAR + " by " + QA_AUTHOR + " - " |
"<a href=\"mailto:" + QA_EMAIL + "\">" + QA_EMAIL + "</a> <br /><br />" |
"Groundstation-Programm für den Mikrokopter<br /><br />" |
"QMK-Communicator - Kommunikations-Schnittstelle zum Mikrokopter.<br /><br /> " |
"Dieses Programm wird unter den Bedingungen der GPL v2 veröffentlicht." |
"</HTML>"; |
static const int DEV_IP_PORT = 64400; |
static const int DEV_IP_MAX = 21; |
static const QString Base64Hash = "IypzZUNyRXQhQC0qJQ=="; |
#endif // DEFINES_H |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Main.cpp |
---|
0,0 → 1,1024 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 Con_Server; either version 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Con_Server, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#include <QMessageBox> |
#include <QCryptographicHash> |
#include "dlg_Main.h" |
// Konstruktor Main-Form |
//////////////////////// |
dlg_Main::dlg_Main() |
{ |
setupUi(this); |
s_Buffer = ""; |
o_Settings = new cSettings(); |
o_Input = new Input(); |
o_Output = new Input(); |
f_Terminal = new dlg_Terminal(this); |
init_GUI(); |
init_Connections(); |
init_TCP(); |
} |
void dlg_Main::set_ARGV(char *Programm) |
{ |
QString tmp = QString(Programm); |
QMK_Dir = tmp.left(tmp.lastIndexOf("/")); |
} |
// Grafische Oberfläche initialisieren |
////////////////////////////////////// |
void dlg_Main::init_GUI() |
{ |
setWindowTitle(QA_NAME + " " + QA_VERSION); |
resize(o_Settings->GUI.Size); |
move(o_Settings->GUI.Point); |
f_Terminal->resize(o_Settings->TERMINAL.Size); |
f_Terminal->move(o_Settings->TERMINAL.Point); |
f_Terminal->cb_Data->setChecked(o_Settings->DATA.Data); |
f_Terminal->cb_Info->setChecked(o_Settings->DATA.Info); |
f_Terminal->cb_Send->setChecked(o_Settings->DATA.Send); |
f_Terminal->cb_TCP->setChecked(o_Settings->DATA.TCP); |
if (o_Settings->GUI.isMax) |
{ |
showMaximized(); |
} |
// todo: In abhängigkeit von Settings |
wg_IP->setVisible(false); |
rb_Device->setChecked(true); |
for (int z = 0; z < DEV_IP_MAX; z++) |
{ |
Item[z] = new QListWidgetItem(); |
} |
// Liste der Devices |
for(int z = 0; z < o_Settings->CLIENT.TTY_MAX; z++) |
{ |
if (cb_Device->findText(o_Settings->CLIENT.TTY_DEVICES[z]) == -1) |
{ |
cb_Device->addItem(o_Settings->CLIENT.TTY_DEVICES[z]); |
} |
} |
cb_Device->setCurrentIndex(o_Settings->CLIENT.TTY_ID); |
// Liste der IP-Server |
for(int z = 0; z < o_Settings->CLIENT.TCP_MAX; z++) |
{ |
if (cb_Server->findText(o_Settings->CLIENT.TCP_SERVER[z]) == -1) |
{ |
cb_Server->addItem(o_Settings->CLIENT.TCP_SERVER[z]); |
} |
} |
cb_Server->setCurrentIndex(o_Settings->CLIENT.TCP_ID); |
// Password für IP-Verbindung. |
le_Password->setText(o_Settings->CLIENT.TCP_Password); |
btn_Debug->setVisible(false); |
btn_ConnectServer->setVisible(false); |
} |
// Signale mit Slots verbinden |
////////////////////////////// |
void dlg_Main::init_Connections() |
{ |
// Connect-Button |
connect(btn_Connect, SIGNAL(clicked()), this, SLOT(slot_btn_Connect())); |
connect(btn_cScope, SIGNAL(clicked()), this, SLOT(slot_btn_cScope())); |
connect(btn_cSettings, SIGNAL(clicked()), this, SLOT(slot_btn_cSettings())); |
connect(btn_cMaps, SIGNAL(clicked()), this, SLOT(slot_btn_cMaps())); |
connect(btn_cVoice, SIGNAL(clicked()), this, SLOT(slot_btn_cVoice())); |
connect(btn_cLogger, SIGNAL(clicked()), this, SLOT(slot_btn_cLogger())); |
connect(btn_Terminal, SIGNAL(clicked()), this, SLOT(slot_btn_Terminal())); |
connect(btn_ConnectServer, SIGNAL(clicked()), this, SLOT(slot_btn_ConnectServer())); |
connect(btn_Debug, SIGNAL(clicked()), this, SLOT(slot_btn_Debug())); |
connect(rb_NC, SIGNAL(clicked()), this, SLOT(slot_rb_Hardware())); |
connect(rb_FC, SIGNAL(clicked()), this, SLOT(slot_rb_Hardware())); |
connect(rb_MK3MAG, SIGNAL(clicked()), this, SLOT(slot_rb_Hardware())); |
// About QMK-Kernel & About-QT Dialog einfügen |
connect(ac_About, SIGNAL(triggered()), this, SLOT(slot_ac_About())); |
connect(ac_Server, SIGNAL(triggered()), this, SLOT(slot_ac_Server())); |
menu_Help->addAction(trUtf8("Über &Qt"), qApp, SLOT(aboutQt())); |
} |
// IP-Ports initialisiern |
///////////////////////// |
// todo: Port und Anzahl aus Settings |
bool dlg_Main::init_TCP() |
{ |
Connect_Count = 0; |
Con_Server[0].Status = 0; |
Con_Server[0].TCP = false; |
Con_Server[0].UDP = false; |
for (int a = 0; a < DEV_IP_MAX; a++) |
{ |
Con_Server[a].Status = 0; |
} |
TCP_Server = new QTcpServer(this); |
if (TCP_Server->listen(QHostAddress::Any, qint16(o_Settings->SERVER.TCP_PORT))) |
{ |
connect(TCP_Server, SIGNAL(newConnection()), this, SLOT(slot_TCP_NewConnection())); |
} |
return true; |
} |
// Eingangsdaten verarbeiten |
//////////////////////////// |
void dlg_Main::parse_Input_Data(QString t_Data) |
{ |
unsigned char OutData[180]; |
char *InData = t_Data.toLatin1().data(); |
if (HandlerMK::Decode_64(InData, t_Data.length(), OutData) != 0) |
{ |
switch(InData[2]) |
{ |
case 'V' : // Versions-Info |
{ |
o_Input->stop_Resend(DATA_VERSION); |
VersionInfo = HandlerMK::parse_Version(OutData, InData[1] - 'a'); |
lb_Info->setText(tr("Verbunden mit ") + VersionInfo.Hardware + " " + VersionInfo.Version + trUtf8(" über ") + s_Input.Main + "."); |
if (VersionInfo.ID == ADDRESS_FC) |
{ |
rb_FC->setChecked(true); |
} |
if (VersionInfo.ID == ADDRESS_NC) |
{ |
rb_NC->setChecked(true); |
} |
if (VersionInfo.ID == ADDRESS_MK3MAG) |
{ |
rb_MK3MAG->setChecked(true); |
} |
} |
break; |
} |
} |
} |
void dlg_Main::route_Input_Data(QString t_Data) |
{ |
// An alle offenen TCP-Sockets senden. |
for (int a = 1; a < DEV_IP_MAX; a++) |
{ |
if (Con_Server[a].Status > 0) |
{ |
if (Con_Server[a].TCP == true) |
{ |
if ((Con_Server[a].Fields == "") || (Con_Server[a].Fields.contains(t_Data.at(2)) == true)) |
{ |
if (o_Input->Mode() == TTY) |
{ |
send_TCP(o_TCP[a], t_Data + "\r"); |
} |
else |
{ |
send_TCP(o_TCP[a], t_Data); |
} |
} |
else |
{ |
// qDebug("Not Send Data"); |
// qDebug(t_Data.toLatin1().data()); |
} |
} |
} |
} |
if ((o_Output->IsOpen()) && ((Con_Output.Fields == "") || (Con_Output.Fields.contains(t_Data.at(2)) == true))) |
{ |
o_Output->send_Data(t_Data); |
} |
} |
void dlg_Main::parse_TCP_Server_Data(QString t_Data, int t_ID) |
{ |
QStringList Data; |
Data = t_Data.split(":"); |
if (Data.count() > 1) |
{ |
int CMD = Data[2].toInt(); |
QString A = Data[2]; |
// qDebug(A.toLatin1().data()); |
switch(CMD) |
{ |
case 101 : |
{ |
Con_Server[t_ID].Version = Data[3]; |
Item[t_ID]->setText(" " + QString(o_TCP[t_ID]->peerAddress().toString()).leftJustified(15,' ') + " - " + Con_Server[t_ID].Version); |
if (Con_Server[t_ID].Status == 2) |
{ |
Item[t_ID]->setText("*" + QString(o_TCP[t_ID]->peerAddress().toString()).leftJustified(15,' ') + " - " + Con_Server[t_ID].Version); |
} |
else |
{ |
send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 502, "105")); |
} |
send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 502, "106")); |
} |
break; |
case 105 : |
{ |
if (Con_Server[t_ID].Status != 2) |
{ |
// qDebug("Get 105"); |
QString s_MD5PW; |
QByteArray a_MD5PW; |
a_MD5PW = QCryptographicHash::hash(o_Settings->SERVER.Password.toAscii(),QCryptographicHash::Md5); |
s_MD5PW = QString(a_MD5PW.toHex().data()); |
if ((o_Settings->SERVER.Password != "") && (Data[3] == s_MD5PW)) |
{ |
// qDebug("Set 505 OK"); |
send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 505, "OK")); |
Con_Server[t_ID].Status = 2; |
Item[t_ID]->setText("*" + QString(o_TCP[t_ID]->peerAddress().toString()).leftJustified(15,' ') + " - " + Con_Server[t_ID].Version); |
} |
else |
{ |
// qDebug("Set 505 NO"); |
send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 505, "NO")); |
} |
} |
else |
{ |
send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 505, "OK")); |
} |
} |
break; |
case 106 : // Datenfelder anfordern. |
{ |
if (Con_Server[t_ID].Status == 2) |
{ |
Con_Server[t_ID].Fields = Data[3]; |
Item[t_ID]->setText("*" + QString(o_TCP[t_ID]->peerAddress().toString()).leftJustified(15,' ') + " - " + Con_Server[t_ID].Version + " - " + Con_Server[t_ID].Fields); |
// send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 506, Con_Server[t_ID].Fields)); |
} |
} |
} |
} |
} |
// IP-Input-Daten verarbeiten. |
void dlg_Main::parse_TCP_Input_Data(QString t_Data) |
{ |
QStringList Data; |
Data = t_Data.split(":"); |
if (Data.count() > 1) |
{ |
int CMD = Data[2].toInt(); |
switch(CMD) |
{ |
case 502 : |
{ |
// qDebug("Request Data"); |
switch (Data[3].toInt()) |
{ |
case 105 : |
{ |
QString s_MD5PW; |
QByteArray a_MD5PW; |
a_MD5PW = QCryptographicHash::hash(le_Password->text().toAscii(),QCryptographicHash::Md5); |
s_MD5PW = QString(a_MD5PW.toHex().data()); |
o_Input->send_Data(HandlerIP::make_Frame(ID_COMMUNICATOR, 105, s_MD5PW)); |
} |
break; |
} |
} |
break; |
case 505 : |
{ |
if (Data[3] == "OK") |
{ |
} |
else |
{ |
QMessageBox::warning(this, QA_NAME, trUtf8("Authentifizierung fehlgeschlagen. <br />Daten senden zum Mikrokopter nicht möglich."), QMessageBox::Ok); |
} |
} |
break; |
} |
} |
} |
// IP-Output-Daten verarbeiten. (Live-Data) |
void dlg_Main::parse_TCP_Output_Data(QString t_Data) |
{ |
QStringList Data; |
Data = t_Data.split(":"); |
if (Data.count() > 1) |
{ |
int CMD = Data[2].toInt(); |
switch(CMD) |
{ |
case 101 : |
{ |
Con_Output.Version = Data[3]; |
o_Output->send_Data(HandlerIP::make_Frame(ID_COMMUNICATOR, 101, QA_NAME + " " + QA_VERSION)); |
} |
break; |
case 106 : // Datenfelder anfordern. |
{ |
Con_Output.Fields = Data[3]; |
// send_TCP(o_TCP[t_ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 506, Con_Server[t_ID].Fields)); |
} |
break; |
case 502 : |
{ |
switch (Data[3].toInt()) |
{ |
case 104 : |
{ |
// qDebug("Request PW"); |
QString s_MD5PW; |
QByteArray a_MD5PW; |
a_MD5PW = QCryptographicHash::hash(QString(QByteArray::fromBase64(Base64Hash.toLatin1()) + o_Settings->LIVEDATA.Password).toAscii(),QCryptographicHash::Md5); |
s_MD5PW = QString(a_MD5PW.toHex().data()); |
o_Output->send_Data(HandlerIP::make_Frame(ID_COMMUNICATOR, 104, o_Settings->LIVEDATA.User + ";" + s_MD5PW)); |
} |
break; |
} |
} |
break; |
case 504 : |
{ |
if (Data[3] == "OK") |
{ |
Con_Output.Status = 2; |
o_Output->send_Data(HandlerIP::make_Frame(ID_COMMUNICATOR, 502, "106")); |
} |
else |
{ |
QMessageBox::warning(this, QA_NAME, trUtf8("Authentifizierung fehlgeschlagen."), QMessageBox::Ok); |
} |
} |
break; |
} |
} |
} |
// Freies IP-Socket ermitteln |
int dlg_Main::get_FreeSocket() |
{ |
for (int a = 1; a < DEV_IP_MAX; a++) |
{ |
if (Con_Server[a].Status == 0) |
return a; |
} |
return 0; |
} |
// Daten auf TCP Senden |
void dlg_Main::send_TCP(QTcpSocket *Socket, QString Data) |
{ |
QByteArray SendText = Data.toAscii(); |
Socket->write(SendText + "\n"); |
Socket->flush(); |
// qDebug(SendText.data()); |
} |
/////////// |
// Slots // |
/////////// |
void dlg_Main::slot_btn_cScope() |
{ |
QString Programm = QMK_Dir + "/QMK-Scope"; |
QStringList Argumente; |
o_cScope = new QProcess(); |
Argumente << ""; |
o_cScope->start(Programm, Argumente); // Programmaufruf |
} |
void dlg_Main::slot_btn_cSettings() |
{ |
QString Programm = QMK_Dir + "/QMK-Settings"; |
QStringList Argumente; |
o_cSettings = new QProcess(); |
Argumente << ""; |
o_cSettings->start(Programm, Argumente); // Programmaufruf |
} |
void dlg_Main::slot_btn_cMaps() |
{ |
QString Programm = QMK_Dir + "/QMK-Maps"; |
QStringList Argumente; |
o_cMaps = new QProcess(); |
Argumente << ""; |
o_cMaps->start(Programm, Argumente); // Programmaufruf |
} |
void dlg_Main::slot_btn_cVoice() |
{ |
QString Programm = QMK_Dir + "/QMK-Voice"; |
QStringList Argumente; |
o_cVoice = new QProcess(); |
Argumente << ""; |
o_cVoice->start(Programm, Argumente); // Programmaufruf |
} |
void dlg_Main::slot_btn_cLogger() |
{ |
QString Programm = QMK_Dir + "/QMK-Logger"; |
QStringList Argumente; |
o_cLogger = new QProcess(); |
Argumente << ""; |
o_cLogger->start(Programm, Argumente); // Programmaufruf |
} |
void dlg_Main::slot_btn_Terminal() |
{ |
if (!f_Terminal->isVisible()) |
{ |
f_Terminal->show(); |
} |
} |
// Verbindung herstellen zum Datenserver |
void dlg_Main::slot_btn_ConnectServer() |
{ |
if (!o_Output->IsOpen()) |
{ |
Con_Output = Con_Server[0]; |
s_Output.Main = o_Settings->LIVEDATA.Server;//Server[0]; |
s_Output.Sub = o_Settings->LIVEDATA.Port;//Server[1]; |
o_Output = new Input_TCP(); |
o_Output->Init(); |
if (o_Output->Open(s_Output) == true) |
{ |
connect(o_Output, SIGNAL(sig_Disconnected(int)), this, SLOT(slot_Output_Disconnected(int))); |
connect(o_Output, SIGNAL(sig_Connected()), this, SLOT(slot_Output_Connected())); |
} |
btn_ConnectServer->setText(tr("Trenne Server")); |
Con_Output.Status = 1; |
} |
else |
{ |
btn_ConnectServer->setText(tr("Verbinde Server")); |
o_Output->Close(); |
disconnect(o_Output, SIGNAL(sig_NewData(QString)), 0, 0); |
if (o_Output->Mode() == TCP) |
{ |
disconnect(o_Output, SIGNAL(sig_Disconnected(int)), 0, 0); |
disconnect(o_Output, SIGNAL(sig_Connected()), 0, 0); |
} |
} |
} |
void dlg_Main::slot_btn_Debug() |
{ |
if (o_Output->IsOpen()) |
{ |
o_Output->send_Data("#cO=M======wWMrSCuD==A===============================================A=GM======[M=====@==@|p==O=CM=========kN"); |
} |
} |
void dlg_Main::slot_rb_Hardware() |
{ |
// if ((rb_NC->isChecked() == false) && (VersionInfo.ID != ADDRESS_NC)) |
// { |
// o_Input->send_Data(HandlerMK::get_SelectNC()); |
// } |
if (rb_FC->isChecked()) |
{ |
o_Input->send_Data(HandlerMK::get_SelectFC()); |
} |
else |
if (rb_MK3MAG->isChecked()) |
{ |
o_Input->send_Data(HandlerMK::get_SelectMK3MAG()); |
} |
else |
if (rb_NC->isChecked()) |
{ |
o_Input->send_Data(HandlerMK::get_SelectNC()); |
} |
o_Input->send_Data(HandlerMK::make_Frame('v', 0, c_Data, 0).toLatin1().data(), DATA_VERSION); |
} |
void dlg_Main::slot_Output_Disconnected(int Error) |
{ |
disconnect(o_Output, SIGNAL(sig_NewData(QString)), 0, 0); |
if (o_Output->Mode() == TCP) |
{ |
disconnect(o_Output, SIGNAL(sig_Disconnected(int)), 0, 0); |
disconnect(o_Output, SIGNAL(sig_Connected()), 0, 0); |
} |
btn_ConnectServer->setText(tr("Verbinde Server")); |
/* switch (Error) |
{ |
case REMOTECLOSED : |
{ |
// lb_Status->setText(tr("Verbindung vom Server beendet.")); |
QMessageBox::warning(this, QA_NAME,tr("QMK-Datenserver: Verbindung wurde vom Server beendet."), QMessageBox::Ok); |
} |
break; |
case REFUSED : |
{ |
// lb_Status->setText(tr("Server nicht gefunden.")); |
QMessageBox::warning(this, QA_NAME,tr("QMK-Datenserver: Kann nicht zum Server verbinden."), QMessageBox::Ok); |
} |
break; |
case 3 : |
{ |
// lb_Status->setText(tr("Serververbindung getrennt. Logindaten falsch.")); |
QMessageBox::warning(this, QA_NAME,tr("QMK-Datenserver: Loginname oder Password falsch."), QMessageBox::Ok); |
} |
break; |
default : |
{ |
// lb_Status->setText(tr("Getrennt vom QMK-Datenserver.")); |
} |
break; |
} |
*/ |
} |
void dlg_Main::slot_Output_Connected() |
{ |
connect(o_Output, SIGNAL(sig_NewData(QString)), this, SLOT(slot_Output_Data(QString))); |
} |
void dlg_Main::slot_Output_Data(QString t_Data) |
{ |
if ((t_Data[0] == '#')) |
{ |
} |
else if (o_Output->Mode() == TCP) |
{ |
show_Terminal(6, "IP:" + t_Data); |
parse_TCP_Output_Data(t_Data); |
} |
} |
// Verbindung herstellen zum Kopter |
void dlg_Main::slot_btn_Connect() |
{ |
if (!o_Input->IsOpen()) |
{ |
if (rb_Device->isChecked()) |
{ |
if (cb_Device->findText(cb_Device->currentText()) == -1) |
{ |
cb_Device->addItem(cb_Device->currentText()); |
cb_Device->setCurrentIndex(cb_Device->findText(cb_Device->currentText())); |
} |
s_Input.Main = cb_Device->currentText(); |
o_Input = new Input_TTY(); |
o_Input->Init(); |
if (o_Input->Open(s_Input) == true) |
{ |
connect(o_Input, SIGNAL(sig_NewData(QString)), this, SLOT(slot_Input_Data(QString))); |
o_Input->send_Data(HandlerMK::make_Frame('v', 0, c_Data, 0).toLatin1().data(), DATA_VERSION); |
btn_Connect->setText(tr("Trennen")); |
cb_Device->setEnabled(false); |
} |
} |
else if (rb_TCP->isChecked()) |
{ |
if (cb_Server->findText(cb_Device->currentText()) == -1) |
{ |
cb_Server->addItem(cb_Server->currentText()); |
cb_Server->setCurrentIndex(cb_Server->findText(cb_Server->currentText())); |
} |
cb_Server->setEnabled(false); |
le_Password->setEnabled(false); |
o_Input = new Input_TCP(); |
o_Input->Init(); |
set_Input s_Input; |
QStringList Server = cb_Server->currentText().split(":"); |
s_Input.Main = Server[0]; |
s_Input.Sub = Server[1]; |
if (o_Input->Open(s_Input) == true) |
{ |
connect(o_Input, SIGNAL(sig_Disconnected(int)), this, SLOT(slot_Input_Disconnected(int))); |
connect(o_Input, SIGNAL(sig_Connected()), this, SLOT(slot_Input_Connected())); |
} |
} |
} |
else |
{ |
{ |
cb_Device->setEnabled(true); |
cb_Server->setEnabled(true); |
le_Password->setEnabled(true); |
o_Input->Close(); |
btn_Connect->setText(tr("Verbinden")); |
disconnect(o_Input, SIGNAL(sig_NewData(QString)), 0, 0); |
if (o_Input->Mode() == TCP) |
{ |
disconnect(o_Input, SIGNAL(sig_Disconnected(int)), 0, 0); |
disconnect(o_Input, SIGNAL(sig_Connected()), 0, 0); |
} |
} |
} |
} |
// Neue Daten empfangen. |
void dlg_Main::slot_Input_Data(QString t_Data) |
{ |
if ((t_Data[0] == '#')) |
{ |
if ((HandlerMK::Check_CRC(t_Data.toLatin1().data(), t_Data.length() - 1)) || ((o_Input->Mode() == TTY) && (HandlerMK::Check_CRC(t_Data.toLatin1().data(), t_Data.length())))) |
{ |
show_Terminal(1, "MK: " + t_Data); |
parse_Input_Data(t_Data); |
route_Input_Data(t_Data); |
} |
else |
{ |
show_Terminal(2, t_Data); |
} |
} |
else if ((o_Input->Mode() == TCP) && (t_Data[0] == '$')) |
{ |
show_Terminal(4, t_Data); |
parse_TCP_Input_Data(t_Data); |
} |
else |
{ |
show_Terminal(2, t_Data); |
} |
} |
void dlg_Main::slot_Input_Disconnected(int Error) |
{ |
cb_Server->setEnabled(true); |
le_Password->setEnabled(true); |
disconnect(o_Input, SIGNAL(sig_NewData(QString)), 0, 0); |
if (o_Input->Mode() == TCP) |
{ |
disconnect(o_Input, SIGNAL(sig_Disconnected(int)), 0, 0); |
disconnect(o_Input, SIGNAL(sig_Connected()), 0, 0); |
} |
btn_Connect->setText(tr("Verbinden")); |
/* switch (Error) |
{ |
case REMOTECLOSED : |
{ |
// lb_Status->setText(tr("Verbindung vom Server beendet.")); |
QMessageBox::warning(this, QA_NAME,tr("QMK-Datenserver: Verbindung wurde vom Server beendet."), QMessageBox::Ok); |
} |
break; |
case REFUSED : |
{ |
// lb_Status->setText(tr("Server nicht gefunden.")); |
QMessageBox::warning(this, QA_NAME,tr("QMK-Datenserver: Kann nicht zum Server verbinden."), QMessageBox::Ok); |
} |
break; |
case 3 : |
{ |
// lb_Status->setText(tr("Serververbindung getrennt. Logindaten falsch.")); |
QMessageBox::warning(this, QA_NAME,tr("QMK-Datenserver: Loginname oder Password falsch."), QMessageBox::Ok); |
} |
break; |
default : |
{ |
// lb_Status->setText(tr("Getrennt vom QMK-Datenserver.")); |
} |
break; |
} |
*/ |
} |
void dlg_Main::slot_Input_Connected() |
{ |
connect(o_Input, SIGNAL(sig_NewData(QString)), this, SLOT(slot_Input_Data(QString))); |
o_Input->send_Data(HandlerIP::make_Frame(ID_COMMUNICATOR, 101, QA_NAME + " " + QA_VERSION)); |
o_Input->send_Data(HandlerMK::make_Frame('v', 0, c_Data, 0).toLatin1().data(), DATA_VERSION); |
btn_Connect->setText(tr("Trennen")); |
} |
// About-Dialog |
void dlg_Main::slot_ac_About() |
{ |
QMessageBox::about(this, trUtf8(("Über ")) + QA_NAME, QA_ABOUT); |
} |
void dlg_Main::slot_ac_Server() |
{ |
dlg_Preferences *f_Preferences = new dlg_Preferences(this); |
f_Preferences->set_Settings(o_Settings); |
if (f_Preferences->exec()==QDialog::Accepted) |
{ |
o_Settings = f_Preferences->get_Settings(); |
o_Settings->write_Settings(); |
} |
} |
void dlg_Main::show_Terminal(int t_Typ, QString t_Data) |
{ |
if (f_Terminal->isVisible()) |
{ |
f_Terminal->show_Data(t_Typ, t_Data); |
} |
} |
///////////////////// |
// IP-Slots Server // |
///////////////////// |
void dlg_Main::slot_TCP_NewConnection() |
{ |
if (!o_Input->IsOpen()) |
{ |
slot_btn_Connect(); |
} |
int ID = get_FreeSocket(); |
if (ID != 0) |
{ |
Connect_Count++; |
// Leeres Con_Server erzeugen |
Con_Server[ID] = Con_Server[0]; |
Con_Server[ID].Status = 1; |
Con_Server[ID].TCP = true; |
Con_Server[ID].Fields = ""; |
Con_Server[ID].Version = "n/a"; |
o_TCP[ID] = TCP_Server->nextPendingConnection(); |
o_TCP[ID]->setProperty("ID", ID); |
send_TCP(o_TCP[ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 101, QA_NAME + " " + QA_VERSION)); |
connect(o_TCP[ID], SIGNAL(disconnected()),o_TCP[ID], SLOT(deleteLater())); |
connect(o_TCP[ID], SIGNAL(disconnected()),this, SLOT(slot_TCP_Disconnect())); |
connect(o_TCP[ID], SIGNAL(readyRead()),this, SLOT(slot_TCP_Read())); |
Item[ID]->setText(" " + QString(o_TCP[ID]->peerAddress().toString()).leftJustified(15,' ') + " - n/a"); |
lw_Clients->addItem(Item[ID]); |
if (o_TCP[ID]->peerAddress().toString() == "127.0.0.1") |
{ |
Con_Server[ID].Status = 2; |
Item[ID]->setText("*" + QString(o_TCP[ID]->peerAddress().toString()).leftJustified(15,' ') + " - n/a"); |
} |
if (o_Input->IsOpen()) |
{ |
// send_TCP(o_TCP[ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 520, cb_Device->currentText())); |
} |
} |
else // Server voll |
{ |
o_TCP[ID] = TCP_Server->nextPendingConnection(); |
o_TCP[ID]->setProperty("ID", ID); |
send_TCP(o_TCP[ID],HandlerIP::make_Frame(ID_COMMUNICATOR, 521, "Sorry, Server full.")); |
o_TCP[ID]->disconnectFromHost(); |
} |
} |
void dlg_Main::slot_TCP_Read() |
{ |
QTcpSocket *Socket = (QTcpSocket*)sender(); |
// if (Socket->canReadLine()) |
{ |
int ID = Socket->property("ID").toUInt(); |
ID = ID; |
// QString t_Data = QString(TCP_Socket->readLine(TCP_Socket->bytesAvailable())).remove(QChar('\n')); |
QString t_Data = s_Buffer + QString(Socket->readAll()).remove(QChar('\n')); |
s_Buffer = ""; |
t_Data = t_Data.replace('\r', "\r\n"); |
QStringList l_Data = t_Data.split('\n'); |
for (int z = 0; z < l_Data.count(); z++) |
{ |
if ((l_Data[z][l_Data[z].length() - 1] == '\r')) |
{ |
l_Data[z].remove(QChar('\r')); |
if (l_Data[z][0] == '$') |
{ |
parse_TCP_Server_Data(l_Data[z], ID); |
show_Terminal(5, "IP: " + l_Data[z]); |
} |
else |
{ |
if ((Con_Server[ID].Status >= 2)) |
{ |
show_Terminal(3, "MK> " + l_Data[z]); |
o_Input->send_Data(l_Data[z]); |
} |
} |
} |
else |
{ if (l_Data[z].length() > 1) |
{ |
qDebug(QString("Ohne Ende: " + l_Data[z]).toLatin1().data()); |
s_Buffer = s_Buffer + l_Data[z]; |
} |
} |
} |
/* |
QString t_Data = QString(Socket->readLine((Socket->bytesAvailable()))); |
QStringList s_Data = t_Data.split('\r'); |
for (int z = 0; z < s_Data.count() - 1; z++) |
{ |
if (s_Data[z][0] == '$') |
{ |
parse_TCP_Server_Data(s_Data[z], ID); |
show_Terminal(5, "IP: " + s_Data[z]); |
} |
else |
{ |
if ((Con_Server[ID].Status >= 2)) |
{ |
show_Terminal(3, s_Data[z]); |
o_Input->send_Data(s_Data[z]); |
} |
} |
} |
} |
*/ |
} |
} |
void dlg_Main::slot_TCP_Disconnect() |
{ |
QTcpSocket *Socket = (QTcpSocket*)sender(); |
int ID = Socket->property("ID").toUInt(); |
Item[ID]->setText(" " + QString(o_TCP[ID]->peerAddress().toString()).leftJustified(15,' ') + " - Disconected"); |
Con_Server[ID] = Con_Server[0]; |
Con_Server[ID].Status = 0; |
Connect_Count--; |
Socket->setProperty("ID", 0); |
if ((Connect_Count == 0) && (o_Input->IsOpen())) |
slot_btn_Connect(); |
} |
// Programm Ende |
//////////////// |
dlg_Main::~dlg_Main() |
{ |
o_Settings->GUI.isMax = isMaximized(); |
o_Settings->GUI.Size = size(); |
o_Settings->GUI.Point = pos(); |
// o_Settings->GUI.isMax = isMaximized(); |
o_Settings->TERMINAL.Size = f_Terminal->size(); |
o_Settings->TERMINAL.Point = f_Terminal->pos(); |
o_Settings->CLIENT.TTY_MAX = cb_Device->count(); |
o_Settings->CLIENT.TTY_ID = cb_Device->currentIndex(); |
for (int z = 0; z < cb_Device->count(); z++) |
{ |
if (z < 10) |
{ |
o_Settings->CLIENT.TTY_DEVICES[z] = cb_Device->itemText(z); |
} |
} |
o_Settings->CLIENT.TCP_MAX = cb_Server->count(); |
o_Settings->CLIENT.TCP_ID = cb_Server->currentIndex(); |
for (int z = 0; z < cb_Server->count(); z++) |
{ |
if (z < 10) |
{ |
o_Settings->CLIENT.TCP_SERVER[z] = cb_Server->itemText(z); |
} |
} |
o_Settings->DATA.Data = f_Terminal->cb_Data->isChecked(); |
o_Settings->DATA.Info = f_Terminal->cb_Info->isChecked(); |
o_Settings->DATA.Send = f_Terminal->cb_Send->isChecked(); |
o_Settings->DATA.TCP = f_Terminal->cb_TCP->isChecked(); |
o_Settings->write_Settings(); |
// qDebug("Ende."); |
} |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Main.h |
---|
0,0 → 1,152 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#ifndef DLG_MAIN_H |
#define DLG_MAIN_H |
#include <QtGui/QMainWindow> |
#include <QTcpServer> |
#include <QTcpSocket> |
#include <QProcess> |
#include <QDir> |
#include "ui_dlg_Main.h" |
#include "dlg_Preferences.h" |
#include "dlg_Terminal.h" |
#include "../Defines.h" |
#include "../TypeDefs.h" |
#include "../Classes/cSettings.h" |
#include "../../Global/Kopter.h" |
#include "../../Global/Class_Input/Input.h" |
#include "../../Global/Class_Input/Input_TTY.h" |
#include "../../Global/Class_Input/Input_TCP.h" |
#include "../../Global/Class_HandlerMK/HandlerMK.h" |
#include "../../Global/Class_HandlerIP/HandlerIP.h" |
#include "../../Global/Class_SerialPort/ManageSerialPort.h" |
class dlg_Main : public QMainWindow, public Ui::dlg_Main_UI |
{ |
Q_OBJECT |
public: |
dlg_Main(); |
~dlg_Main(); |
void set_ARGV(char *Programm); |
private: |
QString QMK_Dir; |
// Input Device. |
Input *o_Input; |
Input *o_Output; |
set_Input s_Input; |
set_Input s_Output; |
// Settings-Object |
cSettings *o_Settings; |
dlg_Terminal *f_Terminal; |
QProcess *o_cScope; |
QProcess *o_cSettings; |
QProcess *o_cMaps; |
QProcess *o_cVoice; |
QProcess *o_cLogger; |
// TCP Server und Socket. |
QTcpServer *TCP_Server; |
QTcpSocket *o_TCP[DEV_IP_MAX]; |
QString s_Buffer; |
//Liste alle IP-Verbindungen und deren Parameter. |
int Connect_Count; |
sConnection Con_Server[DEV_IP_MAX]; |
sConnection Con_Output; |
QListWidgetItem *Item[DEV_IP_MAX]; |
s_Hardware VersionInfo; |
char c_Data[150]; |
// Programm-Initialisirungen |
void init_GUI(); |
void init_Connections(); |
// IP-Ports initialisieren |
bool init_TCP(); |
// Einkommende Datenpackete zerlegen. |
void parse_Input_Data(QString t_Data); |
// Einkommende Datenpackete weiterleiten |
void route_Input_Data(QString t_Data); |
void parse_TCP_Server_Data(QString t_Data, int t_ID); |
void parse_TCP_Input_Data(QString t_Data); |
void parse_TCP_Output_Data(QString t_Data); |
// Freies IP-Socket ermitteln |
int get_FreeSocket(); |
// Daten aufs IP-Interface senden. |
void send_TCP(QTcpSocket *Socket, QString Data); |
void show_Terminal(int t_Typ, QString t_Data); |
private slots: |
void slot_ac_About(); |
void slot_ac_Server(); |
// Connect-Button |
void slot_btn_Connect(); |
void slot_btn_cScope(); |
void slot_btn_cSettings(); |
void slot_btn_cMaps(); |
void slot_btn_cVoice(); |
void slot_btn_cLogger(); |
void slot_btn_Terminal(); |
void slot_btn_ConnectServer(); |
void slot_btn_Debug(); |
void slot_rb_Hardware(); |
// Einkommende Datenpackete. |
void slot_Input_Data(QString t_Data); |
void slot_Input_Disconnected(int Error); |
void slot_Input_Connected(); |
void slot_TCP_NewConnection(); |
void slot_TCP_Disconnect(); |
void slot_TCP_Read(); |
void slot_Output_Data(QString t_Data); |
void slot_Output_Disconnected(int Error); |
void slot_Output_Connected(); |
}; |
#endif // DLG_MAIN_H |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Main.ui |
---|
0,0 → 1,546 |
<?xml version="1.0" encoding="UTF-8"?> |
<ui version="4.0"> |
<class>dlg_Main_UI</class> |
<widget class="QMainWindow" name="dlg_Main_UI"> |
<property name="geometry"> |
<rect> |
<x>0</x> |
<y>0</y> |
<width>519</width> |
<height>372</height> |
</rect> |
</property> |
<property name="windowTitle"> |
<string>QMK-Communicator</string> |
</property> |
<property name="windowIcon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Communicator.png</normaloff>:/Icon/Global/Images/Icons/QMK-Communicator.png</iconset> |
</property> |
<widget class="QWidget" name="centralWidget"> |
<layout class="QGridLayout" name="gridLayout_9"> |
<property name="margin"> |
<number>2</number> |
</property> |
<item row="0" column="0"> |
<widget class="QGroupBox" name="groupBox"> |
<property name="sizePolicy"> |
<sizepolicy hsizetype="Minimum" vsizetype="Minimum"> |
<horstretch>0</horstretch> |
<verstretch>0</verstretch> |
</sizepolicy> |
</property> |
<property name="title"> |
<string>Verbindung zum Mikrokopter</string> |
</property> |
<layout class="QGridLayout" name="gridLayout_8"> |
<item row="0" column="0" colspan="2"> |
<widget class="QFrame" name="frame"> |
<property name="frameShape"> |
<enum>QFrame::StyledPanel</enum> |
</property> |
<property name="frameShadow"> |
<enum>QFrame::Raised</enum> |
</property> |
<layout class="QGridLayout" name="gridLayout_7"> |
<property name="margin"> |
<number>2</number> |
</property> |
<item row="0" column="0"> |
<layout class="QHBoxLayout" name="horizontalLayout_3"> |
<item> |
<widget class="QRadioButton" name="rb_Device"> |
<property name="text"> |
<string>Device</string> |
</property> |
</widget> |
</item> |
<item> |
<widget class="QRadioButton" name="rb_TCP"> |
<property name="text"> |
<string>T CP</string> |
</property> |
</widget> |
</item> |
<item> |
<widget class="QRadioButton" name="rb_UDP"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
<property name="text"> |
<string>UDP</string> |
</property> |
</widget> |
</item> |
</layout> |
</item> |
</layout> |
<zorder></zorder> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="QWidget" name="wg_Device" native="true"> |
<property name="sizePolicy"> |
<sizepolicy hsizetype="Expanding" vsizetype="Expanding"> |
<horstretch>0</horstretch> |
<verstretch>0</verstretch> |
</sizepolicy> |
</property> |
<layout class="QGridLayout" name="gridLayout_5"> |
<property name="margin"> |
<number>2</number> |
</property> |
<item row="1" column="2"> |
<widget class="QComboBox" name="cb_Device"> |
<property name="editable"> |
<bool>true</bool> |
</property> |
<property name="insertPolicy"> |
<enum>QComboBox::InsertAtTop</enum> |
</property> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="QLabel" name="lb_Device"> |
<property name="text"> |
<string>Device:</string> |
</property> |
</widget> |
</item> |
<item row="0" column="2"> |
<spacer name="horizontalSpacer"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
<property name="sizeHint" stdset="0"> |
<size> |
<width>40</width> |
<height>1</height> |
</size> |
</property> |
</spacer> |
</item> |
</layout> |
</widget> |
</item> |
<item row="4" column="0" colspan="2"> |
<widget class="QFrame" name="frame_2"> |
<property name="frameShape"> |
<enum>QFrame::StyledPanel</enum> |
</property> |
<property name="frameShadow"> |
<enum>QFrame::Raised</enum> |
</property> |
<layout class="QGridLayout" name="gridLayout_2"> |
<property name="margin"> |
<number>2</number> |
</property> |
<item row="1" column="0"> |
<layout class="QGridLayout" name="gridLayout"> |
<item row="0" column="0"> |
<widget class="QRadioButton" name="rb_FC"> |
<property name="text"> |
<string>FlightCtrl</string> |
</property> |
</widget> |
</item> |
<item row="0" column="1"> |
<widget class="QRadioButton" name="rb_NC"> |
<property name="text"> |
<string>NaviCtrl</string> |
</property> |
</widget> |
</item> |
<item row="0" column="2"> |
<widget class="QRadioButton" name="rb_MK3MAG"> |
<property name="text"> |
<string>MK3MAG</string> |
</property> |
</widget> |
</item> |
</layout> |
</item> |
</layout> |
</widget> |
</item> |
<item row="3" column="0" colspan="2"> |
<widget class="QPushButton" name="btn_Connect"> |
<property name="text"> |
<string>Verbinden</string> |
</property> |
</widget> |
</item> |
<item row="2" column="0"> |
<widget class="QWidget" name="wg_IP" native="true"> |
<property name="enabled"> |
<bool>true</bool> |
</property> |
<layout class="QGridLayout" name="gridLayout_6"> |
<property name="margin"> |
<number>2</number> |
</property> |
<item row="0" column="1"> |
<spacer name="horizontalSpacer_3"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
<property name="sizeHint" stdset="0"> |
<size> |
<width>60</width> |
<height>1</height> |
</size> |
</property> |
</spacer> |
</item> |
<item row="1" column="1"> |
<widget class="QComboBox" name="cb_Server"> |
<property name="editable"> |
<bool>true</bool> |
</property> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="QLabel" name="label"> |
<property name="text"> |
<string>Server:</string> |
</property> |
</widget> |
</item> |
<item row="1" column="3"> |
<widget class="QLineEdit" name="le_Password"> |
<property name="echoMode"> |
<enum>QLineEdit::Password</enum> |
</property> |
</widget> |
</item> |
<item row="1" column="2"> |
<widget class="QLabel" name="label_2"> |
<property name="text"> |
<string>PW:</string> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
</item> |
</layout> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="QGroupBox" name="groupBox_2"> |
<property name="title"> |
<string>Client-Verbindungen</string> |
</property> |
<layout class="QGridLayout" name="gridLayout_3"> |
<property name="horizontalSpacing"> |
<number>0</number> |
</property> |
<item row="0" column="0"> |
<widget class="QListWidget" name="lw_Clients"> |
<property name="font"> |
<font> |
<family>Courier 10 Pitch</family> |
<pointsize>12</pointsize> |
</font> |
</property> |
<property name="autoScroll"> |
<bool>false</bool> |
</property> |
<property name="showDropIndicator" stdset="0"> |
<bool>false</bool> |
</property> |
<property name="resizeMode"> |
<enum>QListView::Adjust</enum> |
</property> |
<property name="viewMode"> |
<enum>QListView::ListMode</enum> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
</item> |
<item row="3" column="0" colspan="2"> |
<widget class="QLabel" name="lb_Info"> |
<property name="frameShape"> |
<enum>QFrame::Box</enum> |
</property> |
<property name="text"> |
<string/> |
</property> |
</widget> |
</item> |
<item row="0" column="1" rowspan="2"> |
<widget class="QGroupBox" name="groupBox_3"> |
<property name="minimumSize"> |
<size> |
<width>150</width> |
<height>0</height> |
</size> |
</property> |
<property name="maximumSize"> |
<size> |
<width>150</width> |
<height>16777215</height> |
</size> |
</property> |
<property name="title"> |
<string>Clients</string> |
</property> |
<layout class="QGridLayout" name="gridLayout_4"> |
<item row="0" column="0"> |
<widget class="QPushButton" name="btn_Terminal"> |
<property name="text"> |
<string>Terminal</string> |
</property> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Actions/Global/Images/Actions/Terminal.png</normaloff>:/Actions/Global/Images/Actions/Terminal.png</iconset> |
</property> |
<property name="iconSize"> |
<size> |
<width>20</width> |
<height>20</height> |
</size> |
</property> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="Line" name="line"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
</widget> |
</item> |
<item row="2" column="0"> |
<widget class="QPushButton" name="btn_cScope"> |
<property name="text"> |
<string>Scope</string> |
</property> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Scope.png</normaloff>:/Icon/Global/Images/Icons/QMK-Scope.png</iconset> |
</property> |
<property name="iconSize"> |
<size> |
<width>20</width> |
<height>20</height> |
</size> |
</property> |
</widget> |
</item> |
<item row="3" column="0"> |
<widget class="QPushButton" name="btn_cSettings"> |
<property name="text"> |
<string>Settings</string> |
</property> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Settings.png</normaloff>:/Icon/Global/Images/Icons/QMK-Settings.png</iconset> |
</property> |
<property name="iconSize"> |
<size> |
<width>20</width> |
<height>20</height> |
</size> |
</property> |
</widget> |
</item> |
<item row="4" column="0"> |
<widget class="QPushButton" name="btn_cMaps"> |
<property name="text"> |
<string>Maps</string> |
</property> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Maps.png</normaloff>:/Icon/Global/Images/Icons/QMK-Maps.png</iconset> |
</property> |
<property name="iconSize"> |
<size> |
<width>20</width> |
<height>20</height> |
</size> |
</property> |
</widget> |
</item> |
<item row="7" column="0"> |
<spacer name="verticalSpacer"> |
<property name="orientation"> |
<enum>Qt::Vertical</enum> |
</property> |
<property name="sizeHint" stdset="0"> |
<size> |
<width>20</width> |
<height>229</height> |
</size> |
</property> |
</spacer> |
</item> |
<item row="6" column="0"> |
<widget class="QPushButton" name="btn_cVoice"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
<property name="text"> |
<string>Voice</string> |
</property> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Voice.png</normaloff>:/Icon/Global/Images/Icons/QMK-Voice.png</iconset> |
</property> |
<property name="iconSize"> |
<size> |
<width>20</width> |
<height>20</height> |
</size> |
</property> |
</widget> |
</item> |
<item row="5" column="0"> |
<widget class="QPushButton" name="btn_cLogger"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
<property name="text"> |
<string>Logger</string> |
</property> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Logger.png</normaloff>:/Icon/Global/Images/Icons/QMK-Logger.png</iconset> |
</property> |
<property name="iconSize"> |
<size> |
<width>20</width> |
<height>20</height> |
</size> |
</property> |
</widget> |
</item> |
<item row="8" column="0"> |
<widget class="QPushButton" name="btn_ConnectServer"> |
<property name="text"> |
<string>Verbinde Server</string> |
</property> |
</widget> |
</item> |
<item row="9" column="0"> |
<widget class="QPushButton" name="btn_Debug"> |
<property name="text"> |
<string>Debug-Button</string> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
</item> |
</layout> |
</widget> |
<widget class="QMenuBar" name="menuBar"> |
<property name="geometry"> |
<rect> |
<x>0</x> |
<y>0</y> |
<width>519</width> |
<height>21</height> |
</rect> |
</property> |
<widget class="QMenu" name="menu_Program"> |
<property name="title"> |
<string>Programm</string> |
</property> |
<addaction name="ac_Server"/> |
<addaction name="separator"/> |
<addaction name="ac_Quit"/> |
</widget> |
<widget class="QMenu" name="menu_Help"> |
<property name="title"> |
<string>Hilfe</string> |
</property> |
<addaction name="ac_About"/> |
</widget> |
<addaction name="menu_Program"/> |
<addaction name="menu_Help"/> |
</widget> |
<action name="ac_Quit"> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Actions/Global/Images/Actions/Exit.png</normaloff>:/Actions/Global/Images/Actions/Exit.png</iconset> |
</property> |
<property name="text"> |
<string>Beenden</string> |
</property> |
</action> |
<action name="ac_About"> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Communicator.png</normaloff>:/Icon/Global/Images/Icons/QMK-Communicator.png</iconset> |
</property> |
<property name="text"> |
<string>Über QMK-Communicator</string> |
</property> |
</action> |
<action name="ac_Server"> |
<property name="icon"> |
<iconset resource="../QMK-Communicator.qrc"> |
<normaloff>:/Icon/Global/Images/Icons/QMK-Communicator.png</normaloff>:/Icon/Global/Images/Icons/QMK-Communicator.png</iconset> |
</property> |
<property name="text"> |
<string>Einstellungen</string> |
</property> |
</action> |
</widget> |
<layoutdefault spacing="6" margin="11"/> |
<resources> |
<include location="../QMK-Communicator.qrc"/> |
</resources> |
<connections> |
<connection> |
<sender>ac_Quit</sender> |
<signal>triggered()</signal> |
<receiver>dlg_Main_UI</receiver> |
<slot>close()</slot> |
<hints> |
<hint type="sourcelabel"> |
<x>-1</x> |
<y>-1</y> |
</hint> |
<hint type="destinationlabel"> |
<x>182</x> |
<y>88</y> |
</hint> |
</hints> |
</connection> |
<connection> |
<sender>rb_Device</sender> |
<signal>toggled(bool)</signal> |
<receiver>wg_Device</receiver> |
<slot>setVisible(bool)</slot> |
<hints> |
<hint type="sourcelabel"> |
<x>38</x> |
<y>70</y> |
</hint> |
<hint type="destinationlabel"> |
<x>54</x> |
<y>105</y> |
</hint> |
</hints> |
</connection> |
<connection> |
<sender>rb_TCP</sender> |
<signal>toggled(bool)</signal> |
<receiver>wg_IP</receiver> |
<slot>setVisible(bool)</slot> |
<hints> |
<hint type="sourcelabel"> |
<x>125</x> |
<y>75</y> |
</hint> |
<hint type="destinationlabel"> |
<x>124</x> |
<y>140</y> |
</hint> |
</hints> |
</connection> |
</connections> |
</ui> |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Preferences.cpp |
---|
0,0 → 1,52 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#include "dlg_Preferences.h" |
dlg_Preferences::dlg_Preferences(QWidget *parent) : QDialog(parent) |
{ |
setupUi(this); |
} |
void dlg_Preferences::set_Settings(cSettings *t_Settings) |
{ |
o_Settings = t_Settings; |
le_TCP_Port->setText(QString("%1").arg(o_Settings->SERVER.TCP_PORT)); |
le_UDP_Port->setText(QString("%1").arg(o_Settings->SERVER.UDP_PORT)); |
le_Password->setText(o_Settings->SERVER.Password); |
le_LiveServer->setText(o_Settings->LIVEDATA.Server); |
le_LivePort->setText(o_Settings->LIVEDATA.Port); |
le_LiveUser->setText(o_Settings->LIVEDATA.User); |
le_LivePassword->setText(o_Settings->LIVEDATA.Password); |
} |
cSettings *dlg_Preferences::get_Settings() |
{ |
o_Settings->SERVER.Password = le_Password->text(); |
o_Settings->SERVER.TCP_PORT = le_TCP_Port->text().toInt(); |
o_Settings->SERVER.UDP_PORT = le_UDP_Port->text().toInt(); |
o_Settings->LIVEDATA.Server = le_LiveServer->text(); |
o_Settings->LIVEDATA.Port = le_LivePort->text(); |
o_Settings->LIVEDATA.User = le_LiveUser->text(); |
o_Settings->LIVEDATA.Password = le_LivePassword->text(); |
return o_Settings; |
} |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Preferences.h |
---|
0,0 → 1,41 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#ifndef DLG_PREFERENCES_H |
#define DLG_PREFERENCES_H |
#include "ui_dlg_Preferences.h" |
#include "../Classes/cSettings.h" |
class dlg_Preferences : public QDialog, public Ui::dlg_Preferences_UI |
{ |
Q_OBJECT |
public: |
dlg_Preferences(QWidget *parent = 0); |
void set_Settings(cSettings *t_Settings); |
cSettings *get_Settings(); |
private: |
// Settings-Object |
cSettings *o_Settings; |
}; |
#endif // DLG_PREFERENCES_H |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Preferences.ui |
---|
0,0 → 1,262 |
<?xml version="1.0" encoding="UTF-8"?> |
<ui version="4.0"> |
<class>dlg_Preferences_UI</class> |
<widget class="QDialog" name="dlg_Preferences_UI"> |
<property name="geometry"> |
<rect> |
<x>0</x> |
<y>0</y> |
<width>400</width> |
<height>192</height> |
</rect> |
</property> |
<property name="minimumSize"> |
<size> |
<width>400</width> |
<height>0</height> |
</size> |
</property> |
<property name="windowTitle"> |
<string>Server-Einstellungen</string> |
</property> |
<layout class="QGridLayout" name="gridLayout_3"> |
<item row="0" column="0" colspan="2"> |
<layout class="QHBoxLayout" name="horizontalLayout"> |
<item> |
<widget class="QGroupBox" name="groupBox"> |
<property name="title"> |
<string>Communicator</string> |
</property> |
<layout class="QGridLayout" name="gridLayout"> |
<item row="0" column="0"> |
<widget class="QCheckBox" name="checkBox"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
<property name="text"> |
<string>TCP</string> |
</property> |
<property name="checked"> |
<bool>true</bool> |
</property> |
</widget> |
</item> |
<item row="0" column="1"> |
<widget class="QLabel" name="label"> |
<property name="text"> |
<string>Port:</string> |
</property> |
</widget> |
</item> |
<item row="0" column="2"> |
<widget class="QLineEdit" name="le_TCP_Port"/> |
</item> |
<item row="1" column="0"> |
<widget class="QCheckBox" name="checkBox_2"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
<property name="text"> |
<string>UDP</string> |
</property> |
</widget> |
</item> |
<item row="1" column="1"> |
<widget class="QLabel" name="label_2"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
<property name="text"> |
<string>Port:</string> |
</property> |
</widget> |
</item> |
<item row="1" column="2"> |
<widget class="QLineEdit" name="le_UDP_Port"> |
<property name="enabled"> |
<bool>false</bool> |
</property> |
</widget> |
</item> |
<item row="2" column="0" colspan="3"> |
<widget class="Line" name="line"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
</widget> |
</item> |
<item row="3" column="0"> |
<widget class="QLabel" name="label_3"> |
<property name="text"> |
<string>Password:</string> |
</property> |
</widget> |
</item> |
<item row="3" column="2"> |
<widget class="QLineEdit" name="le_Password"> |
<property name="text"> |
<string>qwertz</string> |
</property> |
<property name="echoMode"> |
<enum>QLineEdit::Password</enum> |
</property> |
</widget> |
</item> |
<item row="4" column="2"> |
<spacer name="verticalSpacer"> |
<property name="orientation"> |
<enum>Qt::Vertical</enum> |
</property> |
<property name="sizeHint" stdset="0"> |
<size> |
<width>20</width> |
<height>40</height> |
</size> |
</property> |
</spacer> |
</item> |
</layout> |
</widget> |
</item> |
<item> |
<widget class="QGroupBox" name="groupBox_2"> |
<property name="title"> |
<string>Live-Daten senden</string> |
</property> |
<layout class="QGridLayout" name="gridLayout_2"> |
<item row="0" column="0"> |
<widget class="QLabel" name="label_4"> |
<property name="text"> |
<string>Server:</string> |
</property> |
</widget> |
</item> |
<item row="0" column="1"> |
<widget class="QLineEdit" name="le_LiveServer"> |
<property name="text"> |
<string>127.0.0.1</string> |
</property> |
</widget> |
</item> |
<item row="2" column="0"> |
<widget class="QLabel" name="label_5"> |
<property name="text"> |
<string>Login:</string> |
</property> |
</widget> |
</item> |
<item row="2" column="1"> |
<widget class="QLineEdit" name="le_LiveUser"> |
<property name="text"> |
<string>KeyOz</string> |
</property> |
</widget> |
</item> |
<item row="3" column="0"> |
<widget class="QLabel" name="label_6"> |
<property name="text"> |
<string>Password:</string> |
</property> |
</widget> |
</item> |
<item row="3" column="1"> |
<widget class="QLineEdit" name="le_LivePassword"> |
<property name="text"> |
<string>qwertz</string> |
</property> |
<property name="echoMode"> |
<enum>QLineEdit::Password</enum> |
</property> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="QLabel" name="label_7"> |
<property name="text"> |
<string>Port:</string> |
</property> |
</widget> |
</item> |
<item row="1" column="1"> |
<widget class="QLineEdit" name="le_LivePort"> |
<property name="text"> |
<string>64410</string> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
</item> |
</layout> |
</item> |
<item row="1" column="0"> |
<spacer name="horizontalSpacer"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
<property name="sizeHint" stdset="0"> |
<size> |
<width>40</width> |
<height>20</height> |
</size> |
</property> |
</spacer> |
</item> |
<item row="1" column="1"> |
<widget class="QDialogButtonBox" name="buttonBox"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
<property name="standardButtons"> |
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
<tabstops> |
<tabstop>checkBox</tabstop> |
<tabstop>le_TCP_Port</tabstop> |
<tabstop>le_Password</tabstop> |
<tabstop>le_LiveServer</tabstop> |
<tabstop>le_LiveUser</tabstop> |
<tabstop>le_LivePassword</tabstop> |
<tabstop>buttonBox</tabstop> |
<tabstop>checkBox_2</tabstop> |
<tabstop>le_UDP_Port</tabstop> |
</tabstops> |
<resources/> |
<connections> |
<connection> |
<sender>buttonBox</sender> |
<signal>accepted()</signal> |
<receiver>dlg_Preferences_UI</receiver> |
<slot>accept()</slot> |
<hints> |
<hint type="sourcelabel"> |
<x>248</x> |
<y>254</y> |
</hint> |
<hint type="destinationlabel"> |
<x>157</x> |
<y>274</y> |
</hint> |
</hints> |
</connection> |
<connection> |
<sender>buttonBox</sender> |
<signal>rejected()</signal> |
<receiver>dlg_Preferences_UI</receiver> |
<slot>reject()</slot> |
<hints> |
<hint type="sourcelabel"> |
<x>316</x> |
<y>260</y> |
</hint> |
<hint type="destinationlabel"> |
<x>286</x> |
<y>274</y> |
</hint> |
</hints> |
</connection> |
</connections> |
</ui> |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Terminal.cpp |
---|
0,0 → 1,89 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#include "dlg_Terminal.h" |
dlg_Terminal::dlg_Terminal(QWidget *parent) : QDialog(parent) |
{ |
setupUi(this); |
connect(btn_Delete, SIGNAL(clicked()), this, SLOT(slot_btn_Delete())); |
} |
void dlg_Terminal::slot_btn_Delete() |
{ |
te_Out->clear(); |
} |
void dlg_Terminal::show_Data(int t_Typ, QString t_Data) |
{ |
te_Out->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); |
switch(t_Typ) |
{ |
case 1: |
{ |
if (cb_Data->isChecked()) |
{ |
te_Out->insertHtml("<span style=\"color:#00ffff;\">" + t_Data + "<br /></span>"); |
} |
} |
break; |
case 2: |
{ |
if ((t_Data.length() > 0) && (cb_Info->isChecked())) |
{ |
te_Out->insertHtml("<span style=\"color:#00ff00;\">" + t_Data + "</span><br />"); |
} |
} |
break; |
case 3: |
{ |
if (cb_Send->isChecked()) |
{ |
te_Out->insertHtml("<span style='color:#ff0000;'>" + t_Data + "<br /></span>"); |
} |
} |
break; |
case 4: |
{ |
if (cb_TCP->isChecked()) |
{ |
te_Out->insertHtml("<span style='color:#ff00ff;'>" + t_Data + "<br /></span>"); |
} |
} |
break; |
case 5: |
{ |
if (cb_TCP->isChecked()) |
{ |
te_Out->insertHtml("<span style='color:#ffff00;'>" + t_Data + "<br /></span>"); |
} |
} |
break; |
case 6: |
{ |
if (cb_TCP->isChecked()) |
{ |
te_Out->insertHtml("<span style='color:#ffffff;'>" + t_Data + "<br /></span>"); |
} |
} |
break; |
} |
} |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Terminal.h |
---|
0,0 → 1,37 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#ifndef DLG_TERMINAL_H |
#define DLG_TERMINAL_H |
#include <QString> |
#include "ui_dlg_Terminal.h" |
class dlg_Terminal : public QDialog, public Ui::dlg_Terminal_UI |
{ |
Q_OBJECT |
public: |
dlg_Terminal(QWidget *parent = 0); |
void show_Data(int t_Typ, QString t_Data); |
private slots: |
void slot_btn_Delete(); |
}; |
#endif // DLG_TERMINAL_H |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/Dialogs/dlg_Terminal.ui |
---|
0,0 → 1,145 |
<?xml version="1.0" encoding="UTF-8"?> |
<ui version="4.0"> |
<class>dlg_Terminal_UI</class> |
<widget class="QDialog" name="dlg_Terminal_UI"> |
<property name="geometry"> |
<rect> |
<x>0</x> |
<y>0</y> |
<width>720</width> |
<height>365</height> |
</rect> |
</property> |
<property name="windowTitle"> |
<string>Terminal</string> |
</property> |
<layout class="QGridLayout" name="gridLayout_2"> |
<item row="0" column="0"> |
<widget class="QTextEdit" name="te_Out"> |
<property name="palette"> |
<palette> |
<active> |
<colorrole role="Base"> |
<brush brushstyle="SolidPattern"> |
<color alpha="255"> |
<red>0</red> |
<green>0</green> |
<blue>0</blue> |
</color> |
</brush> |
</colorrole> |
</active> |
<inactive> |
<colorrole role="Base"> |
<brush brushstyle="SolidPattern"> |
<color alpha="255"> |
<red>0</red> |
<green>0</green> |
<blue>0</blue> |
</color> |
</brush> |
</colorrole> |
</inactive> |
<disabled> |
<colorrole role="Base"> |
<brush brushstyle="SolidPattern"> |
<color alpha="255"> |
<red>255</red> |
<green>255</green> |
<blue>255</blue> |
</color> |
</brush> |
</colorrole> |
</disabled> |
</palette> |
</property> |
<property name="font"> |
<font> |
<family>Adobe Courier</family> |
<pointsize>10</pointsize> |
</font> |
</property> |
<property name="html"> |
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> |
<html><head><meta name="qrichtext" content="1" /><style type="text/css"> |
p, li { white-space: pre-wrap; } |
</style></head><body style=" font-family:'Adobe Courier'; font-size:10pt; font-weight:400; font-style:normal;"> |
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></string> |
</property> |
</widget> |
</item> |
<item row="1" column="0"> |
<widget class="QFrame" name="frame"> |
<property name="frameShape"> |
<enum>QFrame::StyledPanel</enum> |
</property> |
<property name="frameShadow"> |
<enum>QFrame::Raised</enum> |
</property> |
<layout class="QGridLayout" name="gridLayout"> |
<item row="0" column="0"> |
<widget class="QLabel" name="label"> |
<property name="text"> |
<string>Anzeige:</string> |
</property> |
</widget> |
</item> |
<item row="0" column="1"> |
<widget class="QCheckBox" name="cb_Data"> |
<property name="text"> |
<string>Datenpackete</string> |
</property> |
</widget> |
</item> |
<item row="0" column="2"> |
<widget class="QCheckBox" name="cb_Info"> |
<property name="text"> |
<string>Meldungen</string> |
</property> |
</widget> |
</item> |
<item row="0" column="3"> |
<widget class="QCheckBox" name="cb_Send"> |
<property name="text"> |
<string>Gesendete Daten</string> |
</property> |
</widget> |
</item> |
<item row="0" column="5"> |
<spacer name="horizontalSpacer"> |
<property name="orientation"> |
<enum>Qt::Horizontal</enum> |
</property> |
<property name="sizeHint" stdset="0"> |
<size> |
<width>185</width> |
<height>20</height> |
</size> |
</property> |
</spacer> |
</item> |
<item row="0" column="6"> |
<widget class="QPushButton" name="btn_Delete"> |
<property name="text"> |
<string>Löschen</string> |
</property> |
</widget> |
</item> |
<item row="0" column="4"> |
<widget class="QCheckBox" name="cb_TCP"> |
<property name="text"> |
<string>TCP-Daten</string> |
</property> |
<property name="checked"> |
<bool>true</bool> |
</property> |
</widget> |
</item> |
</layout> |
</widget> |
</item> |
</layout> |
</widget> |
<resources/> |
<connections/> |
</ui> |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/QMK-Communicator.pro |
---|
0,0 → 1,43 |
# ------------------------------------------------- |
# Project created by QtCreator 2009-07-20T20:04:00 |
# ------------------------------------------------- |
QT += network |
TARGET = QMK-Communicator |
TEMPLATE = app |
DEFINES += _TTY_POSIX_ |
include(../Global/Class_SerialPort.pri) |
DESTDIR = ../Binary |
debug:DEFINES += _BETA_ |
OBJECTS_DIR = ../Binary/.build/QMK-Communicator |
UI_DIR = ../Binary/.build/QMK-Communicator |
MOC_DIR = ../Binary/.build/QMK-Communicator |
RCC_DIR = ../Binary/.build/QMK-Communicator |
RESOURCES += QMK-Communicator.qrc |
SOURCES += main.cpp \ |
../Global/Class_Input/Input.cpp \ |
../Global/Class_Input/Input_TTY.cpp \ |
../Global/Class_Input/Input_TCP.cpp \ |
../Global/Class_HandlerMK/HandlerMK.cpp \ |
../Global/Class_HandlerIP/HandlerIP.cpp \ |
Dialogs/dlg_Main.cpp \ |
Classes/cSettings.cpp \ |
Dialogs/dlg_Preferences.cpp \ |
Dialogs/dlg_Terminal.cpp |
HEADERS += Defines.h \ |
../Global/Kopter.h \ |
../Global/Class_Input/Input.h \ |
../Global/Class_Input/Input_TTY.h \ |
../Global/Class_Input/Input_TCP.h \ |
../Global/Class_HandlerMK/HandlerMK.h \ |
../Global/Class_HandlerIP/HandlerIP.h \ |
Dialogs/dlg_Main.h \ |
Classes/cSettings.h \ |
TypeDefs.h \ |
../Global/Global.h \ |
Dialogs/dlg_Preferences.h \ |
Dialogs/dlg_Terminal.h |
FORMS += Dialogs/dlg_Main.ui \ |
Dialogs/dlg_Preferences.ui \ |
Dialogs/dlg_Terminal.ui |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/QMK-Communicator.qrc |
---|
0,0 → 1,16 |
<RCC> |
<qresource prefix="Icon" > |
<file>../Global/Images/Icons/QMK-Logger.png</file> |
<file>../Global/Images/Icons/QMK-Voice.png</file> |
<file>../Global/Images/Icons/QMK-Maps.png</file> |
<file>../Global/Images/Icons/QMK-Settings.png</file> |
<file>../Global/Images/Icons/QMK-Communicator.png</file> |
<file>../Global/Images/Icons/QMK-Scope.png</file> |
</qresource> |
<qresource prefix="Actions" > |
<file>../Global/Images/Actions/Terminal.png</file> |
<file>../Global/Images/Actions/Exit.png</file> |
<file>../Global/Images/Actions/Connection-OK.png</file> |
<file>../Global/Images/Actions/Connection-NO.png</file> |
</qresource> |
</RCC> |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/TypeDefs.h |
---|
0,0 → 1,36 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#ifndef TYPEDEFS_H |
#define TYPEDEFS_H |
#include <QString> |
struct sConnection |
{ |
// bool Open; |
bool TCP; |
bool UDP; |
// bool Auth; |
QString Fields; |
QString Version; |
int Status; |
}; |
#endif // TYPEDEFS_H |
/QMK-Groundstation/tags/QMK-Tools v1.2.0/QMK-Communicator/main.cpp |
---|
0,0 → 1,37 |
/*************************************************************************** |
* Copyright (C) 2009 by Manuel Schrape * |
* manuel.schrape@gmx.de * |
* * |
* This program 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 2 of the License. * |
* * |
* This program 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 this program; if not, write to the * |
* Free Software Foundation, Inc., * |
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
***************************************************************************/ |
#include <QtGui/QApplication> |
#include "Dialogs/dlg_Main.h" |
int main(int argc, char *argv[]) |
{ |
QApplication App(argc, argv); |
dlg_Main *MainApp = new dlg_Main(); |
MainApp->set_ARGV(argv[0]); |
MainApp->show(); |
int iReturn = App.exec(); |
delete MainApp; |
return iReturn; |
} |