Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 226 → Rev 227

/QMK-Groundstation/ChangeLog.txt
106,3 → 106,20
====
* Umschaltung zwischen FC, NC, MK3MAG
* Experimenteller GoogleEarth-Server.
 
######################################
# 24.01.2009 * Version 0.6.3 -> 0.7.0
 
Änderungen:
===========
* LCD in einem eigenen Fenster.
* Icons überarbeitet.
* Toolbar in mehrere Bereiche unterteilt die auch ausgeblendet werden können.
* Quellcode etwas aufgeräumt.
* Anpassungen für Windows.
 
Neu:
====
* Anzeige von Daten im Cockpit (Künstlicher Horizont, Kompass ect).
* Unterstützung für QMK Live-Datenserver (z.Z. noch nicht Freigeschalten da der Server noch
nen paar Probleme macht.
/QMK-Groundstation/TODO.TXT
1,14 → 1,15
*** - Wichtig ** - Sollte bald * - Nicht so wichtig
=============================================================
 
*** Schalter für OSD-Abo
*** Schalter für OSD-Abo
 
** Anzeigen von Flugdaten im Cockpit.
** Übertragen von Targets und Waypoints.
** Icons und Iconhandling überarbeiten.
DONE ** Anzeigen von Flugdaten im Cockpit.
** Übertragen von Targets und Waypoints.
** Icons und Iconhandling überarbeiten.
 
* Flashen der AVR's (Bootloader).
* Software-Update ohne AVRDUDE.
* Sofftwareupdate für NaviCtrl.
* Motorregler als Poties auf angedeutetem MK.
* Flashen der AVR's (Bootloader).
* Software-Update ohne AVRDUDE.
* Sofftwareupdate für NaviCtrl.
 
* Lösen der Tabs als einzelne Fenster ermöglichen.
* Lösen der Tabs als einzelne Fenster ermöglichen.
/QMK-Groundstation/trunk/Classes/ToolBox.cpp
0,0 → 1,246
/***************************************************************************
* 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 "ToolBox.h"
 
ToolBox::ToolBox()
{
}
 
void ToolBox::Wait(int Time)
{
#ifndef _WIN32_
usleep(Time);
#else
// sleep(Time);
#endif
}
 
QString ToolBox::get_Float(long Wert, long Count)
{
QString Temp;
 
if (Wert > 0)
Temp = "";
else
Temp = "-";
 
Temp = Temp + QString("%1").arg(Wert / Count) + "." + QString("%1").arg(Wert % Count);
 
return Temp;
}
 
 
// Base64 Decoder
bool ToolBox::Decode64(sRxData &RX, bool Long)
{
unsigned char a,b,c,d;
unsigned char ptr = 0;
unsigned char x,y,z;
int ptrOut[150];
 
int ptrIn = 3;
int max = RX.String.length();
int len = RX.String.length();
int DecLen = 0;
 
if (RX.Input[ptrIn] == 0)
{
qDebug("QString to Char ERROR...!!!!");
return false;
}
 
while(len != 0)
{
a = RX.Input[ptrIn++] - '=';
b = RX.Input[ptrIn++] - '=';
c = RX.Input[ptrIn++] - '=';
d = RX.Input[ptrIn++] - '=';
 
if(ptrIn > max - 2) break; // nicht mehr Daten verarbeiten, als empfangen wurden
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) ptrOut[ptr++] = x; else break;
if(len--) ptrOut[ptr++] = y; else break;
if(len--) ptrOut[ptr++] = z; else break;
}
 
for (int a=0; a<ptr; a++)
{
if (Long == false)
{
int b1, b2, b3;
 
b1 = ptrOut[a++];
b2 = ptrOut[a];
 
b3 = (b2 << 8) | b1;
 
if (b3 > 32767)
b3 = b3 - 65536;
 
RX.Decode[DecLen] = b3;
DecLen++;
}
else
{
RX.Decode[DecLen] = ptrOut[a];
DecLen++;
}
 
RX.DecLen = DecLen;
}
return true;
}
 
// Base64 Encoder
QString ToolBox::Encode64(char Data[150],unsigned int Length)
{
unsigned int pt = 0;
unsigned char a,b,c;
unsigned char ptr = 0;
 
char TX_Buff[150];
 
while(Length > 0)
{
if(Length) { a = Data[ptr++]; Length--;} else a = 0;
if(Length) { b = Data[ptr++]; Length--;} else b = 0;
if(Length) { c = Data[ptr++]; Length--;} else c = 0;
 
TX_Buff[pt++] = '=' + (a >> 2);
TX_Buff[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
TX_Buff[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TX_Buff[pt++] = '=' + ( c & 0x3f);
}
TX_Buff[pt] = 0;
 
return QString(TX_Buff);
}
 
// Datensatz nach 16bit Integer
int ToolBox::Data2Int(int *Data , int Start, bool is_signed)
{
int Out = (Data[Start+1]<<8) | (Data[Start+0]);
 
if ((Out > 32767) && (is_signed))
Out = Out - 65536;
 
return Out;
 
}
 
// Datensatz nach 32bit Long
long ToolBox::Data2Long(int *Data , int Start, bool is_signed)
{
long Out = (Data[Start+3]<<24) | (Data[Start+2]<<16) | (Data[Start+1]<<8) | (Data[Start+0]);
 
if ((Out > 32767) && (is_signed))
Out = Out;
 
return Out;
}
 
// Datensatz nach QString
QString ToolBox::Data2QString(int Data[150], int Start, int End)
{
char String[150];
for (int a = Start; a < End; a++)
{
String[a - Start] = Data[a];
}
String[End - Start] = '\0';
 
return QString(String);
}
 
// Datensatz-CRC prüfen
bool ToolBox::check_CRC(QString RXString)
{
int CRC = 0;
char *RX;
 
int Length = RXString.length();
 
RX = RXString.toLatin1().data();
 
if (RX[1] == 127)
{
RX[1] = 0;
}
 
for(int i=0; i < Length-2; i++)
{
CRC+=RX[i];
}
 
CRC = CRC % 4096;
 
if(RX[Length - 2] != ('=' + (CRC / 64)))
{
return false;
}
 
if(RX[Length - 1] != ('=' + CRC % 64))
{
return false;
}
 
return true;
}
 
// Datensatz-CRC hinzufügen
QString ToolBox::add_CRC(QString TXString)
{
unsigned int tmpCRC = 0;
 
char *TXBuff;
char CRC[2];
 
TXBuff = TXString.toLatin1().data();
 
for(int i = 0; i < TXString.length(); i++)
{
tmpCRC += TXBuff[i];
}
 
tmpCRC %= 4096;
 
CRC[0] = '=' + tmpCRC / 64;
CRC[1] = '=' + tmpCRC % 64;
CRC[2] = '\0';
 
QString Return = TXString + QString(CRC);
 
return Return;
}
 
// Alle Icons
QIcon ToolBox::Icon(int ID)
{
QIcon Icons[5] ;
Icons[0].addPixmap(QPixmap(QString::fromUtf8(":/LED/Images/16X16/ledred.png")), QIcon::Normal, QIcon::Off);
Icons[1].addPixmap(QPixmap(QString::fromUtf8(":/LED/Images/16X16/ledyellow.png")), QIcon::Normal, QIcon::Off);
Icons[3].addPixmap(QPixmap(QString::fromUtf8(":/LED/Images/16X16/ledyellow.png")), QIcon::Normal, QIcon::Off);
Icons[4].addPixmap(QPixmap(QString::fromUtf8(":/LED/Images/16X16/ledoff.png")), QIcon::Normal, QIcon::Off);
return Icons[ID];
}
/QMK-Groundstation/trunk/Classes/ToolBox.h
0,0 → 1,42
/***************************************************************************
* 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 TOOLBOX_H
#define TOOLBOX_H
 
#include <QString>
#include <QIcon>
#include "../global.h"
 
class ToolBox
{
public :
ToolBox();
static bool Decode64(sRxData &RX, bool Long = true);
static QString Encode64(char Data[150],unsigned int Length);
static bool check_CRC(QString RXString);
static QString add_CRC(QString TXString);
static int Data2Int(int *Data , int Start, bool is_signed = true);
static long Data2Long(int *Data , int Start, bool is_signed = true);
static QString Data2QString(int Data[150], int Start = 0, int End = 150);
static QIcon Icon(int ID);
static QString get_Float(long Wert, long Count);
static void Wait(int Time);
};
 
#endif // TOOLBOX_H
/QMK-Groundstation/trunk/Classes/cAttitude.cpp
0,0 → 1,136
#include <qevent.h>
#include <qpainter.h>
#include <qwt_math.h>
#include <qwt_polygon.h>
#include "cAttitude.h"
 
AttitudeIndicatorNeedle::AttitudeIndicatorNeedle(const QColor &c)
{
QPalette palette;
for ( int i = 0; i < QPalette::NColorGroups; i++ )
{
palette.setColor((QPalette::ColorGroup)i, QPalette::Text, c);
}
setPalette(palette);
}
 
void AttitudeIndicatorNeedle::draw(QPainter *painter, const QPoint &center, int length, double direction, QPalette::ColorGroup cg) const
{
direction *= M_PI / 180.0;
int triangleSize = qRound(length * 0.1);
 
painter->save();
 
// Verschiebung von Pfeil und Linie
const QPoint p0(QPoint(center.x() + 1, center.y() + 1));
const QPoint p01(QPoint(center.x() + 1, center.y() + 10));
const QPoint p02(QPoint(center.x() + 1, center.y() - 11));
const QPoint p03(QPoint(center.x() + 1, center.y() + 20));
const QPoint p04(QPoint(center.x() + 1, center.y() - 21));
 
// Der kleine Pfeil
const QPoint p1 = qwtPolar2Pos(p0, length - 2 * triangleSize - 2, direction);
 
QwtPolygon pa(3);
pa.setPoint(0, qwtPolar2Pos(p1, 2 * triangleSize, direction));
pa.setPoint(1, qwtPolar2Pos(p1, triangleSize, direction + M_PI_2));
pa.setPoint(2, qwtPolar2Pos(p1, triangleSize, direction - M_PI_2));
 
const QColor color = palette().color(cg, QPalette::Text);
 
painter->setBrush(color);
painter->drawPolygon(pa);
 
painter->setPen(QPen(color, 3));
painter->drawLine(qwtPolar2Pos(p0, length - 2, direction + M_PI_2), qwtPolar2Pos(p0, length - 2, direction - M_PI_2));
 
painter->setPen(QPen(QColor(255,255,255), 1));
painter->drawLine(qwtPolar2Pos(p01, length - 40, direction + M_PI_2), qwtPolar2Pos(p01, length - 40, direction - M_PI_2));
painter->drawLine(qwtPolar2Pos(p02, length - 40, direction + M_PI_2), qwtPolar2Pos(p02, length - 40, direction - M_PI_2));
painter->drawLine(qwtPolar2Pos(p03, length - 30, direction + M_PI_2), qwtPolar2Pos(p03, length - 30, direction - M_PI_2));
painter->drawLine(qwtPolar2Pos(p04, length - 30, direction + M_PI_2), qwtPolar2Pos(p04, length - 30, direction - M_PI_2));
 
painter->restore();
}
 
AttitudeIndicator::AttitudeIndicator(QWidget *parent): QwtDial(parent), d_gradient(0.0)
{
setMode(RotateScale);
setWrapping(true);
 
setOrigin(270.0);
setScaleOptions(ScaleTicks);
setScale(0, 0, 30.0);
 
const QColor color = palette().color(QPalette::Text);
 
setNeedle(new AttitudeIndicatorNeedle(color));
}
 
void AttitudeIndicator::setGradient(double gradient)
{
if ( gradient < -1.0 )
gradient = -1.0;
else if ( gradient > 1.0 )
gradient = 1.0;
 
if ( d_gradient != gradient )
{
d_gradient = gradient;
update();
}
}
 
void AttitudeIndicator::drawScale(QPainter *painter, const QPoint &center, int radius, double origin, double minArc, double maxArc) const
{
double dir = (360.0 - origin) * M_PI / 180.0; // counter clockwise, radian
 
int offset = 4;
const QPoint p0 = qwtPolar2Pos(center, offset, dir + M_PI);
 
const int w = contentsRect().width();
 
QwtPolygon pa(4);
pa.setPoint(0, qwtPolar2Pos(p0, w, dir - M_PI_2));
pa.setPoint(1, qwtPolar2Pos(pa.point(0), 2 * w, dir + M_PI_2));
pa.setPoint(2, qwtPolar2Pos(pa.point(1), w, dir));
pa.setPoint(3, qwtPolar2Pos(pa.point(2), 2 * w, dir - M_PI_2));
 
painter->save();
painter->setClipRegion(pa); // swallow 180 - 360 degrees
 
QwtDial::drawScale(painter, center, radius, origin, minArc, maxArc);
 
painter->restore();
}
 
void AttitudeIndicator::drawScaleContents(QPainter *painter, const QPoint &, int) const
{
int dir = 360 - qRound(origin() - value()); // counter clockwise
int arc = 90 + qRound(gradient() * 90);
 
const QColor skyColor(38, 151, 221);
 
painter->save();
painter->setBrush(skyColor);
painter->drawChord(scaleContentsRect(), (dir - arc) * 16, 2 * arc * 16 );
painter->restore();
}
 
void AttitudeIndicator::keyPressEvent(QKeyEvent *e)
{
switch(e->key())
{
case Qt::Key_Plus:
setGradient(gradient() + 0.05);
break;
case Qt::Key_Minus:
setGradient(gradient() - 0.05);
break;
 
default:
QwtDial::keyPressEvent(e);
}
}
/QMK-Groundstation/trunk/Classes/cAttitude.h
0,0 → 1,37
#include <QObject>
#include <qwt_dial.h>
#include <qwt_dial_needle.h>
 
class AttitudeIndicatorNeedle: public QwtDialNeedle
{
public:
AttitudeIndicatorNeedle(const QColor &);
 
virtual void draw(QPainter *, const QPoint &, int length,
double direction, QPalette::ColorGroup) const;
};
 
class AttitudeIndicator: public QwtDial
{
Q_OBJECT
 
public:
AttitudeIndicator(QWidget *parent = NULL);
 
double angle() const { return value(); }
double gradient() const { return d_gradient; }
 
public slots:
void setGradient(double);
void setAngle(double angle) { setValue(angle); }
 
protected:
virtual void keyPressEvent(QKeyEvent *);
 
virtual void drawScale(QPainter *, const QPoint &center, int radius, double origin, double arcMin, double arcMax) const;
 
virtual void drawScaleContents(QPainter *painter, const QPoint &center, int radius) const;
 
private:
double d_gradient;
};
/QMK-Groundstation/trunk/Classes/cQMK_Server.cpp
0,0 → 1,137
/***************************************************************************
* Copyright (C) 2008-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 "cQMK_Server.h"
 
cQMK_Server::cQMK_Server()
{
}
 
void cQMK_Server::Connect(QString IP, int Port, QString User, QString Pass)
{
Username = User;
Password = Pass;
 
TcpSocket = new(QTcpSocket);
TcpSocket->connectToHost (IP, Port);
 
connect(TcpSocket, SIGNAL(connected()), this, SLOT(slot_Connected()) );
connect(TcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slot_Error(QAbstractSocket::SocketError)));
}
 
void cQMK_Server::Disconnect()
{
TcpSocket->disconnectFromHost();
disconnect(TcpSocket, SIGNAL(connected()), 0, 0);
disconnect(TcpSocket, SIGNAL(readyRead()), 0, 0);
disconnect(TcpSocket, SIGNAL(disconnected()), 0, 0);
}
 
void cQMK_Server::SendData(int CMD, QString Data)
{
QString SendString = QString(QString("%1").arg(CMD) + ":" + Data + ":");
 
int CRC = qChecksum(SendString.toLatin1().data(), SendString.length());
QString sCRC = QString("%1").arg(CRC);
 
SendString = SendString + sCRC + "\n";
 
QByteArray SendText = SendString.toAscii();
 
TcpSocket->write(SendText);
}
 
void cQMK_Server::NewPosition(sNaviString Pos)
{
if (1==1)
{
SendData(100, QString(Pos.Longitude + ":" + Pos.Latitude + ":" + Pos.Altitude));
}
}
 
void cQMK_Server::slot_Connected()
{
// qDebug("Verbunden");
 
connect(TcpSocket, SIGNAL(readyRead()), SLOT(slot_ReadLine()));
connect(TcpSocket, SIGNAL(disconnected()),TcpSocket, SLOT(deleteLater()));
connect(TcpSocket, SIGNAL(disconnected()),this, SLOT(slot_Disconnect()));
 
emit sig_Connected();
}
 
void cQMK_Server::slot_Disconnect()
{
// qDebug("Verbindung getrennt ");
disconnect(TcpSocket, SIGNAL(disconnected()), 0, 0);
emit sig_Disconnected(1);
}
 
void cQMK_Server::slot_Error(QAbstractSocket::SocketError Error)
{
switch (Error)
{
case QAbstractSocket::ConnectionRefusedError:
emit sig_Disconnected(2);
break;
case QAbstractSocket::RemoteHostClosedError:
emit sig_Disconnected(1);
break;
default:
emit sig_Disconnected(0);
break;
}
 
disconnect(TcpSocket, SIGNAL(disconnected()), 0, 0);
emit sig_Disconnected(2);
// qDebug("Error..!!");
}
 
void cQMK_Server::slot_ReadLine()
{
QString Input = QString(TcpSocket->readLine(TcpSocket->bytesAvailable())).remove(QChar('\n'));
 
QStringList Data = Input.split(":");
 
if (Data.count() > 1)
{
int CMD = Data[0].toInt();
 
switch(CMD)
{
case 1 :
{
SendData(1, QString(QA_NAME + " " + QA_VERSION + ":" + Username + ":" + Password + ":"));
}
break;
case 2 :
{
// qDebug("Login OK");
}
break;
case 3 :
{
emit sig_Disconnected(3);
}
break;
}
}
}
 
 
 
/QMK-Groundstation/trunk/Classes/cQMK_Server.h
0,0 → 1,57
 
/***************************************************************************
* Copyright (C) 2008-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 CQMK_SERVER_H
#define CQMK_SERVER_H
 
#include <QString>
#include <QTcpSocket>
#include <QStringList>
 
#include "../global.h"
 
class cQMK_Server : public QObject
{
Q_OBJECT
 
public:
cQMK_Server();
void Connect(QString IP, int Port, QString User, QString Pass);
void Disconnect();
void NewPosition(sNaviString Pos);
 
private:
//TCP-Socket
QTcpSocket *TcpSocket;
QString Username;
QString Password;
void SendData(int CMD, QString Data);
 
private slots:
void slot_Connected();
void slot_Disconnect();
void slot_ReadLine();
void slot_Error(QAbstractSocket::SocketError Error);
 
signals:
void sig_Connected();
void sig_Disconnected(int Error);
};
 
#endif // CQMK_SERVER_H
/QMK-Groundstation/trunk/Classes/cServer.h
22,8 → 22,8
#include <QTcpServer>
#include <QTcpSocket>
 
#include "../global.h"
#include "../cSettings.h"
//#include "../global.h"
#include "../Classes/cSettings.h"
 
class cServer : public QObject
{
/QMK-Groundstation/trunk/Classes/cSettings.cpp
0,0 → 1,267
/***************************************************************************
* 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 <QCoreApplication>
#include <QSettings>
#include <QDir>
 
#include "cSettings.h"
 
cSettings::cSettings()
{
read_SettingsID();
 
if (Settings_ID < 3)
{
QBitArray Def_TabViews;
Def_TabViews.fill(true, 6);
 
qDebug("Konvertiere Einstellungen Version 1+2 -> 3");
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("GUI");
GUI.TabViews = Setting.value("TabViews", QBitArray(Def_TabViews)).value<QBitArray>();
 
GUI.TabViews.resize(10);
GUI.TabViews[6] = true;
 
Setting.setValue("TabViews", QBitArray(GUI.TabViews));
Setting.endGroup();
}
 
read_Settings();
 
Analog1.LogView.resize(MaxAnalog);
Analog1.PlotView.resize(MaxAnalog);
 
// Alte Settingsstruktur Löschen.
if (Settings_ID < 2)
{
qDebug("Konvertiere Einstellungen Version 1 -> 2");
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("AnalogWerte");
for (int a = 0; a < MaxAnalog; a++)
{
Analog1.LogView.setBit(a, Setting.value(("Analog_" + QString("%1").arg(a) + "_Log"), Def_Log[a]).toBool());
Analog1.PlotView.setBit(a, Setting.value(("Analog_" + QString("%1").arg(a) + "_Plot"), Def_Plot_Show[a]).toBool());
Analog1.Label[a] = Setting.value(("Analog_" + QString("%1").arg(a)), Def_AnalogNames[a]).toString();
}
Setting.endGroup();
 
Setting.remove("AnalogWerte-FC");
Setting.remove("AnalogWerte");
 
write_Settings_Analog();
write_Settings_AnalogLabels();
}
else
{
read_Settings_Analog();
read_Settings_AnalogLabels();
}
 
Settings_ID = 3;
}
 
// Config der Analogwert-Anzeige (Plotter / CVS)
void cSettings::write_Settings_Analog(int ID)
{
QString Hardware = HardwareType[ID];
 
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("Analog-Werte");
Setting.setValue(Hardware + "-LogView", QBitArray(Analog1.LogView));
Setting.setValue(Hardware + "-PlotView", QBitArray(Analog1.PlotView));
Setting.endGroup();
}
 
void cSettings::read_Settings_Analog(int ID)
{
QBitArray Def_View;
Def_View.fill(true,MaxAnalog);
 
QString Hardware = HardwareType[ID];
 
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("Analog-Werte");
Analog1.LogView = Setting.value(Hardware + "-LogView", QBitArray(Def_View)).value<QBitArray>();
Analog1.PlotView = Setting.value(Hardware + "-PlotView", QBitArray(Def_View)).value<QBitArray>();
Setting.endGroup();
}
 
// Labels der Analogwerte.
void cSettings::write_Settings_AnalogLabels(int ID)
{
QString Hardware = HardwareType[ID];
 
QSettings Setting("KeyOz-Net", "QMK-Groundstation-Labels");
 
Setting.beginGroup("Analog-Labels-" + Hardware);
Setting.setValue("Version", Analog1.Version);
for (int a=0; a<MaxAnalog; a++)
{
Setting.setValue("Label_" + QString("%1").arg(a), Analog1.Label[a]);
}
Setting.endGroup();
}
 
void cSettings::read_Settings_AnalogLabels(int ID)
{
QString Hardware = HardwareType[ID];
 
QSettings Setting("KeyOz-Net", "QMK-Groundstation-Labels");
 
Setting.beginGroup("Analog-Labels-" + Hardware);
Analog1.Version = Setting.value(("Version"), "0").toString();
for (int a=0; a<MaxAnalog; a++)
{
Analog1.Label[a] = Setting.value(("Label_" + QString("%1").arg(a)), Def_AnalogNames[a]).toString();
}
Setting.endGroup();
}
 
// Programmeinstellungen
void cSettings::read_SettingsID()
{
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("Global");
Settings_ID = Setting.value("Settings ID", 1).toInt();
Setting.endGroup();
}
 
 
// Programmeinstellungen
void cSettings::read_Settings()
{
QBitArray Def_BitArray;
Def_BitArray.fill(true, 10);
 
QDir Dir;
 
QString HomeDir = (QString(Dir.homePath() + "/"));
 
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("Global");
Settings_ID = Setting.value("Settings ID", 1).toInt();
Setting.endGroup();
 
Setting.beginGroup("Port");
TTY.Port = Setting.value("TTY", QString(OS_PORT)).toString();
Setting.endGroup();
 
Setting.beginGroup("GUI");
GUI.isMax = Setting.value("IsMax",false).toBool();
GUI.Size = Setting.value("Size", QSize(700, 300)).toSize();
GUI.Point = Setting.value("Point",QPoint(1,1)).toPoint();
GUI.TabViews = Setting.value("TabViews", QBitArray(Def_BitArray)).value<QBitArray>();
GUI.ToolViews = Setting.value("ToolViews", QBitArray(Def_BitArray)).value<QBitArray>();
GUI.Term_Info = Setting.value("Terminal_Info",false).toBool();
GUI.Term_Data = Setting.value("Terminal_Data",true).toBool();
GUI.Term_Always = Setting.value("Terminal_Always",false).toBool();
GUI.Term_Send = Setting.value("Terminal_Send",true).toBool();
Setting.endGroup();
 
Setting.beginGroup("Dirs");
DIR.Logging = Setting.value("LogDir", HomeDir).toString();
DIR.Parameter = Setting.value("ParDir", HomeDir).toString();
Setting.endGroup();
 
Setting.beginGroup("MKData");
Data.Plotter_Count = Setting.value("Plotter_Count", 100).toInt();
Data.Debug_Fast = Setting.value("Debug_Fast", 100).toInt();
Data.Debug_Slow = Setting.value("Debug_Slow", 500).toInt();
Data.Debug_Off = Setting.value("Debug_Off", 1000).toInt();
Data.Navi_Fast = Setting.value("Navi_Fast", 100).toInt();
Data.Navi_Slow = Setting.value("Navi_Slow", 500).toInt();
Data.Navi_Off = Setting.value("Navi_Off", 1000).toInt();
Setting.endGroup();
 
Setting.beginGroup("GoogleEarth-Server");
Server.Port = Setting.value("Port", 10664).toString();
Server.StartServer = Setting.value("StartServer", false).toBool();
Server.ToGround = Setting.value("ToGround", false).toBool();
Setting.endGroup();
 
Setting.beginGroup("QMK-Server");
Server.QMKS_Login = Setting.value("Login", "").toString();
Server.QMKS_Password = Setting.value("Password", "").toString();
Setting.endGroup();
 
}
 
void cSettings::write_Settings()
{
QSettings Setting("KeyOz-Net", "QMK-Groundstation");
 
Setting.beginGroup("Global");
Setting.setValue("Settings ID", Settings_ID);
Setting.endGroup();
 
Setting.beginGroup("Port");
Setting.setValue("TTY", TTY.Port);
Setting.endGroup();
 
Setting.beginGroup("Dirs");
Setting.setValue("LogDir", DIR.Logging);
Setting.setValue("ParDir", DIR.Parameter);
Setting.endGroup();
 
Setting.beginGroup("GUI");
Setting.setValue("IsMax", GUI.isMax);
Setting.setValue("Size", GUI.Size);
Setting.setValue("Point", GUI.Point);
Setting.setValue("TabViews", QBitArray(GUI.TabViews));
Setting.setValue("ToolViews", QBitArray(GUI.ToolViews));
Setting.setValue("Terminal_Info", GUI.Term_Info);
Setting.setValue("Terminal_Data", GUI.Term_Data);
Setting.setValue("Terminal_Always", GUI.Term_Always);
Setting.setValue("Terminal_Send", GUI.Term_Send);
Setting.endGroup();
 
Setting.beginGroup("MKData");
Setting.setValue("Plotter_Count", Data.Plotter_Count);
Setting.setValue("Debug_Fast", Data.Debug_Fast);
Setting.setValue("Debug_Slow", Data.Debug_Slow);
Setting.setValue("Debug_Off", Data.Debug_Off);
Setting.setValue("Navi_Fast", Data.Navi_Fast);
Setting.setValue("Navi_Slow", Data.Navi_Slow);
Setting.setValue("Navi_Off", Data.Navi_Off);
Setting.endGroup();
 
Setting.beginGroup("GoogleEarth-Server");
Setting.setValue("Port", Server.Port);
Setting.setValue("StartServer", Server.StartServer);
Setting.setValue("ToGround", Server.ToGround);
Setting.endGroup();
 
Setting.beginGroup("QMK-Server");
Setting.setValue("Login", Server.QMKS_Login);
Setting.setValue("Password", Server.QMKS_Password);
Setting.endGroup();
}
 
cSettings::~cSettings()
{
}
 
 
/QMK-Groundstation/trunk/Classes/cSettings.h
0,0 → 1,101
/***************************************************************************
* 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 "../global.h"
 
struct set_TTY
{
QString Port;
};
 
struct set_GUI
{
bool isMax;
QSize Size;
QPoint Point;
QBitArray TabViews;
QBitArray ToolViews;
bool Term_Info;
bool Term_Data;
bool Term_Always;
bool Term_Send;
};
 
struct set_Data
{
int Plotter_Count;
int Debug_Fast;
int Debug_Slow;
int Debug_Off;
int Navi_Fast;
int Navi_Slow;
int Navi_Off;
};
 
struct set_DIR
{
QString Logging;
QString Parameter;
};
 
struct set_Server
{
QString Port;
bool StartServer;
bool ToGround;
QString QMKS_Login;
QString QMKS_Password;
};
 
 
struct set_Analog
{
QString Version;
QString Label[MaxAnalog];
QBitArray PlotView;
QBitArray LogView;
};
 
class cSettings
{
public:
cSettings();
~cSettings();
 
int Settings_ID;
 
set_GUI GUI;
set_DIR DIR;
set_TTY TTY;
set_Analog Analog1;
set_Data Data;
set_Server Server;
 
void read_Settings();
void read_SettingsID();
void write_Settings();
void write_Settings_Analog(int ID = 0);
void read_Settings_Analog(int ID = 0);
void write_Settings_AnalogLabels(int ID = 0);
void read_Settings_AnalogLabels(int ID = 0);
};
 
#endif
/QMK-Groundstation/trunk/Classes/cSpeedMeter.cpp
0,0 → 1,44
#include <qpainter.h>
#include <qwt_dial_needle.h>
#include "cSpeedMeter.h"
 
cSpeedMeter::cSpeedMeter(QWidget *parent): QwtDial(parent), d_label("m/s")
{
setWrapping(false);
setReadOnly(true);
 
setOrigin(125.0);
setScaleArc(0.0, 270.0);
scaleDraw()->setSpacing(8);
 
QwtDialSimpleNeedle *needle = new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Arrow, true, Qt::red, QColor(Qt::gray).light(130));
setNeedle(needle);
 
setScaleOptions(ScaleTicks | ScaleLabel);
setScaleTicks(0, 4, 8);
}
 
void cSpeedMeter::setLabel(const QString &label)
{
d_label = label;
update();
}
 
QString cSpeedMeter::label() const
{
return d_label;
}
 
void cSpeedMeter::drawScaleContents(QPainter *painter, const QPoint &center, int radius) const
{
QRect rect(0, 0, 2 * radius, 2 * radius - 10);
rect.moveCenter(center);
 
const QColor color =
 
palette().color(QPalette::Text);
painter->setPen(color);
 
const int flags = Qt::AlignBottom | Qt::AlignHCenter;
painter->drawText(rect, flags, d_label);
}
/QMK-Groundstation/trunk/Classes/cSpeedMeter.h
0,0 → 1,17
#include <qstring.h>
#include <qwt_dial.h>
 
class cSpeedMeter: public QwtDial
{
public:
cSpeedMeter(QWidget *parent = NULL);
 
void setLabel(const QString &);
QString label() const;
 
protected:
virtual void drawScaleContents(QPainter *painter, const QPoint &center, int radius) const;
 
private:
QString d_label;
};
/QMK-Groundstation/trunk/Forms/dlg_Config.h
22,8 → 22,8
#include <QCheckBox>
 
#include "ui_dlg_Config.h"
#include "../cSettings.h"
#include "../global.h"
#include "../Classes/cSettings.h"
//#include "../global.h"
 
class dlg_Config : public QDialog, public Ui::dlg_Config_UI
{
/QMK-Groundstation/trunk/Forms/dlg_LCD.cpp
0,0 → 1,32
/***************************************************************************
* 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_LCD.h"
 
dlg_LCD::dlg_LCD(QWidget *parent) : QDialog(parent)
{
setupUi(this);
}
 
void dlg_LCD::show_Data(int *Data)
{
le_LCD0->setText(ToolBox::Data2QString(Data,2,22));
le_LCD1->setText(ToolBox::Data2QString(Data,22,42));
le_LCD2->setText(ToolBox::Data2QString(Data,42,62));
le_LCD3->setText(ToolBox::Data2QString(Data,62,82));
}
/QMK-Groundstation/trunk/Forms/dlg_LCD.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 DLG_LCD_H
#define DLG_LCD_H
 
#include <QObject>
 
#include "ui_dlg_LCD.h"
#include "../Classes/ToolBox.h"
 
class dlg_LCD : public QDialog, public Ui::dlg_LCD_UI
{
Q_OBJECT
 
public:
dlg_LCD(QWidget *parent = 0);
void show_Data(int *Data);
};
 
#endif // DLG_LCD_H
/QMK-Groundstation/trunk/Forms/dlg_LCD.ui
0,0 → 1,208
<ui version="4.0" >
<class>dlg_LCD_UI</class>
<widget class="QDialog" name="dlg_LCD_UI" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>250</width>
<height>205</height>
</rect>
</property>
<property name="windowTitle" >
<string>LCD-Display</string>
</property>
<layout class="QGridLayout" name="gridLayout" >
<item row="0" column="0" >
<layout class="QGridLayout" name="gridLayout_41" >
<item row="0" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD0" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD1" >
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
</property>
<property name="readOnly" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD2" >
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
</property>
<property name="readOnly" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD3" >
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0" >
<widget class="QCheckBox" name="cb_LCD" >
<property name="text" >
<string>Auto-Refresh </string>
</property>
<property name="checked" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="1" >
<widget class="QPushButton" name="pb_LCDdown" >
<property name="text" >
<string/>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/Arrows/Left-1.png</normaloff>:/Arrows/Images/Arrows/Left-1.png</iconset>
</property>
</widget>
</item>
<item row="4" column="2" >
<widget class="QPushButton" name="pb_LCDup" >
<property name="text" >
<string/>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/Arrows/Right-1.png</normaloff>:/Arrows/Images/Arrows/Right-1.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0" >
<widget class="QPushButton" name="pushButton" >
<property name="text" >
<string>Schließen</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../MKTool.qrc" />
</resources>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>dlg_LCD_UI</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel" >
<x>124</x>
<y>187</y>
</hint>
<hint type="destinationlabel" >
<x>124</x>
<y>102</y>
</hint>
</hints>
</connection>
</connections>
</ui>
/QMK-Groundstation/trunk/Forms/dlg_Motortest.h
22,7 → 22,7
#include <QObject>
 
#include "ui_dlg_Motortest.h"
#include "../global.h"
//#include "../global.h"
 
class dlg_Motortest : public QDialog, public Ui::dlg_Motortest_UI
{
/QMK-Groundstation/trunk/Forms/dlg_Preferences.cpp
42,21 → 42,25
le_ServerPort->setText(Settings->Server.Port);
cb_StartServer->setChecked(Settings->Server.StartServer);
cb_ToGround->setChecked(Settings->Server.ToGround);
le_Login->setText(Settings->Server.QMKS_Login);
le_Password->setText(Settings->Server.QMKS_Password);
}
 
cSettings *dlg_Preferences::get_Settings()
{
Settings->TTY.Port = le_TTY->text();
Settings->Data.Plotter_Count = sp_Plotter_Count->value();
Settings->Data.Debug_Fast = sp_Debug_Fast->value();
Settings->Data.Debug_Slow = sp_Debug_Slow->value();
Settings->Data.Debug_Off = sp_Debug_Off->value();
Settings->Data.Navi_Fast = sp_Navi_Fast->value();
Settings->Data.Navi_Slow = sp_Navi_Slow->value();
Settings->Data.Navi_Off = sp_Navi_Off->value();
Settings->Server.Port = le_ServerPort->text();
Settings->Server.StartServer = cb_StartServer->isChecked();
Settings->Server.ToGround = cb_ToGround->isChecked();
Settings->TTY.Port = le_TTY->text();
Settings->Data.Plotter_Count = sp_Plotter_Count->value();
Settings->Data.Debug_Fast = sp_Debug_Fast->value();
Settings->Data.Debug_Slow = sp_Debug_Slow->value();
Settings->Data.Debug_Off = sp_Debug_Off->value();
Settings->Data.Navi_Fast = sp_Navi_Fast->value();
Settings->Data.Navi_Slow = sp_Navi_Slow->value();
Settings->Data.Navi_Off = sp_Navi_Off->value();
Settings->Server.Port = le_ServerPort->text();
Settings->Server.StartServer = cb_StartServer->isChecked();
Settings->Server.ToGround = cb_ToGround->isChecked();
Settings->Server.QMKS_Login = le_Login->text();
Settings->Server.QMKS_Password = le_Password->text();
 
return Settings;
}
/QMK-Groundstation/trunk/Forms/dlg_Preferences.h
23,7 → 23,7
#include <QFileDialog>
 
#include "ui_dlg_Preferences.h"
#include "../cSettings.h"
#include "../Classes/cSettings.h"
//#include "../global.h"
 
class dlg_Preferences : public QDialog, public Ui::dlg_Preferences_UI
/QMK-Groundstation/trunk/Forms/dlg_Preferences.ui
5,7 → 5,7
<rect>
<x>0</x>
<y>0</y>
<width>402</width>
<width>395</width>
<height>298</height>
</rect>
</property>
317,9 → 317,6
<layout class="QGridLayout" name="gridLayout_11" >
<item row="0" column="0" >
<widget class="QGroupBox" name="groupBox_9" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="title" >
<string>Navi-Daten Intervall</string>
</property>
558,6 → 555,89
</item>
</layout>
</widget>
<widget class="QWidget" name="Seite_2" >
<attribute name="title" >
<string>QMK-Datenserver</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_14" >
<item row="0" column="0" >
<widget class="QGroupBox" name="groupBox_10" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="title" >
<string>Server</string>
</property>
<layout class="QGridLayout" name="gridLayout_12" >
<item row="0" column="0" >
<widget class="QLabel" name="label_12" >
<property name="text" >
<string>Server:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="lineEdit" >
<property name="text" >
<string>nimari.de</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_13" >
<property name="text" >
<string>Port:</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QLineEdit" name="lineEdit_3" >
<property name="text" >
<string>16441</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0" >
<widget class="QGroupBox" name="groupBox_11" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="title" >
<string>Logindaten</string>
</property>
<layout class="QGridLayout" name="gridLayout_13" >
<item row="0" column="0" >
<widget class="QLabel" name="label_14" >
<property name="text" >
<string>Loginname:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="le_Login" />
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_15" >
<property name="text" >
<string>Password:</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QLineEdit" name="le_Password" >
<property name="echoMode" >
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
/QMK-Groundstation/trunk/Forms/mktool.cpp
26,6 → 26,7
#include <QToolButton>
#include <QSpinBox>
#include <QAction>
#include <QPalette>
 
#include "mktool.h"
#include "dlg_Config.h"
32,7 → 33,7
#include "dlg_Motortest.h"
#include "dlg_Preferences.h"
#include "../global.h"
#include "../ToolBox.h"
#include "../Classes/ToolBox.h"
 
#include <stdlib.h>
 
56,34 → 57,82
setWindowTitle(QA_NAME + " v" + QA_VERSION);
 
// Tab mit Debug-Elementen verbergen
tab_Main->removeTab(5);
tab_Main->removeTab(6);
 
// Tab mit Wegpunkte-Elementen verbergen
tab_Main->removeTab(5);
 
// Settings-Tab hinzufügen.
f_Settings = new wdg_Settings( this );
tab_Main->insertTab ( 2, f_Settings, "FC-Settings");
f_Settings->set_Config(Settings);
tab_Main->insertTab ( 2, f_Settings, ac_View2->icon(), "FC-Settings");
tab_Main->widget(2)->setObjectName("Tab_2");
 
// Develop - Nicht gebrauchte sachen abschalten.
box_Flugdaten->hide();
box_System->hide();
pb_SettingsReset->hide();
pb_Flash->hide();
rb_NC->hide();
 
// Zusätzliche Widgets in die Toolbar.
toolBar->addWidget(lb_Port);
toolBar->addWidget(le_Port);
toolBar->addSeparator();
tb_TTY->addWidget(lb_Port);
tb_TTY->addWidget(le_Port);
 
toolBar->addWidget(rb_SelFC);
toolBar->addWidget(rb_SelNC);
toolBar->addWidget(rb_SelMag);
tb_Hardware->addWidget(rb_SelFC);
tb_Hardware->addWidget(rb_SelNC);
tb_Hardware->addWidget(rb_SelMag);
 
tb_Allgemein->setVisible(Settings->GUI.ToolViews[0]);
tb_Werkzeuge->setVisible(Settings->GUI.ToolViews[1]);
tb_Debug->setVisible(Settings->GUI.ToolViews[2]);
tb_TTY->setVisible(Settings->GUI.ToolViews[3]);
tb_Hardware->setVisible(Settings->GUI.ToolViews[4]);
 
lb_Status->setText(tr("Hallo bei QMK-Groundstation...!!!"));
 
QPalette newPalette;
 
newPalette.setColor(QPalette::Base, Qt::darkBlue);
newPalette.setColor(QPalette::Foreground, QColor(Qt::darkBlue).dark(120));
newPalette.setColor(QPalette::Text, Qt::white);
 
Compass->setScaleOptions(QwtDial::ScaleTicks | QwtDial::ScaleLabel);
Compass->setScaleTicks(0, 0, 3);
Compass->setScale(36, 5, 0);
 
// Compass->setNeedle(new QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::ThinStyle));
Compass->setNeedle(new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Arrow, true, Qt::red, QColor(Qt::gray).light(130)));
Compass->setPalette(newPalette);
Compass->setMaximumSize(QSize(MeterSize, MeterSize));
Compass->setMinimumSize(QSize(MeterSize, MeterSize));
 
QPalette newPalette1;
 
newPalette1.setColor(QPalette::Base, Qt::darkBlue);
newPalette1.setColor(QPalette::Foreground, QColor(255,128,0).dark(120));
newPalette1.setColor(QPalette::Text, Qt::white);
 
Attitude = new AttitudeIndicator(this);
Attitude->setMaximumSize(QSize(MeterSize, MeterSize));
Attitude->setMinimumSize(QSize(MeterSize, MeterSize));
Attitude->setPalette(newPalette1);
 
verticalLayout->addWidget(Attitude);
 
qwt_Rate->setRange(-10.0, 10.0, 0.1, 0);
 
newPalette1.setColor(QPalette::Foreground, QColor(Qt::darkBlue).dark(120));
 
SpeedMeter = new cSpeedMeter(this);
SpeedMeter->setMaximumSize(QSize(MeterSize, MeterSize));
SpeedMeter->setMinimumSize(QSize(MeterSize, MeterSize));
SpeedMeter->setPalette(newPalette1);
SpeedMeter->setRange(0.0, 5.0);
SpeedMeter->setScale(1, 2, 0.5);
SpeedMeter->setProperty("END", 5);
 
LayOut_Speed->addWidget(SpeedMeter);
 
#ifdef _EEEPC_
toolBar->hide();
lb_Status->hide();
#endif
 
102,6 → 151,7
}
 
// Kopie der Tabs anlegen
// for (int b = 0; b < 7; b++)
for (int b = 0; b < 6; b++)
{
TabWidgets[b] = tab_Main->widget(b);
108,6 → 158,7
}
 
// Ausgeblendete Tabs ausblenden
// for (int c = 0; c < 7; c++)
for (int c = 0; c < 6; c++)
{
if (Settings->GUI.TabViews[c] == false)
130,6 → 181,7
ac_View3->setChecked(Settings->GUI.TabViews[3]);
ac_View4->setChecked(Settings->GUI.TabViews[4]);
ac_View5->setChecked(Settings->GUI.TabViews[5]);
// ac_View6->setChecked(Settings->GUI.TabViews[6]);
 
le_Port->setText(Settings->TTY.Port);
 
149,11 → 201,18
// QFile-Instanz (Log-Datei)
CSVFile = new QFile("");
 
// LCD-Dialog
f_LCD = new dlg_LCD(this);
 
// Senden erlauben (Warum auch immer)
AllowSend = true;
 
Server = new cServer();
 
MyServer = new cQMK_Server();
MyServer->setProperty("Connect", false);
 
 
if (Settings->Server.StartServer)
{
ac_StartServer->setChecked(true);
171,18 → 230,18
// Serielle Verbundung öffnen / schließen
connect(ac_ConnectTTY, SIGNAL(triggered()), this, SLOT(slot_OpenPort()));
 
// TCP-Connection verbinden / trennen
connect(ac_QMKServer, SIGNAL(triggered()), this, SLOT(slot_QMKS_Connect()));
 
// Buttons Settings lesen / schreiben
connect(f_Settings->pb_Read, SIGNAL(clicked()), this, SLOT(slot_GetFCSettings()));
connect(f_Settings->pb_Write, SIGNAL(clicked()), this, SLOT(slot_SetFCSettings()));
 
// LCD auf / ab
connect(pb_LCDup, SIGNAL(clicked()), this, SLOT(slot_LCD_UP()));
connect(pb_LCDdown, SIGNAL(clicked()), this, SLOT(slot_LCD_DOWN()));
 
// Actions
connect(ac_Config, SIGNAL(triggered()), this, SLOT(slot_ac_Config()));
connect(ac_Preferences, SIGNAL(triggered()), this, SLOT(slot_ac_Preferences()));
connect(ac_Motortest, SIGNAL(triggered()), this, SLOT(slot_ac_Motortest()));
connect(ac_LCD, SIGNAL(triggered()), this, SLOT(slot_ac_LCD()));
connect(ac_FastDebug, SIGNAL(triggered()), this, SLOT(slot_ac_FastDebug()));
connect(ac_NoDebug, SIGNAL(triggered()), this, SLOT(slot_ac_NoDebug()));
connect(ac_FastNavi, SIGNAL(triggered()), this, SLOT(slot_ac_FastNavi()));
201,6 → 260,7
connect(ac_View3, SIGNAL(triggered()), this, SLOT(slot_ac_View()));
connect(ac_View4, SIGNAL(triggered()), this, SLOT(slot_ac_View()));
connect(ac_View5, SIGNAL(triggered()), this, SLOT(slot_ac_View()));
connect(ac_View6, SIGNAL(triggered()), this, SLOT(slot_ac_View()));
 
connect(ac_SelNC, SIGNAL(triggered()), this, SLOT(slot_ac_Hardware()));
connect(ac_SelFC, SIGNAL(triggered()), this, SLOT(slot_ac_Hardware()));
295,6 → 355,7
 
void MKTool::slot_Test()
{
/*
sRxData RX;
 
RX.String = IN->text();
301,6 → 362,7
RX.Input = IN->text().toLatin1().data();
 
new_RXData(RX);
*/
}
 
