CSR配置字典之DiscreteEvent类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题DiscreteEvent类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建DiscreteEvent类配置字典全新文档系统管理员

🎯 类概览

DiscreteEvent 类

属性
类名称DiscreteEvent
功能描述离散事件处理和监听
所属SIG组event
所属组件EXU
责任人事件处理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
PropertyU32--应用场景为监听方式是独立监听
三个数据及方向,从高字节到低字节依次代表Dir、Data3、Data2、Data1
ListenType配置为0exprCSR软件
ListenTypeU80或1-离散事件监听方式
配置为0:表示组合监听,表征SEL的三个数据和方向均来自于Property属性
配置为1:表示独立监听,表征SEL的三个数据和方向来自于本对象属性(EventData1、EventData2、EventData3)
配置事件对象必配0CSR软件
EventData1U80-255-应用场景为监听方式是独立监听
离散事件产生的数据1
①数据含义参照29.7 Event Data Field Formats
②其中低4bit表示事件的偏移,配置参照Table 42-, Generic Event/Reading Type Codes或Table 42-, Sensor Type Codes的Offset列
③若ListenType配置为0,则本属性无用,可不配置或配置默认255
ListenType配置为11CSR软件
EventData2U80-255-应用场景为监听方式是独立监听
离散事件产生的数据2
①数据含义参照29.7 Event Data Field Formats
②应用需求参照Table 42-, Generic Event/Reading Type Codes或Table 42-, Sensor Type Codes中的描述,若无应用需求,配置为默认值255
③若ListenType配置为0,则本属性无用,可不配置或配置默认255
ListenType配置为1255CSR软件
EventData3U80-255-应用场景为监听方式是独立监听
离散事件产生的数据3
①数据含义参照29.7 Event Data Field Formats
②应用需求参照Table 42-, Generic Event/Reading Type Codes或Table 42-, Sensor Type Codes中的描述,若无应用需求,配置为默认值255
③若ListenType配置为0,则本属性无用,可不配置或配置默认255
ListenType配置为1255CSR软件
EventDirU80或非0Drive_2.Presence离散事件监听的属性,应用场景为监听方式是独立监听
含义为离散事件产生的方向,值为0表示恢复,非0表示产生
若ListenType配置为0,则本属性无用,可不配置或配置默认0
ListenType配置为1<=/Drive_2.PresenceCSR软件
SensorObjectString关联DiscreteSensor对象DiscreteSensor_Disk0关联DiscreteSensor对象,表示该DiscreteEvent事件对象归属哪个传感器配置事件对象必配<=/DiscreteSensor_Disk0CSR软件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
ConversionU80或1-离散事件翻转标识,用于翻转事件方向
比如事件本身需要assert,翻转为deassert
低4bit的值表示是否翻转,1表示翻转,0表示不翻转
对事件的方向有翻转述求0CSR软件
InvalidReadingIgnoreU80或1-用于防止启动阶段数据源默认值误告警
表示是否支持忽略默认值处理
防止启动阶段默认值误产生事件1CSR软件
InvalidReadingU80-255-用于防止启动阶段数据源默认值误告警
表示要忽略的默认值,比如配置为255,则表示当关联数据的值为255时不做任何处理
防止启动阶段默认值误产生事件255CSR软件

🔗 动态关联机制

语法规范

使用 #/xxx 格式实现属性间的动态关联:

yaml
# 语法格式
属性名: "#/目标类.属性名"

# 实际示例
EventDir: "<=/Drive_2.Presence"           # 关联驱动器存在状态
SensorObject: "<=/DiscreteSensor_Disk0"   # 关联离散传感器对象

关联说明

  • EventDir: 关联外部状态源,监听事件方向变化
  • SensorObject: 关联DiscreteSensor对象,建立事件与传感器的归属关系
  • Property: 在组合监听模式下,包含完整的事件数据和方向信息

📂 分类标准

