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;
static const Usart_Tab InstructionList[CMDMax]=
{
{"PWON",PowOn},{"PWOFF",PowOff},{"HDCP",HdcpOnOff},{"/V",QueryKaVersion},{"EDIDUpgrade",UpdataEDID},{"Psave",Psave},{"Precall",Precall},{"Pclear",Pclear},
};