syntax = "proto2"; package iot_idl.linkage; //简写说明 //Opt : 操作控制台 //Lcs : linkage server 联动服务 //Hmi : 人机界面 enum enChannelMsgType { //MT_OPT_LINKAGE_CTRL_DOWN = 0;// operate_server 联动控制下行报文(operate_server<-linkage_server) //MT_OPT_LINKAGE_CTRL_UP = 1;// operate_server 联动控制上行报文(operate_server->linkage_server) MT_LINKAGE_CTRL_HMI_DOWN = 2; // linkage_server 联动控制下行报文(linkage_server<-hmi) MT_LINKAGE_CTRL_HMI_UP = 3; // linkage_server 联动控制上行报文(linkage_server->hmi) MT_LINKAGE_ACTION_UP = 4; // 服务到hmi的消息 推图 和 提示信息 } // lcs 和 hmi 之间的消息类型 //======================================================================================== enum enLcsMsgType { enumStatusMessage = 1; //lcs -> hmi 联动状态更新 enumLinkStartRequestMessage = 2; //lcs -> hmi 联动操作请求 enumLinkOperateMessage = 3; //hmi->lcs hmi发送给联动服务的操作 enumLinkOperateMessageAck = 4; //lcs ->hmi hmi发送给联动服务的操作应答 enumUiRequestMessage = 5; //lcs->hmi人工干预请求 enumUiRequestMessageAck = 6; //hmi->lcs人工干预请求 应答 enumActionToHmiMessage = 7; //server -> hmi 动作执行消息 } //======================================================================================== //lcs 包头消息,每个消息必须包含 //======================================================================================== message LcsPkgHead { required string source_tag = 1; // 发送源 可选项: hmi,linkage,opt required enLcsMsgType msg_type = 2; //消息类型 required int32 source_domain = 3; //消息所在域 required int32 target_domain = 4; //消息发送至目标域 required int32 para1 = 5; //预留 required int32 para2 = 6; }; //======================================================================================== // lcs -> hmi 的消息定义 - begin //======================================================================================== enum enErrorCode { enumCode_SUCCESS = 0; //正常 enumCode_ERRO_UNKNOW = 1; //未知错误 enumCode_ERRO_TIMEFLAG_OLD = 2; //时标不一致 enumCode_ERRO_NOFOUND_LINK = 3; //没有找到该联动 enumCode_ERRO_ACTION_TIMEOUT = 4; //动作执行超时 enumCode_ERRO_ACTION_RECOVER = 5; //主备切换\联动恢复 导致的联动失败 enumCode_ERRO_ACTION_OPT_FAILED = 6; //动作执行失败 enumCode_ERRO_ACTION_UI_TIMEOUT = 7; //动作执行人工干预超时 enumCode_ERRO_ACTION_SEND_FAILED = 8; //发送动作操作失败 } //错误参数 message ErrorParameter { required enErrorCode ErrorCode = 1; //错误码 required string ErrorDescription = 2; //错误描述 } //错误参数 message ExecuteStatusParameter { required int32 StatusCode = 1; //状态码 0为成功 非零为错误状态 optional ErrorParameter erro_param = 2; //错误参数 } //联动状态 enum ENLcsStatus { enumLINK_RESTING_STATUS = 0; //未执行 enumLINK_RUNNING_STATUS = 1; //正在执行 enumLINK_TRIGGERED_STATUS = 2; //已触发 enumLINK_FAILED_STATUS = 3; //执行失败 enumLINK_SUCCESS_STATUS = 4; //执行成功 enumLINK_STOP_STATUS = 5; //执行终止 enumLINK_PAUSE_STATUS = 6; //执行暂停 enumLINK_SKIP_STATUS = 7; //执行跳过 }; //勾选状态 enum ENLcsNodeCheckStatus { enumNodeUnChecked = 0; //不勾选 enumnodePartiallyChecked = 1; //部分勾选 enumNodeChecked = 2; //勾选 }; //动作信息 message ActionNodeStatusParameter { required string action_name = 1; //功能名称 required string action_desc = 2; //描述 required ENLcsNodeCheckStatus check_state = 3; //勾选状态 required ENLcsStatus node_state = 4; //节点状态 required int64 timeflag = 5; //时标 }; //功能信息 message FucNodeStatusParameter { required string fuc_name = 1; //功能名称 required string fuc_desc = 2; //描述 required ENLcsNodeCheckStatus check_state = 3; //勾选状态 required int64 timeflag = 4; //时标 required ENLcsStatus node_state = 5; //节点状态 repeated ActionNodeStatusParameter nodelist = 6; //动作节点 }; //联动信息 message LinkNodeStatusParameter { required string link_name = 1; //联动名称 required string link_desc = 2; //描述 required ENLcsNodeCheckStatus check_state = 3; //勾选状态 required int64 timeflag = 4; //时标 required ENLcsStatus node_state = 5; //节点状态 repeated FucNodeStatusParameter nodelist = 6; //功能节点 }; message ActorParameter { required int32 user_id = 1; //用户id required int32 user_groupId = 2; //用户组id required string host_name = 3; //主机名 required string user_name = 4; //用户名 } //lcs -> hmi 联动服务发送给hmi的 联动状态 联动状态只发送,不需要hmi应答 message StatusChangeMessage { required LcsPkgHead pkg_head = 1; required LinkNodeStatusParameter nodelist = 2; repeated ExecuteStatusParameter execute_status = 3; }; //半自动消息流程: //lcs(LinkStartRequestMessage)->hmi(LinkOperateMessage)->lcs(LinkOperateMessageAck) //lcs -> hmi 半自动请求开始 message LinkStartRequestMessage { required LcsPkgHead pkg_head = 1; required LinkNodeStatusParameter nodelist = 2; required int64 trigger_time = 3; //触发时间 }; enum ENUiOperateType { enumUI_OP_RETRY = 1; //重试 enumUI_OP_STOP = 2; //终止 enumUI_OP_SKIP = 3; //跳过 }; //lcs -> hmi 人工干预请求 message UiRequestMessage { required LcsPkgHead pkg_head = 1; required ActorParameter actor = 2; required LinkNodeStatusParameter nodelist = 3; required ExecuteStatusParameter execute_status = 4; }; //hmi -> lcs hmi发送给联动服务的 人工干预应答 message UiRequestMessageAck { required LcsPkgHead pkg_head = 1; required ActorParameter actor = 2; required LinkNodeStatusParameter nodelist = 3; required ENUiOperateType optype = 4; }; //======================================================================================== // lcs -> hmi 的消息定义 - end //======================================================================================== //======================================================================================== // hmi -> lcs 的消息定义 - begin //======================================================================================== //hmi->link操作类型 enum ENLinkOperateType { enumOP_LINK_START = 0; //联动开始 enumOP_LINK_STOP = 1; //联动终止 enumOP_LINK_PAUSE = 2; //联动暂停 enumOP_LINK_CONTINUE = 3; //联动继续 enumOP_SES_START = 4; //单步开始 enumOP_SES_CONTINUE = 5; //单步继续 }; //hmi->lcs hmi发送给联动服务的操作 message LinkOperateMessage { required LcsPkgHead pkg_head = 1; required LinkNodeStatusParameter link_node = 2; required ActorParameter actor = 3; required ENLinkOperateType opreate_type = 4; }; //lcs ->hmi hmi发送给联动服务的操作应答 message LinkOperateMessageAck { required LcsPkgHead pkg_head = 1; required LinkNodeStatusParameter link_node = 2; required ENLinkOperateType opreate_type = 3; required ActorParameter actor = 4; required ExecuteStatusParameter execute_status = 5; }; //======================================================================================== // hmi -> lcs 的消息定义 - end //======================================================================================== //推图 和 提示信息 enum ENActionOperateType { enumPushType = 0; //推图 enumHintType = 1; //提示信息 } //推图 message PushParameter { required string graph_name = 1; //图名 }; //提示信息 message HintParameter { required string hint_info = 1; //提示的信息 }; //server ->hmi 的消息 message ActionToHmiMessage { required LcsPkgHead pkg_head = 1; required ENActionOperateType action_type = 2;//动作类型 required string host_name = 3; //主机名 optional PushParameter push_param = 4;//推图 optional HintParameter hint_param = 5;//提示信息 };