py-eb-model 1.1.5__py3-none-any.whl → 1.1.7__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.
@@ -0,0 +1,63 @@
1
+ import argparse
2
+ import pkg_resources
3
+ import logging
4
+ import sys
5
+ import os.path
6
+
7
+ from ..parser import NvMXdmParser
8
+ from ..models import EBModel
9
+ from ..reporter import NvMXdmXlsWriter
10
+
11
+
12
+ def main():
13
+ version = pkg_resources.require("py_eb_model")[0].version
14
+
15
+ ap = argparse.ArgumentParser()
16
+ ap.description = "Version: %s" % version
17
+ ap.add_argument("-v", "--verbose", required=False, help="Print debug information.", action="store_true")
18
+ ap.add_argument("--log", required=False, help="Specify the log file name.")
19
+ ap.add_argument("INPUT", help="The path of NvM.xdm.")
20
+ ap.add_argument("OUTPUT", help="The path of excel file.")
21
+
22
+ args = ap.parse_args()
23
+
24
+ logger = logging.getLogger()
25
+
26
+ formatter = logging.Formatter('[%(levelname)s] : %(message)s')
27
+
28
+ stdout_handler = logging.StreamHandler(sys.stderr)
29
+ stdout_handler.setFormatter(formatter)
30
+
31
+ if args.log:
32
+ if os.path.exists(args.log):
33
+ os.remove(args.log)
34
+
35
+ file_handler = logging.FileHandler(args.log)
36
+ file_handler.setFormatter(formatter)
37
+ file_handler.setLevel(logging.DEBUG)
38
+
39
+ logger.setLevel(logging.DEBUG)
40
+
41
+ if args.verbose:
42
+ stdout_handler.setLevel(logging.DEBUG)
43
+ else:
44
+ stdout_handler.setLevel(logging.INFO)
45
+
46
+ if args.log:
47
+ logger.addHandler(file_handler)
48
+ logger.addHandler(stdout_handler)
49
+
50
+ try:
51
+ doc = EBModel.getInstance()
52
+
53
+ parser = NvMXdmParser()
54
+ parser.parse_xdm(args.INPUT, doc)
55
+
56
+ options = {}
57
+
58
+ writer = NvMXdmXlsWriter()
59
+ writer.write(args.OUTPUT, doc, options)
60
+
61
+ except Exception as e:
62
+ logger.error(e)
63
+ 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
- formatter = logging.Formatter('[%(levelname)s] [%(asctime)s]: %(message)s')
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
- base_path = os.path.dirname(args.OUTPUT)
32
- log_file = os.path.join(base_path, 'rte_xdm_2_xls.log')
29
+ if args.log:
30
+ if os.path.exists(args.log):
31
+ os.remove(args.log)
33
32
 
34
- if os.path.exists(log_file):
35
- os.remove(log_file)
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
- logger.setLevel(logging.DEBUG)
41
- file_handler.setLevel(logging.DEBUG)
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
- logger.addHandler(file_handler)
50
- logger.addHandler(stdout_handler)
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
 
@@ -8,7 +8,7 @@ class EcucObject(metaclass=ABCMeta):
8
8
  if type(self) is EcucObject:
9
9
  raise ValueError("Abstract EcucObject cannot be initialized.")
10
10
 
11
- self.name = name
11
+ self.name = name # type: str
12
12
  self.parent = parent # type: EcucObject
13
13
 
14
14
  if isinstance(parent, EcucParamConfContainerDef):
@@ -30,12 +30,18 @@ class EcucObject(metaclass=ABCMeta):
30
30
 
31
31
  def getFullName(self) -> str:
32
32
  return self.parent.getFullName() + "/" + self.name
33
+
34
+
35
+ class EcucEnumerationParamDef(EcucObject):
36
+ def __init__(self, parent, name):
37
+ super().__init__(parent, name)
33
38
 
34
39
 
35
40
  class EcucParamConfContainerDef(EcucObject):
36
41
  def __init__(self, parent, name) -> None:
37
42
  super().__init__(parent, name)
38
43
 
44
+ self.importerInfo: str = None
39
45
  self.elements = {} # type: Dict[str, EcucObject]
