odxtools 9.4.1__py3-none-any.whl → 9.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odxtools/additionalaudience.py +2 -2
- odxtools/admindata.py +3 -0
- odxtools/audience.py +9 -13
- odxtools/basecomparam.py +1 -2
- odxtools/basevariantpattern.py +38 -0
- odxtools/basicstructure.py +34 -35
- odxtools/commrelation.py +2 -1
- odxtools/companydata.py +1 -2
- odxtools/companyspecificinfo.py +3 -0
- odxtools/comparam.py +16 -8
- odxtools/comparaminstance.py +12 -12
- odxtools/comparamspec.py +4 -3
- odxtools/comparamsubset.py +26 -24
- odxtools/compumethods/compuconst.py +4 -4
- odxtools/compumethods/limit.py +9 -9
- odxtools/compumethods/linearsegment.py +8 -8
- odxtools/dataobjectproperty.py +16 -18
- odxtools/description.py +4 -2
- odxtools/determinenumberofitems.py +4 -4
- odxtools/diagcodedtype.py +20 -20
- odxtools/diagcomm.py +61 -41
- odxtools/diagdatadictionaryspec.py +51 -55
- odxtools/diaglayercontainer.py +25 -25
- odxtools/diaglayers/basevariant.py +5 -0
- odxtools/diaglayers/basevariantraw.py +7 -1
- odxtools/diaglayers/diaglayerraw.py +26 -27
- odxtools/diaglayers/ecuvariant.py +16 -0
- odxtools/diagnostictroublecode.py +13 -10
- odxtools/diagservice.py +48 -50
- odxtools/diagvariable.py +10 -8
- odxtools/docrevision.py +5 -5
- odxtools/dtcdop.py +17 -17
- odxtools/dynamicendmarkerfield.py +8 -8
- odxtools/dynamiclengthfield.py +2 -0
- odxtools/dyndefinedspec.py +21 -8
- odxtools/ecuvariantpattern.py +20 -9
- odxtools/encodestate.py +3 -3
- odxtools/endofpdufield.py +7 -9
- odxtools/environmentdatadescription.py +9 -20
- odxtools/field.py +21 -21
- odxtools/inputparam.py +15 -14
- odxtools/leadinglengthinfotype.py +4 -4
- odxtools/matchingbasevariantparameter.py +38 -0
- odxtools/matchingparameter.py +108 -28
- odxtools/minmaxlengthtype.py +6 -6
- odxtools/multiplexer.py +38 -39
- odxtools/multiplexercase.py +3 -6
- odxtools/multiplexerdefaultcase.py +3 -6
- odxtools/multiplexerswitchkey.py +4 -4
- odxtools/negoutputparam.py +6 -9
- odxtools/odxlink.py +21 -5
- odxtools/odxtypes.py +7 -6
- odxtools/outputparam.py +9 -8
- odxtools/parameterinfo.py +1 -1
- odxtools/parameters/codedconstparameter.py +28 -27
- odxtools/parameters/dynamicparameter.py +9 -9
- odxtools/parameters/lengthkeyparameter.py +18 -18
- odxtools/parameters/matchingrequestparameter.py +15 -15
- odxtools/parameters/nrcconstparameter.py +32 -24
- odxtools/parameters/parameter.py +35 -37
- odxtools/parameters/parameterwithdop.py +6 -6
- odxtools/parameters/physicalconstantparameter.py +19 -20
- odxtools/parameters/reservedparameter.py +10 -11
- odxtools/parameters/systemparameter.py +10 -11
- odxtools/parameters/tableentryparameter.py +19 -20
- odxtools/parameters/tablekeyparameter.py +0 -2
- odxtools/parameters/tablestructparameter.py +27 -21
- odxtools/parameters/valueparameter.py +20 -20
- odxtools/parentref.py +6 -7
- odxtools/physicaldimension.py +11 -11
- odxtools/physicaltype.py +9 -14
- odxtools/preconditionstateref.py +85 -0
- odxtools/progcode.py +1 -2
- odxtools/protstack.py +4 -4
- odxtools/relateddoc.py +3 -4
- odxtools/scaleconstr.py +0 -1
- odxtools/singleecujob.py +8 -4
- odxtools/specialdata.py +10 -9
- odxtools/specialdatagroup.py +1 -0
- odxtools/standardlengthtype.py +18 -18
- odxtools/statechart.py +10 -6
- odxtools/statemachine.py +186 -0
- odxtools/statetransitionref.py +231 -0
- odxtools/structure.py +4 -4
- odxtools/subcomponent.py +78 -11
- odxtools/table.py +23 -13
- odxtools/tablerow.py +86 -69
- odxtools/teammember.py +4 -4
- odxtools/templates/macros/printBaseVariant.xml.jinja2 +4 -9
- odxtools/templates/macros/printBaseVariantPattern.xml.jinja2 +32 -0
- odxtools/templates/macros/printCompanyData.xml.jinja2 +2 -2
- odxtools/templates/macros/printComparam.xml.jinja2 +3 -5
- odxtools/templates/macros/printDOP.xml.jinja2 +4 -1
- odxtools/templates/macros/printDiagComm.xml.jinja2 +6 -5
- odxtools/templates/macros/printEcuVariantPattern.xml.jinja2 +7 -6
- odxtools/templates/macros/printParam.xml.jinja2 +5 -5
- odxtools/templates/macros/printPreConditionStateRef.xml.jinja2 +18 -0
- odxtools/templates/macros/printStateTransitionRef.xml.jinja2 +18 -0
- odxtools/templates/macros/printTable.xml.jinja2 +13 -9
- odxtools/text.py +35 -0
- odxtools/unit.py +1 -3
- odxtools/unitgroup.py +6 -8
- odxtools/variantmatcher.py +209 -0
- odxtools/variantpattern.py +38 -0
- odxtools/version.py +2 -2
- {odxtools-9.4.1.dist-info → odxtools-9.6.0.dist-info}/METADATA +3 -2
- {odxtools-9.4.1.dist-info → odxtools-9.6.0.dist-info}/RECORD +111 -102
- {odxtools-9.4.1.dist-info → odxtools-9.6.0.dist-info}/WHEEL +1 -1
- odxtools/createecuvariantpatterns.py +0 -18
- odxtools/ecuvariantmatcher.py +0 -171
- {odxtools-9.4.1.dist-info → odxtools-9.6.0.dist-info}/entry_points.txt +0 -0
- {odxtools-9.4.1.dist-info → odxtools-9.6.0.dist-info/licenses}/LICENSE +0 -0
- {odxtools-9.4.1.dist-info → odxtools-9.6.0.dist-info}/top_level.txt +0 -0
@@ -1,113 +1,119 @@
|
|
1
1
|
odxtools/__init__.py,sha256=kfejU9B_COPKCNfhbzkq_RuQ1VpH0S_EA4gstYaANtk,2458
|
2
2
|
odxtools/__main__.py,sha256=MKzFqY8KAV0BGsBXs04QwPpW5OGuT-rZQ4QlM8Tar8Y,119
|
3
|
-
odxtools/additionalaudience.py,sha256=
|
4
|
-
odxtools/admindata.py,sha256=
|
5
|
-
odxtools/audience.py,sha256=
|
6
|
-
odxtools/basecomparam.py,sha256=
|
7
|
-
odxtools/
|
3
|
+
odxtools/additionalaudience.py,sha256=5em2cDyswmyj3v82CgO2bxX1jUTyHvp0crT4piOL9F0,967
|
4
|
+
odxtools/admindata.py,sha256=CMFmkgwg94KJAogHQs07HLkr3QS_GqQMT5LP7-HfLEw,1966
|
5
|
+
odxtools/audience.py,sha256=RL_9Z1BzBcZGk-BL_f67YhHUo0oil036wX8BqTAVLQw,3392
|
6
|
+
odxtools/basecomparam.py,sha256=QrOiS5TS9chKwwe1-64RuqWsrjmdTI26jspINy6yT4c,2381
|
7
|
+
odxtools/basevariantpattern.py,sha256=MDQFcn0uPuy8EL0tw-vLHsz8sAZyKk4c4p7sjnbCeLQ,1462
|
8
|
+
odxtools/basicstructure.py,sha256=lAZ8uTTy24pPMvhzOTTTjgueaTfLFjqP-bDjAkK4Rvw,5070
|
8
9
|
odxtools/codec.py,sha256=2aTfrQc0-cNuPAfXeDDyjxXAHjBJ1xy3ELCVeA9UQP0,8108
|
9
|
-
odxtools/commrelation.py,sha256=
|
10
|
-
odxtools/companydata.py,sha256=
|
10
|
+
odxtools/commrelation.py,sha256=pFw5srGtdBkd561YN-_2CBWKgk6ZHlAy3ruzy_73sG4,4819
|
11
|
+
odxtools/companydata.py,sha256=X-ZxTFxfbywJ_ccas3piUHT3-2AWPEADPzkxesBcc0c,2516
|
11
12
|
odxtools/companydocinfo.py,sha256=fcceuYX8eTKhVhtmji6yiMRi6gtqPAJdi5kpo-wyL_8,2267
|
12
13
|
odxtools/companyrevisioninfo.py,sha256=a_aAAeF_8AW-AREOpDgm_eji1i38gttT7Zg3lSo7l88,1356
|
13
|
-
odxtools/companyspecificinfo.py,sha256=
|
14
|
-
odxtools/comparam.py,sha256=
|
15
|
-
odxtools/comparaminstance.py,sha256=
|
16
|
-
odxtools/comparamspec.py,sha256=
|
17
|
-
odxtools/comparamsubset.py,sha256=
|
14
|
+
odxtools/companyspecificinfo.py,sha256=Zl2Gafh_H3ZfmlPNUBChL_aCW7mgx3Zd3ECJPt2ABrA,1623
|
15
|
+
odxtools/comparam.py,sha256=UKfb-c1y99d3jnMvyGezSM50ZRlNfnkNKfBRzZcJ3h0,1910
|
16
|
+
odxtools/comparaminstance.py,sha256=OH6P-tit9j4MFq2C4SDgZoPBAydXRRH0ptDe1-5jd2k,4717
|
17
|
+
odxtools/comparamspec.py,sha256=fxKOXOth14ZC5is3LF30SXuaGFaXcP-qSGj6fYPywMk,1866
|
18
|
+
odxtools/comparamsubset.py,sha256=nI4hEBkX22yGu7rNirpv9Dr8LoknlNxArm5cs6QPGGY,4208
|
18
19
|
odxtools/complexcomparam.py,sha256=4EJQXVmi_i3Eas5LAF-sEC5XnAUMZKr2sS6LoDNskk0,3729
|
19
20
|
odxtools/complexdop.py,sha256=AHkHMf_IEWfy-_zSiCuZXmdTNCXiCOpg5GRZ5uMVV5A,280
|
20
21
|
odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI,617
|
21
22
|
odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
|
22
|
-
odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
|
23
23
|
odxtools/database.py,sha256=VJk-EOzHHtxjkhP7o0h470B0oyg73ZafK3w1UjnwRNM,9945
|
24
|
-
odxtools/dataobjectproperty.py,sha256=
|
24
|
+
odxtools/dataobjectproperty.py,sha256=8o2Wqb2Ee1ZqHJgq9jO_Z6KPNgUW0htgY2ah8GV_Cak,6242
|
25
25
|
odxtools/decodestate.py,sha256=VdYB4Q3yuFqCNV0IK2QfS_120n9dIgyLnPOwc3Hy33U,8292
|
26
|
-
odxtools/description.py,sha256=
|
27
|
-
odxtools/determinenumberofitems.py,sha256=
|
28
|
-
odxtools/diagcodedtype.py,sha256=
|
29
|
-
odxtools/diagcomm.py,sha256=
|
30
|
-
odxtools/diagdatadictionaryspec.py,sha256=
|
31
|
-
odxtools/diaglayercontainer.py,sha256=
|
32
|
-
odxtools/diagnostictroublecode.py,sha256=
|
33
|
-
odxtools/diagservice.py,sha256=
|
34
|
-
odxtools/diagvariable.py,sha256=
|
35
|
-
odxtools/docrevision.py,sha256=
|
26
|
+
odxtools/description.py,sha256=Wx6xfLce26YBdQecmh3uMEsucalyVbzq8PbitrOyJvs,1961
|
27
|
+
odxtools/determinenumberofitems.py,sha256=a0QJ7Z950nSN0HgTa8FT5IwsU4gjlX_OTzptG3GbrLc,1558
|
28
|
+
odxtools/diagcodedtype.py,sha256=6Sa_oKqYMf9q8OmHDaXeuRi7ELW4f81rAsHZBRYJ6Z4,4927
|
29
|
+
odxtools/diagcomm.py,sha256=Pl0o5LMY9RrPZr9FfWAoyfKAQ3DufwqxvQ68Y7tTNzg,8847
|
30
|
+
odxtools/diagdatadictionaryspec.py,sha256=L5VD6wlG7U6iJSBHYsBuTsE1qEQuqbiyhyUqX-Q5EUQ,10361
|
31
|
+
odxtools/diaglayercontainer.py,sha256=ESBAbeed2NU8lO3HaqGQiYa3TgnWJBk6dYChMgygZ2U,5333
|
32
|
+
odxtools/diagnostictroublecode.py,sha256=cAlVlopNrin_gqXG5UcvuWfv2Qrvhb3kD_a9pag9hvo,2390
|
33
|
+
odxtools/diagservice.py,sha256=pOMgGfi0JZKE94GTByLvqZdcluz_WU3fcjByMDq5IG8,13048
|
34
|
+
odxtools/diagvariable.py,sha256=Syk9O8JvelUY1SsoOGe_2ZxngplO_TnYXOXok7I7ysw,5284
|
35
|
+
odxtools/docrevision.py,sha256=_dktYapOJdPlae_ouuuUGeto9Jur8ZN7oKNldP-Zrms,2740
|
36
36
|
odxtools/dopbase.py,sha256=NCTTq2NF4DJI9nUAwBoa79IBgBjQtWo4V0WvkxuTx5g,2616
|
37
|
-
odxtools/dtcdop.py,sha256=
|
38
|
-
odxtools/dynamicendmarkerfield.py,sha256=
|
39
|
-
odxtools/dynamiclengthfield.py,sha256=
|
40
|
-
odxtools/dyndefinedspec.py,sha256=
|
37
|
+
odxtools/dtcdop.py,sha256=9q0zvQD18ZPT4JM_TXtEUkxBHpq3jZKD7ucRSIJZH4c,11560
|
38
|
+
odxtools/dynamicendmarkerfield.py,sha256=YjR-XA9Wrm4v7w72noLCIwskvAmXIfWm0me_T7YSM6o,5559
|
39
|
+
odxtools/dynamiclengthfield.py,sha256=a21WvHuNKnMDYTmyj7JY_dPiSTq_N2_Jy-hYqtf_6GM,5275
|
40
|
+
odxtools/dyndefinedspec.py,sha256=m8pIJUIkZ7NI_-ftFcmxGrrKN4VgBlEerKqqMX0tmr8,8351
|
41
41
|
odxtools/dynenddopref.py,sha256=SYXrmRUQoLWD4UI3WV92oA5rNhxbDuRv6H1MeXeuWhM,1199
|
42
|
-
odxtools/
|
43
|
-
odxtools/ecuvariantpattern.py,sha256=Xp2NpS13sVvyOjy2PgxLvXPptAfmYSH_KDIjqYByZHs,863
|
42
|
+
odxtools/ecuvariantpattern.py,sha256=HxiDLdZWD2aOtBoCKJQjpTY8Fm1ptFtFK3-CcCj3hQo,1330
|
44
43
|
odxtools/element.py,sha256=nCJkQMIPC26XfD4w1VrTH3l7Cd_BemMM_5lALh5gC7E,1259
|
45
|
-
odxtools/encodestate.py,sha256=
|
44
|
+
odxtools/encodestate.py,sha256=OuGB3kUI1bHCg4xKxAM4EHqyuc9S4Rwj-J7DrpCCvrI,13540
|
46
45
|
odxtools/encoding.py,sha256=5gn6PDqwU9K2RzEfEO9kcBj1v55TSKI1nCXNcTiZE9s,1994
|
47
|
-
odxtools/endofpdufield.py,sha256=
|
46
|
+
odxtools/endofpdufield.py,sha256=__5wkk_nnIR25fzPnVXTd6erP-ypeukN3zOaH7P1OGs,3338
|
48
47
|
odxtools/environmentdata.py,sha256=_wSKhV_NuMG6UPMnpOxz6mVjvrXsd2mtqqT7VKSSxHU,1414
|
49
|
-
odxtools/environmentdatadescription.py,sha256=
|
48
|
+
odxtools/environmentdatadescription.py,sha256=s3HhJdH5VPnZvgzmP7zUBLQJNQ02KHNTrHfP-ZxLrMU,11168
|
50
49
|
odxtools/exceptions.py,sha256=ZApQkhOJ9gn4jk0uO1wmULn5PhNEl1aMYMSHDoXihh0,2714
|
51
|
-
odxtools/field.py,sha256=
|
50
|
+
odxtools/field.py,sha256=N0qzsIjoJYqMHyEo2FS5dmC55YVJ0OVlHIgWNeF9dt8,3860
|
52
51
|
odxtools/functionalclass.py,sha256=DmJhtihbM64Vw-EYkzD1V5hRC-3Gt1XHdGqGUmaishk,1136
|
53
52
|
odxtools/globals.py,sha256=P6YbgyTSWHMw3sk5cEzsCvVaLrTiakLvewTgySb1jLo,139
|
54
|
-
odxtools/inputparam.py,sha256=
|
53
|
+
odxtools/inputparam.py,sha256=rLRj_5gSrw9IzDa36exmnbLmfKEb7ehCNcYp8Byi5wA,1808
|
55
54
|
odxtools/internalconstr.py,sha256=QKEkaOcrFoL9xID-oHWWkeg-vtcPV6RFOW1fX2K3pwg,1363
|
56
55
|
odxtools/isotp_state_machine.py,sha256=O6v29IK7p_4gFqrr-fahnbp9Qmo78EEQfEwRsA_Vfjw,13339
|
57
|
-
odxtools/leadinglengthinfotype.py,sha256=
|
56
|
+
odxtools/leadinglengthinfotype.py,sha256=7dTZtcA8QbIDF9XP4GD8aOwxgeyJhDH0FLePe6or8wQ,4013
|
58
57
|
odxtools/library.py,sha256=E_A6K6jcEoUdXh4h4sQILj7_JM-6X5OUUWSM47G69CU,2067
|
59
58
|
odxtools/loadfile.py,sha256=hi8jVE7B1G9gklsb7MrGrp4aOAI65j0kNwvDeEEEN2k,1744
|
60
|
-
odxtools/
|
59
|
+
odxtools/matchingbasevariantparameter.py,sha256=hpxAWJQfEGsChEkSos5K8pJDgblu4gbBsEG6f2VhMg8,1287
|
60
|
+
odxtools/matchingparameter.py,sha256=s__CH9Dk1pOuJWVfxSRG81GPpwyOYUdihM51cLKzb0s,5747
|
61
61
|
odxtools/message.py,sha256=PDY-CDgTmJA6dyNacCV57M-p_ETtR8MdU7WZGEew4zM,855
|
62
|
-
odxtools/minmaxlengthtype.py,sha256=
|
62
|
+
odxtools/minmaxlengthtype.py,sha256=MvA4rvRclkOwXCwZRH48KBQVg82l76nfTigTy5F_xxs,9723
|
63
63
|
odxtools/modification.py,sha256=9EJJUCNTzM05HGT6UZ7r2yLDm7voBFPO-hldBC9D4aw,875
|
64
|
-
odxtools/multiplexer.py,sha256=
|
65
|
-
odxtools/multiplexercase.py,sha256=
|
66
|
-
odxtools/multiplexerdefaultcase.py,sha256=
|
67
|
-
odxtools/multiplexerswitchkey.py,sha256=
|
64
|
+
odxtools/multiplexer.py,sha256=_uhmYuCVsggQwU3ZSnlmPQ3B3nKDZWLK6-3UtCiCfRw,10207
|
65
|
+
odxtools/multiplexercase.py,sha256=hmr2vga4WbB3WnyWwPdB2_AnI9Zgk_pGqgc7tk2ylTE,3093
|
66
|
+
odxtools/multiplexerdefaultcase.py,sha256=ljQmqOcQ7kGdGj7FFHCZ6tQ0y5kStJgo3alL8TugJXA,2021
|
67
|
+
odxtools/multiplexerswitchkey.py,sha256=5sE4hf6kTJeYcDK-Nowzape88f9hBBH5-YksiJH-EM8,1551
|
68
68
|
odxtools/nameditemlist.py,sha256=KqKILKq8lqo3qQKmR5HBAkePqfggFhI7yAoenYprjNs,6960
|
69
|
-
odxtools/negoutputparam.py,sha256=
|
69
|
+
odxtools/negoutputparam.py,sha256=p-LUbo61FU7ac5l7k5koKfA5eI7JohS6JZ1BzmF5nj8,1280
|
70
70
|
odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
|
71
71
|
odxtools/odxcategory.py,sha256=5R5vUTcYnsgfzGD3c0TM6qFYXpbW-d-t1VpUmgZYHWU,3221
|
72
|
-
odxtools/odxlink.py,sha256=
|
73
|
-
odxtools/odxtypes.py,sha256=
|
74
|
-
odxtools/outputparam.py,sha256=
|
75
|
-
odxtools/parameterinfo.py,sha256=
|
72
|
+
odxtools/odxlink.py,sha256=gXB5G5QUPpIpfXlsC_Qm76bxzuRJs7X4fPlAjhG3PVE,10648
|
73
|
+
odxtools/odxtypes.py,sha256=wBVhBFUI99Hd_yrMh54oXHnnKLLS_IwdSpPXEzTJuOQ,8143
|
74
|
+
odxtools/outputparam.py,sha256=LQhoqeYti6NWehqUvboLMeoqNu6EHgEIu5IYSQmaOVE,1469
|
75
|
+
odxtools/parameterinfo.py,sha256=opbLCqsh7ry6XzWARaAGDcS9GWo_6VrxSUOyKrJ_hQM,11182
|
76
76
|
odxtools/paramlengthinfotype.py,sha256=zJ3gRweIEngl2C4wJoT2uuTf05NRNSJ4RlDmC2L3UBE,4859
|
77
|
-
odxtools/parentref.py,sha256=
|
78
|
-
odxtools/physicaldimension.py,sha256=
|
79
|
-
odxtools/physicaltype.py,sha256=
|
80
|
-
odxtools/
|
81
|
-
odxtools/
|
77
|
+
odxtools/parentref.py,sha256=m5m5-HSON7Pp5JJMj_rDKWwKqbnLY7-ItI8Xg4U5-hA,3750
|
78
|
+
odxtools/physicaldimension.py,sha256=z7_Qr13hF1kohqgA_4EgkeWMLcC_GicFp8Q-7Vep69s,3376
|
79
|
+
odxtools/physicaltype.py,sha256=9j82eRiiMcsh89gLRHKUGzfI2Kdf0YU-5GeWMkm2ZYs,2527
|
80
|
+
odxtools/preconditionstateref.py,sha256=hBYke_Fp9Jz3kNEPVfZf064NIBNaRjIkjIGJhESrb2M,3340
|
81
|
+
odxtools/progcode.py,sha256=rhUMTsesFyeqNis3qh_dr8M-yDSrGCHA4nwEhvTIj1o,2275
|
82
|
+
odxtools/protstack.py,sha256=vPXOvyyYxGjVscoHiLy7389CMoZerUkuG8HuBQnFWeU,2012
|
82
83
|
odxtools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
|
-
odxtools/relateddoc.py,sha256=
|
84
|
+
odxtools/relateddoc.py,sha256=o97gIQpS2QZilL4otSSE8rV_3X-l7Rhk0IGM1NZCzJM,1300
|
84
85
|
odxtools/request.py,sha256=iX3D4VX-ctUEk0WpvQHr7UQHalhHkSeR9DLFbVoEQws,4902
|
85
86
|
odxtools/response.py,sha256=aJDoe-ZAKI4Zui4VbwnWLLb9g8Y_SgVZ0XFH7jYZRVI,5505
|
86
|
-
odxtools/scaleconstr.py,sha256=
|
87
|
+
odxtools/scaleconstr.py,sha256=NgzgSLcKt7Ae0hLlKI7yIz5aUHGW1ypDDrnJ-vYRgsQ,1786
|
87
88
|
odxtools/servicebinner.py,sha256=TId3D3XHa98zbyC1sGWacQUlIZ5e2Egklelv6_Ra2II,3861
|
88
|
-
odxtools/singleecujob.py,sha256=
|
89
|
+
odxtools/singleecujob.py,sha256=P3spnu5KqPZruS3kw4Y7Rkxa7DRdiyY_9tuI_cKOu4o,3954
|
89
90
|
odxtools/snrefcontext.py,sha256=5ZbrZiX1gw6LC6o62RPuxzSo4tDR2LqRQ9w9Vi57FA8,953
|
90
|
-
odxtools/specialdata.py,sha256=
|
91
|
-
odxtools/specialdatagroup.py,sha256=
|
91
|
+
odxtools/specialdata.py,sha256=EBt5ygH2ypxnh4KzMk5FtjyQWiLshHgQCIQsNIw6Ioc,1078
|
92
|
+
odxtools/specialdatagroup.py,sha256=1pvVYliFKJCltZg8LvoiKKzMdHtaR_YWRXIOjhhiW1s,3116
|
92
93
|
odxtools/specialdatagroupcaption.py,sha256=pIa1l6EXVDXBisUtRkn6hTzAcUXFnXJoWstesayLfME,987
|
93
|
-
odxtools/standardlengthtype.py,sha256
|
94
|
+
odxtools/standardlengthtype.py,sha256=sRY786GAPy8NS5psSDgJ4koX3NCP7SQAqH2GIdUNboI,8107
|
94
95
|
odxtools/state.py,sha256=d--nCbV1qBmOmiTmUrQjDC_naispOM0a-H1AvCe5_xI,898
|
95
|
-
odxtools/statechart.py,sha256=
|
96
|
+
odxtools/statechart.py,sha256=9RFzxUX6kHckavAUKy8REYuqN1AybU5hvXNEL5EHiE8,3051
|
97
|
+
odxtools/statemachine.py,sha256=Pene6OVuqB5S7TTFRPVlK8aCqiPgeYxlR7wDDfXDWck,7006
|
96
98
|
odxtools/statetransition.py,sha256=Q7UaDksJmiKVGnO4GsxPH9pFIKt12ZOkDeJn4KICiGk,2599
|
99
|
+
odxtools/statetransitionref.py,sha256=tiCBPY0_oGVUBt2YU9g9F_QlKRl0keWyG1AtwwuLTt0,9229
|
97
100
|
odxtools/staticfield.py,sha256=NBZa5UZD4BD4UekpqF5bq_IzFjxUafmvpCHIEptOl-s,4434
|
98
|
-
odxtools/structure.py,sha256=
|
99
|
-
odxtools/subcomponent.py,sha256=
|
101
|
+
odxtools/structure.py,sha256=XFKHgWyPuowedGuGL5Pi0tIi-JywY0gAgS7aUcCV0kc,866
|
102
|
+
odxtools/subcomponent.py,sha256=b-0Zz8DXg5ss5rJIn3sJ8UzOSuB7iSTv2sgGaJkgtxk,12924
|
100
103
|
odxtools/swvariable.py,sha256=7vmVTAqtKIn81UpAZrboIZpbbD4jqwW0MEiK0m5bZNo,697
|
101
|
-
odxtools/table.py,sha256=
|
102
|
-
odxtools/tablerow.py,sha256=
|
103
|
-
odxtools/teammember.py,sha256=
|
104
|
+
odxtools/table.py,sha256=Hit1t4XSuWXFVHRew3JV-_bNjze5ebeqvwvfRkyRiDA,6258
|
105
|
+
odxtools/tablerow.py,sha256=d6pMqpst9TyWMqrEE5d0QamWFdcsKCeN7uCng6aC2m4,10141
|
106
|
+
odxtools/teammember.py,sha256=ESNsVHsbsfknjD1mvshZg705VscLBHmswSPp2LsL1qA,1851
|
107
|
+
odxtools/text.py,sha256=S45s47Eh1QjjwxCUE6fKSVDlBCMu_cUtkP90qJVk24M,1020
|
104
108
|
odxtools/uds.py,sha256=ttjCaqwfAU-DlM5peFpZCcwzq60QjBMxVpaOyUyY48k,5567
|
105
|
-
odxtools/unit.py,sha256=
|
106
|
-
odxtools/unitgroup.py,sha256=
|
109
|
+
odxtools/unit.py,sha256=E9u6O5MhBpbqb3CZ2SgsjHNhzBPmt3nU8H3I1Nwdguc,3370
|
110
|
+
odxtools/unitgroup.py,sha256=mt5vK7BpfuzKlU5u2yVSyBdhlX9sMqhTYUvGVVMr4Ao,1968
|
107
111
|
odxtools/unitspec.py,sha256=IAmDSLscVb4QUGgbQT-xXhtywW3qs0o9FfelnVYvimk,3074
|
108
112
|
odxtools/utils.py,sha256=FaNlouR0FvO4W4nk3Wr7Ogx1wC4tYfuMOo07KF2QxbE,2764
|
109
113
|
odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
|
110
|
-
odxtools/
|
114
|
+
odxtools/variantmatcher.py,sha256=a1c1NtZgxRBA7OsRhEBM-3mgKUHqSywYXggT7Q5alJo,8355
|
115
|
+
odxtools/variantpattern.py,sha256=f3t1KXXjrNkJLGmEc7iGG86Nj4h6Fdh9loFKTt-1Ffc,1431
|
116
|
+
odxtools/version.py,sha256=eKw6pZxDlATsbtc6mns2HnFWZ9ce4NPGBmJCk4tOcaw,511
|
111
117
|
odxtools/writepdxfile.py,sha256=ZEoNkSxheqnXm836-HOpd04O6ipMXYKFzXZy6PM0YLc,7813
|
112
118
|
odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
|
113
119
|
odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
|
@@ -122,7 +128,7 @@ odxtools/cli/list.py,sha256=fQH1gK3ajUhbp9-giIZk8qIZ-57FtADU1EggXo2yH4I,8980
|
|
122
128
|
odxtools/cli/main.py,sha256=_zPCU6N2ofpj_jQuQ_BU5EafBpMW0srhahZI8BgAM-0,2335
|
123
129
|
odxtools/cli/snoop.py,sha256=z8USSpmz18VAvkGpzepeaOlVJhi-8aeW10XRylsvZLU,10610
|
124
130
|
odxtools/compumethods/compucodecompumethod.py,sha256=cCgCCuFcu2K9QuW0ZNbfp6AQdgPy9QE7UnmRa6Iet28,2459
|
125
|
-
odxtools/compumethods/compuconst.py,sha256=
|
131
|
+
odxtools/compumethods/compuconst.py,sha256=sUPw4zwUBVB04Ra2q6NkhBMfUXPM3NtATXEeYfVu_no,806
|
126
132
|
odxtools/compumethods/compudefaultvalue.py,sha256=Lw8Fnm854dpNCvO8waKWg_hSRyW-NwvoQFFjyW3RHwY,980
|
127
133
|
odxtools/compumethods/compuinternaltophys.py,sha256=7BHDeUpe8XUlvdUrLh0p416NREsGiZq5Rx6fQSzbosA,2102
|
128
134
|
odxtools/compumethods/compuinversevalue.py,sha256=oG5tWSJkvoDmJPmb9EAGGutslbTrwZok5nfG20iZ8vk,220
|
@@ -132,23 +138,23 @@ odxtools/compumethods/compurationalcoeffs.py,sha256=N95JWi06Wkgk3zAK57ONy7mQ9prp
|
|
132
138
|
odxtools/compumethods/compuscale.py,sha256=xkwIfkoRF4faICy2jlfB6rx4xYRQb0jL5fq6NMNPX8k,4487
|
133
139
|
odxtools/compumethods/createanycompumethod.py,sha256=w68p6ME_WSnV44X3zah4FJ1IROEU6mAglcKivMw7om8,2830
|
134
140
|
odxtools/compumethods/identicalcompumethod.py,sha256=VVQ0tAkmowXZMBFQd9-n0VnsodDFRHXWdWgpNxdHAkQ,2077
|
135
|
-
odxtools/compumethods/limit.py,sha256=
|
141
|
+
odxtools/compumethods/limit.py,sha256=NSYSVD7hKVNooEQ-gCIvr43jy5g9f_5rKXq9qlSrfJY,4164
|
136
142
|
odxtools/compumethods/linearcompumethod.py,sha256=Q1wELL2Y_nMomy-_7OUHLo-hDkepXLHveWorje5eDEE,3671
|
137
|
-
odxtools/compumethods/linearsegment.py,sha256=
|
143
|
+
odxtools/compumethods/linearsegment.py,sha256=qzBoz_vxCR7hKNesvTXNvmd7MTxKJpKmdwLT5Qy8CX8,7131
|
138
144
|
odxtools/compumethods/ratfunccompumethod.py,sha256=FgG1_jX3WvjbCFz989SqDC5WkwaZ0xR-CN-M5lkTH5I,4393
|
139
145
|
odxtools/compumethods/ratfuncsegment.py,sha256=_gWFz8FowgQ4X3YIdeYJaeX-QG23U25k4yLh02cn7j0,2834
|
140
146
|
odxtools/compumethods/scalelinearcompumethod.py,sha256=o_Re17G4XlCn-XbStnvlTs9XVN4h71mkkYyIOii-7w4,5895
|
141
147
|
odxtools/compumethods/scaleratfunccompumethod.py,sha256=3imvLJgN3gkc7pILPIwAILHw0Ie5Ih_vysVGA8wYRgk,4457
|
142
148
|
odxtools/compumethods/tabintpcompumethod.py,sha256=Gyf2qV5y53SHIcum5d5HQVGszoZCdu47jxMCQ6yKdQk,8065
|
143
149
|
odxtools/compumethods/texttablecompumethod.py,sha256=vDYafbM0YaipjfN0NSlCFMiIPvp8waMNj3thNcwuYgk,5929
|
144
|
-
odxtools/diaglayers/basevariant.py,sha256=
|
145
|
-
odxtools/diaglayers/basevariantraw.py,sha256=
|
150
|
+
odxtools/diaglayers/basevariant.py,sha256=x9WW-gpYl517la1nc2CJMj08-S_KGFb_8nwIOQN9Vg0,4645
|
151
|
+
odxtools/diaglayers/basevariantraw.py,sha256=ujW58iFFWFSL9dzgUM4f5bPOA8oTZ7BjbH5lUHtLMJQ,4970
|
146
152
|
odxtools/diaglayers/diaglayer.py,sha256=xs529IVG_18Fi8kbEZkD2vHjHRr57jeE4A_2lDLRKCQ,16254
|
147
|
-
odxtools/diaglayers/diaglayerraw.py,sha256=
|
153
|
+
odxtools/diaglayers/diaglayerraw.py,sha256=IAValDxqCe4NpwFOKcwJWGAE7aJbgSzND-WZXRjpRAg,12961
|
148
154
|
odxtools/diaglayers/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
|
149
155
|
odxtools/diaglayers/ecushareddata.py,sha256=QoV50wQIrJ2-faLtU1P7RrjdacbhPY2BfUtVtIyWqCM,3347
|
150
156
|
odxtools/diaglayers/ecushareddataraw.py,sha256=cvkBhqTLOAey7Pt1bjQ3Jkkenp-D3Zh5djpB4ZWWUvw,3375
|
151
|
-
odxtools/diaglayers/ecuvariant.py,sha256=
|
157
|
+
odxtools/diaglayers/ecuvariant.py,sha256=SE1JYUo3F67WO1wu8hYekW34s6OV7ORdoKkL62fZchU,4863
|
152
158
|
odxtools/diaglayers/ecuvariantraw.py,sha256=bKlqFnBWkKdkM9EY5rFGOno3ClIVQNhgBoU5DseNnRc,4944
|
153
159
|
odxtools/diaglayers/functionalgroup.py,sha256=o5bUGGDYisr7CjHZZh83fokA80f0s0zpHC_501cg-f0,4093
|
154
160
|
odxtools/diaglayers/functionalgroupraw.py,sha256=H0-_XXlFTV8POGnh0S7CVBOKKQuyKHMB9lEyoAHuG_A,3963
|
@@ -156,36 +162,37 @@ odxtools/diaglayers/hierarchyelement.py,sha256=kQf2CRMVTalPJnskF1wsTTkgKOzZMBdZX
|
|
156
162
|
odxtools/diaglayers/hierarchyelementraw.py,sha256=IdFbnZIw7QGAMh3MW5N9vq5QNGBBAs5foCnbvotfqhQ,2058
|
157
163
|
odxtools/diaglayers/protocol.py,sha256=ypIhfySB6F16Y48XLZIPL36GfrKUznTCmiJ0ROIxYJo,2083
|
158
164
|
odxtools/diaglayers/protocolraw.py,sha256=Wf1q2l11mxw61gnveVVEZqgR0yj2RCxoaB3QLzdZQWc,3251
|
159
|
-
odxtools/parameters/codedconstparameter.py,sha256=
|
165
|
+
odxtools/parameters/codedconstparameter.py,sha256=x5pKlG2H5cdbwTKAeXetd4hORhdVUD6wec91X5Ar1oQ,3924
|
160
166
|
odxtools/parameters/createanyparameter.py,sha256=m26HHUQrxwDak3eBBciVBLic768Qlo4F2xn1z3r0boM,2566
|
161
|
-
odxtools/parameters/dynamicparameter.py,sha256=
|
162
|
-
odxtools/parameters/lengthkeyparameter.py,sha256=
|
163
|
-
odxtools/parameters/matchingrequestparameter.py,sha256=
|
164
|
-
odxtools/parameters/nrcconstparameter.py,sha256=
|
165
|
-
odxtools/parameters/parameter.py,sha256=
|
166
|
-
odxtools/parameters/parameterwithdop.py,sha256=
|
167
|
-
odxtools/parameters/physicalconstantparameter.py,sha256=
|
168
|
-
odxtools/parameters/reservedparameter.py,sha256=
|
169
|
-
odxtools/parameters/systemparameter.py,sha256=
|
170
|
-
odxtools/parameters/tableentryparameter.py,sha256=
|
171
|
-
odxtools/parameters/tablekeyparameter.py,sha256=
|
172
|
-
odxtools/parameters/tablestructparameter.py,sha256=
|
173
|
-
odxtools/parameters/valueparameter.py,sha256=
|
167
|
+
odxtools/parameters/dynamicparameter.py,sha256=cM5vxCzx3-jAONacMOBaTJIDJ_9SQK4ENSU1BugDgUY,1569
|
168
|
+
odxtools/parameters/lengthkeyparameter.py,sha256=zGvIqkdtP3K6cGU1_TzbFa02E9MgDcydtUqrghhHj_Y,5269
|
169
|
+
odxtools/parameters/matchingrequestparameter.py,sha256=o-mYNaYh6m-tgf15wPl3msMXH3Urb30DyJNEUwWnyqM,2934
|
170
|
+
odxtools/parameters/nrcconstparameter.py,sha256=8qnCb__0W4Af0baB-RO7oIzZXCSneNHNEt6s_nhw_nY,5046
|
171
|
+
odxtools/parameters/parameter.py,sha256=IfC90A6Ld5R_QhKvXR531V8BChBow6WJkdEksxvxfW8,6157
|
172
|
+
odxtools/parameters/parameterwithdop.py,sha256=x7Yn-7wtVCxKjcF0PBVtSWopDwlQFwu5ObUOejQjAdI,3283
|
173
|
+
odxtools/parameters/physicalconstantparameter.py,sha256=i0J0qD95Fvf47Bo5znANt714nOm4lnWBLUpSpuMcRHE,3611
|
174
|
+
odxtools/parameters/reservedparameter.py,sha256=gUfiEfbJQbYeqYM5cggLtH42Zt_U1gp-8_8PWz2Xi0g,2025
|
175
|
+
odxtools/parameters/systemparameter.py,sha256=HYbmAsx2wYloUs25IG9QQuY3_9L9rnyb6ihYz_xR2Ys,3592
|
176
|
+
odxtools/parameters/tableentryparameter.py,sha256=dPl8wf8lmUY2otW2UVogYKiCiM8X9ghEB9BfDkDTlBU,2725
|
177
|
+
odxtools/parameters/tablekeyparameter.py,sha256=mQk6s5Ke5VkwDW2NYgDDYIPNT2iGHIFaSsxCedlaQ64,9941
|
178
|
+
odxtools/parameters/tablestructparameter.py,sha256=WhOxzgFA7JekR5jFf_As_B5CQPdwLR5uhdkRhSzto80,7179
|
179
|
+
odxtools/parameters/valueparameter.py,sha256=_WNaaZmZPKvE_1jo3vOeVz5Vhew1SbR0bozqvdg5NcM,3063
|
174
180
|
odxtools/templates/comparam-spec.odx-c.xml.jinja2,sha256=A9q0SQCGhBaV2xUcXHFVkmZIBpbl9OP2x6JD0umzrdU,904
|
175
181
|
odxtools/templates/comparam-subset.odx-cs.xml.jinja2,sha256=xL4vy0yAsSajJRF_w7wCQFSklUIgyHwCHgGPlLTGK_A,1751
|
176
182
|
odxtools/templates/diag_layer_container.odx-d.xml.jinja2,sha256=fDH9K2IdGfX-dVV0pEpn2kkHIBQTT9B0Sb5dF4vGWco,1798
|
177
183
|
odxtools/templates/index.xml.jinja2,sha256=Z1bcntvvky7NoH0Q0CRJgUORwf3g96PFPGeOpi7VATw,647
|
178
184
|
odxtools/templates/macros/printAdminData.xml.jinja2,sha256=YTB_CbhnALF6RIbE0XKQHRbC6c0PSZ_DxdrRHgqMD_s,2590
|
179
185
|
odxtools/templates/macros/printAudience.xml.jinja2,sha256=vaYL_-GPVdlLc7WAQTbkVZZbFuQptnCbOhXJb3tsHv8,1286
|
180
|
-
odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=
|
186
|
+
odxtools/templates/macros/printBaseVariant.xml.jinja2,sha256=Ovf7NvO5jzy_9w1-iXi_q2dedoEfsQOYCK_WASkcITQ,1451
|
187
|
+
odxtools/templates/macros/printBaseVariantPattern.xml.jinja2,sha256=foL_DmH4mWFzPObZ3VjPixdzbomAA5jK7GLpAhJsKVE,1192
|
181
188
|
odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO3Rtlodc7sxe5mFWY-uURLnQ8OfQ,614
|
182
|
-
odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=
|
183
|
-
odxtools/templates/macros/printComparam.xml.jinja2,sha256=
|
189
|
+
odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=GkQM6tIx-RxhOfZz4XqNPgnMRn82MZ4OVBOukhkRHtc,2989
|
190
|
+
odxtools/templates/macros/printComparam.xml.jinja2,sha256=75nb34_fancCqpiPLjon5xsr3J9cScvq5ibLrWknoz0,2345
|
184
191
|
odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
|
185
192
|
odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=9DilxMWnqOsXu7bNNlDqls-lEqcr_GPzhZum8rzDJP0,4430
|
186
|
-
odxtools/templates/macros/printDOP.xml.jinja2,sha256=
|
193
|
+
odxtools/templates/macros/printDOP.xml.jinja2,sha256=RUnofs7WCrGHzbUIK6yRPNMlk_SXPuwFsSpUg7HGY-o,5970
|
187
194
|
odxtools/templates/macros/printDescription.xml.jinja2,sha256=95Zamh5YtS5d-R3RVdOZV5xqb9syho_L0-CFq0PPJdI,589
|
188
|
-
odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=
|
195
|
+
odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=05J7BGIf8vv41ksZuKnv--gMuA--vKtAATdxfAuKKro,2374
|
189
196
|
odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=jVsoXIThQxIYte0d8lzEc7R7mm54vzT-GKAxu5NKk-Q,6901
|
190
197
|
odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sg81-vgZFOsBt-e-CJ9BxcfoWMAf6imhJXS9_ftq1YM,3172
|
191
198
|
odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
|
@@ -193,7 +200,7 @@ odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQ
|
|
193
200
|
odxtools/templates/macros/printDynamicLengthField.xml.jinja2,sha256=bNvNh_4xyp4L6v7cxJ5cO1yOHYPnSFiaK9oY4l63fDU,784
|
194
201
|
odxtools/templates/macros/printEcuSharedData.xml.jinja2,sha256=WK08eoDFEjj9o3eOuy__H0r9ioo688rTuQp6uXE6Tdo,820
|
195
202
|
odxtools/templates/macros/printEcuVariant.xml.jinja2,sha256=Nsgj2VUWZvSDFPQsn6wv75M9TaryOB-tlQYCVq9hDEM,1594
|
196
|
-
odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=
|
203
|
+
odxtools/templates/macros/printEcuVariantPattern.xml.jinja2,sha256=YoYyzmxerJLJzUNoQ8H-JBnOqiwpVdODqk2KNRdWKWo,844
|
197
204
|
odxtools/templates/macros/printElementId.xml.jinja2,sha256=Oe4sgtBB_VhTz6uJzaiTCpQki2ulKKfpBq56FVgBC-I,570
|
198
205
|
odxtools/templates/macros/printEndOfPdu.xml.jinja2,sha256=ptjwOxyNTABATOajiitcvlJRKVGP_osh2wSJTCbaa38,679
|
199
206
|
odxtools/templates/macros/printEnvData.xml.jinja2,sha256=2Goatqb66d-pCf9wqJDXn1EZWNhkQ8FJANKQMOnxuJs,609
|
@@ -204,8 +211,9 @@ odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ
|
|
204
211
|
odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
|
205
212
|
odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
|
206
213
|
odxtools/templates/macros/printOdxCategory.xml.jinja2,sha256=SatvRj0yafePV_Xg6Un1d5KXq3yZyqV9f5YZU1wlzws,856
|
207
|
-
odxtools/templates/macros/printParam.xml.jinja2,sha256=
|
214
|
+
odxtools/templates/macros/printParam.xml.jinja2,sha256=VvIA-4IjG1ugEPtACc4FKA-d8MlzaI8_Dcw8UR2vNc4,3221
|
208
215
|
odxtools/templates/macros/printParentRef.xml.jinja2,sha256=QpC5d_zys3OgttshMUsWVUVxpYfSazyJqeANtA-k3FY,1768
|
216
|
+
odxtools/templates/macros/printPreConditionStateRef.xml.jinja2,sha256=h6oQnvO8_1r5vSYlvyXMNT1ZEFaUpGg5bGMkZkWlBjU,614
|
209
217
|
odxtools/templates/macros/printProtStack.xml.jinja2,sha256=0FHHvuduiMPhAE19vpTHu3cQeM9kSybWj5FbybcXnGk,773
|
210
218
|
odxtools/templates/macros/printProtocol.xml.jinja2,sha256=QYfA8-3HWPVmpKW8bA7shKhrZ3s8iKQd8BfOYSRnMiU,1034
|
211
219
|
odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
|
@@ -216,14 +224,15 @@ odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_
|
|
216
224
|
odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
|
217
225
|
odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
|
218
226
|
odxtools/templates/macros/printStateTransition.xml.jinja2,sha256=J2t0yU82UBegUSH9sAbnkdgEYPTUU0A7I-CokuPQxDo,510
|
227
|
+
odxtools/templates/macros/printStateTransitionRef.xml.jinja2,sha256=rm6uKfRq8J_IlZ6KQP6jOwdvqMBI-mYcdLdjKse_seM,606
|
219
228
|
odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD14V0uC1aEk2P4roXyDhp-ah38,521
|
220
229
|
odxtools/templates/macros/printStructure.xml.jinja2,sha256=M8p82SlgKaDk6nJA-0wr6FhyfFCYw9UTrqvB8WnzdxU,645
|
221
230
|
odxtools/templates/macros/printSubComponent.xml.jinja2,sha256=ETo-k0K7px5nu9kgVjgDnjPoy8rYRfzq5ojvsZhM3Rw,3416
|
222
|
-
odxtools/templates/macros/printTable.xml.jinja2,sha256=
|
231
|
+
odxtools/templates/macros/printTable.xml.jinja2,sha256=uB0o-B3aJ64pkxY0flGoSx69QeSfdGjx30YhUtCAKy8,3336
|
223
232
|
odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=KOjRVwtdIg7uGl4B9cLpvW68-TYeE33Tz9sWZdnwkBE,2878
|
224
|
-
odxtools-9.
|
225
|
-
odxtools-9.
|
226
|
-
odxtools-9.
|
227
|
-
odxtools-9.
|
228
|
-
odxtools-9.
|
229
|
-
odxtools-9.
|
233
|
+
odxtools-9.6.0.dist-info/licenses/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
|
234
|
+
odxtools-9.6.0.dist-info/METADATA,sha256=xvQdgv7nxsZmapsSJ2nhZyjvlEQB15erYOhVIAYUwDg,44077
|
235
|
+
odxtools-9.6.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
236
|
+
odxtools-9.6.0.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
|
237
|
+
odxtools-9.6.0.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
|
238
|
+
odxtools-9.6.0.dist-info/RECORD,,
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
2
|
-
from typing import List, Optional
|
3
|
-
from xml.etree import ElementTree
|
4
|
-
|
5
|
-
from .ecuvariantpattern import EcuVariantPattern
|
6
|
-
from .odxlink import OdxDocFragment
|
7
|
-
|
8
|
-
|
9
|
-
def create_ecu_variant_patterns_from_et(et_element: Optional[ElementTree.Element],
|
10
|
-
doc_frags: List[OdxDocFragment]) -> List[EcuVariantPattern]:
|
11
|
-
|
12
|
-
if et_element is None:
|
13
|
-
return []
|
14
|
-
|
15
|
-
return [
|
16
|
-
EcuVariantPattern.from_et(evp_elem, doc_frags)
|
17
|
-
for evp_elem in et_element.iterfind("ECU-VARIANT-PATTERN")
|
18
|
-
]
|
odxtools/ecuvariantmatcher.py
DELETED
@@ -1,171 +0,0 @@
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
2
|
-
from enum import Enum
|
3
|
-
from typing import Dict, Generator, List, Optional
|
4
|
-
|
5
|
-
from .diaglayers.diaglayer import DiagLayer
|
6
|
-
from .diaglayers.diaglayertype import DiagLayerType
|
7
|
-
from .diaglayers.ecuvariant import EcuVariant
|
8
|
-
from .diagservice import DiagService
|
9
|
-
from .exceptions import OdxError, odxassert, odxrequire
|
10
|
-
from .matchingparameter import MatchingParameter
|
11
|
-
from .odxtypes import ParameterValue
|
12
|
-
from .response import Response
|
13
|
-
|
14
|
-
|
15
|
-
class EcuVariantMatcher:
|
16
|
-
"""EcuVariantMatcher implements the matching algorithm of ecu variants according to their
|
17
|
-
ECU-VARIANT-PATTERN according to ISO 22901-1.
|
18
|
-
|
19
|
-
Usage (example):
|
20
|
-
|
21
|
-
```python
|
22
|
-
|
23
|
-
# initialize the matcher with a list of ecu variants,
|
24
|
-
# i.e., DiagLayer instances of variant_type == DiagLayerType.ECU-VARIANT
|
25
|
-
matcher = EcuVariantMatcher(ecu_variant_candidates=[...], use_cache=use_cache)
|
26
|
-
|
27
|
-
# run the request loop to obtain responses for every request
|
28
|
-
for req in matcher.request_loop():
|
29
|
-
resp = ... # make a UDS request
|
30
|
-
matcher.evaluate(resp)
|
31
|
-
|
32
|
-
# result
|
33
|
-
if matcher.has_match()
|
34
|
-
match = matcher.get_active_ecu_variant()
|
35
|
-
```
|
36
|
-
"""
|
37
|
-
|
38
|
-
class State(Enum):
|
39
|
-
PENDING = 0
|
40
|
-
NO_MATCH = 1
|
41
|
-
MATCH = 2
|
42
|
-
|
43
|
-
@staticmethod
|
44
|
-
def get_ident_service(diag_layer: DiagLayer, matching_param: MatchingParameter) -> DiagService:
|
45
|
-
service_name = matching_param.diag_comm_snref
|
46
|
-
service = odxrequire(diag_layer.services.get(service_name))
|
47
|
-
return service
|
48
|
-
|
49
|
-
@staticmethod
|
50
|
-
def encode_ident_request(diag_layer: DiagLayer, matching_param: MatchingParameter) -> bytes:
|
51
|
-
service = EcuVariantMatcher.get_ident_service(diag_layer, matching_param)
|
52
|
-
return bytes(service.encode_request())
|
53
|
-
|
54
|
-
@staticmethod
|
55
|
-
def decode_ident_response(
|
56
|
-
diag_layer: DiagLayer,
|
57
|
-
matching_param: MatchingParameter,
|
58
|
-
response_bytes: bytes,
|
59
|
-
) -> str:
|
60
|
-
"""Decode a binary response and extract the identification string according
|
61
|
-
to the snref or snpathref of the matching_param.
|
62
|
-
"""
|
63
|
-
service = EcuVariantMatcher.get_ident_service(diag_layer, matching_param)
|
64
|
-
|
65
|
-
# ISO 22901 requires that snref or snpathref is resolvable in at least one
|
66
|
-
# POS-RESPONSE or NEG-RESPONSE
|
67
|
-
pos_neg_responses: List[Response] = []
|
68
|
-
if service.positive_responses is not None:
|
69
|
-
pos_neg_responses.extend(service.positive_responses)
|
70
|
-
if service.negative_responses is not None:
|
71
|
-
pos_neg_responses.extend(service.negative_responses)
|
72
|
-
|
73
|
-
for any_response in pos_neg_responses:
|
74
|
-
decoded_val: Optional[ParameterValue] = any_response.decode(response_bytes)
|
75
|
-
# disassemble snref / snpathref
|
76
|
-
path_ref = matching_param.out_param_if.split(".")
|
77
|
-
for ref in path_ref:
|
78
|
-
if isinstance(decoded_val, dict) and ref in decoded_val:
|
79
|
-
decoded_val = decoded_val[ref]
|
80
|
-
else:
|
81
|
-
decoded_val = None
|
82
|
-
break
|
83
|
-
|
84
|
-
if decoded_val is not None:
|
85
|
-
if isinstance(decoded_val, str) or isinstance(decoded_val, int):
|
86
|
-
return str(decoded_val)
|
87
|
-
|
88
|
-
raise OdxError(f"The snref or snpathref '{matching_param.out_param_if}' is cannot be \
|
89
|
-
resolved for any positive or negative response.")
|
90
|
-
|
91
|
-
def __init__(self, ecu_variant_candidates: List[EcuVariant], use_cache: bool = True):
|
92
|
-
|
93
|
-
self.ecus = ecu_variant_candidates
|
94
|
-
for ecu in self.ecus:
|
95
|
-
odxassert(ecu.variant_type == DiagLayerType.ECU_VARIANT)
|
96
|
-
|
97
|
-
self.use_cache = use_cache
|
98
|
-
self.req_resp_cache: Dict[bytes, bytes] = {}
|
99
|
-
self._recent_ident_response: Optional[bytes] = None
|
100
|
-
|
101
|
-
self._state = EcuVariantMatcher.State.PENDING
|
102
|
-
|
103
|
-
def request_loop(self) -> Generator[bytes, None, None]:
|
104
|
-
"""The request loop yields byte sequences of requests, which shall be executed within the
|
105
|
-
loop body. It is required to pass the response back to the matcher using the evaluate method.
|
106
|
-
"""
|
107
|
-
if not self.is_pending():
|
108
|
-
return
|
109
|
-
|
110
|
-
for ecu in self.ecus:
|
111
|
-
any_match = False
|
112
|
-
for pattern in ecu.ecu_variant_patterns:
|
113
|
-
all_match = True
|
114
|
-
for matching_param in pattern.matching_parameters:
|
115
|
-
req_bytes = bytes(EcuVariantMatcher.encode_ident_request(ecu, matching_param))
|
116
|
-
if self.use_cache and req_bytes in self.req_resp_cache:
|
117
|
-
resp_bytes = self.req_resp_cache[req_bytes]
|
118
|
-
else:
|
119
|
-
yield req_bytes
|
120
|
-
resp_bytes = self._get_ident_response()
|
121
|
-
self._update_cache(req_bytes, resp_bytes)
|
122
|
-
ident_val = EcuVariantMatcher.decode_ident_response(
|
123
|
-
ecu, matching_param, resp_bytes)
|
124
|
-
all_match &= matching_param.is_match(ident_val)
|
125
|
-
if all_match:
|
126
|
-
any_match = True
|
127
|
-
break
|
128
|
-
if any_match:
|
129
|
-
self._state = EcuVariantMatcher.State.MATCH
|
130
|
-
self._match = ecu
|
131
|
-
break
|
132
|
-
if self.is_pending():
|
133
|
-
# no pattern has matched for any ecu variant
|
134
|
-
self._state = EcuVariantMatcher.State.NO_MATCH
|
135
|
-
|
136
|
-
def evaluate(self, resp_bytes: bytes) -> None:
|
137
|
-
"""Update the matcher with the response to a requst.
|
138
|
-
|
139
|
-
Warning: Use this method EXACTLY once within the loop body of the request loop.
|
140
|
-
"""
|
141
|
-
self._recent_ident_response = bytes(resp_bytes)
|
142
|
-
|
143
|
-
def is_pending(self) -> bool:
|
144
|
-
"""True iff request loop has not yet been run."""
|
145
|
-
return self._state == EcuVariantMatcher.State.PENDING
|
146
|
-
|
147
|
-
def has_match(self) -> bool:
|
148
|
-
"""Returns true iff the non-pending matcher found a matching ecu variant.
|
149
|
-
|
150
|
-
Raises a runtime error if the matcher is pending.
|
151
|
-
"""
|
152
|
-
if self.is_pending():
|
153
|
-
raise RuntimeError(
|
154
|
-
"EcuVariantMatcher is pending. Run the request_loop to determine the active ecu variant."
|
155
|
-
)
|
156
|
-
return self._state == EcuVariantMatcher.State.MATCH
|
157
|
-
|
158
|
-
def get_active_ecu_variant(self) -> DiagLayer:
|
159
|
-
"""Returns the matched, i.e., active ecu variant if such a variant has been found."""
|
160
|
-
odxassert(self.has_match())
|
161
|
-
return self._match
|
162
|
-
|
163
|
-
def _update_cache(self, req_bytes: bytes, resp_bytes: bytes) -> None:
|
164
|
-
if self.use_cache:
|
165
|
-
self.req_resp_cache[req_bytes] = resp_bytes
|
166
|
-
|
167
|
-
def _get_ident_response(self) -> bytes:
|
168
|
-
if not self._recent_ident_response:
|
169
|
-
raise RuntimeError(
|
170
|
-
"No response available. Did you forget to call 'evaluate()' in a loop?")
|
171
|
-
return self._recent_ident_response
|
File without changes
|
File without changes
|
File without changes
|