Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 166 → Rev 165

/QMK-Groundstation/trunk/Todo.txt
File deleted
/QMK-Groundstation/trunk/ChangeLog.txt
63,15 → 63,3
unterschiedlich sind, werden Labels automatisch neu abgefragt.
* Einstellung der Verzeichnisse jetzt über den Einstellungs-Dialog.
 
#######################################
# 11.12.2008 * Version 0.5.6m -> 0.5.7w
 
Änderungen:
===========
* Anpassung der Settings (GPS-Winkelbegrenzung -> FC 0.71h)
* Umbau der GUI.
* Einstellungs-Dialog erweitert (Serieller Port ect.)
* Einstellbarkeit der Debug-Daten Intervalle und Plotteranzeige (Anzahl der Datensätze)
* Farbige Darstellung im Terminal, Anzeiger gesendeter Packete.
* Debug-Daten können abgeschalten werden.
* Firmeware-Update der FC mit hilfe von AVRDUDE. (AVRDUDE in der MK-Version muss vorhanden und ausfürbar sein.)
/QMK-Groundstation/trunk/Forms/dlg_Preferences.cpp
31,19 → 31,10
 
le_DIR_CVS->setText(Settings->DIR.Logging);
le_DIR_SET->setText(Settings->DIR.Parameter);
le_TTY->setText(Settings->TTY.Port);
sp_Plotter_Count->setValue(Settings->Data.Plotter_Count);
sp_Debug_Fast->setValue(Settings->Data.Debug_Fast);
sp_Debug_Slow->setValue(Settings->Data.Debug_Slow);
}
 
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();
 
return Settings;
}
 
