Subversion Repositories Projects

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
158 KeyOz 1
/***************************************************************************
2
 *   Copyright (C) 2008 by Manuel Schrape                                  *
3
 *   manuel.schrape@gmx.de                                                 *
4
 *                                                                         *
5
 *   This program is free software; you can redistribute it and/or modify  *
6
 *   it under the terms of the GNU General Public License as published by  *
7
 *   the Free Software Foundation; either version 2 of the License.        *
8
 *                                                                         *
9
 *   This program is distributed in the hope that it will be useful,       *
10
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12
 *   GNU General Public License for more details.                          *
13
 *                                                                         *
14
 *   You should have received a copy of the GNU General Public License     *
15
 *   along with this program; if not, write to the                         *
16
 *   Free Software Foundation, Inc.,                                       *
17
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18
 ***************************************************************************/
19
 
20
 
21
#ifndef MKTOOL_H
22
#define MKTOOL_H
23
 
24
#include <QMainWindow>
25
#include <QSettings>
26
#include <QString>
27
#include <QTimer>
28
#include <QComboBox>
29
#include <QIcon>
30
#include <QProcess>
31
 
32
#include <qwt_plot_curve.h>
33
#include <qwt_plot_grid.h>
34
#include <qwt_legend.h>
35
#include <qwt_plot.h>
227 KeyOz 36
#include <qwt_compass.h>
37
#include <qwt_compass_rose.h>
38
#include <qwt_dial_needle.h>
39
 
158 KeyOz 40
#include "ui_mktool.h"
167 KeyOz 41
#include "wdg_Settings.h"
227 KeyOz 42
#include "dlg_LCD.h"
158 KeyOz 43
 
44
#include "../SerialPort/ManageSerialPort.h"
227 KeyOz 45
#include "../Classes/cSettings.h"
199 KeyOz 46
#include "../Classes/cServer.h"
227 KeyOz 47
#include "../Classes/cQMK_Server.h"
48
#include "../Classes/cAttitude.h"
49
#include "../Classes/cSpeedMeter.h"
239 Brean 50
#include "../Logger/Logger.h"
158 KeyOz 51
 
52
class QextSerialPort;
53
 
