?? menu.c
字號:
#include "CPU.H"
#include "Menu.H"
#include "PIC.C"//圖標
/*
----------------------------------------------------------------------------
菜單相關變量
----------------------------------------------------------------------------
*/
U8 Flash = 0; //跳轉進入子菜單 刷新標志 >1刷新
U8 language = EN; //語言標志
U8 KeyFuncIndex = 0; //索引
//3個備份數組
U8 FatherIndex[MenuSize+1]; //父菜單備份數組
U8 Layer = 0; //菜單層數
U8 ItemBackup[MenuSize]; //當前菜單項備份
U8 ItemBackup_i = 0; //
U8 WhereBackup[MenuSize]; //反顯位置備份
U8 WhereBackup_i = 0; //
U8 KeyPressCount = 0; //用于版本顯示
#ifdef DynamicBar
U8 BarDataMode = FixedData;
#endif
U8 Item; //當前Bar項 范圍:[0,ItemNum-1] 包括0 包括ItemNum-1 共包括ItemNum個取值
U8 ItemNum; //Bar項數
U8 Where; //當前反顯位置,[0,DispMax-1] 反映反顯的Bar在屏幕上的位置
//U8 DispMax = 3; //單屏可以顯示的最大項 通常這是個固定值--因為你的液晶的大小決定了你一次可以顯示的多少,你也可以在程序中修改,但記得維護它--因為所有的Bar型菜單都是要用到它的
#define DispMax 3
U8 DispMin; //ItemNum和DispMax中的小者
//當前Bar顯示內容指針
//U8 _CONST_ **DispItem; //項顯示內容指針
U8 **DispItem; //項顯示內容指針
#ifdef DynamicBar
U8 ** DynamicBarDispItem; //動態項顯示內容指針
#endif
//菜單資源指針
struct Menu * BarMenu;
//Tip指針
struct Menu * TipBar;
/*
----------------------------------------------------------------------------
|---->指針對象存放地址,也就是{"Function"},{"Parameter"},{"Measure"},等等這些文本存放在哪里
| |---->指針存放的位置,是這些字符的首地址應當存放在哪里 因為這是個指針數組存放的內容就是每個字符串的開始地址
| |
U8 _CONST_ * _CONST_ TopItemEN[]=
{
{"Function"},
{"Parameter"},
{"Measure"},
{"Language"},
{"Test"},
};
我們均把這些存放在代碼區,以減少對RAM的占用
----------------------------------------------------------------------------
*/
//---------------------------------------------------
//各個菜單的資源
//命名方式是:
//---------------------------------------------------
//頂層菜單
//U8 _CONST_ * _CONST_ TopItemCN[]=
U8 * _CONST_ TopItemCN[]=
{
{"功能"},
{"參數"},
{"測量"},
{"語言"},
{"測試"},
};
//U8 _CONST_ * _CONST_ TopItemEN[]=
U8 * _CONST_ TopItemEN[]=
{
{"Function"},
{"Parameter"},
{"Measure"},
{"Language"},
{"Test"},
};
//U8 _CONST_ * _CONST_ FuncItemCN[]=
U8 * _CONST_ FuncItemCN[]=
{
{"讀出數據"},
{"背光控制"},
{"出廠設置"},
{"修改密碼"},
};
//U8 _CONST_ * _CONST_ FuncItemEN[]=
U8 * _CONST_ FuncItemEN[]=
{
{"Read Data"},
{"BackLight"},
{"Factory Set"},
{"Change CODE"}
};
//"參數"菜單項的內容和長度
//U8 _CONST_ * _CONST_ ParaItemCN[]=
U8 * _CONST_ ParaItemCN[]=
{
{"閾值"},
{"死時間T"},
{"靈敏度K"},
{"測量時間"}
};
//U8 _CONST_ * _CONST_ ParaItemEN[]=
U8 * _CONST_ ParaItemEN[]=
{
{"Menu0"},
{"Menu1"},
{"Menu2"},
{"Menu3"},
{"Menu4"},
{"Menu5"},
{"Menu6"},
{"Menu7"},
};
//"語言"菜單項的內容和長度
//U8 _CONST_ * _CONST_ LanguageItemCN[]=
U8 * _CONST_ LanguageItemCN[]=
{
{"中文"},
{"English"},
};
//U8 _CONST_ * _CONST_ LanguageItemEN[]=
U8 * _CONST_ LanguageItemEN[]=
{
{"中文"},
{"English"},
};
//測量
//U8 _CONST_ * _CONST_ MeasureItemCN[]=
U8 * _CONST_ MeasureItemCN[]=
{
{"檢測上拉電阻"},
{"清空出錯記錄"},
{"在線命令"},
{"輸入口測試"},
{"模擬主軸測試"},
{"軸信號測試"},
{"繼電器測試"},
};
//U8 _CONST_ * _CONST_ MeasureItemEN[]=
U8 * _CONST_ MeasureItemEN[]=
{
{"PushUp Res"},
{"ClearErrCount"},
{"OnlineCMD "},
{"SysInputTest"},
{"SVC TEST"},
{"AXis TEST"},
{"Relay TEST"},
};
//提示鍵的文本
//U8 _CONST_ * _CONST_ TipCN[]=
U8 * _CONST_ TipCN[]=
{
{"Menu"},
{"選擇"},
{"確認"},
{"取消"},
{"?確認?"},
};
//U8 _CONST_ * _CONST_ TipEN[]=
U8 * _CONST_ TipEN[]=
{
{"Menu"},
{"Select"},
{"Ok"},
{"Cancel"},
{"? OK ?"},
};
//----------------------------------------
//宏定義:
#define MenuWhat(n) {(U8 **)n,(sizeof(n)/sizeof(U8 *)),0}
//圖標層
_CONST_ struct Menu IcoMenu[] =
{
MenuWhat(TopItemCN),
MenuWhat(TopItemEN),
};
//功能菜單
_CONST_ struct Menu MenuFunc[] =
{
MenuWhat(FuncItemCN),
MenuWhat(FuncItemEN),
};
//參數菜單
_CONST_ struct Menu MenuPara[] =
{
MenuWhat(ParaItemCN),
MenuWhat(ParaItemEN),
};
//測量菜單
_CONST_ struct Menu MenuMeasure[] =
{
MenuWhat(MeasureItemCN),
MenuWhat(MeasureItemEN),
};
//語言菜單
_CONST_ struct Menu MenuLanguage[] =
{
MenuWhat(LanguageItemCN),
MenuWhat(LanguageItemEN),
};
//Tip
_CONST_ struct Menu Tip[] =
{
MenuWhat(TipCN),
MenuWhat(TipEN),
};
//更改密碼時詢問的圖標索引號
#define WarningICO 5
#define PassICO 0
//圖標索引
U8 _CONST_ * _CONST_ icos[]=
{
Function, //功能
Para, //參數
Time, //時鐘
Action, //測量
Menu, //語言
Question, //詢問
Warning,
Sound,
};
//跳轉到指定菜單
/*
void Jump2Menu(U8 Index)
{
KeyFuncIndex = Index; //jump to Menu index
}
*/
void Jump2Menu(U8 Index,U8 FlashMode)
{
KeyFuncIndex = Index; //jump to Menu index
if(FlashMode){
Flash = FlashMode;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -