//======================================================================================== // @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是DomainID,Para2是消息序号 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)的所有CMbMessage,Para1是AS的DomainID,Para2是消息序号 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; //域ID,seqAlmInfo中的告警都应属于此域 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结构