odxtools 8.1.0__py3-none-any.whl → 8.2.1__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/audience.py +7 -8
- odxtools/compumethods/compucodecompumethod.py +63 -0
- odxtools/compumethods/compuinternaltophys.py +19 -2
- odxtools/compumethods/compumethod.py +28 -2
- odxtools/compumethods/compuphystointernal.py +19 -2
- odxtools/compumethods/createanycompumethod.py +12 -0
- odxtools/compumethods/linearcompumethod.py +2 -2
- odxtools/compumethods/ratfunccompumethod.py +106 -0
- odxtools/compumethods/ratfuncsegment.py +87 -0
- odxtools/compumethods/scaleratfunccompumethod.py +113 -0
- odxtools/dataobjectproperty.py +3 -0
- odxtools/diaglayers/basevariantraw.py +7 -1
- odxtools/diaglayers/diaglayer.py +5 -0
- odxtools/diaglayers/diaglayerraw.py +13 -1
- odxtools/diaglayers/ecushareddataraw.py +7 -1
- odxtools/diaglayers/ecuvariantraw.py +7 -1
- odxtools/diaglayers/functionalgroupraw.py +7 -1
- odxtools/diaglayers/hierarchyelementraw.py +7 -1
- odxtools/diaglayers/protocolraw.py +7 -1
- odxtools/diagservice.py +3 -1
- odxtools/dtcdop.py +6 -0
- odxtools/environmentdatadescription.py +11 -6
- odxtools/library.py +66 -0
- odxtools/minmaxlengthtype.py +1 -1
- odxtools/multiplexer.py +4 -4
- odxtools/multiplexercase.py +1 -1
- odxtools/odxtypes.py +14 -0
- odxtools/parameterinfo.py +132 -76
- odxtools/parameters/systemparameter.py +51 -8
- odxtools/progcode.py +8 -4
- odxtools/standardlengthtype.py +4 -1
- odxtools/templates/macros/printCompuMethod.xml.jinja2 +3 -2
- odxtools/templates/macros/printDiagLayer.xml.jinja2 +8 -0
- odxtools/templates/macros/printLibrary.xml.jinja2 +21 -0
- odxtools/templates/macros/printSingleEcuJob.xml.jinja2 +2 -23
- odxtools/unitspec.py +10 -9
- odxtools/version.py +2 -2
- {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/METADATA +1 -1
- {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/RECORD +43 -37
- {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/WHEEL +1 -1
- {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/LICENSE +0 -0
- {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/entry_points.txt +0 -0
- {odxtools-8.1.0.dist-info → odxtools-8.2.1.dist-info}/top_level.txt +0 -0
@@ -1,19 +1,29 @@
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
2
|
+
import getpass
|
2
3
|
from dataclasses import dataclass
|
4
|
+
from datetime import datetime
|
3
5
|
from typing import List, Optional
|
4
6
|
from xml.etree import ElementTree
|
5
7
|
|
6
8
|
from typing_extensions import override
|
7
9
|
|
8
|
-
from ..decodestate import DecodeState
|
9
10
|
from ..encodestate import EncodeState
|
10
|
-
from ..exceptions import odxrequire
|
11
|
+
from ..exceptions import odxraise, odxrequire
|
11
12
|
from ..odxlink import OdxDocFragment
|
12
13
|
from ..odxtypes import ParameterValue
|
13
14
|
from ..utils import dataclass_fields_asdict
|
14
15
|
from .parameter import ParameterType
|
15
16
|
from .parameterwithdop import ParameterWithDOP
|
16
17
|
|
18
|
+
# The SYSTEM parameter types mandated by the ODX 2.2 standard. Users
|
19
|
+
# are free to specify additional types, but these must be handled
|
20
|
+
# (cf. table 5 in section 7.3.5.4 of the ASAM ODX 2.2 specification
|
21
|
+
# document.)
|
22
|
+
PREDEFINED_SYSPARAM_VALUES = [
|
23
|
+
"TIMESTAMP", "SECOND", "MINUTE", "HOUR", "TIMEZONE", "DAY", "WEEK", "MONTH", "YEAR", "CENTURY",
|
24
|
+
"TESTERID", "USERID"
|
25
|
+
]
|
26
|
+
|
17
27
|
|
18
28
|
@dataclass
|
19
29
|
class SystemParameter(ParameterWithDOP):
|
@@ -38,18 +48,51 @@ class SystemParameter(ParameterWithDOP):
|
|
38
48
|
@property
|
39
49
|
@override
|
40
50
|
def is_required(self) -> bool:
|
41
|
-
|
51
|
+
# if a SYSTEM parameter is not specified explicitly, its value
|
52
|
+
# can be determined from the operating system if it is type is
|
53
|
+
# predefined
|
54
|
+
return self.sysparam not in PREDEFINED_SYSPARAM_VALUES
|
42
55
|
|
43
56
|
@property
|
44
57
|
@override
|
45
58
|
def is_settable(self) -> bool:
|
46
|
-
|
59
|
+
return True
|
47
60
|
|
48
61
|
@override
|
49
62
|
def _encode_positioned_into_pdu(self, physical_value: Optional[ParameterValue],
|
50
63
|
encode_state: EncodeState) -> None:
|
51
|
-
|
64
|
+
if physical_value is None:
|
65
|
+
# determine the value to be encoded automatically
|
66
|
+
now = datetime.now()
|
67
|
+
if self.sysparam == "TIMESTAMP":
|
68
|
+
physical_value = round(now.timestamp() * 1000).to_bytes(8, "big")
|
69
|
+
elif self.sysparam == "SECOND":
|
70
|
+
physical_value = now.second
|
71
|
+
elif self.sysparam == "MINUTE":
|
72
|
+
physical_value = now.minute
|
73
|
+
elif self.sysparam == "HOUR":
|
74
|
+
physical_value = now.hour
|
75
|
+
elif self.sysparam == "TIMEZONE":
|
76
|
+
if (utc_offset := now.astimezone().utcoffset()) is not None:
|
77
|
+
physical_value = utc_offset.seconds // 60
|
78
|
+
else:
|
79
|
+
physical_value = 0
|
80
|
+
elif self.sysparam == "DAY":
|
81
|
+
physical_value = now.day
|
82
|
+
elif self.sysparam == "WEEK":
|
83
|
+
physical_value = now.isocalendar()[1]
|
84
|
+
elif self.sysparam == "MONTH":
|
85
|
+
physical_value = now.month
|
86
|
+
elif self.sysparam == "YEAR":
|
87
|
+
physical_value = now.year
|
88
|
+
elif self.sysparam == "CENTURY":
|
89
|
+
physical_value = now.year // 100
|
90
|
+
elif self.sysparam == "TESTERID":
|
91
|
+
physical_value = "odxtools".encode("latin1")
|
92
|
+
elif self.sysparam == "USERID":
|
93
|
+
physical_value = getpass.getuser().encode("latin1")
|
94
|
+
else:
|
95
|
+
odxraise(f"Unknown system parameter type '{self.sysparam}'")
|
96
|
+
physical_value = 0
|
52
97
|
|
53
|
-
|
54
|
-
def _decode_positioned_from_pdu(self, decode_state: DecodeState) -> ParameterValue:
|
55
|
-
raise NotImplementedError("Decoding SystemParameter is not implemented yet.")
|
98
|
+
self.dop.encode_into_pdu(physical_value, encode_state=encode_state)
|
odxtools/progcode.py
CHANGED
@@ -4,6 +4,8 @@ from typing import Any, Dict, List, Optional, cast
|
|
4
4
|
from xml.etree import ElementTree
|
5
5
|
|
6
6
|
from .exceptions import odxraise, odxrequire
|
7
|
+
from .library import Library
|
8
|
+
from .nameditemlist import NamedItemList
|
7
9
|
from .odxlink import OdxDocFragment, OdxLinkDatabase, OdxLinkId, OdxLinkRef
|
8
10
|
from .snrefcontext import SnRefContext
|
9
11
|
|
@@ -12,9 +14,9 @@ from .snrefcontext import SnRefContext
|
|
12
14
|
class ProgCode:
|
13
15
|
"""A reference to code that is executed by a single ECU job"""
|
14
16
|
code_file: str
|
17
|
+
encryption: Optional[str]
|
15
18
|
syntax: str
|
16
19
|
revision: str
|
17
|
-
encryption: Optional[str]
|
18
20
|
entrypoint: Optional[str]
|
19
21
|
library_refs: List[OdxLinkRef]
|
20
22
|
|
@@ -22,6 +24,10 @@ class ProgCode:
|
|
22
24
|
def code(self) -> bytes:
|
23
25
|
return self._code
|
24
26
|
|
27
|
+
@property
|
28
|
+
def libraries(self) -> NamedItemList[Library]:
|
29
|
+
return self._libraries
|
30
|
+
|
25
31
|
@staticmethod
|
26
32
|
def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "ProgCode":
|
27
33
|
code_file = odxrequire(et_element.findtext("CODE-FILE"))
|
@@ -49,9 +55,7 @@ class ProgCode:
|
|
49
55
|
return {}
|
50
56
|
|
51
57
|
def _resolve_odxlinks(self, odxlinks: OdxLinkDatabase) -> None:
|
52
|
-
|
53
|
-
# Once they are internalized, resolve the `library_refs` references here.
|
54
|
-
pass
|
58
|
+
self._libraries = NamedItemList([odxlinks.resolve(x, Library) for x in self.library_refs])
|
55
59
|
|
56
60
|
def _resolve_snrefs(self, context: SnRefContext) -> None:
|
57
61
|
aux_file = odxrequire(context.database).auxiliary_files.get(self.code_file)
|
odxtools/standardlengthtype.py
CHANGED
@@ -88,7 +88,10 @@ class StandardLengthType(DiagCodedType):
|
|
88
88
|
else:
|
89
89
|
sz = (odxrequire(self.get_static_bit_length()) + 7) // 8
|
90
90
|
|
91
|
-
|
91
|
+
max_value = (1 << (sz * 8)) - 1
|
92
|
+
bit_mask = self.bit_mask & max_value
|
93
|
+
|
94
|
+
return bit_mask.to_bytes(sz, endianness)
|
92
95
|
|
93
96
|
def __apply_mask(self, internal_value: AtomicOdxType) -> AtomicOdxType:
|
94
97
|
if self.bit_mask is None:
|
@@ -92,12 +92,13 @@
|
|
92
92
|
{%- macro printProgCode(pc) -%}
|
93
93
|
<PROG-CODE>
|
94
94
|
<CODE-FILE>{{pc.code_file}}</CODE-FILE>
|
95
|
-
<SYNTAX>{{pc.syntax}}</SYNTAX>
|
96
95
|
{%- if pc.encryption is not none %}
|
97
96
|
<ENCRYPTION>{{pc.encryption}}</ENCRYPTION>
|
98
97
|
{%- endif %}
|
98
|
+
<SYNTAX>{{pc.syntax}}</SYNTAX>
|
99
|
+
<REVISION>{{pc.revision}}</REVISION>
|
99
100
|
{%- if pc.entry_point is not none %}
|
100
|
-
<
|
101
|
+
<ENTRYPOINT>{{pc.entrypoint}}</ENTRYPOINT>
|
101
102
|
{%- endif %}
|
102
103
|
{%- if pc.library_refs %}
|
103
104
|
<LIBRARY-REFS>
|
@@ -22,6 +22,7 @@
|
|
22
22
|
{%- import('macros/printResponse.xml.jinja2') as presp %}
|
23
23
|
{%- import('macros/printStateChart.xml.jinja2') as psc %}
|
24
24
|
{%- import('macros/printAudience.xml.jinja2') as paud %}
|
25
|
+
{%- import('macros/printLibrary.xml.jinja2') as plib %}
|
25
26
|
{%- import('macros/printSpecialData.xml.jinja2') as psd %}
|
26
27
|
{%- import('macros/printEcuVariantPattern.xml.jinja2') as pvpat %}
|
27
28
|
{%- import('macros/printAdminData.xml.jinja2') as pad %}
|
@@ -202,5 +203,12 @@
|
|
202
203
|
{%- endfor %}
|
203
204
|
</ADDITIONAL-AUDIENCES>
|
204
205
|
{%- endif %}
|
206
|
+
{%- if dlr.libraries %}
|
207
|
+
<LIBRARYS>
|
208
|
+
{%- for lib in dlr.libraries %}
|
209
|
+
{{ plib.printLibrary(lib)|indent(2) }}
|
210
|
+
{%- endfor %}
|
211
|
+
</LIBRARYS>
|
212
|
+
{%- endif %}
|
205
213
|
{{- psd.printSpecialDataGroups(dlr.sdgs)|indent(0, first=True) }}
|
206
214
|
{%- endmacro -%}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{#- -*- mode: sgml; tab-width: 1; indent-tabs-mode: nil -*-
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: MIT
|
4
|
+
-#}
|
5
|
+
|
6
|
+
{%- import('macros/printElementId.xml.jinja2') as peid %}
|
7
|
+
|
8
|
+
{%- macro printLibrary(library) %}
|
9
|
+
<LIBRARY{#- #} {{-peid.printElementIdAttribs(library)}}{# -#}>
|
10
|
+
{{ peid.printElementIdSubtags(library)|indent(1) }}
|
11
|
+
<CODE-FILE>{{library.code_file}}</CODE-FILE>
|
12
|
+
{%- if library.encryption is not none %}
|
13
|
+
<ENCRYPTION>{{library.encryption}}</ENCRYPTION>
|
14
|
+
{%- endif %}
|
15
|
+
<SYNTAX>{{library.syntax}}</SYNTAX>
|
16
|
+
<REVISION>{{library.revision}}</REVISION>
|
17
|
+
{%- if library.entrypoint is not none %}
|
18
|
+
<ENTRYPOINT>{{library.entrypoint}}</ENTRYPOINT>
|
19
|
+
{%- endif %}
|
20
|
+
</LIBRARY>
|
21
|
+
{%- endmacro %}
|
@@ -5,13 +5,14 @@
|
|
5
5
|
|
6
6
|
{%- import('macros/printElementId.xml.jinja2') as peid %}
|
7
7
|
{%- import('macros/printDiagComm.xml.jinja2') as pdc %}
|
8
|
+
{%- import('macros/printCompuMethod.xml.jinja2') as pcm %}
|
8
9
|
|
9
10
|
{%- macro printSingleEcuJob(job) -%}
|
10
11
|
<SINGLE-ECU-JOB {{pdc.printDiagCommAttribs(job)|indent(1) }}>
|
11
12
|
{{pdc.printDiagCommSubtags(job) | indent(2, first=True) }}
|
12
13
|
<PROG-CODES>
|
13
14
|
{%- for prog in job.prog_codes %}
|
14
|
-
{{ printProgCode(prog)|indent(4) }}
|
15
|
+
{{ pcm.printProgCode(prog)|indent(4) }}
|
15
16
|
{%- endfor %}
|
16
17
|
</PROG-CODES>
|
17
18
|
{%- if job.input_params %}
|
@@ -39,28 +40,6 @@
|
|
39
40
|
{%- endmacro -%}
|
40
41
|
|
41
42
|
|
42
|
-
{%- macro printProgCode(prog) -%}
|
43
|
-
<PROG-CODE>
|
44
|
-
<CODE-FILE>{{prog.code_file}}</CODE-FILE>
|
45
|
-
{%- if prog.encryption %}
|
46
|
-
<ENCRYPTION>{{prog.encryption}}</ENCRYPTION>
|
47
|
-
{%- endif %}
|
48
|
-
<SYNTAX>{{prog.syntax}}</SYNTAX>
|
49
|
-
<REVISION>{{prog.revision}}</REVISION>
|
50
|
-
{%- if prog.entrypoint %}
|
51
|
-
<ENTRYPOINT>{{prog.entrypoint}}</ENTRYPOINT>
|
52
|
-
{%- endif %}
|
53
|
-
{%- if prog.library_refs %}
|
54
|
-
<LIBRARY-REFS>
|
55
|
-
{%- for ref in prog.library_refs %}
|
56
|
-
<LIBRARY-REF ID-REF="{{ref.ref_id}}" />
|
57
|
-
{%- endfor %}
|
58
|
-
</LIBRARY-REFS>
|
59
|
-
{%- endif %}
|
60
|
-
</PROG-CODE>
|
61
|
-
{%- endmacro -%}
|
62
|
-
|
63
|
-
|
64
43
|
{%- macro printInputParam(param) -%}
|
65
44
|
<INPUT-PARAM {{-make_xml_attrib("OID", param.oid)}}
|
66
45
|
{{-make_xml_attrib("SEMANTIC", param.semantic)}}>
|
odxtools/unitspec.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
2
2
|
from dataclasses import dataclass
|
3
|
-
from typing import Any, Dict, List
|
3
|
+
from typing import Any, Dict, List
|
4
4
|
from xml.etree import ElementTree
|
5
5
|
|
6
6
|
from .nameditemlist import NamedItemList
|
@@ -25,9 +25,9 @@ class UnitSpec:
|
|
25
25
|
"""
|
26
26
|
|
27
27
|
# TODO (?): Why are there type errors...
|
28
|
-
unit_groups:
|
29
|
-
units:
|
30
|
-
physical_dimensions:
|
28
|
+
unit_groups: NamedItemList[UnitGroup]
|
29
|
+
units: NamedItemList[Unit]
|
30
|
+
physical_dimensions: NamedItemList[PhysicalDimension]
|
31
31
|
sdgs: List[SpecialDataGroup]
|
32
32
|
|
33
33
|
def __post_init__(self) -> None:
|
@@ -38,14 +38,15 @@ class UnitSpec:
|
|
38
38
|
@staticmethod
|
39
39
|
def from_et(et_element: ElementTree.Element, doc_frags: List[OdxDocFragment]) -> "UnitSpec":
|
40
40
|
|
41
|
-
unit_groups = [
|
41
|
+
unit_groups = NamedItemList([
|
42
42
|
UnitGroup.from_et(el, doc_frags) for el in et_element.iterfind("UNIT-GROUPS/UNIT-GROUP")
|
43
|
-
]
|
44
|
-
units =
|
45
|
-
|
43
|
+
])
|
44
|
+
units = NamedItemList(
|
45
|
+
[Unit.from_et(el, doc_frags) for el in et_element.iterfind("UNITS/UNIT")])
|
46
|
+
physical_dimensions = NamedItemList([
|
46
47
|
PhysicalDimension.from_et(el, doc_frags)
|
47
48
|
for el in et_element.iterfind("PHYSICAL-DIMENSIONS/PHYSICAL-DIMENSION")
|
48
|
-
]
|
49
|
+
])
|
49
50
|
sdgs = [
|
50
51
|
SpecialDataGroup.from_et(sdge, doc_frags) for sdge in et_element.iterfind("SDGS/SDG")
|
51
52
|
]
|
odxtools/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odxtools
|
3
|
-
Version: 8.1
|
3
|
+
Version: 8.2.1
|
4
4
|
Summary: Utilities to work with the ODX standard for automotive diagnostics
|
5
5
|
Author-email: Katrin Bauer <katrin.bauer@mbition.io>, Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
|
6
6
|
Maintainer-email: Andreas Lauser <andreas.lauser@mbition.io>, Ayoub Kaanich <kayoub5@live.com>
|
@@ -2,7 +2,7 @@ odxtools/__init__.py,sha256=kfejU9B_COPKCNfhbzkq_RuQ1VpH0S_EA4gstYaANtk,2458
|
|
2
2
|
odxtools/__main__.py,sha256=MKzFqY8KAV0BGsBXs04QwPpW5OGuT-rZQ4QlM8Tar8Y,119
|
3
3
|
odxtools/additionalaudience.py,sha256=Xjy_PhTfTV23oAMvml5XeZw3ex8xssIhgRseSsxKcxQ,956
|
4
4
|
odxtools/admindata.py,sha256=ue5MnYJK_jxNq6Okxy4aGtH15uBAnWXIjMBFSh36Q3g,1879
|
5
|
-
odxtools/audience.py,sha256=
|
5
|
+
odxtools/audience.py,sha256=_O6UPKnrDbwMMKRnCJ5b8M3_I2jU5jMR6Ss5zLzk9yM,3361
|
6
6
|
odxtools/basecomparam.py,sha256=VxpIsTr6-S4e8Vw72hJXSLUFU5TvHy5CM0sweVL-ZWE,2384
|
7
7
|
odxtools/basicstructure.py,sha256=wkbTuS9VlfLhAQCS59kXUkDtlhz9dKvLEQpXpsHrN90,12854
|
8
8
|
odxtools/commrelation.py,sha256=Gh3CqMuF9rS0X107oxUkISNT2VWDZVPCpOSu54q7hcs,4793
|
@@ -20,7 +20,7 @@ odxtools/createanycomparam.py,sha256=RP0XA2Ut4GL2NWy05RvKBrTnpbvvCG2XuNL8OO-9rbI
|
|
20
20
|
odxtools/createanydiagcodedtype.py,sha256=0DVmMj4UCDYIg0zu9pgTplyhHmRedz1KJcchq1uKMjg,1216
|
21
21
|
odxtools/createecuvariantpatterns.py,sha256=FXHLGR4M791MRkpU2_keck88hoMYkuyPiCUxuGbUasQ,559
|
22
22
|
odxtools/database.py,sha256=ktsm_tJOXXWKlD-EW_Flp_fSXJvQYzZKIzwLAZEoLTE,9284
|
23
|
-
odxtools/dataobjectproperty.py,sha256=
|
23
|
+
odxtools/dataobjectproperty.py,sha256=otbbtGadW_W9nr5sL9Fug5_bU91eYeOYyfBWa7sb3B0,6052
|
24
24
|
odxtools/decodestate.py,sha256=jJxLUzUYZ0C4t18FhJzo2iRTP8DF7BzrWLtRTTlLsJI,4885
|
25
25
|
odxtools/description.py,sha256=UoACftC_n7fQ1n9WDwCzizStMH0HCO2Qv0YLRaSjEgs,1484
|
26
26
|
odxtools/determinenumberofitems.py,sha256=DxM9udr1MQfEojiLdc35bbjniQl1fkeHcTMpoo9AfPI,1558
|
@@ -29,11 +29,11 @@ odxtools/diagcomm.py,sha256=j8esUkogoxHBwIEUBkAoXe28jX3vaRnnrgCR_gdP6VY,8110
|
|
29
29
|
odxtools/diagdatadictionaryspec.py,sha256=2zy5f-xnfGI0bnjPOEwG_IJxfsHhXZoOfdIS_fOr3L0,10552
|
30
30
|
odxtools/diaglayercontainer.py,sha256=0JC6ioUGe5c8FzXRotyGEGMMDz8fzKCsK204tGN3cAo,6524
|
31
31
|
odxtools/diagnostictroublecode.py,sha256=jKtO8JqU0HRpeSyrcHn4s21N4Jj-p19WVP-qw2H98gY,2459
|
32
|
-
odxtools/diagservice.py,sha256=
|
32
|
+
odxtools/diagservice.py,sha256=y1_qKI7kJXDWpjpw91loIdf-K7Ozo45BsYiOhVYGuXg,10291
|
33
33
|
odxtools/diagvariable.py,sha256=KUyRCV-H5xKITWYk9wxDnaS_N2nwDFGQzHaQRfNndKA,3829
|
34
34
|
odxtools/docrevision.py,sha256=m57a4lCWeR6QvNNxtwUNpLXAMgSq29ks1HorxoipFVk,2698
|
35
35
|
odxtools/dopbase.py,sha256=JMqlMNKyZJlXwcBFROetCIy1RsK-V_mSCR0MDuA-G5Y,2493
|
36
|
-
odxtools/dtcdop.py,sha256=
|
36
|
+
odxtools/dtcdop.py,sha256=lmxmDKeuUyOGRZekCnzD7lGuKYc0BT3YIVTwklbMMCg,8337
|
37
37
|
odxtools/dynamicendmarkerfield.py,sha256=Q7KKOBNSrAg5cehEP3i4YTPiqz5UetEIJDGah608DDk,5559
|
38
38
|
odxtools/dynamiclengthfield.py,sha256=Us0qRvkRPId7xSNKrYdsr1AhVFdTBezRMCBhXl98E00,5273
|
39
39
|
odxtools/dyndefinedspec.py,sha256=ErtMIFVAB-E-ujTUwLXxsheGOOFkhNy6zCXs4cp7biE,7657
|
@@ -44,7 +44,7 @@ odxtools/element.py,sha256=nCJkQMIPC26XfD4w1VrTH3l7Cd_BemMM_5lALh5gC7E,1259
|
|
44
44
|
odxtools/encodestate.py,sha256=yxeql949uvlB2WnsF0jVcMJ6PvaoYcGB7M0OuB4Afj0,10008
|
45
45
|
odxtools/endofpdufield.py,sha256=mGkhTj-YGdJ4EHMsK3AlWV6G_KLWI4ymiFKbY8U2W50,3359
|
46
46
|
odxtools/environmentdata.py,sha256=_wSKhV_NuMG6UPMnpOxz6mVjvrXsd2mtqqT7VKSSxHU,1414
|
47
|
-
odxtools/environmentdatadescription.py,sha256=
|
47
|
+
odxtools/environmentdatadescription.py,sha256=2aAvretxH0_8KKMwk2-J-ou2Abd2kwUEwsSAEn7F5WM,9899
|
48
48
|
odxtools/exceptions.py,sha256=ZApQkhOJ9gn4jk0uO1wmULn5PhNEl1aMYMSHDoXihh0,2714
|
49
49
|
odxtools/field.py,sha256=pdQpWxybPsiQ4oFKtvnjIEcQXV2WD0qH-NnBV54KMcI,3860
|
50
50
|
odxtools/functionalclass.py,sha256=IfhxKd02WNGftjSMyBJ8RsxVZgTBxzUM0h6EKHVrrxY,951
|
@@ -53,27 +53,28 @@ odxtools/inputparam.py,sha256=lyffK4UBG2d_0JzIaf1QZCsPXFti6gejiIWRSdr-CYA,1841
|
|
53
53
|
odxtools/internalconstr.py,sha256=QKEkaOcrFoL9xID-oHWWkeg-vtcPV6RFOW1fX2K3pwg,1363
|
54
54
|
odxtools/isotp_state_machine.py,sha256=O6v29IK7p_4gFqrr-fahnbp9Qmo78EEQfEwRsA_Vfjw,13339
|
55
55
|
odxtools/leadinglengthinfotype.py,sha256=mtq38k74hEh_CUY7NbVwdCc_aqKr7v5ABoS_SlKVXyI,4185
|
56
|
+
odxtools/library.py,sha256=E_A6K6jcEoUdXh4h4sQILj7_JM-6X5OUUWSM47G69CU,2067
|
56
57
|
odxtools/loadfile.py,sha256=hi8jVE7B1G9gklsb7MrGrp4aOAI65j0kNwvDeEEEN2k,1744
|
57
58
|
odxtools/matchingparameter.py,sha256=2cqaxFCZ28GvvUKCIM-jas3ae4eYGbULbkBlb3aH5RY,2232
|
58
59
|
odxtools/message.py,sha256=07GekN1MbYXm7HaUITDKTj2lBmGK-LB9W8gtBmfAOew,1057
|
59
|
-
odxtools/minmaxlengthtype.py,sha256=
|
60
|
+
odxtools/minmaxlengthtype.py,sha256=FxcfbuPEmXgYava3h0EPF43I5yTZW_lUcgTqOF5mnes,8917
|
60
61
|
odxtools/modification.py,sha256=oyyFsYHixy6XHOdqqTCx3IIkTAKlSN9wxBpNpvhUaJA,838
|
61
|
-
odxtools/multiplexer.py,sha256=
|
62
|
-
odxtools/multiplexercase.py,sha256=
|
62
|
+
odxtools/multiplexer.py,sha256=flHlorv9grEMj8pNAWQJNrxhptnDxSsFERO7gpKYRME,10235
|
63
|
+
odxtools/multiplexercase.py,sha256=qfxWJzfJLYAsnhFGheUWDsUaIte2dSRJ0nadiN9SXDw,3176
|
63
64
|
odxtools/multiplexerdefaultcase.py,sha256=u3YxZZawhXTOdrC5ltt1YNNaDMGrbL9qsz6PTKrPdSM,2104
|
64
65
|
odxtools/multiplexerswitchkey.py,sha256=fnCpPcg47JQZQsrqS2RAa_O-JrfUb0pvhKv8hhs1RXQ,1551
|
65
66
|
odxtools/nameditemlist.py,sha256=IYN_OBVf_iIU6a5CQ-gCttiUMeJEe04uk9z6Ro6IGK8,6521
|
66
67
|
odxtools/negoutputparam.py,sha256=u2IhJvy6n19t3nyADGG0H0XTm7JNdQ0-95FawGAdtiE,1373
|
67
68
|
odxtools/obd.py,sha256=WsUbhdonqQJtxf972CUdYL78AMMTVjMQhoCJbaZhRIo,1860
|
68
69
|
odxtools/odxlink.py,sha256=YoEovTx5T8c5YFJPa2CSxk_gwRfP8miGCwicHbpqQNg,9259
|
69
|
-
odxtools/odxtypes.py,sha256=
|
70
|
+
odxtools/odxtypes.py,sha256=MKfusVSYma_OZYmxCVm-kx7WBK8OHjeU3DnJhet4zeg,8055
|
70
71
|
odxtools/outputparam.py,sha256=_NVZj4YfU_RdPpGUnz659-70DaYwBxYxwktxZ5lSMsY,1568
|
71
|
-
odxtools/parameterinfo.py,sha256=
|
72
|
+
odxtools/parameterinfo.py,sha256=oIVtlQUZVYVWuXVnjyosyzazkNJANk1Qe9URKfho5Hk,11223
|
72
73
|
odxtools/paramlengthinfotype.py,sha256=vhgvCPIRnyCF9t8yhkYf5MsHXQhWWeEgz_kS8AbiONQ,4700
|
73
74
|
odxtools/parentref.py,sha256=kcY3VMyVaIUWD0iVNX8sD9qeI4peU8gijboquu0zD7E,3751
|
74
75
|
odxtools/physicaldimension.py,sha256=CEH7Ura4gqsqlBUxBW08ea9Pxh_Od8JruYQ8o9qOGME,3269
|
75
76
|
odxtools/physicaltype.py,sha256=oYjOhdrTVCJcLLBYgy6pxKsZHpuwm1vZ8svwSjsUB6E,2699
|
76
|
-
odxtools/progcode.py,sha256=
|
77
|
+
odxtools/progcode.py,sha256=Cx8ziCmQm2OfhinAuRrFrMuoThU7hgA6zNQKAT-AT0A,2276
|
77
78
|
odxtools/protstack.py,sha256=nb2RR4OEaGX6lJ6drHejJU-tkB1p0Ok0KLZhNMTdsEc,2012
|
78
79
|
odxtools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
79
80
|
odxtools/relateddoc.py,sha256=zb5Ea9vkd31kxTP4s5_PLF3LuCoUcG8rgLckStHVRDc,1301
|
@@ -86,7 +87,7 @@ odxtools/snrefcontext.py,sha256=5ZbrZiX1gw6LC6o62RPuxzSo4tDR2LqRQ9w9Vi57FA8,953
|
|
86
87
|
odxtools/specialdata.py,sha256=5-1D_6dcEmi-TodCzCoBZK7gqeDY-cuRe1ybkTh4rBY,1033
|
87
88
|
odxtools/specialdatagroup.py,sha256=y2fMwWVX5h7W7-gBi6izlvdc26bkYRYXKNbinNel3RM,3070
|
88
89
|
odxtools/specialdatagroupcaption.py,sha256=pIa1l6EXVDXBisUtRkn6hTzAcUXFnXJoWstesayLfME,987
|
89
|
-
odxtools/standardlengthtype.py,sha256=
|
90
|
+
odxtools/standardlengthtype.py,sha256=SQBgdHIc9msFCBuS9GYyDeKE8bK1PgSvIkVEZSVoBcU,5225
|
90
91
|
odxtools/state.py,sha256=d--nCbV1qBmOmiTmUrQjDC_naispOM0a-H1AvCe5_xI,898
|
91
92
|
odxtools/statechart.py,sha256=ZT8amPjec25pexwnOAPiifGEmKa68rliOILLnB6tNJc,2956
|
92
93
|
odxtools/statetransition.py,sha256=axZ1ePyyWAsxslTI5KDjZxC42uNyoPc6N7cNIhP5pxE,1860
|
@@ -99,10 +100,10 @@ odxtools/teammember.py,sha256=xn1y6k42zQoyM2SlEkZ8UFyiqBvVI5FNZAm_xt2Vt_Y,1772
|
|
99
100
|
odxtools/uds.py,sha256=69SyVnQDcyspzSf6QVfm_Uk9iCxczD6UcrO1PxhNo7E,5894
|
100
101
|
odxtools/unit.py,sha256=PLMErZ6N9oA4z3fuwYsmqMajeVHFNtKhC-w7IzaTfvw,3588
|
101
102
|
odxtools/unitgroup.py,sha256=_WNpnYFmkiHQnOY8XhIviiQLXziY3kplH--7ufAWXyI,2067
|
102
|
-
odxtools/unitspec.py,sha256=
|
103
|
+
odxtools/unitspec.py,sha256=RMdEQoLrPhGt9vo32fkwbTqymicHFkFQnydFoi3uBog,2924
|
103
104
|
odxtools/utils.py,sha256=PJFXkG74BzoheurrDYOwHZ6EuIcr1sdxf1tQGk6zSgs,1122
|
104
105
|
odxtools/variablegroup.py,sha256=--5sMDOMUg4I3hFyoVOFcGCTOrctrrMADdmH3Mn4wHk,848
|
105
|
-
odxtools/version.py,sha256=
|
106
|
+
odxtools/version.py,sha256=ry4mLPoauQf45skJo220Mc_ipdigukiUFwiTCQkO_wU,411
|
106
107
|
odxtools/writepdxfile.py,sha256=ZEoNkSxheqnXm836-HOpd04O6ipMXYKFzXZy6PM0YLc,7813
|
107
108
|
odxtools/xdoc.py,sha256=gDq-8l8x-Tj1ZJOttPxZchcO5_jEPwcXxMgT29VgTS0,1433
|
108
109
|
odxtools/cli/__init__.py,sha256=T7ano_FIyzBASxYpmcA5VJXU5bQLIy_Qk0HE_SDKelY,106
|
@@ -116,37 +117,41 @@ odxtools/cli/find.py,sha256=GZKzvsOus1Zv8n3nAG-ZsPgWJpB7z3wNxeqKtAL5mAo,4394
|
|
116
117
|
odxtools/cli/list.py,sha256=4cJS7JbODR2aLwM_1QNutei4MIlZ4nvIMdLfR9mP1gw,9050
|
117
118
|
odxtools/cli/main.py,sha256=_zPCU6N2ofpj_jQuQ_BU5EafBpMW0srhahZI8BgAM-0,2335
|
118
119
|
odxtools/cli/snoop.py,sha256=z8USSpmz18VAvkGpzepeaOlVJhi-8aeW10XRylsvZLU,10610
|
120
|
+
odxtools/compumethods/compucodecompumethod.py,sha256=cCgCCuFcu2K9QuW0ZNbfp6AQdgPy9QE7UnmRa6Iet28,2459
|
119
121
|
odxtools/compumethods/compuconst.py,sha256=14JIJXVKSe4bPWb5JyKXB6tAASMcWznExE1w6z1SMoc,806
|
120
122
|
odxtools/compumethods/compudefaultvalue.py,sha256=Lw8Fnm854dpNCvO8waKWg_hSRyW-NwvoQFFjyW3RHwY,980
|
121
|
-
odxtools/compumethods/compuinternaltophys.py,sha256=
|
123
|
+
odxtools/compumethods/compuinternaltophys.py,sha256=7BHDeUpe8XUlvdUrLh0p416NREsGiZq5Rx6fQSzbosA,2102
|
122
124
|
odxtools/compumethods/compuinversevalue.py,sha256=oG5tWSJkvoDmJPmb9EAGGutslbTrwZok5nfG20iZ8vk,220
|
123
|
-
odxtools/compumethods/compumethod.py,sha256=
|
124
|
-
odxtools/compumethods/compuphystointernal.py,sha256=
|
125
|
+
odxtools/compumethods/compumethod.py,sha256=yHPGIp3BHPs-aPHT3b15lTLicvhdXZJXHgA5LvGjgBs,4572
|
126
|
+
odxtools/compumethods/compuphystointernal.py,sha256=AeAqO2Vm5DwWuSnY2C1GGJU5IssaK9wSDDVzgv3mCoQ,2102
|
125
127
|
odxtools/compumethods/compurationalcoeffs.py,sha256=N95JWi06Wkgk3zAK57ONy7mQ9prpLxecsbVD0gyGloE,1246
|
126
128
|
odxtools/compumethods/compuscale.py,sha256=xkwIfkoRF4faICy2jlfB6rx4xYRQb0jL5fq6NMNPX8k,4487
|
127
|
-
odxtools/compumethods/createanycompumethod.py,sha256=
|
129
|
+
odxtools/compumethods/createanycompumethod.py,sha256=w68p6ME_WSnV44X3zah4FJ1IROEU6mAglcKivMw7om8,2830
|
128
130
|
odxtools/compumethods/identicalcompumethod.py,sha256=VVQ0tAkmowXZMBFQd9-n0VnsodDFRHXWdWgpNxdHAkQ,2077
|
129
131
|
odxtools/compumethods/limit.py,sha256=QjrY6dd0Kc7n4CcweMBrkwlX4hsmx0bkQEaQKmTxQ18,4164
|
130
|
-
odxtools/compumethods/linearcompumethod.py,sha256=
|
132
|
+
odxtools/compumethods/linearcompumethod.py,sha256=Q1wELL2Y_nMomy-_7OUHLo-hDkepXLHveWorje5eDEE,3671
|
131
133
|
odxtools/compumethods/linearsegment.py,sha256=_P96JyY5hatNlFvj-yXbWVBrx3rIj83_nu8SPpLezGk,7131
|
134
|
+
odxtools/compumethods/ratfunccompumethod.py,sha256=FgG1_jX3WvjbCFz989SqDC5WkwaZ0xR-CN-M5lkTH5I,4393
|
135
|
+
odxtools/compumethods/ratfuncsegment.py,sha256=_gWFz8FowgQ4X3YIdeYJaeX-QG23U25k4yLh02cn7j0,2834
|
132
136
|
odxtools/compumethods/scalelinearcompumethod.py,sha256=o_Re17G4XlCn-XbStnvlTs9XVN4h71mkkYyIOii-7w4,5895
|
137
|
+
odxtools/compumethods/scaleratfunccompumethod.py,sha256=3imvLJgN3gkc7pILPIwAILHw0Ie5Ih_vysVGA8wYRgk,4457
|
133
138
|
odxtools/compumethods/tabintpcompumethod.py,sha256=Gyf2qV5y53SHIcum5d5HQVGszoZCdu47jxMCQ6yKdQk,8065
|
134
139
|
odxtools/compumethods/texttablecompumethod.py,sha256=vDYafbM0YaipjfN0NSlCFMiIPvp8waMNj3thNcwuYgk,5929
|
135
140
|
odxtools/diaglayers/basevariant.py,sha256=mXS-SF-tcwtdV-rxZZCH6_yqdA-yhtMX1SGo1MS8w7k,4452
|
136
|
-
odxtools/diaglayers/basevariantraw.py,sha256=
|
137
|
-
odxtools/diaglayers/diaglayer.py,sha256=
|
138
|
-
odxtools/diaglayers/diaglayerraw.py,sha256=
|
141
|
+
odxtools/diaglayers/basevariantraw.py,sha256=A9h6p2Ri0sPPTW217rtEdNpAt5g6t0MwP9sgXqZ8pFo,4673
|
142
|
+
odxtools/diaglayers/diaglayer.py,sha256=kiziALQ4wUAz8aLSHSQzMAJ65c39rkww2zf3eAI6h4Q,16062
|
143
|
+
odxtools/diaglayers/diaglayerraw.py,sha256=kE5hoz6Yv5zGRoAD4Z2dD44Mrvn6EUitBm3K8aChV5o,12403
|
139
144
|
odxtools/diaglayers/diaglayertype.py,sha256=FXL-EVBdrAURuHSHo9OthFuEYEybQO66aMB1o2GxVdI,1340
|
140
145
|
odxtools/diaglayers/ecushareddata.py,sha256=QoV50wQIrJ2-faLtU1P7RrjdacbhPY2BfUtVtIyWqCM,3347
|
141
|
-
odxtools/diaglayers/ecushareddataraw.py,sha256=
|
146
|
+
odxtools/diaglayers/ecushareddataraw.py,sha256=cvkBhqTLOAey7Pt1bjQ3Jkkenp-D3Zh5djpB4ZWWUvw,3375
|
142
147
|
odxtools/diaglayers/ecuvariant.py,sha256=OsLWg-dx6OJ_OPuYcgoTJuDXEReaJclDRbU5YKqrtBA,4368
|
143
|
-
odxtools/diaglayers/ecuvariantraw.py,sha256=
|
148
|
+
odxtools/diaglayers/ecuvariantraw.py,sha256=bKlqFnBWkKdkM9EY5rFGOno3ClIVQNhgBoU5DseNnRc,4944
|
144
149
|
odxtools/diaglayers/functionalgroup.py,sha256=o5bUGGDYisr7CjHZZh83fokA80f0s0zpHC_501cg-f0,4093
|
145
|
-
odxtools/diaglayers/functionalgroupraw.py,sha256=
|
150
|
+
odxtools/diaglayers/functionalgroupraw.py,sha256=H0-_XXlFTV8POGnh0S7CVBOKKQuyKHMB9lEyoAHuG_A,3963
|
146
151
|
odxtools/diaglayers/hierarchyelement.py,sha256=GWM7Gc4nLQlWMe8wjSY-fvyKlI7uAvqcmit3B1Zvcy0,37061
|
147
|
-
odxtools/diaglayers/hierarchyelementraw.py,sha256=
|
152
|
+
odxtools/diaglayers/hierarchyelementraw.py,sha256=IdFbnZIw7QGAMh3MW5N9vq5QNGBBAs5foCnbvotfqhQ,2058
|
148
153
|
odxtools/diaglayers/protocol.py,sha256=ypIhfySB6F16Y48XLZIPL36GfrKUznTCmiJ0ROIxYJo,2083
|
149
|
-
odxtools/diaglayers/protocolraw.py,sha256=
|
154
|
+
odxtools/diaglayers/protocolraw.py,sha256=Wf1q2l11mxw61gnveVVEZqgR0yj2RCxoaB3QLzdZQWc,3251
|
150
155
|
odxtools/parameters/codedconstparameter.py,sha256=g34JJxQkyL5R27XiGCgkXyt7UzxFtBhZgv_FbTe2aiQ,3893
|
151
156
|
odxtools/parameters/createanyparameter.py,sha256=m26HHUQrxwDak3eBBciVBLic768Qlo4F2xn1z3r0boM,2566
|
152
157
|
odxtools/parameters/dynamicparameter.py,sha256=mdZx12XbhTSYVVuXEsPYRll3zaHjbHIYIzA6yUy4zck,1569
|
@@ -157,7 +162,7 @@ odxtools/parameters/parameter.py,sha256=vb74YXUKEffF6ISshYtlIACf8TV-AOlIzlSthBIk
|
|
157
162
|
odxtools/parameters/parameterwithdop.py,sha256=k7yJABRmHQTZNTEEPjyq3tBXJD4Aey365HpP7SGsEgk,3283
|
158
163
|
odxtools/parameters/physicalconstantparameter.py,sha256=2iC6EKVJZVHwVVmd4h8KJ6OLc7B5QOUawivQMqWPCRA,3593
|
159
164
|
odxtools/parameters/reservedparameter.py,sha256=8XQocU3_ExRZzXYEkITj535TTEUCNK87wIkrUTizgvI,1989
|
160
|
-
odxtools/parameters/systemparameter.py,sha256=
|
165
|
+
odxtools/parameters/systemparameter.py,sha256=CX5YeAcLs0ffDpksTOMXHSGvuPmRIF2Il_lnuCmbNI8,3593
|
161
166
|
odxtools/parameters/tableentryparameter.py,sha256=SuNAFn1wN_hyO2MVd1lT3oQllZ6nLjAIBJHX0HYRyko,2414
|
162
167
|
odxtools/parameters/tablekeyparameter.py,sha256=6Icnr2EMwRoKWRiHct8nrUb56jJ4giVmWApharQDLCc,9955
|
163
168
|
odxtools/parameters/tablestructparameter.py,sha256=Doym0Tybi_t8w7nqM9n_ZAFwRWm-yJOnsaSqi4u5KiU,7032
|
@@ -173,11 +178,11 @@ odxtools/templates/macros/printBasicStructure.xml.jinja2,sha256=V5oWGZesU_U5pvPO
|
|
173
178
|
odxtools/templates/macros/printCompanyData.xml.jinja2,sha256=jcNmQBOGDw7wcKdam72NIJSOTxthfkPJvrmw24MBiYQ,2981
|
174
179
|
odxtools/templates/macros/printComparam.xml.jinja2,sha256=e3hPCswAymJteQIUNoc7FOwsK_FrbJOvJooWdEx_vuQ,2408
|
175
180
|
odxtools/templates/macros/printComparamRef.xml.jinja2,sha256=rBhrdUnp605fsUN9SaljpyaAojzaLBvTbkOuduKod18,1274
|
176
|
-
odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=
|
181
|
+
odxtools/templates/macros/printCompuMethod.xml.jinja2,sha256=9DilxMWnqOsXu7bNNlDqls-lEqcr_GPzhZum8rzDJP0,4430
|
177
182
|
odxtools/templates/macros/printDOP.xml.jinja2,sha256=t-6U0gZLdV2n6-YW5pkVFnHNVTAOnfqMch-mk_fGyjo,5146
|
178
183
|
odxtools/templates/macros/printDescription.xml.jinja2,sha256=7jcYEIXr7hbbKqSvIUIgXaQSXV4dKAR9UhY352BZct8,452
|
179
184
|
odxtools/templates/macros/printDiagComm.xml.jinja2,sha256=_SByYBYzPG9t7VNnAohFAXsgng9VrQcSacXH923wRzY,2239
|
180
|
-
odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=
|
185
|
+
odxtools/templates/macros/printDiagLayer.xml.jinja2,sha256=psPPZK6yj8e4QURnA1leySY9YDOV8Wj_UiMj2-f2Vw4,6656
|
181
186
|
odxtools/templates/macros/printDiagVariable.xml.jinja2,sha256=sQEU42Onf0WkRJZJyNUgeeGICc3MZaQJPQ0YKY6lRrU,2656
|
182
187
|
odxtools/templates/macros/printDynDefinedSpec.xml.jinja2,sha256=uX3C40VmlbH7sndlJNyTvq8upzaoq8vCk6S93gtpFIY,1742
|
183
188
|
odxtools/templates/macros/printDynamicEndmarkerField.xml.jinja2,sha256=6BmxPKesQvfy46iTiPSFu_iJffC6umZ_YRsTEd-0y5Q,587
|
@@ -192,6 +197,7 @@ odxtools/templates/macros/printEnvDataDesc.xml.jinja2,sha256=rBpPf51LFx5oNx_XjeT
|
|
192
197
|
odxtools/templates/macros/printFunctionalClass.xml.jinja2,sha256=TpOQTj-hlNLtIfcSTVzU-gRrfaWrgsTrIFMqm_1M6Qs,329
|
193
198
|
odxtools/templates/macros/printFunctionalGroup.xml.jinja2,sha256=zIeZbhf8haXhgJJUPiOnMe3lvqvfye4-zmwWDQJxFtQ,1159
|
194
199
|
odxtools/templates/macros/printHierarchyElement.xml.jinja2,sha256=GD6iNIE0Wu0QsJ8uLtwEV8N9t6mIhI00_KpCVzOVQBM,651
|
200
|
+
odxtools/templates/macros/printLibrary.xml.jinja2,sha256=wp8vZzHPLZayWZh6BOQ56kGyHSeyrlNacdlxBw9d0N0,683
|
195
201
|
odxtools/templates/macros/printMux.xml.jinja2,sha256=68IiPY_mIJQqQiqce3jUphqp3-xLfmEBL7CSb3Cz7eI,1869
|
196
202
|
odxtools/templates/macros/printParam.xml.jinja2,sha256=bdp-r1arWod-vV9ODUZn_QThtAAqkm31SqdJeGItJ1M,3183
|
197
203
|
odxtools/templates/macros/printParentRef.xml.jinja2,sha256=RllVKt2RgrMnWfsujGnBUiABwV2y4_ZfINYy7LXenPM,896
|
@@ -200,7 +206,7 @@ odxtools/templates/macros/printProtocol.xml.jinja2,sha256=1DXoRSq6z4dhpZnXWH3x9J
|
|
200
206
|
odxtools/templates/macros/printRequest.xml.jinja2,sha256=yq4xGSlQCioT7FRivyx40Cjs2CYr9EK6NLZf0W4wGW0,717
|
201
207
|
odxtools/templates/macros/printResponse.xml.jinja2,sha256=GsOYmnoh4ewhWg3FUdcovHuJxvuIjsSrXNtbcnnAQcM,683
|
202
208
|
odxtools/templates/macros/printService.xml.jinja2,sha256=zvjOCELEx4yim2FtdNKiExTsDPkAfQAP4Gf_QsondfQ,1546
|
203
|
-
odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=
|
209
|
+
odxtools/templates/macros/printSingleEcuJob.xml.jinja2,sha256=6phi3VxGllusm6KGgrjWiOj7g80ojHyxvesqmHvuNhs,2174
|
204
210
|
odxtools/templates/macros/printSpecialData.xml.jinja2,sha256=0eIFh9cWXfFrQN_f8G_lz3fUqmtysxY6tSN4DbuFY40,1386
|
205
211
|
odxtools/templates/macros/printState.xml.jinja2,sha256=BNnTEyczp43iP9Bn_plMLRsJsasra4sRyvmgODuZQYg,315
|
206
212
|
odxtools/templates/macros/printStateChart.xml.jinja2,sha256=XW1EhF1k8ogbEDt-QMjSOojKl4vjxXkq6BwJWR9GJsI,951
|
@@ -209,9 +215,9 @@ odxtools/templates/macros/printStaticField.xml.jinja2,sha256=fkV07zrL2pTo6b5ZPD1
|
|
209
215
|
odxtools/templates/macros/printStructure.xml.jinja2,sha256=CJUPZv_9lko63C5fNpOn5LlQqLCuS--qyhtx4NyD5Rk,567
|
210
216
|
odxtools/templates/macros/printTable.xml.jinja2,sha256=5DQjjJ-UxQ75ntov0S0LGnm_V7YWtKadBpNbmV1aBb8,1501
|
211
217
|
odxtools/templates/macros/printUnitSpec.xml.jinja2,sha256=opS6_Gr94WlAtREEyX4sLo-D-17Gni9Wvr3y1nfVgSA,2715
|
212
|
-
odxtools-8.1.
|
213
|
-
odxtools-8.1.
|
214
|
-
odxtools-8.1.
|
215
|
-
odxtools-8.1.
|
216
|
-
odxtools-8.1.
|
217
|
-
odxtools-8.1.
|
218
|
+
odxtools-8.2.1.dist-info/LICENSE,sha256=NeGPFQdTa6EKeON3aShVlPAIquJnbbiOfj0suz6rzyQ,1074
|
219
|
+
odxtools-8.2.1.dist-info/METADATA,sha256=XJFo9HuR5ut_oT-x6eOcoV_R2a5PQr9umexDRlXQPZg,44084
|
220
|
+
odxtools-8.2.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
221
|
+
odxtools-8.2.1.dist-info/entry_points.txt,sha256=_sBDzuNoT8LbbCjfc-OJiUt5WPrtOq_x-rr9txhrPjY,53
|
222
|
+
odxtools-8.2.1.dist-info/top_level.txt,sha256=pdS02kE5ZdgsaBRZDpX3NBFlaSx3zotsqX4E4V6tXEI,9
|
223
|
+
odxtools-8.2.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|