328 lines
16 KiB
Protocol Buffer
328 lines
16 KiB
Protocol Buffer
|
|
//========================================================================================
|
|||
|
|
// @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结构
|
|||
|
|
|