//header file/*types of master commands*/#define FALLBACK 0x5A#define MASTERIDENT 0x95#define DEVICEIDENT 0x96#define DEVICE_STARTUP 0x97#define PD_OUTOUT_OPERATE 0x98#define DEVICE_OPERATE 0x99#define DEVICE_PREOPERATE 0x9A//source fileswitch(slave_state){caseFALLBACK:{//to add your codebreak;}caseMASTERIDENT:{break;}caseDEVICEIDENT:{break;}caseDEVICE_STARTUP:{break;}casePD_OUTOUT_OPERATE:{break;}caseDEVICE_PREOPERATE:{break;}caseDEVICE_OPERATE:{break;}default:{break;}}
//define communication command#define COMM_SERVER_SCAN 0x0001#define COMM_SERVER_INFO 0x0002#define COMM_SERVER_DATA 0x0003#define COMM_SERVER_DONE 0x0004//define structtypedefstruct{uint16_tuiCmd;//communication commandvoid(*pHandler)(CommServerPack_t *pStr);//function pointer} CommServerHandler_t;//define struct arrayconstCommServerHandler_t g_strCommServerHandler[] ={{ COMM_SERVER_SCAN, fCommServerVendorInfo},{COMM_SERVER_INFO, fCommServerVendorInfo},{COMM_SERVER_DATA, fCommServerVendorInfo},{COMM_SERVER_DONE, fCommServerVendorInfo},{0,0},};// define communication info handlevoidfCommServerVendorInfo(CommServerPack_t *pStr){//add your code}//state machine applicationfor(i =0;; i++){if(g_strCommServerHandler[i].uiCmd ==0x00){break;}elseif(strRecvPack.uiCmd == g_strCommServerHandler[i].uiCmd){g_strCommServerHandler[i].pHandler(&strRecvPack);break;}}
---------------------
作者:dffzh
链接:https://bbs.21ic.com/icview-3457184-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。