51,7 → 42,7
/////////////////////////////////
void dlg_Preferences::slot_DIR_CVS()
{
QString directory = QFileDialog::getExistingDirectory(this, trUtf8("Verzeichniss für CSV-Logdateien"), Settings->DIR.Logging, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly);
QString directory = QFileDialog::getExistingDirectory(this, "Verzeichniss fuer CSV-Logdateien", Settings->DIR.Logging, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly);
 
if ((!directory.isEmpty()) && (Settings->DIR.Logging != directory))
{
63,7 → 54,7
 
void dlg_Preferences::slot_DIR_SET()
{
QString directory = QFileDialog::getExistingDirectory(this, trUtf8("Verzeichniss für Settings-Dateien"), Settings->DIR.Parameter, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly);
QString directory = QFileDialog::getExistingDirectory(this, "Verzeichniss fuer Settings-Dateien", Settings->DIR.Parameter, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly);
 
if ((!directory.isEmpty()) && (Settings->DIR.Parameter != directory))
{
73,7 → 64,6
}
 
}
 
dlg_Preferences::~dlg_Preferences()
{
}
/QMK-Groundstation/trunk/Forms/dlg_Preferences.ui
6,7 → 6,7
<x>0</x>
<y>0</y>
<width>388</width>
<height>296</height>
<height>317</height>
</rect>
</property>
<property name="windowTitle" >
49,119 → 49,6
<property name="currentIndex" >
<number>0</number>
</property>
<widget class="QWidget" name="Seite" >
<attribute name="title" >
<string>Verbindung </string>
</attribute>
<layout class="QGridLayout" name="gridLayout_7" >
<item row="0" column="0" >
<widget class="QGroupBox" name="groupBox_5" >
<property name="title" >
<string>Serieller Port für Verbindung zum MK.</string>
</property>
<layout class="QGridLayout" name="gridLayout_6" >
<item row="0" column="0" >
<widget class="QLabel" name="label_6" >
<property name="text" >
<string>Device: </string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="le_TTY" >
<property name="text" >
<string>/dev/ttyS0</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0" >
<widget class="QGroupBox" name="groupBox_6" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="title" >
<string>ISP-Adapter (Flash AVR)</string>
</property>
<layout class="QGridLayout" name="gridLayout_5" >
<item row="0" column="0" >
<widget class="QLabel" name="label_4" >
<property name="text" >
<string>ISP-Adapter: </string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QComboBox" name="comboBox" >
<item>
<property name="text" >
<string>Sercon</string>
</property>
</item>
<item>
<property name="text" >
<string>STK200</string>
</property>
</item>
<item>
<property name="text" >
<string>USBProg</string>
</property>
</item>
<item>
<property name="text" >
<string>Atmel AVR ISP (STK500)</string>
</property>
</item>
<item>
<property name="text" >
<string>Atmel AVR ISP mkII (STK500v1)</string>
</property>
</item>
<item>
<property name="text" >
<string>Atmel AVR ISP mkII (STK500v2)</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_5" >
<property name="text" >
<string>Device: </string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QLineEdit" name="lineEdit_2" />
</item>
<item row="2" column="0" colspan="2" >
<widget class="QCheckBox" name="checkBox_2" >
<property name="text" >
<string>Serielle Firmeware-Updates mit AVRDUDE</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" >
<spacer name="verticalSpacer_2" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
<height>50</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab" >
<attribute name="title" >
<string>Analog-Daten</string>
230,14 → 117,18
</item>
<item row="2" column="0" colspan="2" >
<widget class="QCheckBox" name="checkBox" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>Beim Beenden abschalten</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2" >
<widget class="QCheckBox" name="checkBox_2" >
<property name="text" >
<string>Debug-Texte immer neueinlesen</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
/QMK-Groundstation/trunk/Forms/mktool.cpp
59,18 → 59,8
{
setWindowTitle(QA_NAME + " v" + QA_VERSION);
 
toolBar->addWidget(lb_Port);
toolBar->addWidget(le_Port);
toolBar->addSeparator();
toolBar->addWidget(cb_Hardware);
 
lb_Status->setText("Hallo bei QMK-Groundstation...!!!");
 
tab_Main->removeTab(6);
 
#ifdef _EEEPC_
toolBar->hide();
lb_Status->hide();
#endif
 
resize(Settings->GUI.Size);
157,7 → 147,6
connect(ac_StartPlotter, SIGNAL(triggered()), this, SLOT(slot_ac_StartPlotter()));
connect(ac_MehrDaten, SIGNAL(triggered()), this, SLOT(slot_ac_MehrDaten()));
connect(ac_About, SIGNAL(triggered()), this, SLOT(slot_ac_About()));
connect(ac_KeineDaten, SIGNAL(triggered()), this, SLOT(slot_ac_KeineDaten()));
connect(ac_GetLabels, SIGNAL(triggered()), this, SLOT(slot_ac_GetLabels()));
 
// Tabs ein & ausblenden
168,8 → 157,7
connect(ac_View4, SIGNAL(triggered()), this, SLOT(slot_ac_View()));
connect(ac_View5, SIGNAL(triggered()), this, SLOT(slot_ac_View()));
 
connect(pb_Update, SIGNAL(clicked()), this, SLOT(slot_pb_Update()));
connect(pb_HexFile, SIGNAL(clicked()), this, SLOT(slot_pb_HexFile()));
// connect(pb_Update, SIGNAL(clicked()), this, SLOT(slot_pb_Update()));
 
connect(ac_ConnectTTY, SIGNAL(triggered()), this, SLOT(slot_OpenPort()));
connect(ac_RecordCSV, SIGNAL(triggered()), this, SLOT(slot_RecordCSV()));
265,7 → 253,7
 
Grid->attach(qwtPlot);
 
qwtPlot->setAxisScale(QwtPlot::xBottom,0,Settings->Data.Plotter_Count,0);
qwtPlot->setAxisScale(QwtPlot::xBottom,0,PlotWide,0);
 
for (int a = 0; a < MaxAnalog; a++)
{
400,7 → 388,6
{
dlg_Preferences *f_Preferences = new dlg_Preferences(this);
 
Settings->TTY.Port = le_Port->text();
f_Preferences->set_Settings(Settings);
 
if (f_Preferences->exec()==QDialog::Accepted)
407,8 → 394,6
{
Settings = f_Preferences->get_Settings();
Settings->write_Settings();
le_Port->setText(Settings->TTY.Port);
config_Plot();
}
}
 
468,41 → 453,14
 
void MKTool::slot_ac_MehrDaten() // DONE 0.71g
{
if (!ac_KeineDaten->isChecked())
if (ac_MehrDaten->isChecked())
{
if (ac_MehrDaten->isChecked())
{
TX_Data[0] = Settings->Data.Debug_Fast / 10;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
}
else
{
TX_Data[0] = Settings->Data.Debug_Slow / 10;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
}
}
}
 
void MKTool::slot_ac_KeineDaten() // DONE 0.71g
{
if (ac_KeineDaten->isChecked())
{
TX_Data[0] = 0;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
}
TX_Data[0] = 10;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false); }
else
{
if (ac_MehrDaten->isChecked())
{
TX_Data[0] = Settings->Data.Debug_Fast / 10;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
}
else
{
TX_Data[0] = Settings->Data.Debug_Slow / 10;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
}
}
TX_Data[0] = 50;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false); }
}
 
