menu.c File Reference

#include "includes.h"

Go to the source code of this file.

Defines

#define MenuIdleState   0
#define MenuInitial0State   1
#define MenuInitial1State   2
#define MenuInitial2State   3
#define MenuInitial3State   4
#define MenuNoMenuState   5
#define MenuRunMenuState   6

Functions

void MenuInit (void)
void MenuSvc (void)
void MenuStop (void)
void MenuStart (void)
void MenuReset (void)
void MenuKeySet (INT8U KeyValue)
void MenuMenuInit (const struct _MENU_ENTRY_ *pMenu)
void MenuItemInit (const struct _ITEM_ENTRY_ *pItem)
void MenuItemAct (const struct _ITEM_ENTRY_ *pItem)
void MenuOpcodeParser (INT8U KeyValue)

Variables

MENU_CONTROL MenuCtrl
const ITEM_ENTRY MenuMainmenuItem [MENU_MAINMENU_ITEM_MAX]
const MENU_ENTRY MenuMainMenu
const ITEM_ENTRY MenuSystemmenuItem [MENU_SYSTEMMENU_ITEM_MAX]
const MENU_ENTRY MenuSytemSubmenu
const ITEM_ENTRY MenuVideoEncoderMenuItem [MENU_VIDEOMENU_ITEM_MAX]
const MENU_ENTRY MenuVideoEncoderSubmenu
const ITEM_ENTRY MenuAudioEncoderMenuItem [MENU_AUDIOMENU_ITEM_MAX]
const MENU_ENTRY MenuAudioEncoderSubmenu
const ITEM_ENTRY MenuCodecMenuItem [MENU_CODECMENU_ITEM_MAX]
const MENU_ENTRY MenuCodecSubmenu
const ITEM_ENTRY MenuMuxMenuItem [MENU_MUXMENU_ITEM_MAX]
const MENU_ENTRY MenuMuxSubmenu
const INT8U MsgLineChange [] = "\n\r"
const INT8U MenuMsg00 [] = " "
const INT8U MenuMsg01 [] = "main menu "
const INT8U MenuMsg02 [] = "sub menu "
const INT8U MenuMsg03 [] = "item menu "
const INT8U MenuMsg04 [] = "MAINMENU ITEM 0 "
const INT8U MenuMsg05 [] = "MAINMENU ITEM 1 "
const INT8U MenuMsg06 [] = "MAINMENU ITEM 2 "
const INT8U MenuMsg07 [] = "MAINMENU ITEM 3 "
const INT8U MenuMsg08 [] = "MAINMENU ITEM 4 "
const INT8U MenuMsg09 [] = "ITEM0 SUBITEM 0 "
const INT8U MenuMsg10 [] = "ITEM0 SUBITEM 1 "
const INT8U MenuMsg11 [] = "ITEM0 SUBITEM 2 "
const INT8U MenuMsg12 [] = "ITEM0 SUBITEM 3 "
const INT8U MenuMsg13 [] = "ITEM0 SUBITEM 4 "
const INT8U MenuMsg14 [] = "ITEM1 SUBITEM 0 "
const INT8U MenuMsg15 [] = "ITEM1 SUBITEM 1 "
const INT8U MenuMsg16 [] = "ITEM1 SUBITEM 2 "
const INT8U MenuMsg17 [] = "ITEM1 SUBITEM 3 "
const INT8U MenuMsg18 [] = "ITEM1 SUBITEM 4 "
const INT8U MenuMsg19 [] = "ITEM2 SUBITEM 0 "
const INT8U MenuMsg20 [] = "ITEM2 SUBITEM 1 "
const INT8U MenuMsg21 [] = "ITEM2 SUBITEM 2 "
const INT8U MenuMsg22 [] = "ITEM2 SUBITEM 3 "
const INT8U MenuMsg23 [] = "ITEM2 SUBITEM 4 "
const INT8U MenuMsg24 [] = "ITEM3 SUBITEM 0 "
const INT8U MenuMsg25 [] = "ITEM3 SUBITEM 1 "
const INT8U MenuMsg26 [] = "ITEM3 SUBITEM 2 "
const INT8U MenuMsg27 [] = "ITEM3 SUBITEM 3 "
const INT8U MenuMsg28 [] = "ITEM3 SUBITEM 4 "
const INT8U MenuMsg29 [] = "ITEM4 SUBITEM 0 "
const INT8U MenuMsg30 [] = "ITEM4 SUBITEM 1 "
const INT8U MenuMsg31 [] = "ITEM4 SUBITEM 2 "
const INT8U MenuMsg32 [] = "ITEM4 SUBITEM 3 "
const INT8U MenuMsg33 [] = "ITEM4 SUBITEM 4 "
const INT8U MenuMsg34 [] = "SYSTEM POWER ON "
const INT8U MenuMsg35 [] = "PLEASE WAIT... "
const INT8U MenuMsg36 [] = "PPPP CONNECTED "
const INT8U MenuMsg37 [] = "ON PPPP BOOTUP "
const INT8U MenuMsg38 [] = "PPPP BOOTUP OK "
const INT8UMenuMessage [39]


