2026年物业门控五金耗材推荐榜:中企创联工业品,小区/写字楼/物业多场景门控配件全覆盖
2026/3/2 14:07:46
//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;}}