HM-SPMS/product/common/sysconfig/potobuf/AlarmMessage.proto

328 lines
16 KiB
Protocol Buffer
Raw Normal View History

2025-03-13 11:01:20 +08:00
//========================================================================================
// @file AlarmMessage.proto
// @brief 告警服务相关消息及结构
// @author zhouzhenlgong yikenan
//========================================================================================
syntax="proto2";
package iot_idl;
// 缩写说明:
// Alm : Alarm
// Srv : Server
// Clt : Client
// Evt : Event
// Cfm : Confirm
// AP : Application
// AS : Alarm Server
// AC : Alarm Client
// EC : Event Client
// DP : Data Process
//========================================================================================
// 消息类型枚举
//========================================================================================
enum enAlmMsgType
{
// 应用与告警服务之间的交互Para1是DomainIDPara2是消息序号
MT_ALM_AP2AS_ADD = 1; // 应用程序添加告警
MT_ALM_AS2AP_ADD_ACK = 2; // 告警服务回复应用程序确认添加
MT_ALM_AP2AS_WAVE = 3; // 应用FES添加录波记录
MT_ALM_AS2AP_WAVE_ACK = 4; // 告警服务回复应用FES确认添加录波
//====================================================================================
// 告警服务AS发给告警客户端AC的所有CMbMessagePara1是AS的DomainIDPara2是消息序号
MT_ALM_AS2AC_SEQNO = 11; // 告警服务向告警客户端发送当前序号,本消息自身不占用(不增加)序号
MT_ALM_AC2AS_SEQNO_REQ = 12; // 告警客户端向告警服务请求当前序号
MT_ALM_AS2AC_ALL = 13; // 告警服务向告警客户端发送全部告警
MT_ALM_AC2AS_ALL_REQ = 14; // 告警客户端请求全部告警
MT_ALM_AC2AS_RT_REQ = 15; // 告警客户端向服务端请求重传消息,
// Para1是客户端收到的最后一条有效消息序号
// 服务端从请求序号的下一条开始重传
MT_ALM_AS2AC_ADD = 16; // 告警服务向告警客户端发送添加告警
MT_ALM_AS2AC_CFM = 17; // 告警服务向告警客户端发送确认告警
MT_ALM_AC2AS_CFM_REQ = 18; // 告警客户端请求确认告警Para1是alm_type方便服务端处理可以先不反序列化
MT_ALM_AS2AC_DEL = 19; // 告警服务向告警客户端发送删除告警
MT_ALM_AC2AS_DEL_REQ = 20; // 告警客户端请求删除告警
MT_ALM_AS2AC_RELEASE = 21; // 告警服务向告警客户端发送释放告警内存
MT_ALM_AS2AC_WAVE = 22; // 告警服务向告警客户端发送与故障录波文件的关联
//====================================================================================
MT_ALM_DP2AS_CFM = 90; // 数据处理服务向告警服务发送确认告警
MT_ALM_AS2DP_CFM_REQ = 91; // 告警服务向数据处理服务请求确认告警(清除告警标志)
}
//========================================================================================
// alm_style类型枚举
//========================================================================================
enum enAlmStyle
{
AS_ALARM = 0; // 告警动作
AS_ALARM_RTN = 1; // 告警恢复
AS_EVENT_ONLY = 2; // 仅产生事件
AS_DO_NOTHING = 3; // 无
}
//========================================================================================
// logic_state类型枚举
//========================================================================================
enum enAlmLogicState
{
ALS_ALARM = 0; // 告警状态
ALS_ALARM_CFM = 1; // 告警确认状态
ALS_RETURN = 2; // 告警返回状态
ALS_RETURN_CFM = 3; // 告警返回确认状态
ALS_EVT_ONLY = 4; // 仅事件
// 在原始告警窗删除后,可能还需要在智能告警窗展示
ALS_ALARM_DEL = 20; // 告警状态,且在原始告警窗已删除,可能是达到数量上限而删除的
ALS_ALARM_CFM_DEL = 21; // 告警确认状态,且在原始告警窗已删除
ALS_RETURN_DEL = 22; // 告警返回状态,且在原始告警窗已删除,可能是达到数量上限而删除的
ALS_RETURN_CFM_DEL = 23; // 告警返回确认状态,且在原始告警窗已删除
//ALS_EVT_ONLY_DEL = 24; // 无用,为与上面对应,占位
}
//========================================================================================
// 告警服务与产生告警的应用之间的交互消息结构
//========================================================================================
// 自定义告警参数
message SAlmManner
{
required int32 priority =1; //告警优先级
required int32 if_ack_on_rtn =2; //返回时自动确认告警0 否; 1 总是; 2 若动作告警已确认
required int32 del_act_on_ack =3; //0 确认后删除; 1 返回状态确认后删除; 2 返回状态确认后不删除
required int32 if_never_alm_on_rtn =4; //告警返回后不产生告警
required int32 if_water_alm =5; //是否流水账告警(0 替换式告警1 流水账告警)
}
// 告警内容关键字
message SAlmKeyword
{
required int32 id =1; //告警关键字ID
required string value =2; //关键字内容
}
// 应用发给告警服务的单个告警信息
message SAlmInfoFromApp
{
required int32 alm_type =1; //告警类型
required int32 status =2; //告警状态
required int64 time_stamp =3; //时标RFC1305、POSIX时标标准
required int32 location_id =4; //位置ID
required enAlmStyle alm_style =5; //见enAlmStyle注释
repeated SAlmKeyword alm_keyword =6; //告警内容关键字
//可选内容
optional int32 sub_system =7; //专业ID
optional int32 dev_type =8; //设备类型ID
optional int32 region_id =9; //责任区ID
optional string dev_group_tag =10; //设备组(间隔)标识
optional string key_id_tag =11; //替换式告警必须填充,否则作为流水帐告警处理
//测点相关的告警、事件、操作应当填充
optional string graph_name =12; //告警关联画面名称
repeated string sound_file =13; //语音文件名
optional SAlmManner alm_manner =14; //告警对象自定义告警方式
//< todo 应该干掉
optional string camera_tag =15; //关联摄像头
optional string camera_preset =16; //关联预置点标签
}
// 应用添加告警,发给告警服务
message SAppAddAlm
{
// 序号使用消息总线中的可选参数,告警服务与接口库内自己维护,无需应用管理
optional int32 domain_id =1; //域ID应用无需填写由告警接口库填写
optional int32 app_id =2; //应用号,应用无需填写,由告警接口库填写
repeated SAlmInfoFromApp alm_info =3;
}
// 应用FES添加录波记录发给告警服务
message SAppAddWave
{
required int64 start_time =1; //故障开始时标RFC1305、POSIX时标标准
required int64 end_time =2; //故障结束时标RFC1305、POSIX时标标准
required string dev_group_tag =3; //产生录波的设备组(间隔)标识
required string wave_file =4; //保存的录波文件
}
// 告警服务确认收到,使用消息总线的消息类型、可选参数即可,无需消息结构
//========================================================================================
// 告警服务AlarmServer与告警窗AlarmClient之间的交互消息结构
//========================================================================================
// 告警服务发给告警窗的单个告警信息
message SAlmInfoToAlmClt
{
required int32 alm_type =1; //告警类型
required int32 alm_status =2; //告警状态
required enAlmLogicState logic_state =3; //告警窗上的逻辑状态
required int64 time_stamp =4; //时标RFC1305、POSIX时标标准
required int32 domain_id =5; //域ID
required int32 location_id =6; //位置ID
required int32 app_id =7; //应用号
required int32 priority =8; //告警优先级
// 在服务端处理的逻辑为什么还要发出来,因为告警服务的主从同步复用了本消息
required int32 if_ack_on_rtn =9; //返回时自动确认告警(服务端处理)
required int32 del_act_on_ack =10; //服务端处理0 确认后删除; 1 返回状态确认后删除; 2 返回状态确认后不删除
required int32 if_never_alm_on_rtn =11; //告警返回后不产生告警(服务端处理)
required int32 if_water_alm =12; //是否流水账告警(0 替换式告警1 流水账告警)
required string uuid_base64 =13; //本条告警信息的唯一标识使用base64编码缩短后的uuid
required string content =14; //告警内容
repeated string sound_file =15; //语音文件名
//可选内容
optional int32 sub_system =16; //专业ID
optional int32 dev_type =17; //设备类型ID
optional int32 region_id =18; //责任区ID
optional string dev_group_tag =19; //设备组(间隔)标识
optional string key_id_tag =20;
optional string graph_name =21; //告警关联画面名称
optional string wave_file =22; //关联的故障录波文件
//< todo 应该干掉
optional string camera_tag =23; //关联摄像头
optional string camera_preset =24; //关摄像头联预置点标签
}
// 告警服务通知告警窗增加告警,或同步全部告警,均使用本消息结构,使用消息类型区分
message SAlmCltAddAlm
{
//< 序号使用消息总线中的可选参数,告警服务与接口库内自己维护,无需应用管理
repeated SAlmInfoToAlmClt alm_info =1; //告警结构序列
}
// 告警窗向告警服务请求确认告警、告警服务回复、向其他告警窗同步
message SAlmCltCfmAlm
{
required string node_name =1; //告警确认机器
required int32 user_id =2; //告警确认用户id
required int64 confirm_time =3; //告警确认时间
//若告警窗批量确认不同告警类型,不同域,不同应用的告警,应当先行分组
required int32 alm_type =4; //告警类型seqAlmInfo中的告警都应属于此类型
required int32 domain_id =5; //域IDseqAlmInfo中的告警都应属于此域
required int32 app_id =6; //应用号seqAlmInfo中的告警都应属于此应用
// 下面3个共同表示需确认的告警
// 采用列式写法每个的数量应当相等相同index属于同一条告警
repeated int64 time_stamp =7; //时标为便于通知DP确认所以带上
repeated string uuid_base64 =8; //告警唯一标识
repeated string key_id_tag =9; //测点唯一标识为便于通知DP确认所以带上
}
// 告警窗向告警服务请求删除告警、告警服务回复、向其他告警窗同步
// 删除的告警不释放内存,而是打上标记,在原始告警窗不显示
message SAlmCltDelAlm
{
//若告警窗批量删除不同域的告警,应当先行分组
required int32 domain_id =1; //域ID本消息中的告警都应属于此域
repeated string uuid_base64 =2; //告警唯一标识
}
// 告警服务通知告警窗哪些告警条目可以从内存中释放
message SAlmCltReleaseAlm
{
repeated string uuid_base64 =1; //告警唯一标识
}
// 告警服务通知告警窗关联录波文件
message SAlmCltLinkWave2Alm
{
required string wave_file =1; //被关联的录波文件
repeated string uuid_base64 =2; //关联的告警
}
// 告警窗向告警服务发送请求消息,无需消息结构
//========================================================================================
// 告警服务AlarmServer与事件窗EventClient之间的交互消息结构
// 注意: 事件结构仅为兼容老代码,新代码均应使用告警接口 SAlmInfoToAlmClt
//========================================================================================
// 单个事件消息
message SEvtInfoToEvtClt
{
required int32 alm_type =1; //告警类型
required int32 alm_status =2; //告警状态
required int64 time_stamp =3; //时标RFC1305、POSIX时标标准
required int32 domain_id =4; //域ID
required int32 location_id =5; //位置ID
required int32 app_id =6; //应用号
required int32 priority =7; //告警优先级
required string uuid_base64 =8; //本条告警信息的唯一标识使用base64编码缩短后的uuid
required string content =9; //告警内容
//可选内容
optional int32 sub_system =10; //专业ID
optional int32 dev_type =11; //设备类型ID
optional int32 region_id =12; //责任区ID
optional enAlmLogicState logic_state =13; //告警窗上的逻辑状态
optional string dev_group_tag =14; //设备组(间隔)标识
optional string key_id_tag =15;
optional string wave_file =16; //关联的故障录波文件
}
// 告警服务通知事件窗增加事件,或同步全部事件,均使用本消息结构,使用消息类型区分
message SEvtCltAddEvt
{
//< 序号使用消息总线中的可选参数,告警服务与接口库内自己维护,无需应用管理
repeated SEvtInfoToEvtClt evt_info =1; //事件序列
}
// 注意: 事件客户端仅为兼容老代码,新代码均应使用告警客户端
// 告警服务通知事件窗关联录波文件,复用 SAlmCltLinkWave2Alm
// 事件窗向告警服务发送请求消息,无需消息结构
//========================================================================================
// 告警服务与数据处理服务Data Process之间的交互消息结构
//========================================================================================
// 告警服务通知数据处理服务清除告警标志,数据处理服务回复告警服务 所需的结构
// 直接使用SAlmCltCfmAlm结构