Define Documentation

#define MenuIdleState   0

Definition at line 11 of file menu.c.

#define MenuInitial0State   1

Definition at line 12 of file menu.c.

#define MenuInitial1State   2

Definition at line 13 of file menu.c.

#define MenuInitial2State   3

Definition at line 14 of file menu.c.

#define MenuInitial3State   4

Definition at line 15 of file menu.c.

#define MenuNoMenuState   5

Definition at line 16 of file menu.c.

#define MenuRunMenuState   6

Definition at line 17 of file menu.c.


Function Documentation

void MenuInit ( void   ) 

Definition at line 21 of file menu.c.

00021                    {
00022     MenuCtrl.pCurMenu=(const MENU_ENTRY *)0;
00023     MenuCtrl.pCurItem=(const ITEM_ENTRY *)0;
00024     MenuCtrl.HasKey=FALSE;
00025     MenuCtrl.Timer=0;
00026     MenuCtrl.State=MenuInitial0State;
00027     //MenuCtrl.State=MenuIdleState;
00028 }

void MenuItemAct ( const struct _ITEM_ENTRY_ pItem  ) 

Definition at line 110 of file menu.c.

00110                                                   {
00111     if(pItem->pValue==(const void *)0) return;
00112     MenuCtrl.pCurMenu=(const struct _MENU_ENTRY_ *)((void *)pItem->pValue);
00113     MenuCtrl.pCurItem=MenuCtrl.pCurMenu->pItemList;
00114     MenuMenuInit(MenuCtrl.pCurMenu);
00115     MenuItemInit(MenuCtrl.pCurItem);
00116 }

void MenuItemInit ( const struct _ITEM_ENTRY_ pItem  ) 

Definition at line 103 of file menu.c.

00103                                                    {
00104     LcmUpdate(Lcm2ndLineStart,LCM_COMMAND);
00105     //LcmUpdate(MenuMessage[MENU_MSG_16SPACES],LCM_DATA);
00106     LcmUpdate(Lcm2ndLineStart,LCM_COMMAND);
00107     LcmUpdate((INT8U *)MenuMessage[pItem->MsgIndex],LCM_DATA);
00108 }

void MenuKeySet ( INT8U  KeyValue  ) 

Definition at line 91 of file menu.c.

00091                                {
00092     if(MenuCtrl.HasKey==FALSE){
00093         MenuCtrl.KeyValue=KeyValue;
00094         MenuCtrl.HasKey=TRUE;
00095     }
00096 }

void MenuMenuInit ( const struct _MENU_ENTRY_ pMenu  ) 

Definition at line 98 of file menu.c.

00098                                                    {
00099     LcmUpdate(Lcm1stLineStart,LCM_COMMAND);
00100     LcmUpdate((INT8U *)MenuMessage[pMenu->MsgIndex],LCM_DATA);
00101 }

void MenuOpcodeParser ( INT8U  KeyValue  ) 

Definition at line 118 of file menu.c.

00118                                      {
00119     if(KeyValue==KEY_UP){
00120         if(MenuCtrl.pCurItem->pUpItem==(const ITEM_ENTRY *)0) return;
00121         MenuCtrl.pCurItem=MenuCtrl.pCurItem->pUpItem;
00122         MenuItemInit(MenuCtrl.pCurItem);
00123     }
00124     else if(KeyValue==KEY_DOWN){
00125         if(MenuCtrl.pCurItem->pDownItem==(const ITEM_ENTRY *)0) return;
00126         MenuCtrl.pCurItem=MenuCtrl.pCurItem->pDownItem;
00127         MenuItemInit(MenuCtrl.pCurItem);
00128     }
00129     else if(KeyValue==KEY_LEFT){
00130         if(MenuCtrl.pCurMenu->pPrevMenu==(const struct _MENU_ENTRY_ *)0) return;
00131         MenuCtrl.pCurMenu=MenuCtrl.pCurMenu->pPrevMenu;
00132         MenuCtrl.pCurItem=MenuCtrl.pCurMenu->pItemList;
00133         MenuMenuInit(MenuCtrl.pCurMenu);
00134         MenuItemInit(MenuCtrl.pCurItem);
00135     }
00136     else if(KeyValue==KEY_RIGHT){
00137         if(MenuCtrl.pCurItem->pValue==(const void *)0) return;
00138         MenuCtrl.pCurMenu=(const struct _MENU_ENTRY_ *)MenuCtrl.pCurItem->pValue;
00139         MenuCtrl.pCurItem=MenuCtrl.pCurMenu->pItemList;
00140         MenuMenuInit(MenuCtrl.pCurMenu);
00141         MenuItemInit(MenuCtrl.pCurItem);
00142     }
00143     else if(KeyValue==KEY_ENTER){                
00144         MenuItemAct(MenuCtrl.pCurItem);
00145     }
00146 }

