HM-SPMS/product/common/sysconfig/potobuf/IntelliAlmMsg.proto
2025-03-13 11:01:20 +08:00

137 lines
6.2 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//========================================================================================
// @file IntelliAlmMsg.proto
// @brief 智能告警服务相关消息及结构
// @author yikenan
//========================================================================================
syntax="proto2";
package iot_idl;
// 缩写说明:
// Intelli : Intelligent
// Alm : Alarm
// IA : Intelligent Alarm
// SEPR: Separate
// S2C : Server To Client
// C2S : Client To Server
//========================================================================================
// 消息类型枚举
//========================================================================================
enum enIntelliAlmMsgType
{
//====================================================================================
// 服务端S发给客户端C比如告警窗的所有CMbMessagePara1是AS的DomainIDPara2是消息序号
MT_IA_S2C_SEQNO = 1; // 服务端向客户端发送当前序号,本消息自身不占用(不增加)序号
MT_IA_C2S_SEQNO_REQ = 2; // 客户端向服务端请求当前序号
MT_IA_S2C_ALL = 3; // 服务端向客户端发送全部告警
MT_IA_C2S_ALL_REQ = 4; // 客户端请求全部告警
MT_IA_C2S_RT_REQ = 5; // 客户端向服务端请求重传消息,
// Para1是客户端收到的最后一条有效消息序号
// 服务端从请求序号的下一条开始重传
MT_IA_S2C_ADD = 6; // 服务端向客户端发送添加告警
MT_IA_S2C_DEL = 7; // 服务端向客户端发送删除告警,逻辑状态切换为 IALS_DELETED
MT_IA_C2S_DEL_REQ = 8; // 客户端请求删除告警
MT_IA_S2C_BROKEN = 9; // 服务端向客户端通知告警不完整,逻辑状态切换为 IALS_BROKEN
MT_IA_S2C_RELEASE = 10; // 服务端向客户端发送释放告警,释放内存
MT_IA_C2S_SEPR_REQ = 11; // 将原始告警从原来的智能告警中分离出来,组成新的一条智能告警
MT_IA_C2S_MERGE_REQ = 12; // 将多条原始告警合并为一条智能告警
}
// 单条智能告警的逻辑状态
enum enIntelliAlmLogicState
{
IALS_NORMAL = 1; // 正常
IALS_DELETED = 2; // 已删除
// 不完整的,该智能告警包含的原始告警有至少一条在原始告警端内存中不存在,可能性如下:
// 1、当智能告警处于 IALS_DELETED 状态时,其原始告警允许被释放,
// 原始告警服务端按先入先出原则从缓存队列释放允许释放的告警,
// 智能告警端收到原始告警已释放的通知后,将其所属的智能告警标记为 IALS_BROKEN 状态。
// 当该智能告警的全部原始告警都释放后,释放该智能告警条目。
// 2、异常情况比如服务端异常退出缓存文件被人为删除、修改等。
// 在告警窗上建议的显示方式:不显示 或 显示为“详细内容请查询历史事件”
IALS_BROKEN = 3;
}
//========================================================================================
// 服务端之间同步,以及与客户端的交互消息结构
//========================================================================================
// 单个智能告警信息
message SIntelliAlmInfo
{
required enIntelliAlmLogicState logic_state =1; //客户端上的逻辑状态
required int32 domain_id =2; //域ID
required int32 priority =3; //告警优先级
required int64 time_stamp =4; //时标RFC1305、POSIX时标标准
required string uuid_base64 =5; //本条智能告警的唯一标识base64编码
required string content =6; //告警内容
optional string disposal_plan =7; //处置预案
//关联的 原始告警 的uuidbase64编码其中第一个可被认为是主告警
repeated string raw_alm_uuid =8;
}
// 服务端通知客户端增加告警,或同步全部告警,均使用本消息结构,使用消息类型区分
message SIntelliAlmAdd
{
// 序号使用消息总线中的可选参数,服务端与接口库内自己维护,无需应用管理
repeated SIntelliAlmInfo alm_info =1; //智能告警信息序列
}
// 客户端向服务端请求删除告警、服务端回复、向其他客户端同步,逻辑状态切换为 IALS_DELETED
// 不要动原始告警,原始告警端有消息通知
message SIntelliAlmDel
{
//若客户端批量删除不同域的告警,应当先行分组
required int32 domain_id =1; //域ID本消息中的告警都应属于此域
repeated string uuid_base64 =2; //需删除的 智能告警 的uuid
}
// 服务端向客户端通知智能告警不完整,逻辑状态切换为 IALS_BROKEN
message SIntelliAlmBroken
{
repeated string uuid_base64 =1; //不完整的 智能告警 的uuid
}
// 服务端向客户端通知释放智能告警,释放相应智能告警记录的内存
// 不要动原始告警,原始告警端有消息通知
message SIntelliAlmRelease
{
repeated string uuid_base64 =1; //需释放的 智能告警 的uuid
}
// 客户端向服务端请求 将原始告警从其原智能告警中分离
message SIntelliAlmSepr
{
required int32 domain_id =1; //域ID被分离的告警都属于此域
// 需分离的 原始告警 的uuidbase64编码
// 这些原始告警,应属于同一条智能告警,否则服务端将忽略本次操作
repeated string raw_alm_uuid =2;
}
// 客户端向服务端请求 将多条原始告警合并为一条智能告警
message SIntelliAlmMerge
{
required int32 domain_id =1; //域ID合并的告警都属于此域
// 需合并 原始告警 的uuidbase64编码
// 这些原始告警不应属于任何智能告警,否则服务端将忽略本次操作
repeated string raw_alm_uuid =2;
}