40
46
 
41
47
  def getTotalElement(self) -> int:
@@ -61,6 +67,17 @@ class EcucParamConfContainerDef(EcucObject):
61
67
  if (name not in self.elements):
62
68
  return None
63
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
64
81
 
65
82
 
66
83
  class EcucRefType:
@@ -130,15 +147,15 @@ class Module(EcucParamConfContainerDef):
130
147
  def getArVersion(self):
131
148
  return self.arVersion
132
149
 
133
- def setArVersion(self, value):
134
- if value is not None:
135
- self.arVersion = value
136
- return self
150
+ # def setArVersion(self, value):
151
+ # if value is not None:
152
+ # self.arVersion = value
153
+ # return self
137
154
 
138
155
  def getSwVersion(self):
139
156
  return self.swVersion
140
157
 
141
- def setSwVersion(self, value):
142
- if value is not None:
143
- self.swVersion = value
144
- return self
158
+ # def setSwVersion(self, value):
159
+ # if value is not None:
160
+ # self.swVersion = value
161
+ # return self
eb_model/models/eb_doc.py CHANGED
@@ -1,7 +1,8 @@
1
- from .importer_xdm import SystemDescriptionImporter
2
- from .rte_xdm import Rte
3
- from .os_xdm import Os
4
- from .abstract import EcucParamConfContainerDef, EcucObject
1
+ from ..models.nvm_xdm import NvM
2
+ from ..models.importer_xdm import SystemDescriptionImporter
3
+ from ..models.rte_xdm import Rte
4
+ from ..models.os_xdm import Os
5
+ from ..models.abstract import EcucParamConfContainerDef, EcucObject
5
6
 
6
7
 
7
8
  class AbstractModel(EcucParamConfContainerDef):
@@ -44,6 +45,9 @@ class EBModel(AbstractModel):
44
45
  return self.find_object(referred_name, EBModel.getInstance())
45
46
 
46
47
  def getOs(self) -> Os:
48
+ '''
49
+ get the Os Container
50
+ '''
47
51
  container = EcucParamConfContainerDef(self, "Os")
48
52
  Os(container)
49
53
  return self.find("/Os/Os")
@@ -52,6 +56,11 @@ class EBModel(AbstractModel):
52
56
  container = EcucParamConfContainerDef(self, "Rte")
53
57
  Rte(container)
54
58
  return self.find("/Rte/Rte")
59
+
60
+ def getNvM(self) -> NvM:
61
+ container = EcucParamConfContainerDef(self, "NvM")
62
+ NvM(container)
63
+ return self.find("/NvM/NvM")
55
64
 
56
65
 
57
66
  class PreferenceModel(AbstractModel):