void MKTool::slot_ac_About()
526,15 → 484,15
Plot[a]->setData(aID,aData[a],NextPlot - 1);
}
 
if ((NextPlot > Settings->Data.Plotter_Count))
if ((NextPlot > PlotWide))
{
scroll_plot->setMaximum(NextPlot - Settings->Data.Plotter_Count);
scroll_plot->setMaximum(NextPlot - PlotWide);
}
 
if ((scroll_plot->value() == NextPlot - (Settings->Data.Plotter_Count + 1)))
if ((scroll_plot->value() == NextPlot - (PlotWide + 1)))
{
qwtPlot->setAxisScale(QwtPlot::xBottom,NextPlot - Settings->Data.Plotter_Count,NextPlot,0);
scroll_plot->setValue(NextPlot - Settings->Data.Plotter_Count);
qwtPlot->setAxisScale(QwtPlot::xBottom,NextPlot - PlotWide,NextPlot,0);
scroll_plot->setValue(NextPlot - PlotWide);
}
 
qwtPlot->replot();
542,9 → 500,6
 
void MKTool::config_Plot()
{
// qDebug("Plotter rekonfiguriert..!!");
qwtPlot->setAxisScale(QwtPlot::xBottom,0,Settings->Data.Plotter_Count,0);
 
for (int a = 0; a < MaxAnalog; a++)
{
Plot[a]->detach();
556,12 → 511,11
Plot[a]->attach(qwtPlot);
}
}
qwtPlot->replot();
}
 
void MKTool::slot_ScrollPlot(int Pos)
{
qwtPlot->setAxisScale(QwtPlot::xBottom,Pos,Pos + Settings->Data.Plotter_Count,0);
qwtPlot->setAxisScale(QwtPlot::xBottom,Pos,Pos + PlotWide,0);
qwtPlot->replot();
}
 
