SuperAPI AI 工具集

slci-inspection-incompatibility-analysis

编程与开发

查看项目

更新于 10-16 00:21

技能介绍

用途:当 SLCI 代码检查因兼容性问题失败时,分析检查结果并把失败回溯到兼容性约束违规或已知限制。适用于用户询问检查为何失败、想把失败追溯到根因设置、已有含 Failed/Error/Unverified 项的检查报告、或想在重跑前诊断问题。不适用于检查前的模型兼容性分析(应使用 slci-compatibility-analysis)、确认与兼容性无关的失败、或一般 Simulink 建模与代码生成帮助。

工作流:先澄清意图,确认失败是否可能与兼容性相关,未确认前不搜索文件或运行 MATLAB。随后定位检查报告,用 c = slci.Configuration('<model_name>'); reportFolder = c.getReportFolder(); 获取报告目录,查找 <model_name>_report.html(或 .pdf/.doc),并比较模型与报告时间戳以判断是否过期;报告不存在则停止并建议 c.inspect()。需要时先重新生成代码:顶层模型用 rtwbuild('<model_name>'),引用模型用 c.setTopModel(false); slbuild('<model_name>', 'ModelReferenceRTWTargetOnly')。若需高级循环分析支持,在 c.inspect() 前设置 c.setApplyAdvancedLoopSupport(true)。

解析报告,提取 Failed、Error、Unverified 项及上下文,记录代码文件与行号、块路径、失败原因。读取失败代码行(顶层模型位于 <model_dir>/<model_name>_ert_rtw/<source_file>.c,引用模型位于 <model_dir>/slprj/ert/<model_name>/<source_file>.c),Stateflow 失败可参考 stateflow_failure_patterns.md。再与错误代码生成模式匹配,读取 slci-compatibility-analysis 的 references/ 约束文件,并验证适用范围、机制与矛盾三项检查;未匹配项需用户批准后才可对照 code_inspection_limitations.md 的已知限制。之后与兼容性报告交叉验证,最后输出简要汇总表并把详细结果保存到 <model_dir>/<model_name>_inspection_analysis_YYYY-MM-DD.md。

限制与护栏:绝不跳过澄清意图步骤;绝不把“最接近匹配”当作根因;未经用户明确许可不检查限制;本技能只诊断,不修改模型,不执行 set_param、fixIncompatibilities 或任何模型修改,修复交由 slci-compatibility-analysis 处理。若修复后仍有 UNMATCHED、UNMAPPED 或 LIMITATION 失败,说明无法自动修复。