Subversion Repositories Projects

Rev

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

Rev Author Line No. Line
2136 - 1
/*****************************************************************************
2
 *   Copyright (C) 2008 Thomas Kaiser, thomas@ft-fanpage.de                  *
3
 *   Copyright (C) 2009 Peter "woggle" Mack, mac@denich.net                  *
4
 *   Copyright (C) 2011 Christian "Cebra" Brandtner, brandtner@brandtner.net *
5
 *   Copyright (C) 2011 Harald Bongartz                                      *
6
 *                                                                           *
7
 *   This program is free software; you can redistribute it and/or modify    *
8
 *   it under the terms of the GNU General Public License as published by    *
9
 *   the Free Software Foundation; either version 2 of the License.          *
10
 *                                                                           *
11
 *   This program is distributed in the hope that it will be useful,         *
12
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
13
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
14
 *   GNU General Public License for more details.                            *
15
 *                                                                           *
16
 *   You should have received a copy of the GNU General Public License       *
17
 *   along with this program; if not, write to the                           *
18
 *   Free Software Foundation, Inc.,                                         *
19
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.               *
20
 *                                                                           *
21
 *                                                                           *
22
 *   Credits to:                                                             *
23
 *   Holger Buss & Ingo Busker from mikrokopter.de for the MK project + SVN  *
24
 *                          http://www.mikrokopter.de                        *
25
 *   Gregor "killagreg" Stobrawa for his version of the MK code              *
26
 *   Thomas Kaiser "thkais" for the original project. See                    *
27
 *                          http://www.ft-fanpage.de/mikrokopter/            *
28
 *                          http://forum.mikrokopter.de/topic-4061-1.html    *
29
 *   Claas Anders "CaScAdE" Rathje for providing the font and his C-OSD code *
30
 *                          http://www.mylifesucks.de/oss/c-osd/             *
31
 *   Harald Bongartz "HaraldB" for providing his Ideas and Code for usibility*
32
 *****************************************************************************/
33
 
34
//############################################################################
35
//# HISTORY  paramset.c
36
//#
37
//# 16.07.2015 Cebra (PKT385a)
38
//# - add: unsigned char SingleWpControlChannel; (FC2.11a)
39
//#        unsigned char MenuKeyChannel; (FC2.11a)
40
//# - add: paramset_106 (FC2.11a)
41
//#
42
//# 09.04.2015 Cebra (PKT384a)
43
//# - add: unsigned char ServoFS_Pos[5] (FC 2.09i)
44
//# - add: paramset_105 (FC2.09j)
45
//#
46
//# 19.03.2015 Cebra (PKT383a)
47
//# - add: param_LandingPulse (FC 2.09d)
48
//#
49
//# 26.01.2015 Cebra
50
//# - add: Function transform_ComingHomeOrientation
51
//#        Ändert die Bits 4+5 für ServoCompInvert
52
//#        in Konfigurationstabelle der paramSubID:  param_ComingHomeOrientation neu
53
//#
54
//# 26.09.2014 Cebra
55
//# - add: Parameterset Rev. 103  (FC 2.07f)
56
//# - chg: param_Hoehe_GPS_Z zu param_Hoehe_Verstaerkung im Paramset 103
57
//#
58
//# 14.05.2014 OG
59
//# - chg: include "mkbase.h" geaendert auf "../mk/mkbase.h"
60
//#
61
//# 10.05.2014 OG
62
//# - add: transform_CompassOffset_DisableDeclCalc() - transformiert true/false
63
//#        in das Byte von param_CompassOffset
64
//#
65
//# 09.05.2014 OG
66
//# - chg: paramSet() - angepasst auf Transform-Funktionen
67
//# - chg: paramGet() - angepasst auf Transform-Funktionen
68
//# - add: eine neue Transformations-Zwischenschicht implementiert - abgebildet
69
//#        ueber die neue Tabelle paramTransform.
70
//#        Hier koennen Transform-Funktionen hinterlegt werden die einen
71
//#        ubyte8 Wert veraendern.
72
//#        Die Transformation wird von paramSet()/paramGet() aufgerufen.
73
//#
74
//# 17.04.2014 OG
75
//# - FIX: _paramset_getsubitemid(): Pruefung von_Revision/bis_Revision
76
//#        korrigiert - fuehrte vorher ggf. zu falschen Anzeigen von SubItems!
77
//# - chg: param_BitConfig_MotorOffLed1 auf bis_Revision 101 begrenzt
78
//# - chg: param_BitConfig_MotorOffLed2 auf bis_Revision 101 begrenzt
79
//#
80
//# 09.04.2014 OG
81
//# - chg: Rev. 101 auf param_DUMMY umgestellt um Platz zu sparen
82
//#
83
//# 08.04.2014 OG
84
//# - add: Parameterset Rev. 102  (FC 2.05g)
85
//# - fix: _paramset_getsubitemid() - Vergleich bzgl. von/bis_Revision umgedreht
86
//#         und equal zugefuegt
87
//#
88
//# 06.04.2014 OG
89
//# - add: Parameterset Rev. 101  (FC 2.05f)
90
//#        -> param_Servo3OnValue, param_Servo3OffValue
91
//#        -> param_Servo4OnValue, param_Servo4OffValue
92
//#
93
//# 28.03.2014 OG
94
//# - add: Parameterset Rev. 100 (FC 2.05e)
95
//#        (param_AutoPhotoDistance, param_AutoPhotoAtitudes, param_SingleWpSpeed)
96
//#
97
//# 26.03.2014 OG
98
//# - add: param_CompassOffset_DisableDeclCalc (Sub-Item)
99
//#
100
//# 24.03.2014 OG
101
//# - chg: _paramset_getsubitemid() erweitert Unterstuetzung von/bis FC-Revisionen
102
//# - add: paramSubItem_t mit Unterstuetzung fuer von/bis FC-Revisionen
103
//#
104
//# 27.02.2014 OG
105
//# - chg: die Revisions-Tabellen 90 bis 94 mittels param_DUMMY gekuerzt
106
//#        -> keine Parameter-Bearbeitung bei denen moeglich
107
//# - add: vollstaendige Unterstuetzung von paramSubID's via paramGet(), paramSet()
108
//#
109
//# 26.02.2014 OG
110
//# - add: paramSubItem[] - Zugriffstabelle auf Bit- und Bytefelder innerhalb
111
//#        einer paramID
112
//# - chg: bei den paramset_nnn[] Tabellen 'const' ergaenzt
113
//# - chg: paramsetTest() umbenannt zu paramsetDEBUG()
114
//#
115
//# 19.02.2014 OG
116
//# - fix: paramsetInit() Parameter pData wurde nicht konsequent verwendet
117
//#
118
//# 14.02.2014 OG
119
//# - add: diverse Zugriffsfunktionen fuer paramID's und paramSet's
120
//# - add: Rev-Tabellen von FC v0.88e bis FC v2.03d
121
//#
122
//# 05.02.2014 OG - NEU
123
//############################################################################
124
 
125
 
126
//############################################################################
127
//# INHALT
128
//#
129
//# 1a. Konfigurationtabellen fuer verschiedene FC-Revisionen
130
//# 1b. Zuweisungstabelle: Revision -> paramset_xxx
131
//# 2.  Konfigurationstabelle der paramSubID's (Bit- und Bytefelder)
132
//# 3a. interne Zugriffsfunktionen
133
//# 3b. oeffentliche Zugriffsfunktionen fuer paramID / paramSubID  Elemente
134
//# 3c. oeffentliche Zugriffsfunktionen fuer das gesamte Paramset (Int usw.)
135
//# x.  TEST / DEBUG
136
//############################################################################
137
 
138
 
139
#include "../cpu.h"
140
#include <avr/io.h>
141
#include <inttypes.h>
142
#include <stdlib.h>
143
#include <avr/pgmspace.h>
144
#include <avr/wdt.h>
145
#include <util/delay.h>
146
#include <avr/eeprom.h>
147
#include <util/delay.h>
148
#include <string.h>
149
#include <util/atomic.h>
150
 
151
#include "../main.h"
152
#include "../lipo/lipo.h"
153
#include "../lcd/lcd.h"
154
#include "../uart/usart.h"
155
 
156
#include "../uart/uart1.h"
157
#include "../mk-data-structs.h"
158
#include "../timer/timer.h"
159
#include "../eeprom/eeprom.h"
160
#include "../messages.h"
161
#include "../utils/scrollbox.h"
162
#include "../pkt/pkt.h"
163
#include "../mk/mkbase.h"
164
#include "paramset.h"
165
 
166
 
167
 
168
//---------------------------
169
// fuer transform_...
170
//---------------------------
171
#define GETVALUE      1   // Wert setzen
172
#define SETVALUE      2   // Wert lesen
173
 
174
 
175
 
176
paramRevItem_t  *paramsetRevTable;      // Zeiger auf aktive Revision-Table oder 0 wenn nicht gesetzt   -> wird gesetzt druch paramsetInit() / paramset.c
177
unsigned char   *mkparamset;            // nur temp. gueltig solange der PKT-RX-Buffer (pRxData) noch nicht wieder ueberschrieben -> wird gesetzt druch paramsetInit() / paramset.c
178
 
179
 
180
 
181
//#############################################################################################
182
//# 1a. Konfigurationtabellen fuer verschiedene FC-Revisionen
183
//#############################################################################################
184
 
185
 
186
//---------------------------------------------------------------------------------------
187
// die nachfolgenden Tabellen entsprechen der Struktur von paramRevItem_t aus paramset.h
188
//---------------------------------------------------------------------------------------
189
 
190
 
191
//-----------------------------------------------
192
// FC-Parameter Revision: 90
193
//
194
// ab FC-Version: ab ??? bis ???
195
// gefunden in  : 0.88e
196
//
197
// Tabelle ist definiert in der
198
// nachfolgenden paramset_091
199
//
200
// STRUKTUR-DIFF zu 0:
201
//
202
// DEFINE-DIFF zu 0:
203
//-----------------------------------------------
204
 
205
 
206
 