54
class MKTool : public QMainWindow, public Ui::dlg_mktool_UI
55
{
56
      Q_OBJECT
57
 
58
public:
59
      MKTool();
60
      ~MKTool();
61
 
62
private:
227 KeyOz 63
 
64
    int aa;
65
 
159 KeyOz 66
    bool AllowSend;
199 KeyOz 67
 
158 KeyOz 68
    // Object für Serielport
69
    ManageSerialPort *serialPort;
70
 
199 KeyOz 71
    // Settings-Object (Programmeinstellungen)
158 KeyOz 72
    cSettings *Settings;
73
 
199 KeyOz 74
    // Settings-Widget (FC-Settings)
167 KeyOz 75
    wdg_Settings *f_Settings;
76
 
227 KeyOz 77
    // HTTP-Server-Object für Google Earth
199 KeyOz 78
    cServer *Server;
79
 
227 KeyOz 80
    // QMK-Serverobjekt
81
    cQMK_Server *MyServer;
82
 
83
    // LCD-Dialog
84
    dlg_LCD *f_LCD;
85
 
86
    //TCP-Socket
87
    QTcpSocket *TcpSocket;
88
 
158 KeyOz 89
    // Default-Ticker
90
    QTimer *Ticker;
91
 
199 KeyOz 92
    // Kopie der Tabs des Hauptfensters
227 KeyOz 93
    QWidget *TabWidgets[7];
158 KeyOz 94
 
95
    // Analogwert-Beschreibungen
96
    QLabel *lb_Analog[MaxAnalog];
97
 
98
    // Analogwerte
99
    int AnalogData[MaxAnalog];
100
 
101
    // Plots für die Analogwerte
227 KeyOz 102
    QwtPlotCurve *Plot[MaxAnalog];    
158 KeyOz 103
 
104
    // Datenspeicher für die Plots
105
    double aData[MaxAnalog][MaxPlot];
106
    double aID[MaxPlot];
107
    int NextPlot;
108
 
227 KeyOz 109
    AttitudeIndicator *Attitude;
110
    cSpeedMeter * SpeedMeter;
111
 
158 KeyOz 112
    // Ticker-Event-Array
113
    bool TickerEvent[MaxTickerEvents];
114
    bool TickerDiv;
115
 
199 KeyOz 116
    // Aktuelle und Max-Anzahl der LCD-Seiten
159 KeyOz 117
    int LCD_Page;
118
    int LCD_MAX_Page;
119
 
239 Brean 120
    //Logger für CVS und andere
121
    Logger * logger;
158 KeyOz 122
 
123
    sMode Mode;
124
    sRxData RxData;
199 KeyOz 125
    sNaviData Navi;
158 KeyOz 126
 
127
    QString RXS;
128
    QString LastSend;
129
 
167 KeyOz 130
    // Softwareupdate
162 KeyOz 131
    QProcess *Update;
158 KeyOz 132
 
199 KeyOz 133
    // Sendedatenbuffer
158 KeyOz 134
    char TX_Data[150];
135
 
199 KeyOz 136
    // FC-Settings
137
    int FCSettings[MaxParameter];
158 KeyOz 138
 
139
    // Programm Initialisieren
140
    void init_GUI();
141
    void init_Objects();
142
    void init_Connections();
143
    void init_Arrays();
144
    void init_Plot();
145
 
146
    // Daten-Plotter
147
    void update_Plot();
148
    void config_Plot();
149
 
199 KeyOz 150
    void new_NaviData(sRxData RX);
227 KeyOz 151
//    void new_Debugdata();
199 KeyOz 152
 
158 KeyOz 153
    // Daten Senden, Empfangen und verarbeiten
159 KeyOz 154
    void send_Data(char CMD, int Address, char Data[150],unsigned int Length, bool Resend = true);
158 KeyOz 155
    void new_RXData(sRxData RX);
156
 
157
    // Debugdaten anzeigen und speichern.
158
    void show_DebugData();
239 Brean 159
    void update_Log();
158 KeyOz 160
 
161
    // Programmeinstellungen speichern
167 KeyOz 162
    void set_Preferences();
158 KeyOz 163
 
164
private slots:
227 KeyOz 165
    void slot_QMKS_Connect();
166
    void slot_QMKS_Connected();
167
    void slot_QMKS_Disconnected(int Error);
168
 
199 KeyOz 169
    void slot_ac_Hardware();
170
    void slot_rb_Hardware();
171
 
172
    void slot_ac_StartServer();
173
 
174
    void slot_Test();
175
 
158 KeyOz 176
    void slot_ac_Config();
159 KeyOz 177
    void slot_ac_Preferences();
158 KeyOz 178
    void slot_ac_StartPlotter();
179
    void slot_ac_View();
199 KeyOz 180
    void slot_ac_FastDebug();
181
    void slot_ac_NoDebug();
182
    void slot_ac_FastNavi();
183
    void slot_ac_NoNavi();
158 KeyOz 184
    void slot_ac_About();
185
    void slot_ac_GetLabels();
186
    void slot_ac_Motortest();
227 KeyOz 187
    void slot_ac_LCD();
166 KeyOz 188
    void slot_pb_HexFile();
158 KeyOz 189
 
190
    // Default-Ticker
191
    void slot_Ticker();
192
 
199 KeyOz 193
    // LCD-Seite vor / zurück
159 KeyOz 194
    void slot_LCD_UP();
195
    void slot_LCD_DOWN();
196
 
158 KeyOz 197
    void slot_Motortest(int Motor1, int Motor2, int Motor3, int Motor4);
198
 
199 KeyOz 199
    // Firmeware-Update
158 KeyOz 200
    void slot_pb_Update();
201
    void slot_UpdateShell();
202
 
203
    // Seriell-Port Slots
204
    void slot_newDataReceived(const QByteArray &dataReceived);
205
    void slot_OpenPort();
206
 
207
    void slot_TabChanged(int Tab);
208
 
239 Brean 209
    void slot_RecordLog();
158 KeyOz 210
 
211
    void slot_ScrollPlot(int Pos);
212
 
199 KeyOz 213
    // FC-Settings lesen / Schreiben
214
    void slot_GetFCSettings();
215
    void slot_SetFCSettings();
158 KeyOz 216
};
217
 
218
#endif