Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 2135 → Rev 2136

/Transportables_Koptertool/PKT/GPL_PKT_V3_85f/mksettings/paramset.c
0,0 → 1,2583
/*****************************************************************************
* Copyright (C) 2008 Thomas Kaiser, thomas@ft-fanpage.de *
* Copyright (C) 2009 Peter "woggle" Mack, mac@denich.net *
* Copyright (C) 2011 Christian "Cebra" Brandtner, brandtner@brandtner.net *
* Copyright (C) 2011 Harald Bongartz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
* *
* Credits to: *
* Holger Buss & Ingo Busker from mikrokopter.de for the MK project + SVN *
* http://www.mikrokopter.de *
* Gregor "killagreg" Stobrawa for his version of the MK code *
* Thomas Kaiser "thkais" for the original project. See *
* http://www.ft-fanpage.de/mikrokopter/ *
* http://forum.mikrokopter.de/topic-4061-1.html *
* Claas Anders "CaScAdE" Rathje for providing the font and his C-OSD code *
* http://www.mylifesucks.de/oss/c-osd/ *
* Harald Bongartz "HaraldB" for providing his Ideas and Code for usibility*
*****************************************************************************/
 
//############################################################################
//# HISTORY paramset.c
//#
//# 16.07.2015 Cebra (PKT385a)
//# - add: unsigned char SingleWpControlChannel; (FC2.11a)
//# unsigned char MenuKeyChannel; (FC2.11a)
//# - add: paramset_106 (FC2.11a)
//#
//# 09.04.2015 Cebra (PKT384a)
//# - add: unsigned char ServoFS_Pos[5] (FC 2.09i)
//# - add: paramset_105 (FC2.09j)
//#
//# 19.03.2015 Cebra (PKT383a)
//# - add: param_LandingPulse (FC 2.09d)
//#
//# 26.01.2015 Cebra
//# - add: Function transform_ComingHomeOrientation
//# Ändert die Bits 4+5 für ServoCompInvert
//# in Konfigurationstabelle der paramSubID: param_ComingHomeOrientation neu
//#
//# 26.09.2014 Cebra
//# - add: Parameterset Rev. 103 (FC 2.07f)
//# - chg: param_Hoehe_GPS_Z zu param_Hoehe_Verstaerkung im Paramset 103
//#
//# 14.05.2014 OG
//# - chg: include "mkbase.h" geaendert auf "../mk/mkbase.h"
//#
//# 10.05.2014 OG
//# - add: transform_CompassOffset_DisableDeclCalc() - transformiert true/false
//# in das Byte von param_CompassOffset
//#
//# 09.05.2014 OG
//# - chg: paramSet() - angepasst auf Transform-Funktionen
//# - chg: paramGet() - angepasst auf Transform-Funktionen
//# - add: eine neue Transformations-Zwischenschicht implementiert - abgebildet
//# ueber die neue Tabelle paramTransform.
//# Hier koennen Transform-Funktionen hinterlegt werden die einen
//# ubyte8 Wert veraendern.
//# Die Transformation wird von paramSet()/paramGet() aufgerufen.
//#
//# 17.04.2014 OG
//# - FIX: _paramset_getsubitemid(): Pruefung von_Revision/bis_Revision
//# korrigiert - fuehrte vorher ggf. zu falschen Anzeigen von SubItems!
//# - chg: param_BitConfig_MotorOffLed1 auf bis_Revision 101 begrenzt
//# - chg: param_BitConfig_MotorOffLed2 auf bis_Revision 101 begrenzt
//#
//# 09.04.2014 OG
//# - chg: Rev. 101 auf param_DUMMY umgestellt um Platz zu sparen
//#
//# 08.04.2014 OG
//# - add: Parameterset Rev. 102 (FC 2.05g)
//# - fix: _paramset_getsubitemid() - Vergleich bzgl. von/bis_Revision umgedreht
//# und equal zugefuegt
//#
//# 06.04.2014 OG
//# - add: Parameterset Rev. 101 (FC 2.05f)
//# -> param_Servo3OnValue, param_Servo3OffValue
//# -> param_Servo4OnValue, param_Servo4OffValue
//#
//# 28.03.2014 OG
//# - add: Parameterset Rev. 100 (FC 2.05e)
//# (param_AutoPhotoDistance, param_AutoPhotoAtitudes, param_SingleWpSpeed)
//#
//# 26.03.2014 OG
//# - add: param_CompassOffset_DisableDeclCalc (Sub-Item)
//#
//# 24.03.2014 OG
//# - chg: _paramset_getsubitemid() erweitert Unterstuetzung von/bis FC-Revisionen
//# - add: paramSubItem_t mit Unterstuetzung fuer von/bis FC-Revisionen
//#
//# 27.02.2014 OG
//# - chg: die Revisions-Tabellen 90 bis 94 mittels param_DUMMY gekuerzt
//# -> keine Parameter-Bearbeitung bei denen moeglich
//# - add: vollstaendige Unterstuetzung von paramSubID's via paramGet(), paramSet()
//#
//# 26.02.2014 OG
//# - add: paramSubItem[] - Zugriffstabelle auf Bit- und Bytefelder innerhalb
//# einer paramID
//# - chg: bei den paramset_nnn[] Tabellen 'const' ergaenzt
//# - chg: paramsetTest() umbenannt zu paramsetDEBUG()
//#
//# 19.02.2014 OG
//# - fix: paramsetInit() Parameter pData wurde nicht konsequent verwendet
//#
//# 14.02.2014 OG
//# - add: diverse Zugriffsfunktionen fuer paramID's und paramSet's
//# - add: Rev-Tabellen von FC v0.88e bis FC v2.03d
//#
//# 05.02.2014 OG - NEU
//############################################################################
 
 
//############################################################################
//# INHALT
//#
//# 1a. Konfigurationtabellen fuer verschiedene FC-Revisionen
//# 1b. Zuweisungstabelle: Revision -> paramset_xxx
//# 2. Konfigurationstabelle der paramSubID's (Bit- und Bytefelder)
//# 3a. interne Zugriffsfunktionen
//# 3b. oeffentliche Zugriffsfunktionen fuer paramID / paramSubID Elemente
//# 3c. oeffentliche Zugriffsfunktionen fuer das gesamte Paramset (Int usw.)
//# x. TEST / DEBUG
//############################################################################
 
 
#include "../cpu.h"
#include <avr/io.h>
#include <inttypes.h>
#include <stdlib.h>
#include <avr/pgmspace.h>
#include <avr/wdt.h>
#include <util/delay.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <string.h>
#include <util/atomic.h>
 
#include "../main.h"
#include "../lipo/lipo.h"
#include "../lcd/lcd.h"
#include "../uart/usart.h"
 
#include "../uart/uart1.h"
#include "../mk-data-structs.h"
#include "../timer/timer.h"
#include "../eeprom/eeprom.h"
#include "../messages.h"
#include "../utils/scrollbox.h"
#include "../pkt/pkt.h"
#include "../mk/mkbase.h"
#include "paramset.h"
 
 
 
//---------------------------
// fuer transform_...
//---------------------------
#define GETVALUE 1 // Wert setzen
#define SETVALUE 2 // Wert lesen
 
 
 
paramRevItem_t *paramsetRevTable; // Zeiger auf aktive Revision-Table oder 0 wenn nicht gesetzt -> wird gesetzt druch paramsetInit() / paramset.c
unsigned char *mkparamset; // nur temp. gueltig solange der PKT-RX-Buffer (pRxData) noch nicht wieder ueberschrieben -> wird gesetzt druch paramsetInit() / paramset.c
 
 
 
