映射表在串口数据解析中的应用


1.串口数据解析函数
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;
}

2.定义数据结构
typedef struct 
{
char CMD[CMDLen];
unsigned char (*cmd_operate)(char *data);

}Usart_Tab;


3.指令、函数映射表
static const Usart_Tab InstructionList[CMDMax]=
{
{"PWON",PowOn},
{"PWOFF",PowOff},
{"HDCP",HdcpOnOff},
{"/V",QueryKaVersion},
{"EDIDUpgrade",UpdataEDID},
{"Psave",Psave},
{"Precall",Precall},
{"Pclear",Pclear},
};

猜你喜欢

转载自blog.csdn.net/appleJanLinux/article/details/78977632