@@ -0,0 +1,347 @@
1
+ from typing import List
2
+ from ..models.abstract import EcucParamConfContainerDef, Module, EcucRefType
3
+
4
+
5
+ class NvM(Module):
6
+ def __init__(self, parent):
7
+ super().__init__(parent, "NvM")
8
+
9
+ self.NvMBlockDescriptors = [] # type: List[NvMBlockDescriptor]
10
+
11
+ def getNvMBlockDescriptorList(self):
12
+ return self.NvMBlockDescriptors
13
+
14
+ def addNvMBlockDescriptor(self, value):
15
+ if value is not None:
16
+ self.NvMBlockDescriptors.append(value)
17
+ return self
18
+
19
+
20
+ class NvMBlockDescriptor(EcucParamConfContainerDef):
21
+ def __init__(self, parent, name):
22
+ super().__init__(parent, name)
23
+
24
+ self.nvMBlockCrcType = None # type: str # optional
25
+ self.nvMBlockHeaderInclude = None # type: int # optional
26
+ self.nvMBlockJobPriority = None # type: str # required
27
+ self.nvMBlockManagementType = None # type: str # required
28
+ self.nvMBlockUseAutoValidation = None # required
29
+ self.nvMBlockUseCompression = None # required
30
+ self.nvMBlockUseCrc = None # required
31
+ self.nvMBlockUseCRCCompMechanism = None # required
32
+ self.NvMBlockUsePort = None # required
33
+ self.nvMBlockUseSetRamBlockStatus = None # required
34
+ self.nvMBlockUseSyncMechanism = None # required
35
+ self.nvMBlockWriteProt = None # required
36
+ self.nvMBswMBlockStatusInformation = None # required
37
+ self.nvMCalcRamBlockCrc = None # optional
38
+ self.nvMMaxNumOfReadRetries = None # required
39
+ self.nvMMaxNumOfWriteRetries = None # required
40
+ self.nvMNvBlockBaseNumber = None # required
41
+ self.nvMNvBlockLength = None # type: int # required
42
+ self.nvMNvBlockNum = None # type: int # required
43
+ self.nvMNvramBlockIdentifier = None # required
44
+ self.nvMNvramDeviceId = None # required
45
+ self.nvMRamBlockDataAddress = None # optional
46
+ self.nvMReadRamBlockFromNvCallback = None # optional
47
+ self.nvMResistantToChangedSw = None # required
48
+ self.nvMRomBlockDataAddress = None # optional
49
+ self.nvMRomBlockNum = None # required
50
+ self.nvMSelectBlockForFirstInitAll = None # optional
51
+ self.nvMSelectBlockForReadAll = None # required
52
+ self.nvMSelectBlockForWriteAll = None # required
53
+ self.nvMStaticBlockIDCheck = None # required
54
+ self.nvMWriteBlockOnce = None # required
55
+ self.nvMWriteRamBlockToNvCallback = None # optional
56
+ self.nvMWriteVerification = None # required
57
+ self.nvMWriteVerificationDataSize = None # required
58
+ self.nvMBlockCipheringRef = None # optional
59
+ self.nvMBlockEcucPartitionRef = None # type: EcucRefType # required
60
+
61
+ def getNvMBlockCrcType(self):
62
+ return self.nvMBlockCrcType
63
+
64
+ def setNvMBlockCrcType(self, value):
65
+ if value is not None:
66
+ self.nvMBlockCrcType = value
67
+ return self
68
+
69
+ def getNvMBlockHeaderInclude(self):
70
+ return self.nvMBlockHeaderInclude
71
+
72
+ def setNvMBlockHeaderInclude(self, value):
73
+ if value is not None:
74
+ self.nvMBlockHeaderInclude = value
75
+ return self
76
+
77
+ def getNvMBlockJobPriority(self):
78
+ return self.nvMBlockJobPriority
79
+
80
+ def setNvMBlockJobPriority(self, value):
81
+ if value is not None:
82
+ self.nvMBlockJobPriority = value
83
+ return self
84
+
85
+ def getNvMBlockManagementType(self):
86
+ return self.nvMBlockManagementType
87
+
88
+ def setNvMBlockManagementType(self, value):
89
+ if value is not None:
90
+ self.nvMBlockManagementType = value
91
+ return self
92
+
93
+ def getNvMBlockUseAutoValidation(self):
94
+ return self.nvMBlockUseAutoValidation
95
+
96
+ def setNvMBlockUseAutoValidation(self, value):
97
+ if value is not None:
98
+ self.nvMBlockUseAutoValidation = value
99
+ return self
100
+
101
+ def getNvMBlockUseCompression(self):
102
+ return self.nvMBlockUseCompression
103
+
104
+ def setNvMBlockUseCompression(self, value):
105
+ if value is not None:
106
+ self.nvMBlockUseCompression = value
107
+ return self
108
+
109
+ def getNvMBlockUseCrc(self):
110
+ return self.nvMBlockUseCrc
111
+
112
+ def setNvMBlockUseCrc(self, value):
113
+ if value is not None:
114
+ self.nvMBlockUseCrc = value
115
+ return self
116
+
117
+ def getNvMBlockUseCRCCompMechanism(self):
118
+ return self.nvMBlockUseCRCCompMechanism
119
+
120
+ def setNvMBlockUseCRCCompMechanism(self, value):
121
+ if value is not None:
122
+ self.nvMBlockUseCRCCompMechanism = value
123
+ return self
124
+
125
+ def getNvMBlockUsePort(self):
126
+ return self.NvMBlockUsePort
127
+
128
+ def setNvMBlockUsePort(self, value):
129
+ if value is not None:
130
+ self.NvMBlockUsePort = value
131
+ return self
132
+
133
+ def getNvMBlockUseSetRamBlockStatus(self):
134
+ return self.nvMBlockUseSetRamBlockStatus
135
+
136
+ def setNvMBlockUseSetRamBlockStatus(self, value):
137
+ if value is not None:
138
+ self.nvMBlockUseSetRamBlockStatus = value
139
+ return self
140
+
141
+ def getNvMBlockUseSyncMechanism(self):
142
+ return self.nvMBlockUseSyncMechanism
143
+
144
+ def setNvMBlockUseSyncMechanism(self, value):
145
+ if value is not None:
146
+ self.nvMBlockUseSyncMechanism = value
147
+ return self
148
+
149
+ def getNvMBlockWriteProt(self):
150
+ return self.nvMBlockWriteProt
151
+
152
+ def setNvMBlockWriteProt(self, value):
153
+ if value is not None:
154
+ self.nvMBlockWriteProt = value
155
+ return self
156
+
157
+ def getNvMBswMBlockStatusInformation(self):
158
+ return self.nvMBswMBlockStatusInformation
159
+
160
+ def setNvMBswMBlockStatusInformation(self, value):
161
+ if value is not None:
162
+ self.nvMBswMBlockStatusInformation = value
163
+ return self
164
+
165
+ def getNvMCalcRamBlockCrc(self):
166
+ return self.nvMCalcRamBlockCrc
167
+
168
+ def setNvMCalcRamBlockCrc(self, value):
169
+ if value is not None:
170
+ self.nvMCalcRamBlockCrc = value
171
+ return self
172
+
173
+ def getNvMMaxNumOfReadRetries(self):
174
+ return self.nvMMaxNumOfReadRetries
175
+
176
+ def setNvMMaxNumOfReadRetries(self, value):
177
+ if value is not None:
178
+ self.nvMMaxNumOfReadRetries = value
179
+ return self
180
+
181
+ def getNvMMaxNumOfWriteRetries(self):
182
+ return self.nvMMaxNumOfWriteRetries
183
+
184
+ def setNvMMaxNumOfWriteRetries(self, value):
185
+ if value is not None:
186
+ self.nvMMaxNumOfWriteRetries = value
187
+ return self
188
+
189
+ def getNvMNvBlockBaseNumber(self):
190
+ return self.nvMNvBlockBaseNumber
191
+
192
+ def setNvMNvBlockBaseNumber(self, value):
193
+ if value is not None:
194
+ self.nvMNvBlockBaseNumber = value
195
+ return self
196
+
197
+ def getNvMNvBlockLength(self):
198
+ return self.nvMNvBlockLength
199
+
200
+ def setNvMNvBlockLength(self, value):
201
+ if value is not None:
202
+ self.nvMNvBlockLength = value
203
+ return self
204
+
205
+ def getNvMNvBlockNum(self):
206
+ return self.nvMNvBlockNum
207
+
208
+ def setNvMNvBlockNum(self, value):
209
+ if value is not None:
210
+ self.nvMNvBlockNum = value
211
+ return self
212
+
213
+ def getNvMNvramBlockIdentifier(self):
214
+ return self.nvMNvramBlockIdentifier
215
+
216
+ def setNvMNvramBlockIdentifier(self, value):
217
+ if value is not None:
218
+ self.nvMNvramBlockIdentifier = value
219
+ return self
220
+
221
+ def getNvMNvramDeviceId(self):
222
+ return self.nvMNvramDeviceId
223
+
224
+ def setNvMNvramDeviceId(self, value):
225
+ if value is not None:
226
+ self.nvMNvramDeviceId = value
227
+ return self
228
+
229
+ def getNvMRamBlockDataAddress(self):
230
+ return self.nvMRamBlockDataAddress
231
+
232
+ def setNvMRamBlockDataAddress(self, value):
233
+ if value is not None:
234
+ self.nvMRamBlockDataAddress = value
235
+ return self
236
+
237
+ def getNvMReadRamBlockFromNvCallback(self):
238
+ return self.nvMReadRamBlockFromNvCallback
239
+
240
+ def setNvMReadRamBlockFromNvCallback(self, value):
241
+ if value is not None:
242
+ self.nvMReadRamBlockFromNvCallback = value
243
+ return self
244
+
245
+ def getNvMResistantToChangedSw(self):
246
+ return self.nvMResistantToChangedSw
247
+
248
+ def setNvMResistantToChangedSw(self, value):
249
+ if value is not None:
250
+ self.nvMResistantToChangedSw = value
251
+ return self
252
+
253
+ def getNvMRomBlockDataAddress(self):
254
+ return self.nvMRomBlockDataAddress
255
+
256
+ def setNvMRomBlockDataAddress(self, value):
257
+ if value is not None:
258
+ self.nvMRomBlockDataAddress = value
259
+ return self
260
+
261
+ def getNvMRomBlockNum(self):
262
+ return self.nvMRomBlockNum
263
+
264
+ def setNvMRomBlockNum(self, value):
265
+ if value is not None:
266
+ self.nvMRomBlockNum = value
267
+ return self
268
+
269
+ def getNvMSelectBlockForFirstInitAll(self):
270
+ return self.nvMSelectBlockForFirstInitAll
271
+
272
+ def setNvMSelectBlockForFirstInitAll(self, value):
273
+ if value is not None:
274
+ self.nvMSelectBlockForFirstInitAll = value
275
+ return self
276
+
277
+ def getNvMSelectBlockForReadAll(self):
278
+ return self.nvMSelectBlockForReadAll
279
+
280
+ def setNvMSelectBlockForReadAll(self, value):
281
+ if value is not None:
282
+ self.nvMSelectBlockForReadAll = value
283
+ return self
284
+
285
+ def getNvMSelectBlockForWriteAll(self):
286
+ return self.nvMSelectBlockForWriteAll
287
+
288
+ def setNvMSelectBlockForWriteAll(self, value):
289
+ if value is not None:
290
+ self.nvMSelectBlockForWriteAll = value
291
+ return self
292
+
293
+ def getNvMStaticBlockIDCheck(self):
294
+ return self.nvMStaticBlockIDCheck
295
+
296
+ def setNvMStaticBlockIDCheck(self, value):
297
+ if value is not None:
298
+ self.nvMStaticBlockIDCheck = value
299
+ return self
300
+
301
+ def getNvMWriteBlockOnce(self):
302
+ return self.nvMWriteBlockOnce
303
+
304
+ def setNvMWriteBlockOnce(self, value):
305
+ if value is not None:
306
+ self.nvMWriteBlockOnce = value
307
+ return self
308
+
309
+ def getNvMWriteRamBlockToNvCallback(self):
310
+ return self.nvMWriteRamBlockToNvCallback
311
+
312
+ def setNvMWriteRamBlockToNvCallback(self, value):
313
+ if value is not None:
314
+ self.nvMWriteRamBlockToNvCallback = value
315
+ return self
316
+
317
+ def getNvMWriteVerification(self):
318
+ return self.nvMWriteVerification
319
+
320
+ def setNvMWriteVerification(self, value):
321
+ if value is not None:
322
+ self.nvMWriteVerification = value
323
+ return self
324
+
325
+ def getNvMWriteVerificationDataSize(self):
326
+ return self.nvMWriteVerificationDataSize
327
+
328
+ def setNvMWriteVerificationDataSize(self, value):
329
+ if value is not None:
330
+ self.nvMWriteVerificationDataSize = value
331
+ return self
332
+
333
+ def getNvMBlockCipheringRef(self):
334
+ return self.nvMBlockCipheringRef
335
+
336
+ def setNvMBlockCipheringRef(self, value):
337
+ if value is not None:
338
+ self.nvMBlockCipheringRef = value
339
+ return self
340
+
341
+ def getNvMBlockEcucPartitionRef(self) -> EcucRefType:
342
+ return self.nvMBlockEcucPartitionRef
343
+
344
+ def setNvMBlockEcucPartitionRef(self, value: EcucRefType):
345
+ if value is not None:
346
+ self.nvMBlockEcucPartitionRef = value
347
+ return self