//#############################################################################################
//# 1a. Konfigurationtabellen fuer verschiedene FC-Revisionen
//#############################################################################################
 
 
//---------------------------------------------------------------------------------------
// die nachfolgenden Tabellen entsprechen der Struktur von paramRevItem_t aus paramset.h
//---------------------------------------------------------------------------------------
 
 
//-----------------------------------------------
// FC-Parameter Revision: 90
//
// ab FC-Version: ab ??? bis ???
// gefunden in : 0.88e
//
// Tabelle ist definiert in der
// nachfolgenden paramset_091
//
// STRUKTUR-DIFF zu 0:
//
// DEFINE-DIFF zu 0:
//-----------------------------------------------
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 91
//
// ab FC-Version: ab ??? bis ???
// gefunden in : 0.88m, 0.88n
//
// STRUKTUR-DIFF zu 090:
// - keine Aenderung der internen Datenstruktur erkennbar!
//
// DEFINE-DIFF zu 090:
// - add: #define PID_SPEAK_HOTT_CFG
// - add: #define CFG3_MOTOR_SWITCH_MODE
// - add: #define CFG3_NO_GPSFIX_NO_START
//-----------------------------------------------
//
//
// + paramID (paramRevItem_t -> paramID)
// |
// | + size in Bytes (paramRevItem_t -> size)
// | |
// | |
// | |
paramRevItem_t const paramset_091[] PROGMEM =
{
{ param_DUMMY , 111 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
{ param_Name , 12 }, // char Name[12];
{ param_DUMMY , 1 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_091[]
 
 
 
//############################################################################################################################################################
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 92
//
// ab FC-Version: ab ??? bis ???
// gefunden in : 0.90d
//
// Tabelle ist definiert in der
// nachfolgenden paramset_093
//
// STRUKTUR-DIFF zu 091:
// -add: param_NaviOut1Parameter
//#
// DEFINE-DIFF zu 091:
// -add: #define CFG3_USE_NC_FOR_OUT1 0x20
// -add: #define CFG3_SPEAK_ALL
// -add: #define SERVO_NICK_INV 0x01
// -add: #define SERVO_ROLL_INV 0x02
// -add: #define SERVO_RELATIVE 0x04
//-----------------------------------------------
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 93
//
// ab FC-Version: ab ??? bis ???
// gefunden in : 0.90e, 0.90g, 0.90j
//
// STRUKTUR-DIFF zu 092:
// - keine Aenderung der internen Datenstruktur erkennbar!
//
// DEFINE-DIFF zu 092:
// - keine Aenderung erkennbar!
//-----------------------------------------------
paramRevItem_t const paramset_093[] PROGMEM =
{
{ param_DUMMY , 112 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
{ param_Name , 12 }, // char Name[12];
{ param_DUMMY , 1 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_093[]
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 94
//
// ab FC-Version: ab ??? bis ???
// gefunden in : 0.91a
//
// STRUKTUR-DIFF zu 093:
// - add: param_StartLandChannel
// - add: param_LandingSpeed
//
// DEFINE-DIFF zu 093:
// etwas undurchsichtig...
// - add: #define EE_DUMMY
// - add: #define PID_HARDWARE_VERSION
//-----------------------------------------------
paramRevItem_t const paramset_094[] PROGMEM =
{
{ param_DUMMY , 114 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
{ param_Name , 12 }, // char Name[12];
{ param_DUMMY , 1 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_094[]
 
 
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 95
//
// ab FC-Version: ab ??? bis ???
// gefunden in : 0.90L, 2.00a, , 2.00e
//
// STRUKTUR-DIFF zu 094:
// - rename: param_MaxHoehe -> param_HoeheChannel
// - rename: param_NaviGpsModeControl -> param_NaviGpsModeChannel
// - rename: param_NaviGpsACC -> param_NaviGpsA
// - rename: param_CareFreeModeControl -> param_CareFreeChannel
//
// DEFINE-DIFF zu 094:
// - keine Aenderung
//-----------------------------------------------
paramRevItem_t const paramset_095[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_GPS_Z , 1 }, // unsigned char Hoehe_GPS_Z; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char ServoManualControlSpeed;//
{ param_CamOrientation , 1 }, // unsigned char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char WARN_J17_Bitmask; // for the J17 Output
{ param_NaviOut1Parameter , 1 }, // unsigned char NaviOut1Parameter; // for the J16 Output
{ param_NaviGpsModeChannel , 1 }, // unsigned char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviOperatingRadius , 1 }, // unsigned char NaviOperatingRadius;
{ param_NaviAngleLimitation , 1 }, // unsigned char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char NaviPH_LoginTime;
{ param_ExternalControl , 1 }, // unsigned char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char ServoFilterRoll;
{ param_StartLandChannel , 1 }, // unsigned char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char LandingSpeed;
{ param_BitConfig , 1 }, // unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_095[]
 
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 96
//
// ab FC-Version: ab ??? bis ???
// gefunden in: ???
//
// STRUKTUR-DIFF zu 095:
// - KEINE AENDERUNG der INTERNEN DATEN-STRUKTUR!
//
// DEFINE-DIFF zu 095:
// GlobalConfig3
// - add: #define CFG3_SERVO_NICK_COMP_OFF 0x80
//-----------------------------------------------
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 97
//
// ab FC-Version: ab ??? bis ???
// gefunden in: 2.02b
//
// STRUKTUR-DIFF zu 096:
// - add: param_CompassOffset
// - add: param_AutoLandingVoltage
//
// DEFINE-DIFF zu 096:
// - keine Aenderung
//-----------------------------------------------
paramRevItem_t const paramset_097[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_GPS_Z , 1 }, // unsigned char Hoehe_GPS_Z; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char ServoManualControlSpeed;//
{ param_CamOrientation , 1 }, // unsigned char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char WARN_J17_Bitmask; // for the J17 Output
{ param_NaviOut1Parameter , 1 }, // unsigned char NaviOut1Parameter; // for the J16 Output
{ param_NaviGpsModeChannel , 1 }, // unsigned char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviOperatingRadius , 1 }, // unsigned char NaviOperatingRadius;
{ param_NaviAngleLimitation , 1 }, // unsigned char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char NaviPH_LoginTime;
{ param_ExternalControl , 1 }, // unsigned char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char ServoFilterRoll;
{ param_StartLandChannel , 1 }, // unsigned char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_BitConfig , 1 }, // unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_097[]
 
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 98
//
// ab FC-Version: ab ??? bis ???
// gefunden in: 2.03d
//
// STRUKTUR-DIFF zu 097:
// - add: param_ComingHomeVoltage
//
// DEFINE-DIFF zu 097:
// - keine Aenderung
//-----------------------------------------------
paramRevItem_t const paramset_098[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_GPS_Z , 1 }, // unsigned char Hoehe_GPS_Z; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char ServoManualControlSpeed;//
{ param_CamOrientation , 1 }, // unsigned char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char WARN_J17_Bitmask; // for the J17 Output
{ param_NaviOut1Parameter , 1 }, // unsigned char NaviOut1Parameter; // for the J16 Output
{ param_NaviGpsModeChannel , 1 }, // unsigned char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviOperatingRadius , 1 }, // unsigned char NaviOperatingRadius;
{ param_NaviAngleLimitation , 1 }, // unsigned char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char NaviPH_LoginTime;
{ param_ExternalControl , 1 }, // unsigned char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char ServoFilterRoll;
{ param_StartLandChannel , 1 }, // unsigned char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_BitConfig , 1 }, // unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_098[]
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 99
// keine Inormationen zu Rev. 99 vorhanden.
//
// Kommentar dazu von Holger Buss:
// "Die Revision 0.99 kannst Du ignorieren."
//-----------------------------------------------
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 100
//
// ab FC-Version: ab ??? bis 2.05e
// gefunden in: 2.05e
//
// STRUKTUR-DIFF zu 098:
// - del: NaviOut1Parameter
// - add: AutoPhotoDistance (ersetzt NaviOut1Parameter)
// - add: AutoPhotoAtitudes
// - add: SingleWpSpeed
//
// DEFINE-DIFF zu 098:
// - keine Aenderung
//
// ANMERKUNG OG 06.04.2014:
// Die Tabelle kann ggf. demnaechst geloescht werden
// da sie nur fuer eine kurze Zeit in Betaversionen
// vorhanden war!
//-----------------------------------------------
paramRevItem_t const paramset_100[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_GPS_Z , 1 }, // unsigned char char Hoehe_GPS_Z; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char char Hoehe_StickNeutralPoint; // Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char char ServoManualControlSpeed; //
{ param_CamOrientation , 1 }, // unsigned char char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char char WARN_J17_Bitmask; // for the J17 Output
{ param_AutoPhotoDistance , 1 }, // unsigned char char AutoPhotoDistance; // Auto Photo // ab Rev. 100 (ehemals NaviOut1Parameter)
{ param_NaviGpsModeChannel , 1 }, // unsigned char char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviOperatingRadius , 1 }, // unsigned char char NaviOperatingRadius;
{ param_NaviAngleLimitation , 1 }, // unsigned char char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char char NaviPH_LoginTime;
{ param_ExternalControl , 1 }, // unsigned char char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char char ServoFilterRoll;
{ param_StartLandChannel , 1 }, // unsigned char char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_AutoPhotoAtitudes , 1 }, // unsigned char char AutoPhotoAtitudes; // ab Rev. 100
{ param_SingleWpSpeed , 1 }, // unsigned char char SingleWpSpeed; // ab Rev. 100
{ param_BitConfig , 1 }, // unsigned char char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_100[]
 
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 101
//
// ab FC-Version: ab 2.05f bis 2.05f
// gefunden in: 2.05f
//
// STRUKTUR-DIFF zu 100:
// - add: Servo3OnValue
// - add: Servo3OffValue
// - add: Servo4OnValue
// - add: Servo4OffValue
//
// DEFINE-DIFF zu 100:
// - keine Aenderung
//
// ANMERKUNG OG 06.04.2014:
// Die Tabelle kann ggf. demnaechst geloescht werden
// da sie nur fuer eine einzige Betaversion
// vorhanden war!
//-----------------------------------------------
paramRevItem_t const paramset_101[] PROGMEM =
{
{ param_DUMMY , 123 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
{ param_Name , 12 }, // char Name[12];
{ param_DUMMY , 1 }, // n-Bytes Fueller... keine Unterstuetzung fuer paramEdit
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_101[]
 
 
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 102
//
// ab FC-Version: ab 2.05g bis ??? (min. 2.06b)
// gefunden in: 2.05g, 2.06a
//
// STRUKTUR-DIFF zu 101:
// - add: NaviMaxFlyingRange (ersetzt NaviOperatingRadius)
// - add: NaviDescendRange
// - del: NaviOperatingRadius
//
// DEFINE-DIFF zu 101:
// - del: CFG3_DPH_MAX_RADIUS
//-----------------------------------------------
paramRevItem_t const paramset_102[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_GPS_Z , 1 }, // unsigned char char Hoehe_GPS_Z; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char char Hoehe_StickNeutralPoint; // Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char char ServoManualControlSpeed; //
{ param_CamOrientation , 1 }, // unsigned char char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char char WARN_J17_Bitmask; // for the J17 Output
{ param_AutoPhotoDistance , 1 }, // unsigned char char AutoPhotoDistance; // Auto Photo // ab Rev. 100 (ehemals NaviOut1Parameter)
{ param_NaviGpsModeChannel , 1 }, // unsigned char char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviMaxFlyingRange , 1 }, // unsigned char char NaviMaxFlyingRange; // in 10m
{ param_NaviAngleLimitation , 1 }, // unsigned char char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char char NaviPH_LoginTime;
{ param_NaviDescendRange , 1 }, // unsigned char char NaviDescendRange;
{ param_ExternalControl , 1 }, // unsigned char char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char char ServoFilterRoll;
{ param_Servo3OnValue , 1 }, // unsigned char char Servo3OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo3OffValue , 1 }, // unsigned char char Servo3OffValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OnValue , 1 }, // unsigned char char Servo4OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OffValue , 1 }, // unsigned char char Servo4OffValue; // ab Rev. 101 (FC 2.05f)
{ param_StartLandChannel , 1 }, // unsigned char char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_AutoPhotoAtitudes , 1 }, // unsigned char char AutoPhotoAtitudes; // ab Rev. 100
{ param_SingleWpSpeed , 1 }, // unsigned char char SingleWpSpeed; // ab Rev. 100
{ param_BitConfig , 1 }, // unsigned char char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_102[]
 
 
 
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 103
//
// ab FC-Version: ab 2.07f bis ???
// gefunden in: 2.07f
//
// STRUKTUR-DIFF zu 102:
// keine
//
// DEFINE-DIFF zu 102:
// - chg: Hoehe_GPS_Z zu Hoehe_TiltCompensation
//-----------------------------------------------
paramRevItem_t const paramset_103[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_TiltCompensation , 1 }, // unsigned char char Hoehe_TiltCompensation; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char char Hoehe_StickNeutralPoint; // Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char char ServoManualControlSpeed; //
{ param_CamOrientation , 1 }, // unsigned char char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char char WARN_J17_Bitmask; // for the J17 Output
{ param_AutoPhotoDistance , 1 }, // unsigned char char AutoPhotoDistance; // Auto Photo // ab Rev. 100 (ehemals NaviOut1Parameter)
{ param_NaviGpsModeChannel , 1 }, // unsigned char char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviMaxFlyingRange , 1 }, // unsigned char char NaviMaxFlyingRange; // in 10m
{ param_NaviAngleLimitation , 1 }, // unsigned char char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char char NaviPH_LoginTime;
{ param_NaviDescendRange , 1 }, // unsigned char char NaviDescendRange;
{ param_ExternalControl , 1 }, // unsigned char char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char char ServoFilterRoll;
{ param_Servo3OnValue , 1 }, // unsigned char char Servo3OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo3OffValue , 1 }, // unsigned char char Servo3OffValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OnValue , 1 }, // unsigned char char Servo4OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OffValue , 1 }, // unsigned char char Servo4OffValue; // ab Rev. 101 (FC 2.05f)
{ param_StartLandChannel , 1 }, // unsigned char char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_AutoPhotoAtitudes , 1 }, // unsigned char char AutoPhotoAtitudes; // ab Rev. 100
{ param_SingleWpSpeed , 1 }, // unsigned char char SingleWpSpeed; // ab Rev. 100
{ param_BitConfig , 1 }, // unsigned char char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_103[]
 
 
 
//-----------------------------------------------
// FC-Parameter Revision: 104
//
// ab FC-Version: ab 2.09d bis ???
// gefunden in: 2.09d
//
// STRUKTUR-DIFF zu 103:
// add: LandingPulse
//
 
//-----------------------------------------------
paramRevItem_t const paramset_104[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_TiltCompensation , 1 }, // unsigned char char Hoehe_TiltCompensation; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char char Hoehe_StickNeutralPoint; // Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char char ServoManualControlSpeed; //
{ param_CamOrientation , 1 }, // unsigned char char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char char WARN_J17_Bitmask; // for the J17 Output
{ param_AutoPhotoDistance , 1 }, // unsigned char char AutoPhotoDistance; // Auto Photo // ab Rev. 100 (ehemals NaviOut1Parameter)
{ param_NaviGpsModeChannel , 1 }, // unsigned char char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviMaxFlyingRange , 1 }, // unsigned char char NaviMaxFlyingRange; // in 10m
{ param_NaviAngleLimitation , 1 }, // unsigned char char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char char NaviPH_LoginTime;
{ param_NaviDescendRange , 1 }, // unsigned char char NaviDescendRange;
{ param_ExternalControl , 1 }, // unsigned char char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char char ServoFilterRoll;
{ param_Servo3OnValue , 1 }, // unsigned char char Servo3OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo3OffValue , 1 }, // unsigned char char Servo3OffValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OnValue , 1 }, // unsigned char char Servo4OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OffValue , 1 }, // unsigned char char Servo4OffValue; // ab Rev. 101 (FC 2.05f)
{ param_StartLandChannel , 1 }, // unsigned char char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_AutoPhotoAtitudes , 1 }, // unsigned char char AutoPhotoAtitudes; // ab Rev. 100
{ param_SingleWpSpeed , 1 }, // unsigned char char SingleWpSpeed; // ab Rev. 100
{ param_LandingPulse , 1 }, // unsigned char char LandingPulse; // ab Rev. 104 (FC 2.09d)
{ param_BitConfig , 1 }, // unsigned char char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_104[]
 
//-----------------------------------------------
// FC-Parameter Revision: 105
//
// ab FC-Version: ab 2.09j bis ???
// gefunden in: 2.09j
//
// STRUKTUR-DIFF zu 104:
// add: unsigned char ServoFS_Pos[5];
//
 
//-----------------------------------------------
paramRevItem_t const paramset_105[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_TiltCompensation , 1 }, // unsigned char char Hoehe_TiltCompensation; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char char Hoehe_StickNeutralPoint; // Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char char ServoManualControlSpeed; //
{ param_CamOrientation , 1 }, // unsigned char char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char char WARN_J17_Bitmask; // for the J17 Output
{ param_AutoPhotoDistance , 1 }, // unsigned char char AutoPhotoDistance; // Auto Photo // ab Rev. 100 (ehemals NaviOut1Parameter)
{ param_NaviGpsModeChannel , 1 }, // unsigned char char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviMaxFlyingRange , 1 }, // unsigned char char NaviMaxFlyingRange; // in 10m
{ param_NaviAngleLimitation , 1 }, // unsigned char char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char char NaviPH_LoginTime;
{ param_NaviDescendRange , 1 }, // unsigned char char NaviDescendRange;
{ param_ExternalControl , 1 }, // unsigned char char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char char ServoFilterRoll;
{ param_Servo3OnValue , 1 }, // unsigned char char Servo3OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo3OffValue , 1 }, // unsigned char char Servo3OffValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OnValue , 1 }, // unsigned char char Servo4OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OffValue , 1 }, // unsigned char char Servo4OffValue; // ab Rev. 101 (FC 2.05f)
{ param_ServoFS_Pos , 5 }, // unsigned char ServoFS_Pos[5]; // ab Rev. 105 (FC 2.09i)
{ param_StartLandChannel , 1 }, // unsigned char char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_AutoPhotoAtitudes , 1 }, // unsigned char char AutoPhotoAtitudes; // ab Rev. 100
{ param_SingleWpSpeed , 1 }, // unsigned char char SingleWpSpeed; // ab Rev. 100
{ param_LandingPulse , 1 }, // unsigned char char LandingPulse; // ab Rev. 104 (FC 2.09d)
{ param_BitConfig , 1 }, // unsigned char char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_105[]
 
 
//-----------------------------------------------
// FC-Parameter Revision: 106
//
// ab FC-Version: ab 2.11a bis ???
// gefunden in: 2.11a
//
// STRUKTUR-DIFF zu 105:
// add: unsigned char SingleWpControlChannel;
// unsigned char MenuKeyChannel;
 
//
 
//-----------------------------------------------
paramRevItem_t const paramset_106[] PROGMEM =
{
{ param_Revision , 1 }, // unsigned char Revision;
{ param_Kanalbelegung , 12 }, // unsigned char char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
{ param_GlobalConfig , 1 }, // unsigned char char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
{ param_Hoehe_MinGas , 1 }, // unsigned char char Hoehe_MinGas; // Wert : 0-100
{ param_Luftdruck_D , 1 }, // unsigned char char Luftdruck_D; // Wert : 0-250
{ param_HoeheChannel , 1 }, // unsigned char char HoeheChannel; // Wert : 0-32
{ param_Hoehe_P , 1 }, // unsigned char char Hoehe_P; // Wert : 0-32
{ param_Hoehe_Verstaerkung , 1 }, // unsigned char char Hoehe_Verstaerkung; // Wert : 0-50
{ param_Hoehe_ACC_Wirkung , 1 }, // unsigned char char Hoehe_ACC_Wirkung; // Wert : 0-250
{ param_Hoehe_HoverBand , 1 }, // unsigned char char Hoehe_HoverBand; // Wert : 0-250
{ param_Hoehe_TiltCompensation , 1 }, // unsigned char char Hoehe_TiltCompensation; // Wert : 0-250
{ param_Hoehe_StickNeutralPoint , 1 }, // unsigned char char Hoehe_StickNeutralPoint; // Wert : 0-250
{ param_Stick_P , 1 }, // unsigned char char Stick_P; // Wert : 1-6
{ param_Stick_D , 1 }, // unsigned char char Stick_D; // Wert : 0-64
{ param_StickGier_P , 1 }, // unsigned char char StickGier_P; // Wert : 1-20
{ param_Gas_Min , 1 }, // unsigned char char Gas_Min; // Wert : 0-32
{ param_Gas_Max , 1 }, // unsigned char char Gas_Max; // Wert : 33-250
{ param_GyroAccFaktor , 1 }, // unsigned char char GyroAccFaktor; // Wert : 1-64
{ param_KompassWirkung , 1 }, // unsigned char char KompassWirkung; // Wert : 0-32
{ param_Gyro_P , 1 }, // unsigned char char Gyro_P; // Wert : 10-250
{ param_Gyro_I , 1 }, // unsigned char char Gyro_I; // Wert : 0-250
{ param_Gyro_D , 1 }, // unsigned char char Gyro_D; // Wert : 0-250
{ param_Gyro_Gier_P , 1 }, // unsigned char char Gyro_Gier_P; // Wert : 10-250
{ param_Gyro_Gier_I , 1 }, // unsigned char char Gyro_Gier_I; // Wert : 0-250
{ param_Gyro_Stability , 1 }, // unsigned char char Gyro_Stability; // Wert : 0-16
{ param_UnterspannungsWarnung , 1 }, // unsigned char char UnterspannungsWarnung; // Wert : 0-250
{ param_NotGas , 1 }, // unsigned char char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
{ param_NotGasZeit , 1 }, // unsigned char char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
{ param_Receiver , 1 }, // unsigned char char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
{ param_I_Faktor , 1 }, // unsigned char char I_Faktor; // Wert : 0-250
{ param_UserParam1 , 1 }, // unsigned char char UserParam1; // Wert : 0-250
{ param_UserParam2 , 1 }, // unsigned char char UserParam2; // Wert : 0-250
{ param_UserParam3 , 1 }, // unsigned char char UserParam3; // Wert : 0-250
{ param_UserParam4 , 1 }, // unsigned char char UserParam4; // Wert : 0-250
{ param_ServoNickControl , 1 }, // unsigned char char ServoNickControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoNickComp , 1 }, // unsigned char char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
{ param_ServoNickMin , 1 }, // unsigned char char ServoNickMin; // Wert : 0-250 // Anschlag
{ param_ServoNickMax , 1 }, // unsigned char char ServoNickMax; // Wert : 0-250 // Anschlag
{ param_ServoRollControl , 1 }, // unsigned char char ServoRollControl; // Wert : 0-250 // Stellung des Servos
{ param_ServoRollComp , 1 }, // unsigned char char ServoRollComp; // Wert : 0-250
{ param_ServoRollMin , 1 }, // unsigned char char ServoRollMin; // Wert : 0-250
{ param_ServoRollMax , 1 }, // unsigned char char ServoRollMax; // Wert : 0-250
{ param_ServoNickRefresh , 1 }, // unsigned char char ServoNickRefresh; // Speed of the Servo
{ param_ServoManualControlSpeed , 1 }, // unsigned char char ServoManualControlSpeed; //
{ param_CamOrientation , 1 }, // unsigned char char CamOrientation; //
{ param_Servo3 , 1 }, // unsigned char char Servo3; // Value or mapping of the Servo Output
{ param_Servo4 , 1 }, // unsigned char char Servo4; // Value or mapping of the Servo Output
{ param_Servo5 , 1 }, // unsigned char char Servo5; // Value or mapping of the Servo Output
{ param_LoopGasLimit , 1 }, // unsigned char char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
{ param_LoopThreshold , 1 }, // unsigned char char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
{ param_LoopHysterese , 1 }, // unsigned char char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
{ param_AchsKopplung1 , 1 }, // unsigned char char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
{ param_AchsKopplung2 , 1 }, // unsigned char char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_CouplingYawCorrection , 1 }, // unsigned char char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
{ param_WinkelUmschlagNick , 1 }, // unsigned char char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
{ param_WinkelUmschlagRoll , 1 }, // unsigned char char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
{ param_GyroAccAbgleich , 1 }, // unsigned char char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
{ param_Driftkomp , 1 }, // unsigned char char Driftkomp;
{ param_DynamicStability , 1 }, // unsigned char char DynamicStability;
{ param_UserParam5 , 1 }, // unsigned char char UserParam5; // Wert : 0-250
{ param_UserParam6 , 1 }, // unsigned char char UserParam6; // Wert : 0-250
{ param_UserParam7 , 1 }, // unsigned char char UserParam7; // Wert : 0-250
{ param_UserParam8 , 1 }, // unsigned char char UserParam8; // Wert : 0-250
{ param_J16Bitmask , 1 }, // unsigned char char J16Bitmask; // for the J16 Output
{ param_J16Timing , 1 }, // unsigned char char J16Timing; // for the J16 Output
{ param_J17Bitmask , 1 }, // unsigned char char J17Bitmask; // for the J17 Output
{ param_J17Timing , 1 }, // unsigned char char J17Timing; // for the J17 Output
{ param_WARN_J16_Bitmask , 1 }, // unsigned char char WARN_J16_Bitmask; // for the J16 Output
{ param_WARN_J17_Bitmask , 1 }, // unsigned char char WARN_J17_Bitmask; // for the J17 Output
{ param_AutoPhotoDistance , 1 }, // unsigned char char AutoPhotoDistance; // Auto Photo // ab Rev. 100 (ehemals NaviOut1Parameter)
{ param_NaviGpsModeChannel , 1 }, // unsigned char char NaviGpsModeChannel; // Parameters for the Naviboard
{ param_NaviGpsGain , 1 }, // unsigned char char NaviGpsGain;
{ param_NaviGpsP , 1 }, // unsigned char char NaviGpsP;
{ param_NaviGpsI , 1 }, // unsigned char char NaviGpsI;
{ param_NaviGpsD , 1 }, // unsigned char char NaviGpsD;
{ param_NaviGpsPLimit , 1 }, // unsigned char char NaviGpsPLimit;
{ param_NaviGpsILimit , 1 }, // unsigned char char NaviGpsILimit;
{ param_NaviGpsDLimit , 1 }, // unsigned char char NaviGpsDLimit;
{ param_NaviGpsA , 1 }, // unsigned char char NaviGpsA;
{ param_NaviGpsMinSat , 1 }, // unsigned char char NaviGpsMinSat;
{ param_NaviStickThreshold , 1 }, // unsigned char char NaviStickThreshold;
{ param_NaviWindCorrection , 1 }, // unsigned char char NaviWindCorrection;
{ param_NaviAccCompensation , 1 }, // unsigned char char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
{ param_NaviMaxFlyingRange , 1 }, // unsigned char char NaviMaxFlyingRange; // in 10m
{ param_NaviAngleLimitation , 1 }, // unsigned char char NaviAngleLimitation;
{ param_NaviPH_LoginTime , 1 }, // unsigned char char NaviPH_LoginTime;
{ param_NaviDescendRange , 1 }, // unsigned char char NaviDescendRange;
{ param_ExternalControl , 1 }, // unsigned char char ExternalControl; // for serial Control
{ param_OrientationAngle , 1 }, // unsigned char char OrientationAngle; // Where is the front-direction?
{ param_CareFreeChannel , 1 }, // unsigned char char CareFreeChannel; // switch for CareFree
{ param_MotorSafetySwitch , 1 }, // unsigned char char MotorSafetySwitch;
{ param_MotorSmooth , 1 }, // unsigned char char MotorSmooth;
{ param_ComingHomeAltitude , 1 }, // unsigned char char ComingHomeAltitude;
{ param_FailSafeTime , 1 }, // unsigned char char FailSafeTime;
{ param_MaxAltitude , 1 }, // unsigned char char MaxAltitude;
{ param_FailsafeChannel , 1 }, // unsigned char char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
{ param_ServoFilterNick , 1 }, // unsigned char char ServoFilterNick;
{ param_ServoFilterRoll , 1 }, // unsigned char char ServoFilterRoll;
{ param_Servo3OnValue , 1 }, // unsigned char char Servo3OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo3OffValue , 1 }, // unsigned char char Servo3OffValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OnValue , 1 }, // unsigned char char Servo4OnValue; // ab Rev. 101 (FC 2.05f)
{ param_Servo4OffValue , 1 }, // unsigned char char Servo4OffValue; // ab Rev. 101 (FC 2.05f)
{ param_ServoFS_Pos , 5 }, // unsigned char ServoFS_Pos[5]; // ab Rev. 105 (FC 2.09i)
{ param_StartLandChannel , 1 }, // unsigned char char StartLandChannel;
{ param_LandingSpeed , 1 }, // unsigned char char LandingSpeed;
{ param_CompassOffset , 1 }, // unsigned char char CompassOffset;
{ param_AutoLandingVoltage , 1 }, // unsigned char char AutoLandingVoltage; // in 0,1V 0 -> disabled
{ param_ComingHomeVoltage , 1 }, // unsigned char char ComingHomeVoltage; // in 0,1V 0 -> disabled
{ param_AutoPhotoAtitudes , 1 }, // unsigned char char AutoPhotoAtitudes; // ab Rev. 100
{ param_SingleWpSpeed , 1 }, // unsigned char char SingleWpSpeed; // ab Rev. 100
{ param_LandingPulse , 1 }, // unsigned char char LandingPulse; // ab Rev. 104 (FC 2.09d)
{ param_SingleWpControlChannel , 1 }, // unsigned char SingleWpControlChannel; // ab Rev. 106 (FC2.11a)
{ param_MenuKeyChannel , 1 }, // unsigned char MenuKeyChannel; // ab Rev. 106 (FC2.11a)
{ param_BitConfig , 1 }, // unsigned char char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
{ param_ServoCompInvert , 1 }, // unsigned char char ServoCompInvert; // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
{ param_ExtraConfig , 1 }, // unsigned char char ExtraConfig; // bitcodiert
{ param_GlobalConfig3 , 1 }, // unsigned char char GlobalConfig3; // bitcodiert
{ param_Name , 12 }, // char Name[12];
{ param_crc , 1 }, // unsigned char char crc; // must be the last byte!
 
{ param_EOF , 0 } // END OF PARAM-LIST - MUST BE THE LAST!!
 
}; // end: paramset_106[]
 
 
 
 
//#############################################################################################
//# 1b. Zuweisungstabelle: Revision -> paramset_xxx
//#############################################################################################
 
typedef struct
{
unsigned char Revision;
const paramRevItem_t *RevisionTable;
} paramsetRevMap_t;
 
#define MAPEOF 255
 
 
//----------------------------------------------------------------
// Mappingtabelle zwischen FC-Revision und Paramset-Tabelle
//
// Anmerkung bzgl. Groesse:
// Angenommen man wuerde die Rev 97 bis 90 weglassen, dann
// wuerde man ca. 1 KByte sparen
//----------------------------------------------------------------
paramsetRevMap_t paramsetRevMap[] =
{
{ 106 , paramset_106 }, // 2.11a
{ 105 , paramset_105 }, // 2.09j
{ 104 , paramset_104 }, // 2.09d
{ 103 , paramset_103 }, // 2.07f
{ 102 , paramset_102 }, // 2.05g (bis min. 2.06b)
{ 101 , paramset_101 }, // 2.05f (eingeschraenkte Unterstuetzung - ) nur in einer einzigen Betaversion vorhanden!)
{ 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)
// Rev. 99: nicht vorhanden; ignorieren
{ 98 , paramset_098 }, // 2.03d
{ 97 , paramset_097 }, // 2.02b
{ 96 , paramset_095 }, // ??? (keine Struktur-Aenderung zu 095)
{ 95 , paramset_095 }, // 0.90L, 2.00a, 2.00e
{ 94 , paramset_094 }, // eingeschraenkte Unterstuetzung; 0.91a
{ 93 , paramset_093 }, // eingeschraenkte Unterstuetzung; 0.90e, 0.90g, 0.90j
{ 92 , paramset_093 }, // eingeschraenkte Unterstuetzung; 0.90d (keine Struktur-Aenderung zu 093)
{ 91 , paramset_091 }, // eingeschraenkte Unterstuetzung; 0.88m, 0.88n
{ 90 , paramset_091 }, // eingeschraenkte Unterstuetzung; 0.88e (keine Struktur-Aenderung zu 091)
 
{ MAPEOF, 0 } // END OF LIST - MUST BE THE LAST!!
};
 
 
 
 
//#############################################################################################
//# 2. Konfigurationstabelle der paramSubID's (Bit- und Bytefelder)
//#############################################################################################
 
//---------------------------------------
// struct: einzelnes Parameter-SubItem
//---------------------------------------
typedef struct
{
unsigned char paramSubID; // groesser/gleich PARAMSUBITEMS
unsigned char paramID; // -> mapping auf entsprechende paramID
unsigned char subType; // SUBTYPE_BIT oder SUBTYPE_BYTE
unsigned char subIndex; // bei SUBTYPE_BIT: Bitmask z.b. 0x02
// bei SUBTYPE_BYTE: index des Bytes (siehe param_Kanalbelegung)
unsigned char von_Revision; // ab welcher FC-Revision ist das SubItem vorhanden (0=immer)
unsigned char bis_Revision; // bis zu welcher FC-Revision ist das SubItem vorhanden (0=immer)
} paramSubItem_t;
 
 
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
// +- von_Revision
// |
// +- paramSubID +- gehoert zu? +- Bit/Byte? +- Bit/Byte der paramID | +- bis_Revision
// | | | | | |
//--|-----------------------------------------|----------------------|--------------|----------------------------------|--|----------------------------------------------
paramSubItem_t const paramSubItem[] PROGMEM =
{
{ param_ServoCompInvert_SERVO_NICK_INV , param_ServoCompInvert, SUBTYPE_BIT, SERVO_NICK_INV , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: SVNick 0x01
{ param_ServoCompInvert_SERVO_ROLL_INV , param_ServoCompInvert, SUBTYPE_BIT, SERVO_ROLL_INV , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: SVRoll 0x02
{ param_ServoCompInvert_SERVO_RELATIVE , param_ServoCompInvert, SUBTYPE_BIT, SERVO_RELATIVE , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: SVRelMov 0x04
 
{ param_ExtraConfig_HeightLimit , param_ExtraConfig, SUBTYPE_BIT, CFG2_HEIGHT_LIMIT , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG2_HEIGHT_LIMIT 0x01
{ 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
{ param_ExtraConfig_VarioBeep , param_ExtraConfig, SUBTYPE_BIT, CFG2_VARIO_BEEP , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG2_VARIO_BEEP 0x02
{ param_ExtraConfig_SensitiveRc , param_ExtraConfig, SUBTYPE_BIT, CFG_SENSITIVE_RC , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_SENSITIVE_RC 0x04
{ param_ExtraConfig_33vReference , param_ExtraConfig, SUBTYPE_BIT, CFG_3_3V_REFERENCE , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_3_3V_REFERENCE 0x08
{ param_ExtraConfig_NoRcOffBeeping , param_ExtraConfig, SUBTYPE_BIT, CFG_NO_RCOFF_BEEPING , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_NO_RCOFF_BEEPING 0x10
{ param_ExtraConfig_GpsAid , param_ExtraConfig, SUBTYPE_BIT, CFG_GPS_AID , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_GPS_AID 0x20
{ param_ExtraConfig_LearnableCarefree , param_ExtraConfig, SUBTYPE_BIT, CFG_LEARNABLE_CAREFREE , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_LEARNABLE_CAREFREE 0x40
{ 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
 
{ param_BitConfig_LoopOben , param_BitConfig, SUBTYPE_BIT, CFG_LOOP_OBEN , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_OBEN 0x01
{ param_BitConfig_LoopUnten , param_BitConfig, SUBTYPE_BIT, CFG_LOOP_UNTEN , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_UNTEN 0x02
{ param_BitConfig_LoopLinks , param_BitConfig, SUBTYPE_BIT, CFG_LOOP_LINKS , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_LINKS 0x04
{ param_BitConfig_LoopRechts , param_BitConfig, SUBTYPE_BIT, CFG_LOOP_RECHTS , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_LOOP_RECHTS 0x08
{ param_BitConfig_MotorBlink1 , param_BitConfig, SUBTYPE_BIT, CFG_MOTOR_BLINK1 , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_BLINK1 0x10
{ param_BitConfig_MotorOffLed1 , param_BitConfig, SUBTYPE_BIT, CFG_MOTOR_OFF_LED1 , 0,101}, // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_OFF_LED1 0x20
{ param_BitConfig_MotorOffLed2 , param_BitConfig, SUBTYPE_BIT, CFG_MOTOR_OFF_LED2 , 0,101}, // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_OFF_LED2 0x40
{ param_BitConfig_MotorBlink2 , param_BitConfig, SUBTYPE_BIT, CFG_MOTOR_BLINK2 , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_MOTOR_BLINK2 0x80
 
{ 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
{ param_GlobalConfig3_DphMaxRadius , param_GlobalConfig3, SUBTYPE_BIT, CFG3_DPH_MAX_RADIUS , 0,100}, // SUBTYPE_BIT - mk-data-structs.h: CFG3_DPH_MAX_RADIUS 0x02
{ param_GlobalConfig3_VarioFailsafe , param_GlobalConfig3, SUBTYPE_BIT, CFG3_VARIO_FAILSAFE , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG3_VARIO_FAILSAFE 0x04
{ param_GlobalConfig3_MotorSwitchMode , param_GlobalConfig3, SUBTYPE_BIT, CFG3_MOTOR_SWITCH_MODE , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG3_MOTOR_SWITCH_MODE 0x08
{ 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
{ 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
{ param_GlobalConfig3_SpeakAll , param_GlobalConfig3, SUBTYPE_BIT, CFG3_SPEAK_ALL , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG3_SPEAK_ALL 0x40
{ 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
 
{ param_GlobalConfig_HoehenRegelung , param_GlobalConfig, SUBTYPE_BIT, CFG_HOEHENREGELUNG , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_HOEHENREGELUNG 0x01
{ param_GlobalConfig_HoehenSchalter , param_GlobalConfig, SUBTYPE_BIT, CFG_HOEHEN_SCHALTER , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_HOEHEN_SCHALTER 0x02
{ param_GlobalConfig_HeadingHold , param_GlobalConfig, SUBTYPE_BIT, CFG_HEADING_HOLD , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_HEADING_HOLD 0x04
{ param_GlobalConfig_KompassAktiv , param_GlobalConfig, SUBTYPE_BIT, CFG_KOMPASS_AKTIV , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_KOMPASS_AKTIV 0x08
{ param_GlobalConfig_KompassFix , param_GlobalConfig, SUBTYPE_BIT, CFG_KOMPASS_FIX , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_KOMPASS_FIX 0x10
{ param_GlobalConfig_GpsAktiv , param_GlobalConfig, SUBTYPE_BIT, CFG_GPS_AKTIV , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_GPS_AKTIV 0x20
{ param_GlobalConfig_AchsenkopplungAktiv , param_GlobalConfig, SUBTYPE_BIT, CFG_ACHSENKOPPLUNG_AKTIV , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_ACHSENKOPPLUNG_AKTIV 0x40
{ param_GlobalConfig_DrehratenBegrenzer , param_GlobalConfig, SUBTYPE_BIT, CFG_DREHRATEN_BEGRENZER , 0, 0}, // SUBTYPE_BIT - mk-data-structs.h: CFG_DREHRATEN_BEGRENZER 0x80
 
{ param_Kanalbelegung_Nick , param_Kanalbelegung, SUBTYPE_BYTE, 0 , 0, 0}, // -> Kanalbelegung[12]
{ param_Kanalbelegung_Roll , param_Kanalbelegung, SUBTYPE_BYTE, 1 , 0, 0},
{ param_Kanalbelegung_Gas , param_Kanalbelegung, SUBTYPE_BYTE, 2 , 0, 0},
{ param_Kanalbelegung_Gear , param_Kanalbelegung, SUBTYPE_BYTE, 3 , 0, 0},
{ param_Kanalbelegung_Poti1 , param_Kanalbelegung, SUBTYPE_BYTE, 4 , 0, 0},
{ param_Kanalbelegung_Poti2 , param_Kanalbelegung, SUBTYPE_BYTE, 5 , 0, 0},
{ param_Kanalbelegung_Poti3 , param_Kanalbelegung, SUBTYPE_BYTE, 6 , 0, 0},
{ param_Kanalbelegung_Poti4 , param_Kanalbelegung, SUBTYPE_BYTE, 7 , 0, 0},
{ param_Kanalbelegung_Poti5 , param_Kanalbelegung, SUBTYPE_BYTE, 8 , 0, 0},
{ param_Kanalbelegung_Poti6 , param_Kanalbelegung, SUBTYPE_BYTE, 9 , 0, 0},
{ param_Kanalbelegung_Poti7 , param_Kanalbelegung, SUBTYPE_BYTE, 10 , 0, 0},
{ param_Kanalbelegung_Poti8 , param_Kanalbelegung, SUBTYPE_BYTE, 11 , 0, 0},
 
{ param_CompassOffset_DisableDeclCalc , param_CompassOffset, SUBTYPE_BYTE, 0 , 0, 0}, // ist in Bit 8 und 7 von CompassOffset kodiert
{ param_ComingHomeOrientation , param_ServoCompInvert, SUBTYPE_BYTE, 0 , 0, 0}, // ist in Bit 5 und 4 von CervoCompInvert
 
{ param_ServoNickFailsave , param_ServoFS_Pos, SUBTYPE_BYTE, 0 , 0, 0},
{ param_ServoRollFailsave , param_ServoFS_Pos, SUBTYPE_BYTE, 1 , 0, 0},
{ param_Servo3Failsave , param_ServoFS_Pos, SUBTYPE_BYTE, 2 , 0, 0},
{ param_Servo4Failsave , param_ServoFS_Pos, SUBTYPE_BYTE, 3 , 0, 0},
{ param_Servo5Failsave , param_ServoFS_Pos, SUBTYPE_BYTE, 4 , 0, 0},
 
{ param_EOF , 0,0,0,0,0 } // END - MUST BE THE LAST!!
}; // end: paramSubItem[]
 
 
 
//#############################################################################################
//# 3a. Transformations-Tabelle
//#############################################################################################
 
//---------------------------------------
// struct: einzelnes Parameter-SubItem
//---------------------------------------
typedef struct
{
unsigned char paramID; // paramID oder paramSubID
unsigned char (*transformfunc)( uint8_t cmd, unsigned char value, unsigned char newvalue ); // Edit-Funktion (z.B. editGeneric()); cmd = CMD_EDIT oder CMD_SHORTVALUE
} paramTransform_t;
 
 
 
//---------------------------------------
// forward Deklarationen fuer transform
//---------------------------------------
unsigned char transform_CompassOffset_DisableDeclCalc( uint8_t cmd, unsigned char value, unsigned char newvalue );
unsigned char transform_ComingHomeOrientation( uint8_t cmd, unsigned char value, unsigned char newvalue );
//unsigned char transform_ValueACCZ( uint16_t cmd, uint16_t value, uint16_t newvalue );
 
//---------------------------------------
//---------------------------------------
paramTransform_t const paramTransform[] =
{
{ param_CompassOffset_DisableDeclCalc , &transform_CompassOffset_DisableDeclCalc },
{ param_ComingHomeOrientation , &transform_ComingHomeOrientation },
// { param_LandingPulse, &transform_ValueACCZ},
 
{ param_EOF , NULL } // END - MUST BE THE LAST!!
};
 
 
 
 
//#############################################################################################
//# 3b. Transformations-Funktionen
//#############################################################################################
 
//---------------------------------------
// transform_CompassOffset_DisableDeclCalc()
//
// PARAMETER:
// cmd : GETVALUE || SETVALUE
// value :
// newvalue: nur wenn cmd == SETVALUE
//
// Der true/false (Ja/Nein) Wert von param_CompassOffset_DisableDeclCalc
// ist in dem Byte von param_CompassOffset in den Bits 7 & 8 einkodiert.
//---------------------------------------
unsigned char transform_CompassOffset_DisableDeclCalc( uint8_t cmd, unsigned char value, unsigned char newvalue )
{
uint8_t bit7;
uint8_t bit8;
 
bit7 = ((value & 0x40) ? true : false);
bit8 = ((value & 0x80) ? true : false);
 
if( cmd == GETVALUE )
{
// Bit 8 == Bit 7: Disable dec. Calc AUS
// Bit 8 != Bit 7: Disable dec. Calc AN
value = ((bit8 == bit7) ? 0 : 1);
}
 
if( cmd == SETVALUE )
{
if( newvalue ) bit8 = !bit7; // Bit 8 != Bit 7: Disable dec. Calc AN
else bit8 = bit7; // Bit 8 == Bit 7: Disable dec. Calc AUS
 
if( bit8 ) value = (value | 0x80); // Bit 8 setzen
else value = (value & (0x80 ^ 0xff)); // Bit 8 loeschen
}
 
 
//lcdx_printf_at_P( 0, 7, MINVERS, 0,0 , PSTR(" %d => %d "), value, newvalue );
 
return value;
}
 
//---------------------------------------
// transform_ComingHomeOrientation()
//
// PARAMETER:
// cmd : GETVALUE || SETVALUE
// value :
// newvalue: nur wenn cmd == SETVALUE
//
//
// ist in dem Byte von param_ServoCompInvert in den Bits 4 & 5 einkodiert, Bits 1-3 bleiben unverändert
//---------------------------------------
 
uint8_t save =0; // globale Variable zum Sichern des alten Byte ServoCompInvert Wertes
 
unsigned char transform_ComingHomeOrientation( uint8_t cmd, unsigned char value, unsigned char newvalue )
{
 
if( cmd == GETVALUE )
{
save = value; // altes "gemeinsames" Byte ServoCompInvert sichern
value =((value & 0x18) >> 3); // CominghomeOrientation Bits nach rechts verschieben
}
 
if( cmd == SETVALUE )
{
value = ((newvalue << 3)|(save & 0x07)); // CominghomeOrientation Bits nach links verschieben und "alte" Bits 1-3 wieder dazufügen
}
 
 
//lcdx_printf_at_P( 0, 7, MINVERS, 0,0 , PSTR(" %d => %d "), value, newvalue );
 
return value;
}
 
//
//
////---------------------------------------
//// transform_ValueACCZ()
////
//// PARAMETER:
//// cmd : GETVALUE || SETVALUE
//// value :
//// newvalue: nur wenn cmd == SETVALUE
////
////
//// ACC Z Landing Pulse Wert für die Anzeige x 4
////---------------------------------------
//
//
//unsigned char transform_ValueACCZ( uint16_t cmd, uint16_t value, unint16_t newvalue )
//
//uint16_t save16 =0; // globale Variable zum Sichern des alten Byte ServoCompInvert Wertes
//
//{
// if( cmd == GETVALUE )
// {
// save16 = value; // altes Byte ACC Z Landing Pulse sichern
// value = (value * 4); // Wert x 4
// }
//
// if( cmd == SETVALUE )
// {
// value = (newvalue / 4); // Neuer Wert ACC Z Landingpulse /4
// }
//
//
// return value;
//}
 
//#############################################################################################
//# 4a. interne Zugriffsfunktionen
//#############################################################################################
 
//--------------------------------------------------------------
// INTERN
//
// Parameter:
// paramSubID: 'echter' Parameter zum Suchen in paramSubItem[] zum
// nachfolgeden Parameter geben das Suchergebnis zurueck
// und sind alle 0 wenn nichts gefunden wurde
//
// Rueckgabe:
// true/false
//--------------------------------------------------------------
unsigned char _paramset_getsubitemid( unsigned char paramSubID, unsigned char *paramID, unsigned char *subType, unsigned char *subIndex )
{
unsigned char id;
unsigned char *p;
unsigned char von_Revision;
unsigned char bis_Revision;
 
*paramID = 0;
*subType = 0;
*subIndex = 0;
 
p = (unsigned char *) paramSubItem;
 
while( true )
{
id = pgm_read_byte(p+0); // paramSubItem[..].paramSubID - die aktuelle paramSubID
 
if( (id == paramSubID) ) // gefunden?
{
von_Revision = pgm_read_byte(p+4); // paramSubItem[..].von_Revision;
bis_Revision = pgm_read_byte(p+5); // paramSubItem[..].bis_Revision;
 
// in aktueller FC-Revision vorhanden?
if( von_Revision && (MKVersion.paramsetRevision < von_Revision) ) return false; // passt nicht zur aktuellen FC-Revision -> exit
if( bis_Revision && (MKVersion.paramsetRevision > bis_Revision) ) return false; // passt nicht zur aktuellen FC-Revision -> exit
 
*paramID = pgm_read_byte(p+1); // paramSubItem[..].paramID;
*subType = pgm_read_byte(p+2); // paramSubItem[..].subType;
*subIndex = pgm_read_byte(p+3); // paramSubItem[..].subIndex;
return true;
}
 
if( id == param_EOF ) break;
 
p += sizeof( paramSubItem_t );
}
 
return false;
}
 
 
 
 
//--------------------------------------------------------------
// INTERN
//
// Parameter:
// retItemSize: false = offset zurueckgeben (normaler Modus)
// true = size von paramID zurueckgeben (fuer paramSize())
//--------------------------------------------------------------
unsigned char _paramset_getoffsetX( unsigned char paramID, unsigned char retItemSize, unsigned char *subType, unsigned char *subIndex )
{
unsigned char *p;
unsigned char offset;
unsigned char size;
unsigned char this_paramID;
unsigned char paramSubID;
 
*subType = SUBTYPE_NO; // =0
*subIndex = 0;
 
 
size = 0;
offset = param_NOTFOUND;
 
if( MKVersion.paramsetOK )
{
//-----------------------
// eine paramSubID wurde uebergeben
// -> ermittle zugehoerige paramID!
//-----------------------
if( (paramID >= param_SUBITEM) && (paramID != param_EOF) )
{
paramSubID = paramID;
if( !_paramset_getsubitemid( paramSubID, &paramID, subType, subIndex ) )
{
// keine paramID gefunden...
if( retItemSize ) return size; // size == 0
else return offset; // offset == param_NOTFOUND
}
}
 
 
//-----------------------
// paramID suchen
//-----------------------
offset = 0;
 
p = (unsigned char *) paramsetRevTable;
 
while( true )
{
this_paramID = pgm_read_byte(p); // die aktuelle paramID
size = pgm_read_byte(p+1); // size von paramID
 
// gefunden oder Ende
if( (this_paramID == paramID) || (this_paramID == param_EOF) )
{
break;
}
 
offset += size;
p += sizeof( paramRevItem_t );
}
 
 
// paramID nicht gefunden?
if( (this_paramID == param_EOF) && (paramID != param_EOF) )
{
offset = param_NOTFOUND;
size = 0;
}
 
}
 
if( retItemSize ) return size;
else return offset;
}
 
 
 
//--------------------------------------------------------------
// INTERN
//
// Parameter:
// retItemSize == false: offset zurueckgeben (normaler Modus)
// retItemSize == true : size von paramID zurueckgeben
// --> fuer paramSize()
//--------------------------------------------------------------
unsigned char _paramset_getoffset( unsigned char paramID, unsigned char retItemSize )
{
unsigned char subType;
unsigned char subIndex;
 
return _paramset_getoffsetX( paramID, retItemSize, &subType, &subIndex );
}
 
 
 
//--------------------------------------------------------------
// INTERN
//
// sucht/prueft ob eine Transform-Funktion vorhanden ist
//
// RUECKGABE:
// Index: (Num 0..n) auf paramTransform[]
// => param_EOF (=255) wenn keine transform-Funktion vorhanden
//--------------------------------------------------------------
unsigned char _paramset_gettransformIndex( unsigned char paramID )
{
unsigned char i;
 
i = 0;
while( paramTransform[i].paramID != param_EOF )
{
if( paramTransform[i].paramID == paramID ) return i;
if( paramTransform[i].paramID == param_EOF ) return param_EOF;
i++;
}
 
return param_EOF;
}
 
 
 
//#############################################################################################
//# 4b. oeffentliche Zugriffsfunktionen fuer paramID / paramSubID Elemente
//#
//# Hier sind die Getter/Setter um auf die einzelnen Werte der paramset-Struktur zuzugreifen.
//# Dazu muss vorher das richtige paramset initialisert worden sein!
//#
//# ACHTUNG!
//# Fuer die Daten wird direkt auf den RX-Buffer vom PKT zugegriffen!
//# ==> der Buffer darf NICHT durch andere Datenpakete bereits wieder ueberschrieben worden sein!
//#
//# Anmerkung:
//# Das obige 'Achtung' koennte man aendern durch eine Kopie des RX-Buffers. Das verbraucht
//# zusaetzlichen RAM-Speicher -> probieren wir es erstmal so...
//#############################################################################################
 
//--------------------------------------------------------------
// size = paramSize( paramID )
//--------------------------------------------------------------
unsigned char paramSize( unsigned char paramID )
{
return( _paramset_getoffset(paramID,true) ); // true = size (in Bytes) der paramID zurueckgeben (nicht offset)
}
 
 
 
//--------------------------------------------------------------
// exist = paramExist( paramID )
//
// Rueckgabe:
// true : die paramID existiert im aktuellen paramset
// false : die paramID existiert nicht
//--------------------------------------------------------------
unsigned char paramExist( unsigned char paramID )
{
return( (_paramset_getoffset(paramID,true) != 0) ); // true = size (in Bytes) der paramID zurueckgeben (nicht offset)
}
 
 
 
//--------------------------------------------------------------
// pointer = paramGet_p( paramID )
//
// ACHTUNG! Nicht faehig fuer Transform!
//
// RUECKGABE:
// pointer direkt auf~ein Byte im Parameterset
// (paramSubID nicht moeglich!)
//--------------------------------------------------------------
unsigned char *paramGet_p( unsigned char paramID )
{
unsigned char offset;
 
offset = _paramset_getoffset( paramID, false ); // false = offset zurueckgeben
 
if( offset != param_NOTFOUND )
{
return( (unsigned char *) (mkparamset + offset) ); // Rueckgabe: Pointer auf die Daten
}
return 0;
}
 
 
 
//--------------------------------------------------------------
// value = paramGet( paramID )
//
// holt den Wert von paramID. paramSubID's werden dabei
// unterstuetzt (Bit- und Bytefelder).
//
// Bei Bit-Feldern (z.B. GlobalConfig3) wird eine enstprechende
// Bit-Maskierung automatisch durchgefuehrt
// Ergebnis: true (=1) oder false (=0)false (=0)
//
// Bei Byte-Feldern (z.B. Kanalbelegung) wird der Wert des
// entsprechenden Byte's zurueckgegeben
//
// Hinweis: anhand des Rueckgabewertes kann nicht ueberprueft
// werden ob die paramID gefunden wurde bzw. existiert!
// -> ggf. erst mit paramExist() pruefen ob der Wert existiert!
//--------------------------------------------------------------
unsigned char paramGet( unsigned char paramID )
{
unsigned char offset;
unsigned char subType;
unsigned char subIndex;
unsigned char value;
unsigned char transformIdx;
 
offset = _paramset_getoffsetX( paramID, false, &subType, &subIndex ); // false = offset zurueckgeben
 
if( offset == param_NOTFOUND ) return false; // paramID nicht gefunden / nicht unterstuetzt
 
value = (unsigned char) *(mkparamset + offset); // offset Inhalt lesen (paramID)
 
//-------------------
// subIndex: Bit
//-------------------
if( subType == SUBTYPE_BIT )
{
value = ((value & subIndex) ? true : false); // Rueckgabe: true/false des gewaehlten Bit's
}
 
//-------------------
// subIndex: Bit negiert
//-------------------
if( subType == SUBTYPE_BITN )
{
value = ((value & subIndex) ? false : true); // Rueckgabe: true/false des gewaehlten Bit's (negiert)
}
 
//-------------------
// subIndex: Byte
//-------------------
if( subType == SUBTYPE_BYTE )
{
value = (unsigned char) *(mkparamset + (offset+subIndex)); // subIndex Inhalt lesen
}
 
 
//-------------------
// Transform
//-------------------
transformIdx = _paramset_gettransformIndex( paramID );
if( transformIdx != param_EOF )
{
value = paramTransform[transformIdx].transformfunc( GETVALUE, value, value);
}
 
return value; // ubyte zurueckgeben
}
 
 
 
//--------------------------------------------------------------
//--------------------------------------------------------------
unsigned char paramSet( unsigned char paramID, unsigned char newvalue )
{
unsigned char offset;
unsigned char subOffset = 0;
unsigned char subType;
unsigned char subIndex;
unsigned char byte;
unsigned char value;
unsigned char transformIdx;
 
value = newvalue;
 
offset = _paramset_getoffsetX( paramID, false, &subType, &subIndex ); // false = offset zurueckgeben
 
if( offset == param_NOTFOUND ) return false; // paramID nicht gefunden / nicht unterstuetzt
 
//-------------------
// subIndex: Bit
//-------------------
if( (subType == SUBTYPE_BIT) || (subType == SUBTYPE_BITN) )
{
byte = (unsigned char) *(mkparamset + offset); // offset Inhalt lesen
 
if( subType == SUBTYPE_BITN ) // SUBTYPE_BITN = negiertes BIT
value = (value ? false : true); // negieren
 
if(value) byte = byte | subIndex; // Bit setzen
else byte = byte & (subIndex ^ 0xff); // Bit loeschen
 
value = byte; // neues Value fuer das gesamte Byte (mit eingerechnetem BIT)
}
 
//-------------------
// subIndex: Byte
//-------------------
if( subType == SUBTYPE_BYTE )
{
subOffset = subIndex; // das 'verschobene' Byte (hier nur den Offset verschieben)
}
 
 
//-------------------
// Transform
//-------------------
transformIdx = _paramset_gettransformIndex( paramID );
if( transformIdx != param_EOF )
{
byte = (unsigned char) *(mkparamset + offset + subOffset); // offset Inhalt lesen
value = paramTransform[transformIdx].transformfunc( SETVALUE, byte, newvalue);
}
 
 
//-------------------
// Byte speichern
//-------------------
*(mkparamset + offset + subOffset) = value;
return true; // OK
}
 
 
 
 
//#############################################################################################
//# 4c. oeffentliche Zugriffsfunktionen fuer das gesamte Paramset (Int usw.)
//#
//# Init und Abfrage der Groesse in Bytes ddes gesamten Paramset's
//#############################################################################################
 
 
//--------------------------------------------------------------
// ok = paramsetInit( *pData )
//
// Ermittelt zu einer empfangenen Revision die passende paramset-Tabelle
// und setzt entsprechende Werte in MKVersion
//
// Wird von MK_load_setting() aufgerufen nach dem Einlesen der
// MK-Parameter (Setting-Request 'q')
//
// Parameter:
// *pData : Zeiger direkt auf den RX-Buffer des PKT
//
// Rueckgabe:
// true : OK - Paramset ist initialisert; die aktuelle FC-Revision
// steht in MKVersion.paramsetRevision
// false : Fehler - keine passende paramset-Tabelle gefunden
//--------------------------------------------------------------
unsigned char paramsetInit( unsigned char *pData )
{
unsigned char i;
unsigned char *p;
 
paramsetRevTable = 0;
mkparamset = 0;
MKVersion.paramsetOK = false;
MKVersion.paramsetRevision = 0;
MKVersion.mksetting = 0;
MKVersion.mksettingName[0] = 0;
 
//--------------------------------------------------
// pData == 0 -> nur 'reset' der Daten
//--------------------------------------------------
if( pData == 0 )
{
return 0;
}
 
//--------------------------------------------------
// diese beiden Werte koennen in jedem Fall gesetzt werden
// unabhaengig ob das gefundene Parameterset vom PKT
// unterstuetzt wird oder nicht
//--------------------------------------------------
MKVersion.mksetting = (unsigned char) *pData;
MKVersion.paramsetRevision = (unsigned char) *(pData + 1);
 
 
//--------------------------------------------------
// FC-Revision in paramsetRevMap suchen
//--------------------------------------------------
i = 0;
while( true )
{
if( (paramsetRevMap[i].Revision == MKVersion.paramsetRevision) || (paramsetRevMap[i].Revision == MAPEOF) )
break;
i++;
}
 
 
//--------------------------------------
// Revision nicht gefunden -> return 0
//--------------------------------------
if( paramsetRevMap[i].Revision == MAPEOF )
{
return 0;
}
 
//--------------------------------------
// Revision gefunden
//--------------------------------------
mkparamset = (unsigned char *) (pData + 1);
paramsetRevTable = (paramRevItem_t *) paramsetRevMap[i].RevisionTable;
MKVersion.paramsetOK = true;
 
 
//--------------------------------------
// den aktuellen Setting-Namen kopieren
// wird u.a. vom OSD verwendet
//--------------------------------------
p = paramGet_p( param_Name );
if( p ) memcpy( MKVersion.mksettingName, p, 12 );
 
return MKVersion.paramsetOK;
}
 
 
 
//--------------------------------------------------------------
// size = paramsetSize()
//
// Gibt die Groesse des gesamten aktuellen Parameterset's
// zurueck. Fuer Revision 098 z.B. 130 = 130 Bytes.
//
// Rueckgabe:
// =0 : Fehler; nicht unterstuetzte FC-Revision oder nicht
// initialisiert
//--------------------------------------------------------------
unsigned char paramsetSize( void )
{
if( MKVersion.paramsetOK )
return _paramset_getoffset( param_EOF, false ); // false = offset zurueckgeben; der offset von param_EOF entspricht der Groesse des paramSet's!
else
return 0;
}
 
 
 
 
 
//#############################################################################################
//# x. TEST / DEBUG
//#############################################################################################
 
//--------------------------------------------------------------
// TEST / DEBUG
//--------------------------------------------------------------
#ifdef DEBUG_PARAMSET
void paramsetDEBUG( void )
{
lcd_cls();
 
//lcdx_printp_at( 0, 0, PSTR("NEW PARAM TEST..."), MNORMAL, 0,0);
lcd_printp_at(12, 7, strGet(ENDE), MNORMAL); // Keyline
 
//memcpy( &MKVersion.NCVersion, (Version_t *) (pRxData), sizeof(MKVersion_t) );
 
/*
 
typedef struct
{
Version_t NCVersion; //
Version_t FCVersion; //
unsigned char paramsetRevision; // von der FC
unsigned char paramsetOk; // true wenn Revision in paramset.c vorhanden
} MKVersion_t;
 
 
//-------------------------------------
// zur Orientierung: Version_t
//-------------------------------------
//typedef struct
//{
// unsigned char SWMajor;
// unsigned char SWMinor;
// unsigned char ProtoMajor;
// unsigned char ProtoMinor;
// unsigned char SWPatch;
// unsigned char HardwareError[5];
//} __attribute__((packed)) Version_t;
*/
 
//setting = MK_Setting_load( 0xff, 20); // aktuelles MK Setting ermitteln
MK_Setting_load( 0xff, 20); // aktuelles MK Setting ermitteln
 
//----------------------------------
// Anzeige: FC/NC Version
//----------------------------------
lcdx_printp_at( 0, 0, PSTR("FC:"), MNORMAL, 0,0);
MKVersion_print_at( 3, 0, FC, MNORMAL, 0,0);
 
lcdx_printp_at( 13, 0, PSTR("NC:"), MNORMAL, 0,0);
MKVersion_print_at( 16, 0, NC, MNORMAL, 0,0);
 
 
//----------------------------------
// Anzeige: FC Revision
//----------------------------------
lcd_printf_at_P( 0, 1, MNORMAL, PSTR("Rev: %03u"), MKVersion.paramsetRevision );
if( MKVersion.paramsetOK )
lcdx_printp_at( 8, 1, PSTR(" ok!"), MINVERS, 0,0);
else
lcdx_printp_at( 8, 1, PSTR(" err"), MINVERS, 0,0);
 
// Size von paramset
lcd_printf_at_P( 13, 1, MNORMAL, PSTR("Size=%3u"), paramsetSize() );
 
 
//----------------------------------
// Anzeige: aktuelles MK Setting
//----------------------------------
//lcd_printf_at_P( 0, 2, MNORMAL, PSTR("Set:%2u %s"), MKVersion.mksetting, MKVersion.mksettingName );
 
/*
unsigned char *p;
 
p = paramGet_p( param_Name );
if( p )
{
lcd_printf_at_P( 0, 3, MNORMAL, PSTR("%c"), *p );
p++;
lcd_printf_at_P( 1, 3, MNORMAL, PSTR("%c"), *p );
p++;
lcd_printf_at_P( 2, 3, MNORMAL, PSTR("%c"), *p );
}
*/
 
//----------------------------------
//----------------------------------
 
/*
lcd_printf_at_P( 0, 3, MNORMAL, PSTR("Size Name:%3u"), paramSize(param_Name) );
lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%c"), paramGet_UByte( param_Name ) );
paramSet_UByte( param_Name, 'x' );
lcd_printf_at_P( 3, 5, MNORMAL, PSTR("%c"), paramGet_UByte( param_Name ) );
*/
 
/*
uint8_t v;
v = MKVersion_Cmp( MKVersion.FCVer, 2,0,'f' );
 
lcd_printf_at_P( 0, 4, MNORMAL, PSTR("v:%3u"), v );
*/
 
 
/*
unsigned char paramID = 1;
unsigned char paramSubType = 1;
unsigned char paramSubIndex =1;
 
_paramset_getsubitemid( param_GlobalConfig_DrehratenBegrenzer, &paramID, &paramSubType, &paramSubIndex );
 
//lcd_printf_at_P( 0, 4, MNORMAL, PSTR("ID:%u T:%u I:%u"), paramID, paramSubType, paramSubIndex );
*/
 
//#define param_ExtraConfig_NoRcOffBeeping 204 // SUBTYPE_BIT - mk-data-structs.h: CFG_NO_RCOFF_BEEPING 0x10
//#define param_ExtraConfig_GpsAid 205 // SUBTYPE_BIT - mk-data-structs.h: CFG_GPS_AID 0x20
//#define param_ExtraConfig_LearnableCarefree 206 // SUBTYPE_BIT - mk-data-structs.h: CFG_LEARNABLE_CAREFREE 0x40
//#define param_ExtraConfig_IgnoreMagErrAtStartup 207 // SUBTYPE_BIT - mk-data-structs.h: CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80
 
//#define param_GlobalConfig3_NoSdCardNoStart 220 // SUBTYPE_BIT - mk-data-structs.h: CFG3_NO_SDCARD_NO_START 0x01
//#define param_GlobalConfig3_NoGpsFixNoStart 224 // SUBTYPE_BIT - mk-data-structs.h: CFG3_NO_GPSFIX_NO_START 0x10
 
//paramGet( unsigned char paramID );
 
//lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
 
//#define param_Kanalbelegung_Gas 242 // SUBTYPE_BYTE - Kanalbelegung [2] (unsigned char)
//#define param_Kanalbelegung_Gear 243 // SUBTYPE_BYTE - Kanalbelegung [3] (unsigned char)
//#define param_Kanalbelegung_Nick 240 // SUBTYPE_BYTE - Kanalbelegung [0] (unsigned char)
//#define param_Kanalbelegung_Roll 241 // SUBTYPE_BYTE - Kanalbelegung [1] (unsigned char)
 
// 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) );
 
// lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u"), paramGet(param_Kanalbelegung) );
 
 
/*
lcd_printf_at_P( 0, 4, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
 
unsigned char v;
 
v = paramGet(param_GlobalConfig3_NoSdCardNoStart);
v = (v ? false : true);
paramSet(param_GlobalConfig3_NoSdCardNoStart, v);
 
lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
 
v = paramGet(param_GlobalConfig3_NoSdCardNoStart);
v = (v ? false : true);
paramSet(param_GlobalConfig3_NoSdCardNoStart, v);
 
lcd_printf_at_P( 0, 6, MNORMAL, PSTR("%u %u %u"), paramGet(param_ExtraConfig_NoRcOffBeeping), paramGet(param_GlobalConfig3_NoSdCardNoStart), paramGet(param_GlobalConfig3_NoGpsFixNoStart) );
*/
 
/*
lcd_printf_at_P( 0, 3, MNORMAL, PSTR("%u %u"),
paramGet( param_Kanalbelegung_Gas ),
paramGet( param_Kanalbelegung_Gear )
);
 
lcd_printf_at_P( 0, 4, MNORMAL, PSTR("%u %u %u %u"),
paramGet( param_Kanalbelegung_Poti1 ),
paramGet( param_Kanalbelegung_Poti2 ),
paramGet( param_Kanalbelegung_Poti3 ),
paramGet( param_Kanalbelegung_Poti4 )
);
 
lcd_printf_at_P( 0, 5, MNORMAL, PSTR("%u %u %u %u"),
paramGet( param_Kanalbelegung_Poti5 ),
paramGet( param_Kanalbelegung_Poti6 ),
paramGet( param_Kanalbelegung_Poti7 ),
paramGet( param_Kanalbelegung_Poti8 )
);
*/
 
// lcd_printf_at_P( 0, 3, MNORMAL, PSTR("HR:%u H-Limit:%u"),
// paramGet( param_GlobalConfig_HoehenRegelung ),
// paramGet( param_ExtraConfig_HeightLimit )
// );
 
// lcd_printf_at_P( 0, 5, MNORMAL, PSTR("Auto-S-L:%u"),
// paramGet( param_StartLandChannel )
// );
 
lcd_printf_at_P( 0, 4, MNORMAL, PSTR("CH Orientation:%x"), paramGet( param_ServoCompInvert));
 
lcd_printf_at_P( 0, 5, MNORMAL, PSTR("ACC Land pulse:%x"), paramGet( param_LandingPulse));
 
 
;
 
while( true )
{
PKT_CtrlHook();
if (get_key_press (1 << KEY_ESC))
{
break;
}
}
}
#endif // #ifdef DEBUG_PARAMSET
 
Property changes:
Added: svn:mime-type
+text/plain
\ No newline at end of property