207
//-----------------------------------------------
208
// FC-Parameter Revision: 91
209
//
210
// ab FC-Version: ab ??? bis ???
211
// gefunden in  : 0.88m, 0.88n
212
//
213
// STRUKTUR-DIFF zu 090:
214
// - keine Aenderung der internen Datenstruktur erkennbar!
215
//
216
// DEFINE-DIFF zu 090:
217
// - add: #define PID_SPEAK_HOTT_CFG
218
// - add: #define CFG3_MOTOR_SWITCH_MODE
219
// - add: #define CFG3_NO_GPSFIX_NO_START
220
//-----------------------------------------------
221
//
222
//
223
//    + paramID (paramRevItem_t -> paramID)
224
//    |
225
//    |                                + size in Bytes (paramRevItem_t -> size)
226
//    |                                |
227
//    |                                |
228
//    |                                |
229
paramRevItem_t const paramset_091[] PROGMEM =
230
{
231
    { param_DUMMY                   , 111 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
232
    { param_Name                    ,  12 },    //  char Name[12];
233
    { param_DUMMY                   ,   1 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
234
 
235
    { param_EOF                     ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
236
 
237
};  // end: paramset_091[]
238
 
239
 
240
 
241
//############################################################################################################################################################
242
 
243
 
244
 
245
//-----------------------------------------------
246
// FC-Parameter Revision: 92
247
//
248
// ab FC-Version: ab ??? bis ???
249
// gefunden in  : 0.90d
250
//
251
// Tabelle ist definiert in der
252
// nachfolgenden paramset_093
253
//
254
// STRUKTUR-DIFF zu 091:
255
// -add: param_NaviOut1Parameter
256
//#
257
// DEFINE-DIFF zu 091:
258
// -add: #define CFG3_USE_NC_FOR_OUT1     0x20
259
// -add: #define CFG3_SPEAK_ALL
260
// -add: #define SERVO_NICK_INV 0x01
261
// -add: #define SERVO_ROLL_INV 0x02
262
// -add: #define SERVO_RELATIVE 0x04
263
//-----------------------------------------------
264
 
265
 
266
 
267
//-----------------------------------------------
268
// FC-Parameter Revision: 93
269
//
270
// ab FC-Version: ab ??? bis ???
271
// gefunden in  : 0.90e, 0.90g, 0.90j
272
//
273
// STRUKTUR-DIFF zu 092:
274
// - keine Aenderung der internen Datenstruktur erkennbar!
275
//
276
// DEFINE-DIFF zu 092:
277
// - keine Aenderung erkennbar!
278
//-----------------------------------------------
279
paramRevItem_t const paramset_093[] PROGMEM =
280
{
281
    { param_DUMMY                   , 112 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
282
    { param_Name                    ,  12 },    //  char Name[12];
283
    { param_DUMMY                   ,   1 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
284
 
285
    { param_EOF                     ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
286
 
287
};  // end: paramset_093[]
288
 
289
 
290
 
291
//-----------------------------------------------
292
// FC-Parameter Revision: 94
293
//
294
// ab FC-Version: ab ??? bis ???
295
// gefunden in  : 0.91a
296
//
297
// STRUKTUR-DIFF zu 093:
298
// - add: param_StartLandChannel
299
// - add: param_LandingSpeed
300
//
301
// DEFINE-DIFF zu 093:
302
// etwas undurchsichtig...
303
// - add: #define EE_DUMMY
304
// - add: #define PID_HARDWARE_VERSION
305
//-----------------------------------------------
306
paramRevItem_t const paramset_094[] PROGMEM =
307
{
308
    { param_DUMMY                   , 114 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
309
    { param_Name                    ,  12 },    //  char Name[12];
310
    { param_DUMMY                   ,   1 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
311
 
312
    { param_EOF                     ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
313
 
314
};  // end: paramset_094[]
315
 
316
 
317
 
318
 
319
 
320
//-----------------------------------------------
321
// FC-Parameter Revision: 95
322
//
323
// ab FC-Version: ab ??? bis ???
324
// gefunden in  : 0.90L, 2.00a, , 2.00e
325
//
326
// STRUKTUR-DIFF zu 094:
327
// - rename: param_MaxHoehe             -> param_HoeheChannel
328
// - rename: param_NaviGpsModeControl   -> param_NaviGpsModeChannel
329
// - rename: param_NaviGpsACC           -> param_NaviGpsA
330
// - rename: param_CareFreeModeControl  -> param_CareFreeChannel
331
//
332
// DEFINE-DIFF zu 094:
333
// - keine Aenderung
334
//-----------------------------------------------
335
paramRevItem_t const paramset_095[] PROGMEM =
336
{
337
    { param_Revision                ,   1 },    //  unsigned char Revision;
338
    { param_Kanalbelegung           ,  12 },    //  unsigned char Kanalbelegung[12];      // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
339
    { param_GlobalConfig            ,   1 },    //  unsigned char GlobalConfig;           // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
340
    { param_Hoehe_MinGas            ,   1 },    //  unsigned char Hoehe_MinGas;           // Wert : 0-100
341
    { param_Luftdruck_D             ,   1 },    //  unsigned char Luftdruck_D;            // Wert : 0-250
342
    { param_HoeheChannel            ,   1 },    //  unsigned char HoeheChannel;           // Wert : 0-32
343
    { param_Hoehe_P                 ,   1 },    //  unsigned char Hoehe_P;                // Wert : 0-32
344
    { param_Hoehe_Verstaerkung      ,   1 },    //  unsigned char Hoehe_Verstaerkung;     // Wert : 0-50
345
    { param_Hoehe_ACC_Wirkung       ,   1 },    //  unsigned char Hoehe_ACC_Wirkung;      // Wert : 0-250
346
    { param_Hoehe_HoverBand         ,   1 },    //  unsigned char Hoehe_HoverBand;        // Wert : 0-250
347
    { param_Hoehe_GPS_Z             ,   1 },    //  unsigned char Hoehe_GPS_Z;            // Wert : 0-250
348
    { param_Hoehe_StickNeutralPoint ,   1 },    //  unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
349
    { param_Stick_P                 ,   1 },    //  unsigned char Stick_P;                // Wert : 1-6
350
    { param_Stick_D                 ,   1 },    //  unsigned char Stick_D;                // Wert : 0-64
351
    { param_StickGier_P             ,   1 },    //  unsigned char StickGier_P;            // Wert : 1-20
352
    { param_Gas_Min                 ,   1 },    //  unsigned char Gas_Min;                // Wert : 0-32
353
    { param_Gas_Max                 ,   1 },    //  unsigned char Gas_Max;                // Wert : 33-250
354
    { param_GyroAccFaktor           ,   1 },    //  unsigned char GyroAccFaktor;          // Wert : 1-64
355
    { param_KompassWirkung          ,   1 },    //  unsigned char KompassWirkung;         // Wert : 0-32
356
    { param_Gyro_P                  ,   1 },    //  unsigned char Gyro_P;                 // Wert : 10-250
357
    { param_Gyro_I                  ,   1 },    //  unsigned char Gyro_I;                 // Wert : 0-250
358
    { param_Gyro_D                  ,   1 },    //  unsigned char Gyro_D;                 // Wert : 0-250
359
    { param_Gyro_Gier_P             ,   1 },    //  unsigned char Gyro_Gier_P;            // Wert : 10-250
360
    { param_Gyro_Gier_I             ,   1 },    //  unsigned char Gyro_Gier_I;            // Wert : 0-250
361
    { param_Gyro_Stability          ,   1 },    //  unsigned char Gyro_Stability;         // Wert : 0-16
362
    { param_UnterspannungsWarnung   ,   1 },    //  unsigned char UnterspannungsWarnung;  // Wert : 0-250
363
    { param_NotGas                  ,   1 },    //  unsigned char NotGas;                 // Wert : 0-250     //Gaswert bei Empängsverlust
364
    { param_NotGasZeit              ,   1 },    //  unsigned char NotGasZeit;             // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
365
    { param_Receiver                ,   1 },    //  unsigned char Receiver;               // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
366
    { param_I_Faktor                ,   1 },    //  unsigned char I_Faktor;               // Wert : 0-250
367
    { param_UserParam1              ,   1 },    //  unsigned char UserParam1;             // Wert : 0-250
368
    { param_UserParam2              ,   1 },    //  unsigned char UserParam2;             // Wert : 0-250
369
    { param_UserParam3              ,   1 },    //  unsigned char UserParam3;             // Wert : 0-250
370
    { param_UserParam4              ,   1 },    //  unsigned char UserParam4;             // Wert : 0-250
371
    { param_ServoNickControl        ,   1 },    //  unsigned char ServoNickControl;       // Wert : 0-250     // Stellung des Servos
372
    { param_ServoNickComp           ,   1 },    //  unsigned char ServoNickComp;          // Wert : 0-250     // Einfluss Gyro/Servo
373
    { param_ServoNickMin            ,   1 },    //  unsigned char ServoNickMin;           // Wert : 0-250     // Anschlag
374
    { param_ServoNickMax            ,   1 },    //  unsigned char ServoNickMax;           // Wert : 0-250     // Anschlag
375
    { param_ServoRollControl        ,   1 },    //  unsigned char ServoRollControl;       // Wert : 0-250     // Stellung des Servos
376
    { param_ServoRollComp           ,   1 },    //  unsigned char ServoRollComp;          // Wert : 0-250
377
    { param_ServoRollMin            ,   1 },    //  unsigned char ServoRollMin;           // Wert : 0-250
378
    { param_ServoRollMax            ,   1 },    //  unsigned char ServoRollMax;           // Wert : 0-250
379
    { param_ServoNickRefresh        ,   1 },    //  unsigned char ServoNickRefresh;       // Speed of the Servo
380
    { param_ServoManualControlSpeed ,   1 },    //  unsigned char ServoManualControlSpeed;//
381
    { param_CamOrientation          ,   1 },    //  unsigned char CamOrientation;         //
382
    { param_Servo3                  ,   1 },    //  unsigned char Servo3;                 // Value or mapping of the Servo Output
383
    { param_Servo4                  ,   1 },    //  unsigned char Servo4;                    // Value or mapping of the Servo Output
384
    { param_Servo5                  ,   1 },    //  unsigned char Servo5;                    // Value or mapping of the Servo Output
385
    { param_LoopGasLimit            ,   1 },    //  unsigned char LoopGasLimit;           // Wert: 0-250  max. Gas während Looping
386
    { param_LoopThreshold           ,   1 },    //  unsigned char LoopThreshold;          // Wert: 0-250  Schwelle für Stickausschlag
387
    { param_LoopHysterese           ,   1 },    //  unsigned char LoopHysterese;          // Wert: 0-250  Hysterese für Stickausschlag
388
    { param_AchsKopplung1           ,   1 },    //  unsigned char AchsKopplung1;          // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
389
    { param_AchsKopplung2           ,   1 },    //  unsigned char AchsKopplung2;          // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
390
    { param_CouplingYawCorrection   ,   1 },    //  unsigned char CouplingYawCorrection;  // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
391
    { param_WinkelUmschlagNick      ,   1 },    //  unsigned char WinkelUmschlagNick;     // Wert: 0-250  180°-Punkt
392
    { param_WinkelUmschlagRoll      ,   1 },    //  unsigned char WinkelUmschlagRoll;     // Wert: 0-250  180°-Punkt
393
    { param_GyroAccAbgleich         ,   1 },    //  unsigned char GyroAccAbgleich;        // 1/k  (Koppel_ACC_Wirkung)
394
    { param_Driftkomp               ,   1 },    //  unsigned char Driftkomp;
395
    { param_DynamicStability        ,   1 },    //  unsigned char DynamicStability;
396
    { param_UserParam5              ,   1 },    //  unsigned char UserParam5;             // Wert : 0-250
397
    { param_UserParam6              ,   1 },    //  unsigned char UserParam6;             // Wert : 0-250
398
    { param_UserParam7              ,   1 },    //  unsigned char UserParam7;             // Wert : 0-250
399
    { param_UserParam8              ,   1 },    //  unsigned char UserParam8;             // Wert : 0-250
400
    { param_J16Bitmask              ,   1 },    //  unsigned char J16Bitmask;             // for the J16 Output
401
    { param_J16Timing               ,   1 },    //  unsigned char J16Timing;              // for the J16 Output
402
    { param_J17Bitmask              ,   1 },    //  unsigned char J17Bitmask;             // for the J17 Output
403
    { param_J17Timing               ,   1 },    //  unsigned char J17Timing;              // for the J17 Output
404
    { param_WARN_J16_Bitmask        ,   1 },    //  unsigned char WARN_J16_Bitmask;       // for the J16 Output
405
    { param_WARN_J17_Bitmask        ,   1 },    //  unsigned char WARN_J17_Bitmask;       // for the J17 Output
406
    { param_NaviOut1Parameter       ,   1 },    //  unsigned char NaviOut1Parameter;      // for the J16 Output
407
    { param_NaviGpsModeChannel      ,   1 },    //  unsigned char NaviGpsModeChannel;     // Parameters for the Naviboard
408
    { param_NaviGpsGain             ,   1 },    //  unsigned char NaviGpsGain;
409
    { param_NaviGpsP                ,   1 },    //  unsigned char NaviGpsP;
410
    { param_NaviGpsI                ,   1 },    //  unsigned char NaviGpsI;
411
    { param_NaviGpsD                ,   1 },    //  unsigned char NaviGpsD;
412
    { param_NaviGpsPLimit           ,   1 },    //  unsigned char NaviGpsPLimit;
413
    { param_NaviGpsILimit           ,   1 },    //  unsigned char NaviGpsILimit;
414
    { param_NaviGpsDLimit           ,   1 },    //  unsigned char NaviGpsDLimit;
415
    { param_NaviGpsA                ,   1 },    //  unsigned char NaviGpsA;
416
    { param_NaviGpsMinSat           ,   1 },    //  unsigned char NaviGpsMinSat;
417
    { param_NaviStickThreshold      ,   1 },    //  unsigned char NaviStickThreshold;
418
    { param_NaviWindCorrection      ,   1 },    //  unsigned char NaviWindCorrection;
419
    { param_NaviAccCompensation     ,   1 },    //  unsigned char NaviAccCompensation;    // New since 0.86 -> was: SpeedCompensation
420
    { param_NaviOperatingRadius     ,   1 },    //  unsigned char NaviOperatingRadius;
421
    { param_NaviAngleLimitation     ,   1 },    //  unsigned char NaviAngleLimitation;
422
    { param_NaviPH_LoginTime        ,   1 },    //  unsigned char NaviPH_LoginTime;
423
    { param_ExternalControl         ,   1 },    //  unsigned char ExternalControl;        // for serial Control
424
    { param_OrientationAngle        ,   1 },    //  unsigned char OrientationAngle;       // Where is the front-direction?
425
    { param_CareFreeChannel         ,   1 },    //  unsigned char CareFreeChannel;        // switch for CareFree
426
    { param_MotorSafetySwitch       ,   1 },    //  unsigned char MotorSafetySwitch;
427
    { param_MotorSmooth             ,   1 },    //  unsigned char MotorSmooth;
428
    { param_ComingHomeAltitude      ,   1 },    //  unsigned char ComingHomeAltitude;
429
    { param_FailSafeTime            ,   1 },    //  unsigned char FailSafeTime;
430
    { param_MaxAltitude             ,   1 },    //  unsigned char MaxAltitude;
431
    { param_FailsafeChannel         ,   1 },    //  unsigned char FailsafeChannel;        // if the value of this channel is > 100, the MK reports "RC-Lost"
432
    { param_ServoFilterNick         ,   1 },    //  unsigned char ServoFilterNick;
433
    { param_ServoFilterRoll         ,   1 },    //  unsigned char ServoFilterRoll;
434
    { param_StartLandChannel        ,   1 },    //  unsigned char StartLandChannel;
435
    { param_LandingSpeed            ,   1 },    //  unsigned char LandingSpeed;
436
    { param_BitConfig               ,   1 },    //  unsigned char BitConfig;              // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
437
    { param_ServoCompInvert         ,   1 },    //  unsigned char ServoCompInvert;        // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
438
    { param_ExtraConfig             ,   1 },    //  unsigned char ExtraConfig;            // bitcodiert
439
    { param_GlobalConfig3           ,   1 },    //  unsigned char GlobalConfig3;          // bitcodiert
440
    { param_Name                    ,  12 },    //  char Name[12];
441
    { param_crc                     ,   1 },    //  unsigned char crc;                    // must be the last byte!
442
 
443
    { param_EOF                     ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
444
 
445
};  // end: paramset_095[]
446
 
447
 
448
 
449
 
450
//-----------------------------------------------
451
// FC-Parameter Revision: 96
452
//
453
// ab FC-Version: ab ??? bis ???
454
// gefunden in: ???
455
//
456
// STRUKTUR-DIFF zu 095:
457
// - KEINE AENDERUNG der INTERNEN DATEN-STRUKTUR!
458
//
459
// DEFINE-DIFF zu 095:
460
//   GlobalConfig3
461
//   - add: #define CFG3_SERVO_NICK_COMP_OFF 0x80
462
//-----------------------------------------------
463
 
464
 
465
 
466
//-----------------------------------------------
467
// FC-Parameter Revision: 97
468
//
469
// ab FC-Version: ab ??? bis ???
470
// gefunden in: 2.02b
471
//
472
// STRUKTUR-DIFF zu 096:
473
// - add: param_CompassOffset
474
// - add: param_AutoLandingVoltage
475
//
476
// DEFINE-DIFF zu 096:
477
// - keine Aenderung
478
//-----------------------------------------------
479
paramRevItem_t const paramset_097[] PROGMEM =
480
{
481
    { param_Revision                ,   1 },    //  unsigned char Revision;
482
    { param_Kanalbelegung           ,  12 },    //  unsigned char Kanalbelegung[12];      // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
483
    { param_GlobalConfig            ,   1 },    //  unsigned char GlobalConfig;           // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
484
    { param_Hoehe_MinGas            ,   1 },    //  unsigned char Hoehe_MinGas;           // Wert : 0-100
485
    { param_Luftdruck_D             ,   1 },    //  unsigned char Luftdruck_D;            // Wert : 0-250
486
    { param_HoeheChannel            ,   1 },    //  unsigned char HoeheChannel;           // Wert : 0-32
487
    { param_Hoehe_P                 ,   1 },    //  unsigned char Hoehe_P;                // Wert : 0-32
488
    { param_Hoehe_Verstaerkung      ,   1 },    //  unsigned char Hoehe_Verstaerkung;     // Wert : 0-50
489
    { param_Hoehe_ACC_Wirkung       ,   1 },    //  unsigned char Hoehe_ACC_Wirkung;      // Wert : 0-250
490
    { param_Hoehe_HoverBand         ,   1 },    //  unsigned char Hoehe_HoverBand;        // Wert : 0-250
491
    { param_Hoehe_GPS_Z             ,   1 },    //  unsigned char Hoehe_GPS_Z;            // Wert : 0-250
492
    { param_Hoehe_StickNeutralPoint ,   1 },    //  unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
493
    { param_Stick_P                 ,   1 },    //  unsigned char Stick_P;                // Wert : 1-6
494
    { param_Stick_D                 ,   1 },    //  unsigned char Stick_D;                // Wert : 0-64
495
    { param_StickGier_P             ,   1 },    //  unsigned char StickGier_P;            // Wert : 1-20
496
    { param_Gas_Min                 ,   1 },    //  unsigned char Gas_Min;                // Wert : 0-32
497
    { param_Gas_Max                 ,   1 },    //  unsigned char Gas_Max;                // Wert : 33-250
498
    { param_GyroAccFaktor           ,   1 },    //  unsigned char GyroAccFaktor;          // Wert : 1-64
499
    { param_KompassWirkung          ,   1 },    //  unsigned char KompassWirkung;         // Wert : 0-32
500
    { param_Gyro_P                  ,   1 },    //  unsigned char Gyro_P;                 // Wert : 10-250
501
    { param_Gyro_I                  ,   1 },    //  unsigned char Gyro_I;                 // Wert : 0-250
502
    { param_Gyro_D                  ,   1 },    //  unsigned char Gyro_D;                 // Wert : 0-250
503
    { param_Gyro_Gier_P             ,   1 },    //  unsigned char Gyro_Gier_P;            // Wert : 10-250
504
    { param_Gyro_Gier_I             ,   1 },    //  unsigned char Gyro_Gier_I;            // Wert : 0-250
505
    { param_Gyro_Stability          ,   1 },    //  unsigned char Gyro_Stability;         // Wert : 0-16
506
    { param_UnterspannungsWarnung   ,   1 },    //  unsigned char UnterspannungsWarnung;  // Wert : 0-250
507
    { param_NotGas                  ,   1 },    //  unsigned char NotGas;                 // Wert : 0-250     //Gaswert bei Empängsverlust
508
    { param_NotGasZeit              ,   1 },    //  unsigned char NotGasZeit;             // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
509
    { param_Receiver                ,   1 },    //  unsigned char Receiver;               // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
510
    { param_I_Faktor                ,   1 },    //  unsigned char I_Faktor;               // Wert : 0-250
511
    { param_UserParam1              ,   1 },    //  unsigned char UserParam1;             // Wert : 0-250
512
    { param_UserParam2              ,   1 },    //  unsigned char UserParam2;             // Wert : 0-250
513
    { param_UserParam3              ,   1 },    //  unsigned char UserParam3;             // Wert : 0-250
514
    { param_UserParam4              ,   1 },    //  unsigned char UserParam4;             // Wert : 0-250
515
    { param_ServoNickControl        ,   1 },    //  unsigned char ServoNickControl;       // Wert : 0-250     // Stellung des Servos
516
    { param_ServoNickComp           ,   1 },    //  unsigned char ServoNickComp;          // Wert : 0-250     // Einfluss Gyro/Servo
517
    { param_ServoNickMin            ,   1 },    //  unsigned char ServoNickMin;           // Wert : 0-250     // Anschlag
518
    { param_ServoNickMax            ,   1 },    //  unsigned char ServoNickMax;           // Wert : 0-250     // Anschlag
519
    { param_ServoRollControl        ,   1 },    //  unsigned char ServoRollControl;       // Wert : 0-250     // Stellung des Servos
520
    { param_ServoRollComp           ,   1 },    //  unsigned char ServoRollComp;          // Wert : 0-250
521
    { param_ServoRollMin            ,   1 },    //  unsigned char ServoRollMin;           // Wert : 0-250
522
    { param_ServoRollMax            ,   1 },    //  unsigned char ServoRollMax;           // Wert : 0-250
523
    { param_ServoNickRefresh        ,   1 },    //  unsigned char ServoNickRefresh;       // Speed of the Servo
524
    { param_ServoManualControlSpeed ,   1 },    //  unsigned char ServoManualControlSpeed;//
525
    { param_CamOrientation          ,   1 },    //  unsigned char CamOrientation;         //
526
    { param_Servo3                  ,   1 },    //  unsigned char Servo3;                 // Value or mapping of the Servo Output
527
    { param_Servo4                  ,   1 },    //  unsigned char Servo4;                 // Value or mapping of the Servo Output
528
    { param_Servo5                  ,   1 },    //  unsigned char Servo5;                 // Value or mapping of the Servo Output
529
    { param_LoopGasLimit            ,   1 },    //  unsigned char LoopGasLimit;           // Wert: 0-250  max. Gas während Looping
530
    { param_LoopThreshold           ,   1 },    //  unsigned char LoopThreshold;          // Wert: 0-250  Schwelle für Stickausschlag
531
    { param_LoopHysterese           ,   1 },    //  unsigned char LoopHysterese;          // Wert: 0-250  Hysterese für Stickausschlag
532
    { param_AchsKopplung1           ,   1 },    //  unsigned char AchsKopplung1;          // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
533
    { param_AchsKopplung2           ,   1 },    //  unsigned char AchsKopplung2;          // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
534
    { param_CouplingYawCorrection   ,   1 },    //  unsigned char CouplingYawCorrection;  // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
535
    { param_WinkelUmschlagNick      ,   1 },    //  unsigned char WinkelUmschlagNick;     // Wert: 0-250  180°-Punkt
536
    { param_WinkelUmschlagRoll      ,   1 },    //  unsigned char WinkelUmschlagRoll;     // Wert: 0-250  180°-Punkt
537
    { param_GyroAccAbgleich         ,   1 },    //  unsigned char GyroAccAbgleich;        // 1/k  (Koppel_ACC_Wirkung)
538
    { param_Driftkomp               ,   1 },    //  unsigned char Driftkomp;
539
    { param_DynamicStability        ,   1 },    //  unsigned char DynamicStability;
540
    { param_UserParam5              ,   1 },    //  unsigned char UserParam5;             // Wert : 0-250
541
    { param_UserParam6              ,   1 },    //  unsigned char UserParam6;             // Wert : 0-250
542
    { param_UserParam7              ,   1 },    //  unsigned char UserParam7;             // Wert : 0-250
543
    { param_UserParam8              ,   1 },    //  unsigned char UserParam8;             // Wert : 0-250
544
    { param_J16Bitmask              ,   1 },    //  unsigned char J16Bitmask;             // for the J16 Output
545
    { param_J16Timing               ,   1 },    //  unsigned char J16Timing;              // for the J16 Output
546
    { param_J17Bitmask              ,   1 },    //  unsigned char J17Bitmask;             // for the J17 Output
547
    { param_J17Timing               ,   1 },    //  unsigned char J17Timing;              // for the J17 Output
548
    { param_WARN_J16_Bitmask        ,   1 },    //  unsigned char WARN_J16_Bitmask;       // for the J16 Output
549
    { param_WARN_J17_Bitmask        ,   1 },    //  unsigned char WARN_J17_Bitmask;       // for the J17 Output
550
    { param_NaviOut1Parameter       ,   1 },    //  unsigned char NaviOut1Parameter;      // for the J16 Output
551
    { param_NaviGpsModeChannel      ,   1 },    //  unsigned char NaviGpsModeChannel;     // Parameters for the Naviboard
552
    { param_NaviGpsGain             ,   1 },    //  unsigned char NaviGpsGain;
553
    { param_NaviGpsP                ,   1 },    //  unsigned char NaviGpsP;
554
    { param_NaviGpsI                ,   1 },    //  unsigned char NaviGpsI;
555
    { param_NaviGpsD                ,   1 },    //  unsigned char NaviGpsD;
556
    { param_NaviGpsPLimit           ,   1 },    //  unsigned char NaviGpsPLimit;
557
    { param_NaviGpsILimit           ,   1 },    //  unsigned char NaviGpsILimit;
558
    { param_NaviGpsDLimit           ,   1 },    //  unsigned char NaviGpsDLimit;
559
    { param_NaviGpsA                ,   1 },    //  unsigned char NaviGpsA;
560
    { param_NaviGpsMinSat           ,   1 },    //  unsigned char NaviGpsMinSat;
561
    { param_NaviStickThreshold      ,   1 },    //  unsigned char NaviStickThreshold;
562
    { param_NaviWindCorrection      ,   1 },    //  unsigned char NaviWindCorrection;
563
    { param_NaviAccCompensation     ,   1 },    //  unsigned char NaviAccCompensation;    // New since 0.86 -> was: SpeedCompensation
564
    { param_NaviOperatingRadius     ,   1 },    //  unsigned char NaviOperatingRadius;
565
    { param_NaviAngleLimitation     ,   1 },    //  unsigned char NaviAngleLimitation;
566
    { param_NaviPH_LoginTime        ,   1 },    //  unsigned char NaviPH_LoginTime;
567
    { param_ExternalControl         ,   1 },    //  unsigned char ExternalControl;        // for serial Control
568
    { param_OrientationAngle        ,   1 },    //  unsigned char OrientationAngle;       // Where is the front-direction?
569
    { param_CareFreeChannel         ,   1 },    //  unsigned char CareFreeChannel;        // switch for CareFree
570
    { param_MotorSafetySwitch       ,   1 },    //  unsigned char MotorSafetySwitch;
571
    { param_MotorSmooth             ,   1 },    //  unsigned char MotorSmooth;
572
    { param_ComingHomeAltitude      ,   1 },    //  unsigned char ComingHomeAltitude;
573
    { param_FailSafeTime            ,   1 },    //  unsigned char FailSafeTime;
574
    { param_MaxAltitude             ,   1 },    //  unsigned char MaxAltitude;
575
    { param_FailsafeChannel         ,   1 },    //  unsigned char FailsafeChannel;        // if the value of this channel is > 100, the MK reports "RC-Lost"
576
    { param_ServoFilterNick         ,   1 },    //  unsigned char ServoFilterNick;
577
    { param_ServoFilterRoll         ,   1 },    //  unsigned char ServoFilterRoll;
578
    { param_StartLandChannel        ,   1 },    //  unsigned char StartLandChannel;
579
    { param_LandingSpeed            ,   1 },    //  unsigned char LandingSpeed;
580
    { param_CompassOffset           ,   1 },    //  unsigned char CompassOffset;
581
    { param_AutoLandingVoltage      ,   1 },    //  unsigned char AutoLandingVoltage;     // in 0,1V  0 -> disabled
582
    { param_BitConfig               ,   1 },    //  unsigned char BitConfig;              // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
583
    { param_ServoCompInvert         ,   1 },    //  unsigned char ServoCompInvert;        // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
584
    { param_ExtraConfig             ,   1 },    //  unsigned char ExtraConfig;            // bitcodiert
585
    { param_GlobalConfig3           ,   1 },    //  unsigned char GlobalConfig3;          // bitcodiert
586
    { param_Name                    ,  12 },    //  char Name[12];
587
    { param_crc                     ,   1 },    //  unsigned char crc;                    // must be the last byte!
588
 
589
    { param_EOF                     ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
590
 
591
};  // end: paramset_097[]
592
 
593
 
594
 
595
 
596
//-----------------------------------------------
597
// FC-Parameter Revision: 98
598
//
599
// ab FC-Version: ab ??? bis ???
600
// gefunden in: 2.03d
601
//
602
// STRUKTUR-DIFF zu 097:
603
// - add: param_ComingHomeVoltage
604
//
605
// DEFINE-DIFF zu 097:
606
// - keine Aenderung
607
//-----------------------------------------------
608
paramRevItem_t const paramset_098[] PROGMEM =
609
{
610
    { param_Revision                ,   1 },    //  unsigned char Revision;
611
    { param_Kanalbelegung           ,  12 },    //  unsigned char Kanalbelegung[12];      // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
612
    { param_GlobalConfig            ,   1 },    //  unsigned char GlobalConfig;           // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
613
    { param_Hoehe_MinGas            ,   1 },    //  unsigned char Hoehe_MinGas;           // Wert : 0-100
614
    { param_Luftdruck_D             ,   1 },    //  unsigned char Luftdruck_D;            // Wert : 0-250
615
    { param_HoeheChannel            ,   1 },    //  unsigned char HoeheChannel;           // Wert : 0-32
616
    { param_Hoehe_P                 ,   1 },    //  unsigned char Hoehe_P;                // Wert : 0-32
617
    { param_Hoehe_Verstaerkung      ,   1 },    //  unsigned char Hoehe_Verstaerkung;     // Wert : 0-50
618
    { param_Hoehe_ACC_Wirkung       ,   1 },    //  unsigned char Hoehe_ACC_Wirkung;      // Wert : 0-250
619
    { param_Hoehe_HoverBand         ,   1 },    //  unsigned char Hoehe_HoverBand;        // Wert : 0-250
620
    { param_Hoehe_GPS_Z             ,   1 },    //  unsigned char Hoehe_GPS_Z;            // Wert : 0-250
621
    { param_Hoehe_StickNeutralPoint ,   1 },    //  unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
622
    { param_Stick_P                 ,   1 },    //  unsigned char Stick_P;                // Wert : 1-6
623
    { param_Stick_D                 ,   1 },    //  unsigned char Stick_D;                // Wert : 0-64
624
    { param_StickGier_P             ,   1 },    //  unsigned char StickGier_P;            // Wert : 1-20
625
    { param_Gas_Min                 ,   1 },    //  unsigned char Gas_Min;                // Wert : 0-32
626
    { param_Gas_Max                 ,   1 },    //  unsigned char Gas_Max;                // Wert : 33-250
627
    { param_GyroAccFaktor           ,   1 },    //  unsigned char GyroAccFaktor;          // Wert : 1-64
628
    { param_KompassWirkung          ,   1 },    //  unsigned char KompassWirkung;         // Wert : 0-32
629
    { param_Gyro_P                  ,   1 },    //  unsigned char Gyro_P;                 // Wert : 10-250
630
    { param_Gyro_I                  ,   1 },    //  unsigned char Gyro_I;                 // Wert : 0-250
631
    { param_Gyro_D                  ,   1 },    //  unsigned char Gyro_D;                 // Wert : 0-250
632
    { param_Gyro_Gier_P             ,   1 },    //  unsigned char Gyro_Gier_P;            // Wert : 10-250
633
    { param_Gyro_Gier_I             ,   1 },    //  unsigned char Gyro_Gier_I;            // Wert : 0-250
634
    { param_Gyro_Stability          ,   1 },    //  unsigned char Gyro_Stability;         // Wert : 0-16
635
    { param_UnterspannungsWarnung   ,   1 },    //  unsigned char UnterspannungsWarnung;  // Wert : 0-250
636
    { param_NotGas                  ,   1 },    //  unsigned char NotGas;                 // Wert : 0-250     //Gaswert bei Empängsverlust
637
    { param_NotGasZeit              ,   1 },    //  unsigned char NotGasZeit;             // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
638
    { param_Receiver                ,   1 },    //  unsigned char Receiver;               // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
639
    { param_I_Faktor                ,   1 },    //  unsigned char I_Faktor;               // Wert : 0-250
640
    { param_UserParam1              ,   1 },    //  unsigned char UserParam1;             // Wert : 0-250
641
    { param_UserParam2              ,   1 },    //  unsigned char UserParam2;             // Wert : 0-250
642
    { param_UserParam3              ,   1 },    //  unsigned char UserParam3;             // Wert : 0-250
643
    { param_UserParam4              ,   1 },    //  unsigned char UserParam4;             // Wert : 0-250
644
    { param_ServoNickControl        ,   1 },    //  unsigned char ServoNickControl;       // Wert : 0-250     // Stellung des Servos
645
    { param_ServoNickComp           ,   1 },    //  unsigned char ServoNickComp;          // Wert : 0-250     // Einfluss Gyro/Servo
646
    { param_ServoNickMin            ,   1 },    //  unsigned char ServoNickMin;           // Wert : 0-250     // Anschlag
647
    { param_ServoNickMax            ,   1 },    //  unsigned char ServoNickMax;           // Wert : 0-250     // Anschlag
648
    { param_ServoRollControl        ,   1 },    //  unsigned char ServoRollControl;       // Wert : 0-250     // Stellung des Servos
649
    { param_ServoRollComp           ,   1 },    //  unsigned char ServoRollComp;          // Wert : 0-250
650
    { param_ServoRollMin            ,   1 },    //  unsigned char ServoRollMin;           // Wert : 0-250
651
    { param_ServoRollMax            ,   1 },    //  unsigned char ServoRollMax;           // Wert : 0-250
652
    { param_ServoNickRefresh        ,   1 },    //  unsigned char ServoNickRefresh;       // Speed of the Servo
653
    { param_ServoManualControlSpeed ,   1 },    //  unsigned char ServoManualControlSpeed;//
654
    { param_CamOrientation          ,   1 },    //  unsigned char CamOrientation;         //
655
    { param_Servo3                  ,   1 },    //  unsigned char Servo3;                 // Value or mapping of the Servo Output
656
    { param_Servo4                  ,   1 },    //  unsigned char Servo4;                 // Value or mapping of the Servo Output
657
    { param_Servo5                  ,   1 },    //  unsigned char Servo5;                 // Value or mapping of the Servo Output
658
    { param_LoopGasLimit            ,   1 },    //  unsigned char LoopGasLimit;           // Wert: 0-250  max. Gas während Looping
659
    { param_LoopThreshold           ,   1 },    //  unsigned char LoopThreshold;          // Wert: 0-250  Schwelle für Stickausschlag
660
    { param_LoopHysterese           ,   1 },    //  unsigned char LoopHysterese;          // Wert: 0-250  Hysterese für Stickausschlag
661
    { param_AchsKopplung1           ,   1 },    //  unsigned char AchsKopplung1;          // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
662
    { param_AchsKopplung2           ,   1 },    //  unsigned char AchsKopplung2;          // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
663
    { param_CouplingYawCorrection   ,   1 },    //  unsigned char CouplingYawCorrection;  // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
664
    { param_WinkelUmschlagNick      ,   1 },    //  unsigned char WinkelUmschlagNick;     // Wert: 0-250  180°-Punkt
665
    { param_WinkelUmschlagRoll      ,   1 },    //  unsigned char WinkelUmschlagRoll;     // Wert: 0-250  180°-Punkt
666
    { param_GyroAccAbgleich         ,   1 },    //  unsigned char GyroAccAbgleich;        // 1/k  (Koppel_ACC_Wirkung)
667
    { param_Driftkomp               ,   1 },    //  unsigned char Driftkomp;
668
    { param_DynamicStability        ,   1 },    //  unsigned char DynamicStability;
669
    { param_UserParam5              ,   1 },    //  unsigned char UserParam5;             // Wert : 0-250
670
    { param_UserParam6              ,   1 },    //  unsigned char UserParam6;             // Wert : 0-250
671
    { param_UserParam7              ,   1 },    //  unsigned char UserParam7;             // Wert : 0-250
672
    { param_UserParam8              ,   1 },    //  unsigned char UserParam8;             // Wert : 0-250
673
    { param_J16Bitmask              ,   1 },    //  unsigned char J16Bitmask;             // for the J16 Output
674
    { param_J16Timing               ,   1 },    //  unsigned char J16Timing;              // for the J16 Output
675
    { param_J17Bitmask              ,   1 },    //  unsigned char J17Bitmask;             // for the J17 Output
676
    { param_J17Timing               ,   1 },    //  unsigned char J17Timing;              // for the J17 Output
677
    { param_WARN_J16_Bitmask        ,   1 },    //  unsigned char WARN_J16_Bitmask;       // for the J16 Output
678
    { param_WARN_J17_Bitmask        ,   1 },    //  unsigned char WARN_J17_Bitmask;       // for the J17 Output
679
    { param_NaviOut1Parameter       ,   1 },    //  unsigned char NaviOut1Parameter;      // for the J16 Output
680
    { param_NaviGpsModeChannel      ,   1 },    //  unsigned char NaviGpsModeChannel;     // Parameters for the Naviboard
681
    { param_NaviGpsGain             ,   1 },    //  unsigned char NaviGpsGain;
682
    { param_NaviGpsP                ,   1 },    //  unsigned char NaviGpsP;
683
    { param_NaviGpsI                ,   1 },    //  unsigned char NaviGpsI;
684
    { param_NaviGpsD                ,   1 },    //  unsigned char NaviGpsD;
685
    { param_NaviGpsPLimit           ,   1 },    //  unsigned char NaviGpsPLimit;
686
    { param_NaviGpsILimit           ,   1 },    //  unsigned char NaviGpsILimit;
687
    { param_NaviGpsDLimit           ,   1 },    //  unsigned char NaviGpsDLimit;
688
    { param_NaviGpsA                ,   1 },    //  unsigned char NaviGpsA;
689
    { param_NaviGpsMinSat           ,   1 },    //  unsigned char NaviGpsMinSat;
690
    { param_NaviStickThreshold      ,   1 },    //  unsigned char NaviStickThreshold;
691
    { param_NaviWindCorrection      ,   1 },    //  unsigned char NaviWindCorrection;
692
    { param_NaviAccCompensation     ,   1 },    //  unsigned char NaviAccCompensation;    // New since 0.86 -> was: SpeedCompensation
693
    { param_NaviOperatingRadius     ,   1 },    //  unsigned char NaviOperatingRadius;
694
    { param_NaviAngleLimitation     ,   1 },    //  unsigned char NaviAngleLimitation;
695
    { param_NaviPH_LoginTime        ,   1 },    //  unsigned char NaviPH_LoginTime;
696
    { param_ExternalControl         ,   1 },    //  unsigned char ExternalControl;        // for serial Control
697
    { param_OrientationAngle        ,   1 },    //  unsigned char OrientationAngle;       // Where is the front-direction?
698
    { param_CareFreeChannel         ,   1 },    //  unsigned char CareFreeChannel;        // switch for CareFree
699
    { param_MotorSafetySwitch       ,   1 },    //  unsigned char MotorSafetySwitch;
700
    { param_MotorSmooth             ,   1 },    //  unsigned char MotorSmooth;
701
    { param_ComingHomeAltitude      ,   1 },    //  unsigned char ComingHomeAltitude;
702
    { param_FailSafeTime            ,   1 },    //  unsigned char FailSafeTime;
703
    { param_MaxAltitude             ,   1 },    //  unsigned char MaxAltitude;
704
    { param_FailsafeChannel         ,   1 },    //  unsigned char FailsafeChannel;        // if the value of this channel is > 100, the MK reports "RC-Lost"
705
    { param_ServoFilterNick         ,   1 },    //  unsigned char ServoFilterNick;
706
    { param_ServoFilterRoll         ,   1 },    //  unsigned char ServoFilterRoll;
707
    { param_StartLandChannel        ,   1 },    //  unsigned char StartLandChannel;
708
    { param_LandingSpeed            ,   1 },    //  unsigned char LandingSpeed;
709
    { param_CompassOffset           ,   1 },    //  unsigned char CompassOffset;
710
    { param_AutoLandingVoltage      ,   1 },    //  unsigned char AutoLandingVoltage;     // in 0,1V  0 -> disabled
711
    { param_ComingHomeVoltage       ,   1 },    //  unsigned char ComingHomeVoltage;      // in 0,1V  0 -> disabled
712
    { param_BitConfig               ,   1 },    //  unsigned char BitConfig;              // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
713
    { param_ServoCompInvert         ,   1 },    //  unsigned char ServoCompInvert;        // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
714
    { param_ExtraConfig             ,   1 },    //  unsigned char ExtraConfig;            // bitcodiert
715
    { param_GlobalConfig3           ,   1 },    //  unsigned char GlobalConfig3;          // bitcodiert
716
    { param_Name                    ,  12 },    //  char Name[12];
717
    { param_crc                     ,   1 },    //  unsigned char crc;                    // must be the last byte!
718
 
719
    { param_EOF                     ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
720
 
721
};  // end: paramset_098[]
722
 
723
 
724
 
725
//-----------------------------------------------
726
// FC-Parameter Revision: 99
727
// keine Inormationen zu Rev. 99 vorhanden.
728
//
729
// Kommentar dazu von Holger Buss:
730
// "Die Revision 0.99 kannst Du ignorieren."
731
//-----------------------------------------------
732
 
733
 
734
 
735
//-----------------------------------------------
736
// FC-Parameter Revision: 100
737
//
738
// ab FC-Version: ab ??? bis 2.05e
739
// gefunden in: 2.05e
740
//
741
// STRUKTUR-DIFF zu 098:
742
// - del: NaviOut1Parameter
743
// - add: AutoPhotoDistance  (ersetzt NaviOut1Parameter)
744
// - add: AutoPhotoAtitudes
745
// - add: SingleWpSpeed
746
//
747
// DEFINE-DIFF zu 098:
748
// - keine Aenderung
749
//
750
// ANMERKUNG OG 06.04.2014:
751
// Die Tabelle kann ggf. demnaechst geloescht werden
752
// da sie nur fuer eine kurze Zeit in Betaversionen
753
// vorhanden war!
754
//-----------------------------------------------
755
paramRevItem_t const paramset_100[] PROGMEM =
756
{
757
    { param_Revision                   ,   1 },    //  unsigned char Revision;
758
    { param_Kanalbelegung              ,  12 },    //  unsigned char char Kanalbelegung[12];        // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
759
    { param_GlobalConfig               ,   1 },    //  unsigned char char GlobalConfig;             // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
760
    { param_Hoehe_MinGas               ,   1 },    //  unsigned char char Hoehe_MinGas;             // Wert : 0-100
761
    { param_Luftdruck_D                ,   1 },    //  unsigned char char Luftdruck_D;              // Wert : 0-250
762
    { param_HoeheChannel               ,   1 },    //  unsigned char char HoeheChannel;             // Wert : 0-32
763
    { param_Hoehe_P                    ,   1 },    //  unsigned char char Hoehe_P;                  // Wert : 0-32
764
    { param_Hoehe_Verstaerkung         ,   1 },    //  unsigned char char Hoehe_Verstaerkung;       // Wert : 0-50
765
    { param_Hoehe_ACC_Wirkung          ,   1 },    //  unsigned char char Hoehe_ACC_Wirkung;        // Wert : 0-250
766
    { param_Hoehe_HoverBand            ,   1 },    //  unsigned char char Hoehe_HoverBand;          // Wert : 0-250
767
    { param_Hoehe_GPS_Z                ,   1 },    //  unsigned char char Hoehe_GPS_Z;              // Wert : 0-250
768
    { param_Hoehe_StickNeutralPoint    ,   1 },    //  unsigned char char Hoehe_StickNeutralPoint;  // Wert : 0-250
769
    { param_Stick_P                    ,   1 },    //  unsigned char char Stick_P;                  // Wert : 1-6
770
    { param_Stick_D                    ,   1 },    //  unsigned char char Stick_D;                  // Wert : 0-64
771
    { param_StickGier_P                ,   1 },    //  unsigned char char StickGier_P;              // Wert : 1-20
772
    { param_Gas_Min                    ,   1 },    //  unsigned char char Gas_Min;                  // Wert : 0-32
773
    { param_Gas_Max                    ,   1 },    //  unsigned char char Gas_Max;                  // Wert : 33-250
774
    { param_GyroAccFaktor              ,   1 },    //  unsigned char char GyroAccFaktor;            // Wert : 1-64
775
    { param_KompassWirkung             ,   1 },    //  unsigned char char KompassWirkung;           // Wert : 0-32
776
    { param_Gyro_P                     ,   1 },    //  unsigned char char Gyro_P;                   // Wert : 10-250
777
    { param_Gyro_I                     ,   1 },    //  unsigned char char Gyro_I;                   // Wert : 0-250
778
    { param_Gyro_D                     ,   1 },    //  unsigned char char Gyro_D;                   // Wert : 0-250
779
    { param_Gyro_Gier_P                ,   1 },    //  unsigned char char Gyro_Gier_P;              // Wert : 10-250
780
    { param_Gyro_Gier_I                ,   1 },    //  unsigned char char Gyro_Gier_I;              // Wert : 0-250
781
    { param_Gyro_Stability             ,   1 },    //  unsigned char char Gyro_Stability;           // Wert : 0-16
782
    { param_UnterspannungsWarnung      ,   1 },    //  unsigned char char UnterspannungsWarnung;    // Wert : 0-250
783
    { param_NotGas                     ,   1 },    //  unsigned char char NotGas;                   // Wert : 0-250     //Gaswert bei Empängsverlust
784
    { param_NotGasZeit                 ,   1 },    //  unsigned char char NotGasZeit;               // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
785
    { param_Receiver                   ,   1 },    //  unsigned char char Receiver;                 // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
786
    { param_I_Faktor                   ,   1 },    //  unsigned char char I_Faktor;                 // Wert : 0-250
787
    { param_UserParam1                 ,   1 },    //  unsigned char char UserParam1;               // Wert : 0-250
788
    { param_UserParam2                 ,   1 },    //  unsigned char char UserParam2;               // Wert : 0-250
789
    { param_UserParam3                 ,   1 },    //  unsigned char char UserParam3;               // Wert : 0-250
790
    { param_UserParam4                 ,   1 },    //  unsigned char char UserParam4;               // Wert : 0-250
791
    { param_ServoNickControl           ,   1 },    //  unsigned char char ServoNickControl;         // Wert : 0-250     // Stellung des Servos
792
    { param_ServoNickComp              ,   1 },    //  unsigned char char ServoNickComp;            // Wert : 0-250     // Einfluss Gyro/Servo
793
    { param_ServoNickMin               ,   1 },    //  unsigned char char ServoNickMin;             // Wert : 0-250     // Anschlag
794
    { param_ServoNickMax               ,   1 },    //  unsigned char char ServoNickMax;             // Wert : 0-250     // Anschlag
795
    { param_ServoRollControl           ,   1 },    //  unsigned char char ServoRollControl;         // Wert : 0-250     // Stellung des Servos
796
    { param_ServoRollComp              ,   1 },    //  unsigned char char ServoRollComp;            // Wert : 0-250
797
    { param_ServoRollMin               ,   1 },    //  unsigned char char ServoRollMin;             // Wert : 0-250
798
    { param_ServoRollMax               ,   1 },    //  unsigned char char ServoRollMax;             // Wert : 0-250
799
    { param_ServoNickRefresh           ,   1 },    //  unsigned char char ServoNickRefresh;         // Speed of the Servo
800
    { param_ServoManualControlSpeed    ,   1 },    //  unsigned char char ServoManualControlSpeed;  //
801
    { param_CamOrientation             ,   1 },    //  unsigned char char CamOrientation;           //
802
    { param_Servo3                     ,   1 },    //  unsigned char char Servo3;                   // Value or mapping of the Servo Output
803
    { param_Servo4                     ,   1 },    //  unsigned char char Servo4;                   // Value or mapping of the Servo Output
804
    { param_Servo5                     ,   1 },    //  unsigned char char Servo5;                   // Value or mapping of the Servo Output
805
    { param_LoopGasLimit               ,   1 },    //  unsigned char char LoopGasLimit;             // Wert: 0-250  max. Gas während Looping
806
    { param_LoopThreshold              ,   1 },    //  unsigned char char LoopThreshold;            // Wert: 0-250  Schwelle für Stickausschlag
807
    { param_LoopHysterese              ,   1 },    //  unsigned char char LoopHysterese;            // Wert: 0-250  Hysterese für Stickausschlag
808
    { param_AchsKopplung1              ,   1 },    //  unsigned char char AchsKopplung1;            // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
809
    { param_AchsKopplung2              ,   1 },    //  unsigned char char AchsKopplung2;            // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
810
    { param_CouplingYawCorrection      ,   1 },    //  unsigned char char CouplingYawCorrection;    // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
811
    { param_WinkelUmschlagNick         ,   1 },    //  unsigned char char WinkelUmschlagNick;       // Wert: 0-250  180°-Punkt
812
    { param_WinkelUmschlagRoll         ,   1 },    //  unsigned char char WinkelUmschlagRoll;       // Wert: 0-250  180°-Punkt
813
    { param_GyroAccAbgleich            ,   1 },    //  unsigned char char GyroAccAbgleich;          // 1/k  (Koppel_ACC_Wirkung)
814
    { param_Driftkomp                  ,   1 },    //  unsigned char char Driftkomp;
815
    { param_DynamicStability           ,   1 },    //  unsigned char char DynamicStability;
816
    { param_UserParam5                 ,   1 },    //  unsigned char char UserParam5;               // Wert : 0-250
817
    { param_UserParam6                 ,   1 },    //  unsigned char char UserParam6;               // Wert : 0-250
818
    { param_UserParam7                 ,   1 },    //  unsigned char char UserParam7;               // Wert : 0-250
819
    { param_UserParam8                 ,   1 },    //  unsigned char char UserParam8;               // Wert : 0-250
820
    { param_J16Bitmask                 ,   1 },    //  unsigned char char J16Bitmask;               // for the J16 Output
821
    { param_J16Timing                  ,   1 },    //  unsigned char char J16Timing;                // for the J16 Output
822
    { param_J17Bitmask                 ,   1 },    //  unsigned char char J17Bitmask;               // for the J17 Output
823
    { param_J17Timing                  ,   1 },    //  unsigned char char J17Timing;                // for the J17 Output
824
    { param_WARN_J16_Bitmask           ,   1 },    //  unsigned char char WARN_J16_Bitmask;         // for the J16 Output
825
    { param_WARN_J17_Bitmask           ,   1 },    //  unsigned char char WARN_J17_Bitmask;         // for the J17 Output
826
    { param_AutoPhotoDistance          ,   1 },    //  unsigned char char AutoPhotoDistance;        // Auto Photo   // ab Rev. 100 (ehemals NaviOut1Parameter)
827
    { param_NaviGpsModeChannel         ,   1 },    //  unsigned char char NaviGpsModeChannel;       // Parameters for the Naviboard
828
    { param_NaviGpsGain                ,   1 },    //  unsigned char char NaviGpsGain;
829
    { param_NaviGpsP                   ,   1 },    //  unsigned char char NaviGpsP;
830
    { param_NaviGpsI                   ,   1 },    //  unsigned char char NaviGpsI;
831
    { param_NaviGpsD                   ,   1 },    //  unsigned char char NaviGpsD;
832
    { param_NaviGpsPLimit              ,   1 },    //  unsigned char char NaviGpsPLimit;
833
    { param_NaviGpsILimit              ,   1 },    //  unsigned char char NaviGpsILimit;
834
    { param_NaviGpsDLimit              ,   1 },    //  unsigned char char NaviGpsDLimit;
835
    { param_NaviGpsA                   ,   1 },    //  unsigned char char NaviGpsA;
836
    { param_NaviGpsMinSat              ,   1 },    //  unsigned char char NaviGpsMinSat;
837
    { param_NaviStickThreshold         ,   1 },    //  unsigned char char NaviStickThreshold;
838
    { param_NaviWindCorrection         ,   1 },    //  unsigned char char NaviWindCorrection;
839
    { param_NaviAccCompensation        ,   1 },    //  unsigned char char NaviAccCompensation;      // New since 0.86 -> was: SpeedCompensation
840
    { param_NaviOperatingRadius        ,   1 },    //  unsigned char char NaviOperatingRadius;
841
    { param_NaviAngleLimitation        ,   1 },    //  unsigned char char NaviAngleLimitation;
842
    { param_NaviPH_LoginTime           ,   1 },    //  unsigned char char NaviPH_LoginTime;
843
    { param_ExternalControl            ,   1 },    //  unsigned char char ExternalControl;          // for serial Control
844
    { param_OrientationAngle           ,   1 },    //  unsigned char char OrientationAngle;         // Where is the front-direction?
845
    { param_CareFreeChannel            ,   1 },    //  unsigned char char CareFreeChannel;          // switch for CareFree
846
    { param_MotorSafetySwitch          ,   1 },    //  unsigned char char MotorSafetySwitch;
847
    { param_MotorSmooth                ,   1 },    //  unsigned char char MotorSmooth;
848
    { param_ComingHomeAltitude         ,   1 },    //  unsigned char char ComingHomeAltitude;
849
    { param_FailSafeTime               ,   1 },    //  unsigned char char FailSafeTime;
850
    { param_MaxAltitude                ,   1 },    //  unsigned char char MaxAltitude;
851
    { param_FailsafeChannel            ,   1 },    //  unsigned char char FailsafeChannel;          // if the value of this channel is > 100, the MK reports "RC-Lost"
852
    { param_ServoFilterNick            ,   1 },    //  unsigned char char ServoFilterNick;
853
    { param_ServoFilterRoll            ,   1 },    //  unsigned char char ServoFilterRoll;
854
    { param_StartLandChannel           ,   1 },    //  unsigned char char StartLandChannel;
855
    { param_LandingSpeed               ,   1 },    //  unsigned char char LandingSpeed;
856
    { param_CompassOffset              ,   1 },    //  unsigned char char CompassOffset;
857
    { param_AutoLandingVoltage         ,   1 },    //  unsigned char char AutoLandingVoltage;       // in 0,1V  0 -> disabled
858
    { param_ComingHomeVoltage          ,   1 },    //  unsigned char char ComingHomeVoltage;        // in 0,1V  0 -> disabled
859
    { param_AutoPhotoAtitudes          ,   1 },    //  unsigned char char AutoPhotoAtitudes;        // ab Rev. 100
860
    { param_SingleWpSpeed              ,   1 },    //  unsigned char char SingleWpSpeed;            // ab Rev. 100
861
    { param_BitConfig                  ,   1 },    //  unsigned char char BitConfig;                // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
862
    { param_ServoCompInvert            ,   1 },    //  unsigned char char ServoCompInvert;          // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
863
    { param_ExtraConfig                ,   1 },    //  unsigned char char ExtraConfig;              // bitcodiert
864
    { param_GlobalConfig3              ,   1 },    //  unsigned char char GlobalConfig3;            // bitcodiert
865
    { param_Name                       ,  12 },    //  char               Name[12];
866
    { param_crc                        ,   1 },    //  unsigned char char crc;                      // must be the last byte!
867
 
868
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
869
 
870
};  // end: paramset_100[]
871
 
872
 
873
 
874
 
875
//-----------------------------------------------
876
// FC-Parameter Revision: 101
877
//
878
// ab FC-Version: ab 2.05f bis 2.05f
879
// gefunden in: 2.05f
880
//
881
// STRUKTUR-DIFF zu 100:
882
// - add: Servo3OnValue
883
// - add: Servo3OffValue
884
// - add: Servo4OnValue
885
// - add: Servo4OffValue
886
//
887
// DEFINE-DIFF zu 100:
888
// - keine Aenderung
889
//
890
// ANMERKUNG OG 06.04.2014:
891
// Die Tabelle kann ggf. demnaechst geloescht werden
892
// da sie nur fuer eine einzige Betaversion
893
// vorhanden war!
894
//-----------------------------------------------
895
paramRevItem_t const paramset_101[] PROGMEM =
896
{
897
    { param_DUMMY                      , 123 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
898
    { param_Name                       ,  12 },    //  char Name[12];
899
    { param_DUMMY                      ,   1 },    //  n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
900
 
901
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
902
 
903
};  // end: paramset_101[]
904
 
905
 
906
 
907
 
908
 
909
//-----------------------------------------------
910
// FC-Parameter Revision: 102
911
//
912
// ab FC-Version: ab 2.05g bis ??? (min. 2.06b)
913
// gefunden in: 2.05g, 2.06a
914
//
915
// STRUKTUR-DIFF zu 101:
916
// - add: NaviMaxFlyingRange    (ersetzt NaviOperatingRadius)
917
// - add: NaviDescendRange
918
// - del: NaviOperatingRadius
919
//
920
// DEFINE-DIFF zu 101:
921
// - del: CFG3_DPH_MAX_RADIUS
922
//-----------------------------------------------
923
paramRevItem_t const paramset_102[] PROGMEM =
924
{
925
    { param_Revision                   ,   1 },    //  unsigned char Revision;
926
    { param_Kanalbelegung              ,  12 },    //  unsigned char char Kanalbelegung[12];        // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
927
    { param_GlobalConfig               ,   1 },    //  unsigned char char GlobalConfig;             // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
928
    { param_Hoehe_MinGas               ,   1 },    //  unsigned char char Hoehe_MinGas;             // Wert : 0-100
929
    { param_Luftdruck_D                ,   1 },    //  unsigned char char Luftdruck_D;              // Wert : 0-250
930
    { param_HoeheChannel               ,   1 },    //  unsigned char char HoeheChannel;             // Wert : 0-32
931
    { param_Hoehe_P                    ,   1 },    //  unsigned char char Hoehe_P;                  // Wert : 0-32
932
    { param_Hoehe_Verstaerkung         ,   1 },    //  unsigned char char Hoehe_Verstaerkung;       // Wert : 0-50
933
    { param_Hoehe_ACC_Wirkung          ,   1 },    //  unsigned char char Hoehe_ACC_Wirkung;        // Wert : 0-250
934
    { param_Hoehe_HoverBand            ,   1 },    //  unsigned char char Hoehe_HoverBand;          // Wert : 0-250
935
    { param_Hoehe_GPS_Z                ,   1 },    //  unsigned char char Hoehe_GPS_Z;              // Wert : 0-250
936
    { param_Hoehe_StickNeutralPoint    ,   1 },    //  unsigned char char Hoehe_StickNeutralPoint;  // Wert : 0-250
937
    { param_Stick_P                    ,   1 },    //  unsigned char char Stick_P;                  // Wert : 1-6
938
    { param_Stick_D                    ,   1 },    //  unsigned char char Stick_D;                  // Wert : 0-64
939
    { param_StickGier_P                ,   1 },    //  unsigned char char StickGier_P;              // Wert : 1-20
940
    { param_Gas_Min                    ,   1 },    //  unsigned char char Gas_Min;                  // Wert : 0-32
941
    { param_Gas_Max                    ,   1 },    //  unsigned char char Gas_Max;                  // Wert : 33-250
942
    { param_GyroAccFaktor              ,   1 },    //  unsigned char char GyroAccFaktor;            // Wert : 1-64
943
    { param_KompassWirkung             ,   1 },    //  unsigned char char KompassWirkung;           // Wert : 0-32
944
    { param_Gyro_P                     ,   1 },    //  unsigned char char Gyro_P;                   // Wert : 10-250
945
    { param_Gyro_I                     ,   1 },    //  unsigned char char Gyro_I;                   // Wert : 0-250
946
    { param_Gyro_D                     ,   1 },    //  unsigned char char Gyro_D;                   // Wert : 0-250
947
    { param_Gyro_Gier_P                ,   1 },    //  unsigned char char Gyro_Gier_P;              // Wert : 10-250
948
    { param_Gyro_Gier_I                ,   1 },    //  unsigned char char Gyro_Gier_I;              // Wert : 0-250
949
    { param_Gyro_Stability             ,   1 },    //  unsigned char char Gyro_Stability;           // Wert : 0-16
950
    { param_UnterspannungsWarnung      ,   1 },    //  unsigned char char UnterspannungsWarnung;    // Wert : 0-250
951
    { param_NotGas                     ,   1 },    //  unsigned char char NotGas;                   // Wert : 0-250     //Gaswert bei Empängsverlust
952
    { param_NotGasZeit                 ,   1 },    //  unsigned char char NotGasZeit;               // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
953
    { param_Receiver                   ,   1 },    //  unsigned char char Receiver;                 // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
954
    { param_I_Faktor                   ,   1 },    //  unsigned char char I_Faktor;                 // Wert : 0-250
955
    { param_UserParam1                 ,   1 },    //  unsigned char char UserParam1;               // Wert : 0-250
956
    { param_UserParam2                 ,   1 },    //  unsigned char char UserParam2;               // Wert : 0-250
957
    { param_UserParam3                 ,   1 },    //  unsigned char char UserParam3;               // Wert : 0-250
958
    { param_UserParam4                 ,   1 },    //  unsigned char char UserParam4;               // Wert : 0-250
959
    { param_ServoNickControl           ,   1 },    //  unsigned char char ServoNickControl;         // Wert : 0-250     // Stellung des Servos
960
    { param_ServoNickComp              ,   1 },    //  unsigned char char ServoNickComp;            // Wert : 0-250     // Einfluss Gyro/Servo
961
    { param_ServoNickMin               ,   1 },    //  unsigned char char ServoNickMin;             // Wert : 0-250     // Anschlag
962
    { param_ServoNickMax               ,   1 },    //  unsigned char char ServoNickMax;             // Wert : 0-250     // Anschlag
963
    { param_ServoRollControl           ,   1 },    //  unsigned char char ServoRollControl;         // Wert : 0-250     // Stellung des Servos
964
    { param_ServoRollComp              ,   1 },    //  unsigned char char ServoRollComp;            // Wert : 0-250
965
    { param_ServoRollMin               ,   1 },    //  unsigned char char ServoRollMin;             // Wert : 0-250
966
    { param_ServoRollMax               ,   1 },    //  unsigned char char ServoRollMax;             // Wert : 0-250
967
    { param_ServoNickRefresh           ,   1 },    //  unsigned char char ServoNickRefresh;         // Speed of the Servo
968
    { param_ServoManualControlSpeed    ,   1 },    //  unsigned char char ServoManualControlSpeed;  //
969
    { param_CamOrientation             ,   1 },    //  unsigned char char CamOrientation;           //
970
    { param_Servo3                     ,   1 },    //  unsigned char char Servo3;                   // Value or mapping of the Servo Output
971
    { param_Servo4                     ,   1 },    //  unsigned char char Servo4;                   // Value or mapping of the Servo Output
972
    { param_Servo5                     ,   1 },    //  unsigned char char Servo5;                   // Value or mapping of the Servo Output
973
    { param_LoopGasLimit               ,   1 },    //  unsigned char char LoopGasLimit;             // Wert: 0-250  max. Gas während Looping
974
    { param_LoopThreshold              ,   1 },    //  unsigned char char LoopThreshold;            // Wert: 0-250  Schwelle für Stickausschlag
975
    { param_LoopHysterese              ,   1 },    //  unsigned char char LoopHysterese;            // Wert: 0-250  Hysterese für Stickausschlag
976
    { param_AchsKopplung1              ,   1 },    //  unsigned char char AchsKopplung1;            // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
977
    { param_AchsKopplung2              ,   1 },    //  unsigned char char AchsKopplung2;            // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
978
    { param_CouplingYawCorrection      ,   1 },    //  unsigned char char CouplingYawCorrection;    // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
979
    { param_WinkelUmschlagNick         ,   1 },    //  unsigned char char WinkelUmschlagNick;       // Wert: 0-250  180°-Punkt
980
    { param_WinkelUmschlagRoll         ,   1 },    //  unsigned char char WinkelUmschlagRoll;       // Wert: 0-250  180°-Punkt
981
    { param_GyroAccAbgleich            ,   1 },    //  unsigned char char GyroAccAbgleich;          // 1/k  (Koppel_ACC_Wirkung)
982
    { param_Driftkomp                  ,   1 },    //  unsigned char char Driftkomp;
983
    { param_DynamicStability           ,   1 },    //  unsigned char char DynamicStability;
984
    { param_UserParam5                 ,   1 },    //  unsigned char char UserParam5;               // Wert : 0-250
985
    { param_UserParam6                 ,   1 },    //  unsigned char char UserParam6;               // Wert : 0-250
986
    { param_UserParam7                 ,   1 },    //  unsigned char char UserParam7;               // Wert : 0-250
987
    { param_UserParam8                 ,   1 },    //  unsigned char char UserParam8;               // Wert : 0-250
988
    { param_J16Bitmask                 ,   1 },    //  unsigned char char J16Bitmask;               // for the J16 Output
989
    { param_J16Timing                  ,   1 },    //  unsigned char char J16Timing;                // for the J16 Output
990
    { param_J17Bitmask                 ,   1 },    //  unsigned char char J17Bitmask;               // for the J17 Output
991
    { param_J17Timing                  ,   1 },    //  unsigned char char J17Timing;                // for the J17 Output
992
    { param_WARN_J16_Bitmask           ,   1 },    //  unsigned char char WARN_J16_Bitmask;         // for the J16 Output
993
    { param_WARN_J17_Bitmask           ,   1 },    //  unsigned char char WARN_J17_Bitmask;         // for the J17 Output
994
    { param_AutoPhotoDistance          ,   1 },    //  unsigned char char AutoPhotoDistance;        // Auto Photo   // ab Rev. 100 (ehemals NaviOut1Parameter)
995
    { param_NaviGpsModeChannel         ,   1 },    //  unsigned char char NaviGpsModeChannel;       // Parameters for the Naviboard
996
    { param_NaviGpsGain                ,   1 },    //  unsigned char char NaviGpsGain;
997
    { param_NaviGpsP                   ,   1 },    //  unsigned char char NaviGpsP;
998
    { param_NaviGpsI                   ,   1 },    //  unsigned char char NaviGpsI;
999
    { param_NaviGpsD                   ,   1 },    //  unsigned char char NaviGpsD;
1000
    { param_NaviGpsPLimit              ,   1 },    //  unsigned char char NaviGpsPLimit;
1001
    { param_NaviGpsILimit              ,   1 },    //  unsigned char char NaviGpsILimit;
1002
    { param_NaviGpsDLimit              ,   1 },    //  unsigned char char NaviGpsDLimit;
1003
    { param_NaviGpsA                   ,   1 },    //  unsigned char char NaviGpsA;
1004
    { param_NaviGpsMinSat              ,   1 },    //  unsigned char char NaviGpsMinSat;
1005
    { param_NaviStickThreshold         ,   1 },    //  unsigned char char NaviStickThreshold;
1006
    { param_NaviWindCorrection         ,   1 },    //  unsigned char char NaviWindCorrection;
1007
    { param_NaviAccCompensation        ,   1 },    //  unsigned char char NaviAccCompensation;      // New since 0.86 -> was: SpeedCompensation
1008
    { param_NaviMaxFlyingRange         ,   1 },    //  unsigned char char NaviMaxFlyingRange;       // in 10m
1009
    { param_NaviAngleLimitation        ,   1 },    //  unsigned char char NaviAngleLimitation;
1010
    { param_NaviPH_LoginTime           ,   1 },    //  unsigned char char NaviPH_LoginTime;
1011
    { param_NaviDescendRange           ,   1 },    //  unsigned char char NaviDescendRange;
1012
    { param_ExternalControl            ,   1 },    //  unsigned char char ExternalControl;          // for serial Control
1013
    { param_OrientationAngle           ,   1 },    //  unsigned char char OrientationAngle;         // Where is the front-direction?
1014
    { param_CareFreeChannel            ,   1 },    //  unsigned char char CareFreeChannel;          // switch for CareFree
1015
    { param_MotorSafetySwitch          ,   1 },    //  unsigned char char MotorSafetySwitch;
1016
    { param_MotorSmooth                ,   1 },    //  unsigned char char MotorSmooth;
1017
    { param_ComingHomeAltitude         ,   1 },    //  unsigned char char ComingHomeAltitude;
1018
    { param_FailSafeTime               ,   1 },    //  unsigned char char FailSafeTime;
1019
    { param_MaxAltitude                ,   1 },    //  unsigned char char MaxAltitude;
1020
    { param_FailsafeChannel            ,   1 },    //  unsigned char char FailsafeChannel;          // if the value of this channel is > 100, the MK reports "RC-Lost"
1021
    { param_ServoFilterNick            ,   1 },    //  unsigned char char ServoFilterNick;
1022
    { param_ServoFilterRoll            ,   1 },    //  unsigned char char ServoFilterRoll;
1023
    { param_Servo3OnValue              ,   1 },    //  unsigned char char Servo3OnValue;            // ab Rev. 101 (FC 2.05f)
1024
    { param_Servo3OffValue             ,   1 },    //  unsigned char char Servo3OffValue;           // ab Rev. 101 (FC 2.05f)
1025
    { param_Servo4OnValue              ,   1 },    //  unsigned char char Servo4OnValue;            // ab Rev. 101 (FC 2.05f)
1026
    { param_Servo4OffValue             ,   1 },    //  unsigned char char Servo4OffValue;           // ab Rev. 101 (FC 2.05f)
1027
    { param_StartLandChannel           ,   1 },    //  unsigned char char StartLandChannel;
1028
    { param_LandingSpeed               ,   1 },    //  unsigned char char LandingSpeed;
1029
    { param_CompassOffset              ,   1 },    //  unsigned char char CompassOffset;
1030
    { param_AutoLandingVoltage         ,   1 },    //  unsigned char char AutoLandingVoltage;       // in 0,1V  0 -> disabled
1031
    { param_ComingHomeVoltage          ,   1 },    //  unsigned char char ComingHomeVoltage;        // in 0,1V  0 -> disabled
1032
    { param_AutoPhotoAtitudes          ,   1 },    //  unsigned char char AutoPhotoAtitudes;        // ab Rev. 100
1033
    { param_SingleWpSpeed              ,   1 },    //  unsigned char char SingleWpSpeed;            // ab Rev. 100
1034
    { param_BitConfig                  ,   1 },    //  unsigned char char BitConfig;                // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
1035
    { param_ServoCompInvert            ,   1 },    //  unsigned char char ServoCompInvert;          // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
1036
    { param_ExtraConfig                ,   1 },    //  unsigned char char ExtraConfig;              // bitcodiert
1037
    { param_GlobalConfig3              ,   1 },    //  unsigned char char GlobalConfig3;            // bitcodiert
1038
    { param_Name                       ,  12 },    //  char               Name[12];
1039
    { param_crc                        ,   1 },    //  unsigned char char crc;                      // must be the last byte!
1040
 
1041
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
1042
 
1043
};  // end: paramset_102[]
1044
 
1045
 
1046
 
1047
 
1048
 
1049
 
1050
//-----------------------------------------------
1051
// FC-Parameter Revision: 103
1052
//
1053
// ab FC-Version: ab 2.07f bis ???
1054
// gefunden in: 2.07f
1055
//
1056
// STRUKTUR-DIFF zu 102:
1057
// keine
1058
//
1059
// DEFINE-DIFF zu 102:
1060
// - chg: Hoehe_GPS_Z zu Hoehe_TiltCompensation
1061
//-----------------------------------------------
1062
paramRevItem_t const paramset_103[] PROGMEM =
1063
{
1064
    { param_Revision                   ,   1 },    //  unsigned char Revision;
1065
    { param_Kanalbelegung              ,  12 },    //  unsigned char char Kanalbelegung[12];        // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
1066
    { param_GlobalConfig               ,   1 },    //  unsigned char char GlobalConfig;             // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
1067
    { param_Hoehe_MinGas               ,   1 },    //  unsigned char char Hoehe_MinGas;             // Wert : 0-100
1068
    { param_Luftdruck_D                ,   1 },    //  unsigned char char Luftdruck_D;              // Wert : 0-250
1069
    { param_HoeheChannel               ,   1 },    //  unsigned char char HoeheChannel;             // Wert : 0-32
1070
    { param_Hoehe_P                    ,   1 },    //  unsigned char char Hoehe_P;                  // Wert : 0-32
1071
    { param_Hoehe_Verstaerkung         ,   1 },    //  unsigned char char Hoehe_Verstaerkung;       // Wert : 0-50
1072
    { param_Hoehe_ACC_Wirkung          ,   1 },    //  unsigned char char Hoehe_ACC_Wirkung;        // Wert : 0-250
1073
    { param_Hoehe_HoverBand            ,   1 },    //  unsigned char char Hoehe_HoverBand;          // Wert : 0-250
1074
    { param_Hoehe_TiltCompensation     ,   1 },    //  unsigned char char Hoehe_TiltCompensation;   // Wert : 0-250
1075
    { param_Hoehe_StickNeutralPoint    ,   1 },    //  unsigned char char Hoehe_StickNeutralPoint;  // Wert : 0-250
1076
    { param_Stick_P                    ,   1 },    //  unsigned char char Stick_P;                  // Wert : 1-6
1077
    { param_Stick_D                    ,   1 },    //  unsigned char char Stick_D;                  // Wert : 0-64
1078
    { param_StickGier_P                ,   1 },    //  unsigned char char StickGier_P;              // Wert : 1-20
1079
    { param_Gas_Min                    ,   1 },    //  unsigned char char Gas_Min;                  // Wert : 0-32
1080
    { param_Gas_Max                    ,   1 },    //  unsigned char char Gas_Max;                  // Wert : 33-250
1081
    { param_GyroAccFaktor              ,   1 },    //  unsigned char char GyroAccFaktor;            // Wert : 1-64
1082
    { param_KompassWirkung             ,   1 },    //  unsigned char char KompassWirkung;           // Wert : 0-32
1083
    { param_Gyro_P                     ,   1 },    //  unsigned char char Gyro_P;                   // Wert : 10-250
1084
    { param_Gyro_I                     ,   1 },    //  unsigned char char Gyro_I;                   // Wert : 0-250
1085
    { param_Gyro_D                     ,   1 },    //  unsigned char char Gyro_D;                   // Wert : 0-250
1086
    { param_Gyro_Gier_P                ,   1 },    //  unsigned char char Gyro_Gier_P;              // Wert : 10-250
1087
    { param_Gyro_Gier_I                ,   1 },    //  unsigned char char Gyro_Gier_I;              // Wert : 0-250
1088
    { param_Gyro_Stability             ,   1 },    //  unsigned char char Gyro_Stability;           // Wert : 0-16
1089
    { param_UnterspannungsWarnung      ,   1 },    //  unsigned char char UnterspannungsWarnung;    // Wert : 0-250
1090
    { param_NotGas                     ,   1 },    //  unsigned char char NotGas;                   // Wert : 0-250     //Gaswert bei Empängsverlust
1091
    { param_NotGasZeit                 ,   1 },    //  unsigned char char NotGasZeit;               // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
1092
    { param_Receiver                   ,   1 },    //  unsigned char char Receiver;                 // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
1093
    { param_I_Faktor                   ,   1 },    //  unsigned char char I_Faktor;                 // Wert : 0-250
1094
    { param_UserParam1                 ,   1 },    //  unsigned char char UserParam1;               // Wert : 0-250
1095
    { param_UserParam2                 ,   1 },    //  unsigned char char UserParam2;               // Wert : 0-250
1096
    { param_UserParam3                 ,   1 },    //  unsigned char char UserParam3;               // Wert : 0-250
1097
    { param_UserParam4                 ,   1 },    //  unsigned char char UserParam4;               // Wert : 0-250
1098
    { param_ServoNickControl           ,   1 },    //  unsigned char char ServoNickControl;         // Wert : 0-250     // Stellung des Servos
1099
    { param_ServoNickComp              ,   1 },    //  unsigned char char ServoNickComp;            // Wert : 0-250     // Einfluss Gyro/Servo
1100
    { param_ServoNickMin               ,   1 },    //  unsigned char char ServoNickMin;             // Wert : 0-250     // Anschlag
1101
    { param_ServoNickMax               ,   1 },    //  unsigned char char ServoNickMax;             // Wert : 0-250     // Anschlag
1102
    { param_ServoRollControl           ,   1 },    //  unsigned char char ServoRollControl;         // Wert : 0-250     // Stellung des Servos
1103
    { param_ServoRollComp              ,   1 },    //  unsigned char char ServoRollComp;            // Wert : 0-250
1104
    { param_ServoRollMin               ,   1 },    //  unsigned char char ServoRollMin;             // Wert : 0-250
1105
    { param_ServoRollMax               ,   1 },    //  unsigned char char ServoRollMax;             // Wert : 0-250
1106
    { param_ServoNickRefresh           ,   1 },    //  unsigned char char ServoNickRefresh;         // Speed of the Servo
1107
    { param_ServoManualControlSpeed    ,   1 },    //  unsigned char char ServoManualControlSpeed;  //
1108
    { param_CamOrientation             ,   1 },    //  unsigned char char CamOrientation;           //
1109
    { param_Servo3                     ,   1 },    //  unsigned char char Servo3;                   // Value or mapping of the Servo Output
1110
    { param_Servo4                     ,   1 },    //  unsigned char char Servo4;                   // Value or mapping of the Servo Output
1111
    { param_Servo5                     ,   1 },    //  unsigned char char Servo5;                   // Value or mapping of the Servo Output
1112
    { param_LoopGasLimit               ,   1 },    //  unsigned char char LoopGasLimit;             // Wert: 0-250  max. Gas während Looping
1113
    { param_LoopThreshold              ,   1 },    //  unsigned char char LoopThreshold;            // Wert: 0-250  Schwelle für Stickausschlag
1114
    { param_LoopHysterese              ,   1 },    //  unsigned char char LoopHysterese;            // Wert: 0-250  Hysterese für Stickausschlag
1115
    { param_AchsKopplung1              ,   1 },    //  unsigned char char AchsKopplung1;            // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
1116
    { param_AchsKopplung2              ,   1 },    //  unsigned char char AchsKopplung2;            // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1117
    { param_CouplingYawCorrection      ,   1 },    //  unsigned char char CouplingYawCorrection;    // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1118
    { param_WinkelUmschlagNick         ,   1 },    //  unsigned char char WinkelUmschlagNick;       // Wert: 0-250  180°-Punkt
1119
    { param_WinkelUmschlagRoll         ,   1 },    //  unsigned char char WinkelUmschlagRoll;       // Wert: 0-250  180°-Punkt
1120
    { param_GyroAccAbgleich            ,   1 },    //  unsigned char char GyroAccAbgleich;          // 1/k  (Koppel_ACC_Wirkung)
1121
    { param_Driftkomp                  ,   1 },    //  unsigned char char Driftkomp;
1122
    { param_DynamicStability           ,   1 },    //  unsigned char char DynamicStability;
1123
    { param_UserParam5                 ,   1 },    //  unsigned char char UserParam5;               // Wert : 0-250
1124
    { param_UserParam6                 ,   1 },    //  unsigned char char UserParam6;               // Wert : 0-250
1125
    { param_UserParam7                 ,   1 },    //  unsigned char char UserParam7;               // Wert : 0-250
1126
    { param_UserParam8                 ,   1 },    //  unsigned char char UserParam8;               // Wert : 0-250
1127
    { param_J16Bitmask                 ,   1 },    //  unsigned char char J16Bitmask;               // for the J16 Output
1128
    { param_J16Timing                  ,   1 },    //  unsigned char char J16Timing;                // for the J16 Output
1129
    { param_J17Bitmask                 ,   1 },    //  unsigned char char J17Bitmask;               // for the J17 Output
1130
    { param_J17Timing                  ,   1 },    //  unsigned char char J17Timing;                // for the J17 Output
1131
    { param_WARN_J16_Bitmask           ,   1 },    //  unsigned char char WARN_J16_Bitmask;         // for the J16 Output
1132
    { param_WARN_J17_Bitmask           ,   1 },    //  unsigned char char WARN_J17_Bitmask;         // for the J17 Output
1133
    { param_AutoPhotoDistance          ,   1 },    //  unsigned char char AutoPhotoDistance;        // Auto Photo   // ab Rev. 100 (ehemals NaviOut1Parameter)
1134
    { param_NaviGpsModeChannel         ,   1 },    //  unsigned char char NaviGpsModeChannel;       // Parameters for the Naviboard
1135
    { param_NaviGpsGain                ,   1 },    //  unsigned char char NaviGpsGain;
1136
    { param_NaviGpsP                   ,   1 },    //  unsigned char char NaviGpsP;
1137
    { param_NaviGpsI                   ,   1 },    //  unsigned char char NaviGpsI;
1138
    { param_NaviGpsD                   ,   1 },    //  unsigned char char NaviGpsD;
1139
    { param_NaviGpsPLimit              ,   1 },    //  unsigned char char NaviGpsPLimit;
1140
    { param_NaviGpsILimit              ,   1 },    //  unsigned char char NaviGpsILimit;
1141
    { param_NaviGpsDLimit              ,   1 },    //  unsigned char char NaviGpsDLimit;
1142
    { param_NaviGpsA                   ,   1 },    //  unsigned char char NaviGpsA;
1143
    { param_NaviGpsMinSat              ,   1 },    //  unsigned char char NaviGpsMinSat;
1144
    { param_NaviStickThreshold         ,   1 },    //  unsigned char char NaviStickThreshold;
1145
    { param_NaviWindCorrection         ,   1 },    //  unsigned char char NaviWindCorrection;
1146
    { param_NaviAccCompensation        ,   1 },    //  unsigned char char NaviAccCompensation;      // New since 0.86 -> was: SpeedCompensation
1147
    { param_NaviMaxFlyingRange         ,   1 },    //  unsigned char char NaviMaxFlyingRange;       // in 10m
1148
    { param_NaviAngleLimitation        ,   1 },    //  unsigned char char NaviAngleLimitation;
1149
    { param_NaviPH_LoginTime           ,   1 },    //  unsigned char char NaviPH_LoginTime;
1150
    { param_NaviDescendRange           ,   1 },    //  unsigned char char NaviDescendRange;
1151
    { param_ExternalControl            ,   1 },    //  unsigned char char ExternalControl;          // for serial Control
1152
    { param_OrientationAngle           ,   1 },    //  unsigned char char OrientationAngle;         // Where is the front-direction?
1153
    { param_CareFreeChannel            ,   1 },    //  unsigned char char CareFreeChannel;          // switch for CareFree
1154
    { param_MotorSafetySwitch          ,   1 },    //  unsigned char char MotorSafetySwitch;
1155
    { param_MotorSmooth                ,   1 },    //  unsigned char char MotorSmooth;
1156
    { param_ComingHomeAltitude         ,   1 },    //  unsigned char char ComingHomeAltitude;
1157
    { param_FailSafeTime               ,   1 },    //  unsigned char char FailSafeTime;
1158
    { param_MaxAltitude                ,   1 },    //  unsigned char char MaxAltitude;
1159
    { param_FailsafeChannel            ,   1 },    //  unsigned char char FailsafeChannel;          // if the value of this channel is > 100, the MK reports "RC-Lost"
1160
    { param_ServoFilterNick            ,   1 },    //  unsigned char char ServoFilterNick;
1161
    { param_ServoFilterRoll            ,   1 },    //  unsigned char char ServoFilterRoll;
1162
    { param_Servo3OnValue              ,   1 },    //  unsigned char char Servo3OnValue;            // ab Rev. 101 (FC 2.05f)
1163
    { param_Servo3OffValue             ,   1 },    //  unsigned char char Servo3OffValue;           // ab Rev. 101 (FC 2.05f)
1164
    { param_Servo4OnValue              ,   1 },    //  unsigned char char Servo4OnValue;            // ab Rev. 101 (FC 2.05f)
1165
    { param_Servo4OffValue             ,   1 },    //  unsigned char char Servo4OffValue;           // ab Rev. 101 (FC 2.05f)
1166
    { param_StartLandChannel           ,   1 },    //  unsigned char char StartLandChannel;
1167
    { param_LandingSpeed               ,   1 },    //  unsigned char char LandingSpeed;
1168
    { param_CompassOffset              ,   1 },    //  unsigned char char CompassOffset;
1169
    { param_AutoLandingVoltage         ,   1 },    //  unsigned char char AutoLandingVoltage;       // in 0,1V  0 -> disabled
1170
    { param_ComingHomeVoltage          ,   1 },    //  unsigned char char ComingHomeVoltage;        // in 0,1V  0 -> disabled
1171
    { param_AutoPhotoAtitudes          ,   1 },    //  unsigned char char AutoPhotoAtitudes;        // ab Rev. 100
1172
    { param_SingleWpSpeed              ,   1 },    //  unsigned char char SingleWpSpeed;            // ab Rev. 100
1173
    { param_BitConfig                  ,   1 },    //  unsigned char char BitConfig;                // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
1174
    { param_ServoCompInvert            ,   1 },    //  unsigned char char ServoCompInvert;          // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
1175
    { param_ExtraConfig                ,   1 },    //  unsigned char char ExtraConfig;              // bitcodiert
1176
    { param_GlobalConfig3              ,   1 },    //  unsigned char char GlobalConfig3;            // bitcodiert
1177
    { param_Name                       ,  12 },    //  char               Name[12];
1178
    { param_crc                        ,   1 },    //  unsigned char char crc;                      // must be the last byte!
1179
 
1180
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
1181
 
1182
};  // end: paramset_103[]
1183
 
1184
 
1185
 
1186
//-----------------------------------------------
1187
// FC-Parameter Revision: 104
1188
//
1189
// ab FC-Version: ab 2.09d bis ???
1190
// gefunden in: 2.09d
1191
//
1192
// STRUKTUR-DIFF zu 103:
1193
// add: LandingPulse
1194
//
1195
 
1196
//-----------------------------------------------
1197
paramRevItem_t const paramset_104[] PROGMEM =
1198
{
1199
    { param_Revision                   ,   1 },    //  unsigned char Revision;
1200
    { param_Kanalbelegung              ,  12 },    //  unsigned char char Kanalbelegung[12];        // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
1201
    { param_GlobalConfig               ,   1 },    //  unsigned char char GlobalConfig;             // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
1202
    { param_Hoehe_MinGas               ,   1 },    //  unsigned char char Hoehe_MinGas;             // Wert : 0-100
1203
    { param_Luftdruck_D                ,   1 },    //  unsigned char char Luftdruck_D;              // Wert : 0-250
1204
    { param_HoeheChannel               ,   1 },    //  unsigned char char HoeheChannel;             // Wert : 0-32
1205
    { param_Hoehe_P                    ,   1 },    //  unsigned char char Hoehe_P;                  // Wert : 0-32
1206
    { param_Hoehe_Verstaerkung         ,   1 },    //  unsigned char char Hoehe_Verstaerkung;       // Wert : 0-50
1207
    { param_Hoehe_ACC_Wirkung          ,   1 },    //  unsigned char char Hoehe_ACC_Wirkung;        // Wert : 0-250
1208
    { param_Hoehe_HoverBand            ,   1 },    //  unsigned char char Hoehe_HoverBand;          // Wert : 0-250
1209
    { param_Hoehe_TiltCompensation     ,   1 },    //  unsigned char char Hoehe_TiltCompensation;   // Wert : 0-250
1210
    { param_Hoehe_StickNeutralPoint    ,   1 },    //  unsigned char char Hoehe_StickNeutralPoint;  // Wert : 0-250
1211
    { param_Stick_P                    ,   1 },    //  unsigned char char Stick_P;                  // Wert : 1-6
1212
    { param_Stick_D                    ,   1 },    //  unsigned char char Stick_D;                  // Wert : 0-64
1213
    { param_StickGier_P                ,   1 },    //  unsigned char char StickGier_P;              // Wert : 1-20
1214
    { param_Gas_Min                    ,   1 },    //  unsigned char char Gas_Min;                  // Wert : 0-32
1215
    { param_Gas_Max                    ,   1 },    //  unsigned char char Gas_Max;                  // Wert : 33-250
1216
    { param_GyroAccFaktor              ,   1 },    //  unsigned char char GyroAccFaktor;            // Wert : 1-64
1217
    { param_KompassWirkung             ,   1 },    //  unsigned char char KompassWirkung;           // Wert : 0-32
1218
    { param_Gyro_P                     ,   1 },    //  unsigned char char Gyro_P;                   // Wert : 10-250
1219
    { param_Gyro_I                     ,   1 },    //  unsigned char char Gyro_I;                   // Wert : 0-250
1220
    { param_Gyro_D                     ,   1 },    //  unsigned char char Gyro_D;                   // Wert : 0-250
1221
    { param_Gyro_Gier_P                ,   1 },    //  unsigned char char Gyro_Gier_P;              // Wert : 10-250
1222
    { param_Gyro_Gier_I                ,   1 },    //  unsigned char char Gyro_Gier_I;              // Wert : 0-250
1223
    { param_Gyro_Stability             ,   1 },    //  unsigned char char Gyro_Stability;           // Wert : 0-16
1224
    { param_UnterspannungsWarnung      ,   1 },    //  unsigned char char UnterspannungsWarnung;    // Wert : 0-250
1225
    { param_NotGas                     ,   1 },    //  unsigned char char NotGas;                   // Wert : 0-250     //Gaswert bei Empängsverlust
1226
    { param_NotGasZeit                 ,   1 },    //  unsigned char char NotGasZeit;               // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
1227
    { param_Receiver                   ,   1 },    //  unsigned char char Receiver;                 // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
1228
    { param_I_Faktor                   ,   1 },    //  unsigned char char I_Faktor;                 // Wert : 0-250
1229
    { param_UserParam1                 ,   1 },    //  unsigned char char UserParam1;               // Wert : 0-250
1230
    { param_UserParam2                 ,   1 },    //  unsigned char char UserParam2;               // Wert : 0-250
1231
    { param_UserParam3                 ,   1 },    //  unsigned char char UserParam3;               // Wert : 0-250
1232
    { param_UserParam4                 ,   1 },    //  unsigned char char UserParam4;               // Wert : 0-250
1233
    { param_ServoNickControl           ,   1 },    //  unsigned char char ServoNickControl;         // Wert : 0-250     // Stellung des Servos
1234
    { param_ServoNickComp              ,   1 },    //  unsigned char char ServoNickComp;            // Wert : 0-250     // Einfluss Gyro/Servo
1235
    { param_ServoNickMin               ,   1 },    //  unsigned char char ServoNickMin;             // Wert : 0-250     // Anschlag
1236
    { param_ServoNickMax               ,   1 },    //  unsigned char char ServoNickMax;             // Wert : 0-250     // Anschlag
1237
    { param_ServoRollControl           ,   1 },    //  unsigned char char ServoRollControl;         // Wert : 0-250     // Stellung des Servos
1238
    { param_ServoRollComp              ,   1 },    //  unsigned char char ServoRollComp;            // Wert : 0-250
1239
    { param_ServoRollMin               ,   1 },    //  unsigned char char ServoRollMin;             // Wert : 0-250
1240
    { param_ServoRollMax               ,   1 },    //  unsigned char char ServoRollMax;             // Wert : 0-250
1241
    { param_ServoNickRefresh           ,   1 },    //  unsigned char char ServoNickRefresh;         // Speed of the Servo
1242
    { param_ServoManualControlSpeed    ,   1 },    //  unsigned char char ServoManualControlSpeed;  //
1243
    { param_CamOrientation             ,   1 },    //  unsigned char char CamOrientation;           //
1244
    { param_Servo3                     ,   1 },    //  unsigned char char Servo3;                   // Value or mapping of the Servo Output
1245
    { param_Servo4                     ,   1 },    //  unsigned char char Servo4;                   // Value or mapping of the Servo Output
1246
    { param_Servo5                     ,   1 },    //  unsigned char char Servo5;                   // Value or mapping of the Servo Output
1247
    { param_LoopGasLimit               ,   1 },    //  unsigned char char LoopGasLimit;             // Wert: 0-250  max. Gas während Looping
1248
    { param_LoopThreshold              ,   1 },    //  unsigned char char LoopThreshold;            // Wert: 0-250  Schwelle für Stickausschlag
1249
    { param_LoopHysterese              ,   1 },    //  unsigned char char LoopHysterese;            // Wert: 0-250  Hysterese für Stickausschlag
1250
    { param_AchsKopplung1              ,   1 },    //  unsigned char char AchsKopplung1;            // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
1251
    { param_AchsKopplung2              ,   1 },    //  unsigned char char AchsKopplung2;            // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1252
    { param_CouplingYawCorrection      ,   1 },    //  unsigned char char CouplingYawCorrection;    // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1253
    { param_WinkelUmschlagNick         ,   1 },    //  unsigned char char WinkelUmschlagNick;       // Wert: 0-250  180°-Punkt
1254
    { param_WinkelUmschlagRoll         ,   1 },    //  unsigned char char WinkelUmschlagRoll;       // Wert: 0-250  180°-Punkt
1255
    { param_GyroAccAbgleich            ,   1 },    //  unsigned char char GyroAccAbgleich;          // 1/k  (Koppel_ACC_Wirkung)
1256
    { param_Driftkomp                  ,   1 },    //  unsigned char char Driftkomp;
1257
    { param_DynamicStability           ,   1 },    //  unsigned char char DynamicStability;
1258
    { param_UserParam5                 ,   1 },    //  unsigned char char UserParam5;               // Wert : 0-250
1259
    { param_UserParam6                 ,   1 },    //  unsigned char char UserParam6;               // Wert : 0-250
1260
    { param_UserParam7                 ,   1 },    //  unsigned char char UserParam7;               // Wert : 0-250
1261
    { param_UserParam8                 ,   1 },    //  unsigned char char UserParam8;               // Wert : 0-250
1262
    { param_J16Bitmask                 ,   1 },    //  unsigned char char J16Bitmask;               // for the J16 Output
1263
    { param_J16Timing                  ,   1 },    //  unsigned char char J16Timing;                // for the J16 Output
1264
    { param_J17Bitmask                 ,   1 },    //  unsigned char char J17Bitmask;               // for the J17 Output
1265
    { param_J17Timing                  ,   1 },    //  unsigned char char J17Timing;                // for the J17 Output
1266
    { param_WARN_J16_Bitmask           ,   1 },    //  unsigned char char WARN_J16_Bitmask;         // for the J16 Output
1267
    { param_WARN_J17_Bitmask           ,   1 },    //  unsigned char char WARN_J17_Bitmask;         // for the J17 Output
1268
    { param_AutoPhotoDistance          ,   1 },    //  unsigned char char AutoPhotoDistance;        // Auto Photo   // ab Rev. 100 (ehemals NaviOut1Parameter)
1269
    { param_NaviGpsModeChannel         ,   1 },    //  unsigned char char NaviGpsModeChannel;       // Parameters for the Naviboard
1270
    { param_NaviGpsGain                ,   1 },    //  unsigned char char NaviGpsGain;
1271
    { param_NaviGpsP                   ,   1 },    //  unsigned char char NaviGpsP;
1272
    { param_NaviGpsI                   ,   1 },    //  unsigned char char NaviGpsI;
1273
    { param_NaviGpsD                   ,   1 },    //  unsigned char char NaviGpsD;
1274
    { param_NaviGpsPLimit              ,   1 },    //  unsigned char char NaviGpsPLimit;
1275
    { param_NaviGpsILimit              ,   1 },    //  unsigned char char NaviGpsILimit;
1276
    { param_NaviGpsDLimit              ,   1 },    //  unsigned char char NaviGpsDLimit;
1277
    { param_NaviGpsA                   ,   1 },    //  unsigned char char NaviGpsA;
1278
    { param_NaviGpsMinSat              ,   1 },    //  unsigned char char NaviGpsMinSat;
1279
    { param_NaviStickThreshold         ,   1 },    //  unsigned char char NaviStickThreshold;
1280
    { param_NaviWindCorrection         ,   1 },    //  unsigned char char NaviWindCorrection;
1281
    { param_NaviAccCompensation        ,   1 },    //  unsigned char char NaviAccCompensation;      // New since 0.86 -> was: SpeedCompensation
1282
    { param_NaviMaxFlyingRange         ,   1 },    //  unsigned char char NaviMaxFlyingRange;       // in 10m
1283
    { param_NaviAngleLimitation        ,   1 },    //  unsigned char char NaviAngleLimitation;
1284
    { param_NaviPH_LoginTime           ,   1 },    //  unsigned char char NaviPH_LoginTime;
1285
    { param_NaviDescendRange           ,   1 },    //  unsigned char char NaviDescendRange;
1286
    { param_ExternalControl            ,   1 },    //  unsigned char char ExternalControl;          // for serial Control
1287
    { param_OrientationAngle           ,   1 },    //  unsigned char char OrientationAngle;         // Where is the front-direction?
1288
    { param_CareFreeChannel            ,   1 },    //  unsigned char char CareFreeChannel;          // switch for CareFree
1289
    { param_MotorSafetySwitch          ,   1 },    //  unsigned char char MotorSafetySwitch;
1290
    { param_MotorSmooth                ,   1 },    //  unsigned char char MotorSmooth;
1291
    { param_ComingHomeAltitude         ,   1 },    //  unsigned char char ComingHomeAltitude;
1292
    { param_FailSafeTime               ,   1 },    //  unsigned char char FailSafeTime;
1293
    { param_MaxAltitude                ,   1 },    //  unsigned char char MaxAltitude;
1294
    { param_FailsafeChannel            ,   1 },    //  unsigned char char FailsafeChannel;          // if the value of this channel is > 100, the MK reports "RC-Lost"
1295
    { param_ServoFilterNick            ,   1 },    //  unsigned char char ServoFilterNick;
1296
    { param_ServoFilterRoll            ,   1 },    //  unsigned char char ServoFilterRoll;
1297
    { param_Servo3OnValue              ,   1 },    //  unsigned char char Servo3OnValue;            // ab Rev. 101 (FC 2.05f)
1298
    { param_Servo3OffValue             ,   1 },    //  unsigned char char Servo3OffValue;           // ab Rev. 101 (FC 2.05f)
1299
    { param_Servo4OnValue              ,   1 },    //  unsigned char char Servo4OnValue;            // ab Rev. 101 (FC 2.05f)
1300
    { param_Servo4OffValue             ,   1 },    //  unsigned char char Servo4OffValue;           // ab Rev. 101 (FC 2.05f)
1301
    { param_StartLandChannel           ,   1 },    //  unsigned char char StartLandChannel;
1302
    { param_LandingSpeed               ,   1 },    //  unsigned char char LandingSpeed;
1303
    { param_CompassOffset              ,   1 },    //  unsigned char char CompassOffset;
1304
    { param_AutoLandingVoltage         ,   1 },    //  unsigned char char AutoLandingVoltage;       // in 0,1V  0 -> disabled
1305
    { param_ComingHomeVoltage          ,   1 },    //  unsigned char char ComingHomeVoltage;        // in 0,1V  0 -> disabled
1306
    { param_AutoPhotoAtitudes          ,   1 },    //  unsigned char char AutoPhotoAtitudes;        // ab Rev. 100
1307
    { param_SingleWpSpeed              ,   1 },    //  unsigned char char SingleWpSpeed;            // ab Rev. 100
1308
    { param_LandingPulse               ,   1 },    //  unsigned char char LandingPulse;             // ab Rev. 104 (FC 2.09d)
1309
    { param_BitConfig                  ,   1 },    //  unsigned char char BitConfig;                // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
1310
    { param_ServoCompInvert            ,   1 },    //  unsigned char char ServoCompInvert;          // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
1311
    { param_ExtraConfig                ,   1 },    //  unsigned char char ExtraConfig;              // bitcodiert
1312
    { param_GlobalConfig3              ,   1 },    //  unsigned char char GlobalConfig3;            // bitcodiert
1313
    { param_Name                       ,  12 },    //  char               Name[12];
1314
    { param_crc                        ,   1 },    //  unsigned char char crc;                      // must be the last byte!
1315
 
1316
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
1317
 
1318
};  // end: paramset_104[]
1319
 
1320
//-----------------------------------------------
1321
// FC-Parameter Revision: 105
1322
//
1323
// ab FC-Version: ab 2.09j bis ???
1324
// gefunden in: 2.09j
1325
//
1326
// STRUKTUR-DIFF zu 104:
1327
// add: unsigned char ServoFS_Pos[5];
1328
//
1329
 
1330
//-----------------------------------------------
1331
paramRevItem_t const paramset_105[] PROGMEM =
1332
{
1333
    { param_Revision                   ,   1 },    //  unsigned char Revision;
1334
    { param_Kanalbelegung              ,  12 },    //  unsigned char char Kanalbelegung[12];        // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
1335
    { param_GlobalConfig               ,   1 },    //  unsigned char char GlobalConfig;             // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
1336
    { param_Hoehe_MinGas               ,   1 },    //  unsigned char char Hoehe_MinGas;             // Wert : 0-100
1337
    { param_Luftdruck_D                ,   1 },    //  unsigned char char Luftdruck_D;              // Wert : 0-250
1338
    { param_HoeheChannel               ,   1 },    //  unsigned char char HoeheChannel;             // Wert : 0-32
1339
    { param_Hoehe_P                    ,   1 },    //  unsigned char char Hoehe_P;                  // Wert : 0-32
1340
    { param_Hoehe_Verstaerkung         ,   1 },    //  unsigned char char Hoehe_Verstaerkung;       // Wert : 0-50
1341
    { param_Hoehe_ACC_Wirkung          ,   1 },    //  unsigned char char Hoehe_ACC_Wirkung;        // Wert : 0-250
1342
    { param_Hoehe_HoverBand            ,   1 },    //  unsigned char char Hoehe_HoverBand;          // Wert : 0-250
1343
    { param_Hoehe_TiltCompensation     ,   1 },    //  unsigned char char Hoehe_TiltCompensation;   // Wert : 0-250
1344
    { param_Hoehe_StickNeutralPoint    ,   1 },    //  unsigned char char Hoehe_StickNeutralPoint;  // Wert : 0-250
1345
    { param_Stick_P                    ,   1 },    //  unsigned char char Stick_P;                  // Wert : 1-6
1346
    { param_Stick_D                    ,   1 },    //  unsigned char char Stick_D;                  // Wert : 0-64
1347
    { param_StickGier_P                ,   1 },    //  unsigned char char StickGier_P;              // Wert : 1-20
1348
    { param_Gas_Min                    ,   1 },    //  unsigned char char Gas_Min;                  // Wert : 0-32
1349
    { param_Gas_Max                    ,   1 },    //  unsigned char char Gas_Max;                  // Wert : 33-250
1350
    { param_GyroAccFaktor              ,   1 },    //  unsigned char char GyroAccFaktor;            // Wert : 1-64
1351
    { param_KompassWirkung             ,   1 },    //  unsigned char char KompassWirkung;           // Wert : 0-32
1352
    { param_Gyro_P                     ,   1 },    //  unsigned char char Gyro_P;                   // Wert : 10-250
1353
    { param_Gyro_I                     ,   1 },    //  unsigned char char Gyro_I;                   // Wert : 0-250
1354
    { param_Gyro_D                     ,   1 },    //  unsigned char char Gyro_D;                   // Wert : 0-250
1355
    { param_Gyro_Gier_P                ,   1 },    //  unsigned char char Gyro_Gier_P;              // Wert : 10-250
1356
    { param_Gyro_Gier_I                ,   1 },    //  unsigned char char Gyro_Gier_I;              // Wert : 0-250
1357
    { param_Gyro_Stability             ,   1 },    //  unsigned char char Gyro_Stability;           // Wert : 0-16
1358
    { param_UnterspannungsWarnung      ,   1 },    //  unsigned char char UnterspannungsWarnung;    // Wert : 0-250
1359
    { param_NotGas                     ,   1 },    //  unsigned char char NotGas;                   // Wert : 0-250     //Gaswert bei Empängsverlust
1360
    { param_NotGasZeit                 ,   1 },    //  unsigned char char NotGasZeit;               // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
1361
    { param_Receiver                   ,   1 },    //  unsigned char char Receiver;                 // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
1362
    { param_I_Faktor                   ,   1 },    //  unsigned char char I_Faktor;                 // Wert : 0-250
1363
    { param_UserParam1                 ,   1 },    //  unsigned char char UserParam1;               // Wert : 0-250
1364
    { param_UserParam2                 ,   1 },    //  unsigned char char UserParam2;               // Wert : 0-250
1365
    { param_UserParam3                 ,   1 },    //  unsigned char char UserParam3;               // Wert : 0-250
1366
    { param_UserParam4                 ,   1 },    //  unsigned char char UserParam4;               // Wert : 0-250
1367
    { param_ServoNickControl           ,   1 },    //  unsigned char char ServoNickControl;         // Wert : 0-250     // Stellung des Servos
1368
    { param_ServoNickComp              ,   1 },    //  unsigned char char ServoNickComp;            // Wert : 0-250     // Einfluss Gyro/Servo
1369
    { param_ServoNickMin               ,   1 },    //  unsigned char char ServoNickMin;             // Wert : 0-250     // Anschlag
1370
    { param_ServoNickMax               ,   1 },    //  unsigned char char ServoNickMax;             // Wert : 0-250     // Anschlag
1371
    { param_ServoRollControl           ,   1 },    //  unsigned char char ServoRollControl;         // Wert : 0-250     // Stellung des Servos
1372
    { param_ServoRollComp              ,   1 },    //  unsigned char char ServoRollComp;            // Wert : 0-250
1373
    { param_ServoRollMin               ,   1 },    //  unsigned char char ServoRollMin;             // Wert : 0-250
1374
    { param_ServoRollMax               ,   1 },    //  unsigned char char ServoRollMax;             // Wert : 0-250
1375
    { param_ServoNickRefresh           ,   1 },    //  unsigned char char ServoNickRefresh;         // Speed of the Servo
1376
    { param_ServoManualControlSpeed    ,   1 },    //  unsigned char char ServoManualControlSpeed;  //
1377
    { param_CamOrientation             ,   1 },    //  unsigned char char CamOrientation;           //
1378
    { param_Servo3                     ,   1 },    //  unsigned char char Servo3;                   // Value or mapping of the Servo Output
1379
    { param_Servo4                     ,   1 },    //  unsigned char char Servo4;                   // Value or mapping of the Servo Output
1380
    { param_Servo5                     ,   1 },    //  unsigned char char Servo5;                   // Value or mapping of the Servo Output
1381
    { param_LoopGasLimit               ,   1 },    //  unsigned char char LoopGasLimit;             // Wert: 0-250  max. Gas während Looping
1382
    { param_LoopThreshold              ,   1 },    //  unsigned char char LoopThreshold;            // Wert: 0-250  Schwelle für Stickausschlag
1383
    { param_LoopHysterese              ,   1 },    //  unsigned char char LoopHysterese;            // Wert: 0-250  Hysterese für Stickausschlag
1384
    { param_AchsKopplung1              ,   1 },    //  unsigned char char AchsKopplung1;            // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
1385
    { param_AchsKopplung2              ,   1 },    //  unsigned char char AchsKopplung2;            // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1386
    { param_CouplingYawCorrection      ,   1 },    //  unsigned char char CouplingYawCorrection;    // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1387
    { param_WinkelUmschlagNick         ,   1 },    //  unsigned char char WinkelUmschlagNick;       // Wert: 0-250  180°-Punkt
1388
    { param_WinkelUmschlagRoll         ,   1 },    //  unsigned char char WinkelUmschlagRoll;       // Wert: 0-250  180°-Punkt
1389
    { param_GyroAccAbgleich            ,   1 },    //  unsigned char char GyroAccAbgleich;          // 1/k  (Koppel_ACC_Wirkung)
1390
    { param_Driftkomp                  ,   1 },    //  unsigned char char Driftkomp;
1391
    { param_DynamicStability           ,   1 },    //  unsigned char char DynamicStability;
1392
    { param_UserParam5                 ,   1 },    //  unsigned char char UserParam5;               // Wert : 0-250
1393
    { param_UserParam6                 ,   1 },    //  unsigned char char UserParam6;               // Wert : 0-250
1394
    { param_UserParam7                 ,   1 },    //  unsigned char char UserParam7;               // Wert : 0-250
1395
    { param_UserParam8                 ,   1 },    //  unsigned char char UserParam8;               // Wert : 0-250
1396
    { param_J16Bitmask                 ,   1 },    //  unsigned char char J16Bitmask;               // for the J16 Output
1397
    { param_J16Timing                  ,   1 },    //  unsigned char char J16Timing;                // for the J16 Output
1398
    { param_J17Bitmask                 ,   1 },    //  unsigned char char J17Bitmask;               // for the J17 Output
1399
    { param_J17Timing                  ,   1 },    //  unsigned char char J17Timing;                // for the J17 Output
1400
    { param_WARN_J16_Bitmask           ,   1 },    //  unsigned char char WARN_J16_Bitmask;         // for the J16 Output
1401
    { param_WARN_J17_Bitmask           ,   1 },    //  unsigned char char WARN_J17_Bitmask;         // for the J17 Output
1402
    { param_AutoPhotoDistance          ,   1 },    //  unsigned char char AutoPhotoDistance;        // Auto Photo   // ab Rev. 100 (ehemals NaviOut1Parameter)
1403
    { param_NaviGpsModeChannel         ,   1 },    //  unsigned char char NaviGpsModeChannel;       // Parameters for the Naviboard
1404
    { param_NaviGpsGain                ,   1 },    //  unsigned char char NaviGpsGain;
1405
    { param_NaviGpsP                   ,   1 },    //  unsigned char char NaviGpsP;
1406
    { param_NaviGpsI                   ,   1 },    //  unsigned char char NaviGpsI;
1407
    { param_NaviGpsD                   ,   1 },    //  unsigned char char NaviGpsD;
1408
    { param_NaviGpsPLimit              ,   1 },    //  unsigned char char NaviGpsPLimit;
1409
    { param_NaviGpsILimit              ,   1 },    //  unsigned char char NaviGpsILimit;
1410
    { param_NaviGpsDLimit              ,   1 },    //  unsigned char char NaviGpsDLimit;
1411
    { param_NaviGpsA                   ,   1 },    //  unsigned char char NaviGpsA;
1412
    { param_NaviGpsMinSat              ,   1 },    //  unsigned char char NaviGpsMinSat;
1413
    { param_NaviStickThreshold         ,   1 },    //  unsigned char char NaviStickThreshold;
1414
    { param_NaviWindCorrection         ,   1 },    //  unsigned char char NaviWindCorrection;
1415
    { param_NaviAccCompensation        ,   1 },    //  unsigned char char NaviAccCompensation;      // New since 0.86 -> was: SpeedCompensation
1416
    { param_NaviMaxFlyingRange         ,   1 },    //  unsigned char char NaviMaxFlyingRange;       // in 10m
1417
    { param_NaviAngleLimitation        ,   1 },    //  unsigned char char NaviAngleLimitation;
1418
    { param_NaviPH_LoginTime           ,   1 },    //  unsigned char char NaviPH_LoginTime;
1419
    { param_NaviDescendRange           ,   1 },    //  unsigned char char NaviDescendRange;
1420
    { param_ExternalControl            ,   1 },    //  unsigned char char ExternalControl;          // for serial Control
1421
    { param_OrientationAngle           ,   1 },    //  unsigned char char OrientationAngle;         // Where is the front-direction?
1422
    { param_CareFreeChannel            ,   1 },    //  unsigned char char CareFreeChannel;          // switch for CareFree
1423
    { param_MotorSafetySwitch          ,   1 },    //  unsigned char char MotorSafetySwitch;
1424
    { param_MotorSmooth                ,   1 },    //  unsigned char char MotorSmooth;
1425
    { param_ComingHomeAltitude         ,   1 },    //  unsigned char char ComingHomeAltitude;
1426
    { param_FailSafeTime               ,   1 },    //  unsigned char char FailSafeTime;
1427
    { param_MaxAltitude                ,   1 },    //  unsigned char char MaxAltitude;
1428
    { param_FailsafeChannel            ,   1 },    //  unsigned char char FailsafeChannel;          // if the value of this channel is > 100, the MK reports "RC-Lost"
1429
    { param_ServoFilterNick            ,   1 },    //  unsigned char char ServoFilterNick;
1430
    { param_ServoFilterRoll            ,   1 },    //  unsigned char char ServoFilterRoll;
1431
    { param_Servo3OnValue              ,   1 },    //  unsigned char char Servo3OnValue;            // ab Rev. 101 (FC 2.05f)
1432
    { param_Servo3OffValue             ,   1 },    //  unsigned char char Servo3OffValue;           // ab Rev. 101 (FC 2.05f)
1433
    { param_Servo4OnValue              ,   1 },    //  unsigned char char Servo4OnValue;            // ab Rev. 101 (FC 2.05f)
1434
    { param_Servo4OffValue             ,   1 },    //  unsigned char char Servo4OffValue;           // ab Rev. 101 (FC 2.05f)
1435
    { param_ServoFS_Pos                ,   5 },    //  unsigned char ServoFS_Pos[5];                // ab Rev. 105 (FC 2.09i)
1436
    { param_StartLandChannel           ,   1 },    //  unsigned char char StartLandChannel;
1437
    { param_LandingSpeed               ,   1 },    //  unsigned char char LandingSpeed;
1438
    { param_CompassOffset              ,   1 },    //  unsigned char char CompassOffset;
1439
    { param_AutoLandingVoltage         ,   1 },    //  unsigned char char AutoLandingVoltage;       // in 0,1V  0 -> disabled
1440
    { param_ComingHomeVoltage          ,   1 },    //  unsigned char char ComingHomeVoltage;        // in 0,1V  0 -> disabled
1441
    { param_AutoPhotoAtitudes          ,   1 },    //  unsigned char char AutoPhotoAtitudes;        // ab Rev. 100
1442
    { param_SingleWpSpeed              ,   1 },    //  unsigned char char SingleWpSpeed;            // ab Rev. 100
1443
    { param_LandingPulse               ,   1 },    //  unsigned char char LandingPulse;             // ab Rev. 104 (FC 2.09d)
1444
    { param_BitConfig                  ,   1 },    //  unsigned char char BitConfig;                // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
1445
    { param_ServoCompInvert            ,   1 },    //  unsigned char char ServoCompInvert;          // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
1446
    { param_ExtraConfig                ,   1 },    //  unsigned char char ExtraConfig;              // bitcodiert
1447
    { param_GlobalConfig3              ,   1 },    //  unsigned char char GlobalConfig3;            // bitcodiert
1448
    { param_Name                       ,  12 },    //  char               Name[12];
1449
    { param_crc                        ,   1 },    //  unsigned char char crc;                      // must be the last byte!
1450
 
1451
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
1452
 
1453
};  // end: paramset_105[]
1454
 
1455
 
1456
//-----------------------------------------------
1457
// FC-Parameter Revision: 106
1458
//
1459
// ab FC-Version: ab 2.11a bis ???
1460
// gefunden in: 2.11a
1461
//
1462
// STRUKTUR-DIFF zu 105:
1463
// add: unsigned char SingleWpControlChannel;
1464
//      unsigned char MenuKeyChannel;
1465
 
1466
//
1467
 
1468
//-----------------------------------------------
1469
paramRevItem_t const paramset_106[] PROGMEM =
1470
{
1471
    { param_Revision                   ,   1 },    //  unsigned char Revision;
1472
    { param_Kanalbelegung              ,  12 },    //  unsigned char char Kanalbelegung[12];        // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
1473
    { param_GlobalConfig               ,   1 },    //  unsigned char char GlobalConfig;             // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
1474
    { param_Hoehe_MinGas               ,   1 },    //  unsigned char char Hoehe_MinGas;             // Wert : 0-100
1475
    { param_Luftdruck_D                ,   1 },    //  unsigned char char Luftdruck_D;              // Wert : 0-250
1476
    { param_HoeheChannel               ,   1 },    //  unsigned char char HoeheChannel;             // Wert : 0-32
1477
    { param_Hoehe_P                    ,   1 },    //  unsigned char char Hoehe_P;                  // Wert : 0-32
1478
    { param_Hoehe_Verstaerkung         ,   1 },    //  unsigned char char Hoehe_Verstaerkung;       // Wert : 0-50
1479
    { param_Hoehe_ACC_Wirkung          ,   1 },    //  unsigned char char Hoehe_ACC_Wirkung;        // Wert : 0-250
1480
    { param_Hoehe_HoverBand            ,   1 },    //  unsigned char char Hoehe_HoverBand;          // Wert : 0-250
1481
    { param_Hoehe_TiltCompensation     ,   1 },    //  unsigned char char Hoehe_TiltCompensation;   // Wert : 0-250
1482
    { param_Hoehe_StickNeutralPoint    ,   1 },    //  unsigned char char Hoehe_StickNeutralPoint;  // Wert : 0-250
1483
    { param_Stick_P                    ,   1 },    //  unsigned char char Stick_P;                  // Wert : 1-6
1484
    { param_Stick_D                    ,   1 },    //  unsigned char char Stick_D;                  // Wert : 0-64
1485
    { param_StickGier_P                ,   1 },    //  unsigned char char StickGier_P;              // Wert : 1-20
1486
    { param_Gas_Min                    ,   1 },    //  unsigned char char Gas_Min;                  // Wert : 0-32
1487
    { param_Gas_Max                    ,   1 },    //  unsigned char char Gas_Max;                  // Wert : 33-250
1488
    { param_GyroAccFaktor              ,   1 },    //  unsigned char char GyroAccFaktor;            // Wert : 1-64
1489
    { param_KompassWirkung             ,   1 },    //  unsigned char char KompassWirkung;           // Wert : 0-32
1490
    { param_Gyro_P                     ,   1 },    //  unsigned char char Gyro_P;                   // Wert : 10-250
1491
    { param_Gyro_I                     ,   1 },    //  unsigned char char Gyro_I;                   // Wert : 0-250
1492
    { param_Gyro_D                     ,   1 },    //  unsigned char char Gyro_D;                   // Wert : 0-250
1493
    { param_Gyro_Gier_P                ,   1 },    //  unsigned char char Gyro_Gier_P;              // Wert : 10-250
1494
    { param_Gyro_Gier_I                ,   1 },    //  unsigned char char Gyro_Gier_I;              // Wert : 0-250
1495
    { param_Gyro_Stability             ,   1 },    //  unsigned char char Gyro_Stability;           // Wert : 0-16
1496
    { param_UnterspannungsWarnung      ,   1 },    //  unsigned char char UnterspannungsWarnung;    // Wert : 0-250
1497
    { param_NotGas                     ,   1 },    //  unsigned char char NotGas;                   // Wert : 0-250     //Gaswert bei Empängsverlust
1498
    { param_NotGasZeit                 ,   1 },    //  unsigned char char NotGasZeit;               // Wert : 0-250     // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
1499
    { param_Receiver                   ,   1 },    //  unsigned char char Receiver;                 // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
1500
    { param_I_Faktor                   ,   1 },    //  unsigned char char I_Faktor;                 // Wert : 0-250
1501
    { param_UserParam1                 ,   1 },    //  unsigned char char UserParam1;               // Wert : 0-250
1502
    { param_UserParam2                 ,   1 },    //  unsigned char char UserParam2;               // Wert : 0-250
1503
    { param_UserParam3                 ,   1 },    //  unsigned char char UserParam3;               // Wert : 0-250
1504
    { param_UserParam4                 ,   1 },    //  unsigned char char UserParam4;               // Wert : 0-250
1505
    { param_ServoNickControl           ,   1 },    //  unsigned char char ServoNickControl;         // Wert : 0-250     // Stellung des Servos
1506
    { param_ServoNickComp              ,   1 },    //  unsigned char char ServoNickComp;            // Wert : 0-250     // Einfluss Gyro/Servo
1507
    { param_ServoNickMin               ,   1 },    //  unsigned char char ServoNickMin;             // Wert : 0-250     // Anschlag
1508
    { param_ServoNickMax               ,   1 },    //  unsigned char char ServoNickMax;             // Wert : 0-250     // Anschlag
1509
    { param_ServoRollControl           ,   1 },    //  unsigned char char ServoRollControl;         // Wert : 0-250     // Stellung des Servos
1510
    { param_ServoRollComp              ,   1 },    //  unsigned char char ServoRollComp;            // Wert : 0-250
1511
    { param_ServoRollMin               ,   1 },    //  unsigned char char ServoRollMin;             // Wert : 0-250
1512
    { param_ServoRollMax               ,   1 },    //  unsigned char char ServoRollMax;             // Wert : 0-250
1513
    { param_ServoNickRefresh           ,   1 },    //  unsigned char char ServoNickRefresh;         // Speed of the Servo
1514
    { param_ServoManualControlSpeed    ,   1 },    //  unsigned char char ServoManualControlSpeed;  //
1515
    { param_CamOrientation             ,   1 },    //  unsigned char char CamOrientation;           //
1516
    { param_Servo3                     ,   1 },    //  unsigned char char Servo3;                   // Value or mapping of the Servo Output
1517
    { param_Servo4                     ,   1 },    //  unsigned char char Servo4;                   // Value or mapping of the Servo Output
1518
    { param_Servo5                     ,   1 },    //  unsigned char char Servo5;                   // Value or mapping of the Servo Output
1519
    { param_LoopGasLimit               ,   1 },    //  unsigned char char LoopGasLimit;             // Wert: 0-250  max. Gas während Looping
1520
    { param_LoopThreshold              ,   1 },    //  unsigned char char LoopThreshold;            // Wert: 0-250  Schwelle für Stickausschlag
1521
    { param_LoopHysterese              ,   1 },    //  unsigned char char LoopHysterese;            // Wert: 0-250  Hysterese für Stickausschlag
1522
    { param_AchsKopplung1              ,   1 },    //  unsigned char char AchsKopplung1;            // Wert: 0-250  Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
1523
    { param_AchsKopplung2              ,   1 },    //  unsigned char char AchsKopplung2;            // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1524
    { param_CouplingYawCorrection      ,   1 },    //  unsigned char char CouplingYawCorrection;    // Wert: 0-250  Faktor, mit dem Nick und Roll verkoppelt werden
1525
    { param_WinkelUmschlagNick         ,   1 },    //  unsigned char char WinkelUmschlagNick;       // Wert: 0-250  180°-Punkt
1526
    { param_WinkelUmschlagRoll         ,   1 },    //  unsigned char char WinkelUmschlagRoll;       // Wert: 0-250  180°-Punkt
1527
    { param_GyroAccAbgleich            ,   1 },    //  unsigned char char GyroAccAbgleich;          // 1/k  (Koppel_ACC_Wirkung)
1528
    { param_Driftkomp                  ,   1 },    //  unsigned char char Driftkomp;
1529
    { param_DynamicStability           ,   1 },    //  unsigned char char DynamicStability;
1530
    { param_UserParam5                 ,   1 },    //  unsigned char char UserParam5;               // Wert : 0-250
1531
    { param_UserParam6                 ,   1 },    //  unsigned char char UserParam6;               // Wert : 0-250
1532
    { param_UserParam7                 ,   1 },    //  unsigned char char UserParam7;               // Wert : 0-250
1533
    { param_UserParam8                 ,   1 },    //  unsigned char char UserParam8;               // Wert : 0-250
1534
    { param_J16Bitmask                 ,   1 },    //  unsigned char char J16Bitmask;               // for the J16 Output
1535
    { param_J16Timing                  ,   1 },    //  unsigned char char J16Timing;                // for the J16 Output
1536
    { param_J17Bitmask                 ,   1 },    //  unsigned char char J17Bitmask;               // for the J17 Output
1537
    { param_J17Timing                  ,   1 },    //  unsigned char char J17Timing;                // for the J17 Output
1538
    { param_WARN_J16_Bitmask           ,   1 },    //  unsigned char char WARN_J16_Bitmask;         // for the J16 Output
1539
    { param_WARN_J17_Bitmask           ,   1 },    //  unsigned char char WARN_J17_Bitmask;         // for the J17 Output
1540
    { param_AutoPhotoDistance          ,   1 },    //  unsigned char char AutoPhotoDistance;        // Auto Photo   // ab Rev. 100 (ehemals NaviOut1Parameter)
1541
    { param_NaviGpsModeChannel         ,   1 },    //  unsigned char char NaviGpsModeChannel;       // Parameters for the Naviboard
1542
    { param_NaviGpsGain                ,   1 },    //  unsigned char char NaviGpsGain;
1543
    { param_NaviGpsP                   ,   1 },    //  unsigned char char NaviGpsP;
1544
    { param_NaviGpsI                   ,   1 },    //  unsigned char char NaviGpsI;
1545
    { param_NaviGpsD                   ,   1 },    //  unsigned char char NaviGpsD;
1546
    { param_NaviGpsPLimit              ,   1 },    //  unsigned char char NaviGpsPLimit;
1547
    { param_NaviGpsILimit              ,   1 },    //  unsigned char char NaviGpsILimit;
1548
    { param_NaviGpsDLimit              ,   1 },    //  unsigned char char NaviGpsDLimit;
1549
    { param_NaviGpsA                   ,   1 },    //  unsigned char char NaviGpsA;
1550
    { param_NaviGpsMinSat              ,   1 },    //  unsigned char char NaviGpsMinSat;
1551
    { param_NaviStickThreshold         ,   1 },    //  unsigned char char NaviStickThreshold;
1552
    { param_NaviWindCorrection         ,   1 },    //  unsigned char char NaviWindCorrection;
1553
    { param_NaviAccCompensation        ,   1 },    //  unsigned char char NaviAccCompensation;      // New since 0.86 -> was: SpeedCompensation
1554
    { param_NaviMaxFlyingRange         ,   1 },    //  unsigned char char NaviMaxFlyingRange;       // in 10m
1555
    { param_NaviAngleLimitation        ,   1 },    //  unsigned char char NaviAngleLimitation;
1556
    { param_NaviPH_LoginTime           ,   1 },    //  unsigned char char NaviPH_LoginTime;
1557
    { param_NaviDescendRange           ,   1 },    //  unsigned char char NaviDescendRange;
1558
    { param_ExternalControl            ,   1 },    //  unsigned char char ExternalControl;          // for serial Control
1559
    { param_OrientationAngle           ,   1 },    //  unsigned char char OrientationAngle;         // Where is the front-direction?
1560
    { param_CareFreeChannel            ,   1 },    //  unsigned char char CareFreeChannel;          // switch for CareFree
1561
    { param_MotorSafetySwitch          ,   1 },    //  unsigned char char MotorSafetySwitch;
1562
    { param_MotorSmooth                ,   1 },    //  unsigned char char MotorSmooth;
1563
    { param_ComingHomeAltitude         ,   1 },    //  unsigned char char ComingHomeAltitude;
1564
    { param_FailSafeTime               ,   1 },    //  unsigned char char FailSafeTime;
1565
    { param_MaxAltitude                ,   1 },    //  unsigned char char MaxAltitude;
1566
    { param_FailsafeChannel            ,   1 },    //  unsigned char char FailsafeChannel;          // if the value of this channel is > 100, the MK reports "RC-Lost"
1567
    { param_ServoFilterNick            ,   1 },    //  unsigned char char ServoFilterNick;
1568
    { param_ServoFilterRoll            ,   1 },    //  unsigned char char ServoFilterRoll;
1569
    { param_Servo3OnValue              ,   1 },    //  unsigned char char Servo3OnValue;            // ab Rev. 101 (FC 2.05f)
1570
    { param_Servo3OffValue             ,   1 },    //  unsigned char char Servo3OffValue;           // ab Rev. 101 (FC 2.05f)
1571
    { param_Servo4OnValue              ,   1 },    //  unsigned char char Servo4OnValue;            // ab Rev. 101 (FC 2.05f)
1572
    { param_Servo4OffValue             ,   1 },    //  unsigned char char Servo4OffValue;           // ab Rev. 101 (FC 2.05f)
1573
    { param_ServoFS_Pos                ,   5 },    //  unsigned char ServoFS_Pos[5];                // ab Rev. 105 (FC 2.09i)
1574
    { param_StartLandChannel           ,   1 },    //  unsigned char char StartLandChannel;
1575
    { param_LandingSpeed               ,   1 },    //  unsigned char char LandingSpeed;
1576
    { param_CompassOffset              ,   1 },    //  unsigned char char CompassOffset;
1577
    { param_AutoLandingVoltage         ,   1 },    //  unsigned char char AutoLandingVoltage;       // in 0,1V  0 -> disabled
1578
    { param_ComingHomeVoltage          ,   1 },    //  unsigned char char ComingHomeVoltage;        // in 0,1V  0 -> disabled
1579
    { param_AutoPhotoAtitudes          ,   1 },    //  unsigned char char AutoPhotoAtitudes;        // ab Rev. 100
1580
    { param_SingleWpSpeed              ,   1 },    //  unsigned char char SingleWpSpeed;            // ab Rev. 100
1581
    { param_LandingPulse               ,   1 },    //  unsigned char char LandingPulse;             // ab Rev. 104 (FC 2.09d)
1582
    { param_SingleWpControlChannel     ,   1 },    //  unsigned char SingleWpControlChannel;        // ab Rev. 106 (FC2.11a)
1583
    { param_MenuKeyChannel             ,   1 },    //  unsigned char MenuKeyChannel;                // ab Rev. 106 (FC2.11a)
1584
    { param_BitConfig                  ,   1 },    //  unsigned char char BitConfig;                // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
1585
    { param_ServoCompInvert            ,   1 },    //  unsigned char char ServoCompInvert;          // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
1586
    { param_ExtraConfig                ,   1 },    //  unsigned char char ExtraConfig;              // bitcodiert
1587
    { param_GlobalConfig3              ,   1 },    //  unsigned char char GlobalConfig3;            // bitcodiert
1588
    { param_Name                       ,  12 },    //  char               Name[12];
1589
    { param_crc                        ,   1 },    //  unsigned char char crc;                      // must be the last byte!
1590
 
1591
    { param_EOF                        ,   0 }     // END OF PARAM-LIST - MUST BE THE LAST!!
1592
 
1593
};  // end: paramset_106[]
1594
 
1595
 
1596
 
1597
 
1598
//#############################################################################################
1599
//# 1b. Zuweisungstabelle: Revision -> paramset_xxx
1600
//#############################################################################################
1601
 
1602
typedef struct
1603
{
1604
    unsigned char Revision;
1605
    const paramRevItem_t *RevisionTable;
1606
} paramsetRevMap_t;
1607
 
1608
#define MAPEOF      255
1609
 
1610
 
1611
//----------------------------------------------------------------
1612
// Mappingtabelle zwischen FC-Revision und Paramset-Tabelle
1613
//
1614
// Anmerkung bzgl. Groesse:
1615
//  Angenommen man wuerde die Rev 97 bis 90 weglassen, dann
1616
//  wuerde man ca. 1 KByte sparen
1617
//----------------------------------------------------------------
1618
paramsetRevMap_t paramsetRevMap[] =
1619
{
1620
  {  106   , paramset_106 },    // 2.11a
1621
  {  105   , paramset_105 },    // 2.09j
1622
  {  104   , paramset_104 },    // 2.09d
1623
  {  103   , paramset_103 },    // 2.07f
1624
  {  102   , paramset_102 },    // 2.05g (bis min. 2.06b)
1625
  {  101   , paramset_101 },    // 2.05f (eingeschraenkte Unterstuetzung - ) nur in einer einzigen Betaversion vorhanden!)
1626
  {  100   , paramset_100 },    // 2.05e (Anmerkung OG 06.04.2014: ggf. spaeter loeschen um Platz zu sparen da diese Version nur in einigen wenigen Betaversionen vorhanden ist)
1627
  // Rev. 99: nicht vorhanden; ignorieren
1628
  {  98    , paramset_098 },    // 2.03d
1629
  {  97    , paramset_097 },    // 2.02b
1630
  {  96    , paramset_095 },    // ???                  (keine Struktur-Aenderung zu 095)
1631
  {  95    , paramset_095 },    // 0.90L, 2.00a, 2.00e
1632
  {  94    , paramset_094 },    // eingeschraenkte Unterstuetzung; 0.91a
1633
  {  93    , paramset_093 },    // eingeschraenkte Unterstuetzung; 0.90e, 0.90g, 0.90j
1634
  {  92    , paramset_093 },    // eingeschraenkte Unterstuetzung; 0.90d                (keine Struktur-Aenderung zu 093)
1635
  {  91    , paramset_091 },    // eingeschraenkte Unterstuetzung; 0.88m, 0.88n
1636
  {  90    , paramset_091 },    // eingeschraenkte Unterstuetzung; 0.88e                (keine Struktur-Aenderung zu 091)
1637
 
1638
  {  MAPEOF, 0            }     // END OF LIST - MUST BE THE LAST!!
1639
};
1640
 
1641
 
1642
 
1643
 
1644
//#############################################################################################
1645
//# 2. Konfigurationstabelle der paramSubID's (Bit- und Bytefelder)
1646
//#############################################################################################
1647
 
1648
//---------------------------------------
1649
// struct: einzelnes Parameter-SubItem
1650
//---------------------------------------
1651
typedef struct
1652
{
1653
    unsigned char paramSubID;       // groesser/gleich PARAMSUBITEMS
1654
    unsigned char paramID;          // -> mapping auf entsprechende paramID
1655
    unsigned char subType;          // SUBTYPE_BIT  oder  SUBTYPE_BYTE
1656
    unsigned char subIndex;         // bei SUBTYPE_BIT: Bitmask  z.b. 0x02
1657
                                    // bei SUBTYPE_BYTE: index des Bytes (siehe param_Kanalbelegung)
1658
    unsigned char von_Revision;     // ab welcher FC-Revision ist das SubItem vorhanden (0=immer)
1659
    unsigned char bis_Revision;     // bis zu welcher FC-Revision ist das SubItem vorhanden (0=immer)
1660
} paramSubItem_t;
1661
 
1662
 
1663
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
1664
//                                                                                                                     +- von_Revision
1665
//                                                                                                                     |
1666
//  +- paramSubID                             +- gehoert zu?         +- Bit/Byte?   +- Bit/Byte der paramID            |  +- bis_Revision
1667
//  |                                         |                      |              |                                  |  |
1668
//--|-----------------------------------------|----------------------|--------------|----------------------------------|--|----------------------------------------------
1669
paramSubItem_t const paramSubItem[] PROGMEM =
1670
{
1671
  { param_ServoCompInvert_SERVO_NICK_INV    , param_ServoCompInvert, SUBTYPE_BIT,   SERVO_NICK_INV                         ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: SVNick                        0x01
1672
  { param_ServoCompInvert_SERVO_ROLL_INV    , param_ServoCompInvert, SUBTYPE_BIT,   SERVO_ROLL_INV                          ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: SVRoll                        0x02
1673
  { param_ServoCompInvert_SERVO_RELATIVE    , param_ServoCompInvert, SUBTYPE_BIT,   SERVO_RELATIVE                        ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: SVRelMov                      0x04
1674
 
1675
  { param_ExtraConfig_HeightLimit           , param_ExtraConfig,     SUBTYPE_BIT,   CFG2_HEIGHT_LIMIT               ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG2_HEIGHT_LIMIT             0x01
1676
  { param_ExtraConfig_HeightVario           , param_ExtraConfig,     SUBTYPE_BITN,  CFG2_HEIGHT_LIMIT               ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG2_HEIGHT_LIMIT             0x01 negiert zu param_ExtraConfig_HeightLimit
1677
  { param_ExtraConfig_VarioBeep             , param_ExtraConfig,     SUBTYPE_BIT,   CFG2_VARIO_BEEP                 ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG2_VARIO_BEEP               0x02
1678
  { param_ExtraConfig_SensitiveRc           , param_ExtraConfig,     SUBTYPE_BIT,   CFG_SENSITIVE_RC                ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_SENSITIVE_RC              0x04
1679
  { param_ExtraConfig_33vReference          , param_ExtraConfig,     SUBTYPE_BIT,   CFG_3_3V_REFERENCE              ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_3_3V_REFERENCE            0x08
1680
  { param_ExtraConfig_NoRcOffBeeping        , param_ExtraConfig,     SUBTYPE_BIT,   CFG_NO_RCOFF_BEEPING            ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_NO_RCOFF_BEEPING          0x10
1681
  { param_ExtraConfig_GpsAid                , param_ExtraConfig,     SUBTYPE_BIT,   CFG_GPS_AID                     ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_GPS_AID                   0x20
1682
  { param_ExtraConfig_LearnableCarefree     , param_ExtraConfig,     SUBTYPE_BIT,   CFG_LEARNABLE_CAREFREE          ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_LEARNABLE_CAREFREE        0x40
1683
  { param_ExtraConfig_IgnoreMagErrAtStartup , param_ExtraConfig,     SUBTYPE_BIT,   CFG_IGNORE_MAG_ERR_AT_STARTUP   ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80
1684
 
1685
  { param_BitConfig_LoopOben                , param_BitConfig,       SUBTYPE_BIT,   CFG_LOOP_OBEN                   ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_OBEN                 0x01
1686
  { param_BitConfig_LoopUnten               , param_BitConfig,       SUBTYPE_BIT,   CFG_LOOP_UNTEN                  ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_UNTEN                0x02
1687
  { param_BitConfig_LoopLinks               , param_BitConfig,       SUBTYPE_BIT,   CFG_LOOP_LINKS                  ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_LINKS                0x04
1688
  { param_BitConfig_LoopRechts              , param_BitConfig,       SUBTYPE_BIT,   CFG_LOOP_RECHTS                 ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_RECHTS               0x08
1689
  { param_BitConfig_MotorBlink1             , param_BitConfig,       SUBTYPE_BIT,   CFG_MOTOR_BLINK1                ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_BLINK1              0x10
1690
  { param_BitConfig_MotorOffLed1            , param_BitConfig,       SUBTYPE_BIT,   CFG_MOTOR_OFF_LED1              ,  0,101},    // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_OFF_LED1            0x20
1691
  { param_BitConfig_MotorOffLed2            , param_BitConfig,       SUBTYPE_BIT,   CFG_MOTOR_OFF_LED2              ,  0,101},    // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_OFF_LED2            0x40
1692
  { param_BitConfig_MotorBlink2             , param_BitConfig,       SUBTYPE_BIT,   CFG_MOTOR_BLINK2                ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_BLINK2              0x80
1693
 
1694
  { param_GlobalConfig3_NoSdCardNoStart     , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_NO_SDCARD_NO_START         ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_NO_SDCARD_NO_START       0x01
1695
  { param_GlobalConfig3_DphMaxRadius        , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_DPH_MAX_RADIUS             ,  0,100},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_DPH_MAX_RADIUS           0x02
1696
  { param_GlobalConfig3_VarioFailsafe       , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_VARIO_FAILSAFE             ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_VARIO_FAILSAFE           0x04
1697
  { param_GlobalConfig3_MotorSwitchMode     , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_MOTOR_SWITCH_MODE          ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_MOTOR_SWITCH_MODE        0x08
1698
  { param_GlobalConfig3_NoGpsFixNoStart     , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_NO_GPSFIX_NO_START         ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_NO_GPSFIX_NO_START       0x10
1699
  { param_GlobalConfig3_UseNcForOut1        , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_USE_NC_FOR_OUT1            ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_USE_NC_FOR_OUT1          0x20
1700
  { param_GlobalConfig3_SpeakAll            , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_SPEAK_ALL                  ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_SPEAK_ALL                0x40
1701
  { param_GlobalConfig3_ServoNickCompOff    , param_GlobalConfig3,   SUBTYPE_BIT,   CFG3_SERVO_NICK_COMP_OFF        , 96,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG3_SERVO_NICK_COMP_OFF      0x80
1702
 
1703
  { param_GlobalConfig_HoehenRegelung       , param_GlobalConfig,    SUBTYPE_BIT,   CFG_HOEHENREGELUNG              ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_HOEHENREGELUNG            0x01
1704
  { param_GlobalConfig_HoehenSchalter       , param_GlobalConfig,    SUBTYPE_BIT,   CFG_HOEHEN_SCHALTER             ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_HOEHEN_SCHALTER           0x02
1705
  { param_GlobalConfig_HeadingHold          , param_GlobalConfig,    SUBTYPE_BIT,   CFG_HEADING_HOLD                ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_HEADING_HOLD              0x04
1706
  { param_GlobalConfig_KompassAktiv         , param_GlobalConfig,    SUBTYPE_BIT,   CFG_KOMPASS_AKTIV               ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_KOMPASS_AKTIV             0x08
1707
  { param_GlobalConfig_KompassFix           , param_GlobalConfig,    SUBTYPE_BIT,   CFG_KOMPASS_FIX                 ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_KOMPASS_FIX               0x10
1708
  { param_GlobalConfig_GpsAktiv             , param_GlobalConfig,    SUBTYPE_BIT,   CFG_GPS_AKTIV                   ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_GPS_AKTIV                 0x20
1709
  { param_GlobalConfig_AchsenkopplungAktiv  , param_GlobalConfig,    SUBTYPE_BIT,   CFG_ACHSENKOPPLUNG_AKTIV        ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_ACHSENKOPPLUNG_AKTIV      0x40
1710
  { param_GlobalConfig_DrehratenBegrenzer   , param_GlobalConfig,    SUBTYPE_BIT,   CFG_DREHRATEN_BEGRENZER         ,  0,  0},    // SUBTYPE_BIT - mk-data-structs.h: CFG_DREHRATEN_BEGRENZER       0x80
1711
 
1712
  { param_Kanalbelegung_Nick                , param_Kanalbelegung,   SUBTYPE_BYTE,   0                              ,  0,  0},    // -> Kanalbelegung[12]
1713
  { param_Kanalbelegung_Roll                , param_Kanalbelegung,   SUBTYPE_BYTE,   1                              ,  0,  0},
1714
  { param_Kanalbelegung_Gas                 , param_Kanalbelegung,   SUBTYPE_BYTE,   2                              ,  0,  0},
1715
  { param_Kanalbelegung_Gear                , param_Kanalbelegung,   SUBTYPE_BYTE,   3                              ,  0,  0},
1716
  { param_Kanalbelegung_Poti1               , param_Kanalbelegung,   SUBTYPE_BYTE,   4                              ,  0,  0},
1717
  { param_Kanalbelegung_Poti2               , param_Kanalbelegung,   SUBTYPE_BYTE,   5                              ,  0,  0},
1718
  { param_Kanalbelegung_Poti3               , param_Kanalbelegung,   SUBTYPE_BYTE,   6                              ,  0,  0},
1719
  { param_Kanalbelegung_Poti4               , param_Kanalbelegung,   SUBTYPE_BYTE,   7                              ,  0,  0},
1720
  { param_Kanalbelegung_Poti5               , param_Kanalbelegung,   SUBTYPE_BYTE,   8                              ,  0,  0},
1721
  { param_Kanalbelegung_Poti6               , param_Kanalbelegung,   SUBTYPE_BYTE,   9                              ,  0,  0},
1722
  { param_Kanalbelegung_Poti7               , param_Kanalbelegung,   SUBTYPE_BYTE,  10                              ,  0,  0},
1723
  { param_Kanalbelegung_Poti8               , param_Kanalbelegung,   SUBTYPE_BYTE,  11                              ,  0,  0},
1724
 
1725
  { param_CompassOffset_DisableDeclCalc     , param_CompassOffset,   SUBTYPE_BYTE,   0                              ,  0,  0},    // ist in Bit 8 und 7 von CompassOffset kodiert
1726
  { param_ComingHomeOrientation             , param_ServoCompInvert, SUBTYPE_BYTE,   0                              ,  0,  0},    // ist in Bit 5 und 4 von CervoCompInvert
1727
 
1728
  { param_ServoNickFailsave                 , param_ServoFS_Pos,     SUBTYPE_BYTE,   0                              ,  0,  0},
1729
  { param_ServoRollFailsave                 , param_ServoFS_Pos,     SUBTYPE_BYTE,   1                              ,  0,  0},
1730
  { param_Servo3Failsave                    , param_ServoFS_Pos,     SUBTYPE_BYTE,   2                              ,  0,  0},
1731
  { param_Servo4Failsave                    , param_ServoFS_Pos,     SUBTYPE_BYTE,   3                              ,  0,  0},
1732
  { param_Servo5Failsave                    , param_ServoFS_Pos,     SUBTYPE_BYTE,   4                              ,  0,  0},
1733
 
1734
  { param_EOF , 0,0,0,0,0 }     // END - MUST BE THE LAST!!
1735
};  // end: paramSubItem[]
1736
 
1737
 
1738
 
1739
//#############################################################################################
1740
//# 3a. Transformations-Tabelle
1741
//#############################################################################################
1742
 
1743
//---------------------------------------
1744
// struct: einzelnes Parameter-SubItem
1745
//---------------------------------------
1746
typedef struct
1747
{
1748
    unsigned char paramID;          // paramID oder paramSubID
1749
    unsigned char (*transformfunc)( uint8_t cmd, unsigned char value, unsigned char newvalue );   // Edit-Funktion (z.B. editGeneric()); cmd = CMD_EDIT oder CMD_SHORTVALUE
1750
} paramTransform_t;
1751
 
1752
 
1753
 
1754
//---------------------------------------
1755
// forward Deklarationen fuer transform
1756
//---------------------------------------
1757
unsigned char transform_CompassOffset_DisableDeclCalc( uint8_t cmd, unsigned char value, unsigned char newvalue );
1758
unsigned char transform_ComingHomeOrientation( uint8_t cmd, unsigned char value, unsigned char newvalue );
1759
//unsigned char transform_ValueACCZ( uint16_t cmd, uint16_t value, uint16_t newvalue );
1760
 
1761
//---------------------------------------
1762
//---------------------------------------
1763
paramTransform_t const paramTransform[] =
1764
{
1765
  { param_CompassOffset_DisableDeclCalc , &transform_CompassOffset_DisableDeclCalc },
1766
  { param_ComingHomeOrientation , &transform_ComingHomeOrientation },
1767
//  { param_LandingPulse, &transform_ValueACCZ},
1768
 
1769
  { param_EOF , NULL }     // END - MUST BE THE LAST!!
1770
};
1771
 
1772
 
1773
 
1774
 
1775
//#############################################################################################
1776
//# 3b. Transformations-Funktionen
1777
//#############################################################################################
1778
 
1779
//---------------------------------------
1780
// transform_CompassOffset_DisableDeclCalc()
1781
//
1782
// PARAMETER:
1783
//   cmd     : GETVALUE || SETVALUE
1784
//   value   :
1785
//   newvalue: nur wenn cmd == SETVALUE
1786
//
1787
// Der true/false (Ja/Nein) Wert von param_CompassOffset_DisableDeclCalc
1788
// ist in dem Byte von param_CompassOffset in den Bits 7 & 8 einkodiert.
1789
//---------------------------------------
1790
unsigned char transform_CompassOffset_DisableDeclCalc( uint8_t cmd, unsigned char value, unsigned char newvalue )
1791
{
1792
    uint8_t  bit7;
1793
    uint8_t  bit8;
1794
 
1795
    bit7 = ((value & 0x40) ? true : false);
1796
    bit8 = ((value & 0x80) ? true : false);
1797
 
1798
    if( cmd == GETVALUE )
1799
    {
1800
        // Bit 8 == Bit 7: Disable dec. Calc  AUS
1801
        // Bit 8 != Bit 7: Disable dec. Calc  AN
1802
        value = ((bit8 == bit7) ? 0 : 1);
1803
    }
1804
 
1805
    if( cmd == SETVALUE )
1806
    {
1807
        if( newvalue )  bit8 = !bit7;                   // Bit 8 != Bit 7: Disable dec. Calc  AN
1808
        else            bit8 = bit7;                    // Bit 8 == Bit 7: Disable dec. Calc  AUS
1809
 
1810
        if( bit8 )  value = (value | 0x80);             // Bit 8 setzen
1811
        else        value = (value & (0x80 ^ 0xff));    // Bit 8 loeschen
1812
    }
1813
 
1814
 
1815
    //lcdx_printf_at_P( 0, 7, MINVERS, 0,0 , PSTR(" %d => %d "), value, newvalue );
1816
 
1817
    return value;
1818
}
1819
 
1820
//---------------------------------------
1821
// transform_ComingHomeOrientation()
1822
//
1823
// PARAMETER:
1824
//   cmd     : GETVALUE || SETVALUE
1825
//   value   :
1826
//   newvalue: nur wenn cmd == SETVALUE
1827
//
1828
//
1829
// ist in dem Byte von param_ServoCompInvert in den Bits 4 & 5 einkodiert,  Bits 1-3 bleiben unverändert
1830
//---------------------------------------
1831
 
1832
uint8_t  save =0; // globale Variable zum Sichern des alten Byte ServoCompInvert Wertes
1833
 
1834
unsigned char transform_ComingHomeOrientation( uint8_t cmd, unsigned char value, unsigned char newvalue )
1835
{
1836
 
1837
    if( cmd == GETVALUE )
1838
    {
1839
        save = value;                              // altes "gemeinsames" Byte ServoCompInvert sichern
1840
        value =((value & 0x18) >> 3);              // CominghomeOrientation Bits nach rechts verschieben
1841
    }
1842
 
1843
    if( cmd == SETVALUE )
1844
    {
1845
          value = ((newvalue << 3)|(save & 0x07)); // CominghomeOrientation Bits nach links verschieben und "alte" Bits 1-3 wieder dazufügen
1846
    }
1847
 
1848
 
1849
    //lcdx_printf_at_P( 0, 7, MINVERS, 0,0 , PSTR(" %d => %d "), value, newvalue );
1850
 
1851
    return value;
1852
}
1853
 
1854
//
1855
//
1856
////---------------------------------------
1857
//// transform_ValueACCZ()
1858
////
1859
//// PARAMETER:
1860
////   cmd     : GETVALUE || SETVALUE
1861
////   value   :
1862
////   newvalue: nur wenn cmd == SETVALUE
1863
////
1864
////
1865
////  ACC Z Landing Pulse Wert für die Anzeige x 4
1866
////---------------------------------------
1867
//
1868
//
1869
//unsigned char transform_ValueACCZ( uint16_t cmd, uint16_t value, unint16_t newvalue )
1870
//
1871
//uint16_t  save16 =0; // globale Variable zum Sichern des alten Byte ServoCompInvert Wertes
1872
//
1873
//{
1874
//    if( cmd == GETVALUE )
1875
//    {
1876
//        save16 = value;                              // altes Byte ACC Z Landing Pulse sichern
1877
//        value = (value * 4);                       // Wert x 4
1878
//    }
1879
//
1880
//    if( cmd == SETVALUE )
1881
//    {
1882
//          value = (newvalue / 4);                  // Neuer Wert ACC Z Landingpulse /4
1883
//    }
1884
//
1885
//
1886
//    return value;
1887
//}
1888
 
1889
//#############################################################################################
1890
//# 4a. interne Zugriffsfunktionen
1891
//#############################################################################################
1892
 
1893
//--------------------------------------------------------------
1894
// INTERN
1895
//
1896
// Parameter:
1897
//  paramSubID: 'echter' Parameter zum Suchen in paramSubItem[] zum
1898
//              nachfolgeden Parameter geben das Suchergebnis zurueck
1899
//              und sind alle 0 wenn nichts gefunden wurde
1900
//
1901
// Rueckgabe:
1902
//    true/false
1903
//--------------------------------------------------------------
1904
unsigned char _paramset_getsubitemid( unsigned char paramSubID,      unsigned char *paramID, unsigned char *subType, unsigned char *subIndex )
1905
{
1906
    unsigned char   id;
1907
    unsigned char   *p;
1908
    unsigned char   von_Revision;
1909
    unsigned char   bis_Revision;
1910
 
1911
    *paramID  = 0;
1912
    *subType  = 0;
1913
    *subIndex = 0;
1914
 
1915
    p = (unsigned char *) paramSubItem;
1916
 
1917
    while( true )
1918
    {
1919
        id = pgm_read_byte(p+0);                        // paramSubItem[..].paramSubID - die aktuelle paramSubID
1920
 
1921
        if( (id == paramSubID) )                        // gefunden?
1922
        {
1923
            von_Revision = pgm_read_byte(p+4);          // paramSubItem[..].von_Revision;
1924
            bis_Revision = pgm_read_byte(p+5);          // paramSubItem[..].bis_Revision;
1925
 
1926
            // in aktueller FC-Revision vorhanden?
1927
            if( von_Revision && (MKVersion.paramsetRevision < von_Revision) )   return false;   // passt nicht zur aktuellen FC-Revision -> exit
1928
            if( bis_Revision && (MKVersion.paramsetRevision > bis_Revision) )   return false;   // passt nicht zur aktuellen FC-Revision -> exit
1929
 
1930
            *paramID    = pgm_read_byte(p+1);           // paramSubItem[..].paramID;
1931
            *subType    = pgm_read_byte(p+2);           // paramSubItem[..].subType;
1932
            *subIndex   = pgm_read_byte(p+3);           // paramSubItem[..].subIndex;
1933
            return true;
1934
        }
1935
 
1936
        if( id == param_EOF )   break;
1937
 
1938
        p += sizeof( paramSubItem_t );
1939
    }
1940
 
1941
    return false;
1942
}
1943
 
1944
 
1945
 
1946
 
1947
//--------------------------------------------------------------
1948
// INTERN
1949
//
1950
// Parameter:
1951
//  retItemSize: false = offset zurueckgeben (normaler Modus)
1952
//               true  = size von paramID zurueckgeben (fuer paramSize())
1953
//--------------------------------------------------------------
1954
unsigned char _paramset_getoffsetX( unsigned char paramID, unsigned char retItemSize,      unsigned char *subType, unsigned char *subIndex )
1955
{
1956
    unsigned char   *p;
1957
    unsigned char   offset;
1958
    unsigned char   size;
1959
    unsigned char   this_paramID;
1960
    unsigned char   paramSubID;
1961
 
1962
    *subType  = SUBTYPE_NO;  // =0
1963
    *subIndex = 0;
1964
 
1965
 
1966
    size   = 0;
1967
    offset = param_NOTFOUND;
1968
 
1969
    if( MKVersion.paramsetOK )
1970
    {
1971
        //-----------------------
1972
        // eine paramSubID wurde uebergeben
1973
        // -> ermittle zugehoerige paramID!
1974
        //-----------------------
1975
        if( (paramID >= param_SUBITEM) && (paramID != param_EOF) )
1976
        {
1977
            paramSubID = paramID;
1978
            if( !_paramset_getsubitemid( paramSubID,   &paramID, subType, subIndex ) )
1979
            {
1980
                // keine paramID gefunden...
1981
                if( retItemSize )   return size;        // size == 0
1982
                else                return offset;      // offset == param_NOTFOUND
1983
            }
1984
        }
1985
 
1986
 
1987
        //-----------------------
1988
        // paramID suchen
1989
        //-----------------------
1990
        offset = 0;
1991
 
1992
        p = (unsigned char *) paramsetRevTable;
1993
 
1994
        while( true )
1995
        {
1996
            this_paramID = pgm_read_byte(p);     // die aktuelle paramID
1997
            size         = pgm_read_byte(p+1);   // size von paramID
1998
 
1999
            // gefunden oder Ende
2000
            if( (this_paramID == paramID) || (this_paramID == param_EOF) )
2001
            {
2002
                break;
2003
            }
2004
 
2005
            offset += size;
2006
            p += sizeof( paramRevItem_t );
2007
        }
2008
 
2009
 
2010
        // paramID nicht gefunden?
2011
        if( (this_paramID == param_EOF) && (paramID != param_EOF) )
2012
        {
2013
            offset = param_NOTFOUND;
2014
            size   = 0;
2015
        }
2016
 
2017
    }
2018
 
2019
    if( retItemSize )   return size;
2020
    else                return offset;
2021
}
2022
 
2023
 
2024
 
2025
//--------------------------------------------------------------
2026
// INTERN
2027
//
2028
// Parameter:
2029
//  retItemSize == false: offset zurueckgeben (normaler Modus)
2030
//  retItemSize == true : size von paramID zurueckgeben
2031
//                        --> fuer paramSize()
2032
//--------------------------------------------------------------
2033
unsigned char _paramset_getoffset( unsigned char paramID, unsigned char retItemSize )
2034
{
2035
    unsigned char   subType;
2036
    unsigned char   subIndex;
2037
 
2038
    return _paramset_getoffsetX( paramID, retItemSize,   &subType, &subIndex );
2039
}
2040
 
2041
 
2042
 
2043
//--------------------------------------------------------------
2044
// INTERN
2045
//
2046
// sucht/prueft ob eine Transform-Funktion vorhanden ist
2047
//
2048
// RUECKGABE:
2049
//    Index: (Num 0..n) auf paramTransform[]
2050
//           => param_EOF (=255) wenn keine transform-Funktion vorhanden
2051
//--------------------------------------------------------------
2052
unsigned char _paramset_gettransformIndex( unsigned char paramID )
2053
{
2054
    unsigned char i;
2055
 
2056
    i = 0;
2057
    while( paramTransform[i].paramID != param_EOF )
2058
    {
2059
        if( paramTransform[i].paramID == paramID )      return i;
2060
        if( paramTransform[i].paramID == param_EOF )    return param_EOF;
2061
        i++;
2062
    }
2063
 
2064
    return param_EOF;
2065
}
2066
 
2067
 
2068
 
2069
//#############################################################################################
2070
//# 4b. oeffentliche Zugriffsfunktionen fuer paramID / paramSubID  Elemente
2071
//#
2072
//# Hier sind die Getter/Setter um auf die einzelnen Werte der paramset-Struktur zuzugreifen.
2073
//# Dazu muss vorher das richtige paramset initialisert worden sein!
2074
//#
2075
//# ACHTUNG!
2076
//# Fuer die Daten wird direkt auf den RX-Buffer vom PKT zugegriffen!
2077
//# ==> der Buffer darf NICHT durch andere Datenpakete bereits wieder ueberschrieben worden sein!
2078
//#
2079
//# Anmerkung:
2080
//# Das obige 'Achtung' koennte man aendern durch eine Kopie des RX-Buffers. Das verbraucht
2081
//# zusaetzlichen RAM-Speicher -> probieren wir es erstmal so...
2082
//#############################################################################################
2083
 
2084
//--------------------------------------------------------------
2085
// size = paramSize( paramID )
2086
//--------------------------------------------------------------
2087
unsigned char paramSize( unsigned char paramID )
2088
{
2089
    return( _paramset_getoffset(paramID,true) );   // true = size (in Bytes) der paramID zurueckgeben (nicht offset)
2090
}
2091
 
2092
 
2093
 
2094
//--------------------------------------------------------------
2095
// exist = paramExist( paramID )
2096
//
2097
// Rueckgabe:
2098
//   true  : die paramID existiert im aktuellen paramset
2099
//   false : die paramID existiert nicht
2100
//--------------------------------------------------------------
2101
unsigned char paramExist( unsigned char paramID )
2102
{
2103
    return( (_paramset_getoffset(paramID,true) != 0) );   // true = size (in Bytes) der paramID zurueckgeben (nicht offset)
2104
}
2105
 
2106
 
2107
 
2108
//--------------------------------------------------------------
2109
// pointer = paramGet_p( paramID )
2110
//
2111
// ACHTUNG! Nicht faehig fuer Transform!
2112
//
2113
// RUECKGABE:
2114
//   pointer direkt auf~ein Byte im Parameterset
2115
//   (paramSubID nicht moeglich!)
2116
//--------------------------------------------------------------
2117
unsigned char *paramGet_p( unsigned char paramID )
2118
{
2119
    unsigned char offset;
2120
 
2121
    offset =  _paramset_getoffset( paramID, false );  // false = offset zurueckgeben
2122
 
2123
    if( offset != param_NOTFOUND )
2124
    {
2125
        return( (unsigned char *) (mkparamset + offset) );  // Rueckgabe: Pointer auf die Daten
2126
    }
2127
    return 0;
2128
}
2129
 
2130
 
2131
 
2132
//--------------------------------------------------------------
2133
// value = paramGet( paramID )
2134
//
2135
// holt den Wert von paramID. paramSubID's werden dabei
2136
// unterstuetzt (Bit- und Bytefelder).
2137
//
2138
// Bei Bit-Feldern (z.B. GlobalConfig3) wird eine enstprechende
2139
// Bit-Maskierung automatisch durchgefuehrt
2140
// Ergebnis: true (=1) oder false (=0)false (=0)
2141
//
2142
// Bei Byte-Feldern (z.B. Kanalbelegung) wird der Wert des
2143
// entsprechenden Byte's zurueckgegeben
2144
//
2145
// Hinweis: anhand des Rueckgabewertes kann nicht ueberprueft
2146
// werden ob die paramID gefunden wurde bzw. existiert!
2147
// -> ggf. erst mit paramExist() pruefen ob der Wert existiert!
2148
//--------------------------------------------------------------
2149
unsigned char paramGet( unsigned char paramID )
2150
{
2151
    unsigned char offset;
2152
    unsigned char subType;
2153
    unsigned char subIndex;
2154
    unsigned char value;
2155
    unsigned char transformIdx;
2156
 
2157
    offset = _paramset_getoffsetX( paramID, false, &subType, &subIndex );       // false = offset zurueckgeben
2158
 
2159
    if( offset == param_NOTFOUND )  return false;                               // paramID nicht gefunden / nicht unterstuetzt
2160
 
2161
    value = (unsigned char) *(mkparamset + offset);                             // offset Inhalt lesen (paramID)
2162
 
2163
    //-------------------
2164
    // subIndex: Bit
2165
    //-------------------
2166
    if( subType == SUBTYPE_BIT )
2167
    {
2168
        value = ((value & subIndex) ? true : false);                            // Rueckgabe: true/false des gewaehlten Bit's
2169
    }
2170
 
2171
    //-------------------
2172
    // subIndex: Bit negiert
2173
    //-------------------
2174
    if( subType == SUBTYPE_BITN )
2175
    {
2176
        value = ((value & subIndex) ? false : true);                            // Rueckgabe: true/false des gewaehlten Bit's (negiert)
2177
    }
2178
 
2179
    //-------------------
2180
    // subIndex: Byte
2181
    //-------------------
2182
    if( subType == SUBTYPE_BYTE )
2183
    {
2184
        value = (unsigned char) *(mkparamset + (offset+subIndex));              // subIndex Inhalt lesen
2185
    }
2186
 
2187
 
2188
    //-------------------
2189
    // Transform
2190
    //-------------------
2191
    transformIdx = _paramset_gettransformIndex( paramID );
2192
    if( transformIdx != param_EOF )
2193
    {
2194
        value = paramTransform[transformIdx].transformfunc( GETVALUE, value, value);
2195
    }
2196
 
2197
    return value;       // ubyte zurueckgeben
2198
}
2199
 
2200
 
2201
 
2202
//--------------------------------------------------------------
2203
//--------------------------------------------------------------
2204
unsigned char paramSet( unsigned char paramID, unsigned char newvalue )
2205
{
2206
    unsigned char offset;
2207
    unsigned char subOffset = 0;
2208
    unsigned char subType;
2209
    unsigned char subIndex;
2210
    unsigned char byte;
2211
    unsigned char value;
2212
    unsigned char transformIdx;
2213
 
2214
    value = newvalue;
2215
 
2216
    offset = _paramset_getoffsetX( paramID, false, &subType, &subIndex );   // false = offset zurueckgeben
2217
 
2218
    if( offset == param_NOTFOUND )  return false;                           // paramID nicht gefunden / nicht unterstuetzt
2219
 
2220
    //-------------------
2221
    // subIndex: Bit
2222
    //-------------------
2223
    if( (subType == SUBTYPE_BIT) || (subType == SUBTYPE_BITN) )
2224
    {
2225
        byte = (unsigned char) *(mkparamset + offset);                      // offset Inhalt lesen
2226
 
2227
        if( subType == SUBTYPE_BITN )                                       // SUBTYPE_BITN = negiertes BIT
2228
            value = (value ? false : true);                                 // negieren
2229
 
2230
        if(value)   byte = byte | subIndex;                                 // Bit setzen
2231
        else        byte = byte & (subIndex ^ 0xff);                        // Bit loeschen
2232
 
2233
        value = byte;                                                       // neues Value fuer das gesamte Byte (mit eingerechnetem BIT)
2234
    }
2235
 
2236
    //-------------------
2237
    // subIndex: Byte
2238
    //-------------------
2239
    if( subType == SUBTYPE_BYTE )
2240
    {
2241
        subOffset = subIndex;                                               // das 'verschobene' Byte (hier nur den Offset verschieben)
2242
    }
2243
 
2244
 
2245
    //-------------------
2246
    // Transform
2247
    //-------------------
2248
    transformIdx = _paramset_gettransformIndex( paramID );
2249
    if( transformIdx != param_EOF )
2250
    {
2251
        byte  = (unsigned char) *(mkparamset + offset + subOffset);         // offset Inhalt lesen
2252
        value = paramTransform[transformIdx].transformfunc( SETVALUE, byte, newvalue);
2253
    }
2254
 
2255
 
2256
    //-------------------
2257
    // Byte speichern
2258
    //-------------------
2259
    *(mkparamset + offset + subOffset) = value;
2260
    return true;                                                            // OK
2261
}
2262
 
2263
 
2264
 
2265
 
2266
//#############################################################################################
2267
//# 4c. oeffentliche Zugriffsfunktionen fuer das gesamte Paramset (Int usw.)
2268
//#
2269
//# Init und Abfrage der Groesse in Bytes ddes gesamten Paramset's
2270
//#############################################################################################
2271
 
2272
 
2273
//--------------------------------------------------------------
2274
// ok = paramsetInit( *pData )
2275
//
2276
// Ermittelt zu einer empfangenen Revision die passende paramset-Tabelle
2277
// und setzt entsprechende Werte in MKVersion
2278
//
2279
// Wird von MK_load_setting() aufgerufen nach dem Einlesen der
2280
// MK-Parameter (Setting-Request 'q')
2281
//
2282
// Parameter:
2283
//   *pData : Zeiger direkt auf den RX-Buffer des PKT
2284
//
2285
// Rueckgabe:
2286
//   true  : OK - Paramset ist initialisert; die aktuelle FC-Revision
2287
//                steht in MKVersion.paramsetRevision
2288
//   false : Fehler - keine passende paramset-Tabelle gefunden
2289
//--------------------------------------------------------------
2290
unsigned char paramsetInit( unsigned char *pData )
2291
{
2292
    unsigned char i;
2293
    unsigned char *p;
2294
 
2295
    paramsetRevTable            = 0;
2296
    mkparamset                  = 0;
2297
    MKVersion.paramsetOK        = false;
2298
    MKVersion.paramsetRevision  = 0;
2299
    MKVersion.mksetting         = 0;
2300
    MKVersion.mksettingName[0]  = 0;
2301
 
2302
    //--------------------------------------------------
2303
    // pData == 0 -> nur 'reset' der Daten
2304
    //--------------------------------------------------
2305
    if( pData == 0 )
2306
    {
2307
        return 0;
2308
    }
2309
 
2310
    //--------------------------------------------------
2311
    // diese beiden Werte koennen in jedem Fall gesetzt werden
2312
    // unabhaengig ob das gefundene Parameterset vom PKT
2313
    // unterstuetzt wird oder nicht
2314
    //--------------------------------------------------
2315
    MKVersion.mksetting        = (unsigned char) *pData;
2316
    MKVersion.paramsetRevision = (unsigned char) *(pData + 1);
2317
 
2318
 
2319
    //--------------------------------------------------
2320
    // FC-Revision in paramsetRevMap suchen
2321
    //--------------------------------------------------
2322
    i = 0;
2323
    while( true )
2324
    {
2325
        if( (paramsetRevMap[i].Revision == MKVersion.paramsetRevision) || (paramsetRevMap[i].Revision == MAPEOF) )
2326
            break;
2327
        i++;
2328
    }
2329
 
2330
 
2331
    //--------------------------------------
2332
    // Revision nicht gefunden -> return 0
2333
    //--------------------------------------
2334
    if( paramsetRevMap[i].Revision == MAPEOF )
2335
    {
2336
        return 0;
2337
    }
2338
 
2339
    //--------------------------------------
2340
    // Revision gefunden
2341
    //--------------------------------------
2342
    mkparamset              = (unsigned char *) (pData + 1);
2343
    paramsetRevTable        = (paramRevItem_t *) paramsetRevMap[i].RevisionTable;
2344
    MKVersion.paramsetOK    = true;
2345
 
2346
 
2347
    //--------------------------------------
2348
    // den aktuellen Setting-Namen kopieren
2349
    // wird u.a. vom OSD verwendet
2350
    //--------------------------------------
2351
    p = paramGet_p( param_Name );
2352
    if( p ) memcpy( MKVersion.mksettingName, p, 12 );
2353
 
2354
    return MKVersion.paramsetOK;
2355
}
2356
 
2357
 
2358
 
2359
//--------------------------------------------------------------
2360
// size = paramsetSize()
2361
//
2362
// Gibt die Groesse des gesamten aktuellen Parameterset's
2363
// zurueck. Fuer Revision 098 z.B. 130 = 130 Bytes.
2364
//
2365
// Rueckgabe:
2366
//   =0 : Fehler; nicht unterstuetzte FC-Revision oder nicht
2367
//        initialisiert
2368
//--------------------------------------------------------------
2369
unsigned char paramsetSize( void )
2370
{
2371
    if( MKVersion.paramsetOK )
2372
        return _paramset_getoffset( param_EOF, false );   // false = offset zurueckgeben; der offset von param_EOF entspricht der Groesse des paramSet's!
2373
    else
2374
        return 0;
2375
}
2376
 
2377
 
2378
 
2379
 
2380
 
2381
//#############################################################################################
2382
//# x. TEST / DEBUG
2383
//#############################################################################################
2384
 
2385
//--------------------------------------------------------------
2386
// TEST / DEBUG
2387
//--------------------------------------------------------------
2388
#ifdef DEBUG_PARAMSET
2389
void paramsetDEBUG( void )
2390
{
2391
    lcd_cls();
2392
 
2393
    //lcdx_printp_at( 0, 0, PSTR("NEW PARAM TEST..."), MNORMAL,  0,0);
2394
    lcd_printp_at(12, 7, strGet(ENDE), MNORMAL);                    // Keyline
2395
 
2396
    //memcpy( &MKVersion.NCVersion, (Version_t *) (pRxData), sizeof(MKVersion_t) );
2397
 
2398
/*
2399
 
2400
typedef struct
2401
{
2402
    Version_t       NCVersion;          //
2403
    Version_t       FCVersion;          //
2404
    unsigned char   paramsetRevision;   // von der FC
2405
    unsigned char   paramsetOk;         // true wenn Revision in paramset.c vorhanden
2406
} MKVersion_t;
2407
 
2408
 
2409
//-------------------------------------
2410
// zur Orientierung: Version_t
2411
//-------------------------------------
2412
//typedef struct
2413
//{
2414
//    unsigned char SWMajor;
2415
//    unsigned char SWMinor;
2416
//    unsigned char ProtoMajor;
2417
//    unsigned char ProtoMinor;
2418
//    unsigned char SWPatch;
2419
//    unsigned char HardwareError[5];
2420
//} __attribute__((packed)) Version_t;
2421
*/
2422
 
2423
    //setting = MK_Setting_load( 0xff, 20);                               // aktuelles MK Setting ermitteln
2424
    MK_Setting_load( 0xff, 20);                               // aktuelles MK Setting ermitteln
2425
 
2426
    //----------------------------------
2427
    // Anzeige: FC/NC Version
2428
    //----------------------------------
2429
    lcdx_printp_at(      0, 0, PSTR("FC:"), MNORMAL, 0,0);
2430
    MKVersion_print_at(  3, 0, FC, MNORMAL, 0,0);
2431
 
2432
    lcdx_printp_at(     13, 0, PSTR("NC:"), MNORMAL, 0,0);
2433
    MKVersion_print_at( 16, 0, NC, MNORMAL, 0,0);
2434
 
2435
 
2436
    //----------------------------------
2437
    // Anzeige: FC Revision
2438
    //----------------------------------
2439
    lcd_printf_at_P( 0, 1, MNORMAL, PSTR("Rev: %03u"), MKVersion.paramsetRevision );
2440
    if( MKVersion.paramsetOK )
2441
        lcdx_printp_at( 8, 1, PSTR(" ok!"), MINVERS, 0,0);
2442
    else
2443
        lcdx_printp_at( 8, 1, PSTR(" err"), MINVERS, 0,0);
2444
 
2445
    // Size von paramset
2446
    lcd_printf_at_P( 13, 1, MNORMAL, PSTR("Size=%3u"), paramsetSize() );
2447
 
2448
 
2449
    //----------------------------------
2450
    // Anzeige: aktuelles MK Setting
2451
    //----------------------------------
2452
    //lcd_printf_at_P( 0, 2, MNORMAL, PSTR("Set:%2u %s"), MKVersion.mksetting, MKVersion.mksettingName );
2453
 
2454
/*
2455
    unsigned char *p;
2456
 
2457
    p = paramGet_p( param_Name );
2458
    if( p )
2459
    {
2460
        lcd_printf_at_P( 0, 3, MNORMAL, PSTR("%c"), *p );
2461
        p++;
2462
        lcd_printf_at_P( 1, 3, MNORMAL, PSTR("%c"), *p );
2463
        p++;
2464
        lcd_printf_at_P( 2, 3, MNORMAL, PSTR("%c"), *p );
2465
    }
2466
*/
2467
 
2468
    //----------------------------------
2469
    //----------------------------------
2470
 
2471
/*
2472
    lcd_printf_at_P( 0, 3, MNORMAL, PSTR("Size Name:%3u"), paramSize(param_Name) );
2473
    lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%c"), paramGet_UByte( param_Name ) );
2474
    paramSet_UByte( param_Name, 'x' );
2475
    lcd_printf_at_P( 3, 5, MNORMAL, PSTR("%c"), paramGet_UByte( param_Name ) );
2476
*/
2477
 
2478
/*
2479
    uint8_t v;
2480
    v = MKVersion_Cmp( MKVersion.FCVer,  2,0,'f' );
2481
 
2482
    lcd_printf_at_P( 0, 4, MNORMAL, PSTR("v:%3u"), v );
2483
*/
2484
 
2485
 
2486
/*
2487
    unsigned char   paramID = 1;
2488
    unsigned char   paramSubType = 1;
2489
    unsigned char   paramSubIndex =1;
2490
 
2491
    _paramset_getsubitemid( param_GlobalConfig_DrehratenBegrenzer,  &paramID, &paramSubType, &paramSubIndex );
2492
 
2493
    //lcd_printf_at_P( 0, 4, MNORMAL, PSTR("ID:%u T:%u I:%u"), paramID, paramSubType, paramSubIndex );
2494
*/
2495
 
2496
//#define param_ExtraConfig_NoRcOffBeeping      204      // SUBTYPE_BIT - mk-data-structs.h: CFG_NO_RCOFF_BEEPING          0x10
2497
//#define param_ExtraConfig_GpsAid              205      // SUBTYPE_BIT - mk-data-structs.h: CFG_GPS_AID                   0x20
2498
//#define param_ExtraConfig_LearnableCarefree     206      // SUBTYPE_BIT - mk-data-structs.h: CFG_LEARNABLE_CAREFREE        0x40
2499
//#define param_ExtraConfig_IgnoreMagErrAtStartup 207      // SUBTYPE_BIT - mk-data-structs.h: CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80
2500
 
2501
//#define param_GlobalConfig3_NoSdCardNoStart     220      // SUBTYPE_BIT - mk-data-structs.h: CFG3_NO_SDCARD_NO_START       0x01
2502
//#define param_GlobalConfig3_NoGpsFixNoStart     224      // SUBTYPE_BIT - mk-data-structs.h: CFG3_NO_GPSFIX_NO_START       0x10
2503
 
2504
//paramGet( unsigned char paramID );
2505
 
2506
    //lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
2507
 
2508
//#define param_Kanalbelegung_Gas               242      // SUBTYPE_BYTE - Kanalbelegung [2] (unsigned char)
2509
//#define param_Kanalbelegung_Gear              243      // SUBTYPE_BYTE - Kanalbelegung [3] (unsigned char)
2510
//#define param_Kanalbelegung_Nick              240      // SUBTYPE_BYTE - Kanalbelegung [0] (unsigned char)
2511
//#define param_Kanalbelegung_Roll              241      // SUBTYPE_BYTE - Kanalbelegung [1] (unsigned char)
2512
 
2513
//    lcd_printf_at_P( 0, 4, MNORMAL, PSTR("%u %u %u %u"), paramGet(param_Kanalbelegung_Gas), paramGet(param_Kanalbelegung_Gear), paramGet(param_Kanalbelegung_Nick), paramGet(param_Kanalbelegung_Roll) );
2514
 
2515
//    lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u"), paramGet(param_Kanalbelegung) );
2516
 
2517
 
2518
/*
2519
    lcd_printf_at_P( 0, 4, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
2520
 
2521
    unsigned char v;
2522
 
2523
    v = paramGet(param_GlobalConfig3_NoSdCardNoStart);
2524
    v = (v ? false : true);
2525
    paramSet(param_GlobalConfig3_NoSdCardNoStart, v);
2526
 
2527
    lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
2528
 
2529
    v = paramGet(param_GlobalConfig3_NoSdCardNoStart);
2530
    v = (v ? false : true);
2531
    paramSet(param_GlobalConfig3_NoSdCardNoStart, v);
2532
 
2533
    lcd_printf_at_P( 0, 6, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
2534
*/
2535
 
2536
/*
2537
    lcd_printf_at_P( 0, 3, MNORMAL, PSTR("%u %u"),
2538
         paramGet( param_Kanalbelegung_Gas  ),
2539
         paramGet( param_Kanalbelegung_Gear )
2540
       );
2541
 
2542
    lcd_printf_at_P( 0, 4, MNORMAL, PSTR("%u %u %u %u"),
2543
         paramGet( param_Kanalbelegung_Poti1  ),
2544
         paramGet( param_Kanalbelegung_Poti2  ),
2545
         paramGet( param_Kanalbelegung_Poti3  ),
2546
         paramGet( param_Kanalbelegung_Poti4  )
2547
       );
2548
 
2549
    lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u %u %u %u"),
2550
         paramGet( param_Kanalbelegung_Poti5  ),
2551
         paramGet( param_Kanalbelegung_Poti6  ),
2552
         paramGet( param_Kanalbelegung_Poti7  ),
2553
         paramGet( param_Kanalbelegung_Poti8  )
2554
       );
2555
*/
2556
 
2557
//    lcd_printf_at_P( 0, 3, MNORMAL, PSTR("HR:%u  H-Limit:%u"),
2558
//         paramGet( param_GlobalConfig_HoehenRegelung  ),
2559
//         paramGet( param_ExtraConfig_HeightLimit  )
2560
//       );
2561
 
2562
//    lcd_printf_at_P( 0, 5, MNORMAL, PSTR("Auto-S-L:%u"),
2563
//         paramGet( param_StartLandChannel    )
2564
//       );
2565
 
2566
    lcd_printf_at_P( 0, 4, MNORMAL, PSTR("CH Orientation:%x"), paramGet( param_ServoCompInvert));
2567
 
2568
    lcd_printf_at_P( 0, 5, MNORMAL, PSTR("ACC Land pulse:%x"), paramGet( param_LandingPulse));
2569
 
2570
 
2571
       ;
2572
 
2573
    while( true )
2574
    {
2575
        PKT_CtrlHook();
2576
        if (get_key_press (1 << KEY_ESC))
2577
        {
2578
            break;
2579
        }
2580
    }
2581
}
2582
#endif // #ifdef DEBUG_PARAMSET
2583