
问题描述开发完一些诊断的DID需要进行自测发现一个奇怪的问题明明是同一个CDD文件它的DID名称在CANdelaStudio和CANoe显示完全不是同一个。问题分析一开始怀疑是配置有问题因为在CANdelaStudio软件里面有好几个地方能够查看或者修改DID的名称但是将名称都统一之后CANoe显示依旧没有变化。经过观察发现CANoe显示的名称其实是有规律的譬如F001显示的是F001F002显示的是F001_1F003显示的是F001_1_1明显是从F001开始一个一个复制过来的。问题解决万变不离其宗只要能找到源头就一定能够解决问题。于是用记事本打开CDD文件先找里面的规律发现DID相关的格式是这样的。里面的XXX是脱敏内容首先是第一段数据定义。DID id_0000013EA857D1B0 oidC2BE0DE327E04ea491A06999E8A5A23E n61835 NAME TUV xml:langen-USDID_XXX/TUV /NAME QUALDID_XXX/QUAL STRUCTURE DATAOBJ oid3998FC36040047df82F8AC3D7E444216 specno dtref_0000013EA9D275F0 NAME TUV xml:langen-USData/TUV /NAME QUALData/QUAL /DATAOBJ /STRUCTURE /DID第二段是读写权限和对数据的引用DIAGINST id_0000013EAE356EF0 oid839834761BDF423a96C843E244C9E6A6 tmplref_0000013EA8571C00 reqnotReq NAME TUV xml:langen-USDID_XXX/TUV /NAME QUALDID_XXX/QUAL SERVICE id_0000013EA9CFF4B0 oid90E57315C98145a18017349B2674AB3E tmplref_0000013EA8310580 func1 phys1 respOnPhys1 respOnFunc1 req0 NAME TUV xml:langen-USRead/TUV /NAME QUALRead/QUAL SHORTCUTNAME TUV xml:langen-USDID_XXX Read/TUV /SHORTCUTNAME SHORTCUTQUALDID_XXX_Read/SHORTCUTQUAL /SERVICE SERVICE id_0000013EA9CFE530 oid085FC8C9276C4613AA5893E2AE4629F0 tmplref_0000013EA83120D0 func0 phys1 respOnPhys1 respOnFunc0 req0 mayBeExec(4,11) NAME TUV xml:langen-USWrite/TUV /NAME QUALWrite/QUAL SHORTCUTNAME TUV xml:langen-USDID_XXX Write/TUV /SHORTCUTNAME SHORTCUTQUALDID_XXX_Write/SHORTCUTQUAL /SERVICE STATICVALUE oid1CFED1270BCD4105A7FFE1E7ABB604F5 shstaticref_0000013EA99E7700 v61835/ SIMPLECOMPCONT oidAA67077CACF34d4484BF97C280814091 shproxyref_0000013EA8571D10 DIDDATAREF oidBE89A1EEC51F45d9ABC288CEEC9DB473 didRef_0000013EA857D1B0 NAME TUV xml:langen-USDID_XXX/TUV /NAME QUALDID_XXX/QUAL /DIDDATAREF /SIMPLECOMPCONT SIMPLECOMPCONT oid84CA6389876942f9A5EF1E0CDA5751CE shproxyref_0000013EA8571F30 SPECDATAOBJ oid1F5BF584E63A437c8B3ACFE73884B71C NAME TUV xml:langen-USRead/TUV /NAME QUALRead/QUAL NEGRESCODEPROXIES NEGRESCODEPROXY idref_0000013EA7924560/ NEGRESCODEPROXY idref_0000013EA7923FC0/ NEGRESCODEPROXY idref_0000013EA7924B00/ NEGRESCODEPROXY idref_0000013EA7923EA0/ /NEGRESCODEPROXIES /SPECDATAOBJ /SIMPLECOMPCONT SIMPLECOMPCONT oid74125CE31F06456f8EE31CED8A648F77 shproxyref_0000013EA8574350 SPECDATAOBJ oidDA4B7C83B42F42a892D9EB446BBAABEF NAME TUV xml:langen-USWrite/TUV /NAME QUALWrite/QUAL NEGRESCODEPROXIES NEGRESCODEPROXY idref_0000013EA7924560/ NEGRESCODEPROXY idref_0000013EA7923FC0/ NEGRESCODEPROXY idref_0000013EA7924B00/ NEGRESCODEPROXY idref_0000013EA7923EA0/ NEGRESCODEPROXY idref_0000013EA79243B0/ NEGRESCODEPROXY idref_0000013EA7925010/ /NEGRESCODEPROXIES /SPECDATAOBJ /SIMPLECOMPCONT /DIAGINST /DIAGCLASS出问题的DID都是这6个地方写的内容不一致。CANdelaStudio配置和显示的是第一和第二个名字canoe根据第三个名字来显示所以结果不一样。另外有个注意点达芬奇工具会检查这6个地方名称的一致性如果名称不一致或者引用到的DID没有在前面进行定义都会报错不允许导入。