570,74 → 524,38
///////////////////
void MKTool::slot_pb_Update()
{
qDebug("Update");
 
 
QString Message = "Firmeware-Datei \n\n";
Message = Message + le_HexFile->text() + "\n\n";
Message = Message + trUtf8("an FlightCtrl mit AVRDUDE - Seriel & Bootloader über ") + le_Port->text() + trUtf8(" übertragen?\n");
 
if (le_HexFile->text() == "")
if (serialPort->isOpen())
{
QMessageBox::warning(this, QA_NAME, trUtf8("Bitte Firmeware-Datei wählen."), QMessageBox::Ok);
slot_OpenPort();
}
else if (QMessageBox::warning(this, QA_NAME, Message, QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes)
{
QString Programm = "avrdude" ;
QString Device = "m644";
 
QStringList Argumente;
Update = new QProcess();
 
Update = new QProcess();
const QString Programm = "avrdude -p m644 -P /dev/ttyS0 -c butterfly -b 57600 -U flash:w:Flight-Ctrl_MEGA644_V0_71f.hex";
const QStringList Argumente = (QStringList() << "-?");
 
if (serialPort->isOpen())
{
slot_OpenPort();
}
 
Argumente << "-P";
Argumente << le_Port->text();
Argumente << "-p";
Argumente << Device;
Argumente << "-c";
Argumente << "butterfly";
Argumente << "-b";
Argumente << "57600";
Argumente << "-U";
Argumente << "flash:w:" + le_HexFile->text();
 
// QString Programm = "/home/Manuel/bin/avrdude -p m644 -P /dev/ttyS0 -c butterfly -b 57600 -U flash:w:/home/Manuel/Documents/Mikrokopter/Firmeware/FlightCtrl/Flight-Ctrl_MEGA644_V0_71h.hex";
 
te_Shell->setText(""); // Ausgabefenster säubern
 
connect(Update, SIGNAL(readyReadStandardOutput()), this, SLOT(slot_UpdateShell()) );
connect(Update, SIGNAL(readyReadStandardError()), this, SLOT(slot_UpdateShell()) );
 
Update->start(Programm, Argumente); // Programmaufruf
}
te_Shell->setText(""); // Ausgabefenster säubern
Update->start(Programm); // Programmaufruf
// Update.waitForFinished(); // auf Rückmeldung warten
// Update.close(); // Kanal schließen
connect(Update, SIGNAL(readyReadStandardOutput()), this, SLOT(slot_UpdateShell()) );
}
 
void MKTool::slot_UpdateShell()
{
QByteArray Output;
// te_Shell->setText(""); // Ausgabefenster säubern
Output = Update->readAllStandardOutput(); // Shellausgabe an Variable
 
Output = Update->readAllStandardError(); // Shellausgabe an Variable
te_Shell->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
te_Shell->insertPlainText(QString::fromUtf8(Output));
 
Output = Update->readAll();
te_Shell->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
te_Shell->insertPlainText(QString::fromUtf8(Output));
te_Shell->setText(QString::fromUtf8(Output)); // ...und endlich: Ausgabe im QLabel
qDebug("Shell");
}
 
void MKTool::slot_pb_HexFile()
{
QString FileName = QFileDialog::getOpenFileName(this,trUtf8(("Firmeware-Datei wählen")),"",
tr("Intel Hex(*.hex);;Alle Dateien (*)"));
if (!FileName.isEmpty())
{
le_HexFile->setText(FileName);
}
}
 
// Settings-Bereich
///////////////////
894,7 → 812,7
return Combo->currentText().toInt();
}
 
void MKTool::store_ParameterSet(int Set) // DONE 0.71h
void MKTool::store_ParameterSet(int Set) // DONE 0.71g
{
char *Name = le_SetName->text().toLatin1().data();
 
1030,10 → 948,9
ParameterSet[Set][P_NAV_GPS_ACC] = get_Value(cb_12_8);
 
//Seite 13
ParameterSet[Set][P_NAV_WIND_CORR] = get_Value(cb_13_1);
ParameterSet[Set][P_NAV_SPEED_COMP] = get_Value(cb_13_2);
ParameterSet[Set][P_NAV_RADIUS] = get_Value(cb_13_3);
ParameterSet[Set][P_NAV_ANGLE_LIMIT] = get_Value(cb_13_4);
ParameterSet[Set][P_NAV_WIND_CORR] = get_Value(cb_13_1);
ParameterSet[Set][P_NAV_SPEED_COMP] = get_Value(cb_13_2);
ParameterSet[Set][P_NAV_RADIUS] = get_Value(cb_13_3);
}
 
void MKTool::slot_SaveParameter() // DONE 0.71g
1291,7 → 1208,7
}
}
 
