py-eb-model 1.1.6__py3-none-any.whl → 1.1.8__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 +22 -13
- eb_model/cli/rte_xdm_2_xls_cli.py +28 -27
- eb_model/models/abstract.py +20 -8
- eb_model/models/importer_xdm.py +3 -1
- eb_model/models/nvm_xdm.py +321 -12
- eb_model/models/os_xdm.py +320 -55
- eb_model/models/rte_xdm.py +16 -11
- eb_model/parser/eb_parser.py +28 -20
- eb_model/parser/nvm_xdm_parser.py +89 -12
- eb_model/parser/os_xdm_parser.py +56 -12
- eb_model/parser/rte_xdm_parser.py +11 -11
- eb_model/reporter/excel_reporter/abstract.py +20 -6
- eb_model/reporter/excel_reporter/nvm_xdm.py +97 -7
- eb_model/reporter/excel_reporter/os_xdm.py +104 -20
- eb_model/reporter/excel_reporter/rte_xdm.py +15 -4
- eb_model/tests/models/test_abstract.py +201 -0
- eb_model/tests/models/test_eb_doc.py +66 -0
- eb_model/tests/models/test_eclipse_project.py +21 -0
- eb_model/tests/models/test_importer_xdm.py +45 -40
- eb_model/tests/parser/__init__.py +0 -0
- eb_model/tests/parser/test_nvm_xdm_parser.py +259 -0
- eb_model/tests/parser/test_os_xdm_parser.py +396 -0
- eb_model/writer/text_writer.py +4 -2
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/METADATA +12 -1
- py_eb_model-1.1.8.dist-info/RECORD +48 -0
- py_eb_model-1.1.6.dist-info/RECORD +0 -42
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/LICENSE +0 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/WHEEL +0 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/entry_points.txt +0 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.8.dist-info}/top_level.txt +0 -0
@@ -9,23 +9,31 @@ from ..writer import TextPreferenceModelWriter, ABProjectWriter
|
|
9
9
|
from ..parser import PerfXdmParser
|
10
10
|
from ..models import PreferenceModel
|
11
11
|
|
12
|
+
|
12
13
|
def main():
|
13
14
|
version = pkg_resources.require("py_eb_model")[0].version
|
14
15
|
|
15
16
|
ap = argparse.ArgumentParser()
|
16
|
-
ap.
|
17
|
-
ap.add_argument("
|
18
|
-
|
19
|
-
ap.add_argument("--
|
20
|
-
|
21
|
-
ap.add_argument("--project", required=False,
|
22
|
-
|
23
|
-
ap.add_argument("
|
17
|
+
ap.description = "PrefSystemImporter ver: %s" % version
|
18
|
+
ap.add_argument("-v", "--verbose", required=False,
|
19
|
+
help="print debug information.", action="store_true")
|
20
|
+
ap.add_argument("--file-list", required=False,
|
21
|
+
help="generate the file list (Default)", action="store_true")
|
22
|
+
ap.add_argument("--ab-project", required=False,
|
23
|
+
help="generate the AUTOSAR builder project", action="store_true")
|
24
|
+
ap.add_argument("--base-path", required=True,
|
25
|
+
help="base Path for EB tresos")
|
26
|
+
ap.add_argument("--env", required=False,
|
27
|
+
help="specify the environment variable", nargs='+')
|
28
|
+
ap.add_argument("--project", required=False,
|
29
|
+
help="specify the project name")
|
30
|
+
ap.add_argument("INPUTS", nargs='+', help="The path of perf_imp_xxx.xdm.")
|
31
|
+
ap.add_argument("OUTPUT", help="The path of output file.")
|
24
32
|
|
25
33
|
args = ap.parse_args()
|
26
34
|
|
27
35
|
logger = logging.getLogger()
|
28
|
-
|
36
|
+
|
29
37
|
formatter = logging.Formatter('[%(levelname)s] : %(message)s')
|
30
38
|
|
31
39
|
stdout_handler = logging.StreamHandler(sys.stderr)
|
@@ -48,7 +56,7 @@ def main():
|
|
48
56
|
stdout_handler.setLevel(logging.DEBUG)
|
49
57
|
else:
|
50
58
|
stdout_handler.setLevel(logging.INFO)
|
51
|
-
|
59
|
+
|
52
60
|
if args.verbose:
|
53
61
|
logger.addHandler(file_handler)
|
54
62
|
logger.addHandler(stdout_handler)
|
@@ -68,7 +76,8 @@ def main():
|
|
68
76
|
parser = PerfXdmParser()
|
69
77
|
for file in args.INPUTS:
|
70
78
|
if args.base_path is not None:
|
71
|
-
file_name = os.path.realpath(
|
79
|
+
file_name = os.path.realpath(
|
80
|
+
os.path.join(args.base_path, file))
|
72
81
|
else:
|
73
82
|
file_name = file
|
74
83
|
parser.parse_preference_xdm(file_name, doc)
|
@@ -80,7 +89,7 @@ def main():
|
|
80
89
|
m = re.match(r'(\w+)=([:\/\\\.\w]+)', env)
|
81
90
|
if m:
|
82
91
|
params["env_var:%s" % m.group(1)] = m.group(2)
|
83
|
-
#params['tresos_output_base_dir'] = args.TRESOS_OUTPUT_BASE_DIR
|
92
|
+
# params['tresos_output_base_dir'] = args.TRESOS_OUTPUT_BASE_DIR
|
84
93
|
|
85
94
|
if format == "file_list":
|
86
95
|
writer = TextPreferenceModelWriter()
|
@@ -88,7 +97,7 @@ def main():
|
|
88
97
|
elif format == "ab_project":
|
89
98
|
writer = ABProjectWriter()
|
90
99
|
writer.writer_import_files(args.OUTPUT, doc.getSystemDescriptionImporter(), params)
|
91
|
-
|
100
|
+
|
92
101
|
except Exception as e:
|
93
102
|
logger.error(e)
|
94
103
|
raise e
|
@@ -10,45 +10,46 @@ from ..reporter.excel_reporter.rte_xdm import RteRunnableEntityXlsWriter, RteXdm
|
|
10
10
|
from ..parser.rte_xdm_parser import RteXdmParser
|
11
11
|
from ..models import EBModel
|
12
12
|
|
13
|
-
def main():
|
14
|
-
version = pkg_resources.require("py_eb_model")[0].version
|
15
|
-
|
16
|
-
ap = argparse.ArgumentParser()
|
17
|
-
ap.add_argument("-v", "--verbose", required= False, help= "Print debug information", action= "store_true")
|
18
|
-
ap.add_argument("-r", "--runnable", required= False, help= "Export the runnable entities", action= "store_true")
|
19
|
-
ap.add_argument("INPUT", help = "The path of xdm file.", nargs='+')
|
20
|
-
ap.add_argument("OUTPUT", help = "The path of excel file.")
|
21
|
-
|
22
|
-
args = ap.parse_args()
|
23
13
|
|
14
|
+
def process_logger(args):
|
24
15
|
logger = logging.getLogger()
|
16
|
+
formatter = logging.Formatter('[%(levelname)s] : %(message)s')
|
17
|
+
logger.setLevel(logging.DEBUG)
|
25
18
|
|
26
|
-
|
19
|
+
if args.verbose:
|
20
|
+
log_level = logging.DEBUG
|
21
|
+
else:
|
22
|
+
log_level = logging.INFO
|
27
23
|
|
28
24
|
stdout_handler = logging.StreamHandler(sys.stderr)
|
29
25
|
stdout_handler.setFormatter(formatter)
|
26
|
+
stdout_handler.setLevel(log_level)
|
27
|
+
logger.addHandler(stdout_handler)
|
30
28
|
|
31
|
-
|
32
|
-
|
29
|
+
if args.log:
|
30
|
+
if os.path.exists(args.log):
|
31
|
+
os.remove(args.log)
|
33
32
|
|
34
|
-
|
35
|
-
|
33
|
+
file_handler = logging.FileHandler(args.log)
|
34
|
+
file_handler.setFormatter(formatter)
|
35
|
+
file_handler.setLevel(log_level)
|
36
|
+
logger.addHandler(file_handler)
|
37
|
+
return logger
|
36
38
|
|
37
|
-
file_handler = logging.FileHandler(log_file)
|
38
|
-
file_handler.setFormatter(formatter)
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if args.verbose:
|
44
|
-
stdout_handler.setLevel(logging.DEBUG)
|
45
|
-
|
46
|
-
else:
|
47
|
-
stdout_handler.setLevel(logging.INFO)
|
40
|
+
def main():
|
41
|
+
# version = pkg_resources.require("py_eb_model")[0].version
|
48
42
|
|
49
|
-
|
50
|
-
|
43
|
+
ap = argparse.ArgumentParser()
|
44
|
+
ap.add_argument("-v", "--verbose", required=False, help="Print debug information", action="store_true")
|
45
|
+
ap.add_argument("-r", "--runnable", required=False, help="Export the runnable entities", action="store_true")
|
46
|
+
ap.add_argument("--log", required=False, help="The Log file name.")
|
47
|
+
ap.add_argument("INPUT", help="The path of xdm file.", nargs='+')
|
48
|
+
ap.add_argument("OUTPUT", help="The path of excel file.")
|
51
49
|
|
50
|
+
args = ap.parse_args()
|
51
|
+
logger = process_logger(args)
|
52
|
+
|
52
53
|
try:
|
53
54
|
doc = EBModel.getInstance()
|
54
55
|
|
eb_model/models/abstract.py
CHANGED
@@ -41,6 +41,7 @@ class EcucParamConfContainerDef(EcucObject):
|
|
41
41
|
def __init__(self, parent, name) -> None:
|
42
42
|
super().__init__(parent, name)
|
43
43
|
|
44
|
+
self.importerInfo: str = None
|
44
45
|
self.elements = {} # type: Dict[str, EcucObject]
|
45
46
|
|
46
47
|
def getTotalElement(self) -> int:
|
@@ -66,6 +67,17 @@ class EcucParamConfContainerDef(EcucObject):
|
|
66
67
|
if (name not in self.elements):
|
67
68
|
return None
|
68
69
|
return self.elements[name]
|
70
|
+
|
71
|
+
def getImporterInfo(self) -> str:
|
72
|
+
return self.importerInfo
|
73
|
+
|
74
|
+
def setImporterInfo(self, value: str) -> None:
|
75
|
+
self.importerInfo = value
|
76
|
+
|
77
|
+
def isCalculatedSvcAs(self) -> bool:
|
78
|
+
if self.importerInfo is not None and self.importerInfo.startswith("@CALC(SvcAs"):
|
79
|
+
return True
|
80
|
+
return False
|
69
81
|
|
70
82
|
|
71
83
|
class EcucRefType:
|
@@ -135,15 +147,15 @@ class Module(EcucParamConfContainerDef):
|
|
135
147
|
def getArVersion(self):
|
136
148
|
return self.arVersion
|
137
149
|
|
138
|
-
def setArVersion(self, value):
|
139
|
-
|
140
|
-
|
141
|
-
|
150
|
+
# def setArVersion(self, value):
|
151
|
+
# if value is not None:
|
152
|
+
# self.arVersion = value
|
153
|
+
# return self
|
142
154
|
|
143
155
|
def getSwVersion(self):
|
144
156
|
return self.swVersion
|
145
157
|
|
146
|
-
def setSwVersion(self, value):
|
147
|
-
|
148
|
-
|
149
|
-
|
158
|
+
# def setSwVersion(self, value):
|
159
|
+
# if value is not None:
|
160
|
+
# self.swVersion = value
|
161
|
+
# return self
|
eb_model/models/importer_xdm.py
CHANGED
@@ -36,12 +36,14 @@ class SystemDescriptionImporter(EcucObject):
|
|
36
36
|
if m and m.group(1) in params:
|
37
37
|
old_input_file = input_file
|
38
38
|
input_file = params[m.group(1)] + m.group(2)
|
39
|
-
self.logger.info("Replace Environment Variable Path: %s => %s" % (old_input_file, os.path.realpath(input_file)))
|
39
|
+
# self.logger.info("Replace Environment Variable Path: %s => %s" % (old_input_file, os.path.realpath(input_file)))
|
40
|
+
self.logger.info("Replace Environment Variable Path: %s => %s" % (old_input_file, input_file))
|
40
41
|
if params['base_path'] is not None:
|
41
42
|
if params['wildcard']:
|
42
43
|
m = re.match(r'(.+)\\(\*\.\w+)', input_file)
|
43
44
|
if m:
|
44
45
|
for file_name in self.parseWildcard(os.path.realpath(os.path.join(params['base_path'], input_file))):
|
46
|
+
# self.logger.info("Add the file <%s>." % file_name)
|
45
47
|
file_list.append(file_name)
|
46
48
|
else:
|
47
49
|
file_list.append(os.path.realpath(os.path.join(params['base_path'], input_file)))
|
eb_model/models/nvm_xdm.py
CHANGED
@@ -2,18 +2,254 @@ from typing import List
|
|
2
2
|
from ..models.abstract import EcucParamConfContainerDef, Module, EcucRefType
|
3
3
|
|
4
4
|
|
5
|
-
class
|
6
|
-
def __init__(self, parent):
|
7
|
-
super().__init__(parent,
|
5
|
+
class NvMTargetBlockReference(EcucParamConfContainerDef):
|
6
|
+
def __init__(self, parent, name):
|
7
|
+
super().__init__(parent, name)
|
8
8
|
|
9
|
-
self.NvMBlockDescriptors = [] # type: List[NvMBlockDescriptor]
|
10
9
|
|
11
|
-
|
12
|
-
|
10
|
+
class NvMEaRef(NvMTargetBlockReference):
|
11
|
+
def __init__(self, parent, name):
|
12
|
+
super().__init__(parent, name)
|
13
|
+
|
14
|
+
self.NvMNameOfEaBlock: EcucRefType = None
|
13
15
|
|
14
|
-
def
|
16
|
+
def getNvMNameOfEaBlock(self) -> EcucRefType:
|
17
|
+
return self.NvMNameOfEaBlock
|
18
|
+
|
19
|
+
def setNvMNameOfEaBlock(self, value: EcucRefType):
|
15
20
|
if value is not None:
|
16
|
-
self.
|
21
|
+
self.NvMNameOfEaBlock = value
|
22
|
+
return self
|
23
|
+
|
24
|
+
|
25
|
+
class NvMFeeRef(NvMTargetBlockReference):
|
26
|
+
def __init__(self, parent, name):
|
27
|
+
super().__init__(parent, name)
|
28
|
+
|
29
|
+
self.NvMNameOfFeeBlock: EcucRefType = None
|
30
|
+
|
31
|
+
def getNvMNameOfFeeBlock(self) -> EcucRefType:
|
32
|
+
return self.NvMNameOfFeeBlock
|
33
|
+
|
34
|
+
def setNvMNameOfFeeBlock(self, value: EcucRefType):
|
35
|
+
if value is not None:
|
36
|
+
self.NvMNameOfFeeBlock = value
|
37
|
+
return self
|
38
|
+
|
39
|
+
|
40
|
+
class NvMCommon(EcucParamConfContainerDef):
|
41
|
+
def __init__(self, parent, name):
|
42
|
+
super().__init__(parent, name)
|
43
|
+
|
44
|
+
self.NvMApiConfigClass: str = None
|
45
|
+
self.NvMBswMMultiBlockJobStatusInformation: bool = None
|
46
|
+
self.NvMCompiledConfigId: int = None
|
47
|
+
self.NvMCrcNumOfBytes: int = None
|
48
|
+
self.NvMCsmRetryCounter: int = None
|
49
|
+
self.NvMDatasetSelectionBits: int = None
|
50
|
+
self.NvMDevErrorDetect: bool = None
|
51
|
+
self.NvMDynamicConfiguration: bool = None
|
52
|
+
self.NvMJobPrioritization: bool = None
|
53
|
+
self.NvMMainFunctionPeriod: float = None
|
54
|
+
self.NvMMultiBlockCallback: str = None
|
55
|
+
self.NvMPollingMode: bool = None
|
56
|
+
self.NvMRepeatMirrorOperations: int = None
|
57
|
+
self.NvMSetRamBlockStatusApi: bool = None
|
58
|
+
self.NvMSizeImmediateJobQueue: int = None
|
59
|
+
self.NvMSizeStandardJobQueue: int = None
|
60
|
+
self.NvMVersionInfoApi: bool = None
|
61
|
+
self.NvMBufferAlignmentValue: str = None
|
62
|
+
self.NvMEcucPartitionRefs: List[EcucRefType] = []
|
63
|
+
self.NvMMasterEcucPartitionRef: EcucRefType = None
|
64
|
+
|
65
|
+
def getNvMApiConfigClass(self) -> str:
|
66
|
+
return self.NvMApiConfigClass
|
67
|
+
|
68
|
+
def setNvMApiConfigClass(self, value: str):
|
69
|
+
if value is not None:
|
70
|
+
self.NvMApiConfigClass = value
|
71
|
+
return self
|
72
|
+
|
73
|
+
def getNvMBswMMultiBlockJobStatusInformation(self) -> bool:
|
74
|
+
return self.NvMBswMMultiBlockJobStatusInformation
|
75
|
+
|
76
|
+
def setNvMBswMMultiBlockJobStatusInformation(self, value: bool):
|
77
|
+
if value is not None:
|
78
|
+
self.NvMBswMMultiBlockJobStatusInformation = value
|
79
|
+
return self
|
80
|
+
|
81
|
+
def getNvMCompiledConfigId(self) -> int:
|
82
|
+
return self.NvMCompiledConfigId
|
83
|
+
|
84
|
+
def setNvMCompiledConfigId(self, value: int):
|
85
|
+
if value is not None:
|
86
|
+
self.NvMCompiledConfigId = value
|
87
|
+
return self
|
88
|
+
|
89
|
+
def getNvMCrcNumOfBytes(self) -> int:
|
90
|
+
return self.NvMCrcNumOfBytes
|
91
|
+
|
92
|
+
def setNvMCrcNumOfBytes(self, value: int):
|
93
|
+
if value is not None:
|
94
|
+
self.NvMCrcNumOfBytes = value
|
95
|
+
return self
|
96
|
+
|
97
|
+
def getNvMCsmRetryCounter(self) -> int:
|
98
|
+
return self.NvMCsmRetryCounter
|
99
|
+
|
100
|
+
def setNvMCsmRetryCounter(self, value: int):
|
101
|
+
if value is not None:
|
102
|
+
self.NvMCsmRetryCounter = value
|
103
|
+
return self
|
104
|
+
|
105
|
+
def getNvMDatasetSelectionBits(self) -> int:
|
106
|
+
return self.NvMDatasetSelectionBits
|
107
|
+
|
108
|
+
def setNvMDatasetSelectionBits(self, value: int):
|
109
|
+
if value is not None:
|
110
|
+
self.NvMDatasetSelectionBits = value
|
111
|
+
return self
|
112
|
+
|
113
|
+
def getNvMDevErrorDetect(self) -> bool:
|
114
|
+
return self.NvMDevErrorDetect
|
115
|
+
|
116
|
+
def setNvMDevErrorDetect(self, value: bool):
|
117
|
+
if value is not None:
|
118
|
+
self.NvMDevErrorDetect = value
|
119
|
+
return self
|
120
|
+
|
121
|
+
def getNvMDynamicConfiguration(self) -> bool:
|
122
|
+
return self.NvMDynamicConfiguration
|
123
|
+
|
124
|
+
def setNvMDynamicConfiguration(self, value: bool):
|
125
|
+
if value is not None:
|
126
|
+
self.NvMDynamicConfiguration = value
|
127
|
+
return self
|
128
|
+
|
129
|
+
def getNvMJobPrioritization(self) -> bool:
|
130
|
+
return self.NvMJobPrioritization
|
131
|
+
|
132
|
+
def setNvMJobPrioritization(self, value: bool):
|
133
|
+
if value is not None:
|
134
|
+
self.NvMJobPrioritization = value
|
135
|
+
return self
|
136
|
+
|
137
|
+
def getNvMMainFunctionPeriod(self) -> float:
|
138
|
+
return self.NvMMainFunctionPeriod
|
139
|
+
|
140
|
+
def setNvMMainFunctionPeriod(self, value: float):
|
141
|
+
if value is not None:
|
142
|
+
self.NvMMainFunctionPeriod = value
|
143
|
+
return self
|
144
|
+
|
145
|
+
def getNvMMultiBlockCallback(self) -> str:
|
146
|
+
return self.NvMMultiBlockCallback
|
147
|
+
|
148
|
+
def setNvMMultiBlockCallback(self, value: str):
|
149
|
+
if value is not None:
|
150
|
+
self.NvMMultiBlockCallback = value
|
151
|
+
return self
|
152
|
+
|
153
|
+
def getNvMPollingMode(self) -> bool:
|
154
|
+
return self.NvMPollingMode
|
155
|
+
|
156
|
+
def setNvMPollingMode(self, value: bool):
|
157
|
+
if value is not None:
|
158
|
+
self.NvMPollingMode = value
|
159
|
+
return self
|
160
|
+
|
161
|
+
def getNvMRepeatMirrorOperations(self) -> int:
|
162
|
+
return self.NvMRepeatMirrorOperations
|
163
|
+
|
164
|
+
def setNvMRepeatMirrorOperations(self, value: int):
|
165
|
+
if value is not None:
|
166
|
+
self.NvMRepeatMirrorOperations = value
|
167
|
+
return self
|
168
|
+
|
169
|
+
def getNvMSetRamBlockStatusApi(self) -> bool:
|
170
|
+
return self.NvMSetRamBlockStatusApi
|
171
|
+
|
172
|
+
def setNvMSetRamBlockStatusApi(self, value: bool):
|
173
|
+
if value is not None:
|
174
|
+
self.NvMSetRamBlockStatusApi = value
|
175
|
+
return self
|
176
|
+
|
177
|
+
def getNvMSizeImmediateJobQueue(self) -> int:
|
178
|
+
return self.NvMSizeImmediateJobQueue
|
179
|
+
|
180
|
+
def setNvMSizeImmediateJobQueue(self, value: int):
|
181
|
+
if value is not None:
|
182
|
+
self.NvMSizeImmediateJobQueue = value
|
183
|
+
return self
|
184
|
+
|
185
|
+
def getNvMSizeStandardJobQueue(self) -> int:
|
186
|
+
return self.NvMSizeStandardJobQueue
|
187
|
+
|
188
|
+
def setNvMSizeStandardJobQueue(self, value: int):
|
189
|
+
if value is not None:
|
190
|
+
self.NvMSizeStandardJobQueue = value
|
191
|
+
return self
|
192
|
+
|
193
|
+
def getNvMVersionInfoApi(self) -> bool:
|
194
|
+
return self.NvMVersionInfoApi
|
195
|
+
|
196
|
+
def setNvMVersionInfoApi(self, value: bool):
|
197
|
+
if value is not None:
|
198
|
+
self.NvMVersionInfoApi = value
|
199
|
+
return self
|
200
|
+
|
201
|
+
def getNvMBufferAlignmentValue(self) -> str:
|
202
|
+
return self.NvMBufferAlignmentValue
|
203
|
+
|
204
|
+
def setNvMBufferAlignmentValue(self, value: str):
|
205
|
+
if value is not None:
|
206
|
+
self.NvMBufferAlignmentValue = value
|
207
|
+
return self
|
208
|
+
|
209
|
+
def getNvMEcucPartitionRefList(self) -> List[EcucRefType]:
|
210
|
+
return self.NvMEcucPartitionRefs
|
211
|
+
|
212
|
+
def addNvMEcucPartitionRef(self, value: EcucRefType):
|
213
|
+
if value is not None:
|
214
|
+
self.NvMEcucPartitionRefs.append(value)
|
215
|
+
return self
|
216
|
+
|
217
|
+
def getNvMMasterEcucPartitionRef(self) -> EcucRefType:
|
218
|
+
return self.NvMMasterEcucPartitionRef
|
219
|
+
|
220
|
+
def setNvMMasterEcucPartitionRef(self, value: EcucRefType):
|
221
|
+
if value is not None:
|
222
|
+
self.NvMMasterEcucPartitionRef = value
|
223
|
+
return self
|
224
|
+
|
225
|
+
|
226
|
+
class NvMSingleBlockCallback(EcucParamConfContainerDef):
|
227
|
+
def __init__(self, parent, name):
|
228
|
+
super().__init__(parent, name)
|
229
|
+
|
230
|
+
self.NvMSingleBlockCallbackFnc: str = None
|
231
|
+
|
232
|
+
def getNvMSingleBlockCallbackFnc(self) -> str:
|
233
|
+
return self.NvMSingleBlockCallbackFnc
|
234
|
+
|
235
|
+
def setNvMSingleBlockCallbackFnc(self, value: str):
|
236
|
+
if value is not None:
|
237
|
+
self.NvMSingleBlockCallbackFnc = value
|
238
|
+
return self
|
239
|
+
|
240
|
+
|
241
|
+
class NvMInitBlockCallback(EcucParamConfContainerDef):
|
242
|
+
def __init__(self, parent, name):
|
243
|
+
super().__init__(parent, name)
|
244
|
+
|
245
|
+
self.NvMInitBlockCallbackFnc: str = None
|
246
|
+
|
247
|
+
def getNvMInitBlockCallbackFnc(self) -> str:
|
248
|
+
return self.NvMInitBlockCallbackFnc
|
249
|
+
|
250
|
+
def setNvMInitBlockCallbackFnc(self, value: str):
|
251
|
+
if value is not None:
|
252
|
+
self.NvMInitBlockCallbackFnc = value
|
17
253
|
return self
|
18
254
|
|
19
255
|
|
@@ -23,11 +259,11 @@ class NvMBlockDescriptor(EcucParamConfContainerDef):
|
|
23
259
|
|
24
260
|
self.nvMBlockCrcType = None # type: str # optional
|
25
261
|
self.nvMBlockHeaderInclude = None # type: int # optional
|
26
|
-
self.nvMBlockJobPriority = None
|
262
|
+
self.nvMBlockJobPriority: int = None
|
27
263
|
self.nvMBlockManagementType = None # type: str # required
|
28
264
|
self.nvMBlockUseAutoValidation = None # required
|
29
265
|
self.nvMBlockUseCompression = None # required
|
30
|
-
self.nvMBlockUseCrc =
|
266
|
+
self.nvMBlockUseCrc: bool = False
|
31
267
|
self.nvMBlockUseCRCCompMechanism = None # required
|
32
268
|
self.NvMBlockUsePort = None # required
|
33
269
|
self.nvMBlockUseSetRamBlockStatus = None # required
|
@@ -44,7 +280,7 @@ class NvMBlockDescriptor(EcucParamConfContainerDef):
|
|
44
280
|
self.nvMNvramDeviceId = None # required
|
45
281
|
self.nvMRamBlockDataAddress = None # optional
|
46
282
|
self.nvMReadRamBlockFromNvCallback = None # optional
|
47
|
-
self.nvMResistantToChangedSw =
|
283
|
+
self.nvMResistantToChangedSw: bool = False
|
48
284
|
self.nvMRomBlockDataAddress = None # optional
|
49
285
|
self.nvMRomBlockNum = None # required
|
50
286
|
self.nvMSelectBlockForFirstInitAll = None # optional
|
@@ -56,7 +292,15 @@ class NvMBlockDescriptor(EcucParamConfContainerDef):
|
|
56
292
|
self.nvMWriteVerification = None # required
|
57
293
|
self.nvMWriteVerificationDataSize = None # required
|
58
294
|
self.nvMBlockCipheringRef = None # optional
|
59
|
-
self.nvMBlockEcucPartitionRef
|
295
|
+
self.nvMBlockEcucPartitionRef: EcucRefType = None
|
296
|
+
|
297
|
+
self.nvMInitBlockCallback: NvMInitBlockCallback = None
|
298
|
+
self.nvMSingleBlockCallback: NvMSingleBlockCallback = None
|
299
|
+
self.nvMTargetBlockReference: NvMTargetBlockReference = None
|
300
|
+
|
301
|
+
# EB extended
|
302
|
+
self.nvMProvideRteJobFinishedPort: bool = False
|
303
|
+
self.nvMProvideRteServicePort: bool = False
|
60
304
|
|
61
305
|
def getNvMBlockCrcType(self):
|
62
306
|
return self.nvMBlockCrcType
|
@@ -345,3 +589,68 @@ class NvMBlockDescriptor(EcucParamConfContainerDef):
|
|
345
589
|
if value is not None:
|
346
590
|
self.nvMBlockEcucPartitionRef = value
|
347
591
|
return self
|
592
|
+
|
593
|
+
def getNvMInitBlockCallback(self) -> NvMInitBlockCallback:
|
594
|
+
return self.nvMInitBlockCallback
|
595
|
+
|
596
|
+
def setNvMInitBlockCallback(self, value: NvMInitBlockCallback):
|
597
|
+
if value is not None:
|
598
|
+
self.nvMInitBlockCallback = value
|
599
|
+
return self
|
600
|
+
|
601
|
+
def getNvMSingleBlockCallback(self) -> NvMSingleBlockCallback:
|
602
|
+
return self.nvMSingleBlockCallback
|
603
|
+
|
604
|
+
def setNvMSingleBlockCallback(self, value: NvMSingleBlockCallback):
|
605
|
+
if value is not None:
|
606
|
+
self.nvMSingleBlockCallback = value
|
607
|
+
return self
|
608
|
+
|
609
|
+
def getNvMTargetBlockReference(self) -> NvMTargetBlockReference:
|
610
|
+
return self.nvMTargetBlockReference
|
611
|
+
|
612
|
+
def setNvMTargetBlockReference(self, value: NvMTargetBlockReference):
|
613
|
+
if value is not None:
|
614
|
+
self.nvMTargetBlockReference = value
|
615
|
+
return self
|
616
|
+
|
617
|
+
def getNvMProvideRteJobFinishedPort(self) -> bool:
|
618
|
+
return self.nvMProvideRteJobFinishedPort
|
619
|
+
|
620
|
+
def setNvMProvideRteJobFinishedPort(self, value: bool):
|
621
|
+
if value is not None:
|
622
|
+
self.nvMProvideRteJobFinishedPort = value
|
623
|
+
return self
|
624
|
+
|
625
|
+
def getNvMProvideRteServicePort(self) -> bool:
|
626
|
+
return self.nvMProvideRteServicePort
|
627
|
+
|
628
|
+
def setNvMProvideRteServicePort(self, value: bool):
|
629
|
+
if value is not None:
|
630
|
+
self.nvMProvideRteServicePort = value
|
631
|
+
return self
|
632
|
+
|
633
|
+
|
634
|
+
class NvM(Module):
|
635
|
+
def __init__(self, parent):
|
636
|
+
super().__init__(parent, "NvM")
|
637
|
+
|
638
|
+
# type: List[NvMBlockDescriptor]
|
639
|
+
self.NvMBlockDescriptors = []
|
640
|
+
self.NvMCommon: NvMCommon = None
|
641
|
+
|
642
|
+
def getNvMCommon(self) -> NvMCommon:
|
643
|
+
return self.NvMCommon
|
644
|
+
|
645
|
+
def setNvMCommon(self, value: NvMCommon):
|
646
|
+
if value is not None:
|
647
|
+
self.NvMCommon = value
|
648
|
+
return self
|
649
|
+
|
650
|
+
def getNvMBlockDescriptorList(self) -> List[NvMBlockDescriptor]:
|
651
|
+
return self.NvMBlockDescriptors
|
652
|
+
|
653
|
+
def addNvMBlockDescriptor(self, value: NvMBlockDescriptor):
|
654
|
+
if value is not None:
|
655
|
+
self.NvMBlockDescriptors.append(value)
|
656
|
+
return self
|