void MKTool::slot_ac_Hardware()
313,7 → 375,6
}
 
slot_rb_Hardware();
// qDebug("Select AC Hardware");
}
 
void MKTool::slot_rb_Hardware()
328,7 → 389,7
TX_Data[4] = 0x00;
TX_Data[5] = '\r';
send_Data('#', ADDRESS_NC, TX_Data, 6, false);
usleep(Sleep);
ToolBox::Wait(SLEEP);
}
 
if (rb_SelFC->isChecked())
356,7 → 417,7
TX_Data[5] = '\r';
send_Data('#', ADDRESS_NC, TX_Data, 6, false);
}
usleep(Sleep);
ToolBox::Wait(SLEEP);
 
// qDebug("Select RB Hardware");
send_Data('v', ADDRESS_ALL, TX_Data, 0, true);
389,8 → 450,13
send_Data('p', ADDRESS_FC, TX_Data, 0, false);
break;
case 2 :
if (cb_LCD->isChecked())
if (f_LCD->cb_LCD->isChecked())
{
if (!f_LCD->isVisible())
{
Ticker->setInterval(2000);
TickerEvent[2] = false;
}
TX_Data[0] = LCD_Page;
TX_Data[1] = 0;
send_Data('l', ADDRESS_ALL, TX_Data, 1, true);
413,7 → 479,74
}
}
 