void MKTool::show_ParameterSet(int Set) // DONE 0.71h
void MKTool::show_ParameterSet(int Set) // DONE 0.71g
{
char Name[12];
for (int a = 0; a < 12; a++)
1459,7 → 1376,6
cb_13_1 = setCombo(cb_13_1, Set, P_NAV_WIND_CORR);
cb_13_2 = setCombo(cb_13_2, Set, P_NAV_SPEED_COMP);
cb_13_3 = setCombo(cb_13_3, Set, P_NAV_RADIUS);
cb_13_4 = setCombo(cb_13_4, Set, P_NAV_ANGLE_LIMIT);
}
 
 
1563,7 → 1479,6
Settings->GUI.Term_Info = cb_ShowMSG->isChecked();
Settings->GUI.Term_Data = cb_ShowData->isChecked();
Settings->GUI.Term_Always = cb_ShowAlways->isChecked();
Settings->GUI.Term_Send = cb_ShowSend->isChecked();
 
Settings->TTY.Port = le_Port->text();
 
1751,7 → 1666,7
TX_Data[0] = Position;
send_Data('a', ADDRESS_ALL, TX_Data, 1, false);
}
if (Position == 31)
if (Position == 32)
{
for (int a = 0; a < MaxAnalog; a++)
{
1826,7 → 1741,7
"Serielles Protokoll Inkompatibel. \nBitte neue Programmversion installieren,", QMessageBox::Ok);
}
 
TX_Data[0] = Settings->Data.Debug_Slow / 10;
TX_Data[0] = 50;
send_Data('d', ADDRESS_ALL, TX_Data, 1, false);
 
if (Mode.ID == ADDRESS_FC)
1851,7 → 1766,6
 
if (Settings->Analog1.Version != Mode.Version)
{
lb_Status->setText("Analoglabel-Version unterschiedlich. Lese Analoglabels neu aus.");
slot_ac_GetLabels();
}
else
1889,8 → 1803,7
if ((cb_ShowData->isChecked()) && ((tab_Main->currentWidget()->objectName() == QString("Tab_3")) || (cb_ShowAlways->isChecked())))
{
te_RX->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
// te_RX->insertPlainText(" > " + RxData.String + '\r');
te_RX->insertHtml("<span style=\"color:#00008b;\">" + RxData.String + "<br /></span>");
te_RX->insertPlainText(RxData.String + '\r');
}
}
else
1898,8 → 1811,7
if ((cb_ShowMSG->isChecked()) && ((tab_Main->currentWidget()->objectName() == QString("Tab_3")) || (cb_ShowAlways->isChecked())))
{
te_RX->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
// te_RX->insertPlainText(" > " + RxData.String + '\r');
te_RX->insertHtml("<span style=\"color:#008b00;\">" + RxData.String + "<br /></span>");
te_RX->insertPlainText(RxData.String + '\r');
}
}
RxData.String = QString("");
1983,12 → 1895,6
 
QByteArray Temp(TX_Data.toUtf8());
serialPort->sendData(Temp);
 
if (cb_ShowSend->isChecked())
{
te_RX->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor);
te_RX->insertHtml("<span style='color:#8b0000;'>" + TX_Data + "<br /></span>");
}
}
}
 
1998,7 → 1904,7
 