void MenuReset ( void   ) 

Definition at line 84 of file menu.c.

00084                     {
00085     MenuCtrl.pCurMenu=(const MENU_ENTRY *)0;
00086     MenuCtrl.pCurItem=(const ITEM_ENTRY *)0;
00087     MenuCtrl.HasKey=FALSE;
00088     MenuCtrl.Timer=0;
00089 }

void MenuStart ( void   ) 

Definition at line 80 of file menu.c.

00080                     {
00081     MenuCtrl.State=MenuInitial0State;
00082 }

void MenuStop ( void   ) 

Definition at line 76 of file menu.c.

00076                    {
00077     MenuCtrl.State=MenuIdleState;
00078 }

void MenuSvc ( void   ) 

Definition at line 30 of file menu.c.

00030                   {
00031     switch(MenuCtrl.State){
00032         case MenuIdleState:
00033             break;
00034         case MenuInitial0State:
00035             if(LcmStateGet()!=0) break;
00036             if(LcmUpdate(LcmInitialCommand0,LCM_COMMAND)==IS_ERROR){ 
00037                 MenuCtrl.State=MenuIdleState;
00038                 break;
00039             }
00040             MenuCtrl.State=MenuInitial1State;
00041             break;
00042         case MenuInitial1State:
00043             if(LcmStateGet()!=0) break;
00044             //if(LcmUpdate(MenuString0,LCM_DATA)==IS_ERROR) break;
00045             MenuReset();
00046             MenuCtrl.State=MenuInitial2State;
00047             break;
00048         case MenuInitial2State:
00049             //if(LcmStateGet()!=0) break;
00050             MenuCtrl.State=MenuInitial3State;
00051             break;
00052         case MenuInitial3State:
00053             MenuCtrl.pCurMenu=&MenuMainMenu;
00054             MenuCtrl.pCurItem=MenuCtrl.pCurMenu->pItemList;
00055             MenuMenuInit(MenuCtrl.pCurMenu);
00056             MenuItemInit(MenuCtrl.pCurItem);
00057             MenuCtrl.State=MenuRunMenuState;
00058             break;
00059         case MenuNoMenuState:            
00060             break;
00061         case MenuRunMenuState:
00062             KeySvc();       // detect key
00063             if(KeyStatusCheck()==TRUE){
00064                 //i=KeyGet();
00065                 //DebugStringPrint("\r\n key code is : ");          
00066                 //DebugHex2AsciiInt8uPrint(MenuCtrl.KeyValue);
00067                 MenuKeySet(KeyGet());
00068             }
00069             if(MenuCtrl.HasKey==FALSE) break;
00070             MenuCtrl.HasKey=FALSE;  
00071             MenuOpcodeParser(MenuCtrl.KeyValue);
00072             break;            
00073     }
00074 }


Variable Documentation

const ITEM_ENTRY MenuAudioEncoderMenuItem[MENU_AUDIOMENU_ITEM_MAX]

Definition at line 315 of file menu.c.

const ITEM_ENTRY MenuCodecMenuItem[MENU_CODECMENU_ITEM_MAX]

Definition at line 370 of file menu.c.

Definition at line 19 of file menu.c.

const ITEM_ENTRY MenuMainmenuItem[MENU_MAINMENU_ITEM_MAX]

Definition at line 150 of file menu.c.

const INT8U* MenuMessage[39]

Definition at line 521 of file menu.c.

const INT8U MenuMsg00[] = " "

Definition at line 481 of file menu.c.

const INT8U MenuMsg01[] = "main menu "

Definition at line 482 of file menu.c.

const INT8U MenuMsg02[] = "sub menu "

Definition at line 483 of file menu.c.

const INT8U MenuMsg03[] = "item menu "

Definition at line 484 of file menu.c.

const INT8U MenuMsg04[] = "MAINMENU ITEM 0 "

Definition at line 485 of file menu.c.

const INT8U MenuMsg05[] = "MAINMENU ITEM 1 "

Definition at line 486 of file menu.c.

const INT8U MenuMsg06[] = "MAINMENU ITEM 2 "

