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

328 lines
16 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 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结构