/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/main.h |
---|
0,0 → 1,119 |
/***************************************************************************** |
* Copyright (C) 2008 Thomas Kaiser, thomas@ft-fanpage.de * |
* Copyright (C) 2009 Peter "woggle" Mack, mac@denich.net * |
* Copyright (C) 2012 Christian "Cebra" Brandtner, brandtner@brandtner.net * |
* Copyright (C) 2012 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* |
*****************************************************************************/ |
/** |
* @Author Cebra |
* |
* ${tags} |
*/ |
//** |
// * |
// * |
// * |
// |
/* |
* File name: $HeadURL: http://mikrokopter.de/mikrosvn/Projects/Transportables_Koptertool/branch/GPL_PKT_V3_5_8a_FC086/main.h $ |
* Revision: $Revision: 1496 $ |
* Last modified: $Date: 2012-01-15 21:31:25 +0100 (So, 15 Jan 2012) $ |
* Last modified by: $Author: $ |
* $Id: main.h 1496 2012-01-15 20:31:25Z $ |
*/ |
#ifndef _MAIN_H |
#define _MAIN_H |
//#define MKVERSION088n |
#define MKVERSION090b |
// Version der Software |
#define PKTSWVersion "3.6.7f" // PKT Version |
//#define IgnoreFCVersion |
//#define DEBUG |
//#define analognames // Anzeige Analognames |
// Fusebits für Hardware 1.2 D7 DC FC |
// Fusebits für Hardware 1.3 D7 DC FC |
// Fusebits für Hardware 3.x D7 DC FC |
// avrdude -pm1284p -cavr109 -P/dev/ttyUSB1 -b115200 -V -Uflash:w:Dateiname.hex:a |
// hier die entsprechende Hardwareversion der Leiterplatte einstellen |
//#define HWVERSION1_2 // Hardware sebseb7 |
//#define HWVERSION1_2W // Hardware sebseb7 mit Wi232 Support |
//#define HWVERSION1_3 // Hardware sebseb7 |
//#define HWVERSION1_3W // Hardware sebseb7 mit Wi232 Support |
#define HWVERSION3_9 // Hardware Cebra Oktober 2011 ATmega1284P |
#if defined HWVERSION1_2W || defined HWVERSION1_2 |
#include "HAL_HW1_2.h" |
#endif |
#if defined HWVERSION1_3W || defined HWVERSION1_3 |
#include "HAL_HW1_3.h" |
#endif |
#ifdef HWVERSION3_9 |
#include "HAL_HW3_9.h" |
#endif |
#define NO 0 |
#define NC 1 |
#define FC 2 |
#define MK3MAG 3 |
#define MKGPS 4 |
#define Wi232 5 |
#define ENABLE_PWM |
// Baud Rate |
#define Baud_2400 0 |
#define Baud_9600 1 |
#define Baud_19200 2 |
#define Baud_38400 3 |
#define Baud_57600 4 |
#define Baud_115200 5 |
#define Baud_4800 6 |
extern volatile uint8_t mode; |
extern uint8_t hardware; |
extern uint8_t current_hardware; |
extern uint8_t searchMK(void); |
#endif |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/menu.c |
---|
0,0 → 1,778 |
/***************************************************************************** |
* 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 menu.c |
//# |
//# 10.03.2013 Cebra |
//# - add: menu_select, gemeinsame Routine für alle Setupmenüs |
//############################################################################ |
#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 "main.h" |
#include "lcd/lcd.h" |
#include "parameter.h" |
#include "menu.h" |
#include "display.h" |
#include "debug.h" |
#include "timer/timer.h" |
#include "osd/osd.h" |
#include "motortest/motortest.h" |
#include "gps/gps.h" |
#include "eeprom/eeprom.h" |
#include "setup/setup.h" |
#include "uart/uart1.h" |
#include "mk-data-structs.h" |
#include "wi232/Wi232.h" |
#include "tracking/servo.h" |
#include "tools.h" |
#include "connect.h" |
#include "lipo/lipo.h" |
#include "messages.h" |
#include "bluetooth/bluetooth.h" |
#include "followme/followme.h" |
#include "tracking/ng_servo.h" |
#include "tracking/tracking.h" |
#include "stick/stick.h" |
//// Variablen für die Menüsteuerung |
uint8_t ii = 0; |
uint8_t offset = 0; |
uint8_t size = 0; |
uint8_t dmode = 0; |
uint8_t target_pos = 1; |
uint8_t val; |
#define ITEMS_NC 9 |
const prog_char param_menuitems_nc[ITEMS_NC][NUM_LANG][18]= // zeilen,zeichen+1 |
// German, English, French, Netherlands |
{ |
{"OSD ","OSD ","OSD "}, |
{"MK Display ","MK Display ","MK Display "}, |
{"Tracking ","Tracking ","Tracking "}, |
{"Parameter \x1d","Parameter \x1d","Parameters \x1d"}, |
{"Debug Data ","Debug Data ","Debug Data "}, |
{"GPS Info ","GPS Info ","GPS Info "}, |
{"Follow Me ","Follow Me ","Follow Me "}, |
{"Joystick ","Joystick ","Joystick "}, |
{"PKT Tools \x1d","PKT Tools \x1d","PKT Tools \x1d"}, |
}; |
#define ITEMS_FC 5 |
const prog_char param_menuitems_fc[ITEMS_FC][NUM_LANG][18]= // zeilen,zeichen+1 |
{ |
{"Joystick ","Joystick ","Joystick "}, // MartinR |
{"MK Display ","MK Display ","MK Display "}, |
{"Parameter \x1d","Parameter \x1d","Parameter \x1d"}, |
{"Debug Data ","Debug Data ","Debug Data "}, |
{"PKT Tools \x1d","PKT Tools \x1d","PKT Tools \x1d"}, |
}; |
#define ITEMS_NO 6 |
const prog_char param_menuitems_no[ITEMS_NO][NUM_LANG][18]= // zeilen,zeichen+1 |
{ |
{"Suche Mikrokopter","search Mikrokopt ","search Mikrokopt "}, |
{"BL-Ctrl. Tester ","BL-Ctrl. Tester ","BL-Ctrl. Tester "}, |
{"PC BT > Kopter ","PC BT > Kopter ","PC BT > Kopter "}, |
{"PC USB > Kopter ","PC USB > Kopter ","PC USB > Kopter "}, |
{"PKT Setup \x1d","PKT Setup \x1d","PKT Setup \x1d"}, |
{"PKT Version ","PKT Version ","PKT Versie "}, |
}; |
#define ITEMS_CR 12 |
const prog_char param_copyright[ITEMS_CR][22]= // zeilen,zeichen+1 |
{ |
" ", |
"(C) GNU GPL License ", |
" NO WARRANTY ", |
" ", |
"2008 Thomas Kaiser ", |
"2009-2010 Peter Mack ", |
"2010 Sebastian Boehm ", |
"2012 Chr. Brandtner &", |
" Harald Bongartz ", |
"2012 gebad ", |
"2012 Martin Runkel ", |
"2013 Oliver Gemesi " |
}; |
uint8_t menu_select(const char menuitem[][NUM_LANG][18],uint8_t size, uint8_t targetpos) |
{ |
ii = 0; |
offset = 0; |
dmode = 0; |
uint8_t target_pos = targetpos; |
target_pos = targetpos; |
val = 0; |
while(2) |
{ |
ii = 0; |
if(offset > 0) |
{ |
lcd_printp_at(1,1, PSTR("\x12"), 0); |
} |
for(ii = 0;ii < 6 ; ii++) |
{ |
if((ii+offset) < size) |
{ |
lcd_printp_at(3,ii+1,menuitem[ii+offset][Config.DisplayLanguage], 0); |
} |
if((ii == 5)&&(ii+offset < (size-1))) |
{ |
lcd_printp_at(1,6, PSTR("\x13"), 0); |
} |
} |
if(dmode == 0) |
{ |
if(offset == 0) |
{ |
if(size > 6) |
{ |
val = menu_choose2 (1, 5, target_pos,0,1); |
} |
else |
{ |
val = menu_choose2 (1, size, target_pos,0,0); |
} |
} |
else |
{ |
val = menu_choose2 (2, 5, target_pos,1,1); |
} |
} |
if(dmode == 1) |
{ |
if(offset+7 > size) |
{ |
val = menu_choose2 (2, 6, target_pos,1,0); |
} |
else |
{ |
val = menu_choose2 (2, 5, target_pos,1,1); |
} |
} |
if(val == 254) |
{ |
offset++; |
dmode = 1; |
target_pos = 5; |
} |
else if(val == 253) |
{ |
offset--; |
dmode = 0; |
target_pos = 2; |
} |
else if(val == 255) |
{ |
break; |
} |
else |
{ |
break; |
} |
} |
return val; |
} |
//-------------------------------------------------------------- |
// print cursor |
void menu_set_cursor (uint8_t before, uint8_t line, uint8_t pos) |
{ |
lcd_printp_at (pos, before, PSTR(" "), 0); |
lcd_printp_at (pos, line, PSTR("\x1d"), 0); |
} |
// F�r Seting-Auswahl ------------------------------------------ |
// |
uint8_t menu_choose (uint8_t min, uint8_t max, uint8_t pos, uint8_t start) |
{ |
uint8_t line = start; |
uint8_t before = start; |
uint8_t k; |
menu_set_cursor (line, line, pos); |
do |
{ |
if (get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 1)) |
{ |
if (line < max) |
line ++; |
else |
line = max; |
// line = min; // Wenn wiederholen soll |
} |
if (get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 1)) |
{ |
if (line > min) |
line --; |
else |
line = min; |
// line = max; // Wenn wiederholen soll |
} |
if (line != before) |
{ |
menu_set_cursor (before, line, pos); |
before = line; |
} |
} |
while (!(k = get_key_press ((1 << KEY_ENTER) | (1 << KEY_ESC)))); |
if (k & (1 << KEY_ESC)) |
line = 255; |
return line; |
} |
// F�r Setup und Parameter ------------------------------------------ |
// |
uint8_t menu_choose2 (uint8_t min, uint8_t max, uint8_t start, uint8_t return_at_start, uint8_t return_at_end) |
{ |
uint8_t pos = 1; |
uint8_t line = start; |
uint8_t before = start; |
uint8_t k; |
menu_set_cursor (line, line, pos); |
do |
{ |
if (get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 1)) |
{ |
if (line < max) |
line ++; |
else |
{ |
if(return_at_end == 1) |
return 254; |
else |
line = max; |
// line = min; // Wenn wiederholen soll |
} |
} |
if (get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 1)) |
{ |
if (line > min) |
line --; |
else |
{ |
if(return_at_start == 1) |
return 253; |
else |
line = min; |
// line = max; // Wenn wiederholen soll |
} |
} |
if (line != before) |
{ |
menu_set_cursor (before, line, pos); |
before = line; |
} |
} |
while (!(k = get_key_press ((1 << KEY_ENTER) | (1 << KEY_ESC)))); |
if (k & (1 << KEY_ESC)) |
line = 255; |
return line; |
} |
// F�r das Hauptmenue ------------------------------------------ |
// |
uint8_t menu_choose3 (uint8_t min, uint8_t max,uint8_t start, uint8_t return_at_start, uint8_t return_at_end) |
{ |
uint8_t pos = 1; |
uint8_t line = start; |
uint8_t before = start; |
menu_set_cursor (line, line, pos); |
do |
{ |
if (get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 1)) |
{ |
if (line < max) |
line ++; |
else |
{ |
if(return_at_end == 1) |
return 254; |
else |
line = max; |
// line = min; // Wenn wiederholen soll |
} |
} |
if (get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 1)) |
{ |
if (line > min) |
line --; |
else |
{ |
if(return_at_start == 1) |
return 253; |
else |
line = min; |
// line = max; // Wenn wiederholen soll |
} |
} |
if (get_key_long (1 << KEY_ESC)) |
{ |
get_key_press(KEY_ALL); |
return 250; |
} |
if(get_key_long (1 << KEY_ENTER)) |
{ |
get_key_press(KEY_ALL); |
return 251; |
} |
if (get_key_short (1 << KEY_ESC)) |
{ |
get_key_press(KEY_ALL); |
return 252; |
} |
if (line != before) |
{ |
menu_set_cursor (before, line, pos); |
before = line; |
} |
#ifdef HWVERSION3_9 |
show_Lipo(); |
#endif |
} |
while (!(get_key_short (1 << KEY_ENTER))); |
return line; |
} |
//-------------------------------------------------------------- |
// |
void main_menu (void) |
{ |
uint8_t ii = 0; |
uint8_t offset = 0; |
uint8_t size = 0; |
uint8_t Save_hardware = 0; |
uint8_t dmode = 0; |
uint8_t target_pos = 1; |
uint8_t val =0; |
Save_hardware = hardware; |
get_key_press(KEY_ALL); |
while(1) |
{ |
if (Config.Debug==1) |
hardware = NC; |
if (Config.Debug==0) |
hardware = Save_hardware; |
if(hardware == NO) |
size = ITEMS_NO ; |
if(hardware == NC) |
size = ITEMS_NC ; |
if(hardware == FC) |
size = ITEMS_FC ; |
lcd_cls (); |
lcd_printp_at (0, 0, PSTR("PKT-Tool FC "), 2); |
lcd_printp_at (12, 0, PSTR(FC_Version), 2); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
lcd_puts_at(12, 7, strGet(OFF), 0); |
while(2) |
{ |
ii = 0; |
if(offset > 0) |
lcd_printp_at(1,1, PSTR("\x12"), 0); |
for(ii = 0;ii < 6 ; ii++) |
{ |
if((ii+offset) < size) |
{ |
if(hardware == NC) |
lcd_printp_at(3,ii+1,param_menuitems_nc[ii+offset][Config.DisplayLanguage], 0); |
else if(hardware == FC) |
lcd_printp_at(3,ii+1,param_menuitems_fc[ii+offset][Config.DisplayLanguage], 0); |
else |
lcd_printp_at(3,ii+1,param_menuitems_no[ii+offset][Config.DisplayLanguage], 0); |
} |
if((ii == 5)&&(ii+offset < (size-1))) |
lcd_printp_at(1,6, PSTR("\x13"), 0); |
show_Lipo(); |
} |
if(dmode == 0) |
{ |
if(offset == 0) |
{ |
if(size > 6) |
val = menu_choose3 (1, 5, target_pos,0,1); //menu_choose3 (min, max, start, return_at_start, return_at_end) |
else |
val = menu_choose3 (1, size, target_pos,0,0); |
} |
else |
val = menu_choose3 (2, 5, target_pos,1,1); |
} |
if(dmode == 1) |
{ |
if(offset+7 > size) |
val = menu_choose3 (2, 6, target_pos,1,0); |
else |
val = menu_choose3 (2, 5, target_pos,1,1); |
} |
if(val == 254) |
{ |
offset++; |
dmode = 1; |
target_pos = 5; |
} |
else if(val == 253) |
{ |
offset--; |
dmode = 0; |
target_pos = 2; |
} |
else if(val == 252) |
{ |
lcd_cls(); |
// lcd_printp_at (0, 2, PSTR(" PKT ausschalten?"),0); |
lcd_puts_at(0, 2, strGet(SHUTDOWN), 0); |
// lcd_printp_at (12, 7, PSTR("Nein Ja"),0); |
lcd_puts_at(12, 7, strGet(YESNO), 0); |
while(1) |
{ |
if (get_key_press (1 << KEY_ENTER)) |
{ |
WriteParameter(); // am Ende alle Parameter sichern |
clr_V_On(); // Spannung abschalten |
} |
if (get_key_short (1 << KEY_ESC)) |
{ |
get_key_press(KEY_ALL); |
lcd_cls(); |
lcd_printp_at (0, 0, PSTR("PKT-Tool FC "), 2); |
lcd_printp_at (12, 0,PSTR(FC_Version), 2); |
// show_Lipo(); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
// lcd_printp_at (12, 7, PSTR("Aus "), 0); |
lcd_puts_at(12, 7, strGet(OFF), 0); |
break; |
} |
} |
} |
else if(val == 251) |
{ |
PC_Fast_Connect(); |
return; |
} |
else if(val == 250) |
{ |
// Test_HB(); |
// Test_Language(); |
return; |
} |
else |
break; |
} |
target_pos = val; |
if(hardware == NC) |
{ |
if((val+offset) == 1 ) |
osd(OSD_Mode); |
if((val+offset) == 2 ) |
display_data(); |
if((val+offset) == 3 ) |
PKT_tracking(); |
if((val+offset) == 4 ) |
edit_parameter(); |
#ifdef HWVERSION3_9 |
if((val+offset) == 5 ) |
#ifdef analognames |
display_debug(); |
#else |
{ |
copy_line(7); |
lcd_printp_at (0, 7, PSTR(" not possible "),0); |
_delay_ms(1000); |
paste_line(7); |
} |
#endif |
if((val+offset) == 6 ) |
gps(); |
#endif |
if((val+offset) == 7 ) |
FollowMe(); |
if((val+offset) == 8 ) |
joystick(); |
if((val+offset) == 9 ) |
PKT_Tools(); |
} |
if(hardware == FC) |
{ |
if((val+offset) == 1 ) |
joystick(); |
if((val+offset) == 2 ) |
display_data(); |
if((val+offset) == 3 ) |
edit_parameter(); |
if((val+offset) == 4 ) |
#ifdef analognames |
display_debug(); |
#else |
{ |
copy_line(7); |
lcd_printp_at (0, 7, PSTR(" not possible "),0); |
_delay_ms(1000); |
paste_line(7); |
} |
#endif |
if((val+offset) == 4 ) |
PKT_Tools(); |
} |
if(hardware == NO) |
{ |
if((val+offset) == 1 ) |
if (searchMK()){ |
Save_hardware = hardware; |
continue; |
} |
if((val+offset) == 2 ) |
motor_test(FC_Mode); |
#ifdef HWVERSION3_9 |
if (Config.U02SV2 == 0) |
{ |
if((val+offset) == 3 ) |
Port_BT2Wi(); |
if((val+offset) == 4 ) |
Port_USB2Wi(); |
} |
else if (Config.U02SV2 == 1) |
{ |
if((val+offset) == 3 ) |
Port_BT2FC(); |
if((val+offset) == 4 ) |
Port_USB2FC(); |
} |
#else |
if((val+offset) == 3 ) |
Show_Error_HW(); |
if((val+offset) == 4 ) |
Show_Error_HW(); |
#endif |
if((val+offset) == 5 ) |
PKT_Setup(); |
if((val+offset) == 6 ) |
Show_Version(); |
} |
} |
} |
//-------------------------------------------------------------- |
// |
void Update_PKT (void) |
{ |
lcd_cls(); |
lcd_printp_at (0, 0, PSTR(" PKT Update "),2); |
lcd_puts_at(0, 1, strGet(UPDATE1), 0); |
lcd_puts_at(0, 2, strGet(UPDATE2), 0); |
lcd_printp_at (0, 3, PSTR("Start avrdude.exe "),0); |
lcd_printp_at (0, 4, PSTR("-pm1284p -cavr109 "),0); |
lcd_printp_at (0, 5, PSTR("-Pcom? -b115200 "),0); |
lcd_printp_at (0, 6, PSTR("-Uflash:w:FILE.hex:a "),0); |
lcd_puts_at(0, 7, strGet(ENDSTART), 0); |
do |
{ |
if (get_key_press (1 << KEY_ESC)) |
{ |
get_key_press(KEY_ALL); |
return; |
} |
} |
while (!(get_key_press (1 << KEY_ENTER))); |
{ |
// start bootloader with Reset, Hold KEY_ENTER*/ |
wdt_enable( WDTO_250MS ); |
while (1) |
{;} |
} |
} |
//-------------------------------------------------------------- |
// |
void Show_Error_HW (void) |
{ |
lcd_cls (); |
lcd_printp_at (0, 2, PSTR(" Mit dieser Hardware"), 0); |
lcd_printp_at (0, 3, PSTR(" nicht möglich!"), 0); |
lcd_printp_at (12, 7, PSTR("Ende"), 0); |
while (!get_key_press (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
return; |
} |
//-------------------------------------------------------------- |
// |
void Show_Version (void) |
{ |
uint8_t ii = 0; |
uint8_t size = ITEMS_CR; |
uint8_t page = 0; |
lcd_cls (); |
lcd_printp_at (0, 0, PSTR("PKT Tool V. "), 2); |
lcd_printp_at (13,0, PSTR(PKTSWVersion),2); |
lcd_printp_at (0, 1, PSTR(" "), 2); //um die ganze Zeile schwarz zu füllen. |
lcd_puts_at(0, 1, strGet(START_MSG2), 2); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
while(1) |
{ |
for(ii = 0;ii < 3 ; ii++) |
if((ii + page) < size) |
lcd_printp_at(0,ii + 3,param_copyright[ii + page], 0); |
if (page == 0) |
{ |
lcd_printp_at (0, 2, PSTR(" "), 0); |
lcd_printp_at (0, 6, PSTR("\x13"), 0); |
} |
if (page > 0 && page < (size - 3)) |
{ |
lcd_printp_at (0, 2, PSTR("\x12"), 0); |
lcd_printp_at (0, 6, PSTR("\x13"), 0); |
} |
if (page >= (size - 3)) |
{ |
lcd_printp_at (0, 2, PSTR("\x12"), 0); |
lcd_printp_at (0, 6, PSTR(" "), 0); |
} |
if (get_key_press (1 << KEY_PLUS)) |
if (page < size - 3) |
page++; |
if (get_key_press (1 << KEY_MINUS)) |
if (page > 0) |
page--; |
if (get_key_press (1 << KEY_ESC) || get_key_press (1 << KEY_ENTER)) |
{ |
get_key_press(KEY_ALL); |
return; |
} |
} |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/menu.h |
---|
0,0 → 1,66 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#ifndef MENU_H |
#define MENU_H |
#include "messages.h" |
#define CURSOR_COL 1 // column where the menu cursor is displayed |
#define MENU_LINE 1 // starting line of menu |
#define MENU_COL 3 // column where the menu starts |
#define OSD_Mode 1 // OSD Anzeige als OSD |
#define THREE_D_Mode 3 // OSD Anzeige in 3D Position |
void main_menu (void); |
void Show_Version (void); |
void Show_Error_HW (void); |
void Update_PKT (void); |
void PC_Fast_Connect (void); |
//// Variablen für die Menüsteuerung |
extern uint8_t ii; |
extern uint8_t offset; |
extern uint8_t size; |
extern uint8_t dmode; |
extern uint8_t target_pos; |
extern uint8_t val; |
uint8_t menu_select(const char menuitem[][NUM_LANG][18],uint8_t size, uint8_t targetpos); |
uint8_t menu_choose (uint8_t min, uint8_t max, uint8_t pos, uint8_t start); |
uint8_t menu_choose2 (uint8_t min, uint8_t max, uint8_t start, uint8_t return_at_start, uint8_t return_at_end); |
uint8_t menu_choose3 (uint8_t min, uint8_t max, uint8_t start, uint8_t return_at_start, uint8_t return_at_end); |
#endif |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/messages.c |
---|
0,0 → 1,2204 |
/**************************************************************************************** |
* Copyright (C) 2011 Christian "Cebra" Brandtner, brandtner@brandtner.net * |
* * |
* 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. * |
* * |
* * |
* Languagesupport: * |
* http://www.netrino.com/Embedded-Systems/How-To/Firmware-Internationalization * |
* Nigel Jones * |
****************************************************************************************/ |
#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 "main.h" |
#include "lcd/lcd.h" |
#include "timer/timer.h" |
#include "eeprom/eeprom.h" |
#include "messages.h" |
typedef enum |
{ |
GERMAN, |
ENGLISH, |
NETHERLAND, |
LAST_LANGUAGE, |
} LANGUAGE; |
typedef struct PROGMEM |
{ |
/* |
* Maximum length |
*/ |
int const len; |
/* |
* Array of pointers to language-specific string |
*/ |
char const * const text[LAST_LANGUAGE]; |
} STRING ; |
//-------------------------------------------------------------------------------------------------------------------- |
// Typdefinitionen für alle verwendeten Strings, LAST_STR muss am Ende stehen bleiben |
//typedef enum |
//TESTSTRING, KEYLINE1, KEYLINE2, KEYLINE3, KEYLINE4, KEYLINE5, BOOT1, BOOT2, BOOT_WI1, BOOT_WI2, BOOT_SV, START_MSG1, START_MSG2, GNU_GPL, ATMEGA644, |
//ATMEGA644P, ATMEGA1284P, HW12, HW12W, HW13, HW13W, HW39, START_LASTPOS, START_LASTPOS1, START_LASTPOS2, START_LASTPOS3, START_LASTPOSDEL, |
//START_SEARCHFC, ENDE, OK, FEHLER, AKTIV, START_FCNOTFOUND, START_FCFOUND, START_FCFOUND1, START_FCFOUND2, START_FCFOUND3, START_VERSIONCHECK, |
//START_VERSIONCHECK1, START_VERSIONCHECK2, START_VERSIONCHECK3, START_VERSIONCHECK4, START_VERSIONCHECK5, ON, OFF, ESC, SHUTDOWN, YESNO, |
//UPDATE1, UPDATE2, ENDSTART, TOOLS1, CONNECT1, CONNECT2, CONNECT4, CONNECT5, CONNECT6, CONNECT7, CONNECT8, CONNECT9, CONNECT10, CONNECT11, CONNECT12, |
//CONNECT13, CONNECT14, CONNECT15, CONNECT16, CONNECT17, CONNECT18, CONNECT19, CONNECT20, CONNECT21, CONNECT22, CONNECT23, CONNECT24, CONNECT25, |
//CONNECT26, CONNECT27, CONNECT28, CONNECT29, CONNECT30, CONNECT31, KABEL, SLAVE, NORMAL, REVERSE, ENDOK, EEPROM1, EEPROM2, DEUTSCH, ENGLISCH, FRANCE, |
//NETHERL, DISPLAY1, DISPLAY2, DISPLAY3, DISPLAY4, DISPLAY5, DISPLAY6, DISPLAY7, DISPLAY8, DISPLAY9, DEBUGPKT, WITXRX, WINETWG, WINETWM, WITIMEOUT, |
//WIUART, WI2321, WI2322, WI2323, YES, NOO, BT1, BT2, BT3, BT4, LIPO1, LIPO2, LIPO3, LIPO4, LIPO5, LIPO6, LOWBAT, OSD_3D_V, OSD_3D_H, OSD_3D_L, |
//OSD_3D_R, OSD_3D_NICK, OSD_3D_ROLL, OSD_3D_COMPASS, OSD_ERROR, OSD_POS1, OSD_POS2, PARA_SETTINGS, PARA_CHANGE, PARA_AKTIVI, PARA_AKTIV, |
//PARA_SAVESETT, PARA_SETTSAVED, PARA_COPY, PARA_FROMTO, PARA_ENDE, PARA_COPYQ, PARA_COPYACTIV, PARA_CHANGESETT, PARA_SELECT, PARA_SEITE, |
//PARA_SELSETT, GPS1, GPS2, GPS3, STATS_ITEM_0, STATS_ITEM_1, STATS_ITEM_2, STATS_ITEM_3, STATS_ITEM_4, STATS_ITEM_5, STATS_ITEM_6, STATS_ITEM_7, |
//STATS_ITEM_8, ONLY_NC, NO_SETTINGS, OSD_ALTI_0, OSD_ALTI_1, OSD_VARIO_0, OSD_VARIO_1, OSD_CARE_FREE_0, OSD_CARE_FREE_1, OSD_LED0, OSD_LED1, OSD_LED2, |
//OSD_NAVI_MODE_0, OSD_NAVI_MODE_1, OSD_NAVI_MODE_2, OSD_FLAGS_0, OSD_FLAGS_1, OSD_FLAGS_2, OSD_FLAGS_3, OSD_FLAGS_4, OSD_FLAGS_5, OSD_FLAGS_6, |
//OSD_Screen, OSD_Invert_Out, OSD_LED_Form, OSD_Send_OSD, LAST_STR, |
static const STRING strings[LAST_STR] PROGMEM = |
{ |
{ /*TESTSTRING*/ |
21, |
{ |
"Not format hardisk C?", /* German */ |
"Not format hardisk C?", /* English*/ |
"Not format hardisk C?", /* Dutch */ |
} |
}, |
{ /*KEYLINE1*/ |
21, |
{ |
" \x1a \x1b Ende OK", /* German */ |
" \x1a \x1b end OK", /* English*/ |
" \x1a \x1b Einde OK", /* Dutch */ |
} |
}, |
{ /*KEYLINE2*/ |
21, |
{ |
" \x18 \x19 Ende OK", /* German */ |
" \x18 \x19 end OK", /* English*/ |
" \x18 \x19 Einde OK", /* Dutch */ |
} |
}, |
{ /*KEYLINE3*/ |
21, |
{ |
" \x18 \x19 Ende ", /* German */ |
" \x18 \x19 end ", /* English*/ |
" \x18 \x19 Einde", /* Dutch */ |
} |
}, |
{ /*KEYLINE4*/ |
21, |
{ |
"Ende OK", /* German */ |
"end OK", /* English*/ |
"Einde OK", /* Dutch */ |
} |
}, |
{ /*KEYLINE5*/ |
21, |
{ |
"Ende Info", /* German */ |
"end info", /* English*/ |
"Eind Info", /* Dutch */ |
} |
}, |
{ /*BOOT1*/ |
21, |
{ |
"Taste 1 Sekunde", /* German */ |
"Keep the button", /* English*/ |
"Houd de knop ", /* Dutch */ |
} |
}, |
{ /* BOOT2*/ |
21, |
{ |
"lang festhalten.", /* German */ |
"pressed for 1 second", /* English*/ |
"1 seconde ingedrukt.", /* Dutch */ |
} |
}, |
{ /*BOOT_WI1*/ |
21, |
{ |
"Verbindung zum MK ist", /* German */ |
"Connection to MK is", /* English*/ |
"Verbinding met MK is", /* Dutch */ |
} |
}, |
{ /* BOOT_WI2*/ |
21, |
{ |
"auf Wi232 eingestellt", /* German */ |
"set to Wi232", /* English*/ |
"ingesteld op Wi232", /* Dutch */ |
} |
}, |
{ /*BOOTSV1*/ |
21, |
{ |
"auf Kabel eingestellt", /* German */ |
"set to kabel on SV2", /* English*/ |
"via kabelverbinding", /* Dutch */ |
} |
}, |
{ /*START_MSG1 */ |
21, |
{ |
"Portables Kopter Tool", /* German */ |
"Portable Kopter Tool ", /* English*/ |
"Portable Kopter Tool ", /* Dutch */ |
} |
}, |
{ /*START_MSG2 */ |
21, |
{ |
"für FC Ver "FC_Version, /* German */ |
"for FC Ver "FC_Version, /* English*/ |
"Voor FC Ver "FC_Version, /* Dutch */ |
} |
}, |
{ /* GNU/GPL */ |
21, |
{ |
"GNU GPL License", /* German */ |
"GNU GPL License", /* English*/ |
"GNU GPL License", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"ATmega 644", /* German */ |
"ATmega 644", /* English*/ |
"ATmega 644", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"ATmega 644P", /* German */ |
"ATmega 644P", /* English*/ |
"ATmega 644P", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"ATmega 1284P", /* German */ |
"ATmega 1284P", /* English*/ |
"ATmega 1284P", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"Hardware 1.2", /* German */ |
"Hardware 1.2", /* English*/ |
"Hardware 1.2", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"Hardware 1.2W", /* German */ |
"Hardware 1.2W", /* English*/ |
"Hardware 1.2W", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"Hardware 1.3", /* German */ |
"Hardware 1.3", /* English*/ |
"Hardware 1.3", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"Hardware 1.3W", /* German */ |
"Hardware 1.3W", /* English*/ |
"Hardware 1.3W", /* Dutch */ |
} |
}, |
{ /**/ |
21, |
{ |
"Hardware 3.9", /* German */ |
"Hardware 3.9", /* English*/ |
"Hardware 3.9", /* Dutch */ |
} |
}, |
{ /*START_LASTPOS*/ |
21, |
{ |
" Letzte Position ", /* German */ |
" last position ", /* English*/ |
" Laatste positie ", /* Dutch */ |
} |
}, |
{ /*START_LASTPOS1*/ |
21, |
{ |
" Breitengr Längengr ", /* German */ |
" latitude longitude ", /* English*/ |
"breedtegr. lengtegr. ", /* Dutch */ |
} |
}, |
{ /*START_LASTPOS2*/ |
21, |
{ |
"löschen weiter", /* German */ |
"delete exit ", /* English*/ |
"wissen verder", /* Dutch */ |
} |
}, |
{ /*START_LASTPOS3*/ |
21, |
{ |
" Google Eingabe ", /* German */ |
" Google Input ", /* English*/ |
" Google Input ", /* Dutch */ |
} |
}, |
{ /*START_LASTPOSDEL*/ |
21, |
{ |
" gelöscht ", /* German */ |
" deleted ", /* English*/ |
" gewist ", /* Dutch */ |
} |
}, |
{ /*START_SEARCHFC*/ |
21, |
{ |
"Suche FC... ", /* German */ |
"searching FC...", /* English*/ |
"zoek FC... ", /* Dutch */ |
} |
}, |
{ /*ENDE*/ |
21, |
{ |
"Ende ", /* German */ |
"end ", /* English*/ |
"Einde", /* Dutch */ |
} |
}, |
{ /*OK*/ |
21, |
{ |
"Ok ", /* German */ |
"ok ", /* English*/ |
"gued", /* Dutch */ |
} |
}, |
{ /*FEHLER*/ |
21, |
{ |
"Fehler ", /* German */ |
"error ", /* English*/ |
"fout ", /* Dutch */ |
} |
}, |
{ /*AKTIV*/ |
21, |
{ |
"aktiv ", /* German */ |
"activ ", /* English*/ |
"actief", /* Dutch */ |
} |
}, |
{ /*START_FCNOTFOUND*/ |
21, |
{ |
"FC nicht gefunden!", /* German */ |
"FC not found!", /* English*/ |
"FC niet gevonden!", /* Dutch */ |
} |
}, |
{ /*START_FCFOUND*/ |
21, |
{ |
"PKT-Tool GNU GPL", /* German */ |
"PKT-Tool GNU GPL", /* English*/ |
"PKT-Tool GNU GPL", /* Dutch */ |
} |
}, |
{ /*START_FCFOUND1*/ |
21, |
{ |
"gefunden: ", /* German */ |
"found: ", /* English*/ |
"gevonden: ", /* Dutch */ |
} |
}, |
{ /*START_FCFOUND2*/ |
21, |
{ |
"Flight-Ctrl", /* German */ |
"Flight-Ctrl", /* English*/ |
"Flight-Ctrl", /* Dutch */ |
} |
}, |
{ /*START_FCFOUND3*/ |
21, |
{ |
"Navi-Ctrl", /* German */ |
"Navi-Ctrl", /* English*/ |
"Navi-Ctrl", /* Dutch */ |
} |
}, |
{ /*START_VERSIONCHECK*/ |
21, |
{ |
"Version: ", /* German */ |
"Version: ", /* English*/ |
"Versie: ", /* Dutch */ |
} |
}, |
{ /*START_VERSIONCHECK1*/ |
21, |
{ |
"erwartet", /* German */ |
"expected", /* English*/ |
"verwacht", /* Dutch */ |
} |
}, |
{ /*START_VERSIONCHECK2*/ |
21, |
{ |
"gefunden", /* German */ |
"found ", /* English*/ |
"gevonden", /* Dutch */ |
} |
}, |
{ /*START_VERSIONCHECK3*/ |
21, |
{ |
"PKT-Tool nur mit", /* German */ |
"PKT-Tool only with", /* English*/ |
"PKT-Tool alleen met", /* Dutch */ |
} |
}, |
{ /*START_VERSIONCHECK4*/ |
21, |
{ |
"FC Software ", /* German */ |
"FC Software ", /* English*/ |
"FC Software ", /* Dutch */ |
} |
}, |
{ /*START_VERSIONCHECK5*/ |
21, |
{ |
"kompatibel", /* German */ |
"compatible", /* English*/ |
"compatibel", /* Dutch */ |
} |
}, |
{ /*ON*/ |
21, |
{ |
"Ein ", /* German */ |
"On ", /* English*/ |
"Aan ", /* Dutch */ |
} |
}, |
{ /*AUS*/ |
21, |
{ |
"Aus ", /* German */ |
"Off ", /* English*/ |
"Uit ", /* Dutch */ |
} |
}, |
{ /*ESC*/ |
21, |
{ |
"ESC", /* German */ |
"ESC", /* English*/ |
"ESC", /* Dutch */ |
} |
}, |
{ /*SHUTDOWN*/ |
21, |
{ |
" PKT ausschalten?", /* German */ |
" shutdown PKT ?", /* English*/ |
" PKT uitschakelen ?", /* Dutch */ |
} |
}, |
{ /*YES NO*/ |
21, |
{ |
"Nein Ja", /* German */ |
"no yes", /* English*/ |
"Nee Ja", /* Dutch */ |
} |
}, |
{ /*UPDATE1*/ |
21, |
{ |
"Verbinde PC mit PKT ", /* German */ |
"Connect PC to PKT-USB", /* English*/ |
"Verbind PC met PKT ", /* Dutch */ |
} |
}, |
{ /*UPDATE2*/ |
21, |
{ |
"Drücke 'Start' am PKT", /* German */ |
"Press 'Start' on PKT ", /* English*/ |
"Druk 'Start' op PKT ", /* Dutch */ |
} |
}, |
{ /*ENDSTART*/ |
21, |
{ |
" Ende Start", /* German */ |
" End Start", /* English*/ |
" Einde Start", /* Dutch */ |
} |
}, |
{ /*TOOLS1*/ |
21, |
{ |
" PC-Quick-Verbindung ", /* German */ |
" PC-Quick-Connection ", /* English*/ |
" Snelle PC-verbinding", /* Dutch */ |
} |
}, |
{ /*CONNECT1,*/ |
21, |
{ |
"Verbinde das PKT mit", /* German */ |
"Connect PKT with MK", /* English*/ |
"Verbind PKT ", /* Dutch */ |
} |
}, |
{ /*CONNECT2*/ |
21, |
{ |
"dem MK über:", /* German */ |
" over :", /* English*/ |
" met :", /* Dutch */ |
} |
}, |
{ /*CONNECT4,*/ |
21, |
{ |
"dem MK über: Kabel, ", /* German */ |
"over: Kabel", /* English*/ |
"MK via: kabel ", /* Dutch */ |
} |
}, |
{ /*CONNECT5*/ |
21, |
{ |
"es ist kein Wi.232", /* German */ |
"there is no Wi.232", /* English*/ |
"er is geen wi.232 ", /* Dutch */ |
} |
}, |
{ /*CONNECT6*/ |
21, |
{ |
"Modul eingebaut.", /* German */ |
"built in.", /* English*/ |
"module ingebouwd.", /* Dutch */ |
} |
}, |
{ /*CONNECT7,*/ |
21, |
{ |
"Wenn doch, dann bitte", /* German */ |
"if yes, then first", /* English*/ |
"zo ja, dan aub eerst", /* Dutch */ |
} |
}, |
{ /*CONNECT8*/ |
21, |
{ |
"das Modul zuerst im ", /* German */ |
"activate modul in", /* English*/ |
"de module aktiveren", /* Dutch */ |
} |
}, |
{ /*CONNECT9*/ |
21, |
{ |
"Setupmenü aktivieren.", /* German */ |
"Setupmenu", /* English*/ |
"in het Setupmenu.", /* Dutch */ |
} |
}, |
{ /*CONNECT10*/ |
21, |
{ |
"Sie müssen das PKT", /* German */ |
"You have to", /* English*/ |
"U moet de PKT", /* Dutch */ |
} |
}, |
{ /*CONNECT11*/ |
21, |
{ |
"jetzt neu starten!", /* German */ |
"restart PKT", /* English*/ |
"nu opnieuw starten!", /* Dutch */ |
} |
}, |
{ /*CONNECT12*/ |
21, |
{ |
"Es ist kein BTM-222", /* German */ |
"There is no BTM-222", /* English*/ |
"Er is geen BTM-222", /* Dutch */ |
} |
}, |
{ /*CONNECT13*/ |
21, |
{ |
"Modul eingebaut", /* German */ |
"Modul built in", /* English*/ |
"module ingebouwd.", /* Dutch */ |
} |
}, |
{ /*CONNECT14*/ |
21, |
{ |
" MK-USB Funktion ", /* German */ |
" MK-USB Function ", /* English*/ |
" MK-USB Functie ", /* Dutch */ |
} |
}, |
{ /*CONNECT15*/ |
21, |
{ |
" BT --> Kabel an FC ", /* German */ |
" BT --> Kabel to FC ", /* English*/ |
" BT --> kabel naar FC", /* Dutch */ |
} |
}, |
{ /*CONNECT16*/ |
21, |
{ |
"PC mit BT verb.", /* German */ |
"connect PC with BT", /* English*/ |
"PC via BT verbonden.", /* Dutch */ |
} |
}, |
{ /*CONNECT17*/ |
21, |
{ |
"PKT-Kabel an FC", /* German */ |
"PKT-Kabel to FC", /* English*/ |
"PKT-kabel naar FC", /* Dutch */ |
} |
}, |
{ /*CONNECT18*/ |
21, |
{ |
" BT --> Wi.232 ", /* German */ |
" BT --> Wi.232 ", /* English*/ |
" BT --> Wi.232 ", /* Dutch */ |
} |
}, |
{ /*CONNECT19*/ |
21, |
{ |
"Wi.232 an FC ", /* German */ |
"Wi.232 to FC ", /* English*/ |
"Wi.232 naar FC ", /* Dutch */ |
} |
}, |
{ /*CONNECT20*/ |
21, |
{ |
" USB --> Kabel an FC ", /* German */ |
" USB --> cable to FC ", /* English*/ |
"USB --> kabel naar FC", /* Dutch */ |
} |
}, |
{ /*CONNECT21*/ |
21, |
{ |
"PC mit USB verbinden ", /* German */ |
"connect PC with USB ", /* English*/ |
"Verbind PC met USB ", /* Dutch */ |
} |
}, |
{ /*CONNECT22*/ |
21, |
{ |
" USB --> Wi.232 ", /* German */ |
" USB --> Wi.232 ", /* English*/ |
" USB --> Wi.232 ", /* Dutch */ |
} |
}, |
{ /*CONNECT23*/ |
21, |
{ |
"MK-Tool starten", /* German */ |
"start MK-Tool", /* English*/ |
"start MK-Tool", /* Dutch */ |
} |
}, |
{ /*CONNECT24*/ |
21, |
{ |
" Wi.232 Konfigurieren", /* German */ |
" Wi.232 Configuration", /* English*/ |
" Wi.232 Configuratie ", /* Dutch */ |
} |
}, |
{ /*CONNECT25*/ |
21, |
{ |
"Programm starten. ", /* German */ |
"start program ", /* English*/ |
"start programma.", /* Dutch */ |
} |
}, |
{ /*CONNECT26*/ |
21, |
{ |
"BTM-222 Konfigurieren", /* German */ |
"BTM-222 configuration", /* English*/ |
"BTM-222 configuratie", /* Dutch */ |
} |
}, |
{ /*CONNECT27*/ |
21, |
{ |
"FC > MK-USB > BTM-222", /* German */ |
"FC > MK-USB > BTM-222", /* English*/ |
"FC > MK-USB > BTM-222", /* Dutch */ |
} |
}, |
{ /*CONNECT28*/ |
21, |
{ |
"MK-USB an PC anschl. ", /* German */ |
"connect PC to MK-USB ", /* English*/ |
"Verbind PC met MK-USB", /* Dutch */ |
} |
}, |
{ /*CONNECT29*/ |
21, |
{ |
"Zwischen MK-USB und ", /* German */ |
"connect crossed cable", /* English*/ |
"Tussen MK-USB en PKT ", /* Dutch */ |
} |
}, |
{ /*CONNECT30*/ |
21, |
{ |
"PKT ein gekreuztes ", /* German */ |
"between MK-USB and ", /* English*/ |
"een gekruiste kabel ", /* Dutch */ |
} |
}, |
{ /*CONNECT31*/ |
21, |
{ |
"Kabel anschliessen. ", /* German */ |
"PKT SV2", /* English*/ |
"aansluiten.", /* Dutch */ |
} |
}, |
{ /*Kabel*/ |
21, |
{ |
"Kabel", /* German */ |
"cable", /* English*/ |
"Kabel", /* Dutch */ |
} |
}, |
{ /*SLAVE*/ |
21, |
{ |
"Slave ", /* German */ |
"Slave ", /* English*/ |
"Slave ", /* Dutch */ |
} |
}, |
{ /*NORMAL*/ |
21, |
{ |
"Normal ", /* German */ |
"Normal ", /* English*/ |
"Norm. ", /* Dutch */ |
} |
}, |
{ /*Reverse*/ |
21, |
{ |
"Reverse", /* German */ |
"inverse", /* English*/ |
"geinver", /* Dutch */ |
} |
}, |
{ /*ENDOK*/ |
21, |
{ |
"Ende OK", /* German */ |
"End OK", /* English*/ |
"Eind OK", /* Dutch */ |
} |
}, |
{ /*EEPROM1*/ |
21, |
{ |
" EEProm wirklich", /* German */ |
" Realy delete", /* English*/ |
" Eeprom werkelijk", /* Dutch */ |
} |
}, |
{ /*EEPROM2*/ |
21, |
{ |
" löschen?", /* German */ |
" EEprom?", /* English*/ |
" wissen?", /* Dutch */ |
} |
}, |
{ /*DEUTSCH*/ |
21, |
{ |
"deutsch ", /* German */ |
"german ", /* English*/ |
"duits ", /* Dutch */ |
} |
}, |
{ /*ENGLISCH*/ |
21, |
{ |
"englisch ", /* German */ |
"english ", /* English*/ |
"engels ", /* Dutch */ |
} |
}, |
{ /*FRANCE*/ |
21, |
{ |
"französisch", /* German */ |
"french " , /* English*/ |
"frans ", /* Dutch */ |
} |
}, |
{ /*NETHERL*/ |
21, |
{ |
"holländisch", /* German */ |
"dutch ", /* English*/ |
"nederlands ", /* Dutch */ |
} |
}, |
{ /*DISPLAY1*/ |
21, |
{ |
"Anzeige Einstellungen", /* German */ |
" Display Setup ", /* English*/ |
"Display instellingen ", /* Dutch */ |
} |
}, |
{ /*DISPLAY2*/ |
21, |
{ |
"Infos bei Start:", /* German */ |
"Info at startup ", /* English*/ |
"Info bij opstart", /* Dutch */ |
} |
}, |
{ /*DISPLAY3*/ |
21, |
{ |
"Sprache : ", /* German */ |
"Language: ", /* English*/ |
"Taal: ", /* Dutch */ |
} |
}, |
{ /*DISPLAY4*/ |
21, |
{ |
"Licht aus nach:", /* German */ |
"Light off after:", /* English*/ |
"Licht uit na: ", /* Dutch */ |
} |
}, |
{ /*DISPLAY5*/ |
21, |
{ |
"LCD Helligk.:", /* German */ |
" Brightness :", /* English*/ |
" intensiteit:", /* Dutch */ |
} |
}, |
{ /*DISPLAY6*/ |
21, |
{ |
"LCD Kontrast:", /* German */ |
"LCD contrast:", /* English*/ |
"LCD contrast:", /* Dutch */ |
} |
}, |
{ /*DISPLAY7*/ |
21, |
{ |
"LCD Norm/Inv: ", /* German */ |
"LCD Norm/Inv: ", /* English*/ |
"LCD Norm/Inv: ", /* Dutch */ |
} |
}, |
{ /*DISPLAY8*/ |
21, |
{ |
"LCD Orient.: ", /* German */ |
"LCD Orient.: ", /* English*/ |
"LCD Orient.: ", /* Dutch */ |
} |
}, |
{ /*DISPLAY9*/ |
21, |
{ |
"RC Fehlerpiep :", /* German */ |
"RC Errorbeep :", /* English*/ |
"RC Errorbeep :", /* Dutch */ |
} |
}, |
{ /*DEBUGPKT*/ |
21, |
{ |
"Debug PKT", /* German */ |
"Debug PKT", /* English*/ |
"Debug PKT", /* Dutch */ |
} |
}, |
{ /*WITXRX*/ |
21, |
{ |
"Wi TX/RX Chan:", /* German */ |
"Wi TX/RX Chan:", /* English*/ |
"Wi TX/RX Chan:", /* Dutch */ |
} |
}, |
{ /*WINETG*/ |
21, |
{ |
"Wi NetW. Grp.:", /* German */ |
"Wi NetW. Grp.:", /* English*/ |
"Wi NetW. Grp.:", /* Dutch */ |
} |
}, |
{ /*WINETM*/ |
21, |
{ |
"Wi NetW. Mode:", /* German */ |
"Wi NetW. Mode:", /* English*/ |
"Wi NetW. Mode:", /* Dutch */ |
} |
}, |
{ /*WITIMEOUT*/ |
21, |
{ |
"Wi TX Timeout:", /* German */ |
"Wi TX Timeout:", /* English*/ |
"Wi TX Timeout:", /* Dutch */ |
} |
}, |
{ /*WIUART*/ |
21, |
{ |
"Wi UART MTU :", /* German */ |
"Wi UART MTU :", /* English*/ |
"Wi UART MTU :", /* Dutch */ |
} |
}, |
{ /*WI2321*/ |
21, |
{ |
"Wi.232 eingebaut:", /* German */ |
"Wi.232 built in :", /* English*/ |
"Wi.232 ingebouwd:", /* Dutch */ |
} |
}, |
{ /*WI2322*/ |
21, |
{ |
"Ist ein Wi.232-Modul ", /* German */ |
"Is Wi232 modul", /* English*/ |
"Is er een Wi.232", /* Dutch */ |
} |
}, |
{ /*WI2323*/ |
21, |
{ |
"eingebaut?", /* German */ |
"built in?", /* English*/ |
"module ingebouwd?", /* Dutch */ |
} |
}, |
{ /*YES*/ |
21, |
{ |
"Ja ", /* German */ |
"yes ", /* English*/ |
"Ja ", /* Dutch */ |
} |
}, |
{ /*NO*/ |
21, |
{ |
"Nein", /* German */ |
"no ", /* English*/ |
"Nee ", /* Dutch */ |
} |
}, |
{ /*BT1*/ |
21, |
{ |
" BTM222 Einstellungen", /* German */ |
" BTM-222 settings ", /* English*/ |
" BTM-222 settings ", /* Dutch */ |
} |
}, |
{ /*BT2*/ |
21, |
{ |
"Ist ein BTM-222-Modul", /* German */ |
"Is BTM-222 Modul", /* English*/ |
"Is er een BTM-222", /* Dutch */ |
} |
}, |
{ /*BT3*/ |
21, |
{ |
"eingebaut?", /* German */ |
"built in?", /* English*/ |
"module ingebouwd?", /* Dutch */ |
} |
}, |
{ /*BT4*/ |
21, |
{ |
"BTM222 eingebaut:", /* German */ |
"BTM222 built in :", /* English*/ |
"BTM222 ingebouwd:", /* Dutch */ |
} |
}, |
{ /*LIPO1*/ |
21, |
{ |
" PKT Akku Einstellung", /* German */ |
" PKT Accu Setup ", /* English*/ |
" PKT Accu Setup ", /* Dutch */ |
} |
}, |
{ /*LIPO2*/ |
21, |
{ |
"PKT Akkutyp: ", /* German */ |
"PKT Accutyp: ", /* English*/ |
"PKT Accutype: ", /* Dutch */ |
} |
}, |
{ /*LIPO3*/ |
21, |
{ |
"Akku U Offset: ", /* German */ |
"Accu U Offset: ", /* English*/ |
"Accu U Offset: ", /* Dutch */ |
} |
}, |
{ /*LIPO4*/ |
21, |
{ |
"PKT Akkutyp: ", /* German */ |
"PKT Accutyp: ", /* English*/ |
"PKT Accutype: ", /* Dutch */ |
} |
}, |
{ /*LIPO5*/ |
21, |
{ |
"Offset verstellen bis", /* German */ |
"adjust offset until", /* English*/ |
"Offset afregelen tot", /* Dutch */ |
} |
}, |
{ /*LIPO6*/ |
21, |
{ |
"die Spannung passt", /* German */ |
"voltage fits", /* English*/ |
"de spanning juist is.", /* Dutch */ |
} |
}, |
{ /*LOWBAT*/ |
21, |
{ |
"LowBat Warn V:", /* German */ |
"LowBat Warn V:", /* English*/ |
"LowBat alarm :", /* Dutch */ |
} |
}, |
{ /*OSD_3D_V, vorne*/ |
21, |
{ |
"V", /* German */ |
"F", /* English*/ |
"F", /* Dutch */ |
} |
}, |
{ /*OSD_3D_H, hinten*/ |
21, |
{ |
"H", /* German */ |
"B", /* English*/ |
"A", /* Dutch */ |
} |
}, |
{ /*OSD_3D_L, links*/ |
21, |
{ |
"L", /* German */ |
"L", /* English*/ |
"L", /* Dutch */ |
} |
}, |
{ /*OSD_3D_R, rechts*/ |
21, |
{ |
"R", /* German */ |
"R", /* English*/ |
"R", /* Dutch */ |
} |
}, |
{ /*OSD_3D_NICK, Ni*/ |
21, |
{ |
"Ni", /* German */ |
"Ni", /* English*/ |
"Ni", /* Dutch */ |
} |
}, |
{ /*OSD_3D_ROLL, Ro*/ |
21, |
{ |
"Ro", /* German */ |
"Ro", /* English*/ |
"Ro", /* Dutch */ |
} |
}, |
{ /*OSD_3D_COMPASS, Ko*/ |
21, |
{ |
"Ko", /* German */ |
"Co", /* English*/ |
"Co", /* Dutch */ |
} |
}, |
{ /*OSD_ERROR*/ |
21, |
{ |
"FEHLER: Datenverlust ", /* German */ |
"ERROR: Data lost", /* English*/ |
"verbinding verbroken ", /* Dutch */ |
} |
}, |
{ /*OSD_POS1*/ |
21, |
{ |
"Letzte bekannte", /* German */ |
"Last known ", /* English*/ |
"Laatst bekende", /* Dutch */ |
} |
}, |
{ /*OSD_POS2*/ |
21, |
{ |
"Position ", /* German */ |
"position ", /* English*/ |
"positie ", /* Dutch */ |
} |
}, |
{ /*PARA_SETTINGS*/ |
21, |
{ |
" Einstellungen ", /* German */ |
" Setting ", /* English*/ |
" Instellingen ", /* Dutch */ |
} |
}, |
{ /*PARA_CHANGE*/ |
21, |
{ |
"ändern", /* German */ |
"change", /* English*/ |
"verandering", /* Dutch */ |
} |
}, |
{ /*PARA_AKTIVI*/ |
21, |
{ |
"aktivieren", /* German */ |
"activate", /* English*/ |
"activeren", /* Dutch */ |
} |
}, |
{ /*PARA_AKTIV*/ |
21, |
{ |
"aktiviert", /* German */ |
"activated", /* English*/ |
"geactiveerd", /* Dutch */ |
} |
}, |
{ /*PARA_SAVESETT*/ |
21, |
{ |
" Setting x speichern?", /* German */ |
" store setting?", /* English*/ |
" instell.op te slaan?", /* Dutch */ |
} |
}, |
{ /*PARA_SETTSAVED*/ |
21, |
{ |
"Gespeichert und", /* German */ |
"stored and", /* English*/ |
"opgeslagen en", /* Dutch */ |
} |
}, |
{ /*PARA_COPY*/ |
21, |
{ |
"Kopiere Setting", /* German */ |
"copy settings", /* English*/ |
"kopieer instel.", /* Dutch */ |
} |
}, |
{ /*PARA_FROMTO*/ |
21, |
{ |
" von x nach y", /* German */ |
" from x to y", /* English*/ |
" van x na y", /* Dutch */ |
} |
}, |
{ /*PARA_ENDE*/ |
21, |
{ |
"von nach Ende OK", /* German */ |
"from to end OK", /* English*/ |
"van na einde OK", /* Dutch */ |
} |
}, |
{ /*PARA_COPYQ*/ |
21, |
{ |
"Wirklich kopieren?", /* German */ |
"really copy?", /* English*/ |
"echt kopie?", /* Dutch */ |
} |
}, |
{ /*PARA_COPYACTIV*/ |
21, |
{ |
"Kopiert und aktiviert", /* German */ |
"copied and activated ", /* English*/ |
"Kopieën en actief", /* Dutch */ |
} |
}, |
{ /*PARA_CHANGESETT*/ |
21, |
{ |
"Ändere Einstellungen ", /* German */ |
" change settings ", /* English*/ |
"instellingen wijzigen", /* Dutch */ |
} |
}, |
{ /*PARA_SELECT*/ |
21, |
{ |
" Wähle Parameter ", /* German */ |
" select parameters ", /* English*/ |
"Selecteer Parameters ", /* Dutch */ |
} |
}, |
{ /*PARA_SEITE*/ |
21, |
{ |
" Wähle Seite ", /* German */ |
" select page ", /* English*/ |
" Selecteer pagina ", /* Dutch */ |
} |
}, |
{ /*PARA_SELSETT*/ |
21, |
{ |
" Wähle Setting: ", /* German */ |
" select setting ", /* English*/ |
" Selecteer setting ", /* Dutch */ |
} |
}, |
{ /*GPS1*/ |
21, |
{ |
" GPS Einstellungen ", /* German */ |
" GPS settings ", /* English*/ |
" GPS settings ", /* Dutch */ |
} |
}, |
{ /*GPS2*/ |
21, |
{ |
"gewähltes GPS Gerät ", /* German */ |
"selected GPS device ", /* English*/ |
"selected GPS device ", /* Dutch */ |
} |
}, |
{ /*GPS3*/ |
21, |
{ |
"GPS Empf.einschalten?", /* German */ |
"receive GPS on? ", /* English*/ |
"receive GPS on? ", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_0*/ |
21, |
{ |
"max Höhe :", /* German */ |
"max Altitude:", /* English*/ |
"max Altitude:", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_1*/ |
21, |
{ |
"max Geschw. :", /* German */ |
"max Speed :", /* English*/ |
"max Speed :", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_2*/ |
21, |
{ |
"max Entfern.:", /* German */ |
"max Distance:", /* English*/ |
"max Distance:", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_3*/ |
21, |
{ |
"min Spannung:", /* German */ |
"min Voltage :", /* English*/ |
"min Voltage :", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_4*/ |
21, |
{ |
"max Zeit :", /* German */ |
"max Time :", /* English*/ |
"max Time :", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_5*/ |
21, |
{ |
"max Strom :", /* German */ |
"max Current :", /* English*/ |
"max Current :", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_6*/ |
21, |
{ |
"Ent.Kapazit.:", /* German */ |
"UsedCapacity:", /* English*/ |
"UsedCapacity:", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_7*/ |
21, |
{ |
"Long. :", /* German */ |
"Long. :", /* English*/ |
"Long. :", /* Dutch */ |
} |
}, |
{ /*STATS_ITEM_8*/ |
21, |
{ |
"Lat. :", /* German */ |
"Lat. :", /* English*/ |
"Lat. :", /* Dutch */ |
} |
}, |
{ /*ONLY_NC*/ |
21, |
{ |
"Nur mit NC ! ", /* German */ |
"Only with NC !", /* English*/ |
"Only with NC !", /* Dutch */ |
} |
}, |
{ /*NO_SETTINGS*/ |
21, |
{ |
"Keine Setings !! " , /* German */ |
"No settings read!!" , /* English*/ |
"No settings read!!" , /* Dutch */ |
} |
}, |
{ /*OSD_ALTI_0*/ |
21, |
{ |
"Höhe aus ", /* German */ |
"Alti. off ", /* English*/ |
"Alti. off ", /* Dutch */ |
} |
}, |
{ /*OSD_ALTI_1*/ |
21, |
{ |
"Höhe begr.", /* German */ |
"Alti.Limit", /* English*/ |
"Alti.Limit", /* Dutch */ |
} |
}, |
{ /*OSD_VARIO_0*/ |
21, |
{ |
"Vario aus ", /* German */ |
"Vario off ", /* English*/ |
"Vario off ", /* Dutch */ |
} |
}, |
{ /*OSD_VARIO_1*/ |
21, |
{ |
"Vario Höhe", /* German */ |
"Vario Alt.", /* English*/ |
"Vario Alt.", /* Dutch */ |
} |
}, |
{ /*OSD_CARE_FREE_0*/ |
21, |
{ |
" ", /* German */ |
" ", /* English*/ |
" ", /* Dutch */ |
} |
}, |
{ /*OSD_CARE_FREE_1*/ |
21, |
{ |
"Care Free", /* German */ |
"Care Free", /* English*/ |
"Care Free", /* Dutch */ |
} |
}, |
{ /*OSD_LED0*/ |
21, |
{ |
" ", /* German */ |
" ", /* English*/ |
" ", /* Dutch */ |
} |
}, |
{ /*OSD_LED1*/ |
21, |
{ |
"LED1", /* German */ |
"LED1", /* English*/ |
"LED1", /* Dutch */ |
} |
}, |
{ /*OSD_LED2*/ |
21, |
{ |
"LED2", /* German */ |
"LED2", /* English*/ |
"LED2", /* Dutch */ |
} |
}, |
{ /*OSD_NAVI_MODE_0*/ |
21, |
{ |
"Navi aus ", /* German */ |
"Navi off ", /* English*/ |
"Navi off ", /* Dutch */ |
} |
}, |
{ /*OSD_NAVI_MODE_1*/ |
21, |
{ |
"Pos. halten", /* German */ |
"Pos. Hold ", /* English*/ |
"Pos. Hold ", /* Dutch */ |
} |
}, |
{ /*OSD_NAVI_MODE_2*/ |
21, |
{ |
"Coming Home", /* German */ |
"Coming Home", /* English*/ |
"Coming Home", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_0*/ |
21, |
{ |
" ", /* German */ |
" ", /* English*/ |
" ", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_1*/ |
21, |
{ |
"Justieren", /* German */ |
"Calibrate", /* English*/ |
"Calibrate", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_2*/ |
21, |
{ |
"Start ", /* German */ |
"Start ", /* English*/ |
"Start ", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_3*/ |
21, |
{ |
"Betrieb ", /* German */ |
"Run ", /* English*/ |
"Run ", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_4*/ |
21, |
{ |
"Fliegen ", /* German */ |
"Fly ", /* English*/ |
"Fly ", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_5*/ |
21, |
{ |
"Landung ", /* German */ |
"Landing ", /* English*/ |
"Landing ", /* Dutch */ |
} |
}, |
{ /*OSD_FLAGS_6*/ |
21, |
{ |
"Akku leer", /* German */ |
"Low Bat. ", /* English*/ |
"Low Bat ", /* Dutch */ |
} |
}, |
{ /*OSD_Screen*/ |
21, |
{ |
" OSD Anzeige Setup ", /* German */ |
" OSD screen setup ", /* English*/ |
" OSD screen setup ", /* Dutch */ |
} |
}, |
{ /*OSD_Invert_Out*/ |
21, |
{ |
"Out1/2 negiert :", /* German */ |
"Out1/2 inverted:", /* English*/ |
"Out1/2 inverted:", /* Dutch */ |
} |
}, |
{ /*OSD_LED_Form*/ |
21, |
{ |
"Out1/2 Format:", /* German */ |
"Out1/2 format:", /* English*/ |
"Out1/2 format:", /* Dutch */ |
} |
}, |
{ /*OSD_Send_OSD*/ |
21, |
{ |
"Navidata an SV2:", /* German */ |
"Navidata to SV2:", /* English*/ |
"Navidata to SV2:", /* Dutch */ |
} |
}, |
{ /*OSD_Fallspeed*/ |
21, |
{ |
"m. Sinkrate m/s:", /* German */ |
"m.fallspeed m/s:", /* English*/ |
"m.fallspeed m/s:", /* Dutch */ |
} |
}, |
{ /*OSD_VARIOBEEP*/ |
21, |
{ |
"Variometer Beep:", /* German */ |
"variometer beep:", /* English*/ |
"variometer beep:", /* Dutch */ |
} |
}, |
{ /*OSD_HOMEMKVIEW*/ |
21, |
{ |
"Homesicht von MK:", /* German */ |
"homeview from MK:", /* English*/ |
"homeview from MK:", /* Dutch */ |
} |
}, |
{ /*OSD_MAHWARNING*/ |
21, |
{ |
"mAh Warnung > :", /* German */ |
"mAh warning > :", /* English*/ |
"mAh warning > :", /* Dutch */ |
} |
}, |
{ /*OSD_SCREENMODE*/ |
21, |
{ |
"OSD Anzeigevar:", /* German */ |
"OSD screenmode:", /* English*/ |
"OSD screenmode:", /* Dutch */ |
} |
}, |
{ /*OSD_LIPOBAR*/ |
21, |
{ |
"MK Volt Balken:", /* German */ |
"MK volt bargraph:", /* English*/ |
"MK volt bargraph:", /* Dutch */ |
} |
}, |
{ /*PKT_BAUDRATE*/ |
21, |
{ |
"Baud Wi232/BT:", /* German */ |
"Baud Wi232/BT:", /* English*/ |
"Baud Wi232/BT:", /* Dutch */ |
} |
}, |
{ /*FOLLOWME_0*/ |
21, |
{ |
" Follow Me Setup ", /* German */ |
" Follow Me Setup ", /* English*/ |
" Follow Me Setup ", /* Dutch */ |
} |
}, |
{ /*FOLLOWME_1*/ |
21, |
{ |
" Refresh :", /* German */ |
" Refresh :", /* English*/ |
" Refresh :", /* Dutch */ |
} |
}, |
{ /*FOLLOWME_2*/ |
21, |
{ |
"Geschwindigkeit:", /* German */ |
" Speed :", /* English*/ |
" Speed :", /* Dutch */ |
} |
}, |
{ /*FOLLOWME_3*/ |
21, |
{ |
"Toleranz Radius:", /* German */ |
"Toleranz Radius:", /* English*/ |
"Toleranz Radius:", /* Dutch */ |
} |
}, |
{ /*HWSOUND*/ |
21, |
{ |
"Tonausgabe Erw.:", /* German */ |
"sound extension:", /* English*/ |
"sound extension:", /* Dutch */ |
} |
}, |
{ /*HWBEEPER*/ |
21, |
{ |
"Hardware Pieper:", /* German */ |
"hardware beep :", /* English*/ |
"hardware beep :", /* Dutch */ |
} |
}, |
{ /*VOLUME*/ |
21, |
{ |
"Lautstärke :", /* German */ |
"volume :", /* English*/ |
"volume :", /* Dutch */ |
} |
}, |
{ /*SERCHAN_0*/ |
21, |
{ |
"serielle Kanäle Setup", /* German */ |
"serial channel setup", /* English*/ |
"serial channel setup", /* Dutch */ |
} |
}, |
{ /*SERCHAN_1*/ |
21, |
{ |
"serielle Kanäle Setup", /* German */ |
"serial channel setup", /* English*/ |
"serial channel setup", /* Dutch */ |
} |
}, |
{ /*SERCHAN_2*/ |
21, |
{ |
"Lipo Messung:", /* German */ |
"Lipo check :", /* English*/ |
"Lipo check :", /* Dutch */ |
} |
}, |
{ /*SERCHAN_3*/ |
21, |
{ |
"Kanal ", /* German */ |
"Channel ", /* English*/ |
"Channel ", /* Dutch */ |
} |
}, |
{ /*SERVOSTEPS*/ |
21, |
{ |
"Servoschritte: ", /* German */ |
"servosteps : ", /* English*/ |
"servosteps : ", /* Dutch */ |
} |
}, |
{ /*SERVO1_TEXT*/ |
21, |
{ |
" Servo 1 ", /* German */ |
" servo 1 ", /* English*/ |
" servo 1 ", /* Dutch */ |
} |
}, |
{ /*SERVO2_TEXT*/ |
21, |
{ |
" Servo 2 ", /* German */ |
" servo 2 ", /* English*/ |
" servo 2 ", /* Dutch */ |
} |
}, |
{ /*SERVO_REVERSE*/ |
21, |
{ |
"Reverse:", /* German */ |
"Reverse:", /* English*/ |
"Reverse:", /* Dutch */ |
} |
}, |
{ /*SERVO_LEFT*/ |
21, |
{ |
"Links:", /* German */ |
"lefth:", /* English*/ |
"lefth:", /* Dutch */ |
} |
}, |
{ /*SERVO_RIGHT*/ |
21, |
{ |
"Rechts:", /* German */ |
"right:", /* English*/ |
"right:", /* Dutch */ |
} |
}, |
{ /*SERVO_MIDDLE*/ |
21, |
{ |
"Mitte:", /* German */ |
"middle:", /* English*/ |
"middle:", /* Dutch */ |
} |
}, |
{ /*SERVO_TEST1*/ |
21, |
{ |
"Test Pulslänge ", /* German */ |
"test framewidth ", /* English*/ |
"test framewidth ", /* Dutch */ |
} |
}, |
{ /*SV_TEST2*/ |
21, |
{ |
" Servo zum Testen ", /* German */ |
" servo to test ", /* English*/ |
" servo to test ", /* Dutch */ |
} |
}, |
{ /*SV_TEST3*/ |
21, |
{ |
" Periode ", /* German */ |
" frame ", /* English*/ |
" frame ", /* Dutch */ |
} |
}, |
{ /*SV_TESTCONT*/ |
21, |
{ |
"Test fortlaufend ", /* German */ |
"test continues ", /* English*/ |
"test continues ", /* Dutch */ |
} |
}, |
{ /*SV_SINGLESTEP*/ |
21, |
{ |
"Einzelschritt ", /* German */ |
"single step ", /* English*/ |
"single step ", /* Dutch */ |
} |
}, |
{ /*SV_COUNTTEST*/ |
21, |
{ |
"Anzahl ", /* German */ |
"test count ", /* English*/ |
"test count ", /* Dutch */ |
} |
}, |
{ /*SV_PAUSEEND*/ |
21, |
{ |
"Pause Endposition ", /* German */ |
"pause endposition ", /* English*/ |
"pause endposition ", /* Dutch */ |
} |
}, |
{ /*SV_PAUSEINC*/ |
21, |
{ |
"Pause pro Inc. ", /* German */ |
"Pause pro Inc. ", /* English*/ |
"Pause pro Inc. ", /* Dutch */ |
} |
}, |
{ /*GPS_MOUSETYP*/ |
21, |
{ |
"GPS Maus :", /* German */ |
"GPS mouse:", /* English*/ |
"GPS mouse:", /* Dutch */ |
} |
}, |
{ /*GPS_MOUSE1*/ |
21, |
{ |
"GPS BT Mouse 1 ", /* German */ |
"GPS BT Mouse 1 ", /* English*/ |
"GPS BT Mouse 1 ", /* Dutch */ |
} |
}, |
{ /*GPS_MK*/ |
21, |
{ |
"GPS Pos. vom MK ", /* German */ |
"GPS pos. from MK ", /* English*/ |
"GPS pos. from MK ", /* Dutch */ |
} |
}, |
{ /*STICK_MIN*/ |
21, |
{ |
"Stick min. Wert: ", /* German */ |
"stick min. value: ", /* English*/ |
"stick min. value: ", /* Dutch */ |
} |
}, |
{ /*STICK_MAX*/ |
21, |
{ |
"Stick max. Wert: ", /* German */ |
"stick max. value: ", /* English*/ |
"stick max. value: ", /* Dutch */ |
} |
}, |
{ /*STICK_DIR*/ |
21, |
{ |
"Richtung: ", /* German */ |
"direction: ", /* English*/ |
"direction: ", /* Dutch */ |
} |
}, |
{ /*STICK_TYPE*/ |
21, |
{ |
"Sticktype: ", /* German */ |
"sticktype: ", /* English*/ |
"sticktype: ", /* Dutch */ |
} |
}, |
{ /*STICK_NEUTRAL*/ |
21, |
{ |
"Neutralisierend:", /* German */ |
"neutralizing:", /* English*/ |
"neutralizing:", /* Dutch */ |
} |
}, |
{ /*LIPO_MESSUNG*/ |
21, |
{ |
"Lipo Messung: ", /* German */ |
"Lipo measurement: ", /* English*/ |
"Lipo measurement: ", /* Dutch */ |
} |
}, |
{ /*POTI*/ |
21, |
{ |
"Poti ", /* German */ |
"poti ", /* English*/ |
"poti ", /* Dutch */ |
} |
}, |
{ /*TASTER*/ |
21, |
{ |
"Taster", /* German */ |
"switch", /* English*/ |
"switch", /* Dutch */ |
} |
} |
}; |
char const * strGet(int str_no) |
{ |
return (char*)pgm_read_word(&strings[str_no].text[Config.DisplayLanguage]); |
} |
//void Test_Language (void) // bleibt für Tests |
//{ |
// lcd_cls(); |
// lcd_puts_at(12, 7, strGet(YESNO),0); |
// |
// do |
// { |
// lcd_puts_at(0, 2, strGet(TESTSTRING), 0); |
// } |
// while(!get_key_press (1 << KEY_ESC)); |
// get_key_press(KEY_ALL); |
// return; |
//} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/messages.h |
---|
0,0 → 1,58 |
/**************************************************************************************** |
* Copyright (C) 2011 Christian "Cebra" Brandtner, brandtner@brandtner.net * |
* * |
* 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. * |
* * |
* * |
* Languagesupport: * |
* http://www.netrino.com/Embedded-Systems/How-To/Firmware-Internationalization * |
* Nigel Jones * |
****************************************************************************************/ |
#ifndef MESSAGES_H |
#define MESSAGES_H |
//--------------------------------------------------------------------------------------------------------------------- |
// Typdefinitionen für alle verwendeten Strings, LAST_STR muss am Ende stehen bleiben |
typedef enum |
{ |
TESTSTRING, KEYLINE1, KEYLINE2, KEYLINE3, KEYLINE4, KEYLINE5, BOOT1, BOOT2, BOOT_WI1, BOOT_WI2, BOOT_SV, START_MSG1, START_MSG2, GNU_GPL, ATMEGA644, |
ATMEGA644P, ATMEGA1284P, HW12, HW12W, HW13, HW13W, HW39, START_LASTPOS, START_LASTPOS1, START_LASTPOS2, START_LASTPOS3, START_LASTPOSDEL, |
START_SEARCHFC, ENDE, OK, FEHLER, AKTIV, START_FCNOTFOUND, START_FCFOUND, START_FCFOUND1, START_FCFOUND2, START_FCFOUND3, START_VERSIONCHECK, |
START_VERSIONCHECK1, START_VERSIONCHECK2, START_VERSIONCHECK3, START_VERSIONCHECK4, START_VERSIONCHECK5, ON, OFF, ESC, SHUTDOWN, YESNO, |
UPDATE1, UPDATE2, ENDSTART, TOOLS1, CONNECT1, CONNECT2, CONNECT4, CONNECT5, CONNECT6, CONNECT7, CONNECT8, CONNECT9, CONNECT10, CONNECT11, CONNECT12, |
CONNECT13, CONNECT14, CONNECT15, CONNECT16, CONNECT17, CONNECT18, CONNECT19, CONNECT20, CONNECT21, CONNECT22, CONNECT23, CONNECT24, CONNECT25, |
CONNECT26, CONNECT27, CONNECT28, CONNECT29, CONNECT30, CONNECT31, KABEL, SLAVE, NORMAL, REVERSE, ENDOK, EEPROM1, EEPROM2, DEUTSCH, ENGLISCH, FRANCE, |
NETHERL, DISPLAY1, DISPLAY2, DISPLAY3, DISPLAY4, DISPLAY5, DISPLAY6, DISPLAY7, DISPLAY8, DISPLAY9, DEBUGPKT, WITXRX, WINETWG, WINETWM, WITIMEOUT, |
WIUART, WI2321, WI2322, WI2323, YES, NOO, BT1, BT2, BT3, BT4, LIPO1, LIPO2, LIPO3, LIPO4, LIPO5, LIPO6, LOWBAT, OSD_3D_V, OSD_3D_H, OSD_3D_L, |
OSD_3D_R, OSD_3D_NICK, OSD_3D_ROLL, OSD_3D_COMPASS, OSD_ERROR, OSD_POS1, OSD_POS2, PARA_SETTINGS, PARA_CHANGE, PARA_AKTIVI, PARA_AKTIV, |
PARA_SAVESETT, PARA_SETTSAVED, PARA_COPY, PARA_FROMTO, PARA_ENDE, PARA_COPYQ, PARA_COPYACTIV, PARA_CHANGESETT, PARA_SELECT, PARA_SEITE, |
PARA_SELSETT, GPS1, GPS2, GPS3, STATS_ITEM_0, STATS_ITEM_1, STATS_ITEM_2, STATS_ITEM_3, STATS_ITEM_4, STATS_ITEM_5, STATS_ITEM_6, STATS_ITEM_7, |
STATS_ITEM_8, ONLY_NC, NO_SETTINGS, OSD_ALTI_0, OSD_ALTI_1, OSD_VARIO_0, OSD_VARIO_1, OSD_CARE_FREE_0, OSD_CARE_FREE_1, OSD_LED0, OSD_LED1, OSD_LED2, |
OSD_NAVI_MODE_0, OSD_NAVI_MODE_1, OSD_NAVI_MODE_2, OSD_FLAGS_0, OSD_FLAGS_1, OSD_FLAGS_2, OSD_FLAGS_3, OSD_FLAGS_4, OSD_FLAGS_5, OSD_FLAGS_6, |
OSD_Screen, OSD_Invert_Out, OSD_LED_Form, OSD_Send_OSD,FALLSPEED,OSD_VARIOBEEP,OSD_HOMEMKVIEW,OSD_MAHWARNING,OSD_SCREENMODE,OSD_LIPOBAR,PKT_BAUDRATE, |
FOLLOWME_0, FOLLOWME_1,FOLLOWME_2,FOLLOWME_3, HWSOUND, HWBEEPER, VOLUME, SERCHAN_0, SERCHAN_1, SERCHAN_2, SERCHAN_3, SERVOSTEPS,SERVO1_TEXT, SERVO2_TEXT, |
SERVO_REVERSE, SERVO_LEFT, SERVO_RIGTH, SERVO_MID, SERVO_TEST1, SV_TEST2, SV_TEST3, SV_TESTCONT, SV_SINGLESTEP, SV_COUNTTEST, SV_PAUSEEND, |
SV_PAUSEINC,GPS_MOUSETYP,GPS_MOUSE1,GPS_MK,STICK_MIN, STICK_MAX, STICK_DIR, STICK_TYPE, STICK_NEUTRAL, LIPO_MESSUNG,POTI,TASTER, LAST_STR, |
} STR; |
#define NUM_LANG 3 // German, English,Netherlands |
char const * strGet(int str_no); |
void Test_Language (void); // bleibt für Tests |
#endif /* _MESSAGES_H_ */ |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/mk-data-structs.h |
---|
0,0 → 1,491 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#ifndef _MK_DATA_STRUCTS_H |
#define _MK_DATA_STRUCTS_H |
#include "main.h" |
//-------------------------------------------------------------------------------- |
#ifdef MKVERSION088n |
// FC Version 0.88m |
#define EEProm_Version 91 // FC EEProm Revision / Struktur FC 0.87 |
#define FC_Version "0.88n" //Softwareversion der FC |
#define VERSION_MAJOR 0 |
#define VERSION_MINOR 88 |
#define VERSION_PATCH 12 |
#define VERSION_SERIAL_MAJOR 11 // Serial Protocol |
#define VERSION_SERIAL_MINOR 0 // Serial Protocol |
#define NC_SPI_COMPATIBLE 51 // Navi-Kompatibilität |
#warning "FC-Version 0.88n" |
#endif |
//-------------------------------------------------------------------------------- |
#ifdef MKVERSION090b |
// FC Version 0.89b |
#define EEProm_Version 92 // FC EEProm Revision / Struktur FC 0.87 |
#define FC_Version "0.90b" //Softwareversion der FC |
#define VERSION_MAJOR 0 |
#define VERSION_MINOR 89 |
#define VERSION_PATCH 2 |
#define VERSION_SERIAL_MAJOR 11 // Serial Protocol |
#define VERSION_SERIAL_MINOR 0 // Serial Protocol |
#define NC_SPI_COMPATIBLE 52 // Navi-Kompatibilität |
#warning "FC-Version 0.90b" |
#endif |
//-------------------------------------------------------------------------------- |
#define u8 uint8_t |
#define s8 int8_t |
#define u16 uint16_t |
#define s16 int16_t |
#define u32 uint32_t |
#define s32 int32_t |
#define NUMBER_OF_DEBUG_DATAS 32 |
#define ANALOG_NAME_LENGTH 16 |
// Version of supported serial protocol |
#define MIN_VERSION 7 |
#define MAX_VERSION 10 |
// Setting index |
#define SETTING_1 1 |
#define SETTING_2 2 |
#define SETTING_3 3 |
#define SETTING_4 4 |
#define SETTING_5 5 |
#define SETTING_CURRENT 0xff |
// MikroKopter defines |
// taken from |
// FC Software eeprom.h |
// |
//GlobalConfig3 aus FC/eeprom.h |
#define CFG3_NO_SDCARD_NO_START 0x01 |
#define CFG3_DPH_MAX_RADIUS 0x02 |
#define CFG3_VARIO_FAILSAFE 0x04 |
#define CFG3_MOTOR_SWITCH_MODE 0x08 //FC0.88L 7.5.12 |
#define CFG3_NO_GPSFIX_NO_START 0x10 //FC0.88L 7.5.12 |
#ifdef MKVERSION090b |
#define CFG3_USE_NC_FOR_OUT1 0x20 |
#define CFG3_SPEAK_ALL 0x40 |
#endif |
//GlobalConfig |
#define CFG_HOEHENREGELUNG 0x01 |
#define CFG_HOEHEN_SCHALTER 0x02 |
#define CFG_HEADING_HOLD 0x04 |
#define CFG_KOMPASS_AKTIV 0x08 |
#define CFG_KOMPASS_FIX 0x10 |
#define CFG_GPS_AKTIV 0x20 |
#define CFG_ACHSENKOPPLUNG_AKTIV 0x40 |
#define CFG_DREHRATEN_BEGRENZER 0x80 |
//Bitconfig MAsk |
#define CFG_LOOP_OBEN 0x01 |
#define CFG_LOOP_UNTEN 0x02 |
#define CFG_LOOP_LINKS 0x04 |
#define CFG_LOOP_RECHTS 0x08 |
#define CFG_MOTOR_BLINK1 0x10 |
#define CFG_MOTOR_OFF_LED1 0x20 |
#define CFG_MOTOR_OFF_LED2 0x40 |
#define CFG_MOTOR_BLINK2 0x80 |
// ServoCompInvert, FC0.89 |
#define SVNick 0x01 |
#define SVRoll 0x02 |
#define SVRelMov 0x04 |
// ExtraConfig |
#define CFG2_HEIGHT_LIMIT 0x01 |
#define CFG2_VARIO_BEEP 0x02 |
#define CFG_SENSITIVE_RC 0x04 |
#define CFG_3_3V_REFERENCE 0x08 |
#define CFG_NO_RCOFF_BEEPING 0x10 |
#define CFG_GPS_AID 0x20 |
#define CFG_LEARNABLE_CAREFREE 0x40 |
#define CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80 |
// bit mask for ParamSet.Config0 |
#define CFG0_AIRPRESS_SENSOR 0x01 |
#define CFG0_HEIGHT_SWITCH 0x02 |
#define CFG0_HEADING_HOLD 0x04 |
#define CFG0_COMPASS_ACTIVE 0x08 |
#define CFG0_COMPASS_FIX 0x10 |
#define CFG0_GPS_ACTIVE 0x20 |
#define CFG0_AXIS_COUPLING_ACTIVE 0x40 |
#define CFG0_ROTARY_RATE_LIMITER 0x80 |
// defines for the receiver selection |
#define RECEIVER_PPM 0 |
#define RECEIVER_SPEKTRUM 1 |
#define RECEIVER_SPEKTRUM_HI_RES 2 |
#define RECEIVER_SPEKTRUM_LOW_RES 3 |
#define RECEIVER_JETI 4 |
#define RECEIVER_ACT_DSL 5 |
#define RECEIVER_HOTT 6 |
#define RECEIVER_SBUS 7 |
#define RECEIVER_USER 8 |
#define RECEIVER_UNKNOWN 0xFF |
// MikroKopter Flags |
// taken from |
// http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.73d%2Ffc.h |
//alt 0.86 |
//#define FCFLAG_MOTOR_RUN 0x01 |
//#define FCFLAG_FLY 0x02 |
//#define FCFLAG_CALIBRATE 0x04 |
//#define FCFLAG_START 0x08 |
//#define FCFLAG_NOTLANDUNG 0x10 |
//#define FCFLAG_LOWBAT 0x20 |
//#define FCFLAG_SPI_RX_ERR 0x40 |
//#define FCFLAG_I2CERR 0x80 |
// FC_StatusFlags 0.88 |
#define FC_STATUS_MOTOR_RUN 0x01 |
#define FC_STATUS_FLY 0x02 |
#define FC_STATUS_CALIBRATE 0x04 |
#define FC_STATUS_START 0x08 |
#define FC_STATUS_EMERGENCY_LANDING 0x10 |
#define FC_STATUS_LOWBAT 0x20 |
#define FC_STATUS_VARIO_TRIM_UP 0x40 |
#define FC_STATUS_VARIO_TRIM_DOWN 0x80 |
// FC_StatusFlags2 |
#define FC_STATUS2_CAREFREE 0x01 |
#define FC_STATUS2_ALTITUDE_CONTROL 0x02 |
#define FC_STATUS2_RC_FAILSAVE_ACTIVE 0x04 |
#define FC_STATUS2_OUT1_ACTIVE 0x08 |
#define FC_STATUS2_OUT2_ACTIVE 0x10 |
// NaviCtrl Flags |
// taken from |
// http://mikrocontroller.cco-ev.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.15c%2Fuart1.h |
// |
#define NC_FLAG_FREE 0x01 |
#define NC_FLAG_PH 0x02 |
#define NC_FLAG_CH 0x04 |
#define NC_FLAG_RANGE_LIMIT 0x08 |
#define NC_FLAG_NOSERIALLINK 0x10 |
#define NC_FLAG_TARGET_REACHED 0x20 |
#define NC_FLAG_MANUAL_CONTROL 0x40 |
#define NC_FLAG_GPS_OK 0x80 |
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; |
// FC Debug Struct |
// portions taken and adapted from |
// http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.h |
// |
typedef struct // 0.86 |
{ |
uint8_t Digital[2]; |
// NC: unsigned; FC: signed !!!! |
int16_t Analog[32]; // Debugvalues |
} __attribute__((packed)) DebugData_t; |
//****************************************************************** |
// uart1.h NC 0.87, zur Zeit hier nicht verwendet 28.01.2012 CB |
#define AMPEL_FC 0x01 |
#define AMPEL_BL 0x02 |
#define AMPEL_NC 0x04 |
#define AMPEL_COMPASS 0x08 |
typedef struct //0.87 |
{ |
u8 StatusGreen; |
u8 StatusRed; |
u16 Analog[32]; // Debugwerte |
} __attribute__((packed)) DebugOut_t; |
//****************************************************************** |
// NaviCtrl OSD Structs |
// portions taken and adapted from |
// http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.15c%2Fuart1.h |
// |
typedef struct //NC uart1.h |
{ |
s16 AngleNick; // in 0.1 deg |
s16 AngleRoll; // in 0.1 deg |
s16 Heading; // in 0.1 deg |
u8 StickNick; |
u8 StickRoll; |
u8 StickYaw; |
u8 StickGas; |
u8 reserve[4]; |
} __attribute__((packed)) Data3D_t; |
typedef struct |
{ |
s32 Longitude; // in 1E-7 deg |
s32 Latitude; // in 1E-7 deg |
s32 Altitude; // in mm |
u8 Status; // validity of data |
} __attribute__((packed)) GPS_Pos_t; |
typedef struct |
{ |
u16 Distance; // distance to target in cm |
s16 Bearing; // course to target in deg |
} __attribute__((packed)) GPS_PosDev_t; |
// aus NC waypoint.h |
typedef struct |
{ |
GPS_Pos_t Position; // the gps position of the waypoint, see ubx.h for details |
s16 Heading; // orientation, 0 no action, 1...360 fix heading, neg. = Index to POI in WP List |
u8 ToleranceRadius; // in meters, if the MK is within that range around the target, then the next target is triggered |
u8 HoldTime; // in seconds, if the was once in the tolerance area around a WP, this time defines the delay before the next WP is triggered |
u8 Event_Flag; // future implementation |
u8 Index; // to indentify different waypoints, workaround for bad communications PC <-> NC |
u8 Type; // typeof Waypoint |
u8 WP_EventChannelValue; // |
u8 AltitudeRate; // rate to change the setpoint |
u8 Speed; // rate to change the Position |
u8 CamAngle; // Camera servo angle |
u8 reserve[6]; // reserve |
} __attribute__((packed)) Point_t; |
// NaviCtrl struct |
// taken from |
// http://mikrocontroller.cco-ev.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.15c%2Fuart1.h |
// |
#define NAVIDATA_VERSION 5 |
typedef struct |
{ |
u8 Version; // version of the data structure |
GPS_Pos_t CurrentPosition; // see ubx.h for details |
GPS_Pos_t TargetPosition; |
GPS_PosDev_t TargetPositionDeviation; |
GPS_Pos_t HomePosition; |
GPS_PosDev_t HomePositionDeviation; |
u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1 |
u8 WaypointNumber; // number of stored waypoints |
u8 SatsInUse; // number of satellites used for position solution |
s16 Altimeter; // hight according to air pressure |
s16 Variometer; // climb(+) and sink(-) rate |
u16 FlyingTime; // in seconds |
u8 UBat; // Battery Voltage in 0.1 Volts |
u16 GroundSpeed; // speed over ground in cm/s (2D) |
s16 Heading; // current flight direction in ° as angle to north |
s16 CompassHeading; // current compass value in |
s8 AngleNick; // current Nick angle in 1 |
s8 AngleRoll; // current Roll angle in 1 |
u8 RC_Quality; // RC_Quality |
u8 FCStatusFlags; // Flags from FC |
u8 NCFlags; // Flags from NC |
u8 Errorcode; // 0 --> okay |
u8 OperatingRadius; // current operation radius around the Home Position in m |
s16 TopSpeed; // velocity in vertical direction in cm/s |
u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached |
u8 FCStatusFlags2; // StatusFlags2 (since version 5 added) |
s16 SetpointAltitude; // setpoint for altitude |
u8 Gas; // for future use |
u16 Current; // actual current in 0.1A steps |
u16 UsedCapacity; // used capacity in mAh |
} __attribute__((packed)) NaviData_t; |
typedef struct |
{ |
uint8_t Version; // the version of the BL (0 = old) |
uint8_t SetPoint; // written by attitude controller |
uint8_t SetPointLowerBits; // for higher Resolution of new BLs |
uint8_t State; // 7 bit for I2C error counter, highest bit indicates if motor is present |
uint8_t ReadMode; // select data to read |
// the following bytes must be exactly in that order! |
uint8_t Current; // in 0.1 A steps, read back from BL |
uint8_t MaxPWM; // read back from BL -> is less than 255 if BL is in current limit, not running (250) or starting (40) |
int8_t Temperature; // old BL-Ctrl will return a 255 here, the new version the temp. in �C |
} __attribute__((packed)) MotorData_t; |
typedef struct |
{ |
uint8_t Revision; // must be BL_REVISION |
uint8_t SetMask; // settings mask |
uint8_t PwmScaling; // maximum value of control pwm, acts like a thrust limit |
uint8_t CurrentLimit; // current limit in A |
uint8_t TempLimit; // in �C |
uint8_t CurrentScaling; // scaling factor for current measurement |
uint8_t BitConfig; // see defines above |
uint8_t crc; // checksum |
} __attribute__((packed)) BLConfig_t; |
// Aus FC eeprom.h |
// |
typedef struct |
{ |
unsigned char Revision; |
unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3 |
unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv |
unsigned char Hoehe_MinGas; // Wert : 0-100 |
unsigned char Luftdruck_D; // Wert : 0-250 |
unsigned char MaxHoehe; // Wert : 0-32 |
unsigned char Hoehe_P; // Wert : 0-32 |
unsigned char Hoehe_Verstaerkung; // Wert : 0-50 |
unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250 |
unsigned char Hoehe_HoverBand; // Wert : 0-250 |
unsigned char Hoehe_GPS_Z; // Wert : 0-250 |
unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250 |
unsigned char Stick_P; // Wert : 1-6 |
unsigned char Stick_D; // Wert : 0-64 |
unsigned char StickGier_P; // Wert : 1-20 |
unsigned char Gas_Min; // Wert : 0-32 |
unsigned char Gas_Max; // Wert : 33-250 |
unsigned char GyroAccFaktor; // Wert : 1-64 |
unsigned char KompassWirkung; // Wert : 0-32 |
unsigned char Gyro_P; // Wert : 10-250 |
unsigned char Gyro_I; // Wert : 0-250 |
unsigned char Gyro_D; // Wert : 0-250 |
unsigned char Gyro_Gier_P; // Wert : 10-250 |
unsigned char Gyro_Gier_I; // Wert : 0-250 |
unsigned char Gyro_Stability; // Wert : 0-16 |
unsigned char UnterspannungsWarnung; // Wert : 0-250 |
unsigned char NotGas; // Wert : 0-250 //Gaswert bei EmpÀngsverlust |
unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen |
unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D |
unsigned char I_Faktor; // Wert : 0-250 |
unsigned char UserParam1; // Wert : 0-250 |
unsigned char UserParam2; // Wert : 0-250 |
unsigned char UserParam3; // Wert : 0-250 |
unsigned char UserParam4; // Wert : 0-250 |
unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos |
unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo |
unsigned char ServoNickMin; // Wert : 0-250 // Anschlag |
unsigned char ServoNickMax; // Wert : 0-250 // Anschlag |
//--- Seit V0.75 |
unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos |
unsigned char ServoRollComp; // Wert : 0-250 |
unsigned char ServoRollMin; // Wert : 0-250 |
unsigned char ServoRollMax; // Wert : 0-250 |
//--- |
unsigned char ServoNickRefresh; // Speed of the Servo |
unsigned char ServoManualControlSpeed;// |
unsigned char CamOrientation; // |
unsigned char Servo3; // Value or mapping of the Servo Output |
unsigned char Servo4; // Value or mapping of the Servo Output |
unsigned char Servo5; // Value or mapping of the Servo Output |
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas wÀhrend Looping |
unsigned char LoopThreshold; // Wert: 0-250 Schwelle fÃŒr Stickausschlag |
unsigned char LoopHysterese; // Wert: 0-250 Hysterese fÃŒr Stickausschlag |
unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung) |
unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden |
unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt |
unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt |
unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung) |
unsigned char Driftkomp; |
unsigned char DynamicStability; |
unsigned char UserParam5; // Wert : 0-250 |
unsigned char UserParam6; // Wert : 0-250 |
unsigned char UserParam7; // Wert : 0-250 |
unsigned char UserParam8; // Wert : 0-250 |
//---Output --------------------------------------------- |
unsigned char J16Bitmask; // for the J16 Output |
unsigned char J16Timing; // for the J16 Output |
unsigned char J17Bitmask; // for the J17 Output |
unsigned char J17Timing; // for the J17 Output |
// seit version V0.75c |
unsigned char WARN_J16_Bitmask; // for the J16 Output |
unsigned char WARN_J17_Bitmask; // for the J17 Output |
//---NaviCtrl--------------------------------------------- |
#ifdef MKVERSION090b |
unsigned char NaviOut1Parameter; // for the J16 Output |
#endif |
unsigned char NaviGpsModeControl; // Parameters for the Naviboard |
unsigned char NaviGpsGain; |
unsigned char NaviGpsP; |
unsigned char NaviGpsI; |
unsigned char NaviGpsD; |
unsigned char NaviGpsPLimit; |
unsigned char NaviGpsILimit; |
unsigned char NaviGpsDLimit; |
unsigned char NaviGpsACC; |
unsigned char NaviGpsMinSat; |
unsigned char NaviStickThreshold; |
unsigned char NaviWindCorrection; |
unsigned char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation |
unsigned char NaviOperatingRadius; |
unsigned char NaviAngleLimitation; |
unsigned char NaviPH_LoginTime; |
//---Ext.Ctrl--------------------------------------------- |
unsigned char ExternalControl; // for serial Control |
//---CareFree--------------------------------------------- |
unsigned char OrientationAngle; // Where is the front-direction? |
unsigned char CareFreeModeControl; // switch for CareFree |
unsigned char MotorSafetySwitch; |
unsigned char MotorSmooth; |
unsigned char ComingHomeAltitude; |
unsigned char FailSafeTime; |
unsigned char MaxAltitude; |
unsigned char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost" |
unsigned char ServoFilterNick; |
unsigned char ServoFilterRoll; |
//------------------------------------------------ |
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt |
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll 0x04 = relative moving // WICHTIG!!! am Ende lassen |
unsigned char ExtraConfig; // bitcodiert |
unsigned char GlobalConfig3; // bitcodiert |
char Name[12]; |
unsigned char crc; // must be the last byte! // MUST BE THE LAST BYTE! |
} __attribute__((packed)) mk_param_struct_t; |
#endif |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/parameter.c |
---|
0,0 → 1,1449 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#include "cpu.h" |
#include <avr/io.h> |
#include <avr/pgmspace.h> |
#include <util/delay.h> |
#include <string.h> |
#include <stdlib.h> |
#include <stdbool.h> |
#include "lcd/lcd.h" |
#include "timer/timer.h" |
#include "uart/usart.h" |
#include "mk-data-structs.h" |
#include "parameter.h" |
#include "menu.h" |
#include "eeprom/eeprom.h" |
#include "parameter_names.h" |
#include "messages.h" |
#include "menu.h" |
#define TIMEOUT 500 // 5 sec |
uint8_t display_settings_menu (void); |
uint8_t display_param_menu (uint8_t); |
uint8_t load_setting (uint8_t); |
uint8_t write_setting (uint8_t); |
uint8_t display_section_menu(void); |
void edit_param(uint8_t); |
void copy_setting(void); |
mk_param_struct_t *mk_param_struct; |
//uint8_t ii; |
//volatile uint8_t offset = 0; |
//volatile uint8_t dmode = 0; |
//volatile uint8_t target_pos = 1; |
volatile uint8_t offset2 = 0; |
volatile uint8_t pmode = 0; |
volatile uint8_t target_pos2 = 1; |
volatile uint8_t setting = 0; |
uint8_t changes = 0; |
#define OFFSETOF(type, field) ((unsigned int) &(((type *) 0)->field)) |
#define MKOSO(field) (uint8_t)OFFSETOF(mk_param_struct_t, field) |
//-------------------------------------------------------------- |
// Typ == (0 ohne Poti, 1 mit Poti, 2 bitfield, 3 serCh, 4 LEDmask, 5 Angle, 6 Empfaenger), |
// ||| |
// Group, Typ, Min, Max, Struct-Name(Value), Default1, Default2, Default3+4+5, |
// 0 1 2 3 4 5 6 7 |
// | | | | | | | | |
// | | | / | | | / |
// | | | / | | | / |
// | | | / | | | / |
// | | / / | | | / |
// | | / / | | | / |
// | / / / | | / / |
// | / / / | | / / |
// | / / / | | / / |
// | / / / | | / / |
// | / / / | | / / |
// | | / / | | / / |
// | | | | | | / / |
// | | | | | | / / |
// | | | | | | | / |
// | | | | | | | / |
// | | | | | | | | |
// | | | | | | | | |
// 0,0,1,12, MKOSO(Kanalbelegung)+2 , 1,1,1, // gas |
prog_uchar param_config[8*PARAM_COUNT]= |
{ |
// group 0 (kanaele) 1-15 |
0,0,1,12, MKOSO(Kanalbelegung)+2 , 1,1,1, // gas |
0,0,1,12, MKOSO(Kanalbelegung)+3 , 4,4,4, // gier |
0,0,1,12, MKOSO(Kanalbelegung)+0 , 3,3,3, // nick |
0,0,1,12, MKOSO(Kanalbelegung)+1 , 2,2,2, // roll |
0,3,1,25, MKOSO(Kanalbelegung)+4 , 5,5,5, // poti1 |
0,3,1,25, MKOSO(Kanalbelegung)+5 , 6,6,6, // poti2 |
0,3,1,25, MKOSO(Kanalbelegung)+6 , 7,7,7, // poti3 |
0,3,1,25, MKOSO(Kanalbelegung)+7 , 8,8,8, // poti4 |
0,3,1,25, MKOSO(Kanalbelegung)+8 , 9,9,9, // poti5 |
0,3,1,25, MKOSO(Kanalbelegung)+9 , 10,10,10, // poti6 |
0,3,1,25, MKOSO(Kanalbelegung)+10, 11,11,11, // poti7 |
0,3,1,25, MKOSO(Kanalbelegung)+11, 12,12,12, // poti8 |
0,0,0,12, MKOSO(MotorSafetySwitch), 0,0,0, // Motor Sicherungsswitch |
0,2,0,CFG3_MOTOR_SWITCH_MODE , MKOSO(GlobalConfig3), 0,0,0, // kein Start ohne GPS Fix |
0,2,0,CFG_SENSITIVE_RC, MKOSO(ExtraConfig), 0,0,0, // erweiterte signal pruefung |
0,6,0,6, MKOSO(Receiver), 1,1,1, |
#ifdef MKVERSION090b |
0,2,0,CFG3_SPEAK_ALL , MKOSO(GlobalConfig3), 0,0,0, // Telemetry Speak all Events |
#endif |
// group 1 (main) 16-23 |
1,2,0,CFG_HOEHENREGELUNG, MKOSO(GlobalConfig), 0,0,0, // hoehenregler |
1,2,0,CFG_GPS_AKTIV, MKOSO(GlobalConfig), 1,1,1, // gps |
1,2,0,CFG_KOMPASS_AKTIV, MKOSO(GlobalConfig), 1,1,1, // kompass |
1,2,0,CFG_KOMPASS_FIX, MKOSO(GlobalConfig), 0,0,0, // feste ausrichtung |
1,2,0,CFG_SENSITIVE_RC, MKOSO(ExtraConfig), 0,0,0, // erweiterte signal pruefung |
1,2,0,CFG_ACHSENKOPPLUNG_AKTIV, MKOSO(GlobalConfig), 1,1,1, // achsentkopplung |
1,2,0,CFG_DREHRATEN_BEGRENZER, MKOSO(GlobalConfig), 0,0,0, // drehratenbregrenzung |
1,2,0,CFG_HEADING_HOLD, MKOSO(GlobalConfig), 0,0,0, // heading hold |
// group 2 (stick) 24-27 |
2,0,0,20, MKOSO(Stick_P), 10,8,6, |
2,0,0,20, MKOSO(Stick_D), 16,16,10, |
2,1,0,255, MKOSO(StickGier_P), 6,6,4, |
2,1,0,255, MKOSO(ExternalControl), 0,0,0, |
// group3 : looping 28-36 |
3,2,0,CFG_LOOP_OBEN, MKOSO(BitConfig), 0,0,0, // oben |
3,2,0,CFG_LOOP_UNTEN, MKOSO(BitConfig), 0,0,0, // unten |
3,2,0,CFG_LOOP_LINKS, MKOSO(BitConfig), 0,0,0, // links |
3,2,0,CFG_LOOP_RECHTS, MKOSO(BitConfig), 0,0,0, // rechts |
3,1,0,255, MKOSO(LoopGasLimit), 50,50,50, |
3,0,0,247, MKOSO(LoopThreshold), 90,90,90, |
3,0,0,247, MKOSO(LoopHysterese), 50,50,50, |
3,0,0,247, MKOSO(WinkelUmschlagNick), 78,78,78, |
3,0,0,247, MKOSO(WinkelUmschlagRoll), 78,78,78, |
// group 4 (hoehe) 37-50 |
4,2,0,CFG_HOEHENREGELUNG, MKOSO(GlobalConfig), 0,0,0, // hoehenrelger |
4,2,0,CFG2_HEIGHT_LIMIT, MKOSO(ExtraConfig), 0,0,0, // vario oder hoeenbergenzung |
4,2,0,CFG_HOEHEN_SCHALTER, MKOSO(GlobalConfig), 1,1,1, // hoehenschalter |
4,2,0,CFG2_VARIO_BEEP, MKOSO(ExtraConfig), 1,1,1, // variobeep |
4,1,0,255, MKOSO(MaxHoehe), 255,255,255, |
4,0,0,247, MKOSO(Hoehe_MinGas), 30,30,30, |
4,1,0,255, MKOSO(Hoehe_P), 15,15,15, |
4,1,0,255, MKOSO(Luftdruck_D), 30,30,30, |
4,1,0,255, MKOSO(Hoehe_ACC_Wirkung), 0,0,0, |
4,1,0,255, MKOSO(MaxAltitude), 150,150,150, |
4,0,0,247, MKOSO(Hoehe_Verstaerkung), 15,15,15, |
4,0,0,247, MKOSO(Hoehe_HoverBand), 8,8,8, |
4,1,0,255, MKOSO(Hoehe_GPS_Z), 64,64,64, |
4,0,0,160, MKOSO(Hoehe_StickNeutralPoint), 0,0,0, |
// group 5 : kamera 51-68 |
5,1,0,255, MKOSO(ServoNickControl), 128,128,128, |
5,0,0,247, MKOSO(ServoNickComp), 50,50,50, |
5,2,0,SVNick, MKOSO(ServoCompInvert), 0,0,0, // nick |
#ifdef MKVERSION090b |
5,2,0,SVRelMov, MKOSO(ServoCompInvert), 0,0,0, // nick Servo relative |
#endif |
5,0,0,247, MKOSO(ServoNickMin), 15,15,15, |
5,0,0,247, MKOSO(ServoNickMax), 230,230,230, |
5,0,0,25, MKOSO(ServoFilterNick), 0,0,0, //FC0.87 |
5,1,0,255, MKOSO(ServoRollControl), 128,128,128, |
5,0,0,247, MKOSO(ServoRollComp), 85,85,85, |
5,2,0,SVRoll, MKOSO(ServoCompInvert), 0,0,0, // roll |
5,0,0,247, MKOSO(ServoRollMin), 70,70,70, |
5,0,0,247, MKOSO(ServoRollMax), 220,220,220, |
5,0,0,25, MKOSO(ServoFilterRoll), 0,0,0, //FC0.87 |
5,0,2,8, MKOSO(ServoNickRefresh), 4,4,4, |
5,0,0,247, MKOSO(ServoManualControlSpeed), 60,60,60, |
5,5,0,247, MKOSO(CamOrientation), 0,0,0, |
5,1,0,255, MKOSO(Servo3), 125,125,125, |
5,1,0,255, MKOSO(Servo4), 125,125,125, |
5,1,0,255, MKOSO(Servo5), 125,125,125, |
// group 6 : navictrl 67-85 |
6,2,0,0x20, MKOSO(GlobalConfig), 1,1,1, // gps |
6,1,0,255, MKOSO(NaviGpsModeControl), 254,254,254, |
6,1,0,255, MKOSO(NaviGpsGain), 100,100,100, |
6,0,0,247, MKOSO(NaviStickThreshold), 8,8,8, |
6,0,0,247, MKOSO(NaviGpsMinSat), 6,6,6, |
6,1,0,255, MKOSO(NaviGpsP), 90,90,90, |
6,1,0,255, MKOSO(NaviGpsI), 90,90,90, |
6,1,0,255, MKOSO(NaviGpsD), 90,90,90, |
6,1,0,255, MKOSO(NaviGpsPLimit), 75,75,75, |
6,1,0,255, MKOSO(NaviGpsILimit), 85,85,85, |
6,1,0,255, MKOSO(NaviGpsDLimit), 75,75,75, |
6,1,0,255, MKOSO(NaviGpsACC), 0,0,0, |
6,1,0,255, MKOSO(NaviWindCorrection), 90,90,90, |
6,1,0,255, MKOSO(NaviAccCompensation), 42,42,42, |
6,1,0,255, MKOSO(NaviOperatingRadius), 245,245,245, |
6,1,0,255, MKOSO(NaviAngleLimitation), 140,140,140, |
6,0,0,247, MKOSO(NaviPH_LoginTime), 5,5,5, |
6,2,0,CFG_GPS_AID, MKOSO(ExtraConfig), 0,0,0, // FC0.87dynamic ph |
6,2,0,CFG3_DPH_MAX_RADIUS , MKOSO(GlobalConfig3), 0,0,0, // FC0.87 |
6,0,0,247, MKOSO(ComingHomeAltitude), 0,0,0, |
// group 7 : ausgaenge 86-95 |
7,4,0,255, MKOSO(J16Bitmask), 95,95,95, |
7,1,0,255, MKOSO(J16Timing), 20,20,20, |
7,2,0,CFG_MOTOR_OFF_LED1, MKOSO(BitConfig), 0,0,0, // Motor_Off_Led1 |
7,2,0,CFG_MOTOR_BLINK1, MKOSO(BitConfig), 1,1,1, // Motor_Blink1 |
#ifdef MKVERSION090b |
7,2,0,CFG3_USE_NC_FOR_OUT1, MKOSO(GlobalConfig3), 0,0,0, // combine with WP-WEvent |
7,1,0,255, MKOSO(NaviOut1Parameter), 0,0,0, |
#endif |
7,4,0,255, MKOSO(J17Bitmask), 243,243,243, |
7,1,0,255, MKOSO(J17Timing), 20,20,20, |
7,2,0,CFG_MOTOR_OFF_LED2, MKOSO(BitConfig), 0,0,0, // Motor_Off_Led2 |
7,2,0,CFG_MOTOR_BLINK2, MKOSO(BitConfig), 1,1,1, // Motor_Blink2 |
7,4,0,255, MKOSO(WARN_J16_Bitmask), 170,170,170, |
7,4,0,255, MKOSO(WARN_J17_Bitmask), 170,170,170, |
// group 8 : versch. 96-107 |
8,0,0,247, MKOSO(Gas_Min), 8,8,8, |
8,0,0,247, MKOSO(Gas_Max), 230,230,230, |
8,1,0,255, MKOSO(KompassWirkung), 64,64,64, |
8,1,0,255, MKOSO(CareFreeModeControl), 0,0,0, // Carefree |
8,2,0,CFG_LEARNABLE_CAREFREE, MKOSO(ExtraConfig), 0,0,0, // teachable Carefree |
8,0,0,247, MKOSO(UnterspannungsWarnung), 33,33,33, |
8,2,0,CFG_3_3V_REFERENCE, MKOSO(ExtraConfig), 0,0,0, // Voltage referenz |
8,0,0,247, MKOSO(NotGasZeit), 90,90,90, |
8,0,0,247, MKOSO(NotGas), 45,45,45, |
8,0,0,247, MKOSO(FailSafeTime), 0,0,0, // Failsavetime |
8,0,0,12, MKOSO(FailsafeChannel), 0,0,0, // FC0.87 Failsave Channel |
8,2,0,CFG_NO_RCOFF_BEEPING, MKOSO(ExtraConfig), 0,0,0, // Kein Summer ohne Sender beim Start |
8,2,0,CFG3_VARIO_FAILSAFE, MKOSO(GlobalConfig3), 0,0,0, //use vario Control for failsafe altitude |
8,2,0,CFG_IGNORE_MAG_ERR_AT_STARTUP, MKOSO(ExtraConfig), 0,0,0, // Ignore Compass Error |
8,2,0,CFG3_NO_SDCARD_NO_START , MKOSO(GlobalConfig3), 0,0,0, // nicht starten ohne SD Karte |
8,2,0,CFG3_NO_GPSFIX_NO_START , MKOSO(GlobalConfig3), 0,0,0, // kein Start ohne GPS Fix |
// group 9 : gyro 108-120 |
9,1,0,255, MKOSO(Gyro_P), 90,100,100, |
9,1,0,255, MKOSO(Gyro_I), 120,120,120, |
9,1,0,255, MKOSO(Gyro_D), 10,10,10, |
9,1,0,255, MKOSO(Gyro_Gier_P), 90,100,100, |
9,1,0,255, MKOSO(Gyro_Gier_I), 120,120,120, |
9,1,0,255, MKOSO(DynamicStability), 70,70,70, |
9,2,0,CFG_DREHRATEN_BEGRENZER, MKOSO(GlobalConfig), 0,0,0, // drehratenbregrenzung |
9,0,0,247, MKOSO(GyroAccFaktor), 27,27,27, |
9,0,0,247, MKOSO(GyroAccAbgleich), 32,32,32, |
9,1,0,255, MKOSO(I_Faktor), 16,16,16, |
9,0,0,247, MKOSO(Driftkomp), 0,0,0, |
9,0,0,16, MKOSO(Gyro_Stability), 6,6,6, |
9,0,0,247, MKOSO(MotorSmooth), 0,0,0, |
// group 10: benutzer 121-128 |
10,1,0,255, MKOSO(UserParam1), 0,0,0, |
10,1,0,255, MKOSO(UserParam2), 0,0,0, |
10,1,0,255, MKOSO(UserParam3), 0,0,0, |
10,1,0,255, MKOSO(UserParam4), 0,0,0, |
10,1,0,255, MKOSO(UserParam5), 0,0,0, |
10,1,0,255, MKOSO(UserParam6), 0,0,0, |
10,1,0,255, MKOSO(UserParam7), 0,0,0, |
10,1,0,255, MKOSO(UserParam8), 0,0,0, |
// group 11: achskoppl 129-132 |
11,2,0,CFG_ACHSENKOPPLUNG_AKTIV, MKOSO(GlobalConfig), 0,0,0, // achsentkopplung |
11,1,0,255, MKOSO(AchsKopplung1), 90,90,90, |
11,1,0,255, MKOSO(AchsKopplung2), 55,55,55, |
11,1,0,255, MKOSO(CouplingYawCorrection), 70,70,70, |
// group 12: mixer 133 |
12,5,0,23,MKOSO(OrientationAngle), 0,0,0, |
// group 13 (easy-setup) 134-144 |
13,2,0,0x01, MKOSO(GlobalConfig), 0,0,0, // hoehenrelger |
13,1,0,255, MKOSO(MaxHoehe), 255,255,255, |
13,0,0,160, MKOSO(Hoehe_StickNeutralPoint), 0,0,0, |
13,2,0,0x20, MKOSO(GlobalConfig), 1,1,1, // gps |
13,1,0,255, MKOSO(NaviGpsModeControl), 254,254,254, |
13,2,0,0x20, MKOSO(ExtraConfig), 0,0,0, // dynamic ph |
13,0,0,247, MKOSO(ComingHomeAltitude), 0,0,0, |
13,1,0,255, MKOSO(CareFreeModeControl), 0,0,0, // Carefree |
13,2,0,0x40, MKOSO(ExtraConfig), 0,0,0, // teachable Carefree |
13,0,0,12, MKOSO(MotorSafetySwitch), 0,0,0, // Motor Sicherungsswitch |
13,5,0,23, MKOSO(OrientationAngle), 0,0,0, |
}; |
//-------------------------------------------------------------- |
#define ITEMS_RX 9 |
prog_char param_items_rx[ITEMS_RX][17]= // zeilen,zeichen+1 |
{ |
"PPM ", |
"Spektrum ", |
"Spektrum HiRes ", |
"Spektrum LoRes ", |
"Jeti ", |
"ACT DSL ", |
"HOTT ", |
"Futuba SBUS ", |
"User ", |
}; |
//-------------------------------------------------------------- |
void edit_parameter(void) |
{ |
SwitchToFC(); |
// uint8_t setting; |
setting = display_settings_menu(); |
if(setting == 255) |
return; |
if(setting == 6) |
{ |
copy_setting(); |
return; |
} |
lcd_cls(); |
// lcd_printp_at (0, 0, PSTR(" Setting x "), 2); |
lcd_puts_at(0, 0, strGet(PARA_SETTINGS), 2); |
lcd_putc (15, 0, (setting + 48), 2); // ASCII ab 48 (hex 30) beginnt 0 - 9 |
// lcd_printp_at (3, 2, PSTR("ändern"), 0); |
// lcd_printp_at (3, 3, PSTR("aktivieren"), 0); |
lcd_puts_at(3, 2, strGet(PARA_CHANGE), 0); |
lcd_puts_at(3, 3, strGet(PARA_AKTIVI), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
uint8_t val = menu_choose2 (2, 3, 2, 0, 0); |
if (val == 255) |
return; |
if(val == 3) |
{ |
load_setting(setting); |
uint8_t setting_written = write_setting(setting); |
if(setting_written == setting) |
{ |
lcd_cls_line (0,2,21); |
lcd_cls_line (0,3,21); |
// lcd_printp_at (11, 0, PSTR("aktiviert"), 0); |
lcd_puts_at(5, 2, strGet(PARA_AKTIV), 0); |
} |
else |
{ |
lcd_cls_line (0,2,21); |
lcd_cls_line (0,3,21); |
// lcd_printp_at (0, 4, PSTR("Error"), 0); |
lcd_puts_at(0, 4, strGet(FEHLER), 0); |
} |
_delay_ms(2000); |
return; |
} |
if(setting == 255) |
return; |
uint8_t setting_loaded = load_setting(setting); |
if(setting_loaded == 255) |
return; |
offset = 0; |
dmode = 0; |
target_pos = 1; |
changes =0; |
uint8_t group =0; |
do |
{ |
group = display_section_menu(); |
if(group != 255) |
{ |
offset2 = 0; |
pmode = 0; |
target_pos2 = 1; |
uint8_t param; |
do |
{ |
param = display_param_menu(group); |
if(param != 255) |
{ |
edit_param(param); |
} |
} |
while(param != 255); |
} |
} |
while(group != 255); |
if(changes == 1) |
{ |
lcd_cls(); |
// lcd_printp_at (0, 0, PSTR(" Setting x speichern?"), 2); |
lcd_puts_at(0, 0, strGet(PARA_SAVESETT), 2); |
lcd_putc (9, 0, (setting + 48), 2); // ASCII ab 48 (hex 30) beginnt 0 - 9 |
write_ndigit_number_u(9, 0, setting, 1, 0,0); |
// lcd_printp_at (3, 2, PSTR("Ja"), 0); |
// lcd_printp_at (3, 3, PSTR("Nein"), 0); |
lcd_puts_at(3, 2, strGet(YES), 0); |
lcd_puts_at(3, 3, strGet(NOO), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
uint8_t val = menu_choose2 (2, 3, 2, 0, 0); |
if(val == 2) |
{ |
uint8_t setting_written = write_setting(setting); |
if(setting_written == setting) |
{ |
// lcd_printp_at (3, 4, PSTR("Gespeichert und"), 0); |
lcd_puts_at(3, 4, strGet(PARA_SETTSAVED), 0); |
// lcd_printp_at (3, 5, PSTR("Aktiviert"), 0); |
lcd_puts_at(3, 5, strGet(PARA_AKTIV), 0); |
} |
else |
{ |
// lcd_printp_at (0, 4, PSTR("Error"), 0); |
lcd_puts_at(0, 4, strGet(FEHLER), 0); |
} |
timer = 100; |
while (timer > 0); |
} |
} |
} |
//-------------------------------------------------------------- |
void copy_setting(void) |
{ |
uint8_t fromsetting = 3; |
uint8_t tosetting = 5; |
lcd_cls(); |
// lcd_printp_at (0, 1, PSTR("Kopiere Setting"), 0); |
// lcd_printp_at (0, 3, PSTR("von x nach y"), 0); |
// lcd_printp_at (0, 7, PSTR("von nach Ende OK"), 0); |
lcd_puts_at(0, 1, strGet(PARA_COPY), 0); |
lcd_puts_at(0, 3, strGet(PARA_FROMTO), 0); |
lcd_puts_at(0, 7, strGet(PARA_ENDE), 0); |
do |
{ |
write_ndigit_number_u(5,3,fromsetting, 1,0,0); |
write_ndigit_number_u(14,3,tosetting, 1,0,0); |
if(get_key_press (1 << KEY_MINUS)) |
{ |
fromsetting++; |
if(fromsetting == 6) fromsetting = 1; |
} |
if(get_key_press (1 << KEY_PLUS)) |
{ |
tosetting++; |
if(tosetting == 6) tosetting = 1; |
} |
if(get_key_press (1 << KEY_ENTER)) |
{ |
lcd_printp_at (0, 5, PSTR("Wirklich Kopieren?"), 0); |
lcd_puts_at(0, 5, strGet(PARA_COPYQ), 0); |
// lcd_printp_at (0, 7, PSTR(" Ende OK"), 0); |
lcd_puts_at(12, 7, strGet(KEYLINE4), 0); |
do |
{ |
if(get_key_press (1 << KEY_ENTER)) |
{ |
uint8_t loaded = load_setting(fromsetting); |
if(loaded == fromsetting) |
{ |
uint8_t written = write_setting(tosetting); |
if(written == tosetting) |
{ |
lcd_printp_at (0, 5, PSTR("Kopiert und Aktiviert"), 0); |
lcd_puts_at(0, 5, strGet(PARA_COPYACTIV), 0); |
} |
else |
{ |
// lcd_printp_at (0, 5, PSTR("Fehler"), 0); |
lcd_puts_at(0, 5, strGet(FEHLER), 0); |
lcd_cls_line (6, 5, 14); |
} |
} |
else |
{ |
// lcd_printp_at (0, 5, PSTR("Fehler"), 0); |
lcd_puts_at(0, 5, strGet(FEHLER), 0); |
lcd_cls_line (6, 5, 14); |
} |
timer = 100; |
while (timer > 0); |
return; |
} |
} |
while (!get_key_press (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
lcd_cls_line (0, 5, 21); |
// lcd_printp_at (0, 7, PSTR("von nach Ende OK"), 0); |
lcd_puts_at(0, 7, strGet(PARA_ENDE), 0); |
} |
} |
while (!get_key_press (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//-------------------------------------------------------------- |
void edit_param(uint8_t param) |
{ |
lcd_cls(); |
uint8_t type = pgm_read_byte(param_config+(8*param)+1); |
// lcd_printp_at (0, 0, PSTR(" Ändere Setting: "), 2); |
lcd_puts_at(0, 0, strGet(PARA_CHANGESETT), 2); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
if(type != 6) |
lcd_printp_at(0,2,param_names[param][Config.DisplayLanguage], 0); |
//------------------------------------------------------- |
if(type == 0) // ohne poti |
{ |
lcd_printp_at (4, 4, PSTR("( - ) (d: )"), 0); |
lcd_printp_at (12, 6, PSTR("Std."), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_2), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE2), 0); |
uint8_t min = pgm_read_byte(param_config+(8*param)+2); |
uint8_t max = pgm_read_byte(param_config+(8*param)+3); |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
uint8_t defaultvalue = pgm_read_byte(param_config+(8*param)+4 + setting ); // 5 - 7 |
uint8_t newvalue = value; |
write_ndigit_number_u (5, 4, min, 3, 0,0); |
write_ndigit_number_u (9, 4, max, 3, 0,0); |
write_ndigit_number_u (17, 4, defaultvalue, 3, 0,0); |
do |
{ |
write_ndigit_number_u (0, 4, newvalue, 3, 0,0); |
lcd_frect ((8*0), (8*5), (newvalue * (16*8) / max), 6, 1); |
if(max >= 50) |
{ |
if(get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 3)) |
{ |
if((newvalue+1) <= max) |
newvalue++; |
} |
if(get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 3)) |
{ |
if((newvalue-1) >= min) |
{ |
lcd_frect (((newvalue - 1) * (16*8) / max), (8*5), (16*8), 6, 0); |
// lcd_frect ((newvalue * (16*8) / max), (8*5), ((16*8) / max), 6, 0); |
newvalue--; |
} |
} |
} |
else |
{ |
if(get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 2)) |
{ |
if((newvalue+1) <= max) |
newvalue++; |
} |
if(get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 2)) |
{ |
if((newvalue-1) >= min) |
{ |
lcd_frect (((newvalue - 1) * (16*8) / max), (8*5), (16*8), 6, 0); |
// lcd_frect ((newvalue * (16*8) / max), (8*5), ((16*8) / max), 6, 0); |
newvalue--; |
} |
} |
} |
if(get_key_long (1 << KEY_ESC)) |
{ |
lcd_frect ((8*0), (8*5), (16*8), 6, 0); |
newvalue = defaultvalue; |
} |
if(get_key_short (1 << KEY_ENTER)) |
{ |
if(newvalue != value) |
{ |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes=1; |
} |
break; |
} |
} |
while (!get_key_short (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//------------------------------------------------------- |
if(type == 1) // mit poti |
{ |
lcd_printp_at (4, 4, PSTR("(0-247-P8)(d:Po )"), 0); |
lcd_printp_at (12, 6, PSTR("Std."), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_2), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE2), 0); |
uint8_t min = pgm_read_byte(param_config+(8*param)+2); |
uint8_t max = pgm_read_byte(param_config+(8*param)+3); |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
uint8_t defaultvalue = pgm_read_byte(param_config+(8*param)+4 + setting ); // 5 - 7 |
uint8_t newvalue = value; |
uint8_t mode = 0; |
if(defaultvalue > 247) |
{ |
lcd_printp_at (17, 4, PSTR("Po )"), 0); |
write_ndigit_number_u (19, 4, 256-defaultvalue, 1, 0,0); |
} |
else |
write_ndigit_number_u (17, 4, defaultvalue, 3, 0,0); |
if(value > 247) |
mode = 1; |
do |
{ |
if(newvalue > 247) |
mode = 1; |
else |
mode = 0; |
if(mode == 0) |
{ |
write_ndigit_number_u (0, 4, newvalue, 3, 0,0); |
lcd_frect ((8*0), (8*5), (newvalue * (16*8) / max), 6, 1); |
if(get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 3)) |
{ |
if((newvalue+1) <= max) |
newvalue++; |
if(newvalue > 247) |
{ |
lcd_frect ((8*0), (8*5), (16*8), 6, 0); |
newvalue = 255; |
} |
} |
if(get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 3)) |
{ |
if((newvalue-1)>=min) |
{ |
lcd_frect (((newvalue - 1) * (16*8) / max), (8*5), (16*8), 6, 0); |
// lcd_frect ((newvalue * (16*8) / max), (8*5), ((16*8) / max), 6, 0); |
newvalue--; |
} |
} |
} |
else |
{ |
lcd_printp_at (0, 4, PSTR("Po"), 0); |
write_ndigit_number_u (2, 4, 256 - newvalue, 1, 0,0); |
lcd_frect ((8*0), (8*5), ((256 - newvalue) * (16*8) / 8), 6, 1); |
if(get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 1)) |
{ |
if(newvalue - 1 > 247) |
{ |
newvalue--; |
} |
} |
if(get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 1)) |
{ |
lcd_frect (((255 - newvalue) * (16*8) / 8), (8*5), (16*8), 6, 0); |
// lcd_frect (((255 - newvalue) * (16*8) / 8), (8*5), ((16*8) / 8), 6, 0); |
newvalue++; |
if(newvalue == 0) |
{ |
lcd_frect ((8*0), (8*5), (16*8), 6, 0); // balken löschen |
newvalue = 247; |
} |
} |
} |
if(get_key_long (1 << KEY_ESC)) |
{ |
lcd_frect ((8*0), (8*5), (16*8), 6, 0); |
newvalue = defaultvalue; |
} |
if(get_key_short (1 << KEY_ENTER)) |
{ |
if(newvalue != value) |
{ |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes=1; |
} |
break; |
} |
} |
while (!get_key_short (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//------------------------------------------------------- |
if(type == 2) // ja/nein |
{ |
// lcd_printp_at (3, 4, PSTR("Ja"), 0); |
// lcd_printp_at (3, 5, PSTR("Nein"), 0); |
lcd_puts_at(3, 4, strGet(YES), 0); |
lcd_puts_at(3, 5, strGet(NOO), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
uint8_t bitmap = pgm_read_byte(param_config+(8*param)+3); |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
uint8_t defaultvalue = pgm_read_byte(param_config+(8*param)+4 + setting ); // 5 - 7 |
uint8_t newvalue = value; |
if(defaultvalue == 1) |
lcd_printp_at (8, 4, PSTR("*"), 0); |
if(defaultvalue == 0) |
lcd_printp_at (8, 5, PSTR("*"), 0); |
do |
{ |
if(newvalue & bitmap) |
{ |
lcd_printp_at (1, 4, PSTR("\x1d"), 0); |
lcd_printp_at (1, 5, PSTR(" "), 0); |
} |
else |
{ |
lcd_printp_at (1, 4, PSTR(" "), 0); |
lcd_printp_at (1, 5, PSTR("\x1d"), 0); |
} |
if((get_key_press (1 << KEY_MINUS)) && (!(newvalue & bitmap))) |
newvalue ^= bitmap; |
if((get_key_press (1 << KEY_PLUS)) && (newvalue & bitmap)) |
newvalue ^= bitmap; |
if(get_key_press (1 << KEY_ENTER)) |
{ |
if(newvalue != value) |
{ |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes=1; |
} |
break; |
} |
} |
while (!get_key_short (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//------------------------------------------------------- |
if(type == 3) // serCH |
{ |
lcd_printp_at (4, 4, PSTR("(1-S12/W) (d: )"), 0); |
lcd_printp_at (12, 6, PSTR("Std."), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_2), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE2), 0); |
uint8_t min = pgm_read_byte(param_config+(8*param)+2); |
uint8_t max = pgm_read_byte(param_config+(8*param)+3); |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
uint8_t defaultvalue = pgm_read_byte(param_config+(8*param)+4 + setting ); // 5 - 7 |
uint8_t newvalue = value; |
write_ndigit_number_u (17, 4, defaultvalue, 3, 0,0); |
do |
{ |
if (newvalue<=(max-13)) |
write_ndigit_number_u (0, 4, newvalue, 3, 0,0); |
else |
{ |
if (newvalue<=(max-1)) |
{ |
lcd_printp_at (0, 4, PSTR("S"), 0); |
write_ndigit_number_u (1, 4, (newvalue-12), 2, 0,0); |
} |
} |
if (newvalue==max) |
lcd_printp_at (0, 4, PSTR("WPE"), 0); |
lcd_frect ((8*0), (8*5), (newvalue * (16*8)) / max, 6, 1); |
if(get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 2)) |
{ |
if((newvalue+1) <= max) |
newvalue++; |
} |
if(get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 2)) |
{ |
if((newvalue-1)>=min) |
{ |
lcd_frect (((newvalue - 1) * (16*8) / max), (8*5), (16*8), 6, 0); |
newvalue--; |
} |
} |
if(get_key_long (1 << KEY_ESC)) |
{ |
lcd_frect ((8*0), (8*5), (16*8), 6, 0); |
newvalue = defaultvalue; |
} |
if(get_key_short (1 << KEY_ENTER)) |
{ |
if(newvalue != value) |
{ |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes=1; |
} |
break; |
} |
} |
while (!get_key_short (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//------------------------------------------------------- |
if(type == 4) // led bitfeld |
{ |
// TODO: Übersetzung |
lcd_printp_at (0, 7, PSTR(" \x19 0\x11I Ende OK"), 0); |
if (param == 93 || param == 94) |
// lcd_printp_at (5, 6, PSTR("aktiv"), 0); |
lcd_puts_at(5, 6, strGet(AKTIV), 0); |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
uint8_t newvalue = value; |
uint8_t pos = 0; |
do |
{ |
for(ii = 0; ii < 8; ii++) |
{ |
if(newvalue & (1 << ii)) |
lcd_printp_at (8-ii, 4,PSTR("1"),0); |
else |
lcd_printp_at (8-ii, 4,PSTR("0"),0); |
} |
lcd_printp_at (pos+1, 5,PSTR("\x12"),0); |
if(get_key_press (1 << KEY_MINUS)) |
{ |
lcd_printp_at (pos+1, 5,PSTR(" "),0); |
pos++; |
if(pos == 8) |
pos = 0; |
} |
if (param == 93 || param == 94) |
{ |
if(get_key_long (1 << KEY_PLUS)) |
{ |
if (newvalue != 0) |
newvalue = 0; |
else |
newvalue = 170; |
} |
} |
if(get_key_short (1 << KEY_PLUS)) |
newvalue ^= (1<<(7-pos)); |
if(get_key_short (1 << KEY_ENTER)) |
{ |
if(newvalue != value) |
{ |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes = 1; |
} |
break; |
} |
} |
while (!get_key_short (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//------------------------------------------------------- |
if(type == 5) // Angle |
{ |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_2), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE2), 0); |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
lcd_ecircle(102, 35, 16, 1); |
uint8_t newvalue = value; |
uint8_t oldvalue = newvalue; |
do |
{ |
if(oldvalue != newvalue) lcd_ecirc_line (102, 35, 15, oldvalue*15, 0); |
oldvalue = newvalue; |
lcd_ecirc_line (102, 35, 15, newvalue*15, 1); |
if(get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 1)) |
{ |
newvalue++; |
if(newvalue == 24) |
newvalue = 0; |
} |
if(get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS), 1)) |
{ |
if(newvalue == 0) |
newvalue = 24; |
newvalue--; |
} |
if(get_key_short (1 << KEY_ENTER)) |
{ |
if(newvalue != value) |
{ |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes=1; |
} |
break; |
} |
} |
while (!get_key_short (1 << KEY_ESC)); |
get_key_press(KEY_ALL); |
} |
//------------------------------------------------------- |
if(type == 6) // receiver |
{ |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)); |
uint8_t newvalue = value + 1; |
uint8_t val =0; |
uint8_t ii = 0; |
uint8_t offset = 0; |
uint8_t dmode = 0; |
uint8_t target_pos = 1; |
uint8_t size = ITEMS_RX; |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
while(1) |
{ |
ii = 0; |
if(offset > 0) |
lcd_printp_at(1,1, PSTR("\x12"), 0); |
for(ii = 0;ii < 6 ; ii++) |
{ |
if((ii+offset) < size) |
lcd_printp_at(3,ii+1,param_items_rx[ii+offset], 0); |
if((ii == 5)&&(ii+offset < (size-1))) |
lcd_printp_at(1,6, PSTR("\x13"), 0); |
} |
if(dmode == 0) |
{ |
if(offset == 0) |
{ |
if(size > 6) |
val = menu_choose3 (1, 5, target_pos,0,1); //menu_choose3 (min, max, start, return_at_start, return_at_end) |
else |
val = menu_choose3 (1, size, target_pos,0,0); |
} |
else |
val = menu_choose3 (2, 5, target_pos,1,1); |
} |
if(dmode == 1) |
{ |
if(offset+7 > size) |
val = menu_choose3 (2, 6, target_pos,1,0); |
else |
val = menu_choose3 (2, 5, target_pos,1,1); |
} |
if(val == 254) // überlauf unten |
{ |
offset++; |
dmode = 1; |
target_pos = 5; |
} |
else if(val == 253) // überlauf oben |
{ |
offset--; |
dmode = 0; |
target_pos = 2; |
} |
else if(val == 252) // ESC |
return; |
else if(val <= size) |
{ |
newvalue = val + offset - 1; |
*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*param)+4)) = newvalue; |
changes=1; |
return; |
} |
} |
} |
} |
//-------------------------------------------------------------- |
uint8_t display_param_menu(uint8_t group) |
{ |
uint8_t items[20]; |
uint8_t size=0; |
for(ii = 0;ii < PARAM_COUNT; ii++) |
{ |
if(pgm_read_byte(param_config+(8*ii)) == (group-1)) |
{ |
items[size] = ii; |
size++; |
} |
} |
uint8_t val =0 ; |
while(1) |
{ |
lcd_cls (); |
// lcd_printp_at (0, 0, PSTR(" Wähle Parameter: "), 2); |
lcd_puts_at(0, 0, strGet(PARA_SELECT), 2); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
ii = 0; |
if(offset2 > 0) |
lcd_printp_at(1,1, PSTR("\x12"), 0); |
for(ii = 0;ii < 6 ; ii++) |
{ |
if((ii+offset2) < size) |
{ |
lcd_printp_at(3,ii+1,param_names[items[ii+offset2]][Config.DisplayLanguage], 0); |
// this reads the the offset in the struct from the pgm configuration table and then reads the value from the struct |
uint8_t type = pgm_read_byte(param_config+(8*items[ii+offset2])+1); |
if(type == 0) |
{ |
write_ndigit_number_u (18, ii+1, *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)), 3, 0,0); |
if (group == 9) // % Anzeige für Notgas wenn Variohöhe für Notgas verwendet wird |
{ |
if (ii+offset2 == 8) |
{ |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[(ii+offset2)+4])+4)); // Abfrage Variohöhe Notgas |
uint8_t bitmap = pgm_read_byte(param_config+(8*items[(ii+offset2)+4])+3); // Abfrage Variohöhe Notgas |
if(value & bitmap) |
lcd_printp_at(17,ii+1,PSTR("%"), 0); |
else |
lcd_printp_at(17,ii+1,PSTR(" "), 0); |
} |
} |
} |
if(type == 1) |
{ |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)); |
if(value < 248) |
write_ndigit_number_u (18, ii+1, value, 3, 0,0); |
if(value >= 248) |
{ |
lcd_printp_at (18, ii+1, PSTR(" P"), 0); |
write_ndigit_number_u (20, ii+1, 256-value, 1, 0,0); |
} |
} |
if(type == 2) |
{ |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)); |
uint8_t bitmap = pgm_read_byte(param_config+(8*items[ii+offset2])+3); |
if(value & bitmap) |
lcd_printp_at (18, ii+1, PSTR(" J"), 0); |
else |
lcd_printp_at (18, ii+1, PSTR(" N"), 0); |
} |
if(type == 3) |
{ |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)); |
if (value<=12) |
write_ndigit_number_u (18, ii+1, value, 3, 0,0); |
else |
if (value<=(24)) |
{ |
lcd_printp_at (18, ii+1, PSTR("S"), 0); |
write_ndigit_number_u (19, ii+1, (value-12), 2, 0,0); |
} |
if (value==25) |
lcd_printp_at (18, ii+1, PSTR("WPE"), 0); |
} |
if(type == 4) |
write_ndigit_number_u (18, ii+1, *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)), 3, 0,0); |
if(type == 5) |
write_ndigit_number_u (18, ii+1, (*(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)))*15, 3, 0,0); |
if(type == 6) // Empfänger Typ |
{ |
uint8_t value = *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)); |
if(value == 0) |
lcd_printp_at (18, ii+1, PSTR("PPM"), 0); |
else if(value == 1) |
lcd_printp_at (18, ii+1, PSTR("Spe"), 0); |
else if(value == 2) |
lcd_printp_at (18, ii+1, PSTR("SpH"), 0); |
else if(value == 3) |
lcd_printp_at (18, ii+1, PSTR("SpL"), 0); |
else if(value == 4) |
lcd_printp_at (18, ii+1, PSTR("Jet"), 0); |
else if(value == 5) |
lcd_printp_at (18, ii+1, PSTR("ACT"), 0); |
else if(value == 6) |
lcd_printp_at (18, ii+1, PSTR("HoT"), 0); |
else if(value == 7) |
lcd_printp_at (18, ii+1, PSTR("SBU"), 0); |
else if(value == 8) |
lcd_printp_at (18, ii+1, PSTR("USR"), 0); |
else |
write_ndigit_number_u (18, ii+1, *(((uint8_t*)mk_param_struct) + pgm_read_byte(param_config+(8*items[ii+offset2])+4)), 3, 0,0); |
} |
} |
if((ii == 5)&&(ii+offset2 < (size-1))) |
lcd_printp_at(1,6, PSTR("\x13"), 0); |
} |
if(pmode == 0) |
{ |
if(offset2 == 0) |
{ |
if(size > 6) |
val = menu_choose2 (1, 5, target_pos2,0,1); |
else |
val = menu_choose2 (1, size, target_pos2,0,0); |
} |
else |
val = menu_choose2 (2, 5, target_pos2,1,1); |
} |
if(pmode == 1) |
{ |
if(offset2+7 > size) |
val = menu_choose2 (2, 6, target_pos2,1,0); |
else |
val = menu_choose2 (2, 5, target_pos2,1,1); |
} |
if(val == 254) |
{ |
offset2++; |
pmode = 1; |
target_pos2 = 5; |
} |
else if(val == 253) |
{ |
offset2--; |
pmode = 0; |
target_pos2 = 2; |
} |
else |
break; |
} |
if(val != 255) |
{ |
target_pos2=val; |
return items[val+offset2-1]; |
} |
else |
return val; |
} |
//-------------------------------------------------------------- |
uint8_t display_section_menu(void) |
{ |
uint8_t size = PAGES; |
uint8_t val =0; |
while(1) |
{ |
lcd_cls (); |
// lcd_printp_at (0, 0, PSTR(" Wähle Seite: "), 2); |
lcd_puts_at(0, 0, strGet(PARA_SEITE),2); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
ii = 0; |
if(offset > 0) |
lcd_printp_at(1,1, PSTR("\x12"), 0); |
for(ii = 0;ii < 6 ; ii++) |
{ |
if((ii+offset) < size) |
lcd_printp_at(3,ii+1,param_pages[ii+offset][Config.DisplayLanguage], 0); |
if((ii == 5)&&(ii+offset < (size-1))) |
lcd_printp_at(1,6, PSTR("\x13"), 0); |
} |
if(dmode == 0) |
{ |
if(offset == 0) |
{ |
if(size > 6) |
val = menu_choose2 (1, 5, target_pos,0,1); |
else |
val = menu_choose2 (1, size, target_pos,0,0); |
} |
else |
val = menu_choose2 (2, 5, target_pos,1,1); |
} |
if(dmode == 1) |
{ |
if(offset+7 > size) |
val = menu_choose2 (2, 6, target_pos,1,0); |
else |
val = menu_choose2 (2, 5, target_pos,1,1); |
} |
if(val == 254) |
{ |
offset++; |
dmode = 1; |
target_pos = 5; |
} |
else if(val == 253) |
{ |
offset--; |
dmode = 0; |
target_pos = 2; |
} |
else |
break; |
} |
if(val != 255) |
{ |
target_pos=val; |
return val+offset; |
} |
else |
return val; |
} |
//-------------------------------------------------------------- |
uint8_t display_settings_menu (void) |
{ |
uint8_t status; |
lcd_cls (); |
// lcd_printp_at (0, 0, PSTR(" Wähle Setting: "), 2); |
lcd_puts_at(0, 0, strGet(PARA_SELSETT), 2); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
for(setting=1;setting<6;setting++) |
{ |
status = load_setting(setting); |
if(status == 255) |
return 255; |
write_ndigit_number_u (3, setting, status, 1, 0,0); |
lcd_print_at (5,setting,(uint8_t*)mk_param_struct->Name, 0); |
} |
// lcd_printp_at (3, 6, PSTR("Kopiere Setting"), 0); |
lcd_puts_at(3, 6, strGet(PARA_COPY), 0); |
status = load_setting(0xff); |
if(status == 255) |
return 255; |
setting = menu_choose (1, 6, 1,status); |
return setting; |
} |
//-------------------------------------------------------------- |
uint8_t load_setting(uint8_t setting) |
{ |
mode = 'Q'; // Settings |
uint8_t timeout = 50; |
rxd_buffer_locked = FALSE; |
while (!rxd_buffer_locked && timeout) |
{ |
SendOutData ('q', ADDRESS_FC, 1, &setting, 1); |
// _delay_ms(50); |
timer = 20; |
while (timer > 0); |
timeout--; |
} |
if (timeout != 0) |
{ |
Decode64 (); |
setting = *pRxData; |
mk_param_struct = (mk_param_struct_t *) (pRxData + 1) ; |
} |
else |
{ // timeout occured |
// lcd_printp_at (0, 2, PSTR("Fehler: keine Daten"), 0); |
lcd_puts_at(0, 2, strGet(OSD_ERROR), 0); |
timer = 100; |
while (timer > 0); |
setting = 255; |
} |
return setting; |
} |
//-------------------------------------------------------------- |
uint8_t write_setting(uint8_t setting) |
{ |
mode = 'S'; // Settings |
uint8_t timeout = 50; |
rxd_buffer_locked = FALSE; |
while (!rxd_buffer_locked && timeout) |
{ |
SendOutData ('s', ADDRESS_FC, 2, &setting, 1, mk_param_struct, sizeof(mk_param_struct_t)); |
// _delay_ms(50); |
timer = 20; |
while (timer > 0); |
timeout--; |
} |
if (timeout != 0) |
{ |
Decode64 (); |
setting = *pRxData; |
} |
else // timeout occured |
{ |
// lcd_printp_at (0, 2, PSTR("Fehler: keine Daten"), 0); |
lcd_puts_at(0, 2, strGet(OSD_ERROR), 0); |
timer = 100; |
while (timer > 0); |
setting = 255; |
} |
return setting; |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/parameter.h |
---|
0,0 → 1,46 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#ifndef _PARAMETER_H |
#define _PARAMETER_H |
#include "main.h" |
void edit_parameter (void); |
uint8_t load_setting(uint8_t setting); |
#endif |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/parameter_names.h |
---|
0,0 → 1,293 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#define PAGES 14 |
#ifdef MKVERSION088n |
#define PARAM_COUNT 152 //152 FC088L |
#endif |
#ifdef MKVERSION090b |
#define PARAM_COUNT 156 //156 FC090b |
#endif |
#define PARAM_LENGTH 15 |
#define PARAM_NUM_LANG 3 |
// German Englisch Holländisch |
prog_char param_pages[PAGES][PARAM_NUM_LANG][PARAM_LENGTH]= // zeilen,zeichen+1 |
{ |
{"Kanäle ","Channel ","Kanaal "}, |
{"Konfiguration ","main ","Configuratie "}, |
{"Stick ","stick ","Stick "}, |
{"Looping ","Looping ","Looping "}, |
{"Höhe ","Altitude ","Hoogte "}, |
{"Kamera ","Camera ","Camera "}, |
{"NaviCtrl ","NaviCtrl ","NaviCtrl "}, |
{"Ausgänge ","Outputs ","Uitgangen "}, |
{"Verschiedenes ","Divers ","Diversen "}, |
{"Gyro ","Gyro ","Gyro "}, |
{"Benutzer ","User ","Gebruiker "}, |
{"Achskopplung ","Coupl Axes ","Koppeling Ass "}, |
{"Mixer-Setup ","Config Mix ","Config. Mixer "}, |
{"Easy Setup ","Config Easy ","Config. easy "}, |
}; |
//Namen |
prog_char param_names[PARAM_COUNT][PARAM_NUM_LANG][PARAM_LENGTH]= |
{ |
// group 0 (kanaele) 1-15 |
{"Gas ","Throttle ","Gas "}, |
{"Gier ","Gier ","Gier "}, |
{"Nick ","Nick ","Nick "}, |
{"Roll ","Roll ","Roll "}, |
{"Poti 1 ","Poti 1 ","Poti 1 "}, |
{"Poti 2 ","Poti 2 ","Poti 2 "}, |
{"Poti 3 ","Poti 3 ","Poti 3 "}, |
{"Poti 4 ","Poti 4 ","Poti 4 "}, |
{"Poti 5 ","Poti 5 ","Poti 5 "}, |
{"Poti 6 ","Poti 6 ","Poti 6 "}, |
{"Poti 7 ","Poti 7 ","Poti 7 "}, |
{"Poti 8 ","Poti 8 ","Poti 8 "}, |
{"Motor Sich.Sch","Mot.Safety Sw.","Mot.saf.schak."}, |
{"Motor Swi.Mode","Motor Swi.Mode","Motor Swi.Mode"}, |
{"Erw. Sig. Pr. ","Enh. Sig.Check","Uitg.Sig.Check"}, |
{"Empfänger Typ ","Receiver Type ","Ontvang. Type "}, |
#ifdef MKVERSION090b |
{"Spk all Events","Spk all Events","Spk all Events"}, |
#endif |
// group 1 (main) 16-23 |
{"Höhenregeler ","Ctrl Altitude ","Ctrl Hoogte "}, |
{"GPS ","GPS ","GPS "}, |
{"Kompass ","Compass ","Kompas "}, |
{"KompFest Ausr.","CompOrient.Fix","Kompas vast "}, |
{"Erw. Sig. Pr. ","Sens.RcvSigVal","ExtRec Signaal"}, |
{"Achs(e.)koppl.","Axis Couping ","As koppeling "}, |
{"Drehratenbegr.","RotRate limit.","RotRate limit."}, |
{"Heading Hold ","Nick/Roll ","Koers vast "}, |
// group 2 (stick) 24-27 |
{"Nick/Roll P ","Nick/Roll P ","Nick/Roll P "}, |
{"Nick/Roll D ","Nick/Roll D ","Nick/Roll D "}, |
{"Gier P ","Gier P ","Gier P "}, |
{"Externe Kontr.","Extern Ctrl ","Extern Control"}, |
// group3 : (looping) 28-36 |
{"Looping oben ","Looping up ","Looping omhoog"}, |
{"Looping unten ","Looping down ","Looping bened."}, |
{"Looping links ","Looping left ","Looping links "}, |
{"Looping rechts","Looping right ","Looping rechts"}, |
{"Gas Limit ","Throttle Limit","Gas Limiet "}, |
{"Ansprechschw. ","Resp. Thresh. ","Drempelwaarde "}, |
{"Hysterese ","Hysteresis ","Hysterese "}, |
{"Umkehrp. Nick ","Turnover Nick ","Nick geinvert."}, |
{"Umkehrp. Roll ","Turnover Roll ","Roll geinvert."}, |
// group 4 (hoehe) 37-50 |
{"Höhenregelung ","Altitude Ctrl ","Hoogte Control"}, |
{"J:HBeg,N:Vario","Y:LimH,N:Vario","Y:LimH,N:Vario"}, |
{"Schalter f. H.","use Sw. f.Setp","Schak. Hoogte "}, |
{"akust. Vario ","acoustic Vario","Akoest. Vario "}, |
{"Sollhöhe ","Setpoint ","Gewenste hoogt"}, |
{"Min. Gas ","min. throttle ","Minimaal gas "}, |
{"Höhe P ","Altitude P ","Hoogte P "}, |
{"Luftdruck D ","Barometric D ","Barometr. D "}, |
{"Z-ACC ","ACC Z ","ACC Z "}, |
{"Max. Höhe ","Max. Altitude ","Max. hoogte "}, |
{"Verstärkung/R ","gain/rate ","Verst./rate "}, |
{"Schwebegas +/-","hoover varia. ","hoover varia. "}, |
{"GPS Z ","GPS Z ","GPS Z "}, |
{"Stick Neutr. P","stick neutr. P","stick neutr. P"}, |
// group 5 : (kamera) 51-68 |
{"Nick S. Anst. ","nick serv ctrl","nick serv ctrl"}, |
{"Nick Kompens. ","nick compens. ","nick compens. "}, |
{"Nick Umkehren ","nick inv. dir.","nick inv.rich."}, |
#ifdef MKVERSION090b |
{"Nick Servo rel","nick servo rel","nick servo rel"}, |
#endif |
{"Nick Servo min","nick servo min","nick servo min"}, |
{"Nick Servo max","nick servo max","nick servo max"}, |
{"Nick Serv Filt","Nick Serv Filt","Nick Serv Filt"}, //FC0.87 |
{"Roll S. Anst. ","roll serv ctrl","roll serv ctrl"}, |
{"Roll Kompens. ","roll compens. ","roll compens. "}, |
{"Roll Umkehren ","roll inv. dir.","roll omkeren "}, |
{"Roll Servo min","roll servo min","roll servo min"}, |
{"Roll Servo max","roll servo max","roll servo max"}, |
{"Roll Serv Filt","Roll Serv Filt","Roll Serv Filt"}, //FC0.87 |
{"Anst. Geschw. ","servo refresh ","Servo refresh "}, |
{"Manuelle Gesch","manuell Speed ","Snelh.handbed."}, |
{"Cam Richtung ","Cam Orient ","Camera richt. "}, |
{"Servo 3 ","Servo 3 ","Servo 3 "}, |
{"Servo 4 ","Servo 4 ","Servo 4 "}, |
{"Servo 5 ","Servo 5 ","Servo 5 "}, |
// group 6 : (navictrl) 69-88 "CH Hoogte " |
{"GPS ","enable GPS ","enable GPS "}, |
{"GPS Modus St. ","GPS mode contr","GPS mode contr"}, |
{"GPS Verstärk. ","GPS Gain ","GPS versterk. "}, |
{"GPS St. Schw. ","GPS stick thre","GPS st. dremp."}, |
{"Min. Sat. ","Min. Sat. ","Min. Sat. "}, |
{"GPS-P ","GPS-P ","GPS-P "}, |
{"GPS-I ","GPS-I ","GPS-I "}, |
{"GPS-D ","GPS-D ","GPS-D "}, |
{"P Limit ","Limit P ","Limiet P "}, |
{"I Limit ","Limit I ","Limiet I "}, |
{"D Limit ","Limit D ","Limiet D "}, |
{"GPS Acc ","GPS Acc ","GPS Acc "}, |
{"GPS Windkorr. ","GPS Wind Corr.","GPS Wind Corr."}, |
{"Bremswirkung ","Speed compens.","Remwerking "}, |
{"GPS max. Rad. ","GPS max.radius","GPS max.radius"}, |
{"GPS Winkel Li.","GPS angl.limit","GPS hoek lim. "}, |
{"PH Login time ","PH login time ","PH login tijd "}, |
{"Dynamic PH ","Dynamic PH ","Dynamische PH "}, |
{"GPS m. Rad dPH","GPS m. Rad dPH","GPS m. Rad dPH"}, //FC0.87 |
{"CH Höhe ","CH Altitude ","CH Hoogte "}, |
// group 7 : (ausgaenge) 89-98 |
{"LED1 Bitmaske ","Out1 Bitmask ","Uitg1 Bitpatr."}, |
{" Timing ","Out1 Timing ","Uitg1 Timing "}, |
{" sofort an","Activ ","Direct aan "}, |
{" n.m.Motor","Act. wi. Motor","Akt. motor uit"}, |
#ifdef MKVERSION090b |
{"mit WP-Event ","comb. WP-Event","comb. WP-Event"}, |
{"AutoTr. m/Poti","AutoTr. m/poti","AutoTr. m/poti"}, |
#endif |
{"LED2 Bitmaske ","Out2 Bitmask ","Uitg2 Bitpatr."}, |
{" Timing ","Out2 Timing ","Uitg2 Timing "}, |
{" sofort an","Activ ","Direct aan "}, |
{" n.m.Motor","Act. wi. Motor","Akt. motor uit"}, |
{"Out1 Vmin.Warn","Out1 undervolt","Uitg1 ondersp."}, |
{"Out2 Vmin.Warn","Out2 undervolt","Uitg2 ondersp."}, |
// group 8 : (verschiedenes) 99-11 |
{"Min. Gas ","min. throttle ","minimaal gas "}, |
{"Max. Gas ","max. throttle ","maximaal gas "}, |
{"Kompasswirkung","compass effect","Kompas effect "}, |
{"Carefree St. ","Carefree Ctrl ","Carefree Ctrl "}, |
{"Teachable Care","Teachable Care","Teachable Care"}, |
{"Unterspannung ","undervoltage ","Onderspanning "}, |
{"Volt Referenz ","Volt Referenz ","Ref. spanning "}, |
{"Not Gas Zeit ","Emerg.Thr.Time","Nood gas tijd "}, |
{"Not Gas ","Emerg.Throttle","Nood gas "}, |
{"Fails. CH Time","Fails. CH Time","Fails. CH Tijd"}, |
{"Fails. Channel","Fails. Channel","Fails. Channel"}, //FC 0.87 |
{"k.Summer o Sen","n beep act TX ","n beep act TX "}, // Pos Change FC0.87 |
{"Vario fail Alt","Vario fail Alt","Vario fail Alt"}, //FC 0.87 |
{"Compass Error ","Compass Error ","Kompas Error "}, |
{"k.Start o.SD-K","n st. wtho SD ","n st. wtho SD "}, //FC 0.87 |
{"k.Start o.GPS ","n st. wtho GPS","n st. wtho GPS"}, //FC 0.88L |
// group 9 : (gyro) 114-126 |
{"Gyro P ","Gyro P ","Gyro P "}, |
{"Gyro I ","Gyro I ","Gyro I "}, |
{"Gyro D ","Gyro D ","Gyro D "}, |
{"Gier P ","Lacet P ","Gier P "}, |
{"Gier I ","Lacet I ","Gier I "}, |
{"Dynamische St.","dynamic stabi.","Dynamis. stab."}, |
{"Drehratenbeg. ","RotRate limit.","Toerental lim."}, |
{"ACC/Gyro Fak. ","ACC/Gyro Fact ","ACC/Gyro Fact "}, |
{"ACC/Gyro Komp.","Comp ACC/Gyro ","Comp ACC/Gyro "}, |
{"Hauptregler I ","Main I ","Hoofdregel. I "}, |
{"Drifkompensat.","drift Compens.","Drift compens."}, |
{"Gyro stab. ","Gyro stability","Gyro stabilit."}, |
{"Motor smooth ","Motor smooth ","Motor smooth "}, |
// group 10: (benutzer) 127-134 |
{"Parameter 1 ","Parameter 1 ","Parameter 1 "}, |
{"Parameter 2 ","Parameter 2 ","Parameter 2 "}, |
{"Parameter 3 ","Parameter 3 ","Parameter 3 "}, |
{"Parameter 4 ","Parameter 4 ","Parameter 4 "}, |
{"Parameter 5 ","Parameter 5 ","Parameter 5 "}, |
{"Parameter 6 ","Parameter 6 ","Parameter 6 "}, |
{"Parameter 7 ","Parameter 7 ","Parameter 7 "}, |
{"Parameter 8 ","Parameter 8 ","Parameter 8 "}, |
// group 11: (achskopplung) 135-13 |
{"Achs(e.)koppl.","(De)Coupl Axes","As koppeling "}, |
{"Gier pos. Kopp","Retroac lacet ","Gier pos. kop."}, |
{"Nick/Roll Kopp","Retro roul/tan","Nick/Roll kop."}, |
{"Gier Korrektur","Correct lacet ","Gier correctie"}, |
// group 12: (mixer) 139 |
{"Orientierung ","Orientierung ","Orientation "}, |
// group 13 (easy) 140-150 |
{"Höhenregelung ","Altitude Ctrl ","Hoogte Contr. "}, |
{"Sollhöhe ","Setpoint ","Gewenst.hoogte"}, |
{"Stick Neutr. P","stick neutr. P","Stick neutr. P"}, |
{"GPS ","enable GPS ","Enable GPS "}, |
{"GPS Modus St. ","GPS mode contr","GPS mode contr"}, |
{"Dynamic PH ","Dynamic PH ","Dynamic PH "}, |
{"CH Höhe ","CH High ","CH hoogte "}, |
{"Carefree St. ","Carefree Ctrl ","Carefree Ctrl "}, |
{"Teachable Care","Teachable Care","Teachable Care"}, |
{"Motor Sich.Sch","Mot.Safety Sw.","Mot.saf.schak."}, |
{"Orientierung ","Orientation ","Orientatie "}, |
}; |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/tools.c |
---|
0,0 → 1,356 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#include "cpu.h" |
#include <avr/io.h> |
#include <avr/interrupt.h> |
#include <avr/pgmspace.h> |
#include <string.h> |
#include <stdlib.h> |
#include <stdbool.h> |
#include <util/delay.h> |
#include "main.h" |
#include "setup/setup.h" |
#include "lcd/lcd.h" |
#include "menu.h" |
#include "tracking/servo.h" |
#include "motortest/motortest.h" |
#include "eeprom/eeprom.h" |
#include "timer/timer.h" |
#include "connect.h" |
#ifdef HWVERSION3_9 |
#include "HAL_HW3_9.h" |
#endif |
#ifdef HWVERSION1_3 |
#include "HAL_HW1_3.h" |
#endif |
//#include "voltmeter.h" |
#include "lipo/lipo.h" |
#include "messages.h" |
#include "menu.h" |
//-------------------------------------------------------------- |
#define ITEMS_TOOLS 6 |
const prog_char tools_menuitems_pkt[ITEMS_TOOLS][NUM_LANG][18]= // zeilen,zeichen+1 |
// German, English, French, Netherlands |
{ |
{"Motor Tester ","Motor Tester ","Motor Tester "}, |
{"Servo Tester ","Servo Tester ","Servo Tester "}, |
{"PC BT > Kopter ","PC BT > Kopter ","PC BT > Kopter "}, |
{"PC USB > Kopter ","PC USB > Kopter ","PC USB > Kopter "}, |
{"PKT Setup \x1d","PKT Setup \x1d","PKT Setup \x1d"}, |
{"PKT Version ","PKT Version ","PKT Version "}, |
}; |
//-------------------------------------------------------------- |
void PKT_Tools (void) |
{ |
// ii = 0; |
// offset = 0; |
// size = 0; |
// size = ITEMS_PKT ; |
// dmode = 0; |
target_pos = 1; |
// val = 0; |
// uint8_t ii = 0; |
// uint8_t offset = 0; |
// uint8_t size = 0; |
// |
// uint8_t dmode = 0; |
// uint8_t target_pos = 1; |
// uint8_t val; |
while(1) |
{ |
size = ITEMS_TOOLS ; |
lcd_cls (); |
lcd_printp_at (0, 0, PSTR(" PKT-Tools "), 2); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
// while(2) |
// { |
// ii = 0; |
// if(offset > 0) |
// { |
// lcd_printp_at(1,1, PSTR("\x12"), 0); |
// } |
// for(ii = 0;ii < 6 ; ii++) |
// { |
// if((ii+offset) < size) |
// { |
// lcd_printp_at(3,ii+1,tools_menuitems_pkt[ii+offset][Config.DisplayLanguage], 0); |
// } |
// if((ii == 5)&&(ii+offset < (size-1))) |
// { |
// lcd_printp_at(1,6, PSTR("\x13"), 0); |
// } |
// } |
// if(dmode == 0) |
// { |
// if(offset == 0) |
// { |
// if(size > 6) |
// { |
// val = menu_choose2 (1, 5, target_pos,0,1); |
// } |
// else |
// { |
// val = menu_choose2 (1, size, target_pos,0,0); |
// } |
// } |
// else |
// { |
// val = menu_choose2 (2, 5, target_pos,1,1); |
// } |
// } |
// if(dmode == 1) |
// { |
// if(offset+7 > size) |
// { |
// val = menu_choose2 (2, 6, target_pos,1,0); |
// } |
// else |
// { |
// val = menu_choose2 (2, 5, target_pos,1,1); |
// } |
// } |
// if(val == 254) |
// { |
// offset++; |
// dmode = 1; |
// target_pos = 5; |
// } |
// else if(val == 253) |
// { |
// offset--; |
// dmode = 0; |
// target_pos = 2; |
// } |
// else if(val == 255) |
// { |
// return; |
// } |
// else |
// { |
// break; |
// } |
// |
// } |
val = menu_select(tools_menuitems_pkt,size,target_pos); |
if (val==255) break; |
target_pos = val; |
if((val+offset) == 1 ) |
motor_test(FC_Mode); |
if((val+offset) == 2 ) |
servo_test(); |
#ifdef HWVERSION3_9 |
if(Config.U02SV2 == 0) |
{ |
if((val+offset) == 3 ) |
Port_BT2Wi(); |
if((val+offset) == 4 ) |
Port_USB2Wi(); |
} |
else if(Config.U02SV2 == 1) |
{ |
if((val+offset) == 3 ) |
Port_BT2FC(); |
if((val+offset) == 4 ) |
Port_USB2FC(); |
} |
#else |
if((val+offset) == 3 ) |
Show_Error_HW(); |
if((val+offset) == 4 ) |
Show_Error_HW(); |
#endif |
if((val+offset) == 5) |
PKT_Setup(); |
if((val+offset) == 6) |
Show_Version(); |
} |
} |
//-------------------------------------------------------------- |
// |
void PC_Fast_Connect (void) |
{ |
uint8_t value = 1; |
while(1) |
{ |
lcd_cls(); |
// lcd_printp_at (0, 0, PSTR(" PC-Quick-Verbindung "), 2); |
lcd_puts_at(0, 8, strGet(TOOLS1), 2); |
lcd_printp_at (3, 3, PSTR("PC BT > Kopter"), 0); |
lcd_printp_at (3, 4, PSTR("PC USB > Kopter"), 0); |
// lcd_printp_at (0, 7, PSTR(KEY_LINE_1), 0); |
lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
// lcd_puts_at(0, 7, strGet(KEYLINE1), 0); |
while(2) |
{ |
if(value == 1) |
{ |
lcd_printp_at (1, 3, PSTR("\x1d"), 0); |
lcd_printp_at (1, 4, PSTR(" "), 0); |
} |
else |
{ |
lcd_printp_at (1, 3, PSTR(" "), 0); |
lcd_printp_at (1, 4, PSTR("\x1d"), 0); |
} |
if(get_key_press (1 << KEY_MINUS)) |
value = 1; |
if(get_key_press (1 << KEY_PLUS)) |
value = 2; |
if(get_key_short (1 << KEY_ENTER)) |
{ |
#ifdef HWVERSION3_9 |
if(Config.U02SV2 == 0) |
{ |
if(value == 1) |
Port_BT2Wi(); |
if(value == 2) |
Port_USB2Wi(); |
} |
else if(Config.U02SV2 == 1) |
{ |
if(value == 1) |
Port_BT2FC(); |
if(value == 2) |
Port_USB2FC(); |
} |
#else |
if(value == 1) |
Show_Error_HW(); |
if(value == 2) |
Show_Error_HW(); |
#endif |
break; |
} |
if(get_key_press (1 << KEY_ESC)) |
{ |
get_key_press(KEY_ALL); |
return; |
} |
} |
} |
} |
//void Test_HB (void) // bleibt für Tests |
//{ |
//#ifdef HWVERSION3_9 |
//// ADC_Init(); |
//// |
//// uint16_t volt_avg = 0; |
////// uint64_t volt_tmp = 0; |
//// uint16_t Balken = 0; |
// |
// |
// lcd_cls(); |
// lcd_printp_at(12, 7, PSTR("Ende"), 0); |
// |
//// lcd_rect(104, 0, 23, 8, 1); // Rahmen |
// |
// do |
// { |
//// |
//// |
// if(samples>4095) |
// { |
//// write_ndigit_number_u(0, 4, accumulator, 5, 0); |
// oversampled(); |
// volt_avg = Vin; |
// } |
//// // write_ndigit_number_u(0, 3, samples, 5, 0); |
//// |
////// write_ndigit_number_u(0, 1, Vin, 5, 0); |
//// _delay_ms(50); |
// |
// show_Lipo(); |
// |
// write_ndigit_number_u_100th(5, 5, volt_avg, 0, 0); |
// lcd_printp_at(10, 5, PSTR("Volt"), 0); |
//// |
//// |
//// |
// write_ndigit_number_u(0, 6, Config.Lipo_UOffset, 5, 0,0); |
//// write_ndigit_number_u(15, 6, WarnCount, 4, 0); |
////// write_ndigit_number_u(10, 5, Vcorr, 4, 0); |
// |
// |
// if (get_key_press (1 << KEY_PLUS) | get_key_long_rpt_sp ((1 << KEY_PLUS), 3)) |
// { |
// Config.Lipo_UOffset = Config.Lipo_UOffset +10; |
// } |
// |
// if (get_key_press (1 << KEY_MINUS) | get_key_long_rpt_sp ((1 << KEY_MINUS),3)) |
// { |
// Config.Lipo_UOffset = Config.Lipo_UOffset -10; |
// } |
//// |
// } |
// |
// |
// while(!get_key_press (1 << KEY_ESC)); |
// get_key_press(KEY_ALL); |
// return; |
//#endif |
//} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |
/Transportables_Koptertool/branch/test2/GPL_PKT_V3_6_7f_FC090b/tools.h |
---|
0,0 → 1,41 |
/***************************************************************************** |
* 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* |
*****************************************************************************/ |
#ifndef _tools_H |
#define _tools_H |
void PKT_Tools (void); |
void Test_HB (void); // TestTool für Softwareentwicklung |
#endif |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |