Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 272 → Rev 271

/QMK-Groundstation/trunk/Classes/cQMK_Server.cpp
17,7 → 17,6
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "cQMK_Server.h"
#include "ToolBox.h"
 
cQMK_Server::cQMK_Server()
{
65,17 → 64,10
}
}
 
void cQMK_Server::send_RawData(QString Data)
void cQMK_Server::slot_Connected()
{
Data = Data + "\n";
// qDebug("Verbunden");
 
QByteArray SendText = Data.toAscii();
 
TcpSocket->write(SendText);
}
 
void cQMK_Server::slot_Connected()
{
connect(TcpSocket, SIGNAL(readyRead()), SLOT(slot_ReadLine()));
connect(TcpSocket, SIGNAL(disconnected()),TcpSocket, SLOT(deleteLater()));
connect(TcpSocket, SIGNAL(disconnected()),this, SLOT(slot_Disconnect()));
85,6 → 77,7
 
void cQMK_Server::slot_Disconnect()
{
// qDebug("Verbindung getrennt ");
disconnect(TcpSocket, SIGNAL(disconnected()), 0, 0);
emit sig_Disconnected(1);
}
106,6 → 99,7
 
disconnect(TcpSocket, SIGNAL(disconnected()), 0, 0);
emit sig_Disconnected(2);
// qDebug("Error..!!");
}
 
void cQMK_Server::slot_ReadLine()
/QMK-Groundstation/trunk/Classes/cQMK_Server.h
35,7 → 35,6
void Connect(QString IP, int Port, QString User, QString Pass);
void Disconnect();
void NewPosition(sNaviString Pos);
void send_RawData(QString Data);
 
private:
//TCP-Socket
/QMK-Groundstation/trunk/Classes/cSettings.cpp
205,8 → 205,6
Setting.beginGroup("QMK-Server");
Server.QMKS_Login = Setting.value("Login", "").toString();
Server.QMKS_Password = Setting.value("Password", "").toString();
Server.QMKS_Host = Setting.value("Host", "nimari.de").toString();
Server.QMKS_Port = Setting.value("Port", "16441").toString();
Setting.endGroup();
 
}
259,8 → 257,6
Setting.beginGroup("QMK-Server");
Setting.setValue("Login", Server.QMKS_Login);
Setting.setValue("Password", Server.QMKS_Password);
Setting.setValue("Host", Server.QMKS_Host);
Setting.setValue("Port", Server.QMKS_Port);
Setting.endGroup();
}
 
/QMK-Groundstation/trunk/Classes/cSettings.h
63,8 → 63,6
bool ToGround;
QString QMKS_Login;
QString QMKS_Password;
QString QMKS_Host;
QString QMKS_Port;
};
 
 
/QMK-Groundstation/trunk/Forms/dlg_Preferences.cpp
44,8 → 44,6
cb_ToGround->setChecked(Settings->Server.ToGround);
le_Login->setText(Settings->Server.QMKS_Login);
le_Password->setText(Settings->Server.QMKS_Password);
le_QMKS_Host->setText(Settings->Server.QMKS_Host);
le_QMKS_Port->setText(Settings->Server.QMKS_Port);
}
 
cSettings *dlg_Preferences::get_Settings()
63,8 → 61,6
Settings->Server.ToGround = cb_ToGround->isChecked();
Settings->Server.QMKS_Login = le_Login->text();
Settings->Server.QMKS_Password = le_Password->text();
Settings->Server.QMKS_Host = le_QMKS_Host->text();
Settings->Server.QMKS_Port = le_QMKS_Port->text();
 
return Settings;
}
/QMK-Groundstation/trunk/Forms/dlg_Preferences.ui
443,7 → 443,7
<string>Verzeichniss auswählen</string>
</property>
<property name="icon" >
<iconset>
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/folder-print.png</normaloff>:/Actions/Images/22X22/folder-print.png</iconset>
</property>
</widget>
466,7 → 466,7
<string>Verzeichniss auswählen</string>
</property>
<property name="icon" >
<iconset>
<iconset resource="../MKTool.qrc" >
<normaloff>:/Actions/Images/22X22/folder.png</normaloff>:/Actions/Images/22X22/folder.png</iconset>
</property>
</widget>
563,7 → 563,7
<item row="0" column="0" >
<widget class="QGroupBox" name="groupBox_10" >
<property name="enabled" >
<bool>true</bool>
<bool>false</bool>
</property>
<property name="title" >
<string>Server</string>
577,9 → 577,9
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="le_QMKS_Host" >
<widget class="QLineEdit" name="lineEdit" >
<property name="text" >
<string/>
<string>nimari.de</string>
</property>
</widget>
</item>
591,9 → 591,9
</widget>
</item>
<item row="1" column="1" >
<widget class="QLineEdit" name="le_QMKS_Port" >
<widget class="QLineEdit" name="lineEdit_3" >
<property name="text" >
<string/>
<string>16441</string>
</property>
</widget>
</item>
603,7 → 603,7
<item row="1" column="0" >
<widget class="QGroupBox" name="groupBox_11" >
<property name="enabled" >
<bool>true</bool>
<bool>false</bool>
</property>
<property name="title" >
<string>Logindaten</string>
/QMK-Groundstation/trunk/Forms/mktool.cpp
59,12 → 59,11
setWindowTitle(QA_NAME + " v" + QA_VERSION);
 
