/*****************************************************************************
* 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
, ¶mID
, 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, ¶mID, ¶mSubType, ¶mSubIndex );
//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