Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed


/****************************************************************/
/*                                                                                                                              */
/*                               NG-Video 5,8GHz                                                        */
/*                                                                                                                              */
/*                              Copyright (C) 2011 - gebad                                              */
/*                                                                                                                              */
/*  This code is distributed under the GNU Public License               */
/*      which can be found at http://www.gnu.org/licenses/gpl.txt       */
/*                                                                                                                              */
/****************************************************************/

#ifndef _MENUE_H_
#define _MENUE_H_      

/*      Indexwerte für Funktions-Pointer in menue.c
        typedef void (*Displ_Ptr_Fnct)( uint32_t );
        Displ_Ptr_Fnct Displ_Fnct[] = {Displ_U_2Nk, Displ_Set_Contrast, Displ_Backgr_Light, Displ_Channels, Displ_AV_Source, \
                               Displ_Off_On, Displ_Language, DISPL_Servo_Steps, Displ_Servo_Min, Displ_Servo_Max, \
                                                           Displ_Servo_Mid, Displ_Format_Int, Displ_sel_Tracking, Displ_track_TX, Displ_Baudrate};
 */

#define IDX_DISPL_U_2Nk                 0
#define IDX_DISPL_SET_CONTRAST  1
#define IDX_DISPL_BACKGR_LIGHT  2
#define IDX_DISPL_CHANNEL               3
#define IDX_DISPL_AV_SOURCE             4
#define IDX_DISPL_OFF_ON                5
#define IDX_DISPL_LANGUAGE              6
#define IDX_DISPL_SERVO_STEPS   7
#define IDX_DISPL_SERVO_MIN             8       // für Servo linke  maximale Position
#define IDX_DISPL_SERVO_MAX             9       // für Servo rechte maximale Position
#define IDX_DISPL_SERVO_MID             10
#define IDX_DISPL_FORMAT_INT    11
#define IDX_DISPL_SEL_TRACKING  12
#define IDX_DISPL_TRACK_TX              13
#define IDX_DISPL_BAUDRATE              14

#define SCROLL_MAIN_MAX                 8       // index array Scroll_Menu scr_main_menu[]  = {....} Anzahl-1, da Beginn bei 0
#define SCROLL_SERVO_MAX                4       // index array Scroll_Menu scr_servo_menu[] = {....} Anzahl-1, da Beginn bei 0

/* bei Change_Value(....) */
#define ZLE_VAL                 1 // DOGM Zeile des zu ändernten Wertes

#define C_REPEAT                                0       // konstante repeat Geschwindigkeit
#define V_REPEAT                                1       // sich ändernte repeat Geschwindigkeit

typedef struct
{
  char* menu_nr;            // Stringzeiger auf Befehlsnamen
  void(*fp)(void);      // Zeiger auf auszuführende Funktion
} COMMAND_STRUCTUR;    
       
unsigned char jump_menu         (char *);

void Menu_Main                          (void);
void Menu_AV_Source                     (void);
void Menu_RX_Channel            (void);
void Menu_RSSI_Calibr           (void);
void Menu_RSSI_min                      (void);
void Menu_RSSI_max                      (void);
void Menu_Language                      (void);
void Menu_Servo_Calibr          (void);
void Menu_Servo_Steps           (void);
void Menu_Servo1                        (void);
void Menu_Servo2                        (void);
void Menu_Servo1_rev            (void);
void Menu_Servo1_left           (void);
void Menu_Servo1_right          (void);
void Menu_Servo1_middle         (void);
void Menu_Servo2_rev            (void);
void Menu_Servo2_left           (void);
void Menu_Servo2_right          (void);
void Menu_Servo2_middle         (void);
void Menu_lcd                           (void);
void Menu_lcd_Contrast          (void);
void Menu_lcd_Backgr_Light      (void);
void Menu_Battery                       (void);
void Menu_Low_U_Setup           (void);
void Menu_U_Offset                      (void);
void Menu_Tool                          (void);
void Menu_Tracking_Ant          (void);
void Menu_Tracking_Option       (void);
void Menu_GPS_Display           (void);
void Menu_GPS_Display_FLAG      (void);

/*char amenu[5] = {"0"};
char* pmenu = amenu;*/

char pmenu[5] = {"0"};
uint8_t ch_stored;              // Flag zur Speicherung, wenn Wert im Hauptdisplay geändert
uint8_t coldstart;

void Displ_Main_Disp(void);
void Displ_AV_Mark(uint8_t p, char marker);
void Disp_Str_mid(char *str, uint8_t zle);

#define RIGHT           0
#define LEFT            1
#define MIDDLE          2

typedef struct
{
uint16_t min;
uint16_t max;
} servo_limit_t;

servo_limit_t servo_limit[2][3] = {{{SERVO_I0_RIGHT_MIN, SERVO_I0_RIGHT_MAX},\
                                                                         {SERVO_I0_LEFT_MIN, SERVO_I0_LEFT_MAX},\
                                                                         {SERVO_I0_MIDDLE_MIN, SERVO_I0_MIDDLE_MAX}},\
                                                                        {{SERVO_I1_RIGHT_MIN, SERVO_I1_RIGHT_MAX},\
                                                                         {SERVO_I1_LEFT_MIN, SERVO_I1_LEFT_MAX},\
                                                                         {SERVO_I1_MIDDLE_MIN, SERVO_I1_MIDDLE_MAX}}};

#endif /* _MENUE_H */