// Tab mit Debug-Elementen verbergen
tab_Main->removeTab(6);
// Develop - Nicht gebrauchte sachen abschalten.
pb_SettingsReset->hide();
pb_Flash->hide();
rb_NC->hide();
tab_Main->removeTab(6);
 
// Tab mit Wegpunkte-Elementen verbergen
// tab_Main->removeTab(5);
 
// Settings-Tab hinzufügen.
f_Settings = new wdg_Settings( this );
f_Settings->set_Config(Settings);
71,6 → 70,11
tab_Main->insertTab ( 2, f_Settings, ac_View2->icon(), "FC-Settings");
tab_Main->widget(2)->setObjectName("Tab_2");
 
// Develop - Nicht gebrauchte sachen abschalten.
pb_SettingsReset->hide();
pb_Flash->hide();
rb_NC->hide();
 
// Zusätzliche Widgets in die Toolbar.
tb_TTY->addWidget(lb_Port);
tb_TTY->addWidget(le_Port);
85,13 → 89,8
tb_TTY->setVisible(Settings->GUI.ToolViews[3]);
tb_Hardware->setVisible(Settings->GUI.ToolViews[4]);
 
#ifdef _EEEPC_
lb_Status->hide();
#endif
 
lb_Status->setText(tr("Hallo bei QMK-Groundstation...!!!"));
 
// Cockpit-Elemente
QPalette newPalette;
 
newPalette.setColor(QPalette::Base, Qt::darkBlue);
134,6 → 133,10
 
LayOut_Speed->addWidget(SpeedMeter);
 
#ifdef _EEEPC_
lb_Status->hide();
#endif
 
resize(Settings->GUI.Size);
move(Settings->GUI.Point);
 
149,13 → 152,15
}
 
// Kopie der Tabs anlegen
for (int b = 0; b < 7; b++)
// for (int b = 0; b < 7; b++)
for (int b = 0; b < 6; b++)
{
TabWidgets[b] = tab_Main->widget(b);
}
 
// Ausgeblendete Tabs ausblenden
for (int c = 0; c < 7; c++)
// for (int c = 0; c < 7; c++)
for (int c = 0; c < 6; c++)
{
if (Settings->GUI.TabViews[c] == false)
{
177,7 → 182,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]);
// ac_View6->setChecked(Settings->GUI.TabViews[6]);
 
le_Port->setText(Settings->TTY.Port);
 
191,6 → 196,9
// QTimer-Instanzen
Ticker = new QTimer(this);
 
// Seriell-Port
// serialPort = new ManageSerialPort;
 
Conn = new cConnection();
 
// neuer Logger
199,15 → 207,19
// LCD-Dialog
f_LCD = new dlg_LCD(this);
 
GE_Server = new cServer();
// Senden erlauben (Warum auch immer)
// AllowSend = true;
 
QMK_Server = new cQMK_Server();
QMK_Server->setProperty("Connect", false);
Server = new cServer();
 
MyServer = new cQMK_Server();
MyServer->setProperty("Connect", false);
 
 
if (Settings->Server.StartServer)
{
ac_StartServer->setChecked(true);
GE_Server->start_Server(Settings->Server.Port.toInt(), Settings);
Server->start_Server(Settings->Server.Port.toInt(), Settings);
}
}
 
349,26 → 361,8
 
void MKTool::slot_Test()
{
// qDebug("Decode Data");
sRxData RX;
 
RX.String = IN->text();
 
// qDebug(RX.String.toLatin1().data());
 
// if (ToolBox::check_CRC(RX.String))
{
qDebug("Decode Data CRC OK");
RX.Input = RX.String.toLatin1().data();
 
// qDebug(RX.Input);
 
slot_newData(RX);
}
}
 
// KML-Datei nach Wegpunkt parsen
// TODO: Richtigen KML-Parser bauen
void MKTool::parse_TargetKML()
{
QString Tmp = te_KML->toPlainText().simplified();
384,7 → 378,6
}
}
 
