CSR配置字典之PropertySync类
更新时间: 2026/09/03
在AtomGit上查看源码

📋 文档信息

项目内容
文档标题PropertySync类配置字典
版本v1.1
创建日期2025-05-13
最后更新2026/09/03
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02026/05/16修订与model.json同步更新,新增分类标准和同步模式说明PropertySync类所有CSR属性bmc_datasync组件组
v1.12026/09/03修订新增ServiceName和目标发现机制,补充混合同步模式、同步类型与强制同步说明PropertySync类所有CSR属性bmc_datasync组件组

🎯 类概览

PropertySync 类

属性
类名称PropertySync
功能描述属性同步配置类,用于配置目标发现方式、同步模式、同步间隔、TTL和同步对象信息
所属SIG组hardware
所属组件bmc_datasync
责任人基础服务组
最后更新2026/09/03
状态🟢 正常运行

📊 属性定义详表

PropertySync 类 - 必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
TTLU32-U32,0表示不限制-当前同步的数据老化时限,超过后同步的数据会被清除,单位:秒,0:表示不限制配置同步数据生命周期3600CSR软件
SyncObjectItemsArray-Struct[]-目标同步对象信息,结构参考types.json#defs/SyncObjectItem配置需要同步的对象详见示例CSR软件

PropertySync 类 - 可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SyncModeU800-2-属性同步的模式 0:实时同步 1:周期性同步 2:实时同步且周期性同步配置同步模式0CSR软件
SyncIntervalU855-60-同步间隔,仅周期性同步时使用,单位:秒,取值范围:5~60配置同步间隔30CSR软件
SyncObjectNameString""String-目标同步对象名;以/开头指定路径,以#/开头表示CSR引用,留空触发接口发现配置同步目标名称"#/TargetNode"CSR软件
ServiceNameString""String-目标同步对象所在的D-Bus服务名;CSR引用模式下可为空配置目标对象所属服务"bmc.kepler.frudata"CSR软件
SyncTypeU810-1-属性同步的类型 0:自动覆盖 1:信号通知配置属性写入方式1CSR软件
ForceSyncBooleanfalsetrue/false-属性强制同步模式,false:非强制同步,true:强制同步配置属性强制同步模式falseCSR软件

📂 同步模式说明

模式描述
0实时同步属性变化立即同步
1周期性同步按SyncInterval间隔同步
2实时同步且周期性同步属性变化立即同步,并按SyncInterval周期做全量同步

📂 目标发现说明

SyncObjectName取值发现模式说明
/开头指定路径直接同步指定D-Bus对象路径
#/开头或包含CSR引用信息CSR引用通过CSR引用解析目标服务与路径;ServiceName可为空
空字符串接口发现使用ServiceNameSyncObjectItems中的接口发现所有匹配对象

接口发现模式订阅接口的添加和移除信号,新增目标会触发一次全量同步,移除目标会回收对应监听。短暂发现失败时保留已有目标。


📂 SyncObjectItem结构

字段类型描述
InterfaceString目标同步对象的接口
PropertiesString[]需要同步的属性列表

📂 分类标准

硬件属性

  • 定义:与硬件特性和物理参数直接相关的属性
  • 特点:无
  • 示例:无

软件属性

  • 定义:用于逻辑控制和软件管理的参数
  • 特点:由CSR配置管理,用于属性同步逻辑控制
  • 示例SyncModeSyncIntervalTTLSyncObjectNameSyncObjectItems

📝 配置示例

实时同步配置

json
{
  "PropertySync": {
    "SyncMode": 0,
    "SyncInterval": 5,
    "TTL": 3600,
    "SyncObjectName": "/bmc/kepler/Systems/TargetNode",
    "ServiceName": "bmc.kepler.frudata",
    "SyncObjectItems": [
      {
        "Interface": "bmc.kepler.Systems.FruCtrl",
        "Properties": ["PowerState", "PowerOnStrategy"]
      }
    ]
  }
}

周期性同步配置

json
{
  "PropertySync": {
    "SyncMode": 1,
    "SyncInterval": 30,
    "TTL": 0,
    "SyncObjectName": "#/BackupNode",
    "ServiceName": "bmc.kepler.frudata",
    "SyncObjectItems": [
      {
        "Interface": "bmc.kepler.Systems.ThermalTrip",
        "Properties": ["Action", "TimeDelaySeconds"]
      }
    ]
  }
}

🔧 使用指南

配置步骤

  1. 设置SyncMode:选择实时、周期或实时且周期模式
  2. 配置ServiceName和SyncObjectName:指定路径、CSR引用或留空进行接口发现
  3. 配置SyncInterval:周期性同步时设置间隔(5-60秒)
  4. 配置TTL:设置同步数据老化时限,0表示不限制
  5. 配置SyncObjectItems:定义需要同步的对象接口和属性列表

注意事项

  • 实时同步 (0):属性值变化时立即触发同步,适用于对实时性要求高的场景
  • 周期性同步 (1):按固定间隔同步,适用于对带宽敏感的场景
  • 实时且周期 (2):兼顾实时性和周期性兜底,适用于信号偶发丢失或目标动态变化的场景

故障排查

  • 属性未同步:检查SyncObjectItems配置是否正确
  • 目标未发现:检查SyncObjectName格式和ServiceName;接口发现时确认目标对象已暴露配置接口
  • 同步延迟:检查网络状况和SyncInterval设置
  • 数据过期:检查TTL设置是否合理