來源:物聯(lián)網(wǎng)IoT技術(shù)
一、映射表在串口數(shù)據(jù)解析中的應(yīng)用
1、數(shù)據(jù)結(jié)構(gòu)
typedef struct
{
char CMD[CMDLen];
unsigned char (*cmd_operate)(char *data);
}Usart_Tab;
2、指令、函數(shù)映射表
static const Usart_Tab InstructionList[CMDMax]= { {"PWON",PowOn}, {"PWOFF",PowOff}, {"HDCP",HdcpOnOff}, {"/V",QueryKaVersion}, {"EDIDUpgrade",UpdataEDID}, {"Psave",Psave}, {"Precall",Precall}, {"Pclear",Pclear}, };
3、串口解析函數(shù)實(shí)現(xiàn)
unsigned char DataAnalysis(char *buf)
{
unsigned char i,Result;
char *NEXT=NULL;
for(i=0;i二、映射表在UI設(shè)計(jì)中的應(yīng)用
1、數(shù)據(jù)結(jié)構(gòu)
菜單枚舉:
typedef enum
{
stage1=0,
stage2,
stage3,
stage4,
stage5,
stage6,
stage7,
stage8,
stage9,
}SCENE;
數(shù)據(jù)結(jié)構(gòu):
typedef struct {
void (*current_operate)(); //當(dāng)前場景的處理函數(shù)
SCENE Index; //當(dāng)前場景的標(biāo)簽
SCENE Up; //按下Up鍵跳轉(zhuǎn)的場景
SCENE Down; //按下Down鍵跳轉(zhuǎn)的場景
SCENE Right; //按下Left鍵跳轉(zhuǎn)的場景
SCENE Left; //按下Right鍵跳轉(zhuǎn)的場景
}STAGE_TAB;
2、函數(shù)映射表
STAGE_TAB stage_tab[]={
#. operate Index Up Down Left Right
{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},
};
3、定義兩個變量保存當(dāng)前場景和上一個場景
char current_stage=stage1; char prev_stage=current_stage;
4、按下Up按鍵 跳轉(zhuǎn)到指定場景current_stage的值根據(jù)映射表改變
current_stage =stage_tab[current_stage].Up;
5、場景改變后 根據(jù)映射表執(zhí)行相應(yīng)的函數(shù)Handler
if(current_stage!=prev_stage)
{
stage_tab[current_stage].current_operate();
prev_stage=current_stage;
}
-
C語言
+關(guān)注
關(guān)注
183文章
7644瀏覽量
145642 -
串口
+關(guān)注
關(guān)注
15文章
1619瀏覽量
82864 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
41602
原文標(biāo)題:C語言映射表在串口數(shù)據(jù)解析中的應(yīng)用
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
串口數(shù)據(jù)解析
labview串口數(shù)據(jù)解析
請問有STM32F4系列的DMA1各通道和數(shù)據(jù)流的映射表嗎
解析GPS模塊串口發(fā)送的數(shù)據(jù)
imx6ul開發(fā)板的靜態(tài)地址映射表在哪幾個文件中
STM32H7 DMA請求映射表記錄在哪里可以找到呢?
labview串口數(shù)據(jù)解析
51單片機(jī)(STC15W408AS)映射printf函數(shù) 串口收發(fā)實(shí)現(xiàn)
LabVIEW中的映射表是什么?
C語言映射表在串口數(shù)據(jù)解析中的應(yīng)用
評論