硬件自发现解析失败场景
更新时间:2025/10/15
在Gitcode上查看源码

硬件自发现解析失败场景

1. decode error: unexpected end of data

JSON解析失败,原因可能为JSON语法配置出错,例如少逗号、少括号等。

2. duplicated class, name: %s, app: %s

在组件的MDS中描述了该组件所有关联对象的信息,自发现将以此为依据进行对象解析和分发。不允许存在重复类定义,一个类的对象属于一个组件,当多个组件重复定义了同一个类,将会产生非预期的现象。

3. fail to get class information, object:xxx,class:xxx

获取类信息失败。自发现解析对象时需要加载各个组件的schema中的配置获取类的信息,当schema文件不存在,或其配置和CSR中对象的配置不正确时,将无法获取类信息,导致解析失败。

4. fail to analyse object: %s, property: %s, value: %s

对象的属性解析失败,忽略该对象(在之前会导致整个CSR解析失败)。

常见场景:

某对象的属性配置了@Parent,但其父对象无法成功解析(如服务对象的组件被裁剪)

json
"Ums_SP": {
    "Name": "USB Mass Storage for SP",
    "Location": 0,
    "CapacityKB": 3586336,
    "FileSystem": "vfat",
    "MountPoint": "/data/sp",
    "Enable": true,
    "BiosSupport": true,
    "FlashDev": "/dev/mmcblk0p2",
    "FreeUpdateSpaceBytes": 524288000,
    "MaxUpdateSpaceBytes": 524288000
},
"SP": {
    "@Parent": "Ums_SP",
    "BootCount": 0,
    "SPTimeout": 7200,
    "SPFinished": false
}

在如上例子中,当UMS组件被裁剪掉时,Ums_SP对象将无法获取其Schema定义,进而无法获取其path等信息。而SP对象配置了Ums_SP为其parent,当在解析SP对象时,无法解析出其Parent的path,进而导致对象属性解析失败。

5. ignore object: %s, class: %s, error: fail to get class information

获取对象的类信息失败,或当组件裁剪场景下获取@parent属性失败,将会忽略该对象(不影响其他对象)。

6. ignore property: %s, value: %s, object: %s, error: fail to analyse property

解析属性失败,该由框架填充默认值:

  1. 当属性为引用对象,而被引用的对象获取失败时
  2. 当属性为同步对象,而被同步的对象获取失败时

7. expression level exceeds limit

表达式解析失败,表达式连接超过10个,抛出错误。