/QMK-Groundstation/trunk/ChangeLog.txt |
---|
63,3 → 63,15 |
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,10 → 31,19 |
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; |
} |
42,7 → 51,7 |
///////////////////////////////// |
void dlg_Preferences::slot_DIR_CVS() |
{ |
QString directory = QFileDialog::getExistingDirectory(this, "Verzeichniss fuer CSV-Logdateien", Settings->DIR.Logging, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly); |
QString directory = QFileDialog::getExistingDirectory(this, trUtf8("Verzeichniss für CSV-Logdateien"), Settings->DIR.Logging, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly); |
if ((!directory.isEmpty()) && (Settings->DIR.Logging != directory)) |
{ |
54,7 → 63,7 |
void dlg_Preferences::slot_DIR_SET() |
{ |
QString directory = QFileDialog::getExistingDirectory(this, "Verzeichniss fuer Settings-Dateien", Settings->DIR.Parameter, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly); |
QString directory = QFileDialog::getExistingDirectory(this, trUtf8("Verzeichniss für Settings-Dateien"), Settings->DIR.Parameter, QFileDialog::DontResolveSymlinks | QFileDialog::ShowDirsOnly); |
if ((!directory.isEmpty()) && (Settings->DIR.Parameter != directory)) |
{ |
64,6 → 73,7 |
} |
} |
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>317</height> |
<height>296</height> |
</rect> |
</property> |
<property name="windowTitle" > |
49,6 → 49,119 |
<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> |
117,18 → 230,14 |
</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,8 → 59,18 |
{ |
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); |
147,6 → 157,7 |
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 |
157,7 → 168,8 |
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_Update, SIGNAL(clicked()), this, SLOT(slot_pb_Update())); |
connect(pb_HexFile, SIGNAL(clicked()), this, SLOT(slot_pb_HexFile())); |
connect(ac_ConnectTTY, SIGNAL(triggered()), this, SLOT(slot_OpenPort())); |
connect(ac_RecordCSV, SIGNAL(triggered()), this, SLOT(slot_RecordCSV())); |
253,7 → 265,7 |
Grid->attach(qwtPlot); |
qwtPlot->setAxisScale(QwtPlot::xBottom,0,PlotWide,0); |
qwtPlot->setAxisScale(QwtPlot::xBottom,0,Settings->Data.Plotter_Count,0); |
for (int a = 0; a < MaxAnalog; a++) |
{ |
388,6 → 400,7 |
{ |
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) |
394,6 → 407,8 |
{ |
Settings = f_Preferences->get_Settings(); |
Settings->write_Settings(); |
le_Port->setText(Settings->TTY.Port); |
config_Plot(); |
} |
} |
453,16 → 468,43 |
void MKTool::slot_ac_MehrDaten() // DONE 0.71g |
{ |
if (!ac_KeineDaten->isChecked()) |
{ |
if (ac_MehrDaten->isChecked()) |
{ |
TX_Data[0] = 10; |
send_Data('d', ADDRESS_ALL, TX_Data, 1, false); } |
TX_Data[0] = Settings->Data.Debug_Fast / 10; |
send_Data('d', ADDRESS_ALL, TX_Data, 1, false); |
} |
else |
{ |
TX_Data[0] = 50; |
send_Data('d', ADDRESS_ALL, TX_Data, 1, false); } |
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); |
} |
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); |
} |
} |
} |
void MKTool::slot_ac_About() |
{ |
QMessageBox::about(this, trUtf8(("Über ")) + QA_NAME, QA_ABOUT); |
484,15 → 526,15 |
Plot[a]->setData(aID,aData[a],NextPlot - 1); |
} |
if ((NextPlot > PlotWide)) |
if ((NextPlot > Settings->Data.Plotter_Count)) |
{ |
scroll_plot->setMaximum(NextPlot - PlotWide); |
scroll_plot->setMaximum(NextPlot - Settings->Data.Plotter_Count); |
} |
if ((scroll_plot->value() == NextPlot - (PlotWide + 1))) |
if ((scroll_plot->value() == NextPlot - (Settings->Data.Plotter_Count + 1))) |
{ |
qwtPlot->setAxisScale(QwtPlot::xBottom,NextPlot - PlotWide,NextPlot,0); |
scroll_plot->setValue(NextPlot - PlotWide); |
qwtPlot->setAxisScale(QwtPlot::xBottom,NextPlot - Settings->Data.Plotter_Count,NextPlot,0); |
scroll_plot->setValue(NextPlot - Settings->Data.Plotter_Count); |
} |
qwtPlot->replot(); |
500,6 → 542,9 |
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(); |
511,11 → 556,12 |
Plot[a]->attach(qwtPlot); |
} |
} |
qwtPlot->replot(); |
} |
void MKTool::slot_ScrollPlot(int Pos) |
{ |
qwtPlot->setAxisScale(QwtPlot::xBottom,Pos,Pos + PlotWide,0); |
qwtPlot->setAxisScale(QwtPlot::xBottom,Pos,Pos + Settings->Data.Plotter_Count,0); |
qwtPlot->replot(); |
} |
524,38 → 570,74 |
/////////////////// |
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() == "") |
{ |
QMessageBox::warning(this, QA_NAME, trUtf8("Bitte Firmeware-Datei wählen."), QMessageBox::Ok); |
} |
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(); |
if (serialPort->isOpen()) |
{ |
slot_OpenPort(); |
} |
Update = new QProcess(); |
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(); |
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() << "-?"); |
// 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 |
Update->start(Programm); // Programmaufruf |
// Update.waitForFinished(); // auf Rückmeldung warten |
// Update.close(); // Kanal schließen |
connect(Update, SIGNAL(readyReadStandardOutput()), this, SLOT(slot_UpdateShell()) ); |
connect(Update, SIGNAL(readyReadStandardError()), this, SLOT(slot_UpdateShell()) ); |
Update->start(Programm, Argumente); // Programmaufruf |
} |
} |
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)); |
te_Shell->setText(QString::fromUtf8(Output)); // ...und endlich: Ausgabe im QLabel |
qDebug("Shell"); |
Output = Update->readAll(); |
te_Shell->moveCursor(QTextCursor::End, QTextCursor::MoveAnchor); |
te_Shell->insertPlainText(QString::fromUtf8(Output)); |
} |
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 |
/////////////////// |
812,7 → 894,7 |
return Combo->currentText().toInt(); |
} |
void MKTool::store_ParameterSet(int Set) // DONE 0.71g |
void MKTool::store_ParameterSet(int Set) // DONE 0.71h |
{ |
char *Name = le_SetName->text().toLatin1().data(); |
951,6 → 1033,7 |
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); |
} |
void MKTool::slot_SaveParameter() // DONE 0.71g |
1208,7 → 1291,7 |
} |
} |
void MKTool::show_ParameterSet(int Set) // DONE 0.71g |
void MKTool::show_ParameterSet(int Set) // DONE 0.71h |
{ |
char Name[12]; |
for (int a = 0; a < 12; a++) |
1376,6 → 1459,7 |
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); |
} |
1479,6 → 1563,7 |
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(); |
1666,7 → 1751,7 |
TX_Data[0] = Position; |
send_Data('a', ADDRESS_ALL, TX_Data, 1, false); |
} |
if (Position == 32) |
if (Position == 31) |
{ |
for (int a = 0; a < MaxAnalog; a++) |
{ |
1741,7 → 1826,7 |
"Serielles Protokoll Inkompatibel. \nBitte neue Programmversion installieren,", QMessageBox::Ok); |
} |
TX_Data[0] = 50; |
TX_Data[0] = Settings->Data.Debug_Slow / 10; |
send_Data('d', ADDRESS_ALL, TX_Data, 1, false); |
if (Mode.ID == ADDRESS_FC) |
1766,6 → 1851,7 |
if (Settings->Analog1.Version != Mode.Version) |
{ |
lb_Status->setText("Analoglabel-Version unterschiedlich. Lese Analoglabels neu aus."); |
slot_ac_GetLabels(); |
} |
else |
1803,7 → 1889,8 |
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->insertPlainText(" > " + RxData.String + '\r'); |
te_RX->insertHtml("<span style=\"color:#00008b;\">" + RxData.String + "<br /></span>"); |
} |
} |
else |
1811,7 → 1898,8 |
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->insertPlainText(" > " + RxData.String + '\r'); |
te_RX->insertHtml("<span style=\"color:#008b00;\">" + RxData.String + "<br /></span>"); |
} |
} |
RxData.String = QString(""); |
1895,8 → 1983,14 |
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>"); |
} |
} |
} |
// Programm beenden |
1904,7 → 1998,7 |
MKTool::~MKTool() |
{ |
qDebug(" Programm Ende ..!! "); |
// qDebug(" Programm Ende ..!! "); |
if (serialPort->isOpen()) |
{ |
serialPort->close(); |
/QMK-Groundstation/trunk/Forms/mktool.h |
---|
142,9 → 142,11 |
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>770</width> |
<height>413</height> |
<width>766</width> |
<height>429</height> |
</rect> |
</property> |
<property name="windowTitle" > |
18,7 → 18,39 |
</property> |
<widget class="QWidget" name="centralwidget" > |
<layout class="QGridLayout" name="gridLayout_34" > |
<item row="0" column="1" > |
<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" > |
<widget class="QTabWidget" name="tab_Main" > |
<property name="currentIndex" > |
<number>0</number> |
944,77 → 976,7 |
</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" > |
<attribute name="title" > |
5454,7 → 5416,7 |
<property name="frameShadow" > |
<enum>QFrame::Raised</enum> |
</property> |
<layout class="QGridLayout" name="gridLayout_39" > |
<layout class="QGridLayout" name="gridLayout_36" > |
<item row="0" column="0" > |
<widget class="QLabel" name="label_134" > |
<property name="font" > |
5611,7 → 5573,59 |
</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> |
5653,7 → 5667,11 |
<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;"></p> |
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Speed Compensation:</span></p> |
<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;"></p> |
<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.</p></body></html></string> |
<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.</p> |
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> |
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">GPS Winkelbegrenzung:</span></p> |
<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;"></p> |
<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.</p></body></html></string> |
</property> |
</widget> |
</item> |
5668,7 → 5686,7 |
<string>Terminal </string> |
</attribute> |
<layout class="QGridLayout" name="gridLayout_2" > |
<item row="0" column="0" colspan="4" > |
<item row="0" column="0" colspan="5" > |
<widget class="QTextEdit" name="te_RX" > |
<property name="font" > |
<font> |
5676,6 → 5694,13 |
<pointsize>10</pointsize> |
</font> |
</property> |
<property name="html" > |
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> |
<html><head><meta name="qrichtext" content="1" /><style type="text/css"> |
p, li { white-space: pre-wrap; } |
</style></head><body style=" font-family:'Adobe Courier'; font-size:10pt; font-weight:400; font-style:normal;"> |
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></string> |
</property> |
</widget> |
</item> |
<item row="1" column="0" > |
5695,7 → 5720,7 |
</property> |
</widget> |
</item> |
<item row="1" column="3" > |
<item row="1" column="4" > |
<spacer name="horizontalSpacer_13" > |
<property name="orientation" > |
<enum>Qt::Horizontal</enum> |
5708,7 → 5733,7 |
</property> |
</spacer> |
</item> |
<item row="1" column="2" > |
<item row="1" column="3" > |
<widget class="QCheckBox" name="cb_ShowAlways" > |
<property name="text" > |
<string>auch wenn ausgeblendet </string> |
5715,6 → 5740,13 |
</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" > |
5964,9 → 5996,84 |
</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="pushButton" > |
<widget class="QPushButton" name="pb_HexFile" > |
<property name="sizePolicy" > |
<sizepolicy vsizetype="Fixed" hsizetype="Fixed" > |
<horstretch>0</horstretch> |
5979,7 → 6086,11 |
</widget> |
</item> |
<item> |
<widget class="QLineEdit" name="lineEdit" /> |
<widget class="QLineEdit" name="le_HexFile" > |
<property name="text" > |
<string/> |
</property> |
</widget> |
</item> |
<item> |
<widget class="QPushButton" name="pb_Update" > |
5994,12 → 6105,135 |
</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> |
</widget> |
<widget class="QMenuBar" name="menubar" > |
6007,7 → 6241,7 |
<rect> |
<x>0</x> |
<y>0</y> |
<width>770</width> |
<width>766</width> |
<height>25</height> |
</rect> |
</property> |
6041,6 → 6275,8 |
<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" > |
6066,7 → 6302,16 |
</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" /> |
6074,6 → 6319,9 |
<addaction name="menu_Help" /> |
</widget> |
<widget class="QToolBar" name="toolBar" > |
<property name="enabled" > |
<bool>true</bool> |
</property> |
<property name="windowTitle" > |
<string>toolBar</string> |
</property> |
6086,6 → 6334,9 |
<height>22</height> |
</size> |
</property> |
<property name="toolButtonStyle" > |
<enum>Qt::ToolButtonIconOnly</enum> |
</property> |
<attribute name="toolBarArea" > |
<enum>TopToolBarArea</enum> |
</attribute> |
6098,8 → 6349,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" > |
6135,6 → 6386,9 |
</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> |
6161,7 → 6415,7 |
<normaloff>:/Actions/Images/22X22/configure.png</normaloff>:/Actions/Images/22X22/configure.png</iconset> |
</property> |
<property name="text" > |
<string>Datenfelder wählwn</string> |
<string>Datenfelder wählen</string> |
</property> |
</action> |
<action name="ac_MehrDaten" > |
6173,7 → 6427,7 |
<normaloff>:/Actions/Images/22X22/clock.png</normaloff>:/Actions/Images/22X22/clock.png</iconset> |
</property> |
<property name="text" > |
<string>Mehr Daten</string> |
<string>Schnelle Debugdaten</string> |
</property> |
</action> |
<action name="ac_View0" > |
6261,6 → 6515,38 |
<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 = 72; |
static const int VERSION_SETTINGS = 73; |
static const int MaxParameter = 86; |
static const int MaxParameter = 87; |
static const int P_KANAL_GAS = 0; |
static const int P_KANAL_GIER = 1; |
96,11 → 96,12 |
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 = 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; |
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; |
#endif |
/QMK-Groundstation/trunk/Todo.txt |
---|
0,0 → 1,10 |
- Einstellung der Farben des Plotters. |
- Updaten der Firmeware mit Hilfe von AVRDude. |
- Done: FlightCtrl. |
- Upload der Firmware über den Bootloader ohne AVRDude. |
- Bootloader-Update mit AVRDude. |
/QMK-Groundstation/trunk/cSettings.cpp |
---|
59,6 → 59,7 |
} |
} |
// Config der Analogwert-Anzeige (Plotter / CVS) |
void cSettings::write_Settings_Analog(int ID) |
{ |
QString Hardware = HardwareType[ID]; |
86,6 → 87,7 |
Setting.endGroup(); |
} |
// Labels der Analogwerte. |
void cSettings::write_Settings_AnalogLabels(int ID) |
{ |
QString Hardware = HardwareType[ID]; |
116,6 → 118,7 |
Setting.endGroup(); |
} |
// Programmeinstellungen |
void cSettings::read_Settings() |
{ |
QBitArray Def_TabViews; |
143,6 → 146,7 |
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"); |
149,6 → 153,13 |
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() |
169,11 → 180,18 |
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("TabViews", QBitArray(GUI.TabViews)); |
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.endGroup(); |
} |
cSettings::~cSettings() |
/QMK-Groundstation/trunk/cSettings.h |
---|
35,8 → 35,16 |
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; |
63,6 → 71,7 |
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.6m"; |
static const QString QA_DATE = "08.12.2008"; |
static const QString QA_VERSION = "0.5.7w"; |
static const QString QA_DATE = "11.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,7 → 71,6 |
static const int MaxAnalog = 32; |
static const int MaxPlot = 50000; |
static const int PlotWide = 100; |
struct sMode |
{ |