#pragma once typedef enum _Cmd_Echo { CMD_ECHO_IGNORE = -1, CMD_ECHO_NOTARGET, CMD_ECHO_NG, CMD_ECHO_OK, CMD_ECHO_MAX }CMD_ECHO; typedef enum _Packet_Cmd { PACKET_CMD_NONE = -1, PACKET_CMD_OPEN, PACKET_CMD_CLOSE, PACKET_CMD_GET, PACKET_CMD_UPDATE, PACKET_CMD_ADD, PACKET_CMD_DEL, PACKET_CMD_EXE, PACKET_CMD_DATA, PACKET_CMD_MSG, PACKET_CMD_ONLINE,//设备掉线后重新注册到Root PACKET_CMD_MAX }PACKET_CMD; typedef enum _Packet_Type { PACKET_TYPE_NONE = -1, PACKET_TYPE_REQ, PACKET_TYPE_RES, PACKET_TYPE_NOTIFY, PACKET_TYPE_MAX }PACKET_TYPE; typedef enum _Dios_File_Flags { IMAGE_FH = 1, ACTION = 2, NOTIFY_MSG = 4, NOTIFY_UPDATE = 8, NOTIFY_DATA = 16, NOTIFY_ACTION = 32, ALL_ACCESS = 64 - 1, }DIOS_FILE_FLAGS; typedef enum _Action_Sync_Mode { ACTION_SYNC, ACTION_ASYNC, }ACTION_SYNC_MODE; #define DIOS_PACK_IDX ("IDX") #define DIOS_PACK_TYPE ("TYPE") #define DIOS_PACK_TYPE_REQ ("REQUEST") #define DIOS_PACK_TYPE_RES ("RESPONSE") #define DIOS_PACK_TYPE_NOTIFY ("NOTIFY") #define DIOS_PACK_CMD ("CMD") //#define DIOS_PACK_CMD_GET ("GET") //#define DIOS_PACK_CMD_UPDATE ("UPDATE") //#define DIOS_PACK_CMD_ADD ("ADD") //#define DIOS_PACK_CMD_DEL ("DEL") //#define DIOS_PACK_CMD_EXE ("EXE") //#define DIOS_PACK_CMD_DATA ("DATA") //#define DIOS_PACK_CMD_OPEN ("OPEN") //#define DIOS_PACK_CMD_CLOSE ("CLOSE") #define DIOS_PACKET_SYNC ("SYNC") #define DIOS_PACK_HANDLE ("HANDLE") #define DIOS_PACK_HANDLE_ROUTE ("ROUTE") #define DIOS_PACK_HANDLE_FLAGS ("FLAGS") #define DIOS_PACK_HANDLE_LANG ("LANG") #define DIOS_PACKET_HANDLE_KEY ("HANDLEID") #define DIOS_PACK_HANDLE_OWNERID ("OWNERID") #define DIOS_PACK_HANDLE_DEVID ("DEVID") #define DIOS_PACK_TARGET_BUSID ("EBUSID") #define DIOS_PACK_TARGET_MACHINEID ("MACHINEID") #define DIOS_PACK_TARGET_PROCID ("PROCID") #define DIOS_PACK_TARGET_ADDR ("ADDR") #define DIOS_PACK_KEY ("KEY") #define DIOS_PACK_ACTION ("Action") #define DIOS_PACK_CONTEXT ("CONTEXT") #define DIOS_PACK_RETURN ("RET") #define DIOS_PACK_CODE ("CODE") #define DIOS_PACK_MSG ("MSG") //因为路由要发往Local or Eth, //OPEN命令除了TargetBusID以外,没有其他信息,导致无法确定是发给哪个方向. //所以额外添加此ROUTE Flag到文件句柄中 //这个选项只在内部跟不同Channel通信的时候用,应用的Client应该缺省就是Any. //框架层截断应用层的包,并由框架层分析并判断发给谁. //any:路由方向是先发往本地,如果本地无目的地,再次发往Eth. //Local:路由方向就是本地,同理,Req&Res&Notify应该都是本地. //Eth:路由方向就是远程机器,其他同上. typedef enum _Dios_Packet_Route { DIOS_PACKET_ROUTE_NOTARGET = -1,//can't send DIOS_PACKET_ROUTE_ANY,//to any possible direction DIOS_PACKET_ROUTE_LOCAL,//only local machine DIOS_PACKET_ROUTE_ETH,//only remote machine DIOS_PACKET_ROUTE_MAX }DIOS_PACKET_ROUTE;