Subversion Repositories Projects

Rev

Rev 450 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 450 Rev 451
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(char * data)
81
void dlg_MotorMixer::set_MotorConfig(char * data)
82
{
82
{
83
    int Pos = 0;
83
    int Pos = 0;
84
 
84
 
85
    MixerName = ToolBox::dataToQString(data, 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(data,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
 
100
*/
101
// Motordaten aus GUI übernehmen
101
// Motordaten aus GUI übernehmen
102
void dlg_MotorMixer::get_MotorData()
102
void dlg_MotorMixer::get_MotorData()
103
{
103
{
104
    sMotorData motorData;
104
    sMotorData motorData;
105
 
105
 
106
    motorData.mixer_name = le_NAME->text().toAscii().data();
106
    motorData.mixer_name = le_NAME->text().toAscii().data();
107
 
107
 
108
    int gas[MAX_MOTORS] = {
108
    int gas[MAX_MOTORS] = {
109
        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(),
110
        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(),
111
        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()
112
    };
112
    };
113
    int nick[MAX_MOTORS] = {
113
    int nick[MAX_MOTORS] = {
114
        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(),
115
        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(),
116
        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()
117
    };
117
    };
118
    int roll[MAX_MOTORS] = {
118
    int roll[MAX_MOTORS] = {
119
        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(),
120
        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(),
121
        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()
122
    };
122
    };
123
    int yaw[MAX_MOTORS] = {
123
    int yaw[MAX_MOTORS] = {
124
        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(),
125
        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(),
126
        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()
127
    };
127
    };
128
    for (int i = 0; i < MAX_MOTORS; i++) {
128
    for (int i = 0; i < MAX_MOTORS; i++) {
129
        motorData.mixer_gas[i] = gas[i];
129
        motorData.mixer_gas[i] = gas[i];
130
        motorData.mixer_nick[i] = nick[i];
130
        motorData.mixer_nick[i] = nick[i];
131
        motorData.mixer_roll[i] = roll[i];
131
        motorData.mixer_roll[i] = roll[i];
132
        motorData.mixer_yaw[i] = yaw[i];
132
        motorData.mixer_yaw[i] = yaw[i];
133
    }
133
    }
134
    //FIXME: add Function in handler to send data
134
    //FIXME: add Function in handler to send data
135
}
135
}
136
 
136
 
137
// Motordaten anzeigen
137
// Motordaten anzeigen
138
void dlg_MotorMixer::set_MotorData()
138
void dlg_MotorMixer::set_MotorData()
139
{
139
{
140
    sMotorData motorData = handler->data->motor;
140
    sMotorData motorData = handler->data->motor;
141
    le_NAME->setText(motorData.mixer_name);
141
    le_NAME->setText(motorData.mixer_name);
142
 
142
 
143
    sb_GAS_1->setValue(motorData.mixer_gas[0]);
143
    sb_GAS_1->setValue(motorData.mixer_gas[0]);
144
    sb_GAS_2->setValue(motorData.mixer_gas[1]);
144
    sb_GAS_2->setValue(motorData.mixer_gas[1]);
145
    sb_GAS_3->setValue(motorData.mixer_gas[2]);
145
    sb_GAS_3->setValue(motorData.mixer_gas[2]);
146
    sb_GAS_4->setValue(motorData.mixer_gas[3]);
146
    sb_GAS_4->setValue(motorData.mixer_gas[3]);
147
    sb_GAS_5->setValue(motorData.mixer_gas[4]);
147
    sb_GAS_5->setValue(motorData.mixer_gas[4]);
148
    sb_GAS_6->setValue(motorData.mixer_gas[5]);
148
    sb_GAS_6->setValue(motorData.mixer_gas[5]);
149
    sb_GAS_7->setValue(motorData.mixer_gas[6]);
149
    sb_GAS_7->setValue(motorData.mixer_gas[6]);
150
    sb_GAS_8->setValue(motorData.mixer_gas[7]);
150
    sb_GAS_8->setValue(motorData.mixer_gas[7]);
151
    sb_GAS_9->setValue(motorData.mixer_gas[8]);
151
    sb_GAS_9->setValue(motorData.mixer_gas[8]);
152
    sb_GAS_10->setValue(motorData.mixer_gas[9]);
152
    sb_GAS_10->setValue(motorData.mixer_gas[9]);
153
    sb_GAS_11->setValue(motorData.mixer_gas[10]);
153
    sb_GAS_11->setValue(motorData.mixer_gas[10]);
154
    sb_GAS_12->setValue(motorData.mixer_gas[11]);
154
    sb_GAS_12->setValue(motorData.mixer_gas[11]);
155
 
155
 
156
    sb_NICK_1->setValue(motorData.mixer_nick[0]);
156
    sb_NICK_1->setValue(motorData.mixer_nick[0]);
157
    sb_NICK_2->setValue(motorData.mixer_nick[1]);
157
    sb_NICK_2->setValue(motorData.mixer_nick[1]);
158
    sb_NICK_3->setValue(motorData.mixer_nick[2]);
158
    sb_NICK_3->setValue(motorData.mixer_nick[2]);
159
    sb_NICK_4->setValue(motorData.mixer_nick[3]);
159
    sb_NICK_4->setValue(motorData.mixer_nick[3]);
160
    sb_NICK_5->setValue(motorData.mixer_nick[4]);
160
    sb_NICK_5->setValue(motorData.mixer_nick[4]);
161
    sb_NICK_6->setValue(motorData.mixer_nick[5]);
161
    sb_NICK_6->setValue(motorData.mixer_nick[5]);
162
    sb_NICK_7->setValue(motorData.mixer_nick[6]);
162
    sb_NICK_7->setValue(motorData.mixer_nick[6]);
163
    sb_NICK_8->setValue(motorData.mixer_nick[7]);
163
    sb_NICK_8->setValue(motorData.mixer_nick[7]);
164
    sb_NICK_9->setValue(motorData.mixer_nick[8]);
164
    sb_NICK_9->setValue(motorData.mixer_nick[8]);
165
    sb_NICK_10->setValue(motorData.mixer_nick[9]);
165
    sb_NICK_10->setValue(motorData.mixer_nick[9]);
166
    sb_NICK_11->setValue(motorData.mixer_nick[10]);
166
    sb_NICK_11->setValue(motorData.mixer_nick[10]);
167
    sb_NICK_12->setValue(motorData.mixer_nick[11]);
167
    sb_NICK_12->setValue(motorData.mixer_nick[11]);
168
 
168
 
169
    sb_ROLL_1->setValue(motorData.mixer_roll[0]);
169
    sb_ROLL_1->setValue(motorData.mixer_roll[0]);
170
    sb_ROLL_2->setValue(motorData.mixer_roll[1]);
170
    sb_ROLL_2->setValue(motorData.mixer_roll[1]);
171
    sb_ROLL_3->setValue(motorData.mixer_roll[2]);
171
    sb_ROLL_3->setValue(motorData.mixer_roll[2]);
172
    sb_ROLL_4->setValue(motorData.mixer_roll[3]);
172
    sb_ROLL_4->setValue(motorData.mixer_roll[3]);
173
    sb_ROLL_5->setValue(motorData.mixer_roll[4]);
173
    sb_ROLL_5->setValue(motorData.mixer_roll[4]);
174
    sb_ROLL_6->setValue(motorData.mixer_roll[5]);
174
    sb_ROLL_6->setValue(motorData.mixer_roll[5]);
175
    sb_ROLL_7->setValue(motorData.mixer_roll[6]);
175
    sb_ROLL_7->setValue(motorData.mixer_roll[6]);
176
    sb_ROLL_8->setValue(motorData.mixer_roll[7]);
176
    sb_ROLL_8->setValue(motorData.mixer_roll[7]);
177
    sb_ROLL_9->setValue(motorData.mixer_roll[8]);
177
    sb_ROLL_9->setValue(motorData.mixer_roll[8]);
178
    sb_ROLL_10->setValue(motorData.mixer_roll[9]);
178
    sb_ROLL_10->setValue(motorData.mixer_roll[9]);
179
    sb_ROLL_11->setValue(motorData.mixer_roll[10]);
179
    sb_ROLL_11->setValue(motorData.mixer_roll[10]);
180
    sb_ROLL_12->setValue(motorData.mixer_roll[11]);
180
    sb_ROLL_12->setValue(motorData.mixer_roll[11]);
181
 
181
 
182
    sb_GIER_1->setValue(motorData.mixer_yaw[0]);
182
    sb_GIER_1->setValue(motorData.mixer_yaw[0]);
183
    sb_GIER_2->setValue(motorData.mixer_yaw[1]);
183
    sb_GIER_2->setValue(motorData.mixer_yaw[1]);
184
    sb_GIER_3->setValue(motorData.mixer_yaw[2]);
184
    sb_GIER_3->setValue(motorData.mixer_yaw[2]);
185
    sb_GIER_4->setValue(motorData.mixer_yaw[3]);
185
    sb_GIER_4->setValue(motorData.mixer_yaw[3]);
186
    sb_GIER_5->setValue(motorData.mixer_yaw[4]);
186
    sb_GIER_5->setValue(motorData.mixer_yaw[4]);
187
    sb_GIER_6->setValue(motorData.mixer_yaw[5]);
187
    sb_GIER_6->setValue(motorData.mixer_yaw[5]);
188
    sb_GIER_7->setValue(motorData.mixer_yaw[6]);
188
    sb_GIER_7->setValue(motorData.mixer_yaw[6]);
189
    sb_GIER_8->setValue(motorData.mixer_yaw[7]);
189
    sb_GIER_8->setValue(motorData.mixer_yaw[7]);
190
    sb_GIER_9->setValue(motorData.mixer_yaw[8]);
190
    sb_GIER_9->setValue(motorData.mixer_yaw[8]);
191
    sb_GIER_10->setValue(motorData.mixer_yaw[9]);
191
    sb_GIER_10->setValue(motorData.mixer_yaw[9]);
192
    sb_GIER_11->setValue(motorData.mixer_yaw[10]);
192
    sb_GIER_11->setValue(motorData.mixer_yaw[10]);
193
    sb_GIER_12->setValue(motorData.mixer_yaw[11]);
193
    sb_GIER_12->setValue(motorData.mixer_yaw[11]);
194
}
194
}
195
 
195
 
196
// Prüfen auf vollstaändigkeit
196
// Prüfen auf vollstaändigkeit
197
void dlg_MotorMixer::slot_CheckValue(int Wert)
197
void dlg_MotorMixer::slot_CheckValue(int Wert)
198
{
198
{
199
    Wert = Wert;
199
    Wert = Wert;
200
 
200
 
201
    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() +
202
               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() +
203
               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() +
204
               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();
205
 
205
 
206
    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() +
207
               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() +
208
               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() +
209
               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();
210
 
210
 
211
    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() +
212
               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() +
213
               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() +
214
               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();
215
 
215
 
216
    if (NICK == 0)
216
    if (NICK == 0)
217
    {
217
    {
218
        lb_NICK->setEnabled(true);
218
        lb_NICK->setEnabled(true);
219
    }
219
    }
220
    else
220
    else
221
    {
221
    {
222
        lb_NICK->setEnabled(false);
222
        lb_NICK->setEnabled(false);
223
    }
223
    }
224
 
224
 
225
    if (ROLL == 0)
225
    if (ROLL == 0)
226
    {
226
    {
227
        lb_ROLL->setEnabled(true);
227
        lb_ROLL->setEnabled(true);
228
    }
228
    }
229
    else
229
    else
230
    {
230
    {
231
        lb_ROLL->setEnabled(false);
231
        lb_ROLL->setEnabled(false);
232
    }
232
    }
233
 
233
 
234
    if (GIER == 0)
234
    if (GIER == 0)
235
    {
235
    {
236
        lb_GIER->setEnabled(true);
236
        lb_GIER->setEnabled(true);
237
    }
237
    }
238
    else
238
    else
239
    {
239
    {
240
        lb_GIER->setEnabled(false);
240
        lb_GIER->setEnabled(false);
241
    }
241
    }
242
}
242
}
243
 
243
 
244
//FIXME: put this in libMK/Handler.cpp
244
//FIXME: put this in libMK/Handler.cpp
245
/*
245
/*
246
int dlg_MotorMixer::get_MotorConfig()
246
int dlg_MotorMixer::get_MotorConfig()
247
{
247
{
248
    get_MotorData();
248
    get_MotorData();
249
 
249
 
250
    TX_Data[0] = VERSION_MIXER;
250
    TX_Data[0] = VERSION_MIXER;
251
 
251
 
252
    char *Name = MixerName.toLatin1().data();
252
    char *Name = MixerName.toLatin1().data();
253
 
253
 
254
    int a;
254
    int a;
255
 
255
 
256
    for (a = 0; a < MixerName.length(); a++)
256
    for (a = 0; a < MixerName.length(); a++)
257
    {
257
    {
258
        TX_Data[1+a] = Name[a];
258
        TX_Data[1+a] = Name[a];
259
    }
259
    }
260
 
260
 
261
    while(a < 12)
261
    while(a < 12)
262
    {
262
    {
263
        TX_Data[1+a] = 0;
263
        TX_Data[1+a] = 0;
264
        a++;
264
        a++;
265
    }
265
    }
266
 
266
 
267
    int Pos = 13;
267
    int Pos = 13;
268
 
268
 
269
    for (int z = 0; z < 16; z++)
269
    for (int z = 0; z < 16; z++)
270
    {
270
    {
271
        for (int y = 0; y < 4; y++)
271
        for (int y = 0; y < 4; y++)
272
        {
272
        {
273
            TX_Data[Pos] = Parser::charToData(Motor[z][y]);
273
            TX_Data[Pos] = Parser::charToData(Motor[z][y]);
274
            Pos++;
274
            Pos++;
275
        }
275
        }
276
    }
276
    }
277
 
277
 
278
    return Pos - 1;
278
    return Pos - 1;
279
}
279
}
280
*/
280
*/
281
 
281
 
282
// read motor values
282
// read motor values
283
void dlg_MotorMixer::slot_pb_READ()
283
void dlg_MotorMixer::slot_pb_READ()
284
{
284
{
285
    //send command to get mixer values
285
    //send command to get mixer values
286
    handler->read_motor_mixer();
286
    handler->read_motor_mixer();
287
}
287
}
288
 
288
 
289
//write motor values
289
//write motor values
290
//FIXME: put this in libMK/Handler.cpp
290
//FIXME: put this in libMK/Handler.cpp
291
void dlg_MotorMixer::slot_pb_WRITE()
291
void dlg_MotorMixer::slot_pb_WRITE()
292
{
292
{
293
    char tx_data[150];
293
    char tx_data[150];
294
    int length = handler->get_motor_config(tx_data);
294
    int length = handler->get_motor_config(tx_data);
295
    handler->write_motor_mixer(tx_data, length);
295
    handler->write_motor_mixer(tx_data, length);
296
}
296
}
297
 
297
 
298
void dlg_MotorMixer::slot_pb_LOAD()
298
void dlg_MotorMixer::slot_pb_LOAD()
299
{
299
{
300
    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 (*)"));
301
 
301
 
302
    if (!Filename.isEmpty())
302
    if (!Filename.isEmpty())
303
    {
303
    {
304
        QSettings Setting(Filename, QSettings::IniFormat);
304
        QSettings Setting(Filename, QSettings::IniFormat);
305
 
305
 
306
        Setting.beginGroup("Info");
306
        Setting.beginGroup("Info");
307
            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();
308
            data->motor.mixer_version = Setting.value("Version", 0).toInt();
308
            data->motor.mixer_version = Setting.value("Version", 0).toInt();
309
        Setting.endGroup();
309
        Setting.endGroup();
310
 
310
 
311
        Setting.beginGroup("Gas");
311
        Setting.beginGroup("Gas");
312
            for (int z = 0; z < MAXMOTOR; z++)
312
            for (int z = 0; z < MAXMOTOR; z++)
313
            {
313
            {
314
                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();
315
            }
315
            }
316
        Setting.endGroup();
316
        Setting.endGroup();
317
 
317
 
318
        Setting.beginGroup("Nick");
318
        Setting.beginGroup("Nick");
319
            for (int z = 0; z < MAXMOTOR; z++)
319
            for (int z = 0; z < MAXMOTOR; z++)
320
            {
320
            {
321
                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();
322
            }
322
            }
323
        Setting.endGroup();
323
        Setting.endGroup();
324
 
324
 
325
        Setting.beginGroup("Roll");
325
        Setting.beginGroup("Roll");
326
            for (int z = 0; z < MAXMOTOR; z++)
326
            for (int z = 0; z < MAXMOTOR; z++)
327
            {
327
            {
328
                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();
329
            }
329
            }
330
        Setting.endGroup();
330
        Setting.endGroup();
331
 
331
 
332
        Setting.beginGroup("Yaw");
332
        Setting.beginGroup("Yaw");
333
            for (int z = 0; z < MAXMOTOR; z++)
333
            for (int z = 0; z < MAXMOTOR; z++)
334
            {
334
            {
335
                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();
336
            }
336
            }
337
        Setting.endGroup();
337
        Setting.endGroup();
338
 
338
 
339
        if (data->motor.mixer_version == VERSION_MIXER)
339
        if (data->motor.mixer_version == VERSION_MIXER)
340
        {
340
        {
341
            set_MotorData();
341
            set_MotorData();
342
        }
342
        }
343
    }
343
    }
344
}
344
}
345
 
345
 
346
void dlg_MotorMixer::slot_pb_SAVE()
346
void dlg_MotorMixer::slot_pb_SAVE()
347
{
347
{
348
    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 (*)"));
349
 
349
 
350
    if (!Filename.isEmpty())
350
    if (!Filename.isEmpty())
351
    {
351
    {
352
        if (!(Filename.endsWith(".mkm", Qt::CaseInsensitive)))
352
        if (!(Filename.endsWith(".mkm", Qt::CaseInsensitive)))
353
        {
353
        {
354
            Filename = Filename + QString(".mkm");
354
            Filename = Filename + QString(".mkm");
355
        }
355
        }
356
 
356
 
357
        get_MotorData();
357
        get_MotorData();
358
 
358
 
359
        QSettings Setting(Filename, QSettings::IniFormat);
359
        QSettings Setting(Filename, QSettings::IniFormat);
360
 
360
 
361
        Setting.beginGroup("Info");
361
        Setting.beginGroup("Info");
362
            Setting.setValue("Name",         data->motor.mixer_name);
362
            Setting.setValue("Name",         data->motor.mixer_name);
363
            Setting.setValue("Version",      data->motor.mixer_version);
363
            Setting.setValue("Version",      data->motor.mixer_version);
364
        Setting.endGroup();
364
        Setting.endGroup();
365
 
365
 
366
        Setting.beginGroup("Gas");
366
        Setting.beginGroup("Gas");
367
            for (int z = 0; z < MAXMOTOR; z++)
367
            for (int z = 0; z < MAXMOTOR; z++)
368
            {
368
            {
369
                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]);
370
            }
370
            }
371
        Setting.endGroup();
371
        Setting.endGroup();
372
 
372
 
373
        Setting.beginGroup("Nick");
373
        Setting.beginGroup("Nick");
374
            for (int z = 0; z < MAXMOTOR; z++)
374
            for (int z = 0; z < MAXMOTOR; z++)
375
            {
375
            {
376
                 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]);
377
            }
377
            }
378
        Setting.endGroup();
378
        Setting.endGroup();
379
 
379
 
380
        Setting.beginGroup("Roll");
380
        Setting.beginGroup("Roll");
381
            for (int z = 0; z < MAXMOTOR; z++)
381
            for (int z = 0; z < MAXMOTOR; z++)
382
            {
382
            {
383
                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]);
384
            }
384
            }
385
        Setting.endGroup();
385
        Setting.endGroup();
386
 
386
 
387
        Setting.beginGroup("Yaw");
387
        Setting.beginGroup("Yaw");
388
            for (int z = 0; z < MAXMOTOR; z++)
388
            for (int z = 0; z < MAXMOTOR; z++)
389
            {
389
            {
390
                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]);
391
            }
391
            }
392
        Setting.endGroup();
392
        Setting.endGroup();
393
    }
393
    }
394
}
394
}
395
 
395