void MKTool::slot_QMKS_Connect()
{
if (ac_QMKServer->isChecked())
{
lb_Status->setText(tr("Verbinde zum QMK-Datenserver."));
 
MyServer->Connect("nimari.de", 16441, Settings->Server.QMKS_Login, Settings->Server.QMKS_Password);
connect(MyServer, SIGNAL(sig_Connected()), this, SLOT(slot_QMKS_Connected()));
connect(MyServer, SIGNAL(sig_Disconnected(int)), this, SLOT(slot_QMKS_Disconnected(int)));
 
}
else
{
if ((MyServer->property("Connect")) == true)
{
disconnect(MyServer, SIGNAL(sig_Disconnected(int)), 0, 0);
lb_Status->setText(tr("Trenne vom QMK-Datenserver."));
 
MyServer->Disconnect();
MyServer->setProperty("Connect", false);
ac_QMKServer->setText("QMK-Server Verbinden");
}
}
}
 
void MKTool::slot_QMKS_Connected()
{
MyServer->setProperty("Connect", true);
ac_QMKServer->setText("QMK-Server Trennnen");
lb_Status->setText(tr("Verbunden mit QMK-Datenserver."));
}
 
void MKTool::slot_QMKS_Disconnected(int Error)
{
MyServer->setProperty("Connect", false);
ac_QMKServer->setText("QMK-Server Verbinden");
ac_QMKServer->setChecked(false);
 
disconnect(MyServer, SIGNAL(sig_Disconnected(int)), 0, 0);
 
switch (Error)
{
case 1 :
{
lb_Status->setText(tr("Verbindung vom Server beendet."));
QMessageBox::warning(this, QA_NAME,"QMK-Datenserver: Verbindung wurde vom Server beendet.", QMessageBox::Ok);
}
break;
case 2 :
{
lb_Status->setText(tr("Server nicht gefunden."));
QMessageBox::warning(this, QA_NAME,"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,"QMK-Datenserver: Loginname oder Password falsch.", QMessageBox::Ok);
}
break;
default :
{
lb_Status->setText(tr("Getrennt vom QMK-Datenserver."));
}
break;
}
}
 
// Slots der Actions (Menüpunkte, Buttons)
//////////////////////////////////////////
void MKTool::slot_ac_Motortest()
430,6 → 563,26
slot_Motortest(0,0,0,0);
}
 
