Subversion Repositories Projects

Rev

Rev 449 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 449 Rev 450
1
/***************************************************************************
1
/***************************************************************************
2
 *   Copyright (C) 2009 by Manuel Schrape                                  *
2
 *   Copyright (C) 2009 by Manuel Schrape                                  *
3
 *   manuel.schrape@gmx.de                                                 *
3
 *   manuel.schrape@gmx.de                                                 *
4
 *                                                                         *
4
 *                                                                         *
5
 *   This program is free software; you can redistribute it and/or modify  *
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  *
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.        *
7
 *   the Free Software Foundation; either version 2 of the License.        *
8
 *                                                                         *
8
 *                                                                         *
9
 *   This program is distributed in the hope that it will be useful,       *
9
 *   This program is distributed in the hope that it will be useful,       *
10
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
10
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
11
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
11
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
12
 *   GNU General Public License for more details.                          *
12
 *   GNU General Public License for more details.                          *
13
 *                                                                         *
13
 *                                                                         *
14
 *   You should have received a copy of the GNU General Public License     *
14
 *   You should have received a copy of the GNU General Public License     *
15
 *   along with this program; if not, write to the                         *
15
 *   along with this program; if not, write to the                         *
16
 *   Free Software Foundation, Inc.,                                       *
16
 *   Free Software Foundation, Inc.,                                       *
17
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
17
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
18
 ***************************************************************************/
18
 ***************************************************************************/
19
#include "dlg_MotorMixer.h"
19
#include "dlg_MotorMixer.h"
20
 
20
 