MKTool::~MKTool()
{
// qDebug(" Programm Ende ..!! ");
qDebug(" Programm Ende ..!! ");
if (serialPort->isOpen())
{
serialPort->close();
/QMK-Groundstation/trunk/Forms/mktool.h
142,11 → 142,9
void slot_ac_StartPlotter();
void slot_ac_View();
void slot_ac_MehrDaten();
void slot_ac_KeineDaten();
void slot_ac_About();
void slot_ac_GetLabels();
void slot_ac_Motortest();
void slot_pb_HexFile();
 
// Default-Ticker
void slot_Ticker();
/QMK-Groundstation/trunk/Forms/mktool.ui
5,8 → 5,8
<rect>
<x>0</x>
<y>0</y>
<width>766</width>
<height>429</height>
<width>770</width>
<height>413</height>
</rect>
</property>
<property name="windowTitle" >
18,39 → 18,7
</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>
<item row="0" column="0" >
<widget class="Line" name="line_2" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="0" >
<widget class="QLabel" name="lb_Status" >
<property name="font" >
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="frameShape" >
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow" >
<enum>QFrame::Raised</enum>
</property>
<property name="text" >
<string/>
</property>
</widget>
</item>
<item row="1" column="0" >
<item row="0" column="1" >
<widget class="QTabWidget" name="tab_Main" >
<property name="currentIndex" >
<number>0</number>
976,6 → 944,76
</item>
</layout>
</item>
<item row="1" column="0" >
<layout class="QHBoxLayout" name="horizontalLayout_3" >
<item>
<widget class="QLabel" name="label" >
<property name="text" >
<string>Device</string>
</property>
</widget>
</item>
<item>
<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>
<widget class="QPushButton" name="pb_Open" >
<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>
</item>
<item>
<spacer name="horizontalSpacer" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>200</width>
<height>26</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pb_Record" >
<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>
</item>
<item>
<widget class="QPushButton" name="pb_Quit" >
<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>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="Tab_1" >
5416,7 → 5454,7
<property name="frameShadow" >
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_36" >
<layout class="QGridLayout" name="gridLayout_39" >
<item row="0" column="0" >
<widget class="QLabel" name="label_134" >
<property name="font" >
5573,59 → 5611,7
</property>
</widget>
</item>
<item row="3" column="0" >
<widget class="QLabel" name="label_151" >
<property name="font" >
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<string>GPS Winkelbegrenzung:</string>
</property>
</widget>
</item>
<item row="3" column="1" >
<widget class="QComboBox" name="cb_13_4" >
<property name="editable" >
<bool>true</bool>
</property>
<item>
<property name="text" >
<string>Poti 1</string>
</property>
</item>
<item>
<property name="text" >
<string>Poti 2</string>
</property>
</item>
<item>
<property name="text" >
<string>Poti 3</string>
</property>
</item>
<item>
<property name="text" >
<string>Poti 4</string>
</property>
</item>
<item>
<property name="text" >
<string>0</string>
</property>
</item>
</widget>
</item>
<item row="3" column="2" >
<widget class="QLabel" name="label_150" >
<property name="text" >
<string>[x 0.5 Grad]</string>
</property>
</widget>
</item>
<item row="4" column="1" >
<spacer name="verticalSpacer_15" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
5667,11 → 5653,7
&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;">&lt;span style=" font-weight:600;">Speed Compensation:&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;">only for AID mode.&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;">GPS Winkelbegrenzung:&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;">Begrenzung des Maximalen Neigungswinkel.&lt;/p>&lt;/body>&lt;/html></string>
&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">only for AID mode.&lt;/p>&lt;/body>&lt;/html></string>
</property>
</widget>
</item>
5686,7 → 5668,7
<string>Terminal </string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2" >
<item row="0" column="0" colspan="5" >
<item row="0" column="0" colspan="4" >
<widget class="QTextEdit" name="te_RX" >
<property name="font" >
<font>
5694,13 → 5676,6
<pointsize>10</pointsize>
</font>
</property>
<property name="html" >
<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:'Adobe Courier'; font-size:10pt; font-weight:400; font-style:normal;">
&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;/body>&lt;/html></string>
</property>
</widget>
</item>
<item row="1" column="0" >
5720,7 → 5695,7
</property>
</widget>
</item>
<item row="1" column="4" >
<item row="1" column="3" >
<spacer name="horizontalSpacer_13" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
5733,7 → 5708,7
</property>
</spacer>
</item>
<item row="1" column="3" >
<item row="1" column="2" >
<widget class="QCheckBox" name="cb_ShowAlways" >
<property name="text" >
<string>auch wenn ausgeblendet </string>
5740,13 → 5715,6
</property>
</widget>
</item>
<item row="1" column="2" >
<widget class="QCheckBox" name="cb_ShowSend" >
<property name="text" >
<string>gesendete Daten anzeigen</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="Tab_4" >
5996,84 → 5964,9
</widget>
</item>
<item row="1" column="0" >
<widget class="QFrame" name="frame_20" >
<property name="frameShape" >
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow" >
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3" >
<item>
<widget class="QPushButton" name="pushButton" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>Settings zurücksetzen</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>178</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QRadioButton" name="rb_FC" >
<property name="text" >
<string>FlightCtrl </string>
</property>
<property name="checked" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rb_MK3MAG" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>MK3Mag </string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rb_NC" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>NaviCtrl </string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="rb_BL" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>BL-Ctrl </string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" >
<layout class="QHBoxLayout" name="horizontalLayout_11" >
<item>
<widget class="QPushButton" name="pb_HexFile" >
<widget class="QPushButton" name="pushButton" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
6086,11 → 5979,7
</widget>
</item>
<item>
<widget class="QLineEdit" name="le_HexFile" >
<property name="text" >
<string/>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit" />
</item>
<item>
<widget class="QPushButton" name="pb_Update" >
6105,133 → 5994,10
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pb_Flash" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>Flashen</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</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="QComboBox" name="cb_Hardware" >
<property name="geometry" >
<rect>
<x>10</x>
<y>30</y>
<width>101</width>
<height>27</height>
</rect>
</property>
<item>
<property name="text" >
<string>FlightCtrl</string>
</property>
</item>
<item>
<property name="text" >
<string>NaviCtrl</string>
</property>
</item>
<item>
<property name="text" >
<string>MK3Mag</string>
</property>
</item>
</widget>
</widget>
</widget>
</item>
</layout>
6241,7 → 6007,7
<rect>
<x>0</x>
<y>0</y>
<width>766</width>
<width>770</width>
<height>25</height>
</rect>
</property>
6275,8 → 6041,6
<addaction name="ac_StartPlotter" />
<addaction name="separator" />
<addaction name="ac_MehrDaten" />
<addaction name="ac_KeineDaten" />
<addaction name="separator" />
<addaction name="ac_GetLabels" />
</widget>
<widget class="QMenu" name="menuAnsicht" >
6302,16 → 6066,7
</property>
<addaction name="ac_Motortest" />
</widget>
<widget class="QMenu" name="menuHardware" >
<property name="title" >
<string>Hardware</string>
</property>
<addaction name="actionFlightCtrl" />
<addaction name="actionNaviCtrl" />
<addaction name="actionMK3Mag" />
</widget>
<addaction name="menuProgramm" />
<addaction name="menuHardware" />
<addaction name="menuAnsicht" />
<addaction name="menuDaten" />
<addaction name="menuEinstellungen" />
6319,9 → 6074,6
<addaction name="menu_Help" />
</widget>
<widget class="QToolBar" name="toolBar" >
<property name="enabled" >
<bool>true</bool>
</property>
<property name="windowTitle" >
<string>toolBar</string>
</property>
6334,9 → 6086,6
<height>22</height>
</size>
</property>
<property name="toolButtonStyle" >
<enum>Qt::ToolButtonIconOnly</enum>
</property>
<attribute name="toolBarArea" >
<enum>TopToolBarArea</enum>
</attribute>
6349,8 → 6098,8
<addaction name="ac_StartPlotter" />
<addaction name="ac_MehrDaten" />
<addaction name="separator" />
<addaction name="ac_Config" />
<addaction name="ac_Quit" />
<addaction name="separator" />
</widget>
<action name="ac_LogDir" >
<property name="text" >
6386,9 → 6135,6
</property>
</action>
<action name="ac_RecordCSV" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/media-record.png</normaloff>:/Actions/Images/22X22/media-record.png</iconset>
6415,7 → 6161,7
<normaloff>:/Actions/Images/22X22/configure.png</normaloff>:/Actions/Images/22X22/configure.png</iconset>
</property>
<property name="text" >
<string>Datenfelder wählen</string>
<string>Datenfelder wählwn</string>
</property>
</action>
<action name="ac_MehrDaten" >
6427,7 → 6173,7
<normaloff>:/Actions/Images/22X22/clock.png</normaloff>:/Actions/Images/22X22/clock.png</iconset>
</property>
<property name="text" >
<string>Schnelle Debugdaten</string>
<string>Mehr Daten</string>
</property>
</action>
<action name="ac_View0" >
6515,38 → 6261,6
<string>Motortest</string>
</property>
</action>
<action name="actionFlightCtrl" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="text" >
<string>FlightCtrl</string>
</property>
</action>
<action name="actionNaviCtrl" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="text" >
<string>NaviCtrl</string>
</property>
</action>
<action name="actionMK3Mag" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="text" >
<string>MK3Mag</string>
</property>
</action>
<action name="ac_KeineDaten" >
<property name="checkable" >
<bool>true</bool>
</property>
<property name="text" >
<string>Debugdaten abschalten.</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
/QMK-Groundstation/trunk/Parameter_Positions.h
19,9 → 19,9
#ifndef PARAMETER_POSITIONS_H
#define PARAMETER_POSITIONS_H
 
static const int VERSION_SETTINGS = 73;
static const int VERSION_SETTINGS = 72;
 
static const int MaxParameter = 87;
static const int MaxParameter = 86;
 
static const int P_KANAL_GAS = 0;
static const int P_KANAL_GIER = 1;
96,12 → 96,11
static const int P_NAV_WIND_CORR = 64;
static const int P_NAV_SPEED_COMP = 65;
static const int P_NAV_RADIUS = 66;
static const int P_NAV_ANGLE_LIMIT = 67;
 
static const int P_EXTERNAL = 68;
static const int P_LOOP_CONFIG = 69;
static const int P_SERVO_NICK_COMPI = 70;
static const int P_RESERVED = 71;
static const int P_NAME = 75;
static const int P_EXTERNAL = 67;
static const int P_LOOP_CONFIG = 68;
static const int P_SERVO_NICK_COMPI = 69;
static const int P_RESERVED = 70;
static const int P_NAME = 74;
 
#endif
/QMK-Groundstation/trunk/cSettings.cpp
59,7 → 59,6
}
}
 