// Waypoint zur NC Senden.
void MKTool::slot_pb_SendWaypoint()
{
if ((Navi.Current.Longitude == 0) && (Navi.Current.Latitude == 0))
395,8 → 388,8
msgB.exec();
return;
}
//erstelle einen Wegpunkt, den die NaviCtrl auswerten kann
 
//erstelle einen Wegpunkt, den die NaviCtrl auswerten kann
Waypoint_t desired_pos;
bool ok_lat, ok_lon;
 
582,20 → 575,20
{
lb_Status->setText(tr("Verbinde zum QMK-Datenserver."));
 
QMK_Server->Connect(Settings->Server.QMKS_Host, Settings->Server.QMKS_Port.toInt(), Settings->Server.QMKS_Login, Settings->Server.QMKS_Password);
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)));
 
connect(QMK_Server, SIGNAL(sig_Connected()), this, SLOT(slot_QMKS_Connected()));
connect(QMK_Server, SIGNAL(sig_Disconnected(int)), this, SLOT(slot_QMKS_Disconnected(int)));
}
else
{
if ((QMK_Server->property("Connect")) == true)
if ((MyServer->property("Connect")) == true)
{
disconnect(QMK_Server, SIGNAL(sig_Disconnected(int)), 0, 0);
disconnect(MyServer, SIGNAL(sig_Disconnected(int)), 0, 0);
lb_Status->setText(tr("Trenne vom QMK-Datenserver."));
 
QMK_Server->Disconnect();
QMK_Server->setProperty("Connect", false);
MyServer->Disconnect();
MyServer->setProperty("Connect", false);
ac_QMKServer->setText("QMK-Server Verbinden");
}
}
603,7 → 596,7
 
void MKTool::slot_QMKS_Connected()
{
QMK_Server->setProperty("Connect", true);
MyServer->setProperty("Connect", true);
ac_QMKServer->setText("QMK-Server Trennnen");
lb_Status->setText(tr("Verbunden mit QMK-Datenserver."));
}
610,11 → 603,11
 
void MKTool::slot_QMKS_Disconnected(int Error)
{
QMK_Server->setProperty("Connect", false);
MyServer->setProperty("Connect", false);
ac_QMKServer->setText("QMK-Server Verbinden");
ac_QMKServer->setChecked(false);
 
disconnect(QMK_Server, SIGNAL(sig_Disconnected(int)), 0, 0);
disconnect(MyServer, SIGNAL(sig_Disconnected(int)), 0, 0);
 
switch (Error)
{
714,6 → 707,7
{
logger->close();
logger->start_Log();
// update_Log();
}
 
}
724,12 → 718,14
{
if (logger->is_active())
{
 
// logger->write(AnalogData);
// pb_Record->setText("Log Stop");
ac_RecordCSV->setText("Log Stop");
lb_Status->setText(tr("Log-Record gestartet."));
}
else
{
// pb_Record->setText("Log Aufzeichnen");
ac_RecordCSV->setText("Log Aufzeichnen");
lb_Status->setText(tr("Log-Record gestopt."));
}
796,8 → 792,8
Aktive = 4;
if (Action->objectName() == QString("ac_View5"))
Aktive = 5;
if (Action->objectName() == QString("ac_View6"))
Aktive = 6;
// if (Action->objectName() == QString("ac_View6"))
// Aktive = 6;
 
QString TabName = QString("Tab_%1").arg(Aktive);
 
921,12 → 917,12
if (ac_StartServer->isChecked())
{
lb_Status->setText(tr("GoogleEarth-Server gestartet."));
GE_Server->start_Server(Settings->Server.Port.toInt(), Settings);
Server->start_Server(Settings->Server.Port.toInt(), Settings);
}
else
{
lb_Status->setText(tr("GoogleEarth-Server gestopt."));
GE_Server->stop_Server();
Server->stop_Server();
}
}
 
1179,6 → 1175,7
Settings->TTY.Port = le_Port->text();
}
 
 
void MKTool::show_DebugData()
{
if (logger->is_active())
1252,6 → 1249,7
}
}
 
 
void MKTool::new_NaviData(sRxData RX)
{
Navi.Current.Longitude = ToolBox::Data2Long(RX.Decode, N_CUR_LONGITUDE, true);
1312,24 → 1310,26
NaviString.Latitude = ToolBox::get_Float(Navi.Current.Latitude,10000000);
NaviString.Altitude = ToolBox::get_Float(Navi.Current.Altitude,1000);
 
GE_Server->store_NaviString(NaviString);
Server->store_NaviString(NaviString);
 
if ((QMK_Server->property("Connect")) == true)
if ((MyServer->property("Connect")) == true)
{
// qDebug("Send Data to Server..!!");
QMK_Server->NewPosition(NaviString);
MyServer->NewPosition(NaviString);
}
}
 