21
dlg_MotorMixer::dlg_MotorMixer(QWidget *parent) : QDialog(parent)
21
dlg_MotorMixer::dlg_MotorMixer(QWidget *parent) : QDialog(parent)
22
{
22
{
23
    setupUi(this);
23
    setupUi(this);
24
    connect(pb_READ, SIGNAL(clicked()), this, SLOT(slot_pb_READ()));
24
    connect(pb_READ, SIGNAL(clicked()), this, SLOT(slot_pb_READ()));
25
    connect(pb_LOAD, SIGNAL(clicked()), this, SLOT(slot_pb_LOAD()));
25
    connect(pb_LOAD, SIGNAL(clicked()), this, SLOT(slot_pb_LOAD()));
26
    connect(pb_SAVE, SIGNAL(clicked()), this, SLOT(slot_pb_SAVE()));
26
    connect(pb_SAVE, SIGNAL(clicked()), this, SLOT(slot_pb_SAVE()));
27
    connect(pb_WRITE, SIGNAL(clicked()), this, SLOT(slot_pb_WRITE()));
27
    connect(pb_WRITE, SIGNAL(clicked()), this, SLOT(slot_pb_WRITE()));
28
 
28
 
29
    connect(sb_NICK_1, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
29
    connect(sb_NICK_1, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
30
    connect(sb_NICK_2, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
30
    connect(sb_NICK_2, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
31
    connect(sb_NICK_3, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
31
    connect(sb_NICK_3, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
32
    connect(sb_NICK_4, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
32
    connect(sb_NICK_4, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
33
    connect(sb_NICK_5, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
33
    connect(sb_NICK_5, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
34
    connect(sb_NICK_6, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
34
    connect(sb_NICK_6, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
35
    connect(sb_NICK_7, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
35
    connect(sb_NICK_7, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
36
    connect(sb_NICK_8, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
36
    connect(sb_NICK_8, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
37
    connect(sb_NICK_9, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
37
    connect(sb_NICK_9, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
38
    connect(sb_NICK_10, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
38
    connect(sb_NICK_10, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
39
    connect(sb_NICK_11, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
39
    connect(sb_NICK_11, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
40
    connect(sb_NICK_12, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
40
    connect(sb_NICK_12, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
41
 
41
 
42
    connect(sb_ROLL_1, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
42
    connect(sb_ROLL_1, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
43
    connect(sb_ROLL_2, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
43
    connect(sb_ROLL_2, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
44
    connect(sb_ROLL_3, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
44
    connect(sb_ROLL_3, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
45
    connect(sb_ROLL_4, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
45
    connect(sb_ROLL_4, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
46
    connect(sb_ROLL_5, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
46
    connect(sb_ROLL_5, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
47
    connect(sb_ROLL_6, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
47
    connect(sb_ROLL_6, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
48
    connect(sb_ROLL_7, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
48
    connect(sb_ROLL_7, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
49
    connect(sb_ROLL_8, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
49
    connect(sb_ROLL_8, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
50
    connect(sb_ROLL_9, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
50
    connect(sb_ROLL_9, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
51
    connect(sb_ROLL_10, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
51
    connect(sb_ROLL_10, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
52
    connect(sb_ROLL_11, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
52
    connect(sb_ROLL_11, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
53
    connect(sb_ROLL_12, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
53
    connect(sb_ROLL_12, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
54
 
54
 
55
    connect(sb_GIER_1, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
55
    connect(sb_GIER_1, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
56
    connect(sb_GIER_2, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
56
    connect(sb_GIER_2, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
57
    connect(sb_GIER_3, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
57
    connect(sb_GIER_3, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
58
    connect(sb_GIER_4, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
58
    connect(sb_GIER_4, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
59
    connect(sb_GIER_5, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
59
    connect(sb_GIER_5, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
60
    connect(sb_GIER_6, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
60
    connect(sb_GIER_6, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
61
    connect(sb_GIER_7, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
61
    connect(sb_GIER_7, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
62
    connect(sb_GIER_8, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
62
    connect(sb_GIER_8, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
63
    connect(sb_GIER_9, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
63
    connect(sb_GIER_9, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
64
    connect(sb_GIER_10, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
64
    connect(sb_GIER_10, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
65
    connect(sb_GIER_11, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
65
    connect(sb_GIER_11, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
66
    connect(sb_GIER_12, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
66
    connect(sb_GIER_12, SIGNAL(valueChanged(int)), this, SLOT(slot_CheckValue(int)));
67
 
67
 
68
}
68
}
69
 
69
 
70
// Connection-Object übergeben.
70
// Connection-Object übergeben.
71
void dlg_MotorMixer::set_Objects(Handler *handler, cSettings *t_Settings)
71
void dlg_MotorMixer::set_Objects(Handler *handler, cSettings *t_Settings)
72
{
72
{
73
    this->handler = handler;
73
    this->handler = handler;
74
    this->data = handler->data;
74
    this->data = handler->data;
75
    o_Settings   = t_Settings;
75
    o_Settings   = t_Settings;
76
}
76
}
77
 
77
 
78
// Motordaten übernehmen.
78
// Motordaten übernehmen.
79
//FIXME: put this in libMK/Handler.cpp and fill motor values in KopterData
79
//FIXME: put this in libMK/Handler.cpp and fill motor values in KopterData
80
/*
80
 
81
void dlg_MotorMixer::set_MotorConfig(sRxData RX)
81
void dlg_MotorMixer::set_MotorConfig(char * data)
82
{
82
{
83
    int Pos = 0;
83
    int Pos = 0;
84
 
84
 
85
    MixerName = ToolBox::dataToQString(RX.decode, 1, 12);
85
    MixerName = ToolBox::dataToQString(data, 1, 12);
86
 
86
 
87
    Pos = 13;
87
    Pos = 13;
88
 
88
 
89
    for (int z = 0; z < 16; z++)
89
    for (int z = 0; z < 16; z++)
90
    {
90
    {
91
        for (int y = 0; y < 4; y++)
91
        for (int y = 0; y < 4; y++)
92
        {
92
        {
93
            Motor[z][y] = Parser::dataToChar(RX.decode,Pos);
93
            Motor[z][y] = Parser::dataToChar(data,Pos);
94
            Pos++;
94
            Pos++;
95
        }
95
        }
96
    }
96
    }
97
 
97
 
98
    set_MotorData();
98
    set_MotorData();
99
}
99
}
100
*/
-
 
101
 
100
 
102
// Motordaten aus GUI übernehmen
101
// Motordaten aus GUI übernehmen
103
void dlg_MotorMixer::get_MotorData()
102
void dlg_MotorMixer::get_MotorData()
104
{
103
{
105
    sMotorData motorData;
104
    sMotorData motorData;
106
 
105
 
107
    motorData.mixer_name = le_NAME->text().toAscii().data();
106
    motorData.mixer_name = le_NAME->text().toAscii().data();
108
 
107
 
109
    int gas[MAX_MOTORS] = {
108
    int gas[MAX_MOTORS] = {
110
        sb_GAS_1->value(), sb_GAS_2->value(), sb_GAS_3->value(), sb_GAS_4->value(),
109
        sb_GAS_1->value(), sb_GAS_2->value(), sb_GAS_3->value(), sb_GAS_4->value(),
111
        sb_GAS_5->value(), sb_GAS_6->value(), sb_GAS_7->value(), sb_GAS_8->value(),
110
        sb_GAS_5->value(), sb_GAS_6->value(), sb_GAS_7->value(), sb_GAS_8->value(),
112
        sb_GAS_9->value(), sb_GAS_10->value(), sb_GAS_11->value(), sb_GAS_12->value()
111
        sb_GAS_9->value(), sb_GAS_10->value(), sb_GAS_11->value(), sb_GAS_12->value()
113
    };
112
    };
114
    int nick[MAX_MOTORS] = {
113
    int nick[MAX_MOTORS] = {
115
        sb_NICK_1->value(), sb_NICK_2->value(), sb_NICK_3->value(), sb_NICK_4->value(),
114
        sb_NICK_1->value(), sb_NICK_2->value(), sb_NICK_3->value(), sb_NICK_4->value(),
116
        sb_NICK_5->value(), sb_NICK_6->value(), sb_NICK_7->value(), sb_NICK_8->value(),
115
        sb_NICK_5->value(), sb_NICK_6->value(), sb_NICK_7->value(), sb_NICK_8->value(),
117
        sb_NICK_9->value(), sb_NICK_10->value(), sb_NICK_11->value(), sb_NICK_12->value()
116
        sb_NICK_9->value(), sb_NICK_10->value(), sb_NICK_11->value(), sb_NICK_12->value()
118
    };
117
    };
119
    int roll[MAX_MOTORS] = {
118
    int roll[MAX_MOTORS] = {
120
        sb_ROLL_1->value(), sb_ROLL_2->value(), sb_ROLL_3->value(), sb_ROLL_4->value(),
119
        sb_ROLL_1->value(), sb_ROLL_2->value(), sb_ROLL_3->value(), sb_ROLL_4->value(),
121
        sb_ROLL_5->value(), sb_ROLL_6->value(), sb_ROLL_7->value(), sb_ROLL_8->value(),
120
        sb_ROLL_5->value(), sb_ROLL_6->value(), sb_ROLL_7->value(), sb_ROLL_8->value(),
122
        sb_ROLL_9->value(), sb_ROLL_10->value(), sb_ROLL_11->value(), sb_ROLL_12->value()
121
        sb_ROLL_9->value(), sb_ROLL_10->value(), sb_ROLL_11->value(), sb_ROLL_12->value()
123
    };
122
    };
124
    int yaw[MAX_MOTORS] = {
123
    int yaw[MAX_MOTORS] = {
125
        sb_GIER_1->value(), sb_GIER_2->value(), sb_GIER_3->value(), sb_GIER_4->value(),
124
        sb_GIER_1->value(), sb_GIER_2->value(), sb_GIER_3->value(), sb_GIER_4->value(),
126
        sb_GIER_5->value(), sb_GIER_6->value(), sb_GIER_7->value(), sb_GIER_8->value(),
125
        sb_GIER_5->value(), sb_GIER_6->value(), sb_GIER_7->value(), sb_GIER_8->value(),
127
        sb_GIER_9->value(), sb_GIER_10->value(), sb_GIER_11->value(), sb_GIER_12->value()
126
        sb_GIER_9->value(), sb_GIER_10->value(), sb_GIER_11->value(), sb_GIER_12->value()
128
    };
127
    };
129
    for (int i = 0; i < MAX_MOTORS; i++) {
128
    for (int i = 0; i < MAX_MOTORS; i++) {
130
        motorData.mixer_gas[i] = gas[i];
129
        motorData.mixer_gas[i] = gas[i];
131
        motorData.mixer_nick[i] = nick[i];
130
        motorData.mixer_nick[i] = nick[i];
132
        motorData.mixer_roll[i] = roll[i];
131
        motorData.mixer_roll[i] = roll[i];
133
        motorData.mixer_yaw[i] = yaw[i];
132
        motorData.mixer_yaw[i] = yaw[i];
134
    }
133
    }
135
    //FIXME: add Function in handler to send data
134
    //FIXME: add Function in handler to send data
136
}
135
}
137
 
136
 
138
// Motordaten anzeigen
137
// Motordaten anzeigen
139
void dlg_MotorMixer::set_MotorData()
138
void dlg_MotorMixer::set_MotorData()
140
{
139
{
141
    sMotorData motorData = handler->data->motor;
140
    sMotorData motorData = handler->data->motor;
142
    le_NAME->setText(motorData.mixer_name);
141
    le_NAME->setText(motorData.mixer_name);
143
 
142
 
144
    sb_GAS_1->setValue(motorData.mixer_gas[0]);
143
    sb_GAS_1->setValue(motorData.mixer_gas[0]);
145
    sb_GAS_2->setValue(motorData.mixer_gas[1]);
144
    sb_GAS_2->setValue(motorData.mixer_gas[1]);
146
    sb_GAS_3->setValue(motorData.mixer_gas[2]);
145
    sb_GAS_3->setValue(motorData.mixer_gas[2]);
147
    sb_GAS_4->setValue(motorData.mixer_gas[3]);
146
    sb_GAS_4->setValue(motorData.mixer_gas[3]);
148
    sb_GAS_5->setValue(motorData.mixer_gas[4]);
147
    sb_GAS_5->setValue(motorData.mixer_gas[4]);
149
    sb_GAS_6->setValue(motorData.mixer_gas[5]);
148
    sb_GAS_6->setValue(motorData.mixer_gas[5]);
150
    sb_GAS_7->setValue(motorData.mixer_gas[6]);
149
    sb_GAS_7->setValue(motorData.mixer_gas[6]);
151
    sb_GAS_8->setValue(motorData.mixer_gas[7]);
150
    sb_GAS_8->setValue(motorData.mixer_gas[7]);
152
    sb_GAS_9->setValue(motorData.mixer_gas[8]);
151
    sb_GAS_9->setValue(motorData.mixer_gas[8]);
153
    sb_GAS_10->setValue(motorData.mixer_gas[9]);
152
    sb_GAS_10->setValue(motorData.mixer_gas[9]);
154
    sb_GAS_11->setValue(motorData.mixer_gas[10]);
153
    sb_GAS_11->setValue(motorData.mixer_gas[10]);
155
    sb_GAS_12->setValue(motorData.mixer_gas[11]);
154
    sb_GAS_12->setValue(motorData.mixer_gas[11]);
156
 
155
 
157
    sb_NICK_1->setValue(motorData.mixer_nick[0]);
156
    sb_NICK_1->setValue(motorData.mixer_nick[0]);
158
    sb_NICK_2->setValue(motorData.mixer_nick[1]);
157
    sb_NICK_2->setValue(motorData.mixer_nick[1]);
159
    sb_NICK_3->setValue(motorData.mixer_nick[2]);
158
    sb_NICK_3->setValue(motorData.mixer_nick[2]);
160
    sb_NICK_4->setValue(motorData.mixer_nick[3]);
159
    sb_NICK_4->setValue(motorData.mixer_nick[3]);
161
    sb_NICK_5->setValue(motorData.mixer_nick[4]);
160
    sb_NICK_5->setValue(motorData.mixer_nick[4]);
162
    sb_NICK_6->setValue(motorData.mixer_nick[5]);
161
    sb_NICK_6->setValue(motorData.mixer_nick[5]);
163
    sb_NICK_7->setValue(motorData.mixer_nick[6]);
162
    sb_NICK_7->setValue(motorData.mixer_nick[6]);
164
    sb_NICK_8->setValue(motorData.mixer_nick[7]);
163
    sb_NICK_8->setValue(motorData.mixer_nick[7]);
165
    sb_NICK_9->setValue(motorData.mixer_nick[8]);
164
    sb_NICK_9->setValue(motorData.mixer_nick[8]);
166
    sb_NICK_10->setValue(motorData.mixer_nick[9]);
165
    sb_NICK_10->setValue(motorData.mixer_nick[9]);
167
    sb_NICK_11->setValue(motorData.mixer_nick[10]);
166
    sb_NICK_11->setValue(motorData.mixer_nick[10]);
168
    sb_NICK_12->setValue(motorData.mixer_nick[11]);
167
    sb_NICK_12->setValue(motorData.mixer_nick[11]);
169
 
168
 
170
    sb_ROLL_1->setValue(motorData.mixer_roll[0]);
169
    sb_ROLL_1->setValue(motorData.mixer_roll[0]);
171
    sb_ROLL_2->setValue(motorData.mixer_roll[1]);
170
    sb_ROLL_2->setValue(motorData.mixer_roll[1]);
172
    sb_ROLL_3->setValue(motorData.mixer_roll[2]);
171
    sb_ROLL_3->setValue(motorData.mixer_roll[2]);
173
    sb_ROLL_4->setValue(motorData.mixer_roll[3]);
172
    sb_ROLL_4->setValue(motorData.mixer_roll[3]);
174
    sb_ROLL_5->setValue(motorData.mixer_roll[4]);
173
    sb_ROLL_5->setValue(motorData.mixer_roll[4]);
175
    sb_ROLL_6->setValue(motorData.mixer_roll[5]);
174
    sb_ROLL_6->setValue(motorData.mixer_roll[5]);
176
    sb_ROLL_7->setValue(motorData.mixer_roll[6]);
175
    sb_ROLL_7->setValue(motorData.mixer_roll[6]);
177
    sb_ROLL_8->setValue(motorData.mixer_roll[7]);
176
    sb_ROLL_8->setValue(motorData.mixer_roll[7]);
178
    sb_ROLL_9->setValue(motorData.mixer_roll[8]);
177
    sb_ROLL_9->setValue(motorData.mixer_roll[8]);
179
    sb_ROLL_10->setValue(motorData.mixer_roll[9]);
178
    sb_ROLL_10->setValue(motorData.mixer_roll[9]);
180
    sb_ROLL_11->setValue(motorData.mixer_roll[10]);
179
    sb_ROLL_11->setValue(motorData.mixer_roll[10]);
181
    sb_ROLL_12->setValue(motorData.mixer_roll[11]);
180
    sb_ROLL_12->setValue(motorData.mixer_roll[11]);
182
 
181
 
183
    sb_GIER_1->setValue(motorData.mixer_yaw[0]);
182
    sb_GIER_1->setValue(motorData.mixer_yaw[0]);
184
    sb_GIER_2->setValue(motorData.mixer_yaw[1]);
183
    sb_GIER_2->setValue(motorData.mixer_yaw[1]);
185
    sb_GIER_3->setValue(motorData.mixer_yaw[2]);
184
    sb_GIER_3->setValue(motorData.mixer_yaw[2]);
186
    sb_GIER_4->setValue(motorData.mixer_yaw[3]);
185
    sb_GIER_4->setValue(motorData.mixer_yaw[3]);
187
    sb_GIER_5->setValue(motorData.mixer_yaw[4]);
186
    sb_GIER_5->setValue(motorData.mixer_yaw[4]);
188
    sb_GIER_6->setValue(motorData.mixer_yaw[5]);
187
    sb_GIER_6->setValue(motorData.mixer_yaw[5]);
189
    sb_GIER_7->setValue(motorData.mixer_yaw[6]);
188
    sb_GIER_7->setValue(motorData.mixer_yaw[6]);
190
    sb_GIER_8->setValue(motorData.mixer_yaw[7]);
189
    sb_GIER_8->setValue(motorData.mixer_yaw[7]);
191
    sb_GIER_9->setValue(motorData.mixer_yaw[8]);
190
    sb_GIER_9->setValue(motorData.mixer_yaw[8]);
192
    sb_GIER_10->setValue(motorData.mixer_yaw[9]);
191
    sb_GIER_10->setValue(motorData.mixer_yaw[9]);
193
    sb_GIER_11->setValue(motorData.mixer_yaw[10]);
192
    sb_GIER_11->setValue(motorData.mixer_yaw[10]);
194
    sb_GIER_12->setValue(motorData.mixer_yaw[11]);
193
    sb_GIER_12->setValue(motorData.mixer_yaw[11]);
195
}
194
}
196
 
195
 
197
// Prüfen auf vollstaändigkeit
196
// Prüfen auf vollstaändigkeit
198
void dlg_MotorMixer::slot_CheckValue(int Wert)
197
void dlg_MotorMixer::slot_CheckValue(int Wert)
199
{
198
{
200
    Wert = Wert;
199
    Wert = Wert;
201
 
200
 
202
    int NICK = sb_NICK_1->value()  + sb_NICK_2->value()  + sb_NICK_3->value() +
201
    int NICK = sb_NICK_1->value()  + sb_NICK_2->value()  + sb_NICK_3->value() +
203
               sb_NICK_4->value()  + sb_NICK_5->value()  + sb_NICK_6->value() +
202
               sb_NICK_4->value()  + sb_NICK_5->value()  + sb_NICK_6->value() +
204
               sb_NICK_7->value()  + sb_NICK_8->value()  + sb_NICK_9->value() +
203
               sb_NICK_7->value()  + sb_NICK_8->value()  + sb_NICK_9->value() +
205
               sb_NICK_10->value() + sb_NICK_11->value() + sb_NICK_12->value();
204
               sb_NICK_10->value() + sb_NICK_11->value() + sb_NICK_12->value();
206
 
205
 
207
    int ROLL = sb_ROLL_1->value()  + sb_ROLL_2->value()  + sb_ROLL_3->value() +
206
    int ROLL = sb_ROLL_1->value()  + sb_ROLL_2->value()  + sb_ROLL_3->value() +
208
               sb_ROLL_4->value()  + sb_ROLL_5->value()  + sb_ROLL_6->value() +
207
               sb_ROLL_4->value()  + sb_ROLL_5->value()  + sb_ROLL_6->value() +
209
               sb_ROLL_7->value()  + sb_ROLL_8->value()  + sb_ROLL_9->value() +
208
               sb_ROLL_7->value()  + sb_ROLL_8->value()  + sb_ROLL_9->value() +
210
               sb_ROLL_10->value() + sb_ROLL_11->value() + sb_ROLL_12->value();
209
               sb_ROLL_10->value() + sb_ROLL_11->value() + sb_ROLL_12->value();
211
 
210
 
212
    int GIER = sb_GIER_1->value()  + sb_GIER_2->value()  + sb_GIER_3->value() +
211
    int GIER = sb_GIER_1->value()  + sb_GIER_2->value()  + sb_GIER_3->value() +
213
               sb_GIER_4->value()  + sb_GIER_5->value()  + sb_GIER_6->value() +
212
               sb_GIER_4->value()  + sb_GIER_5->value()  + sb_GIER_6->value() +
214
               sb_GIER_7->value()  + sb_GIER_8->value()  + sb_GIER_9->value() +
213
               sb_GIER_7->value()  + sb_GIER_8->value()  + sb_GIER_9->value() +
215
               sb_GIER_10->value() + sb_GIER_11->value() + sb_GIER_12->value();
214
               sb_GIER_10->value() + sb_GIER_11->value() + sb_GIER_12->value();
216
 
215
 
217
    if (NICK == 0)
216
    if (NICK == 0)
218
    {
217
    {
219
        lb_NICK->setEnabled(true);
218
        lb_NICK->setEnabled(true);
220
    }
219
    }
221
    else
220
    else
222
    {
221
    {
223
        lb_NICK->setEnabled(false);
222
        lb_NICK->setEnabled(false);
224
    }
223
    }
225
 
224
 
226
    if (ROLL == 0)
225
    if (ROLL == 0)
227
    {
226
    {
228
        lb_ROLL->setEnabled(true);
227
        lb_ROLL->setEnabled(true);
229
    }
228
    }
230
    else
229
    else
231
    {
230
    {
232
        lb_ROLL->setEnabled(false);
231
        lb_ROLL->setEnabled(false);
233
    }
232
    }
234
 
233
 
235
    if (GIER == 0)
234
    if (GIER == 0)
236
    {
235
    {
237
        lb_GIER->setEnabled(true);
236
        lb_GIER->setEnabled(true);
238
    }
237
    }
239
    else
238
    else
240
    {
239
    {
241
        lb_GIER->setEnabled(false);
240
        lb_GIER->setEnabled(false);
242
    }
241
    }
243
}
242
}
244
 
243
 
245
//FIXME: put this in libMK/Handler.cpp
244
//FIXME: put this in libMK/Handler.cpp
246
/*
245
/*
247
int dlg_MotorMixer::get_MotorConfig()
246
int dlg_MotorMixer::get_MotorConfig()
248
{
247
{
249
    get_MotorData();
248
    get_MotorData();
250
 
249
 
251
    TX_Data[0] = VERSION_MIXER;
250
    TX_Data[0] = VERSION_MIXER;
252
 
251
 
253
    char *Name = MixerName.toLatin1().data();
252
    char *Name = MixerName.toLatin1().data();
254
 
253
 
255
    int a;
254
    int a;
256
 
255
 
257
    for (a = 0; a < MixerName.length(); a++)
256
    for (a = 0; a < MixerName.length(); a++)
258
    {
257
    {
259
        TX_Data[1+a] = Name[a];
258
        TX_Data[1+a] = Name[a];
260
    }
259
    }
261
 
260
 
262
    while(a < 12)
261
    while(a < 12)
263
    {
262
    {
264
        TX_Data[1+a] = 0;
263
        TX_Data[1+a] = 0;
265
        a++;
264
        a++;
266
    }
265
    }
267
 
266
 
268
    int Pos = 13;
267
    int Pos = 13;
269
 
268
 
270
    for (int z = 0; z < 16; z++)
269
    for (int z = 0; z < 16; z++)
271
    {
270
    {
272
        for (int y = 0; y < 4; y++)
271
        for (int y = 0; y < 4; y++)
273
        {
272
        {
274
            TX_Data[Pos] = Parser::charToData(Motor[z][y]);
273
            TX_Data[Pos] = Parser::charToData(Motor[z][y]);
275
            Pos++;
274
            Pos++;
276
        }
275
        }
277
    }
276
    }
278
 
277
 
279
    return Pos - 1;
278
    return Pos - 1;
280
}
279
}
281
*/
280
*/
282
 
281
 
283
// read motor values
282
// read motor values
284
void dlg_MotorMixer::slot_pb_READ()
283
void dlg_MotorMixer::slot_pb_READ()
285
{
284
{
286
    //send command to get mixer values
285
    //send command to get mixer values
287
    handler->read_motor_mixer();
286
    handler->read_motor_mixer();
288
}
287
}
289
 
288
 
290
//write motor values
289
//write motor values
291
//FIXME: put this in libMK/Handler.cpp
290
//FIXME: put this in libMK/Handler.cpp
292
void dlg_MotorMixer::slot_pb_WRITE()
291
void dlg_MotorMixer::slot_pb_WRITE()
293
{
292
{
294
    char tx_data[150];
293
    char tx_data[150];
295
    int length = handler->get_motor_config(tx_data);
294
    int length = handler->get_motor_config(tx_data);
296
    handler->write_motor_mixer(tx_data, length);
295
    handler->write_motor_mixer(tx_data, length);
297
}
296
}
298
 
297
 
299
void dlg_MotorMixer::slot_pb_LOAD()
298
void dlg_MotorMixer::slot_pb_LOAD()
300
{
299
{
301
    QString Filename = QFileDialog::getOpenFileName(this, tr("Mikrokopter MotorMixer laden"),  o_Settings->DIR.Parameter + "", tr("MK MotorMixer(*.mkm);;Alle Dateien (*)"));
300
    QString Filename = QFileDialog::getOpenFileName(this, tr("Mikrokopter MotorMixer laden"),  o_Settings->DIR.Parameter + "", tr("MK MotorMixer(*.mkm);;Alle Dateien (*)"));
302
 
301
 
303
    if (!Filename.isEmpty())
302
    if (!Filename.isEmpty())
304
    {
303
    {
305
        QSettings Setting(Filename, QSettings::IniFormat);
304
        QSettings Setting(Filename, QSettings::IniFormat);
306
 
305
 
307
        Setting.beginGroup("Info");
306
        Setting.beginGroup("Info");
308
            data->motor.mixer_name = Setting.value("Name", QString("--noname--")).toString().toAscii().data();
307
            data->motor.mixer_name = Setting.value("Name", QString("--noname--")).toString().toAscii().data();
309
            data->motor.mixer_version = Setting.value("Version", 0).toInt();
308
            data->motor.mixer_version = Setting.value("Version", 0).toInt();
310
        Setting.endGroup();
309
        Setting.endGroup();
311
 
310
 
312
        Setting.beginGroup("Gas");
311
        Setting.beginGroup("Gas");
313
            for (int z = 0; z < MAXMOTOR; z++)
312
            for (int z = 0; z < MAXMOTOR; z++)
314
            {
313
            {
315
                data->motor.mixer_gas[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
314
                data->motor.mixer_gas[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
316
            }
315
            }
317
        Setting.endGroup();
316
        Setting.endGroup();
318
 
317
 
319
        Setting.beginGroup("Nick");
318
        Setting.beginGroup("Nick");
320
            for (int z = 0; z < MAXMOTOR; z++)
319
            for (int z = 0; z < MAXMOTOR; z++)
321
            {
320
            {
322
                data->motor.mixer_nick[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
321
                data->motor.mixer_nick[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
323
            }
322
            }
324
        Setting.endGroup();
323
        Setting.endGroup();
325
 
324
 
326
        Setting.beginGroup("Roll");
325
        Setting.beginGroup("Roll");
327
            for (int z = 0; z < MAXMOTOR; z++)
326
            for (int z = 0; z < MAXMOTOR; z++)
328
            {
327
            {
329
                data->motor.mixer_roll[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
328
                data->motor.mixer_roll[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
330
            }
329
            }
331
        Setting.endGroup();
330
        Setting.endGroup();
332
 
331
 
333
        Setting.beginGroup("Yaw");
332
        Setting.beginGroup("Yaw");
334
            for (int z = 0; z < MAXMOTOR; z++)
333
            for (int z = 0; z < MAXMOTOR; z++)
335
            {
334
            {
336
                data->motor.mixer_yaw[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
335
                data->motor.mixer_yaw[z] = Setting.value(QString("Motor%1").arg(z+1), 0).toInt();
337
            }
336
            }
338
        Setting.endGroup();
337
        Setting.endGroup();
339
 
338
 
340
        if (data->motor.mixer_version == VERSION_MIXER)
339
        if (data->motor.mixer_version == VERSION_MIXER)
341
        {
340
        {
342
            set_MotorData();
341
            set_MotorData();
343
        }
342
        }
344
    }
343
    }
345
}
344
}
346
 
345
 
347
void dlg_MotorMixer::slot_pb_SAVE()
346
void dlg_MotorMixer::slot_pb_SAVE()
348
{
347
{
349
    QString Filename = QFileDialog::getSaveFileName(this, tr("Mikrokopter MotorMixer speichern"), o_Settings->DIR.Parameter + "/" + le_NAME->text(), tr("MK MotorMixer(*.mkm);;Alle Dateien (*)"));
348
    QString Filename = QFileDialog::getSaveFileName(this, tr("Mikrokopter MotorMixer speichern"), o_Settings->DIR.Parameter + "/" + le_NAME->text(), tr("MK MotorMixer(*.mkm);;Alle Dateien (*)"));
350
 
349
 
351
    if (!Filename.isEmpty())
350
    if (!Filename.isEmpty())
352
    {
351
    {
353
        if (!(Filename.endsWith(".mkm", Qt::CaseInsensitive)))
352
        if (!(Filename.endsWith(".mkm", Qt::CaseInsensitive)))
354
        {
353
        {
355
            Filename = Filename + QString(".mkm");
354
            Filename = Filename + QString(".mkm");
356
        }
355
        }
357
 
356
 
358
        get_MotorData();
357
        get_MotorData();
359
 
358
 
360
        QSettings Setting(Filename, QSettings::IniFormat);
359
        QSettings Setting(Filename, QSettings::IniFormat);
361
 
360
 
362
        Setting.beginGroup("Info");
361
        Setting.beginGroup("Info");
363
            Setting.setValue("Name",         data->motor.mixer_name);
362
            Setting.setValue("Name",         data->motor.mixer_name);
364
            Setting.setValue("Version",      data->motor.mixer_version);
363
            Setting.setValue("Version",      data->motor.mixer_version);
365
        Setting.endGroup();
364
        Setting.endGroup();
366
 
365
 
367
        Setting.beginGroup("Gas");
366
        Setting.beginGroup("Gas");
368
            for (int z = 0; z < MAXMOTOR; z++)
367
            for (int z = 0; z < MAXMOTOR; z++)
369
            {
368
            {
370
                Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_gas[z]);
369
                Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_gas[z]);
371
            }
370
            }
372
        Setting.endGroup();
371
        Setting.endGroup();
373
 
372
 
374
        Setting.beginGroup("Nick");
373
        Setting.beginGroup("Nick");
375
            for (int z = 0; z < MAXMOTOR; z++)
374
            for (int z = 0; z < MAXMOTOR; z++)
376
            {
375
            {
377
                 Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_nick[z]);
376
                 Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_nick[z]);
378
            }
377
            }
379
        Setting.endGroup();
378
        Setting.endGroup();
380
 
379
 
381
        Setting.beginGroup("Roll");
380
        Setting.beginGroup("Roll");
382
            for (int z = 0; z < MAXMOTOR; z++)
381
            for (int z = 0; z < MAXMOTOR; z++)
383
            {
382
            {
384
                Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_roll[z]);
383
                Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_roll[z]);
385
            }
384
            }
386
        Setting.endGroup();
385
        Setting.endGroup();
387
 
386
 
388
        Setting.beginGroup("Yaw");
387
        Setting.beginGroup("Yaw");
389
            for (int z = 0; z < MAXMOTOR; z++)
388
            for (int z = 0; z < MAXMOTOR; z++)
390
            {
389
            {
391
                Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_yaw[z]);
390
                Setting.setValue(QString("Motor%1").arg(z+1), data->motor.mixer_yaw[z]);
392
            }
391
            }
393
        Setting.endGroup();
392
        Setting.endGroup();
394
    }
393
    }
395
}
394
}
396
 
395