Definition at line 487 of file menu.c.

const INT8U MenuMsg07[] = "MAINMENU ITEM 3 "

Definition at line 488 of file menu.c.

const INT8U MenuMsg08[] = "MAINMENU ITEM 4 "

Definition at line 489 of file menu.c.

const INT8U MenuMsg09[] = "ITEM0 SUBITEM 0 "

Definition at line 490 of file menu.c.

const INT8U MenuMsg10[] = "ITEM0 SUBITEM 1 "

Definition at line 491 of file menu.c.

const INT8U MenuMsg11[] = "ITEM0 SUBITEM 2 "

Definition at line 492 of file menu.c.

const INT8U MenuMsg12[] = "ITEM0 SUBITEM 3 "

Definition at line 493 of file menu.c.

const INT8U MenuMsg13[] = "ITEM0 SUBITEM 4 "

Definition at line 494 of file menu.c.

const INT8U MenuMsg14[] = "ITEM1 SUBITEM 0 "

Definition at line 495 of file menu.c.

const INT8U MenuMsg15[] = "ITEM1 SUBITEM 1 "

Definition at line 496 of file menu.c.

const INT8U MenuMsg16[] = "ITEM1 SUBITEM 2 "

Definition at line 497 of file menu.c.

const INT8U MenuMsg17[] = "ITEM1 SUBITEM 3 "

Definition at line 498 of file menu.c.

const INT8U MenuMsg18[] = "ITEM1 SUBITEM 4 "

Definition at line 499 of file menu.c.

const INT8U MenuMsg19[] = "ITEM2 SUBITEM 0 "

Definition at line 500 of file menu.c.

const INT8U MenuMsg20[] = "ITEM2 SUBITEM 1 "

Definition at line 501 of file menu.c.

const INT8U MenuMsg21[] = "ITEM2 SUBITEM 2 "

Definition at line 502 of file menu.c.

const INT8U MenuMsg22[] = "ITEM2 SUBITEM 3 "

Definition at line 503 of file menu.c.

const INT8U MenuMsg23[] = "ITEM2 SUBITEM 4 "

Definition at line 504 of file menu.c.

const INT8U MenuMsg24[] = "ITEM3 SUBITEM 0 "

Definition at line 505 of file menu.c.

const INT8U MenuMsg25[] = "ITEM3 SUBITEM 1 "

Definition at line 506 of file menu.c.

const INT8U MenuMsg26[] = "ITEM3 SUBITEM 2 "

Definition at line 507 of file menu.c.

const INT8U MenuMsg27[] = "ITEM3 SUBITEM 3 "

Definition at line 508 of file menu.c.

const INT8U MenuMsg28[] = "ITEM3 SUBITEM 4 "

Definition at line 509 of file menu.c.

const INT8U MenuMsg29[] = "ITEM4 SUBITEM 0 "

Definition at line 510 of file menu.c.

const INT8U MenuMsg30[] = "ITEM4 SUBITEM 1 "

Definition at line 511 of file menu.c.

const INT8U MenuMsg31[] = "ITEM4 SUBITEM 2 "

Definition at line 512 of file menu.c.

const INT8U MenuMsg32[] = "ITEM4 SUBITEM 3 "

Definition at line 513 of file menu.c.

const INT8U MenuMsg33[] = "ITEM4 SUBITEM 4 "

Definition at line 514 of file menu.c.

const INT8U MenuMsg34[] = "SYSTEM POWER ON "

Definition at line 515 of file menu.c.

const INT8U MenuMsg35[] = "PLEASE WAIT... "

Definition at line 516 of file menu.c.

const INT8U MenuMsg36[] = "PPPP CONNECTED "

Definition at line 517 of file menu.c.

const INT8U MenuMsg37[] = "ON PPPP BOOTUP "

Definition at line 518 of file menu.c.

const INT8U MenuMsg38[] = "PPPP BOOTUP OK "

Definition at line 519 of file menu.c.

const ITEM_ENTRY MenuMuxMenuItem[MENU_MUXMENU_ITEM_MAX]

Definition at line 425 of file menu.c.

Initial value:

Definition at line 468 of file menu.c.

const ITEM_ENTRY MenuSystemmenuItem[MENU_SYSTEMMENU_ITEM_MAX]

Definition at line 205 of file menu.c.

const ITEM_ENTRY MenuVideoEncoderMenuItem[MENU_VIDEOMENU_ITEM_MAX]

Definition at line 260 of file menu.c.

const INT8U MsgLineChange[] = "\n\r"

Definition at line 480 of file menu.c.


Generated on Tue Jul 7 20:39:55 2009 for A SIMPLE APPLICATION FOR PIC18F87J10 by  doxygen 1.5.9