// Kopter-Kommunikations-Bereich, Befehle senden und Daten empfangen
////////////////////////////////////////////////////////////////////
// Seriel-Port Bereich, Befehle senden und Daten empfangen
//////////////////////////////////////////////////////////
 
// Neues Datenpacket empfangen -> Verarbeiten
void MKTool::slot_newData(sRxData RX) // DONE 0.71g
{
slot_showTerminal(1, RX.String);
 
if (LastSend.length() > 2)
{
}
 
int HardwareID = RX.Input[1] - 'a';
 
switch(HardwareID)
1475,7 → 1475,7
 
if (Mode.VERSION_SERIAL_MAJOR != VERSION_SERIAL_MAJOR)
{
// AllowSend = false;
AllowSend = false;
QMessageBox::warning(this, QA_NAME,
"Serielles Protokoll Inkompatibel. \nBitte neue Programmversion installieren,", QMessageBox::Ok);
}
1565,14 → 1565,6
break;
}
}
 
// TODO: Roh-Daten senden zum QMK-Server dazu Sendebuffer bauen.
if ((QMK_Server->property("Connect")) == true)
{
// QMK_Server->send_RawData(RX.String);
}
 
slot_showTerminal(1, RX.String);
}
 
void MKTool::slot_showTerminal(int Typ, QString Text)
1609,7 → 1601,7
}
}
 
// Verbindung zum Kopter herstellen / Trennen
// Seriellen Port öffnen
void MKTool::slot_OpenPort()
{
if (Conn->isOpen())
1625,7 → 1617,7
ToolBox::Wait(SLEEP);
}
 
if (Mode.ID == ADDRESS_FC)
if (Mode.ID == ADDRESS_NC)
{
TX_Data[0] = 0;
TX_Data[1] = 0;
/QMK-Groundstation/trunk/Forms/mktool.h
41,6 → 41,7
#include "wdg_Settings.h"
#include "dlg_LCD.h"
 
//#include "../SerialPort/ManageSerialPort.h"
#include "../Classes/cConnection.h"
#include "../Classes/cSettings.h"
#include "../Classes/cServer.h"
62,7 → 63,12
 
private:
 
// Object für Kopter-Verbindung
int aa;
 
bool AllowSend;
 
// Object für Serielport
// ManageSerialPort *serialPort;
cConnection *Conn;
 
// Settings-Object (Programmeinstellungen)
72,10 → 78,10
wdg_Settings *f_Settings;
 
// HTTP-Server-Object für Google Earth
cServer *GE_Server;
cServer *Server;
 
// QMK-Serverobjekt
cQMK_Server *QMK_Server;
cQMK_Server *MyServer;
 
// LCD-Dialog
dlg_LCD *f_LCD;
/QMK-Groundstation/trunk/Forms/mktool.ui
5,8 → 5,8
<rect>
<x>0</x>
<y>0</y>
<width>675</width>
<height>422</height>
<width>699</width>
<height>428</height>
</rect>
</property>
<property name="windowTitle" >
1839,7 → 1839,7
<property name="geometry" >
<rect>
<x>10</x>
<y>180</y>
<y>390</y>
<width>883</width>
<height>27</height>
</rect>
1852,9 → 1852,9
<property name="geometry" >
<rect>
<x>10</x>
<y>60</y>
<y>50</y>
<width>251</width>
<height>81</height>
<height>181</height>
</rect>
</property>
</widget>
1881,7 → 1881,7
<rect>
<x>0</x>
<y>0</y>
<width>675</width>
<width>699</width>
<height>24</height>
</rect>
</property>
2329,7 → 2329,7
<bool>true</bool>
</property>
<property name="enabled" >
<bool>true</bool>
<bool>false</bool>
</property>
<property name="icon" >
<iconset resource="../MKTool.qrc" >
/QMK-Groundstation/trunk/global.h
56,7 → 56,7
static const int SLEEP = 500000;
 
static const QString QA_NAME = "QMK-Groundstation";
static const QString QA_VERSION_NR = "0.7.2g";
static const QString QA_VERSION_NR = "0.7.2b";
 
#ifdef _BETA_
static const QString QA_VERSION = QA_VERSION_NR + " (BETA)";
66,7 → 66,7
static const QString QA_HWVERSION = "FlightCtrl v0.71h & NaviCtrl v0.12i";
#endif
 
static const QString QA_DATE = "01.03.2009";
static const QString QA_DATE = "18.02.2009";
static const QString QA_YEAR = "2008-2009";
static const QString QA_AUTHOR = "Manuel Schrape";
static const QString QA_EMAIL = "manuel.schrape@gmx.de";