赞
踩
关注、星标公众号,直达精彩内容
来源 | 网络
1 映射表在串口数据解析中的应用
1.1 数据结构
1.2 指令、函数映射表
1.3 串口解析函数实现
2 映射表在UI设计中的应用
2.1 数据结构
2.2 函数映射表
2.3 定义两个变量保存当前场景和上一个场景
2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变
2.5 场景改变后 根据映射表执行相应的函数Handler
- typedef struct
- {
- char CMD[CMDLen];
- unsigned char (*cmd_operate)(char *data);
- }Usart_Tab;
- static const Usart_Tab InstructionList[CMDMax]=
- {
- {"PWON",PowOn},
- {"PWOFF",PowOff},
- {"HDCP",HdcpOnOff},
- {"/V",QueryKaVersion},
- {"EDIDUpgrade",UpdataEDID},
- {"Psave",Psave},
- {"Precall",Precall},
- {"Pclear",Pclear},
- };
- unsigned char DataAnalysis(char *buf)
- {
- unsigned char i,Result;
- char *NEXT=NULL;
- for(i=0;i<CMDMax;i++)
- {
- NEXT=StrCmp(buf,(char*)InstructionList[i].CMD);
- if(NEXT!=NULL)
- {
- usartfuncp=InstructionList[i].cmd_operate;
- Result=(*usartfuncp)(NEXT);
- }
- }
- return Result;
- }
菜单枚举:
- typedef enum
- {
- stage1=0,
- stage2,
- stage3,
- stage4,
- stage5,
- stage6,
- stage7,
- stage8,
- stage9,
- }SCENE;
数据结构:
- typedef struct {
- void (*current_operate)(); //当前场景的处理函数
- SCENE Index; //当前场景的标签
- SCENE Up; //按下Up键跳转的场景
- SCENE Down; //按下Down键跳转的场景
- SCENE Right; //按下Left键跳转的场景
- SCENE Left; //按下Right键跳转的场景
- }STAGE_TAB;
- 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},
- };
- char current_stage=stage1;
- char prev_stage=current_stage;
current_stage =stage_tab[current_stage].Up;
- if(current_stage!=prev_stage)
- {
- stage_tab[current_stage].current_operate();
- prev_stage=current_stage;
- }
文章来源:物联网IoT技术
❞
版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“星球”加入知识星球,有问必答。
点击“阅读原文”查看知识星球详情,欢迎点分享、收藏、点赞、在看。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。