void MKTool::slot_ac_LCD()
{
if (!f_LCD->isVisible())
{
f_LCD = new dlg_LCD(this);
 
// LCD auf / ab
connect(f_LCD->pb_LCDup, SIGNAL(clicked()), this, SLOT(slot_LCD_UP()));
connect(f_LCD->pb_LCDdown, SIGNAL(clicked()), this, SLOT(slot_LCD_DOWN()));
 
f_LCD->show();
TX_Data[0] = 0;
TX_Data[1] = 0;
send_Data('l', ADDRESS_ALL, TX_Data, 1, true);
 
Ticker->setInterval(500);
TickerEvent[2] = true;
}
}
 
void MKTool::slot_Motortest(int Motor1, int Motor2, int Motor3, int Motor4)
{
TX_Data[0] = Motor1;
503,7 → 656,7
 
void MKTool::slot_ac_View()
{
int Aktive;
int Aktive = -1;
 
QAction *Action = (QAction*)sender();
 
519,6 → 672,8
Aktive = 4;
if (Action->objectName() == QString("ac_View5"))
Aktive = 5;
// if (Action->objectName() == QString("ac_View6"))
// Aktive = 6;
 
QString TabName = QString("Tab_%1").arg(Aktive);
 
531,13 → 686,10
tab_Main->removeTab(a);
}
}
 
// Action->setChecked(false);
}
else
{
// Action->setChecked(true);
tab_Main->insertTab(Aktive, TabWidgets[Aktive], Action->text());
tab_Main->insertTab(Aktive, TabWidgets[Aktive], Action->icon(), Action->text());
}
}
 
654,6 → 806,7
}
}
 
 
// Daten-Plotter
/////////////////
void MKTool::update_Plot()
812,7 → 965,7
Ticker->setInterval(2000);
TickerEvent[1] = false;
}
 
/*
if ((tab_Main->currentWidget()->objectName() == QString("Tab_4")))
{
TX_Data[0] = 0;
827,6 → 980,7
Ticker->setInterval(2000);
TickerEvent[2] = false;
}
*/
}
}
 
840,6 → 994,7
 
TX_Data[1] = 0;
send_Data('l', ADDRESS_ALL, TX_Data, 1, true);
 
}
 
void MKTool::slot_LCD_DOWN() // DONE 0.71g
851,6 → 1006,9
 
TX_Data[1] = 0;
send_Data('l', ADDRESS_ALL, TX_Data, 1, true);
 
aa--;
 
}
 
// Settings aus MK lesen / in MK schreiben
882,7 → 1040,14
Settings->GUI.TabViews.setBit(3, ac_View3->isChecked());
Settings->GUI.TabViews.setBit(4, ac_View4->isChecked());
Settings->GUI.TabViews.setBit(5, ac_View5->isChecked());
Settings->GUI.TabViews.setBit(6, ac_View6->isChecked());
 
Settings->GUI.ToolViews.setBit(0, tb_Allgemein->isVisibleTo(this));
Settings->GUI.ToolViews.setBit(1, tb_Werkzeuge->isVisibleTo(this));
Settings->GUI.ToolViews.setBit(2, tb_Debug->isVisibleTo(this));
Settings->GUI.ToolViews.setBit(3, tb_TTY->isVisibleTo(this));
Settings->GUI.ToolViews.setBit(4, tb_Hardware->isVisibleTo(this));
 
Settings->GUI.Term_Info = cb_ShowMSG->isChecked();
Settings->GUI.Term_Data = cb_ShowData->isChecked();
Settings->GUI.Term_Always = cb_ShowAlways->isChecked();
942,9 → 1107,9
CSVFile->open(QIODevice::Append | QIODevice::Text);
}
 
pb_Record->setIcon(ToolBox::Icon(6));
pb_Record->setText("CSV Stop");
ac_RecordCSV->setIcon(ToolBox::Icon(6));
// pb_Record->setIcon(ToolBox::Icon(6));
// pb_Record->setText("CSV Stop");
// ac_RecordCSV->setIcon(ToolBox::Icon(6));
ac_RecordCSV->setText("CSV Stop");
lb_Status->setText(tr("CVS-Record gestartet."));
}
951,9 → 1116,9
else
{
CSVFile->close();
pb_Record->setIcon(ToolBox::Icon(7));
pb_Record->setText("CSV Aufzeichnen");
ac_RecordCSV->setIcon(ToolBox::Icon(7));
// pb_Record->setIcon(ToolBox::Icon(7));
// pb_Record->setText("CSV Aufzeichnen");
// ac_RecordCSV->setIcon(ToolBox::Icon(7));
ac_RecordCSV->setText("CSV Aufzeichnen");
lb_Status->setText(tr("CVS-Record gestopt."));
}
1012,6 → 1177,26
le_A_29->setText(QString("%1").arg(AnalogData[29]));
le_A_30->setText(QString("%1").arg(AnalogData[30]));
le_A_31->setText(QString("%1").arg(AnalogData[31]));
 
if ((Mode.ID == ADDRESS_FC) && (FCSettings[P_GYRO_ACC_FAKTOR] > 0))
{
bar_UBAT->setValue(AnalogData[9]);
bar_RX->setValue(AnalogData[10]);
 
Compass->setValue(AnalogData[8]);
 
int Roll = (AnalogData[1] * FCSettings[P_GYRO_ACC_FAKTOR]) / 1024;
int Nick = (AnalogData[0] * FCSettings[P_GYRO_ACC_FAKTOR]) / 1024;
 
if (Roll > 128)
Roll = Roll - 255;
 
if (Nick > 128)
Nick = Nick - 255;
 
Attitude->setAngle(Roll);
Attitude->setGradient(double(double(Nick) / 100.0));
}
}
 
 
1020,10 → 1205,55
Navi.Current.Longitude = ToolBox::Data2Long(RX.Decode, 0, true);
Navi.Current.Latitude = ToolBox::Data2Long(RX.Decode, 4, true);
Navi.Current.Altitude = ToolBox::Data2Long(RX.Decode, 8, true);
Navi.Target.Longitude = ToolBox::Data2Long(RX.Decode, 10, true);
Navi.Target.Latitude = ToolBox::Data2Long(RX.Decode, 14, true);
Navi.Target.Altitude = ToolBox::Data2Long(RX.Decode, 18, true);
Navi.Target.Longitude = ToolBox::Data2Long(RX.Decode, 16, true);
Navi.Target.Latitude = ToolBox::Data2Long(RX.Decode, 20, true);
Navi.Target.Altitude = ToolBox::Data2Long(RX.Decode, 24, true);
 
le_CDistance->setText(QString("%1 cm").arg(ToolBox::Data2Int(RX.Decode, 52)));
le_CWPA->setText(QString("%1").arg(RX.Decode[56]));
le_CWPT->setText(QString("%1").arg(RX.Decode[57]));
le_CSats->setText(QString("%1").arg(RX.Decode[58]));
 
qwt_Rate->setValue(double(ToolBox::Data2Int(RX.Decode, 61, true)));
 
le_CTime->setText(QString("%1 sec.").arg(ToolBox::Data2Int(RX.Decode, 63)));
 
bar_UBAT->setValue(RX.Decode[65]);
 
double Speed = double((ToolBox::Data2Int(RX.Decode, 66)) / 10.0);
 
if ((Speed > 4.5) && SpeedMeter->property("END") == 5)
{
SpeedMeter->setRange(0.0, 10.0);
SpeedMeter->setScale(1, 2, 1);
SpeedMeter->setProperty("END", 10);
}
 
if ((Speed > 9) && SpeedMeter->property("END") == 10)
{
SpeedMeter->setRange(0.0, 20.0);
SpeedMeter->setScale(1, 2, 2);
SpeedMeter->setProperty("END", 20);
}
 
SpeedMeter->setValue(Speed);
 
Compass->setValue(ToolBox::Data2Int(RX.Decode, 70)); //(68)
 
bar_RX->setValue(RX.Decode[74]);
 
int Nick = RX.Decode[72];
int Roll = RX.Decode[73];
 
if (Roll > 128)
Roll = Roll - 255;
 
if (Nick > 128)
Nick = Nick - 255;
 
Attitude->setAngle(Roll);
Attitude->setGradient(double(double(Nick) / 100.0));
 
sNaviString NaviString;
 
NaviString.Longitude = ToolBox::get_Float(Navi.Current.Longitude,10000000);
1032,6 → 1262,11
 
Server->store_NaviString(NaviString);
 
if ((MyServer->property("Connect")) == true)
{
MyServer->NewPosition(NaviString);
}
 
