目錄
1 映射表在串口數據解析中的應用
1.1 數據結構
1.2 指令、函數映射表
1.3 串口解析函數實現
2 映射表在UI設計中的應用
2.1 數據結構
2.2 函數映射表
2.3 定義兩個變量保存當前場景和上一個場景
2.4 按下Up按鍵 跳轉到指定場景current_stage的值根據映射表改變
2.5 場景改變后 根據映射表執行相應的函數Handler
1 映射表在串口數據解析中的應用
1.1 數據結構
typedefstruct { charCMD[CMDLen]; unsignedchar(*cmd_operate)(char*data); }Usart_Tab;
1.2 指令、函數映射表
staticconstUsart_TabInstructionList[CMDMax]= { {"PWON",PowOn}, {"PWOFF",PowOff}, {"HDCP",HdcpOnOff}, {"/V",QueryKaVersion}, {"EDIDUpgrade",UpdataEDID}, {"Psave",Psave}, {"Precall",Precall}, {"Pclear",Pclear}, };
1.3 串口解析函數實現
unsignedcharDataAnalysis(char*buf) { unsignedchari,Result; char*NEXT=NULL; for(i=0;i2 映射表在UI設計中的應用
2.1 數據結構
菜單枚舉:
typedefenum { stage1=0, stage2, stage3, stage4, stage5, stage6, stage7, stage8, stage9, }SCENE;數據結構:
typedefstruct{ void(*current_operate)();//當前場景的處理函數 SCENEIndex;//當前場景的標簽 SCENEUp;//按下Up鍵跳轉的場景 SCENEDown;//按下Down鍵跳轉的場景 SCENERight;//按下Left鍵跳轉的場景 SCENELeft;//按下Right鍵跳轉的場景 }STAGE_TAB;2.2 函數映射表
STAGE_TABstage_tab[]={ #.operateIndexUpDownLeftRight {Stage1_Handler,stage1,stage4,stage7,stage3,stage2}, {Stage2_Handler,stage2,stage5,stage8,stage1,stage3}, {Stage3_Handler,stage3,stage6,stage9,stage2,stage1}, {Stage4_Handler,stage4,stage7,stage1,stage6,stage5}, {Stage5_Handler,stage5,stage8,stage2,stage4,stage6}, {Stage6_Handler,stage6,stage9,stage3,stage5,stage4}, {Stage7_Handler,stage7,stage1,stage4,stage9,stage8}, {Stage8_Handler,stage8,stage2,stage5,stage7,stage9}, {Stage9_Handler,stage9,stage3,stage6,stage8,stage7}, };2.3 定義兩個變量保存當前場景和上一個場景
charcurrent_stage=stage1; charprev_stage=current_stage;2.4 按下Up按鍵 跳轉到指定場景current_stage的值根據映射表改變
current_stage =stage_tab[current_stage].Up;
2.5 場景改變后 根據映射表執行相應的函數Handler
if(current_stage!=prev_stage) { stage_tab[current_stage].current_operate(); prev_stage=current_stage; }審核編輯:黃飛
-
嵌入式開發
+關注
關注
18文章
1028瀏覽量
47563 -
函數
+關注
關注
3文章
4327瀏覽量
62571 -
串口數據
+關注
關注
0文章
33瀏覽量
13881 -
數據結構
+關注
關注
3文章
573瀏覽量
40123
原文標題:嵌入式開發的一個騷操作!你用過嗎?
文章出處:【微信號:knifewheat,微信公眾號:小麥大叔】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論