Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 2135 → Rev 2136

/Transportables_Koptertool/PKT/GPL_PKT_V3_85f/eeprom/eeprom.h
0,0 → 1,333
/*****************************************************************************
* Copyright (C) 2008 Thomas Kaiser, thomas@ft-fanpage.de *
* Copyright (C) 2009 Peter "woggle" Mack, mac@denich.net *
* Copyright (C) 2013 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 eeprom.h
//#
//# 03.08.2015 CB
//# - chg: Obsolete Parameter geändert und für FollowMe verwendet, EEprom Version bleibt gleich
//# Parameter FM_Refresh in FM_Azimuth geändert
//# Parameter hyst_u_min in FM_Distance geändert
//#
//# 25.06.2014 OG
//# - chg: Kommentare der eeprom Struct aktualisert bzgl. FollowMe und Tracking
//#
//# 17.06.2014 OG
//# - chg: EEpromversion erhoeht auf 139
//#
//# 13.06.2014 OG
//# - chg: LCD_DisplayMode (Obsolete) geaendert zu PKTOffTimeout
//#
//# 31.05.2014 OG
//# - Recherche welche Config-Werte ueberahupt noch im PKT-Code verwendet werden
//# und ggf. "OBSOLETE" Anmerkung in der Config-Struct
//# - Config-Struct wurde um etliche Kommentare ergaenzt bzgl. Verwendungszweck
//#
//# 30.05.2014 OG
//# - chg: Kommentare geaendert
//#
//# 26.05.2014 OG
//# - chg: Config.LCD_DisplayMode als "OBSOLETE" markiert
//#
//# 07.05.2014 OG
//# - chg: EEpromversion erhoeht auf 138
//# -> keine neuen Parameter, neue Version nur fuer geanderte
//# Initialisierung von MKParam_Favs
//#
//# 06.04.2014 OG
//# - chg: EEpromversion erhoeht auf 137
//# - add: Config.UseBLE
//# - add: Config.MKParam_Favs
//#
//# 01.04.2014 OG
//# - chg: EEpromversion erhoeht auf 136
//# - chg: ACHTUNG! EEpromversion umgestellt von HEX auf DEZIMAL: 0x87 => 135
//# - add: Config.UseBLE
//# - add: Config.MKParam_Favs
//# - add: MAX_MKPARAM_FAVORITES
//#
//# 03.02.2014 OG
//# - add: Config.OSD_ShowCellU; EEpromversion erhoeht auf 0x87
//#
//# 28.08.2013 Cebra
//# - chg: LastLatitude war uint32_t, auf int32_t korrigiert
//#
//# 04.07.2013 Cebra
//# - add: neue Parameter fuer Wlan; EEpromversion erhoeht auf 85
//#
//# 04.07.2013 OG
//# - add: Config.OSD_UseScreen; Epromversion erhoeht auf 84
//#
//# 02.07.2013 Cebra
//# - add: neue Parameter fuer Wlan; EEpromversion erhoeht auf 83
//#
//# 20.06.2013 CB
//# - chg: EEPROM Versionsänderung auf 82 wegen Wechsel LCD_Orientation zu OSD_ShowMKSetting
//#
//# 15.06.2013 OG
//# - chg: Config.LCD_ORIENTATION zu Config.OSD_ShowMKSetting
//#
//# 31.05.2013 CB
//# - chg: EEPROM Strukturänderung, Listen/Statistik ganz ans Ende gesetzt
//#
//# 31.05.2013 OG
//# - chg: Eeprom Version auf 81 wegen Erweiterungen der Statistik-Daten
//# - chg: Code-Layout
//#
//# 12.04.2013 CB
//# - chg: Kommentarergänzung U02SV2
//#
//# 28.03.2013 CB
//# - add: save and upgrade OSD_Statistic, GPS_User, MKErr_Log in EEProm structure variable
//############################################################################
 
#ifndef _EEPROM_H
#define _EEPROM_H
 
#include <stdbool.h>
#include "../mk-data-structs.h"
#include "../connect.h"
#include "../tracking/ng_servo.h"
#include "../waypoints/waypoints.h"
#include "../osd/osd.h"
 
 
 
 
//[General]
//FileVersion = 2
//NumberOfWaypoints = 15
//UsePOI = 0
//POI_CAM_NICK_CTRL = 0
 
//[POI]
//Altitude = 1
//Latitude = 46.7140763
//Longitude = 19.2507334
 
//[Waypoint1]
//Latitude = 46.7145686
//Longitude = 19.2515702
//Radius = 10
//Altitude = 15
//ClimbRate = 0
//DelayTime = 4
//WP_Event_Channel_Value = 96
//Heading = 180
 
 
#define EEpromVersion 139 // wird nach jeder Parametererweiterung hochgezählt
// Anmerkung 01.04.2014 OG: umgestellt auf DEZIMALE schreibweise (wiso war das vorher Hex?)
 
#define NumberOfWaypoints 55 // Anzahl der Waypoints in der EEPromliste
#define NumberOfWPLists 5 // Anzahl WP Listen im PKT
#define MAX_LIST_LEN 31 // Länge Waypointlist
 
#define MAX_MKPARAM_FAVORITES 10 // Anzahl der MK-Parameter Favoriten (nicht aendern!)
 
#define bt_pin_length 4
#define RE_ID_length 4 // Länge der RE-ID
#define bt_name_length 10
#define bt_mac_length 14
#define GPS_Bluetoothmouse1 0 // NMEA BT-Mouse
#define GPS_Mikrokopter 1 // GPS Daten vom MK für Tracking
 
#define wlan_password_length 10 // Länge Wlan-Passwort
#define wlan_ssid_length 10 // Länge Wlan-SSID
#define wlan_ip_length 15
#define wlan_netmask_length 15
#define wlan_gateway_length 15
 
#define POINT_TYPE_INVALID 255
#define POINT_TYPE_WP 0
#define POINT_TYPE_POI 1
#define INVALID 0x00
#define MAX_WPLIST_LEN 31
 
 
 
 
//typedef struct {
// uint8_t rev;
// uint16_t min;
// uint16_t max;
// uint16_t mid;
//} servo_t;
 
 
typedef struct
{
uint8_t WPIndex; // Index in der EEpromliste
Point_t Waypoint; // Waypoint
} WayPoints;
 
typedef struct
{
uint8_t WPListnumber; // Nummer der WP Liste im PKT
uint8_t WPListAktiv; // Liste aktiv
uint8_t WPDirectory[31]; // Enthält die Indexe der Waypoints im EEPROM
uint8_t UsePOI;
uint8_t POI_CAM_NICK_CTR;
 
} WPListHeader;
 
typedef struct
{
WPListHeader WPList; // Waypointliste im PKT
} WPListDirectory;
 
 
 
typedef struct SStructure
{
uint8_t Version; // PKT-Eeprom Version!
uint8_t MK_LowBat; // MK-LowBat Warnung u.a. fuer osd.c
uint8_t DisplayTimeout; // autom. LCD ausschalten nach n Minuten
uint8_t DisplayLanguage; // eingestellte Sprache
uint8_t WiTXRXChannel; // Wi.232:
uint8_t WiNetworkGroup; // Wi.232:
uint8_t WiNetworkMode; // Wi.232:
uint8_t WiTXTO; // Wi.232:
uint8_t WiUartMTU; // Wi.232:
uint8_t OSD_ShowMKSetting; // Anzeige MK-Setting beim OSD Start
uint8_t PKTOffTimeout; // autom. PKT ausschalten nach n Minuten
uint8_t LCD_Kontrast; // LCD-Kontrast
uint8_t LCD_Helligkeit; // LCD-Helligkeit - Aktuell nicht mehr verfuegbar weil auskommentiert! (mit HW 3.9x geht das sowiso nicht mehr!)
uint8_t USBBT; // ## OBSOLETE ## 31.05.2014 OG: wird nicht verwendet! (wofuer war da in der Vergangenheit?)
uint8_t U02SV2; // 0=Wi232-Verbindung zum MK, 1 = Kabelverbindung zum MK
uint8_t Debug; // ??? OBSOLETE ??? 31.05.2014 OG: wird eigentlich nicht mehr verwendet (war zum debuggen vom PKT)
uint8_t UseWi; // Wi232 wird genutzt
uint8_t UseBT; // BT wird genutzt
 
uint8_t WiIsSet; // Wi232 ist initialisiert
uint8_t BTIsSet; // BT ist initialisiert
uint8_t BTIsSlave; // Slave Flag
char bt_pin[bt_pin_length + 1]; // BT Pinnummer
char bt_name[bt_name_length + 1]; // BT Name
char RE_ID[RE_ID_length + 1]; // RE-ID
char bt_Mac[bt_mac_length + 1]; // MAC-Adresse BTM222
 
char gps_UsedDevName[20]; // benutztes GPS Device Name
char gps_UsedMac[14]; // benutztes GPS Device Mac Adresse
uint8_t gps_UseGPS; // ## GGF. OBSOLETE ## 25.06.2014 OG: siehe setup.c/Setup_GPSMouse() - "ist GPS aktiv?"
uint8_t gps_UsedGPSMouse; // ## GGF. OBSOLETE ## 25.06.2014 OG: siehe setup.c/Setup_GPSMouse() und tracking.c/PKT_tracking() - "GPS Maustyp"
 
int32_t LastLongitude; // Letzte Position
int32_t LastLatitude; // Letzte Position
uint8_t PKT_IdleBeep; // ## OBSOLETE ## 31.05.2014 OG: wurde das jemals verwendet?
uint8_t PKT_StartInfo; // ## OBSOLETE ## 26.06.2013 OG: ehemals "PKT Startinfo anzeigen"
uint16_t Lipo_UOffset; // Offset für die Lipospannugsmessung
uint8_t PKT_Accutyp; // verwendeter Akkutyp
uint8_t OSD_RCErrorbeep; // Empfangsausffallwarnung im OSD Screen
uint8_t OSD_InvertOut; // Out1/2 invertiert anzeigen
uint8_t OSD_LEDform; // Form der Anzeige ( + oder schwarz)
uint8_t OSD_SendOSD; // OSD Daten an SV2 senden
uint8_t OSD_Fallspeed; // maximale Sinkrate
uint8_t OSD_VarioBeep; // Vario Beep im OSD Screen
uint8_t OSD_HomeMKView; // ## OBSOLETE ## 02.07.2013 OG: ehemals "Home Circle from MK-View"
uint16_t OSD_mAh_Warning; // mAh Warnschwelle
uint8_t OSD_ScreenMode; // Variante des OSD-Screen
uint8_t OSD_LipoBar; // Bargraphanzeige für MK Lipo
uint8_t PKT_Baudrate; // Baudrate für BT und Wi232
uint16_t FM_Azimuth; // Azimuth für FollowMe 4.8.2015 CB
uint16_t FM_Speed; // FollowMe Speed in m/s *0.1
uint16_t FM_Radius; // Waypoint Tolerance Radius in meter
uint8_t HWSound; // Hardware Sounderweiterung an PD7
uint8_t HWBeeper; // Hardware Beeper an PC7
uint8_t Volume; // Lautstärke
servo_t servo[2]; // Tracking:
uint8_t sIdxSteps; // Tracking:
uint16_t FM_Distance; // Distance für FollowMe 4.8.2015 CB
uint8_t servo_frame; // Tracking:
uint8_t single_step; // Tracking:
uint8_t repeat; // Tracking:
uint8_t pause; // Tracking:
uint8_t pause_step; // Tracking:
uint8_t tracking; // ## OBSOLETE ## 31.05.2014 OG: das wird nirgendwo verwendet!
uint8_t track_hyst; // ## OBSOLETE ## 31.05.2014 OG: das wird nirgendwo verwendet!
uint8_t track_tx; // ## OBSOLETE ## 31.05.2014 OG: das wird nirgendwo verwendet!
 
uint16_t stick_min[5]; // Joystick: Stickparameter
uint16_t stick_max[5]; // Joystick:
uint8_t stick_typ[5]; // Joystick:
uint8_t stick_dir[5]; // Joystick:
uint8_t stick_neutral[5]; // Joystick: Stick neutralisierend: ja/nein
uint8_t Lipomessung; // wenn Lipomessung deaktiviert(Lötbrücke öffnen), kann der Kanal als Stick verwendet werden
int8_t timezone; // Einstellbereich -12 .. 0 .. 12 Defaultwert: 1 (entspricht unserer Zeitzone)
uint8_t summertime; // Einstellung: 0 oder 1 (0=Winterzeit, 1=Sommerzeit) Defaultwert: 1 (entspricht unserer Sommerzeit in D)
uint8_t UseWL; // WLAN (WiFly) wird an SV2 genutzt (SV2 Patch erforderlich)
char Wlan_SSID[wlan_ssid_length+1]; // Wlan SSID
char Wlan_Password[wlan_password_length+1]; // Wlan Passwort
uint8_t WLIsSet; // ## OBSOLETE ## 31.05.2014 OG: ehemals "Wlan ist initialisiert"
uint32_t OSD_UseScreen; // welche OSD-Screens nutzen (Bit-codiert)
uint8_t Wlan_DHCP; // ## OBSOLETE ## 31.05.2014 OG: ehemals "0-4"
uint8_t Wlan_WPA; // ## OBSOLETE ## 31.05.2014 OG: ehemals "0-8"
uint8_t Wlan_Adhoc; // ## OBSOLETE ## 31.05.2014 OG: ehemals "false = AP , true = Adhoc"
uint8_t Wlan_Channel; // 0-13
char Wlan_IP[wlan_ip_length+1]; // ## OBSOLETE ## 31.05.2014 OG: ehemals "IP-Adresse" (16 Bytes!)
char Wlan_Netmask[wlan_netmask_length+1]; // ## OBSOLETE ## 31.05.2014 OG: ehemals "SubnetMask" (16 Bytes!)
char Wlan_Gateway[wlan_gateway_length+1]; // ## OBSOLETE ## 31.05.2014 OG: ehemals "Defaultgateway" (16 Bytes!)
uint8_t OSD_ShowCellU; // OSD Azeige: Anzeige UBat als Einzelzellenspannung (ja/nein)
uint8_t UseBLE; // Bluetooth 4 LowPower wird genutzt (RedBearLab BLE Mini) wird an SV2 genutzt (SV2 Patch erforderlich)
unsigned char MKParam_Favs[MAX_MKPARAM_FAVORITES]; // Array von MK-Parameter Favoriten des Benutzers
 
char Wlan_HomeSSID[wlan_ssid_length+1]; // Wlan SSID (Home-WLAN)
char Wlan_HomePassword[wlan_password_length+1]; // Wlan Passwort (Home-WLAN)
 
 
//!!!neue Parameter ab hier anfügen!!!!!!
 
 
// ab hier werden die Parameter bei EEPROMversionsänderungen gelöscht
Point_t PointList[MAX_LIST_LEN]; // ab EEPROM Version 78
osd_statistic_t OSD_Statistic; // ab EEPROM Version 79 & 81 OSD Statistiken
pkt_gpspos_t GPS_User[MAX_GPS_USER]; // ab EEPROM Version 79 speichert Benutzer GPS-Positionen
mkerror_t MKErr_Log[MAX_MKERR_LOG]; // ab EEPROM Version 79 speichert auftretende ErrorCode's vom MK
 
} ST;
 
extern ST Config;
 
void ReadParameter (void);
void WriteParameter (void);
void ReadLastPosition(void);
void WriteLastPosition(uint32_t ELongitude,uint32_t ELatitude);
void WriteWiInitFlag(void);
void WriteBTInitFlag(void);
void WriteWLInitFlag(void);
void WriteBTSlaveFlag(void);
void WriteBTMasterFlag(void);
void Delete_EEPROM(void);
void SendConfigData(void);
//void EEWayPointList_Clear(void); // l�schen der Waypointliste im EEProm
 
#endif
Property changes:
Added: svn:mime-type
+text/plain
\ No newline at end of property