目錄
1 映射表在串口數(shù)據(jù)解析中的應(yīng)用
1.1 數(shù)據(jù)結(jié)構(gòu)
1.2 指令、函數(shù)映射表
1.3 串口解析函數(shù)實(shí)現(xiàn)
2 映射表在UI設(shè)計(jì)中的應(yīng)用
2.1 數(shù)據(jù)結(jié)構(gòu)
2.2 函數(shù)映射表
2.3 定義兩個(gè)變量保存當(dāng)前場(chǎng)景和上一個(gè)場(chǎng)景
2.4 按下Up按鍵 跳轉(zhuǎn)到指定場(chǎng)景current_stage的值根據(jù)映射表改變
2.5 場(chǎng)景改變后 根據(jù)映射表執(zhí)行相應(yīng)的函數(shù)Handler
1 映射表在串口數(shù)據(jù)解析中的應(yīng)用
1.1 數(shù)據(jù)結(jié)構(gòu)
typedefstruct
{
charCMD[CMDLen];
unsignedchar(*cmd_operate)(char*data);
}Usart_Tab;
1.2 指令、函數(shù)映射表
staticconstUsart_TabInstructionList[CMDMax]= { {"PWON",PowOn}, {"PWOFF",PowOff}, {"HDCP",HdcpOnOff}, {"/V",QueryKaVersion}, {"EDIDUpgrade",UpdataEDID}, {"Psave",Psave}, {"Precall",Precall}, {"Pclear",Pclear}, };
1.3 串口解析函數(shù)實(shí)現(xiàn)
unsignedcharDataAnalysis(char*buf)
{
unsignedchari,Result;
char*NEXT=NULL;
for(i=0;i
2 映射表在UI設(shè)計(jì)中的應(yīng)用
2.1 數(shù)據(jù)結(jié)構(gòu)
菜單枚舉:
typedefenum
{
stage1=0,
stage2,
stage3,
stage4,
stage5,
stage6,
stage7,
stage8,
stage9,
}SCENE;
數(shù)據(jù)結(jié)構(gòu):
typedefstruct{
void(*current_operate)();//當(dāng)前場(chǎng)景的處理函數(shù)
SCENEIndex;//當(dāng)前場(chǎng)景的標(biāo)簽
SCENEUp;//按下Up鍵跳轉(zhuǎn)的場(chǎng)景
SCENEDown;//按下Down鍵跳轉(zhuǎn)的場(chǎng)景
SCENERight;//按下Left鍵跳轉(zhuǎn)的場(chǎng)景
SCENELeft;//按下Right鍵跳轉(zhuǎn)的場(chǎng)景
}STAGE_TAB;
2.2 函數(shù)映射表
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 定義兩個(gè)變量保存當(dāng)前場(chǎng)景和上一個(gè)場(chǎng)景
charcurrent_stage=stage1;
charprev_stage=current_stage;
2.4 按下Up按鍵 跳轉(zhuǎn)到指定場(chǎng)景current_stage的值根據(jù)映射表改變
current_stage =stage_tab[current_stage].Up;
2.5 場(chǎng)景改變后 根據(jù)映射表執(zhí)行相應(yīng)的函數(shù)Handler
if(current_stage!=prev_stage)
{
stage_tab[current_stage].current_operate();
prev_stage=current_stage;
}
審核編輯:黃飛
-
嵌入式開發(fā)
+關(guān)注
關(guān)注
18文章
1101瀏覽量
49823 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4405瀏覽量
66794 -
串口數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
34瀏覽量
14231 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
41343
原文標(biāo)題:嵌入式開發(fā)的一個(gè)騷操作!你用過(guò)嗎?
文章出處:【微信號(hào):knifewheat,微信公眾號(hào):小麥大叔】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式開發(fā)調(diào)試經(jīng)驗(yàn)分享
嵌入式開發(fā)流程是怎樣的?
基于ARM的嵌入式開發(fā)
嵌入式開發(fā)
嵌入式開發(fā)好學(xué)嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么
嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程
嵌入式開發(fā)(一):嵌入式開發(fā)新手入門
嵌入式開發(fā)資料免費(fèi)分享
嵌入式開發(fā)putty串口打印亂碼
嵌入式開發(fā)(一):嵌入式開發(fā)新手入門(轉(zhuǎn)載后續(xù)需要修改補(bǔ)充)

嵌入式開發(fā):映射表在串口數(shù)據(jù)解析中的應(yīng)用
評(píng)論