/*
qDebug(NaviString.Longitude.toLatin1().data());
qDebug(NaviString.Latitude.toLatin1().data());
1128,14 → 1363,11
int LCD[150];
memcpy(LCD,RX.Decode, sizeof(RX.Decode));
 
f_LCD->show_Data(LCD);
 
LCD_Page = RX.Decode[0];
LCD_MAX_Page = RX.Decode[1];
 
le_LCD0->setText(ToolBox::Data2QString(LCD,2,22));
le_LCD1->setText(ToolBox::Data2QString(LCD,22,42));
le_LCD2->setText(ToolBox::Data2QString(LCD,42,62));
le_LCD3->setText(ToolBox::Data2QString(LCD,62,82));
 
TickerEvent[0] = false;
}
break;
1339,16 → 1571,16
void MKTool::slot_OpenPort()
{
if (serialPort->isOpen())
{
{
TX_Data[0] = Settings->Data.Debug_Off / 10;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
usleep(Sleep);
ToolBox::Wait(SLEEP);
 
if (Mode.ID == ADDRESS_NC)
{
TX_Data[0] = Settings->Data.Navi_Off / 10;
send_Data('o', ADDRESS_NC, TX_Data, 1, false);
usleep(Sleep);
ToolBox::Wait(SLEEP);
}
 
if (Mode.ID == ADDRESS_NC)
1358,13 → 1590,13
TX_Data[2] = 0;
TX_Data[3] = 0;
send_Data('t', ADDRESS_FC, TX_Data, 4, false);
usleep(Sleep);
ToolBox::Wait(SLEEP);
}
serialPort->close();
pb_Open->setText("Verbinden");
ac_ConnectTTY->setText("Verbinden");
pb_Open->setIcon(ToolBox::Icon(9));
ac_ConnectTTY->setIcon(ToolBox::Icon(9));
// pb_Open->setText("Seriell Verbinden");
ac_ConnectTTY->setText("Seriell Verbinden");
// pb_Open->setIcon(ToolBox::Icon(9));
// ac_ConnectTTY->setIcon(ToolBox::Icon(9));
 
le_Port->setEnabled(true);
 
1392,10 → 1624,10
 
send_Data('v', ADDRESS_ALL, TX_Data, 0, true);
 
pb_Open->setText("Trennen");
ac_ConnectTTY->setText("Trennen");
pb_Open->setIcon(ToolBox::Icon(8));
ac_ConnectTTY->setIcon(ToolBox::Icon(8));
// pb_Open->setText("Seriell Trennen");
ac_ConnectTTY->setText("Seriell Trennen");
// pb_Open->setIcon(ToolBox::Icon(8));
// ac_ConnectTTY->setIcon(ToolBox::Icon(8));
 
Ticker->start(2000);
}
/QMK-Groundstation/trunk/Forms/mktool.h
33,13 → 33,22
#include <qwt_plot_grid.h>
#include <qwt_legend.h>
#include <qwt_plot.h>
#include <qwt_compass.h>
#include <qwt_compass_rose.h>
#include <qwt_dial_needle.h>
 
#include "ui_mktool.h"
#include "wdg_Settings.h"
#include "dlg_LCD.h"
 
#include "../SerialPort/ManageSerialPort.h"
#include "../cSettings.h"
#include "../Classes/cSettings.h"
#include "../Classes/cServer.h"
#include "../Classes/cQMK_Server.h"
#include "../Classes/cAttitude.h"
#include "../Classes/cSpeedMeter.h"
 
 
class QextSerialPort;
 
class MKTool : public QMainWindow, public Ui::dlg_mktool_UI
51,6 → 60,9
~MKTool();
 
private:
 
int aa;
 
bool AllowSend;
 
// Object für Serielport
62,14 → 74,23
// Settings-Widget (FC-Settings)
wdg_Settings *f_Settings;
 
// HTTp-Server-Object für Google Earth
// HTTP-Server-Object für Google Earth
cServer *Server;
 
// QMK-Serverobjekt
cQMK_Server *MyServer;
 
// LCD-Dialog
dlg_LCD *f_LCD;
 
//TCP-Socket
QTcpSocket *TcpSocket;
 
// Default-Ticker
QTimer *Ticker;
 
// Kopie der Tabs des Hauptfensters
QWidget *TabWidgets[6];
QWidget *TabWidgets[7];
 
// Analogwert-Beschreibungen
QLabel *lb_Analog[MaxAnalog];
78,7 → 99,7
int AnalogData[MaxAnalog];
 
// Plots für die Analogwerte
QwtPlotCurve *Plot[MaxAnalog];
QwtPlotCurve *Plot[MaxAnalog];
 
// Datenspeicher für die Plots
double aData[MaxAnalog][MaxPlot];
85,6 → 106,9
double aID[MaxPlot];
int NextPlot;
 
AttitudeIndicator *Attitude;
cSpeedMeter * SpeedMeter;
 
// Ticker-Event-Array
bool TickerEvent[MaxTickerEvents];
bool TickerDiv;
124,6 → 148,7
void config_Plot();
 
void new_NaviData(sRxData RX);
// void new_Debugdata();
 
// Daten Senden, Empfangen und verarbeiten
void send_Data(char CMD, int Address, char Data[150],unsigned int Length, bool Resend = true);
137,6 → 162,10
void set_Preferences();
 
private slots:
void slot_QMKS_Connect();
void slot_QMKS_Connected();
void slot_QMKS_Disconnected(int Error);
 
void slot_ac_Hardware();
void slot_rb_Hardware();
 
155,6 → 184,7
void slot_ac_About();
void slot_ac_GetLabels();
void slot_ac_Motortest();
void slot_ac_LCD();
void slot_pb_HexFile();
 
// Default-Ticker
/QMK-Groundstation/trunk/Forms/mktool.ui
5,8 → 5,8
<rect>
<x>0</x>
<y>0</y>
<width>785</width>
<height>415</height>
<width>699</width>
<height>428</height>
</rect>
</property>
<property name="windowTitle" >
14,16 → 14,16
</property>
<property name="windowIcon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Icon/Images/128X128/utilities-system-monitor.png</normaloff>:/Icon/Images/128X128/utilities-system-monitor.png</iconset>
<normaloff>:/Icon/Images/QMK-Groundstation.png</normaloff>:/Icon/Images/QMK-Groundstation.png</iconset>
</property>
<property name="toolButtonStyle" >
<enum>Qt::ToolButtonTextOnly</enum>
</property>
<property name="dockOptions" >
<set>QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::ForceTabbedDocks|QMainWindow::VerticalTabs</set>
</property>
<widget class="QWidget" name="centralwidget" >
<layout class="QGridLayout" name="gridLayout_34" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>0</number>
</property>
<layout class="QGridLayout" name="gridLayout_12" >
<item row="0" column="0" >
<widget class="Line" name="line_2" >
<property name="orientation" >
31,7 → 31,7
</property>
</widget>
</item>
<item row="4" column="0" >
<item row="2" column="0" >
<widget class="QLabel" name="lb_Status" >
<property name="font" >
<font>
50,8 → 50,11
</property>
</widget>
</item>
<item row="3" column="0" >
<item row="1" column="0" >
<widget class="QTabWidget" name="tab_Main" >
<property name="toolTip" >
<string/>
</property>
<property name="currentIndex" >
<number>0</number>
</property>
59,6 → 62,10
<attribute name="title" >
<string>Debug-Daten </string>
</attribute>
<attribute name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Debug.png</normaloff>:/Actions/Images/Actions/Debug.png</iconset>
</attribute>
<layout class="QGridLayout" name="gridLayout_7" >
<item row="0" column="0" >
<layout class="QHBoxLayout" name="horizontalLayout" >
982,6 → 989,10
<attribute name="title" >
<string>Plotter</string>
</attribute>
<attribute name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Plotter-NO.png</normaloff>:/Actions/Images/Actions/Plotter-NO.png</iconset>
</attribute>
<layout class="QGridLayout" name="gridLayout_35" >
<item row="0" column="0" >
<widget class="QwtPlot" name="qwtPlot" />
1017,7 → 1028,7
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/utilities-system-monitor.png</normaloff>:/Actions/Images/22X22/utilities-system-monitor.png</iconset>
<normaloff>:/Actions/Images/Actions/Plotter-NO.png</normaloff>:/Actions/Images/Actions/Plotter-NO.png</iconset>
</property>
</widget>
</item>
1029,6 → 1040,10
<attribute name="title" >
<string>Terminal </string>
</attribute>
<attribute name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Terminal.png</normaloff>:/Actions/Images/Actions/Terminal.png</iconset>
</attribute>
<layout class="QGridLayout" name="gridLayout_2" >
<item row="0" column="0" colspan="8" >
<widget class="QTextEdit" name="te_RX" >
1108,189 → 1123,340
</layout>
</widget>
<widget class="QWidget" name="Tab_4" >
<property name="toolTip" >
<string>Motortest / LCD</string>
</property>
<attribute name="title" >
<string>Cockpit</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_38" >
<attribute name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Cockpit.png</normaloff>:/Actions/Images/Actions/Cockpit.png</iconset>
</attribute>
<layout class="QGridLayout" name="gridLayout_13" >
<item row="0" column="0" >
<widget class="QGroupBox" name="groupBox_2" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<widget class="QGroupBox" name="groupBox" >
<property name="title" >
<string>Informationen</string>
</property>
<layout class="QGridLayout" name="gridLayout_8" >
<item row="0" column="0" >
<widget class="QLabel" name="label_3" >
<property name="text" >
<string>Flugzeit:</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="le_CTime" >
<property name="minimumSize" >
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="alignment" >
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_6" >
<property name="text" >
<string>Satelliten: </string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QLineEdit" name="le_CSats" >
<property name="minimumSize" >
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="alignment" >
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_7" >
<property name="text" >
<string>Entfernung:</string>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QLineEdit" name="le_CDistance" >
<property name="minimumSize" >
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="alignment" >
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0" >
<widget class="QLabel" name="label_4" >
<property name="text" >
<string>Wegpunkte Total:</string>
</property>
</widget>
</item>
<item row="3" column="1" >
<widget class="QLineEdit" name="le_CWPT" >
<property name="minimumSize" >
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="alignment" >
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0" >
<widget class="QLabel" name="label_5" >
<property name="text" >
<string>Aktueller Wegpunkt:</string>
</property>
</widget>
</item>
<item row="4" column="1" >
<widget class="QLineEdit" name="le_CWPA" >
<property name="minimumSize" >
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="alignment" >
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="1" >
<spacer name="verticalSpacer_3" >
<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 row="0" column="1" >
<spacer name="horizontalSpacer_14" >
<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="0" column="2" >
<widget class="QGroupBox" name="box_Flugdaten" >
<property name="title" >
<string>LCD</string>
<string>Flugdaten</string>
</property>
<layout class="QGridLayout" name="gridLayout_42" >
<layout class="QGridLayout" name="gridLayout" >
<item row="0" column="0" >
<layout class="QGridLayout" name="gridLayout_41" >
<item row="0" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD0" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Minimum" hsizetype="Minimum" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
<layout class="QVBoxLayout" name="LayOut_Speed" >
<item>
<widget class="QLabel" name="label_145" >
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
<string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
p, li { white-space: pre-wrap; }
&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:11pt; font-weight:600; font-style:normal;">
&lt;p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Geschwindigkeit&lt;/p>
&lt;p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;/p>&lt;/body>&lt;/html></string>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD1" >
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
</layout>
</item>
<item row="0" column="1" >
<layout class="QVBoxLayout" name="verticalLayout" >
<item>
<widget class="QLabel" name="label_143" >
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
<string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
p, li { white-space: pre-wrap; }
&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:11pt; font-weight:600; font-style:normal;">
&lt;p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ausrichtung&lt;/p>
&lt;p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;/p>&lt;/body>&lt;/html></string>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
<property name="readOnly" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD2" >
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
</size>
</property>
</layout>
</item>
<item row="0" column="2" >
<layout class="QVBoxLayout" name="verticalLayout_6" >
<item>
<widget class="QLabel" name="label_142" >
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
<string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
p, li { white-space: pre-wrap; }
&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:11pt; font-weight:600; font-style:normal;">
&lt;p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Flugrichtung&lt;/p>
&lt;p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;/p>&lt;/body>&lt;/html></string>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
<property name="readOnly" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3" >
<widget class="QLineEdit" name="le_LCD3" >
<item>
<widget class="QwtCompass" name="Compass" >
<property name="minimumSize" >
<size>
<width>240</width>
<height>0</height>
<width>125</width>
<height>125</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>125</width>
<height>125</height>
</size>
</property>
<property name="lineWidth" >
<number>4</number>
</property>
<property name="frameShadow" >
<enum>QwtDial::Sunken</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="3" >
<layout class="QVBoxLayout" name="verticalLayout_2" >
<item>
<widget class="QLabel" name="label_144" >
<property name="font" >
<font>
<family>Courier 10 Pitch</family>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string/>
<string>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
p, li { white-space: pre-wrap; }
&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:11pt; font-weight:600; font-style:normal;">
&lt;p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Höhen-&lt;/p>
&lt;p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">änderung&lt;/p>&lt;/body>&lt;/html></string>
</property>
<property name="maxLength" >
<number>22</number>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
<property name="readOnly" >
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0" >
<widget class="QCheckBox" name="cb_LCD" >
<property name="text" >
<string>Auto-Refresh </string>
<item>
<widget class="QwtSlider" name="qwt_Rate" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
<property name="checked" >
<bool>true</bool>
<property name="scalePosition" >
<enum>QwtSlider::LeftScale</enum>
</property>
</widget>
</item>
<item row="4" column="1" >
<widget class="QPushButton" name="pb_LCDdown" >
<property name="text" >
<string/>
<property name="bgStyle" >
<enum>QwtSlider::BgTrough</enum>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/32X32/arrow-left.png</normaloff>:/Arrows/Images/32X32/arrow-left.png</iconset>
<property name="thumbLength" >
<number>10</number>
</property>
</widget>
</item>
<item row="4" column="2" >
<widget class="QPushButton" name="pb_LCDup" >
<property name="text" >
<string/>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/32X32/arrow-right.png</normaloff>:/Arrows/Images/32X32/arrow-right.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0" >
<spacer name="verticalSpacer_14" >
<item row="1" column="1" >
<spacer name="verticalSpacer" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
1297,7 → 1463,7
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
<height>0</height>
<height>40</height>
</size>
</property>
</spacer>
1305,78 → 1471,6
</layout>
</widget>
</item>
<item row="0" column="2" >
<layout class="QVBoxLayout" name="verticalLayout_8" >
<item>
<widget class="QGroupBox" name="box_Flugdaten" >
<property name="title" >
<string>Flugdaten</string>
</property>
<layout class="QGridLayout" name="gridLayout_39" >
<item row="0" column="0" >
<layout class="QVBoxLayout" name="verticalLayout_6" >
<item>
<widget class="QLabel" name="label_142" >
<property name="font" >
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string>Flugrichtung</string>
</property>
<property name="alignment" >
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QwtCompass" name="Compass" >
<property name="minimumSize" >
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="lineWidth" >
<number>4</number>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_16" >
<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>
</item>
<item row="0" column="1" >
<spacer name="horizontalSpacer_12" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item row="1" column="0" colspan="3" >
<widget class="QGroupBox" name="box_System" >
<property name="title" >
1391,7 → 1485,7
</widget>
</item>
<item>
<widget class="QProgressBar" name="progressBar" >
<widget class="QProgressBar" name="bar_UBAT" >
<property name="maximum" >
<number>140</number>
</property>
1398,11 → 1492,8
<property name="value" >
<number>0</number>
</property>
<property name="textVisible" >
<bool>false</bool>
</property>
<property name="format" >
<string/>
<string>%v</string>
</property>
</widget>
</item>
1414,7 → 1505,7
</widget>
</item>
<item>
<widget class="QProgressBar" name="progressBar_2" >
<widget class="QProgressBar" name="bar_RX" >
<property name="maximum" >
<number>255</number>
</property>
1422,7 → 1513,7
<number>0</number>
</property>
<property name="format" >
<string/>
<string>%v</string>
</property>
</widget>
</item>
1429,28 → 1520,16
</layout>
</widget>
</item>
<item row="0" column="1" >
<spacer name="horizontalSpacer_14" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="Tab_5" >
<property name="toolTip" >
<string>Firmeware Update</string>
</property>
<attribute name="title" >
<string>Firmeware Update </string>
<string>Firmware Update </string>
</attribute>
<attribute name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Firmware.png</normaloff>:/Actions/Images/Actions/Firmware.png</iconset>
</attribute>
<layout class="QGridLayout" name="gridLayout_37" >
<item row="0" column="0" >
<widget class="QTextEdit" name="te_Shell" >
1583,158 → 1662,109
</item>
</layout>
</widget>
<widget class="QWidget" name="Tab_6" >
<attribute name="title" >
<string>Wegpunkte</string>
</attribute>
<attribute name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Waypoints.png</normaloff>:/Actions/Images/Actions/Waypoints.png</iconset>
</attribute>
</widget>
<widget class="QWidget" name="Seite" >
<attribute name="title" >
<string>Debug</string>
</attribute>
<widget class="QPushButton" name="pb_Quit" >
<property name="geometry" >
<rect>
<x>550</x>
<y>0</y>
<width>141</width>
<height>26</height>
</rect>
</property>
<property name="text" >
<string>Beenden</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/application-exit.png</normaloff>:/Actions/Images/22X22/application-exit.png</iconset>
</property>
</widget>
<widget class="QPushButton" name="pb_Record" >
<property name="geometry" >
<rect>
<x>350</x>
<y>0</y>
<width>201</width>
<height>26</height>
</rect>
</property>
<property name="text" >
<string>CSV Aufzeichen</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/media-record.png</normaloff>:/Actions/Images/22X22/media-record.png</iconset>
</property>
</widget>
<widget class="QLabel" name="lb_Port" >
<property name="geometry" >
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>17</height>
</rect>
</property>
<property name="text" >
<string>Device: </string>
</property>
</widget>
<widget class="QLineEdit" name="le_Port" >
<property name="geometry" >
<rect>
<x>60</x>
<y>0</y>
<width>131</width>
<height>27</height>
</rect>
</property>
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text" >
<string>/dev/ttyUSB0</string>
</property>
</widget>
<widget class="QPushButton" name="pb_Open" >
<property name="geometry" >
<rect>
<x>190</x>
<y>0</y>
<width>151</width>
<height>26</height>
</rect>
</property>
<property name="text" >
<string>Verbinden</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/network-disconnect.png</normaloff>:/Actions/Images/22X22/network-disconnect.png</iconset>
</property>
</widget>
<widget class="QLineEdit" name="IN" >
<property name="geometry" >
<rect>
<x>0</x>
<y>270</y>
<width>751</width>
<height>31</height>
</rect>
</property>
<property name="text" >
<string>#cOD{br>Lozm^zgC]===M=============================================================\======>t=====?q>|=E====D============z^</string>
</property>
</widget>
<widget class="QPushButton" name="Dec" >
<property name="geometry" >
<rect>
<x>0</x>
<y>240</y>
<width>100</width>
<height>26</height>
</rect>
</property>
<property name="text" >
<string>Decode</string>
</property>
</widget>
<widget class="QRadioButton" name="rb_SelFC" >
<property name="geometry" >
<rect>
<x>250</x>
<y>90</y>
<width>91</width>
<height>25</height>
</rect>
</property>
<property name="text" >
<string>FlightCtrl</string>
</property>
</widget>
<widget class="QRadioButton" name="rb_SelNC" >
<property name="geometry" >
<rect>
<x>360</x>
<y>90</y>
<width>81</width>
<height>25</height>
</rect>
</property>
<property name="text" >
<string>NaviCtrl</string>
</property>
</widget>
<widget class="QRadioButton" name="rb_SelMag" >
<property name="geometry" >
<rect>
<x>460</x>
<y>90</y>
<width>81</width>
<height>25</height>
</rect>
</property>
<property name="text" >
<string>MK3Mag</string>
</property>
</widget>
<layout class="QGridLayout" name="gridLayout_9" >
<item row="0" column="0" >
<widget class="QLabel" name="lb_Port" >
<property name="text" >
<string>Device: </string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="le_Port" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text" >
<string>/dev/ttyUSB0</string>
</property>
</widget>
</item>
<item row="0" column="2" >
<widget class="QPushButton" name="pb_Open" >
<property name="text" >
<string>Verbinden</string>
</property>
<property name="icon" >
<iconset>
<normaloff>:/Actions/Images/22X22/network-disconnect.png</normaloff>:/Actions/Images/22X22/network-disconnect.png</iconset>
</property>
</widget>
</item>
<item row="0" column="3" colspan="2" >
<widget class="QPushButton" name="pb_Record" >
<property name="text" >
<string>CSV Aufzeichen</string>
</property>
<property name="icon" >
<iconset>
<normaloff>:/Actions/Images/22X22/media-record.png</normaloff>:/Actions/Images/22X22/media-record.png</iconset>
</property>
</widget>
</item>
<item row="0" column="5" >
<widget class="QPushButton" name="pb_Quit" >
<property name="text" >
<string>Beenden</string>
</property>
<property name="icon" >
<iconset>
<normaloff>:/Actions/Images/22X22/application-exit.png</normaloff>:/Actions/Images/22X22/application-exit.png</iconset>
</property>
</widget>
</item>
<item row="1" column="2" >
<widget class="QRadioButton" name="rb_SelFC" >
<property name="text" >
<string>FlightCtrl</string>
</property>
</widget>
</item>
<item row="1" column="3" >
<widget class="QRadioButton" name="rb_SelNC" >
<property name="text" >
<string>NaviCtrl</string>
</property>
</widget>
</item>
<item row="1" column="4" >
<widget class="QRadioButton" name="rb_SelMag" >
<property name="text" >
<string>MK3Mag</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2" >
<widget class="QPushButton" name="Dec" >
<property name="text" >
<string>Decode</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="6" >
<widget class="QLineEdit" name="IN" >
<property name="text" >
<string>#cO][`S>zNIP^y``====M==================================z[lS>|zGP^{]Y====M========[n======>o>m>omMq>|m`J==E=============yY </string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
1745,7 → 1775,7
<rect>
<x>0</x>
<y>0</y>
<width>785</width>
<width>699</width>
<height>25</height>
</rect>
</property>
1754,6 → 1784,7
<string>&amp;Programm</string>
</property>
<addaction name="ac_ConnectTTY" />
<addaction name="ac_QMKServer" />
<addaction name="separator" />
<addaction name="ac_Quit" />
</widget>
1797,6 → 1828,7
<addaction name="ac_View3" />
<addaction name="ac_View4" />
<addaction name="ac_View5" />
<addaction name="ac_View6" />
</widget>
<addaction name="menuBereiche" />
</widget>
1805,6 → 1837,7
<string>Werkzeuge</string>
</property>
<addaction name="ac_Motortest" />
<addaction name="ac_LCD" />
</widget>
<widget class="QMenu" name="menuHardware" >
<property name="title" >
1832,15 → 1865,55
<addaction name="menuWerkzeuge" />
<addaction name="menu_Help" />
</widget>
<widget class="QToolBar" name="toolBar" >
<property name="enabled" >
<bool>true</bool>
<widget class="QToolBar" name="tb_Allgemein" >
<property name="windowTitle" >
<string>Allgemein</string>
</property>
<property name="iconSize" >
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="toolButtonStyle" >
<enum>Qt::ToolButtonIconOnly</enum>
</property>
<attribute name="toolBarArea" >
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak" >
<bool>false</bool>
</attribute>
<addaction name="ac_ConnectTTY" />
<addaction name="ac_QMKServer" />
<addaction name="separator" />
<addaction name="ac_StartServer" />
</widget>
<widget class="QToolBar" name="tb_Werkzeuge" >
<property name="windowTitle" >
<string>toolBar</string>
<string>Werkzeuge</string>
</property>
<property name="movable" >
<property name="iconSize" >
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="toolButtonStyle" >
<enum>Qt::ToolButtonIconOnly</enum>
</property>
<attribute name="toolBarArea" >
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak" >
<bool>false</bool>
</attribute>
<addaction name="ac_Motortest" />
<addaction name="ac_LCD" />
</widget>
<widget class="QToolBar" name="tb_Debug" >
<property name="windowTitle" >
<string>Debug-Daten</string>
</property>
<property name="iconSize" >
<size>
1857,19 → 1930,32
<attribute name="toolBarBreak" >
<bool>false</bool>
</attribute>
<addaction name="ac_ConnectTTY" />
<addaction name="separator" />
<addaction name="ac_StartPlotter" />
<addaction name="ac_FastDebug" />
<addaction name="ac_RecordCSV" />
<addaction name="separator" />
<addaction name="ac_Motortest" />
<addaction name="separator" />
<addaction name="ac_StartServer" />
<addaction name="separator" />
<addaction name="ac_Quit" />
<addaction name="separator" />
</widget>
<widget class="QToolBar" name="tb_TTY" >
<property name="windowTitle" >
<string>Schnittstelle</string>
</property>
<attribute name="toolBarArea" >
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak" >
<bool>false</bool>
</attribute>
</widget>
<widget class="QToolBar" name="tb_Hardware" >
<property name="windowTitle" >
<string>Hardware</string>
</property>
<attribute name="toolBarArea" >
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak" >
<bool>false</bool>
</attribute>
</widget>
<action name="ac_LogDir" >
<property name="text" >
<string>Log-Verzeichniss</string>
1883,7 → 1969,7
<action name="ac_Quit" >
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/application-exit.png</normaloff>:/Actions/Images/22X22/application-exit.png</iconset>
<normaloff>:/Actions/Images/Actions/Exit.png</normaloff>:/Actions/Images/Actions/Exit.png</iconset>
</property>
<property name="text" >
<string>&amp;Beenden</string>
1895,12 → 1981,16
</property>
</action>
<action name="ac_ConnectTTY" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/network-disconnect.png</normaloff>:/Actions/Images/22X22/network-disconnect.png</iconset>
<normaloff>:/Actions/Images/Actions/Seriell-NO.png</normaloff>
<normalon>:/Actions/Images/Actions/Seriell-OK.png</normalon>:/Actions/Images/Actions/Seriell-NO.png</iconset>
</property>
<property name="text" >
<string>Verbinden</string>
<string>Seriell Verbinden</string>
</property>
</action>
<action name="ac_RecordCSV" >
1909,7 → 1999,8
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/media-record.png</normaloff>:/Actions/Images/22X22/media-record.png</iconset>
<normaloff>:/Actions/Images/Actions/CVS-Record.png</normaloff>
<normalon>:/Actions/Images/Actions/CVS-Stop.png</normalon>:/Actions/Images/Actions/CVS-Record.png</iconset>
</property>
<property name="text" >
<string>CSV Aufzeichnen</string>
1921,7 → 2012,8
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/utilities-system-monitor.png</normaloff>:/Actions/Images/22X22/utilities-system-monitor.png</iconset>
<normaloff>:/Actions/Images/Actions/Plotter-NO.png</normaloff>
<normalon>:/Actions/Images/Actions/Plotter-OK.png</normalon>:/Actions/Images/Actions/Plotter-NO.png</iconset>
</property>
<property name="text" >
<string>Start Plotter</string>
1930,7 → 2022,7
<action name="ac_Config" >
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/preferences-system.png</normaloff>:/Actions/Images/22X22/preferences-system.png</iconset>
<normaloff>:/Actions/Images/Actions/Preferences-Data.png</normaloff>:/Actions/Images/Actions/Preferences-Data.png</iconset>
</property>
<property name="text" >
<string>Datenfelder wählen</string>
1942,7 → 2034,7
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/clock.png</normaloff>:/Actions/Images/22X22/clock.png</iconset>
<normaloff>:/Actions/Images/Actions/Fast-Data.png</normaloff>:/Actions/Images/Actions/Fast-Data.png</iconset>
</property>
<property name="text" >
<string>Schnelle Debugdaten</string>
1955,6 → 2047,10
<property name="checked" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Debug.png</normaloff>:/Actions/Images/Actions/Debug.png</iconset>
</property>
<property name="text" >
<string>Debug-Daten</string>
</property>
1966,6 → 2062,10
<property name="checked" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Plotter-NO.png</normaloff>:/Actions/Images/Actions/Plotter-NO.png</iconset>
</property>
<property name="text" >
<string>Plotter</string>
</property>
1977,6 → 2077,10
<property name="checked" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/FC-Settings.png</normaloff>:/Actions/Images/Actions/FC-Settings.png</iconset>
</property>
<property name="text" >
<string>FC-Settings</string>
</property>
1988,6 → 2092,10
<property name="checked" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Terminal.png</normaloff>:/Actions/Images/Actions/Terminal.png</iconset>
</property>
<property name="text" >
<string>Terminal</string>
</property>
1999,6 → 2107,10
<property name="checked" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Cockpit.png</normaloff>:/Actions/Images/Actions/Cockpit.png</iconset>
</property>
<property name="text" >
<string>Cockpit</string>
</property>
2010,6 → 2122,10
<property name="checked" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Firmware.png</normaloff>:/Actions/Images/Actions/Firmware.png</iconset>
</property>
<property name="text" >
<string>Firmware Update</string>
</property>
2022,7 → 2138,7
<action name="ac_Preferences" >
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/preferences-other.png</normaloff>:/Actions/Images/22X22/preferences-other.png</iconset>
<normaloff>:/Actions/Images/Actions/Preferences.png</normaloff>:/Actions/Images/Actions/Preferences.png</iconset>
</property>
<property name="text" >
<string>QMK Einrichten</string>
2031,7 → 2147,7
<action name="ac_Motortest" >
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/applications-system.png</normaloff>:/Actions/Images/22X22/applications-system.png</iconset>
<normaloff>:/Actions/Images/Actions/Motortest.png</normaloff>:/Actions/Images/Actions/Motortest.png</iconset>
</property>
<property name="text" >
<string>Motortest</string>
2075,7 → 2191,8
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/applications-internet.png</normaloff>:/Actions/Images/22X22/applications-internet.png</iconset>
<normaloff>:/Actions/Images/Actions/Google-NO.png</normaloff>
<normalon>:/Actions/Images/Actions/Google-OK.png</normalon>:/Actions/Images/Actions/Google-NO.png</iconset>
</property>
<property name="text" >
<string>Google Earth Server</string>
2087,7 → 2204,7
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/clock.png</normaloff>:/Actions/Images/22X22/clock.png</iconset>
<normaloff>:/Actions/Images/Actions/Fast-Data.png</normaloff>:/Actions/Images/Actions/Fast-Data.png</iconset>
</property>
<property name="text" >
<string>Schnelle Navi-Daten</string>
2101,6 → 2218,46
<string>Navidaten abschalten</string>
</property>
</action>
<action name="ac_QMKServer" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="enabled" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Network-NO.png</normaloff>
<normalon>:/Actions/Images/Actions/Network-OK.png</normalon>:/Actions/Images/Actions/Network-NO.png</iconset>
</property>
<property name="text" >
<string>QMK Server Verbinden</string>
</property>
</action>
<action name="ac_View6" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="enabled" >
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/Waypoints.png</normaloff>:/Actions/Images/Actions/Waypoints.png</iconset>
</property>
<property name="text" >
<string>Wegpunkte</string>
</property>
</action>
<action name="ac_LCD" >
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/Actions/LCD.png</normaloff>:/Actions/Images/Actions/LCD.png</iconset>
</property>
<property name="text" >
<string>LCD-Display</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
2114,6 → 2271,11
<extends>QwtDial</extends>
<header>qwt_compass.h</header>
</customwidget>
<customwidget>
<class>QwtSlider</class>
<extends>QWidget</extends>
<header>qwt_slider.h</header>
</customwidget>
</customwidgets>
<resources>
<include location="../MKTool.qrc" />
/QMK-Groundstation/trunk/Forms/wdg_Settings.cpp
20,7 → 20,7
#include <QSettings>
 
#include "wdg_Settings.h"
#include "../ToolBox.h"
#include "../Classes/ToolBox.h"
 
wdg_Settings::wdg_Settings(QWidget *parent) : QWidget(parent)
{
59,6 → 59,11
connect(sb_11_3, SIGNAL(valueChanged(int)), this, SLOT(slot_ValuetoLED17(int)));
}
 
void wdg_Settings::set_Config(cSettings *pConfig)
{
Config = pConfig;
}
 
void wdg_Settings::set_LED(QToolButton *ToolButton, bool On)
{
if (ToolButton->text() == QString("0") && On)
232,12 → 237,12
{
if (tb_9_6->text() == QString("0"))
{
tb_9_6->setIcon(ToolBox::Icon(20));
// tb_9_6->setIcon(ToolBox::Icon(20));
tb_9_6->setText("1");
}
else
{
tb_9_6->setIcon(ToolBox::Icon(21));
// tb_9_6->setIcon(ToolBox::Icon(21));
tb_9_6->setText("0");
}
}
246,12 → 251,12
{
if (tb_9_7->text() == QString("0"))
{
tb_9_7->setIcon(ToolBox::Icon(22));
// tb_9_7->setIcon(ToolBox::Icon(22));
tb_9_7->setText("1");
}
else
{
tb_9_7->setIcon(ToolBox::Icon(23));
// tb_9_7->setIcon(ToolBox::Icon(23));
tb_9_7->setText("0");
}
}
260,12 → 265,12
{
if (tb_9_8->text() == QString("0"))
{
tb_9_8->setIcon(ToolBox::Icon(24));
// tb_9_8->setIcon(ToolBox::Icon(24));
tb_9_8->setText("1");
}
else
{
tb_9_8->setIcon(ToolBox::Icon(25));
// tb_9_8->setIcon(ToolBox::Icon(25));
tb_9_8->setText("0");
}
}
274,12 → 279,12
{
if (tb_9_9->text() == QString("0"))
{
tb_9_9->setIcon(ToolBox::Icon(26));
// tb_9_9->setIcon(ToolBox::Icon(26));
tb_9_9->setText("1");
}
else
{
tb_9_9->setIcon(ToolBox::Icon(27));
// tb_9_9->setIcon(ToolBox::Icon(27));
tb_9_9->setText("0");
}
}
286,7 → 291,7
 
void wdg_Settings::slot_LoadParameter() // DONE 0.71g
{
QString Filename = QFileDialog::getOpenFileName(this, "Mikrokopter Parameter laden", /*Settings->DIR.Parameter*/ "", "Mikrokopter Parameter(*.mkp);;Alle Dateien (*)");
QString Filename = QFileDialog::getOpenFileName(this, "Mikrokopter Parameter laden", Config->DIR.Parameter + "", "Mikrokopter Parameter(*.mkp);;Alle Dateien (*)");
 
