硬件自发现解析失败场景
更新时间: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
解析属性失败,该由框架填充默认值:
- 当属性为引用对象,而被引用的对象获取失败时
- 当属性为同步对象,而被同步的对象获取失败时
7. expression level exceeds limit
表达式解析失败,表达式连接超过10个,抛出错误。