py-eb-model 1.1.0__py3-none-any.whl → 1.1.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.
- eb_model/cli/pref_system_importer_cli.py +7 -5
- eb_model/models/abstract.py +57 -1
- eb_model/models/importer_xdm.py +1 -0
- eb_model/models/os_xdm.py +2 -3
- eb_model/models/rte_xdm.py +68 -20
- eb_model/parser/eb_parser.py +16 -3
- eb_model/parser/os_xdm_parser.py +10 -1
- eb_model/parser/pref_xdm_parser.py +12 -1
- eb_model/parser/rte_xdm_parser.py +50 -18
- eb_model/reporter/excel_reporter/rte_xdm.py +1 -1
- eb_model/writer/project_writer.py +1 -1
- {py_eb_model-1.1.0.dist-info → py_eb_model-1.1.1.dist-info}/METADATA +6 -2
- {py_eb_model-1.1.0.dist-info → py_eb_model-1.1.1.dist-info}/RECORD +17 -17
- {py_eb_model-1.1.0.dist-info → py_eb_model-1.1.1.dist-info}/LICENSE +0 -0
- {py_eb_model-1.1.0.dist-info → py_eb_model-1.1.1.dist-info}/WHEEL +0 -0
- {py_eb_model-1.1.0.dist-info → py_eb_model-1.1.1.dist-info}/entry_points.txt +0 -0
- {py_eb_model-1.1.0.dist-info → py_eb_model-1.1.1.dist-info}/top_level.txt +0 -0
@@ -16,7 +16,7 @@ def main():
|
|
16
16
|
ap.add_argument("-v", "--verbose", required= False, help = "print debug information.", action = "store_true")
|
17
17
|
ap.add_argument("--file-list", required=False, help = "generate the file list (Default)", action = "store_true")
|
18
18
|
ap.add_argument("--ab-project", required=False, help = "generate the AUTOSAR builder project", action = "store_true")
|
19
|
-
ap.add_argument("--base-path", required=
|
19
|
+
ap.add_argument("--base-path", required=True, help="base Path for EB tresos")
|
20
20
|
ap.add_argument("--env", required=False, help="specify the environment variable", nargs='+')
|
21
21
|
ap.add_argument("--project", required=False, help="specify the project name")
|
22
22
|
ap.add_argument("INPUTS", nargs='+', help = "The path of perf_imp_xxx.xdm.")
|
@@ -60,6 +60,11 @@ def main():
|
|
60
60
|
try:
|
61
61
|
doc = PreferenceModel.getInstance()
|
62
62
|
|
63
|
+
params = {}
|
64
|
+
params['base_path'] = args.base_path
|
65
|
+
params['wildcard'] = True
|
66
|
+
params['project'] = args.project
|
67
|
+
|
63
68
|
parser = PerfXdmParser()
|
64
69
|
for file in args.INPUTS:
|
65
70
|
if args.base_path is not None:
|
@@ -68,10 +73,7 @@ def main():
|
|
68
73
|
file_name = file
|
69
74
|
parser.parse_preference_xdm(file_name, doc)
|
70
75
|
|
71
|
-
params
|
72
|
-
params['base_path'] = args.base_path
|
73
|
-
params['wildcard'] = True
|
74
|
-
params['project'] = args.project
|
76
|
+
parser.add_ecu_extract(doc, params)
|
75
77
|
|
76
78
|
if args.env is not None:
|
77
79
|
for env in args.env:
|
eb_model/models/abstract.py
CHANGED
@@ -80,4 +80,60 @@ class EcucRefType:
|
|
80
80
|
m = re.match(r'\/[\w\/]+\/(\w+)', self.value)
|
81
81
|
if m:
|
82
82
|
return m.group(1)
|
83
|
-
return self.value
|
83
|
+
return self.value
|
84
|
+
|
85
|
+
class Version:
|
86
|
+
def __init__(self):
|
87
|
+
self.majorVersion = None
|
88
|
+
self.minorVersion = None
|
89
|
+
self.patchVersion = None
|
90
|
+
|
91
|
+
def getMajorVersion(self):
|
92
|
+
return self.majorVersion
|
93
|
+
|
94
|
+
def setMajorVersion(self, value):
|
95
|
+
if value is not None:
|
96
|
+
self.majorVersion = value
|
97
|
+
return self
|
98
|
+
|
99
|
+
def getMinorVersion(self):
|
100
|
+
return self.minorVersion
|
101
|
+
|
102
|
+
def setMinorVersion(self, value):
|
103
|
+
if value is not None:
|
104
|
+
self.minorVersion = value
|
105
|
+
return self
|
106
|
+
|
107
|
+
def getPatchVersion(self):
|
108
|
+
return self.patchVersion
|
109
|
+
|
110
|
+
def setPatchVersion(self, value):
|
111
|
+
if value is not None:
|
112
|
+
self.patchVersion = value
|
113
|
+
return self
|
114
|
+
|
115
|
+
def getVersion(self) -> str:
|
116
|
+
return "%d.%d.%d" % (self.majorVersion, self.minorVersion, self.patchVersion)
|
117
|
+
|
118
|
+
class Module(EcucContainer):
|
119
|
+
def __init__(self, parent, name):
|
120
|
+
super().__init__(parent, name)
|
121
|
+
|
122
|
+
self.arVersion = Version()
|
123
|
+
self.swVersion = Version()
|
124
|
+
|
125
|
+
def getArVersion(self):
|
126
|
+
return self.arVersion
|
127
|
+
|
128
|
+
def setArVersion(self, value):
|
129
|
+
if value is not None:
|
130
|
+
self.arVersion = value
|
131
|
+
return self
|
132
|
+
|
133
|
+
def getSwVersion(self):
|
134
|
+
return self.swVersion
|
135
|
+
|
136
|
+
def setSwVersion(self, value):
|
137
|
+
if value is not None:
|
138
|
+
self.swVersion = value
|
139
|
+
return self
|
eb_model/models/importer_xdm.py
CHANGED
eb_model/models/os_xdm.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
from typing import List
|
2
2
|
|
3
|
-
from ..models.abstract import EcucContainer, EcucObject, EcucRefType
|
4
|
-
|
3
|
+
from ..models.abstract import EcucContainer, EcucObject, EcucRefType, Module
|
5
4
|
|
6
5
|
class OsAlarmAction(EcucContainer):
|
7
6
|
def __init__(self, parent, name) -> None:
|
@@ -933,7 +932,7 @@ class OsScheduleTable(EcucContainer):
|
|
933
932
|
return self
|
934
933
|
|
935
934
|
|
936
|
-
class Os(
|
935
|
+
class Os(Module):
|
937
936
|
def __init__(self, parent) -> None:
|
938
937
|
super().__init__(parent, "Os")
|
939
938
|
|
eb_model/models/rte_xdm.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
from typing import Dict, List
|
2
|
-
from .abstract import EcucContainer, EcucRefType
|
3
|
-
|
2
|
+
from ..models.abstract import EcucContainer, EcucRefType, Module
|
4
3
|
class RteEventToIsrMapping(EcucContainer):
|
5
4
|
def __init__(self, parent, name) -> None:
|
6
5
|
super().__init__(parent, name)
|
@@ -35,7 +34,7 @@ class RteEventToTaskMapping(AbstractEventToTaskMapping):
|
|
35
34
|
self.rteServerNumberOfRequestProcessing = None
|
36
35
|
self.rteServerQueueLength = None
|
37
36
|
self.rteEventPredecessorSyncPointRef = None
|
38
|
-
|
37
|
+
|
39
38
|
self.rteEventSuccessorSyncPointRef = None
|
40
39
|
self.rteMappedToTaskRef = None
|
41
40
|
self.rtePeriod = None
|
@@ -100,13 +99,6 @@ class RteEventToTaskMapping(AbstractEventToTaskMapping):
|
|
100
99
|
self.rteEventPredecessorSyncPointRef = value
|
101
100
|
return self
|
102
101
|
|
103
|
-
def getRteEventRef(self) -> EcucRefType:
|
104
|
-
return self.rteEventRef
|
105
|
-
|
106
|
-
def setRteEventRef(self, value: EcucRefType):
|
107
|
-
self.rteEventRef = value
|
108
|
-
return self
|
109
|
-
|
110
102
|
def getRteEventSuccessorSyncPointRef(self):
|
111
103
|
return self.rteEventSuccessorSyncPointRef
|
112
104
|
|
@@ -183,6 +175,38 @@ class RteEventToTaskMapping(AbstractEventToTaskMapping):
|
|
183
175
|
def setRteVirtuallyMappedToTaskRef(self, value):
|
184
176
|
self.rteVirtuallyMappedToTaskRef = value
|
185
177
|
return self
|
178
|
+
|
179
|
+
class RteEventToTaskMappingV3(RteEventToTaskMapping):
|
180
|
+
def __init__(self, parent, name):
|
181
|
+
super().__init__(parent, name)
|
182
|
+
|
183
|
+
self.rteEventRef = None
|
184
|
+
|
185
|
+
def getRteEventRef(self) -> EcucRefType:
|
186
|
+
return self.rteEventRef
|
187
|
+
|
188
|
+
def setRteEventRef(self, value: EcucRefType):
|
189
|
+
self.rteEventRef = value
|
190
|
+
return self
|
191
|
+
|
192
|
+
class RteEventToTaskMappingV4(RteEventToTaskMapping):
|
193
|
+
def __init__(self, parent, name):
|
194
|
+
super().__init__(parent, name)
|
195
|
+
|
196
|
+
self.rteEventRefs = []
|
197
|
+
|
198
|
+
def getRteEventRefs(self):
|
199
|
+
return self.rteEventRefs
|
200
|
+
|
201
|
+
def addRteEventRef(self, value):
|
202
|
+
if value is not None:
|
203
|
+
self.rteEventRefs.append(value)
|
204
|
+
return self
|
205
|
+
|
206
|
+
def getRteEventRef(self):
|
207
|
+
if len(self.rteEventRefs) != 1:
|
208
|
+
raise ValueError("Unsupported RteEventRef of RteEventToTaskMapping <%s> " % self.name)
|
209
|
+
return self.rteEventRefs[0]
|
186
210
|
|
187
211
|
class RteBswEventToTaskMapping(AbstractEventToTaskMapping):
|
188
212
|
def __init__(self, parent, name) -> None:
|
@@ -196,7 +220,7 @@ class RteBswEventToTaskMapping(AbstractEventToTaskMapping):
|
|
196
220
|
self.rteBswServerQueueLength = None
|
197
221
|
self.rteOsSchedulePoint = None
|
198
222
|
self.rteBswEventPredecessorSyncPointRef = None
|
199
|
-
|
223
|
+
|
200
224
|
self.rteBswMappedToTaskRef = None
|
201
225
|
self.rteBswUsedOsAlarmRef = None
|
202
226
|
self.rteBswUsedOsEventRef = None
|
@@ -263,13 +287,6 @@ class RteBswEventToTaskMapping(AbstractEventToTaskMapping):
|
|
263
287
|
self.rteBswEventPredecessorSyncPointRef = value
|
264
288
|
return self
|
265
289
|
|
266
|
-
def getRteBswEventRef(self) -> EcucRefType:
|
267
|
-
return self.rteBswEventRef
|
268
|
-
|
269
|
-
def setRteBswEventRef(self, value: EcucRefType):
|
270
|
-
self.rteBswEventRef = value
|
271
|
-
return self
|
272
|
-
|
273
290
|
def getRteBswMappedToTaskRef(self) -> EcucRefType:
|
274
291
|
return self.rteBswMappedToTaskRef
|
275
292
|
|
@@ -312,6 +329,37 @@ class RteBswEventToTaskMapping(AbstractEventToTaskMapping):
|
|
312
329
|
self.rteRipsFlushRoutineRef = value
|
313
330
|
return self
|
314
331
|
|
332
|
+
class RteBswEventToTaskMappingV3(RteBswEventToTaskMapping):
|
333
|
+
def __init__(self, parent, name):
|
334
|
+
super().__init__(parent, name)
|
335
|
+
|
336
|
+
self.rteBswEventRef = None # type: EcucRefType
|
337
|
+
|
338
|
+
def getRteBswEventRef(self):
|
339
|
+
return self.rteBswEventRef
|
340
|
+
|
341
|
+
def setRteBswEventRef(self, value):
|
342
|
+
if value is not None:
|
343
|
+
self.rteBswEventRef = value
|
344
|
+
return self
|
345
|
+
|
346
|
+
class RteBswEventToTaskMappingV4(RteBswEventToTaskMapping):
|
347
|
+
def __init__(self, parent, name):
|
348
|
+
super().__init__(parent, name)
|
349
|
+
|
350
|
+
self.rteBswEventRefs = [] # type: List[EcucRefType]
|
351
|
+
|
352
|
+
def getRteBswEventRefs(self) -> EcucRefType:
|
353
|
+
return self.rteBswEventRefs
|
354
|
+
|
355
|
+
def addRteBswEventRef(self, value: EcucRefType):
|
356
|
+
self.rteBswEventRefs.append(value)
|
357
|
+
return self
|
358
|
+
|
359
|
+
def getRteBswEventRef(self):
|
360
|
+
if len(self.rteBswEventRefs) != 1:
|
361
|
+
raise ValueError("Unsupported RteEventRef of RteEventToTaskMapping <%s> " % self.name)
|
362
|
+
return self.rteBswEventRefs[0]
|
315
363
|
|
316
364
|
class AbstractRteInstance(EcucContainer):
|
317
365
|
def __init__(self, parent, name) -> None:
|
@@ -503,8 +551,8 @@ class RteBswModuleInstance(AbstractRteInstance):
|
|
503
551
|
def setRteMappedToOsApplicationRef(self, value):
|
504
552
|
self.rteMappedToOsApplicationRef = value
|
505
553
|
return self
|
506
|
-
|
507
|
-
class Rte(
|
554
|
+
|
555
|
+
class Rte(Module):
|
508
556
|
def __init__(self, parent) -> None:
|
509
557
|
super().__init__(parent, "Rte")
|
510
558
|
|
eb_model/parser/eb_parser.py
CHANGED
@@ -6,7 +6,7 @@ from abc import ABCMeta
|
|
6
6
|
from typing import List
|
7
7
|
|
8
8
|
from ..models.eb_doc import EBModel, PreferenceModel
|
9
|
-
from ..models.abstract import EcucRefType
|
9
|
+
from ..models.abstract import EcucRefType, Module
|
10
10
|
|
11
11
|
class AbstractEbModelParser(metaclass = ABCMeta):
|
12
12
|
|
@@ -17,10 +17,23 @@ class AbstractEbModelParser(metaclass = ABCMeta):
|
|
17
17
|
|
18
18
|
if type(self) == "AbstractEBModelParser":
|
19
19
|
raise ValueError("Abstract EBModelParser cannot be initialized.")
|
20
|
-
|
20
|
+
|
21
21
|
def validate_root(self, element: ET.Element):
|
22
22
|
if (element.tag != "{%s}%s" % (self.nsmap[''], "datamodel")):
|
23
23
|
raise ValueError("This document <%s> is not EB xdm format" % element.tag)
|
24
|
+
|
25
|
+
def read_version(self, parent: ET.Element, module: Module):
|
26
|
+
ctr_tag = self.find_ctr_tag(parent, "CommonPublishedInformation")
|
27
|
+
if ctr_tag is not None:
|
28
|
+
ar_version = module.getArVersion()
|
29
|
+
ar_version.setMajorVersion(self.read_value(ctr_tag, "ArMajorVersion"))
|
30
|
+
ar_version.setMinorVersion(self.read_value(ctr_tag, "ArMinorVersion"))
|
31
|
+
ar_version.setPatchVersion(self.read_value(ctr_tag, "ArPatchVersion"))
|
32
|
+
|
33
|
+
sw_version = module.getSwVersion()
|
34
|
+
sw_version.setMajorVersion(self.read_value(ctr_tag, "SwMajorVersion"))
|
35
|
+
sw_version.setMinorVersion(self.read_value(ctr_tag, "SwMinorVersion"))
|
36
|
+
sw_version.setPatchVersion(self.read_value(ctr_tag, "SwPatchVersion"))
|
24
37
|
|
25
38
|
def read_ref_raw_value(self, value):
|
26
39
|
'''
|
@@ -32,7 +45,7 @@ class AbstractEbModelParser(metaclass = ABCMeta):
|
|
32
45
|
return match.group(1)
|
33
46
|
return value
|
34
47
|
|
35
|
-
def _convert_value(self, tag):
|
48
|
+
def _convert_value(self, tag: ET.Element):
|
36
49
|
if 'type' in tag.attrib:
|
37
50
|
if (tag.attrib['type'] == 'INTEGER'):
|
38
51
|
return int(tag.attrib['value'])
|
eb_model/parser/os_xdm_parser.py
CHANGED
@@ -8,12 +8,21 @@ class OsXdmParser(AbstractEbModelParser):
|
|
8
8
|
def __init__(self, ) -> None:
|
9
9
|
super().__init__()
|
10
10
|
|
11
|
+
self.os = None
|
12
|
+
|
11
13
|
def parse(self, element: ET.Element, doc: EBModel):
|
12
14
|
if self.get_component_name(element) != "Os":
|
13
15
|
raise ValueError("Invalid <%s> xdm file" % "Os")
|
14
16
|
|
15
17
|
os = doc.getOs()
|
16
18
|
|
19
|
+
self.read_version(element, os)
|
20
|
+
|
21
|
+
self.logger.info("Parse Rte ARVersion:<%s> SwVersion:<%s>" %
|
22
|
+
(os.getArVersion().getVersion(), os.getSwVersion().getVersion()))
|
23
|
+
|
24
|
+
self.os = os
|
25
|
+
|
17
26
|
self.read_os_tasks(element, os)
|
18
27
|
self.read_os_isrs(element, os)
|
19
28
|
self.read_os_alarms(element, os)
|
@@ -35,7 +44,7 @@ class OsXdmParser(AbstractEbModelParser):
|
|
35
44
|
os_task.setOsTaskPriority(int(self.read_value(ctr_tag, "OsTaskPriority"))) \
|
36
45
|
.setOsTaskActivation(self.read_value(ctr_tag, "OsTaskActivation")) \
|
37
46
|
.setOsTaskSchedule(self.read_value(ctr_tag, "OsTaskSchedule")) \
|
38
|
-
.setOsTaskType(self.
|
47
|
+
.setOsTaskType(self.read_optional_value(ctr_tag, "OsTaskType")) \
|
39
48
|
.setOsStacksize(int(self.read_optional_value(ctr_tag, "OsStacksize", 0)))
|
40
49
|
|
41
50
|
for resource_ref in self.read_ref_value_list(ctr_tag, "OsTaskResourceRef"):
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import xml.etree.ElementTree as ET
|
2
2
|
import logging
|
3
|
+
import os
|
3
4
|
from ..models.eb_doc import PreferenceModel
|
4
5
|
from ..models.importer_xdm import SystemDescriptionImporter
|
5
6
|
from . import AbstractEbModelParser
|
@@ -22,4 +23,14 @@ class PerfXdmParser(AbstractEbModelParser):
|
|
22
23
|
for ctr_tag in self.find_ctr_tag_list(element, "SystemDescriptionImporters"):
|
23
24
|
self.logger.info("Parse SystemDescriptionImporters: <%s>" % ctr_tag.attrib["name"])
|
24
25
|
self.parse_input_files(ctr_tag, importer)
|
25
|
-
#importer.addInputFile()
|
26
|
+
#importer.addInputFile()
|
27
|
+
|
28
|
+
def add_ecu_extract(self, doc: PreferenceModel, params = {'base_path': None, 'wildcard': None, "project": None}):
|
29
|
+
importer = doc.getSystemDescriptionImporter()
|
30
|
+
|
31
|
+
#if params['base_path'] is None:
|
32
|
+
# raise ValueError("Please specify the base path")
|
33
|
+
|
34
|
+
#ecu_extract_path = os.path.join(params['base_path'], '')
|
35
|
+
|
36
|
+
importer.addInputFile('systemmod/EcuExtract.arxml')
|
@@ -1,63 +1,95 @@
|
|
1
1
|
import xml.etree.ElementTree as ET
|
2
2
|
|
3
|
-
from ..models.rte_xdm import Rte, RteBswEventToTaskMapping, RteBswModuleInstance, RteEventToTaskMapping, RteSwComponentInstance
|
3
|
+
from ..models.rte_xdm import Rte, RteBswEventToTaskMapping, RteBswEventToTaskMappingV3, RteBswEventToTaskMappingV4, RteBswModuleInstance, RteEventToTaskMapping, RteEventToTaskMappingV3, RteEventToTaskMappingV4, RteSwComponentInstance
|
4
4
|
from ..models.eb_doc import EBModel
|
5
|
-
from .eb_parser import AbstractEbModelParser
|
5
|
+
from ..parser.eb_parser import AbstractEbModelParser
|
6
6
|
|
7
7
|
class RteXdmParser(AbstractEbModelParser):
|
8
8
|
def __init__(self, ) -> None:
|
9
9
|
super().__init__()
|
10
|
+
self.rte = None
|
10
11
|
|
11
12
|
def parse(self, element: ET.Element, doc: EBModel):
|
12
13
|
if self.get_component_name(element) != "Rte":
|
13
14
|
raise ValueError("Invalid <%s> xdm file" % "Rte")
|
14
15
|
|
15
|
-
|
16
|
-
self.
|
16
|
+
rte = doc.getRte()
|
17
|
+
self.read_version(element, rte)
|
18
|
+
|
19
|
+
self.logger.info("Parse Rte ARVersion:<%s> SwVersion:<%s>" %
|
20
|
+
(rte.getArVersion().getVersion(), rte.getSwVersion().getVersion()))
|
21
|
+
|
22
|
+
self.rte = rte
|
23
|
+
|
24
|
+
self.read_rte_bsw_module_instances(element, rte)
|
25
|
+
self.read_rte_sw_component_instances(element, rte)
|
26
|
+
|
27
|
+
|
17
28
|
|
18
29
|
def read_rte_bsw_module_instance_event_to_task_mappings(self, element: ET.Element, instance: RteBswModuleInstance):
|
19
30
|
for ctr_tag in self.find_ctr_tag_list(element, "RteBswEventToTaskMapping"):
|
20
|
-
|
31
|
+
self.logger.debug("Read RteBswEventToTaskMapping <%s>" % ctr_tag.attrib['name'])
|
32
|
+
|
33
|
+
if self.rte.getArVersion().getMajorVersion() >= 4:
|
34
|
+
mapping = RteBswEventToTaskMappingV4(instance, ctr_tag.attrib['name'])
|
35
|
+
else:
|
36
|
+
mapping = RteBswEventToTaskMappingV3(instance, ctr_tag.attrib['name'])
|
37
|
+
|
21
38
|
mapping.setRteBswActivationOffset(self.read_optional_value(ctr_tag, "RteBswActivationOffset")) \
|
22
39
|
.setRteBswEventPeriod(self.read_optional_value(ctr_tag, "RteBswPeriod")) \
|
23
40
|
.setRteBswPositionInTask(self.read_optional_value(ctr_tag, "RteBswPositionInTask")) \
|
24
|
-
.setRteBswServerQueueLength(self.read_optional_value(ctr_tag, "RteBswServerQueueLength"))
|
25
|
-
|
26
|
-
|
41
|
+
.setRteBswServerQueueLength(self.read_optional_value(ctr_tag, "RteBswServerQueueLength"))
|
42
|
+
|
43
|
+
if isinstance(mapping, RteBswEventToTaskMappingV4):
|
44
|
+
for resource_ref in self.read_ref_value_list(ctr_tag, "RteBswEventRef"):
|
45
|
+
mapping.addRteBswEventRef(resource_ref)
|
46
|
+
elif isinstance(mapping, RteBswEventToTaskMappingV3):
|
47
|
+
mapping.setRteBswEventRef(self.read_ref_value(ctr_tag, "RteBswEventRef"))
|
48
|
+
|
49
|
+
mapping.setRteBswMappedToTaskRef(self.read_optional_ref_value(ctr_tag, "RteBswMappedToTaskRef"))
|
27
50
|
instance.addRteBswEventToTaskMapping(mapping)
|
28
51
|
|
29
52
|
def read_rte_bsw_module_instances(self, element: ET.Element, rte: Rte):
|
30
53
|
for ctr_tag in self.find_ctr_tag_list(element, 'RteBswModuleInstance'):
|
54
|
+
self.logger.debug("Read RteBswModuleInstance <%s>" % ctr_tag.attrib['name'])
|
55
|
+
|
31
56
|
instance = RteBswModuleInstance(rte, ctr_tag.attrib['name'])
|
32
57
|
instance.setRteBswImplementationRef(self.read_ref_value(ctr_tag, "RteBswImplementationRef")) \
|
33
58
|
.setRteMappedToOsApplicationRef(self.read_optional_ref_value(ctr_tag, "RteMappedToOsApplicationRef"))
|
34
59
|
|
35
60
|
self.read_rte_bsw_module_instance_event_to_task_mappings(ctr_tag, instance)
|
36
|
-
|
37
|
-
self.logger.debug("Add the RteBswModuleInstance <%s>" % instance.getName())
|
38
|
-
|
39
61
|
rte.addRteBswModuleInstance(instance)
|
40
62
|
|
41
63
|
def read_rte_sw_component_instance_event_to_task_mappings(self, element: ET.Element, instance: RteSwComponentInstance):
|
42
64
|
for ctr_tag in self.find_ctr_tag_list(element, "RteEventToTaskMapping"):
|
43
|
-
|
65
|
+
|
66
|
+
if self.rte.getArVersion().getMajorVersion() >= 4:
|
67
|
+
mapping = RteEventToTaskMappingV4(instance, ctr_tag.attrib['name'])
|
68
|
+
else:
|
69
|
+
mapping = RteEventToTaskMappingV3(instance, ctr_tag.attrib['name'])
|
70
|
+
|
44
71
|
mapping.setRteActivationOffset(self.read_optional_value(ctr_tag, "RteActivationOffset")) \
|
45
72
|
.setRtePeriod(self.read_optional_value(ctr_tag, "RtePeriod")) \
|
46
73
|
.setRtePositionInTask(self.read_optional_value(ctr_tag, "RtePositionInTask")) \
|
47
|
-
.setRteServerQueueLength(self.read_optional_value(ctr_tag, "RteServerQueueLength"))
|
48
|
-
|
49
|
-
|
74
|
+
.setRteServerQueueLength(self.read_optional_value(ctr_tag, "RteServerQueueLength"))
|
75
|
+
|
76
|
+
if isinstance(mapping, RteEventToTaskMappingV4):
|
77
|
+
for resource_ref in self.read_ref_value_list(ctr_tag, "RteEventRef"):
|
78
|
+
mapping.addRteEventRef(resource_ref)
|
79
|
+
elif isinstance(mapping, RteEventToTaskMappingV3):
|
80
|
+
mapping.setRteEventRef(self.read_ref_value(ctr_tag, "RteEventRef"))
|
81
|
+
|
82
|
+
mapping.setRteMappedToTaskRef(self.read_optional_ref_value(ctr_tag, "RteMappedToTaskRef"))
|
50
83
|
|
51
84
|
instance.addRteEventToTaskMapping(mapping)
|
52
85
|
|
53
86
|
def read_rte_sw_component_instances(self, element: ET.Element, rte: Rte):
|
54
87
|
for ctr_tag in self.find_ctr_tag_list(element, 'RteSwComponentInstance'):
|
88
|
+
self.logger.debug("Read RteSwComponentInstance <%s>" % ctr_tag.attrib['name'])
|
89
|
+
|
55
90
|
instance = RteSwComponentInstance(rte, ctr_tag.attrib['name'])
|
56
91
|
instance.setMappedToOsApplicationRef(self.read_optional_ref_value(ctr_tag, "MappedToOsApplicationRef")) \
|
57
92
|
.setRteSoftwareComponentInstanceRef(self.read_optional_ref_value(ctr_tag, "RteSoftwareComponentInstanceRef"))
|
58
93
|
|
59
94
|
self.read_rte_sw_component_instance_event_to_task_mappings(ctr_tag, instance)
|
60
|
-
|
61
|
-
self.logger.debug("Add the RteSwComponentInstance <%s>" % instance.getName())
|
62
|
-
|
63
95
|
rte.addRteSwComponentInstance(instance)
|
@@ -62,7 +62,7 @@ class RteRunnableEntityXlsWriter(ExcelReporter):
|
|
62
62
|
if isinstance(mapping, RteBswEventToTaskMapping):
|
63
63
|
self.logger.debug("Write Mapping %s" % mapping.getName())
|
64
64
|
instance = mapping.getRteBswModuleInstance()
|
65
|
-
self.write_cell(sheet, row, 2, mapping.
|
65
|
+
self.write_cell(sheet, row, 2, mapping.getRteBswEventRefs().getShortName())
|
66
66
|
self.write_cell(sheet, row, 5, instance.getRteBswImplementationRef().getValue())
|
67
67
|
self.write_cell(sheet, row, 6, mapping.getRteBswPositionInTask())
|
68
68
|
self.write_cell(sheet, row, 7, mapping.getRteBswActivationOffset())
|
@@ -2,6 +2,7 @@ from typing import List
|
|
2
2
|
from xml.dom import minidom
|
3
3
|
import xml.etree.ElementTree as ET
|
4
4
|
import logging
|
5
|
+
import os
|
5
6
|
|
6
7
|
from ..models.eclipse_project import Link
|
7
8
|
from ..models.importer_xdm import SystemDescriptionImporter
|
@@ -62,7 +63,6 @@ class ABProjectWriter(EclipseProjectWriter):
|
|
62
63
|
|
63
64
|
with open(filename, "w", encoding="utf-8") as f_out:
|
64
65
|
f_out.write(xml.decode())
|
65
|
-
|
66
66
|
|
67
67
|
def writer_import_files(self, filename: str, importer: SystemDescriptionImporter, params = {'base_path': None, 'wildcard': None, "project": None}):
|
68
68
|
self.logger.info("Generate AB project <%s>" % filename)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: py-eb-model
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.1
|
4
4
|
Summary: The parser for EB XDM file
|
5
5
|
Home-page: UNKNOWN
|
6
6
|
Author: melodypapa
|
@@ -178,7 +178,11 @@ PrefSystemImporter --base-path c:/EB/ACG-8_8_8_WIN32X86/workspace/simple_demo_rt
|
|
178
178
|
2. Add the support to read OsTaskAutostart element.
|
179
179
|
3. Add the support to read OsTaskType element.
|
180
180
|
|
181
|
-
**Version 1.1.
|
181
|
+
**Version 1.1.1**
|
182
|
+
|
183
|
+
1. PrefSystemImporter
|
184
|
+
* Add the support to append SystemMod/EcuExtract.arxml into list automatically.
|
185
|
+
|
182
186
|
|
183
187
|
|
184
188
|
|
@@ -1,34 +1,34 @@
|
|
1
1
|
eb_model/__init__.py,sha256=oMw5xoAS-lHLxufQSlBIXhGZZMcPmwGFA3PYpTwaQTU,92
|
2
2
|
eb_model/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
eb_model/cli/os_xdm_2_xls_cli.py,sha256=lTIYNVDDMIKu6sosjV8I3pLQxD-I11cKjUDXTyKDrLE,1643
|
4
|
-
eb_model/cli/pref_system_importer_cli.py,sha256=
|
4
|
+
eb_model/cli/pref_system_importer_cli.py,sha256=Cra-rVpgxruLLyWHRdYAgbwfcHVPV2L8Jk6ck0v4lJU,3361
|
5
5
|
eb_model/cli/rte_xdm_2_xls_cli.py,sha256=83uzE2Vk0h267gWxF9mnWN3Bh69RJpYyKULFXpxTByY,2127
|
6
6
|
eb_model/models/__init__.py,sha256=7_WxCwRdVavLbPzepHWNar3O-rOxhLwmVYWd2pqm2kI,124
|
7
|
-
eb_model/models/abstract.py,sha256=
|
7
|
+
eb_model/models/abstract.py,sha256=uavSXSfKeM2JvOLmpBh43WlYLQ5fCk_F99tf9YVHDkU,3833
|
8
8
|
eb_model/models/eb_doc.py,sha256=hPsGdNHlm3vl-ys3B3NGrlJRrWAWPhRvFJrN3fLQTW8,2569
|
9
9
|
eb_model/models/eclipse_project.py,sha256=W6ovTd3SMnlmWm_efVBZqTUGQebF0hJocsTqMlQ7_XQ,169
|
10
|
-
eb_model/models/importer_xdm.py,sha256=
|
11
|
-
eb_model/models/os_xdm.py,sha256=
|
12
|
-
eb_model/models/rte_xdm.py,sha256=
|
10
|
+
eb_model/models/importer_xdm.py,sha256=B2Vqw5nkmzFgaGSpZlmTVFWZ88rTMqD8Iryytg4kUnk,4249
|
11
|
+
eb_model/models/os_xdm.py,sha256=2Y6PJ_IMrXjC6oSK_k3vtZpH8P31GlJhfNv18zbPFQg,32438
|
12
|
+
eb_model/models/rte_xdm.py,sha256=otYbFuIKsFl0Jlqm18fRqroTi1fUEGw2HPhGZb7sAQ0,21060
|
13
13
|
eb_model/parser/__init__.py,sha256=7VOmPr4dng_TrOyDZFu2_s3r0BJZQGiOUxALMY8EnqI,170
|
14
|
-
eb_model/parser/eb_parser.py,sha256=
|
14
|
+
eb_model/parser/eb_parser.py,sha256=_5sUl2pMt1SchHvrLOhU2axqa3FmKTWElSB79taz0O4,8188
|
15
15
|
eb_model/parser/eb_parser_factory.py,sha256=zqsqq52uImU4-WcS5dvHfhM95hiEPAGRtNzVik8i8wc,971
|
16
|
-
eb_model/parser/os_xdm_parser.py,sha256=
|
17
|
-
eb_model/parser/pref_xdm_parser.py,sha256=
|
18
|
-
eb_model/parser/rte_xdm_parser.py,sha256=
|
16
|
+
eb_model/parser/os_xdm_parser.py,sha256=UBN-NZKes_3IX1crTLTDAYOa_wbklRfD9rp5-24WVW4,9909
|
17
|
+
eb_model/parser/pref_xdm_parser.py,sha256=EjfR4vrnjRVLw_7wyPmMYlBj6lPXZbBZMEdWlYPj3uI,1539
|
18
|
+
eb_model/parser/rte_xdm_parser.py,sha256=plUue0c4ejreE9w71_mT0JNzGSClf30cXhfC2NalrII,5471
|
19
19
|
eb_model/reporter/__init__.py,sha256=H8D_23UwJi1Ph6yjBfZhxWVbu9ci5_O4471gqXGiZCM,36
|
20
20
|
eb_model/reporter/markdown.py,sha256=NhcJOFQ_BVbkgGe66uAT7KUPIchWU4kfVMtMLQtbK-w,1647
|
21
21
|
eb_model/reporter/excel_reporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
22
|
eb_model/reporter/excel_reporter/abstract.py,sha256=PfIoiKNKy1eRJBABln7rADkSdwWzS03Vs03jBYM-_5Y,1622
|
23
23
|
eb_model/reporter/excel_reporter/os_xdm.py,sha256=n1e-tU04s0oh3v31OUKgkIju6BUAtCwb7iGtp2j4Hsc,5578
|
24
|
-
eb_model/reporter/excel_reporter/rte_xdm.py,sha256=
|
24
|
+
eb_model/reporter/excel_reporter/rte_xdm.py,sha256=OHuVPUV7xCdDzxELyXi766YJ6GejTHrzPrlAUBqexIw,3937
|
25
25
|
eb_model/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
26
|
eb_model/tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
27
|
eb_model/tests/models/test_eb_model.py,sha256=3fpIHhzQlf9KZjm4fZxcSTT4Zio6YhTrcn9UBvlhOfo,1632
|
28
28
|
eb_model/tests/models/test_ecuc_container.py,sha256=lZmtXwPMz9T52WFduTgFy16fO2agjSW-Rl2cVypM86s,722
|
29
29
|
eb_model/tests/models/test_importer_xdm.py,sha256=F80kO77jeyfCkLPRgRLjEj3UPcrACimR5LhBhFgX_m4,3372
|
30
30
|
eb_model/writer/__init__.py,sha256=CXvQAsNV1OvYClkHdKCG7Q300OVBzcl2TmoD68MyQOs,95
|
31
|
-
eb_model/writer/project_writer.py,sha256=
|
31
|
+
eb_model/writer/project_writer.py,sha256=9BQU1CJAktVxFvQk89Pj4IbizTJXnlQidt4eX_CIFXU,2800
|
32
32
|
eb_model/writer/text_writer.py,sha256=7d4_PUTJk5Y6S_EQflAH3ACDnUw9VwJzP90GFDh0n0I,991
|
33
33
|
py_eb_model/__init__.py,sha256=u3VUin2V_1eExLd9NIpw_LGHIAwaG2vEoyhssZurrvM,69
|
34
34
|
py_eb_model/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -45,9 +45,9 @@ py_eb_model/reporter/markdown.py,sha256=NhcJOFQ_BVbkgGe66uAT7KUPIchWU4kfVMtMLQtb
|
|
45
45
|
py_eb_model/reporter/excel_reporter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
46
|
py_eb_model/reporter/excel_reporter/abstract.py,sha256=BOuLhWwwTwqBzErtmwPrelB1iByMfZP9haFmg9ayFQw,1488
|
47
47
|
py_eb_model/reporter/excel_reporter/os_xdm.py,sha256=WGMxK0PYxi9J5fUZ-EeiiM8NBpIg2WyxRsrN-gK37YE,1589
|
48
|
-
py_eb_model-1.1.
|
49
|
-
py_eb_model-1.1.
|
50
|
-
py_eb_model-1.1.
|
51
|
-
py_eb_model-1.1.
|
52
|
-
py_eb_model-1.1.
|
53
|
-
py_eb_model-1.1.
|
48
|
+
py_eb_model-1.1.1.dist-info/LICENSE,sha256=I52rGS7W1IwAmYCUfqTpDaSHoFAdt7grcNiBhk-Z3eI,1088
|
49
|
+
py_eb_model-1.1.1.dist-info/METADATA,sha256=o3TxYweK34vDd6CJN2ynv3xpTD0PsWNGyNKYco5g9iQ,5869
|
50
|
+
py_eb_model-1.1.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
51
|
+
py_eb_model-1.1.1.dist-info/entry_points.txt,sha256=yDLH9wnJ5Fp7ImgyFRSnr3mU6nvaenuKZnbe2rgs8Mk,183
|
52
|
+
py_eb_model-1.1.1.dist-info/top_level.txt,sha256=DGBNh6YW_x4RF_UoLKW3cKqb2SLnmfuEIZlkTewR66A,9
|
53
|
+
py_eb_model-1.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|