if (!Filename.isEmpty())
{
572,12 → 577,11
ParameterSet[Set][P_NAV_ANGLE_LIMIT] = get_Value(cb_13_4);
}
 
 
void wdg_Settings::slot_SaveParameter() // DONE 0.71g
{
int Set = sb_Set->value() + 5;
 
QString Filename = QFileDialog::getSaveFileName(this, "Mikrokopter Parameter speichern", /*Settings->DIR.Parameter*/ "" + le_SetName->text(), "Mikrokopter Parameter(*.mkp);;Alle Dateien (*)");
QString Filename = QFileDialog::getSaveFileName(this, "Mikrokopter Parameter speichern", Config->DIR.Parameter + "" + le_SetName->text(), "Mikrokopter Parameter(*.mkp);;Alle Dateien (*)");
 
if (!Filename.isEmpty())
{
751,6 → 755,7
}
le_SetName->setText(QString(Name));
 
 
// Seite 1
{
cb_1_1->setChecked(FCSettings[P_GLOBAL_CONF] & 0x01);
827,45 → 832,39
{
if (FCSettings[P_LOOP_CONFIG] & 0x01)
{
tb_9_6->setIcon(ToolBox::Icon(20));
tb_9_6->setText("1");
tb_9_6->setChecked(true);
}
else
{
tb_9_6->setIcon(ToolBox::Icon(21));
tb_9_6->setText("0");
tb_9_6->setChecked(false);
}
 
if (FCSettings[P_LOOP_CONFIG] & 0x02)
{
tb_9_7->setIcon(ToolBox::Icon(22));
tb_9_7->setText("1");
}
else
{
tb_9_7->setIcon(ToolBox::Icon(23));
tb_9_7->setText("0");
}
 
if (FCSettings[P_LOOP_CONFIG] & 0x04)
{
tb_9_8->setIcon(ToolBox::Icon(24));
tb_9_8->setText("1");
}
else
{
tb_9_8->setIcon(ToolBox::Icon(25));
tb_9_8->setText("0");
}
 
if (FCSettings[P_LOOP_CONFIG] & 0x08)
{
tb_9_9->setIcon(ToolBox::Icon(26));
tb_9_9->setText("1");
}
else
{
tb_9_9->setIcon(ToolBox::Icon(27));
tb_9_9->setText("0");
}
 
/QMK-Groundstation/trunk/Forms/wdg_Settings.h
26,6 → 26,7
 
#include "ui_wdg_Settings.h"
#include "../global.h"
#include "../Classes/cSettings.h"
 
class wdg_Settings : public QWidget, public Ui::wdg_Settings_UI
{
37,10 → 38,12
 
void show_FCSettings(int Set, int FCSettings[MaxParameter]);
char *GetFCSettings();
void set_Config(cSettings *pConfig);
 
private:
int Settings[MaxParameter];
int ParameterSet[11][MaxParameter];
cSettings *Config;
 
void set_LED(QToolButton *ToolButton, bool On = false);
 
/QMK-Groundstation/trunk/Forms/wdg_Settings.ui
5,7 → 5,7
<rect>
<x>0</x>
<y>0</y>
<width>708</width>
<width>700</width>
<height>301</height>
</rect>
</property>
2599,8 → 2599,9
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/32X32/arrow-left.png</normaloff>:/Arrows/Images/32X32/arrow-left.png</iconset>
<iconset>
<normaloff>:/Arrows/Images/Arrows/Left-1.png</normaloff>
<normalon>:/Arrows/Images/Arrows/Left-2.png</normalon>:/Arrows/Images/Arrows/Left-1.png</iconset>
</property>
<property name="iconSize" >
<size>
2608,6 → 2609,12
<height>32</height>
</size>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<property name="autoRaise" >
<bool>true</bool>
</property>
2626,8 → 2633,9
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/32X32/arrow-up.png</normaloff>:/Arrows/Images/32X32/arrow-up.png</iconset>
<iconset>
<normaloff>:/Arrows/Images/Arrows/Up-1.png</normaloff>
<normalon>:/Arrows/Images/Arrows/Up-2.png</normalon>:/Arrows/Images/Arrows/Up-1.png</iconset>
</property>
<property name="iconSize" >
<size>
2635,6 → 2643,12
<height>32</height>
</size>
</property>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="checked" >
<bool>false</bool>
</property>
<property name="autoRaise" >
<bool>true</bool>
</property>
2646,8 → 2660,9
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/32X32/arrow-down.png</normaloff>:/Arrows/Images/32X32/arrow-down.png</iconset>
<iconset>
<normaloff>:/Arrows/Images/Arrows/Down-1.png</normaloff>
<normalon>:/Arrows/Images/Arrows/Down-2.png</normalon>:/Arrows/Images/Arrows/Down-1.png</iconset>
</property>
<property name="iconSize" >
<size>
2655,8 → 2670,8
<height>32</height>
</size>
</property>
<property name="toolButtonStyle" >
<enum>Qt::ToolButtonIconOnly</enum>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="autoRaise" >
<bool>true</bool>
2673,8 → 2688,9
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Arrows/Images/32X32/arrow-right.png</normaloff>:/Arrows/Images/32X32/arrow-right.png</iconset>
<iconset>
<normaloff>:/Arrows/Images/Arrows/Right-1.png</normaloff>
<normalon>:/Arrows/Images/Arrows/Right-2.png</normalon>:/Arrows/Images/Arrows/Right-1.png</iconset>
</property>
<property name="iconSize" >
<size>
2682,8 → 2698,8
<height>32</height>
</size>
</property>
<property name="checked" >
<bool>false</bool>
<property name="checkable" >
<bool>true</bool>
</property>
<property name="autoRaise" >
<bool>true</bool>
3462,7 → 3478,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3479,7 → 3495,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3496,7 → 3512,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3513,7 → 3529,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3530,7 → 3546,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3547,7 → 3563,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3564,7 → 3580,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3581,7 → 3597,7
<string>0</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3710,7 → 3726,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3727,7 → 3743,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3744,7 → 3760,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3761,7 → 3777,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3778,7 → 3794,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3795,7 → 3811,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3812,7 → 3828,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
3829,7 → 3845,7
<string>00</string>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<iconset>
<normaloff>:/LED/Images/16X16/ledoff.png</normaloff>:/LED/Images/16X16/ledoff.png</iconset>
</property>
<property name="autoRaise" >
4664,7 → 4680,7
&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:11pt; font-weight:400; font-style:normal;">
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:600; text-decoration: underline;">Einstellungen für das Navi-Ctrl (Seite 2).&lt;/span>&lt;/p>
&lt;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; font-weight:600; text-decoration: underline;">&lt;/p>
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;">&lt;span style=" text-decoration:none;">GPS-Wind-Correction: &lt;/span>&lt;span style=" font-weight:400; text-decoration:none;">soll den MK bei Coming-Home direkter zurückfliegen und die Drift durch Wind kompensieren&lt;/span>&lt;/p>
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:600;">GPS-Wind-Correction: &lt;/span>soll den MK bei Coming-Home direkter zurückfliegen und die Drift durch Wind kompensieren&lt;/p>
&lt;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;">&lt;/p>
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:600;">Speed Compensation: &lt;/span>Greift bei AID unterstützend ein, wenn man einen neuen Punkt anfliegt Wenn zuviel Geschwindigkeit aufgebaut wird, bremst das den MK&lt;/p>
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;br />&lt;span style=" font-weight:600;">GPS-Maxradius: &lt;/span>Soll eine virtuelle Grenze bilden, die mit GPS nicht überschritten wird.&lt;br />Wenn der MK ausserhalb des Kreises einloggen soll, nimmt er als neue Position einen Punkt auf dem Kreisrand.&lt;br />Man kann den Radius auch auf ein Poti legen. Wegpunkte und Soll-Positionen werden damit auch auf einen Kreis von max. 512m Durchmesser begrenzt.&lt;/p>
4679,8 → 4695,6
</item>
</layout>
</widget>
<resources>
<include location="../MKTool.qrc" />
</resources>
<resources/>
<connections/>
</ui>
/QMK-Groundstation/trunk/Images/Actions/CVS-Record.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/CVS-Stop.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Cockpit.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Debug.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Exit.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/FC-Settings.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Fast-Data.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Firmware.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Google-NO.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Google-OK.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Icons.xcf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/LCD.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Motortest.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Network-NO.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Network-OK.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Plotter-NO.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Plotter-OK.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Preferences-Data.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Preferences.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Seriell-NO.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Seriell-OK.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Terminal.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Actions/Waypoints.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Down-1.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Down-2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Left-1.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Left-2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Right-1.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Right-2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Up-1.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/Arrows/Up-2.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:executable
+*
\ No newline at end of property
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/Images/QMK-Groundstation.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/QMK-Groundstation/trunk/MKTool.qrc
5,32 → 5,40
<file>Images/16X16/ledoff.png</file>
</qresource>
<qresource prefix="Arrows" >
<file>Images/32X32/arrow-down-double.png</file>
<file>Images/32X32/arrow-down.png</file>
<file>Images/32X32/arrow-left-double.png</file>
<file>Images/32X32/arrow-left.png</file>
<file>Images/32X32/arrow-right-double.png</file>
<file>Images/32X32/arrow-right.png</file>
<file>Images/32X32/arrow-up-double.png</file>
<file>Images/32X32/arrow-up.png</file>
<file>Images/Arrows/Down-1.png</file>
<file>Images/Arrows/Down-2.png</file>
<file>Images/Arrows/Left-1.png</file>
<file>Images/Arrows/Left-2.png</file>
<file>Images/Arrows/Right-1.png</file>
<file>Images/Arrows/Right-2.png</file>
<file>Images/Arrows/Up-1.png</file>
<file>Images/Arrows/Up-2.png</file>
</qresource>
<qresource prefix="Actions" >
<file>Images/22X22/applications-system.png</file>
<file>Images/22X22/applications-internet.png</file>
<file>Images/22X22/preferences-other.png</file>
<file>Images/22X22/preferences-system.png</file>
<file>Images/22X22/folder.png</file>
<file>Images/22X22/folder-print.png</file>
<file>Images/22X22/clock.png</file>
<file>Images/22X22/configure.png</file>
<file>Images/22X22/application-exit.png</file>
<file>Images/22X22/media-playback-stop.png</file>
<file>Images/22X22/media-record.png</file>
<file>Images/22X22/network-connect.png</file>
<file>Images/22X22/network-disconnect.png</file>
<file>Images/22X22/utilities-system-monitor.png</file>
<file>Images/Actions/Preferences-Data.png</file>
<file>Images/Actions/Preferences.png</file>
<file>Images/Actions/Exit.png</file>
<file>Images/Actions/Fast-Data.png</file>
<file>Images/Actions/Motortest.png</file>
<file>Images/Actions/LCD.png</file>
<file>Images/Actions/Waypoints.png</file>
<file>Images/Actions/FC-Settings.png</file>
<file>Images/Actions/CVS-Record.png</file>
<file>Images/Actions/CVS-Stop.png</file>
<file>Images/Actions/Debug.png</file>
<file>Images/Actions/Cockpit.png</file>
<file>Images/Actions/Firmware.png</file>
<file>Images/Actions/Terminal.png</file>
<file>Images/Actions/Google-NO.png</file>
<file>Images/Actions/Google-OK.png</file>
<file>Images/Actions/Plotter-NO.png</file>
<file>Images/Actions/Plotter-OK.png</file>
<file>Images/Actions/Seriell-NO.png</file>
<file>Images/Actions/Seriell-OK.png</file>
<file>Images/Actions/Network-NO.png</file>
<file>Images/Actions/Network-OK.png</file>
</qresource>
<qresource prefix="Icon" >
<file>Images/128X128/utilities-system-monitor.png</file>
<file>Images/QMK-Groundstation.png</file>
</qresource>
</RCC>
/QMK-Groundstation/trunk/debian.pro
1,66 → 1,71
unix : OBJECTS_DIR = build/.o/unix
win32 : OBJECTS_DIR = build/.o/win32
mac : OBJECTS_DIR = build/.o/mac
TEMPLATE = app
 
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
OBJECTS_DIR = build/.o_unix
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
 
win32 : DEFINES += _TTY_WIN_ QWT_DLL QT_DLL
unix : DEFINES += _TTY_POSIX_
DEFINES += _TTY_POSIX_
 
unix {
LIBS += -lqwt-qt4
INCLUDEPATH += $(HOME)/include /usr/include/qwt-qt4
}
LIBS += -lqwt-qt4
INCLUDEPATH += $(HOME)/include /usr/include/qwt-qt4
 
QT *= gui core network
 
SOURCES = SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
main.cpp \
cSettings.cpp \
Classes/cServer.cpp \
ToolBox.cpp \
Forms/wdg_Settings.cpp
CONFIG += warn_on thread qt
 
win32 : SOURCES += SerialPort/win_qextserialport.cpp
unix : SOURCES += SerialPort/posix_qextserialport.cpp
TARGET = QMK-Groundstation
 
HEADERS = SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
global.h \
cSettings.h \
Classes/cServer.h \
Parameter_Positions.h \
ToolBox.h \
Forms/wdg_Settings.h
RESOURCES += MKTool.qrc
 
win32 : HEADERS += SerialPort/win_qextserialport.h
unix : HEADERS += SerialPort/posix_qextserialport.h
SOURCES = \
main.cpp \
SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
Forms/wdg_Settings.cpp \
Classes/cSettings.cpp \
Classes/cServer.cpp \
Classes/ToolBox.cpp \
Classes/cAttitude.cpp \
Classes/cSpeedMeter.cpp \
Classes/cQMK_Server.cpp \
Forms/dlg_LCD.cpp
 
FORMS += Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui
win32:SOURCES += SerialPort/win_qextserialport.cpp
unix:SOURCES += SerialPort/posix_qextserialport.cpp
 
TEMPLATE = app
HEADERS = \
global.h \
Parameter_Positions.h \
SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
Forms/wdg_Settings.h \
Classes/cSettings.h \
Classes/cServer.h \
Classes/ToolBox.h \
Classes/cAttitude.h \
Classes/cSpeedMeter.h \
Classes/cQMK_Server.h \
Forms/dlg_LCD.h
 
CONFIG += warn_on thread qt
win32:HEADERS += SerialPort/win_qextserialport.h
unix:HEADERS += SerialPort/posix_qextserialport.h
 
TARGET = QMK-Groundstation
 
RESOURCES += MKTool.qrc
 
FORMS += \
Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui \
Forms/dlg_LCD.ui
/QMK-Groundstation/trunk/eeepc.pro
1,66 → 1,71
unix : OBJECTS_DIR = build/.o/unix
win32 : OBJECTS_DIR = build/.o/win32
mac : OBJECTS_DIR = build/.o/mac
TEMPLATE = app
 
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
OBJECTS_DIR = build/.o_unix
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
 
win32 : DEFINES += _TTY_WIN_ QWT_DLL QT_DLL
unix : DEFINES += _EEEPC_ _TTY_POSIX_
DEFINES += _TTY_POSIX_ _EEEPC_
 
unix {
LIBS += -lqwt-qt4
INCLUDEPATH += $(HOME)/include /usr/include/qwt-qt4
}
LIBS += -lqwt-qt4
INCLUDEPATH += $(HOME)/include /usr/include/qwt-qt4
 
QT *= gui core network
 
SOURCES = SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
main.cpp \
cSettings.cpp \
Classes/cServer.cpp \
ToolBox.cpp \
Forms/wdg_Settings.cpp
CONFIG += warn_on thread qt
 
win32 : SOURCES += SerialPort/win_qextserialport.cpp
unix : SOURCES += SerialPort/posix_qextserialport.cpp
TARGET = QMK-Groundstation
 
HEADERS = SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
global.h \
cSettings.h \
Classes/cServer.h \
Parameter_Positions.h \
ToolBox.h \
Forms/wdg_Settings.h
RESOURCES += MKTool.qrc
 
win32 : HEADERS += SerialPort/win_qextserialport.h
unix : HEADERS += SerialPort/posix_qextserialport.h
SOURCES = \
main.cpp \
SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
Forms/wdg_Settings.cpp \
Classes/cSettings.cpp \
Classes/cServer.cpp \
Classes/ToolBox.cpp \
Classes/cAttitude.cpp \
Classes/cSpeedMeter.cpp \
Classes/cQMK_Server.cpp \
Forms/dlg_LCD.cpp
 
FORMS += Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui
win32:SOURCES += SerialPort/win_qextserialport.cpp
unix:SOURCES += SerialPort/posix_qextserialport.cpp
 
TEMPLATE = app
HEADERS = \
global.h \
Parameter_Positions.h \
SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
Forms/wdg_Settings.h \
Classes/cSettings.h \
Classes/cServer.h \
Classes/ToolBox.h \
Classes/cAttitude.h \
Classes/cSpeedMeter.h \
Classes/cQMK_Server.h \
Forms/dlg_LCD.h
 
CONFIG += warn_on thread qt
win32:HEADERS += SerialPort/win_qextserialport.h
unix:HEADERS += SerialPort/posix_qextserialport.h
 
TARGET = QMK-Groundstation
 
RESOURCES += MKTool.qrc
 
FORMS += \
Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui \
Forms/dlg_LCD.ui
/QMK-Groundstation/trunk/gentoo.pro
1,65 → 1,71
unix : OBJECTS_DIR = build/.o/unix
win32 : OBJECTS_DIR = build/.o/win32
mac : OBJECTS_DIR = build/.o/mac
TEMPLATE = app
 
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
OBJECTS_DIR = build/.o_unix
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
 
win32 : DEFINES += _TTY_WIN_ QWT_DLL QT_DLL
unix : DEFINES += _TTY_POSIX_
DEFINES += _TTY_POSIX_
 
unix {
LIBS += -lqwt
INCLUDEPATH += $(HOME)/include /usr/include/qwt5
}
LIBS += -lqwt
INCLUDEPATH += $(HOME)/include /usr/include/qwt5
 
QT *= gui core network
 
SOURCES = SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
main.cpp \
cSettings.cpp \
Classes/cServer.cpp \
ToolBox.cpp \
Forms/wdg_Settings.cpp
CONFIG += warn_on thread qt
 
win32 : SOURCES += SerialPort/win_qextserialport.cpp
unix : SOURCES += SerialPort/posix_qextserialport.cpp
TARGET = QMK-Groundstation
 
HEADERS = SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
global.h \
cSettings.h \
Classes/cServer.h \
Parameter_Positions.h \
ToolBox.h \
Forms/wdg_Settings.h
RESOURCES += MKTool.qrc
 
win32 : HEADERS += SerialPort/win_qextserialport.h
unix : HEADERS += SerialPort/posix_qextserialport.h
SOURCES = \
main.cpp \
SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
Forms/wdg_Settings.cpp \
Classes/cSettings.cpp \
Classes/cServer.cpp \
Classes/ToolBox.cpp \
Classes/cAttitude.cpp \
Classes/cSpeedMeter.cpp \
Classes/cQMK_Server.cpp \
Forms/dlg_LCD.cpp
 
FORMS += Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui
win32:SOURCES += SerialPort/win_qextserialport.cpp
unix:SOURCES += SerialPort/posix_qextserialport.cpp
 
TEMPLATE = app
HEADERS = \
global.h \
Parameter_Positions.h \
SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
Forms/wdg_Settings.h \
Classes/cSettings.h \
Classes/cServer.h \
Classes/ToolBox.h \
Classes/cAttitude.h \
Classes/cSpeedMeter.h \
Classes/cQMK_Server.h \
Forms/dlg_LCD.h
 
CONFIG += warn_on thread qt
win32:HEADERS += SerialPort/win_qextserialport.h
unix:HEADERS += SerialPort/posix_qextserialport.h
 
TARGET = QMK-Groundstation
 
RESOURCES += MKTool.qrc
FORMS += \
Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui \
Forms/dlg_LCD.ui
/QMK-Groundstation/trunk/global.h
27,6 → 27,20
 
#include "Parameter_Positions.h"
 
#ifdef _WIN32_
static const QString OS_PORT = "COM1";
#else
static const QString OS_PORT = "/dev/ttyUSB0";
#endif
 
//#define _EEEPC_
 
#ifdef _EEEPC_
static const int MeterSize = 125;
#else
static const int MeterSize = 160;
#endif
 
// Version des Seriellen Protokoll
static const int VERSION_SERIAL_MAJOR = 10;
static const int VERSION_SERIAL_MINOR = 0;
39,11 → 53,11
 
static const int SETTINGS_ID = 2;
 
static const int Sleep = 500000;
static const int SLEEP = 500000;
 
static const QString QA_NAME = "QMK-Groundstation";
static const QString QA_VERSION = "0.6.3";
static const QString QA_DATE = "03.01.2009";
static const QString QA_VERSION = "0.7.0";
static const QString QA_DATE = "24.01.2009";
static const QString QA_YEAR = "2008-2009";
static const QString QA_AUTHOR = "Manuel Schrape";
static const QString QA_EMAIL = "manuel.schrape@gmx.de";
/QMK-Groundstation/trunk/osx.pro
1,65 → 1,71
unix : OBJECTS_DIR = build/.o/unix
win32 : OBJECTS_DIR = build/.o/win32
mac : OBJECTS_DIR = build/.o/mac
TEMPLATE = app
 
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
OBJECTS_DIR = build/.o_mac
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
 
win32 : DEFINES += _TTY_WIN_ QWT_DLL QT_DLL
unix : DEFINES += _TTY_POSIX_
DEFINES += _TTY_POSIX_
 
unix {
LIBS += -L/opt/local/lib -lqwt
INCLUDEPATH += /opt/local/include
}
LIBS += -L/opt/local/lib -lqwt
INCLUDEPATH += /opt/local/include
 
QT *= gui core network
 
SOURCES = SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
main.cpp \
cSettings.cpp \
Classes/cServer.cpp \
ToolBox.cpp \
Forms/wdg_Settings.cpp
CONFIG += warn_on thread qt
 
win32 : SOURCES += SerialPort/win_qextserialport.cpp
unix : SOURCES += SerialPort/posix_qextserialport.cpp
TARGET = QMK-Groundstation
 
HEADERS = SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
global.h \
cSettings.h \
Classes/cServer.h \
Parameter_Positions.h \
ToolBox.h \
Forms/wdg_Settings.h
RESOURCES += MKTool.qrc
 
win32 : HEADERS += SerialPort/win_qextserialport.h
unix : HEADERS += SerialPort/posix_qextserialport.h
SOURCES = \
main.cpp \
SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
Forms/wdg_Settings.cpp \
Classes/cSettings.cpp \
Classes/cServer.cpp \
Classes/ToolBox.cpp \
Classes/cAttitude.cpp \
Classes/cSpeedMeter.cpp \
Classes/cQMK_Server.cpp \
Forms/dlg_LCD.cpp
 
FORMS += Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui
win32:SOURCES += SerialPort/win_qextserialport.cpp
unix:SOURCES += SerialPort/posix_qextserialport.cpp
 
TEMPLATE = app
HEADERS = \
global.h \
Parameter_Positions.h \
SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
Forms/wdg_Settings.h \
Classes/cSettings.h \
Classes/cServer.h \
Classes/ToolBox.h \
Classes/cAttitude.h \
Classes/cSpeedMeter.h \
Classes/cQMK_Server.h \
Forms/dlg_LCD.h
 
CONFIG += warn_on thread qt
win32:HEADERS += SerialPort/win_qextserialport.h
unix:HEADERS += SerialPort/posix_qextserialport.h
 
TARGET = QMK-Groundstation
 
RESOURCES += MKTool.qrc
FORMS += \
Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui \
Forms/dlg_LCD.ui
/QMK-Groundstation/trunk/suse.pro
1,65 → 1,71
unix : OBJECTS_DIR = build/.o/unix
win32 : OBJECTS_DIR = build/.o/win32
mac : OBJECTS_DIR = build/.o/mac
TEMPLATE = app
 
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
OBJECTS_DIR = build/.o_unix
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
 
win32 : DEFINES += _TTY_WIN_ QWT_DLL QT_DLL
unix : DEFINES += _TTY_POSIX_
DEFINES += _TTY_POSIX_
 
unix {
LIBS += -lqwt
INCLUDEPATH += $(HOME)/include /usr/include/qwt
}
LIBS += -lqwt
INCLUDEPATH += $(HOME)/include /usr/include/qwt
 
QT *= gui core network
 
SOURCES = SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
main.cpp \
cSettings.cpp \
Classes/cServer.cpp \
ToolBox.cpp \
Forms/wdg_Settings.cpp
CONFIG += warn_on thread qt
 
win32 : SOURCES += SerialPort/win_qextserialport.cpp
unix : SOURCES += SerialPort/posix_qextserialport.cpp
TARGET = QMK-Groundstation
 
HEADERS = SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
global.h \
cSettings.h \
Classes/cServer.h \
Parameter_Positions.h \
ToolBox.h \
Forms/wdg_Settings.h
RESOURCES += MKTool.qrc
 
win32 : HEADERS += SerialPort/win_qextserialport.h
unix : HEADERS += SerialPort/posix_qextserialport.h
SOURCES = \
main.cpp \
SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
Forms/wdg_Settings.cpp \
Classes/cSettings.cpp \
Classes/cServer.cpp \
Classes/ToolBox.cpp \
Classes/cAttitude.cpp \
Classes/cSpeedMeter.cpp \
Classes/cQMK_Server.cpp \
Forms/dlg_LCD.cpp
 
FORMS += Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui
win32:SOURCES += SerialPort/win_qextserialport.cpp
unix:SOURCES += SerialPort/posix_qextserialport.cpp
 
TEMPLATE = app
HEADERS = \
global.h \
Parameter_Positions.h \
SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
Forms/wdg_Settings.h \
Classes/cSettings.h \
Classes/cServer.h \
Classes/ToolBox.h \
Classes/cAttitude.h \
Classes/cSpeedMeter.h \
Classes/cQMK_Server.h \
Forms/dlg_LCD.h
 
CONFIG += warn_on thread qt
win32:HEADERS += SerialPort/win_qextserialport.h
unix:HEADERS += SerialPort/posix_qextserialport.h
 
TARGET = QMK-Groundstation
 
RESOURCES += MKTool.qrc
FORMS += \
Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui \
Forms/dlg_LCD.ui
/QMK-Groundstation/trunk/win.pro
0,0 → 1,92
include( ../examples.pri )
 
QWT_ROOT = ../qwt-5.1.1
 
include( $${QWT_ROOT}/qwtconfig.pri )
 
SUFFIX_STR = $${RELEASE_SUFFIX}
 
INCLUDEPATH += $${QWT_ROOT}/src
DEPENDPATH += $${QWT_ROOT}/src
 
QWTLIB = qwt$${SUFFIX_STR}
 
contains(CONFIG, QwtDll)
{
DEFINES += QT_DLL QWT_DLL
QWTLIB = $${QWTLIB}$${VER_MAJ}
}
 
win32-msvc:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib
win32-msvc.net:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib
win32-msvc2005:LIBS += $${QWT_ROOT}/lib/$${QWTLIB}.lib
win32-g++:LIBS += -L$${QWT_ROOT}/lib -l$${QWTLIB}
 
TEMPLATE = app
 
OBJECTS_DIR = build/.o_win32
UI_DIR = build/.ui
MOC_DIR = build/.moc
RCC_DIR = build/.rcc
DESTDIR = build/bin
 
DEFINES += _TTY_WIN_ QWT_DLL QT_DLL _WIN32_
 
QT *= gui core network
 
CONFIG += warn_on thread qt
 
TARGET = QMK-Groundstation
 
RESOURCES += MKTool.qrc
 
SOURCES = \
main.cpp \
SerialPort/qextserialbase.cpp \
SerialPort/qextserialport.cpp \
SerialPort/ManageSerialPort.cpp \
Forms/mktool.cpp \
Forms/dlg_Config.cpp \
Forms/dlg_Motortest.cpp \
Forms/dlg_Preferences.cpp \
Forms/wdg_Settings.cpp \
Classes/cSettings.cpp \
Classes/cServer.cpp \
Classes/ToolBox.cpp \
Classes/cAttitude.cpp \
Classes/cSpeedMeter.cpp \
Classes/cQMK_Server.cpp \
Forms/dlg_LCD.cpp
 
win32:SOURCES += SerialPort/win_qextserialport.cpp
unix:SOURCES += SerialPort/posix_qextserialport.cpp
 
HEADERS = \
global.h \
Parameter_Positions.h \
SerialPort/qextserialbase.h \
SerialPort/qextserialport.h \
SerialPort/ManageSerialPort.h \
Forms/mktool.h \
Forms/dlg_Config.h \
Forms/dlg_Motortest.h \
Forms/dlg_Preferences.h \
Forms/wdg_Settings.h \
Classes/cSettings.h \
Classes/cServer.h \
Classes/ToolBox.h \
Classes/cAttitude.h \
Classes/cSpeedMeter.h \
Classes/cQMK_Server.h \
Forms/dlg_LCD.h
 
win32:HEADERS += SerialPort/win_qextserialport.h
unix:HEADERS += SerialPort/posix_qextserialport.h
 
FORMS += \
Forms/mktool.ui \
Forms/dlg_Config.ui \
Forms/dlg_Preferences.ui \
Forms/dlg_Motortest.ui \
Forms/wdg_Settings.ui \
Forms/dlg_LCD.ui