CSR配置字典之DiscreteEvent类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | DiscreteEvent类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建DiscreteEvent类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
DiscreteEvent 类
属性 | 值 |
---|---|
类名称 | DiscreteEvent |
功能描述 | 离散事件处理和监听 |
所属SIG组 | event |
所属组件 | EXU |
责任人 | 事件处理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Property | U32 | 无 | - | - | 应用场景为监听方式是独立监听 三个数据及方向,从高字节到低字节依次代表Dir、Data3、Data2、Data1 | ListenType配置为0 | expr | CSR | 软件 |
ListenType | U8 | 无 | 0或1 | - | 离散事件监听方式 配置为0:表示组合监听,表征SEL的三个数据和方向均来自于Property属性 配置为1:表示独立监听,表征SEL的三个数据和方向来自于本对象属性(EventData1、EventData2、EventData3) | 配置事件对象必配 | 0 | CSR | 软件 |
EventData1 | U8 | 无 | 0-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配置为1 | 1 | CSR | 软件 |
EventData2 | U8 | 无 | 0-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配置为1 | 255 | CSR | 软件 |
EventData3 | U8 | 无 | 0-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配置为1 | 255 | CSR | 软件 |
EventDir | U8 | 无 | 0或非0 | Drive_2.Presence | 离散事件监听的属性,应用场景为监听方式是独立监听 含义为离散事件产生的方向,值为0表示恢复,非0表示产生 若ListenType配置为0,则本属性无用,可不配置或配置默认0 | ListenType配置为1 | <=/Drive_2.Presence | CSR | 软件 |
SensorObject | String | 无 | 关联DiscreteSensor对象 | DiscreteSensor_Disk0 | 关联DiscreteSensor对象,表示该DiscreteEvent事件对象归属哪个传感器 | 配置事件对象必配 | <=/DiscreteSensor_Disk0 | CSR | 软件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Conversion | U8 | 无 | 0或1 | - | 离散事件翻转标识,用于翻转事件方向 比如事件本身需要assert,翻转为deassert 低4bit的值表示是否翻转,1表示翻转,0表示不翻转 | 对事件的方向有翻转述求 | 0 | CSR | 软件 |
InvalidReadingIgnore | U8 | 无 | 0或1 | - | 用于防止启动阶段数据源默认值误告警 表示是否支持忽略默认值处理 | 防止启动阶段默认值误产生事件 | 1 | CSR | 软件 |
InvalidReading | U8 | 无 | 0-255 | - | 用于防止启动阶段数据源默认值误告警 表示要忽略的默认值,比如配置为255,则表示当关联数据的值为255时不做任何处理 | 防止启动阶段默认值误产生事件 | 255 | CSR | 软件 |
🔗 动态关联机制
语法规范
使用 #/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"
}
}
🔧 使用指南
配置步骤
- 选择监听模式:根据应用需求配置ListenType(0组合监听/1独立监听)
- 配置事件数据:根据监听模式配置Property或EventData1-3
- 设置事件方向:通过EventDir配置事件产生和恢复的监听
- 关联传感器:通过SensorObject建立与DiscreteSensor的关联关系
- 可选配置:根据需要配置Conversion、InvalidReadingIgnore等
- 验证配置:确保事件数据格式符合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时,系统不会产生事件,避免启动阶段的误报警