软件属性

  • 定义:用于软件层面的事件处理和逻辑控制
  • 特点:所有属性均为软件管理,支持复杂的事件监听和处理逻辑
  • 示例Property, ListenType, EventData1, EventData2, EventData3, EventDir, Conversion, InvalidReadingIgnore, InvalidReading, SensorObject

📝 配置示例

组合监听模式配置

json
{
  "DiscreteEvent": {
    "Property": "expr",
    "ListenType": 0,
    "EventData1": 255,
    "EventData2": 255,
    "EventData3": 255,
    "EventDir": 0,
    "SensorObject": "<=/DiscreteSensor_Disk0",
    "Conversion": 0,
    "InvalidReadingIgnore": 1,
    "InvalidReading": 255
  }
}

独立监听模式配置

json
{
  "DiscreteEvent": {
    "Property": "expr",
    "ListenType": 1,
    "EventData1": 1,
    "EventData2": 255,
    "EventData3": 255,
    "EventDir": "<=/Drive_2.Presence",
    "SensorObject": "<=/DiscreteSensor_Disk0",
    "Conversion": 0,
    "InvalidReadingIgnore": 1,
    "InvalidReading": 255
  }
}

事件翻转配置

json
{
  "DiscreteEvent": {
    "Property": "expr",
    "ListenType": 1,
    "EventData1": 1,
    "EventData2": 255,
    "EventData3": 255,
    "EventDir": "<=/Drive_2.Presence",
    "SensorObject": "<=/DiscreteSensor_Disk0",
    "Conversion": 1,
    "InvalidReadingIgnore": 1,
    "InvalidReading": 255
  }
}

简化配置(忽略默认值处理)

json
{
  "DiscreteEvent": {
    "Property": "expr",
    "ListenType": 1,
    "EventData1": 1,
    "EventData2": 255,
    "EventData3": 255,
    "EventDir": "<=/Drive_2.Presence",
    "SensorObject": "<=/DiscreteSensor_Disk0"
  }
}

🔧 使用指南

配置步骤

  1. 选择监听模式:根据应用需求配置ListenType(0组合监听/1独立监听)
  2. 配置事件数据:根据监听模式配置Property或EventData1-3
  3. 设置事件方向:通过EventDir配置事件产生和恢复的监听
  4. 关联传感器:通过SensorObject建立与DiscreteSensor的关联关系
  5. 可选配置:根据需要配置Conversion、InvalidReadingIgnore等
  6. 验证配置:确保事件数据格式符合IPMI标准

注意事项

  • 监听模式选择:ListenType决定了事件数据的来源方式
  • 事件数据格式:EventData1-3需要符合IPMI 29.7 Event Data Field Formats
  • 方向含义:EventDir中0表示恢复,非0表示产生
  • 传感器关联:SensorObject必须关联已存在的DiscreteSensor对象
  • 默认值处理:合理配置InvalidReading可以避免启动阶段误报警
  • 事件翻转:Conversion用于翻转事件方向,谨慎使用

性能建议

  • 监听模式优化:根据实际需求选择合适的监听模式
  • 事件过滤:使用InvalidReadingIgnore和InvalidReading过滤无效事件
  • 关联优化:确保SensorObject关联的传感器配置正确
  • 数据校验:EventData配置应符合IPMI标准表格要求

监听模式详解

  • 组合监听(ListenType=0)
    • 事件数据和方向都来自Property属性
    • EventData1-3和EventDir不起作用
    • 适用于简单的事件监听场景
  • 独立监听(ListenType=1)
    • 事件数据来自EventData1-3
    • 事件方向来自EventDir
    • 提供更灵活的事件处理能力

常见问题

  • Q: 什么时候使用组合监听?什么时候使用独立监听?
    • A: 组合监听适用于简单场景,独立监听适用于需要精确控制事件数据和方向的复杂场景
  • Q: EventData1-3的255默认值是否需要修改?
    • A: 根据IPMI标准和实际应用需求,EventData1通常需要配置具体值,EventData2和EventData3可以保持255默认值
  • Q: InvalidReading设置为255的意义?
    • A: 当关联数据源的值为255时,系统不会产生事件,避免启动阶段的误报警