// Config der Analogwert-Anzeige (Plotter / CVS)
void cSettings::write_Settings_Analog(int ID)
{
QString Hardware = HardwareType[ID];
87,7 → 86,6
Setting.endGroup();
}
 
// Labels der Analogwerte.
void cSettings::write_Settings_AnalogLabels(int ID)
{
QString Hardware = HardwareType[ID];
118,7 → 116,6
Setting.endGroup();
}
 
// Programmeinstellungen
void cSettings::read_Settings()
{
QBitArray Def_TabViews;
146,7 → 143,6
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");
153,13 → 149,6
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();
Setting.endGroup();
 
}
 
void cSettings::write_Settings()
180,18 → 169,11
Setting.endGroup();
 
Setting.beginGroup("GUI");
Setting.setValue("TabViews", QBitArray(GUI.TabViews));
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.setValue("TabViews", QBitArray(GUI.TabViews));
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.endGroup();
}
 
cSettings::~cSettings()
/QMK-Groundstation/trunk/cSettings.h
35,16 → 35,8
bool Term_Info;
bool Term_Data;
bool Term_Always;
bool Term_Send;
};
 
struct set_Data
{
int Plotter_Count;
int Debug_Fast;
int Debug_Slow;
};
 
struct set_DIR
{
QString Logging;
71,7 → 63,6
set_DIR DIR;
set_TTY TTY;
set_Analog Analog1;
set_Data Data;
 
void read_Settings();
void write_Settings();
/QMK-Groundstation/trunk/global.h
40,8 → 40,8
static const int SETTINGS_ID = 2;
 
static const QString QA_NAME = "QMK-Groundstation";
static const QString QA_VERSION = "0.5.7w";
static const QString QA_DATE = "11.12.2008";
static const QString QA_VERSION = "0.5.6m";
static const QString QA_DATE = "08.12.2008";
static const QString QA_YEAR = "2008";
static const QString QA_AUTHOR = "Manuel Schrape";
static const QString QA_EMAIL = "manuel.schrape@gmx.de";
71,6 → 71,7
 
static const int MaxAnalog = 32;
static const int MaxPlot = 50000;
static const int PlotWide = 100;
 
struct sMode
{