armodel 1.7.4__py3-none-any.whl → 1.7.6__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.
- armodel/cli/file_list_cli.py +70 -0
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ImplementationDataTypes.py +2 -2
- armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py +4 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/DiagnosticContribution.py +47 -0
- armodel/models/M2/AUTOSARTemplates/DiagnosticExtract/__init__.py +0 -0
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +73 -3
- armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py +22 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/DiagnosticConnection.py +58 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +165 -4
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py +16 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetTopology.py +514 -17
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/NetworkEndpoint.py +104 -1
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/ServiceInstances.py +783 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinCommunication.py +114 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Lin/LinTopology.py +92 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Multiplatform.py +76 -10
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +151 -6
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +143 -36
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +13 -0
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/NetworkManagement.py +135 -13
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/TransportProtocols.py +79 -2
- armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +4 -2
- armodel/models/M2/MSR/DataDictionary/RecordLayout.py +1 -1
- armodel/models/__init__.py +3 -0
- armodel/parser/abstract_arxml_parser.py +7 -5
- armodel/parser/arxml_parser.py +927 -438
- armodel/writer/arxml_writer.py +799 -178
- {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/METADATA +52 -1
- {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/RECORD +33 -28
- {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/entry_points.txt +1 -0
- {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/LICENSE +0 -0
- {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/WHEEL +0 -0
- {armodel-1.7.4.dist-info → armodel-1.7.6.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import pkg_resources
|
|
3
|
+
import logging
|
|
4
|
+
import sys
|
|
5
|
+
import os.path
|
|
6
|
+
|
|
7
|
+
from ..parser import FileListParser
|
|
8
|
+
|
|
9
|
+
def format_filename(filename, type: str):
|
|
10
|
+
path, file = os.path.split(filename)
|
|
11
|
+
base, ext = os.path.splitext(file)
|
|
12
|
+
return os.path.join(path, base + "_" + type + ext)
|
|
13
|
+
|
|
14
|
+
def main():
|
|
15
|
+
version = pkg_resources.require("armodel")[0].version
|
|
16
|
+
|
|
17
|
+
ap = argparse.ArgumentParser()
|
|
18
|
+
ap.description = "Parse the folder to generate ARXML file list. <%s>" % version
|
|
19
|
+
ap.add_argument("-v", "--verbose", required= False, help= "Print debug information", action= "store_true")
|
|
20
|
+
ap.add_argument("--absolute", required= False, help="Absolute path or relative Path", action= "store_true")
|
|
21
|
+
ap.add_argument("Input", help = "The path contains ARXML file", nargs='+')
|
|
22
|
+
ap.add_argument("Output", help = "The text contains ARXML file list.")
|
|
23
|
+
|
|
24
|
+
args = ap.parse_args()
|
|
25
|
+
|
|
26
|
+
logger = logging.getLogger()
|
|
27
|
+
|
|
28
|
+
formatter = logging.Formatter('[%(levelname)s] : %(message)s')
|
|
29
|
+
|
|
30
|
+
stdout_handler = logging.StreamHandler(sys.stderr)
|
|
31
|
+
stdout_handler.setFormatter(formatter)
|
|
32
|
+
|
|
33
|
+
base_path = os.path.dirname(args.Output)
|
|
34
|
+
log_file = os.path.join(base_path, 'armodel_file_list.log')
|
|
35
|
+
|
|
36
|
+
if os.path.exists(log_file):
|
|
37
|
+
os.remove(log_file)
|
|
38
|
+
|
|
39
|
+
file_handler = logging.FileHandler(log_file)
|
|
40
|
+
file_handler.setFormatter(formatter)
|
|
41
|
+
|
|
42
|
+
logger.setLevel(logging.DEBUG)
|
|
43
|
+
file_handler.setLevel(logging.DEBUG)
|
|
44
|
+
|
|
45
|
+
if args.verbose:
|
|
46
|
+
stdout_handler.setLevel(logging.DEBUG)
|
|
47
|
+
|
|
48
|
+
else:
|
|
49
|
+
stdout_handler.setLevel(logging.INFO)
|
|
50
|
+
|
|
51
|
+
logger.addHandler(file_handler)
|
|
52
|
+
logger.addHandler(stdout_handler)
|
|
53
|
+
|
|
54
|
+
try:
|
|
55
|
+
file_parser = FileListParser()
|
|
56
|
+
file_parser.parse(args.Input)
|
|
57
|
+
|
|
58
|
+
with open(args.Output, "w") as f_out:
|
|
59
|
+
for filename in file_parser.get_file_list():
|
|
60
|
+
if args.absolute:
|
|
61
|
+
f_out.write("%s\n" % os.path.realpath(filename))
|
|
62
|
+
else:
|
|
63
|
+
f_out.write("%s\n" % os.path.relpath(filename))
|
|
64
|
+
|
|
65
|
+
except Exception as e:
|
|
66
|
+
#print(e)
|
|
67
|
+
raise e
|
|
68
|
+
|
|
69
|
+
if __name__ == "__main__":
|
|
70
|
+
main()
|
|
@@ -156,9 +156,9 @@ class ImplementationDataType(AbstractImplementationDataType):
|
|
|
156
156
|
return self._struct_type
|
|
157
157
|
|
|
158
158
|
def createSymbolProps(self, short_name: str) -> SymbolProps:
|
|
159
|
-
if short_name not in self.
|
|
159
|
+
if short_name not in self.elements:
|
|
160
160
|
symbol_props = SymbolProps(self, short_name)
|
|
161
|
-
self.
|
|
161
|
+
self.addElement(symbol_props)
|
|
162
162
|
self.symbolProps = symbol_props
|
|
163
163
|
return self.symbolProps
|
|
164
164
|
|
armodel/models/M2/AUTOSARTemplates/CommonStructure/ResourceConsumption/MemorySectionUsage.py
CHANGED
|
@@ -56,6 +56,7 @@ class MemorySection(Identifiable):
|
|
|
56
56
|
|
|
57
57
|
@alignment.setter
|
|
58
58
|
def alignment(self, value: ARLiteral):
|
|
59
|
+
'''
|
|
59
60
|
if value is not None and value.getValue() != "":
|
|
60
61
|
match = False
|
|
61
62
|
if value.getValue() in ("UNKNOWN", "UNSPECIFIED", "BOOLEAN", "PTR"):
|
|
@@ -69,6 +70,9 @@ class MemorySection(Identifiable):
|
|
|
69
70
|
|
|
70
71
|
if not match:
|
|
71
72
|
raise ValueError("Invalid alignment <%s> of memory section <%s>" % (value, self.getShortName()))
|
|
73
|
+
'''
|
|
74
|
+
if value is not None:
|
|
75
|
+
self._alignment = value
|
|
72
76
|
|
|
73
77
|
def addOption(self, option: ARLiteral):
|
|
74
78
|
self.options.append(option)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from .....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import NameToken, RefType
|
|
4
|
+
from .....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
|
+
from .....models.M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DiagnosticServiceTable(ARElement):
|
|
9
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
10
|
+
super().__init__(parent, short_name)
|
|
11
|
+
|
|
12
|
+
self.diagnosticConnectionRefs = [] # type: List[RefType]
|
|
13
|
+
self.diagnosticServiceInstanceRefs = [] # type: List[RefType]
|
|
14
|
+
self.ecuInstanceRef = None # type: RefType
|
|
15
|
+
self.protocolKind = None # type: NameToken
|
|
16
|
+
|
|
17
|
+
def getDiagnosticConnectionRefs(self):
|
|
18
|
+
return self.diagnosticConnectionRefs
|
|
19
|
+
|
|
20
|
+
def addDiagnosticConnectionRef(self, value):
|
|
21
|
+
if value is not None:
|
|
22
|
+
self.diagnosticConnectionRefs.append(value)
|
|
23
|
+
return self
|
|
24
|
+
|
|
25
|
+
def getDiagnosticServiceInstanceRefs(self):
|
|
26
|
+
return self.diagnosticServiceInstanceRefs
|
|
27
|
+
|
|
28
|
+
def addDiagnosticServiceInstanceRef(self, value):
|
|
29
|
+
if value is not None:
|
|
30
|
+
self.diagnosticServiceInstanceRefs.append(value)
|
|
31
|
+
return self
|
|
32
|
+
|
|
33
|
+
def getEcuInstanceRef(self):
|
|
34
|
+
return self.ecuInstanceRef
|
|
35
|
+
|
|
36
|
+
def setEcuInstanceRef(self, value):
|
|
37
|
+
if value is not None:
|
|
38
|
+
self.ecuInstanceRef = value
|
|
39
|
+
return self
|
|
40
|
+
|
|
41
|
+
def getProtocolKind(self):
|
|
42
|
+
return self.protocolKind
|
|
43
|
+
|
|
44
|
+
def setProtocolKind(self, value):
|
|
45
|
+
if value is not None:
|
|
46
|
+
self.protocolKind = value
|
|
47
|
+
return self
|
|
File without changes
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from typing import Dict, List
|
|
2
|
+
|
|
2
3
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, RefType, ReferrableSubtypesEnum
|
|
3
4
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.EcuInstance import EcuInstance
|
|
4
5
|
from .....M2.AUTOSARTemplates.CommonStructure.Timing.TimingConstraint.TimingExtensions import SwcTiming
|
|
@@ -10,11 +11,12 @@ from .....M2.MSR.AsamHdo.Constraints.GlobalConstraints import DataConstr
|
|
|
10
11
|
from .....M2.MSR.AsamHdo.ComputationMethod import CompuMethod
|
|
11
12
|
from .....M2.MSR.DataDictionary.AuxillaryObjects import SwAddrMethod
|
|
12
13
|
from .....M2.MSR.DataDictionary.RecordLayout import SwRecordLayout
|
|
14
|
+
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswImplementation import BswImplementation
|
|
13
15
|
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswOverview import BswModuleDescription
|
|
14
16
|
from .....M2.AUTOSARTemplates.BswModuleTemplate.BswInterfaces import BswModuleEntry
|
|
15
17
|
from .....M2.AUTOSARTemplates.CommonStructure.Implementation import Implementation
|
|
16
18
|
from .....M2.AUTOSARTemplates.CommonStructure.FlatMap import FlatMap
|
|
17
|
-
from .....M2.AUTOSARTemplates.
|
|
19
|
+
from .....M2.AUTOSARTemplates.DiagnosticExtract.DiagnosticContribution import DiagnosticServiceTable
|
|
18
20
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
19
21
|
from .....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import CollectableElement, Identifiable, Referrable
|
|
20
22
|
from .....M2.AUTOSARTemplates.GenericStructure.LifeCycles import LifeCycleInfoSet
|
|
@@ -22,12 +24,14 @@ from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import Appl
|
|
|
22
24
|
from .....M2.AUTOSARTemplates.CommonStructure.ModeDeclaration import ModeDeclarationGroup
|
|
23
25
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.Datatype.Datatypes import DataTypeMappingSet
|
|
24
26
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.EndToEndProtection import EndToEndProtectionSet
|
|
27
|
+
from .....M2.AUTOSARTemplates.SystemTemplate.DiagnosticConnection import DiagnosticConnection
|
|
25
28
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Can.CanCommunication import CanFrame
|
|
26
29
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Multiplatform import Gateway
|
|
27
|
-
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, NPdu, NmPdu, SecuredIPdu, SystemSignal, SystemSignalGroup
|
|
30
|
+
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreCommunication import DcmIPdu, GeneralPurposeIPdu, GeneralPurposePdu, ISignal, ISignalGroup, ISignalIPdu, ISignalIPduGroup, MultiplexedIPdu, NPdu, NmPdu, SecureCommunicationPropsSet, SecuredIPdu, SystemSignal, SystemSignalGroup, UserDefinedIPdu, UserDefinedPdu
|
|
28
31
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CanCluster, LinCluster
|
|
29
32
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Lin.LinCommunication import LinUnconditionalFrame
|
|
30
33
|
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetTopology import EthernetCluster
|
|
34
|
+
from .....M2.AUTOSARTemplates.SystemTemplate.Fibex.Fibex4Ethernet.EthernetCommunication import SoAdRoutingGroup
|
|
31
35
|
from .....M2.AUTOSARTemplates.CommonStructure.SwcBswMapping import SwcBswMapping
|
|
32
36
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.SwcImplementation import SwcImplementation
|
|
33
37
|
from .....M2.AUTOSARTemplates.CommonStructure import ConstantSpecification
|
|
@@ -36,7 +40,7 @@ from .....M2.AUTOSARTemplates.ECUCDescriptionTemplate import EcucModuleConfigura
|
|
|
36
40
|
from .....M2.AUTOSARTemplates.SWComponentTemplate.PortInterface import ClientServerInterface, ModeSwitchInterface, ParameterInterface, PortInterfaceMappingSet, SenderReceiverInterface, TriggerInterface
|
|
37
41
|
from .....M2.AUTOSARTemplates.SystemTemplate import System
|
|
38
42
|
from .....M2.AUTOSARTemplates.SystemTemplate.NetworkManagement import NmConfig
|
|
39
|
-
from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig
|
|
43
|
+
from .....M2.AUTOSARTemplates.SystemTemplate.TransportProtocols import CanTpConfig, DoIpTpConfig, LinTpConfig
|
|
40
44
|
|
|
41
45
|
class ReferenceBase(ARObject):
|
|
42
46
|
def __init__(self):
|
|
@@ -386,6 +390,12 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
386
390
|
element = CanTpConfig(self, short_name)
|
|
387
391
|
self.addElement(element)
|
|
388
392
|
return self.getElement(short_name)
|
|
393
|
+
|
|
394
|
+
def createLinTpConfig(self, short_name: str) -> LinTpConfig:
|
|
395
|
+
if (short_name not in self.elements):
|
|
396
|
+
element = LinTpConfig(self, short_name)
|
|
397
|
+
self.addElement(element)
|
|
398
|
+
return self.getElement(short_name)
|
|
389
399
|
|
|
390
400
|
def createCanFrame(self, short_name: str) -> CanFrame:
|
|
391
401
|
if (short_name not in self.elements):
|
|
@@ -482,6 +492,66 @@ class ARPackage(Identifiable, CollectableElement):
|
|
|
482
492
|
cluster = EthernetCluster(self, short_name)
|
|
483
493
|
self.addElement(cluster)
|
|
484
494
|
return self.getElement(short_name)
|
|
495
|
+
|
|
496
|
+
def createDiagnosticConnection(self, short_name: str) -> DiagnosticConnection:
|
|
497
|
+
if (short_name not in self.elements):
|
|
498
|
+
cluster = DiagnosticConnection(self, short_name)
|
|
499
|
+
self.addElement(cluster)
|
|
500
|
+
return self.getElement(short_name)
|
|
501
|
+
|
|
502
|
+
def createDiagnosticServiceTable(self, short_name: str) -> DiagnosticServiceTable:
|
|
503
|
+
if (short_name not in self.elements):
|
|
504
|
+
cluster = DiagnosticServiceTable(self, short_name)
|
|
505
|
+
self.addElement(cluster)
|
|
506
|
+
return self.getElement(short_name)
|
|
507
|
+
|
|
508
|
+
def createMultiplexedIPdu(self, short_name: str) -> MultiplexedIPdu:
|
|
509
|
+
if (short_name not in self.elements):
|
|
510
|
+
cluster = MultiplexedIPdu(self, short_name)
|
|
511
|
+
self.addElement(cluster)
|
|
512
|
+
return self.getElement(short_name)
|
|
513
|
+
|
|
514
|
+
def createUserDefinedIPdu(self, short_name: str) -> UserDefinedIPdu:
|
|
515
|
+
if (short_name not in self.elements):
|
|
516
|
+
cluster = UserDefinedIPdu(self, short_name)
|
|
517
|
+
self.addElement(cluster)
|
|
518
|
+
return self.getElement(short_name)
|
|
519
|
+
|
|
520
|
+
def createUserDefinedPdu(self, short_name: str) -> UserDefinedPdu:
|
|
521
|
+
if (short_name not in self.elements):
|
|
522
|
+
cluster = UserDefinedPdu(self, short_name)
|
|
523
|
+
self.addElement(cluster)
|
|
524
|
+
return self.getElement(short_name)
|
|
525
|
+
|
|
526
|
+
def createGeneralPurposeIPdu(self, short_name: str) -> GeneralPurposeIPdu:
|
|
527
|
+
if (short_name not in self.elements):
|
|
528
|
+
cluster = GeneralPurposeIPdu(self, short_name)
|
|
529
|
+
self.addElement(cluster)
|
|
530
|
+
return self.getElement(short_name)
|
|
531
|
+
|
|
532
|
+
def createGeneralPurposePdu(self, short_name: str) -> GeneralPurposePdu:
|
|
533
|
+
if (short_name not in self.elements):
|
|
534
|
+
cluster = GeneralPurposePdu(self, short_name)
|
|
535
|
+
self.addElement(cluster)
|
|
536
|
+
return self.getElement(short_name)
|
|
537
|
+
|
|
538
|
+
def createSecureCommunicationPropsSet(self, short_name: str) -> SecureCommunicationPropsSet:
|
|
539
|
+
if (short_name not in self.elements):
|
|
540
|
+
cluster = SecureCommunicationPropsSet(self, short_name)
|
|
541
|
+
self.addElement(cluster)
|
|
542
|
+
return self.getElement(short_name)
|
|
543
|
+
|
|
544
|
+
def createSoAdRoutingGroup(self, short_name: str) -> SoAdRoutingGroup:
|
|
545
|
+
if (short_name not in self.elements):
|
|
546
|
+
cluster = SoAdRoutingGroup(self, short_name)
|
|
547
|
+
self.addElement(cluster)
|
|
548
|
+
return self.getElement(short_name)
|
|
549
|
+
|
|
550
|
+
def createDoIpTpConfig(self, short_name: str) -> DoIpTpConfig:
|
|
551
|
+
if (short_name not in self.elements):
|
|
552
|
+
cluster = DoIpTpConfig(self, short_name)
|
|
553
|
+
self.addElement(cluster)
|
|
554
|
+
return self.getElement(short_name)
|
|
485
555
|
|
|
486
556
|
def getApplicationPrimitiveDataTypes(self) -> List[ApplicationPrimitiveDataType]:
|
|
487
557
|
return list(sorted(filter(lambda a: isinstance(a, ApplicationPrimitiveDataType), self.elements.values()), key= lambda o:o.short_name))
|
armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/PrimitiveTypes.py
CHANGED
|
@@ -431,6 +431,15 @@ class RefType(ARObject):
|
|
|
431
431
|
self.value = value
|
|
432
432
|
return self
|
|
433
433
|
|
|
434
|
+
def getShortValue(self):
|
|
435
|
+
if self.value is None:
|
|
436
|
+
raise ValueError("Invalid value of RefType")
|
|
437
|
+
m = re.match(r'\/[\w\/]+\/(\w+)', self.value)
|
|
438
|
+
if m:
|
|
439
|
+
return m.group(1)
|
|
440
|
+
return self.value
|
|
441
|
+
|
|
442
|
+
|
|
434
443
|
class TRefType(RefType):
|
|
435
444
|
def __init__(self):
|
|
436
445
|
super().__init__()
|
|
@@ -484,5 +493,18 @@ class Ip6AddressString(ARLiteral):
|
|
|
484
493
|
* xml.xsd.pattern=[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4}){7,7}|ANY
|
|
485
494
|
* xml.xsd.type=string
|
|
486
495
|
'''
|
|
496
|
+
def __init__(self):
|
|
497
|
+
super().__init__()
|
|
498
|
+
|
|
499
|
+
class MacAddressString(ARLiteral):
|
|
500
|
+
'''
|
|
501
|
+
This primitive specifies a Mac Address. Notation: FF:FF:FF:FF:FF:FF
|
|
502
|
+
Alternative notations, e.g. using dash instead of colon, or another grouping of numbers, is not allowed.
|
|
503
|
+
|
|
504
|
+
Tags:
|
|
505
|
+
* xml.xsd.customType=MAC-ADDRESS-STRING
|
|
506
|
+
* xml.xsd.pattern=([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}
|
|
507
|
+
* xml.xsd.type=string
|
|
508
|
+
'''
|
|
487
509
|
def __init__(self):
|
|
488
510
|
super().__init__()
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import RefType
|
|
3
|
+
from ....M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement
|
|
4
|
+
|
|
5
|
+
class DiagnosticConnection(ARElement):
|
|
6
|
+
def __init__(self, parent, short_name):
|
|
7
|
+
super().__init__(parent, short_name)
|
|
8
|
+
|
|
9
|
+
self.functionalRequestRefs = [] # type: List[RefType]
|
|
10
|
+
self.periodicResponseUudtRefs = [] # type: List[RefType]
|
|
11
|
+
self.physicalRequestRef = None # type: RefType
|
|
12
|
+
self.responseRef = None # type: RefType
|
|
13
|
+
self.responseOnEventRef = None # type: RefType
|
|
14
|
+
|
|
15
|
+
def getFunctionalRequestRefs(self):
|
|
16
|
+
return self.functionalRequestRefs
|
|
17
|
+
|
|
18
|
+
def addFunctionalRequestRef(self, value):
|
|
19
|
+
if value is not None:
|
|
20
|
+
self.functionalRequestRefs.append(value)
|
|
21
|
+
return self
|
|
22
|
+
|
|
23
|
+
def getPeriodicResponseUudtRefs(self):
|
|
24
|
+
return self.periodicResponseUudtRefs
|
|
25
|
+
|
|
26
|
+
def addPeriodicResponseUudtRef(self, value):
|
|
27
|
+
if value is not None:
|
|
28
|
+
self.periodicResponseUudtRefs.append(value)
|
|
29
|
+
return self
|
|
30
|
+
|
|
31
|
+
def getPhysicalRequestRef(self):
|
|
32
|
+
return self.physicalRequestRef
|
|
33
|
+
|
|
34
|
+
def setPhysicalRequestRef(self, value):
|
|
35
|
+
if value is not None:
|
|
36
|
+
self.physicalRequestRef = value
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
def getResponseRef(self):
|
|
40
|
+
return self.responseRef
|
|
41
|
+
|
|
42
|
+
def setResponseRef(self, value):
|
|
43
|
+
if value is not None:
|
|
44
|
+
self.responseRef = value
|
|
45
|
+
return self
|
|
46
|
+
|
|
47
|
+
def getResponseOnEventRef(self):
|
|
48
|
+
return self.responseOnEventRef
|
|
49
|
+
|
|
50
|
+
def setResponseOnEventRef(self, value):
|
|
51
|
+
if value is not None:
|
|
52
|
+
self.responseOnEventRef = value
|
|
53
|
+
return self
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
@@ -1,9 +1,172 @@
|
|
|
1
1
|
from abc import ABCMeta
|
|
2
2
|
|
|
3
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger
|
|
3
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Float, Integer, PositiveInteger, PositiveUnlimitedInteger, TimeValue
|
|
4
4
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
5
5
|
from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.CoreTopology import CommunicationConnector, CommunicationController
|
|
6
6
|
|
|
7
|
+
class CanControllerFdConfiguration(ARObject):
|
|
8
|
+
def __init__(self):
|
|
9
|
+
super().__init__()
|
|
10
|
+
|
|
11
|
+
self.paddingValue = None # type: PositiveInteger
|
|
12
|
+
self.propSeg = None # type: PositiveInteger
|
|
13
|
+
self.sspOffset = None # type: PositiveInteger
|
|
14
|
+
self.syncJumpWidth = None # type: PositiveInteger
|
|
15
|
+
self.timeSeg1 = None # type: PositiveInteger
|
|
16
|
+
self.timeSeg2 = None # type: PositiveInteger
|
|
17
|
+
self.txBitRateSwitch = None # type: Boolean
|
|
18
|
+
|
|
19
|
+
def getPaddingValue(self):
|
|
20
|
+
return self.paddingValue
|
|
21
|
+
|
|
22
|
+
def setPaddingValue(self, value):
|
|
23
|
+
if value is not None:
|
|
24
|
+
self.paddingValue = value
|
|
25
|
+
return self
|
|
26
|
+
|
|
27
|
+
def getPropSeg(self):
|
|
28
|
+
return self.propSeg
|
|
29
|
+
|
|
30
|
+
def setPropSeg(self, value):
|
|
31
|
+
if value is not None:
|
|
32
|
+
self.propSeg = value
|
|
33
|
+
return self
|
|
34
|
+
|
|
35
|
+
def getSspOffset(self):
|
|
36
|
+
return self.sspOffset
|
|
37
|
+
|
|
38
|
+
def setSspOffset(self, value):
|
|
39
|
+
if value is not None:
|
|
40
|
+
self.sspOffset = value
|
|
41
|
+
return self
|
|
42
|
+
|
|
43
|
+
def getSyncJumpWidth(self):
|
|
44
|
+
return self.syncJumpWidth
|
|
45
|
+
|
|
46
|
+
def setSyncJumpWidth(self, value):
|
|
47
|
+
if value is not None:
|
|
48
|
+
self.syncJumpWidth = value
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def getTimeSeg1(self):
|
|
52
|
+
return self.timeSeg1
|
|
53
|
+
|
|
54
|
+
def setTimeSeg1(self, value):
|
|
55
|
+
if value is not None:
|
|
56
|
+
self.timeSeg1 = value
|
|
57
|
+
return self
|
|
58
|
+
|
|
59
|
+
def getTimeSeg2(self):
|
|
60
|
+
return self.timeSeg2
|
|
61
|
+
|
|
62
|
+
def setTimeSeg2(self, value):
|
|
63
|
+
if value is not None:
|
|
64
|
+
self.timeSeg2 = value
|
|
65
|
+
return self
|
|
66
|
+
|
|
67
|
+
def getTxBitRateSwitch(self):
|
|
68
|
+
return self.txBitRateSwitch
|
|
69
|
+
|
|
70
|
+
def setTxBitRateSwitch(self, value):
|
|
71
|
+
if value is not None:
|
|
72
|
+
self.txBitRateSwitch = value
|
|
73
|
+
return self
|
|
74
|
+
|
|
75
|
+
class CanControllerFdConfigurationRequirements(ARObject):
|
|
76
|
+
def __init__(self):
|
|
77
|
+
super().__init__()
|
|
78
|
+
|
|
79
|
+
self.maxNumberOfTimeQuantaPerBit = None # type: Integer
|
|
80
|
+
self.maxSamplePoint = None # type: Float
|
|
81
|
+
self.maxSyncJumpWidth = None # type: Float
|
|
82
|
+
self.maxTrcvDelayCompensationOffset = None # type: TimeValue
|
|
83
|
+
self.minNumberOfTimeQuantaPerBit = None # type: Integer
|
|
84
|
+
self.minSamplePoint = None # type: Float
|
|
85
|
+
self.minSyncJumpWidth = None # type: Float
|
|
86
|
+
self.minTrcvDelayCompensationOffset = None # type: TimeValue
|
|
87
|
+
self.paddingValue = None # type: PositiveInteger
|
|
88
|
+
self.txBitRateSwitch = None # type: Boolean
|
|
89
|
+
|
|
90
|
+
def getMaxNumberOfTimeQuantaPerBit(self):
|
|
91
|
+
return self.maxNumberOfTimeQuantaPerBit
|
|
92
|
+
|
|
93
|
+
def setMaxNumberOfTimeQuantaPerBit(self, value):
|
|
94
|
+
if value is not None:
|
|
95
|
+
self.maxNumberOfTimeQuantaPerBit = value
|
|
96
|
+
return self
|
|
97
|
+
|
|
98
|
+
def getMaxSamplePoint(self):
|
|
99
|
+
return self.maxSamplePoint
|
|
100
|
+
|
|
101
|
+
def setMaxSamplePoint(self, value):
|
|
102
|
+
if value is not None:
|
|
103
|
+
self.maxSamplePoint = value
|
|
104
|
+
return self
|
|
105
|
+
|
|
106
|
+
def getMaxSyncJumpWidth(self):
|
|
107
|
+
return self.maxSyncJumpWidth
|
|
108
|
+
|
|
109
|
+
def setMaxSyncJumpWidth(self, value):
|
|
110
|
+
if value is not None:
|
|
111
|
+
self.maxSyncJumpWidth = value
|
|
112
|
+
return self
|
|
113
|
+
|
|
114
|
+
def getMaxTrcvDelayCompensationOffset(self):
|
|
115
|
+
return self.maxTrcvDelayCompensationOffset
|
|
116
|
+
|
|
117
|
+
def setMaxTrcvDelayCompensationOffset(self, value):
|
|
118
|
+
if value is not None:
|
|
119
|
+
self.maxTrcvDelayCompensationOffset = value
|
|
120
|
+
return self
|
|
121
|
+
|
|
122
|
+
def getMinNumberOfTimeQuantaPerBit(self):
|
|
123
|
+
return self.minNumberOfTimeQuantaPerBit
|
|
124
|
+
|
|
125
|
+
def setMinNumberOfTimeQuantaPerBit(self, value):
|
|
126
|
+
if value is not None:
|
|
127
|
+
self.minNumberOfTimeQuantaPerBit = value
|
|
128
|
+
return self
|
|
129
|
+
|
|
130
|
+
def getMinSamplePoint(self):
|
|
131
|
+
return self.minSamplePoint
|
|
132
|
+
|
|
133
|
+
def setMinSamplePoint(self, value):
|
|
134
|
+
if value is not None:
|
|
135
|
+
self.minSamplePoint = value
|
|
136
|
+
return self
|
|
137
|
+
|
|
138
|
+
def getMinSyncJumpWidth(self):
|
|
139
|
+
return self.minSyncJumpWidth
|
|
140
|
+
|
|
141
|
+
def setMinSyncJumpWidth(self, value):
|
|
142
|
+
if value is not None:
|
|
143
|
+
self.minSyncJumpWidth = value
|
|
144
|
+
return self
|
|
145
|
+
|
|
146
|
+
def getMinTrcvDelayCompensationOffset(self):
|
|
147
|
+
return self.minTrcvDelayCompensationOffset
|
|
148
|
+
|
|
149
|
+
def setMinTrcvDelayCompensationOffset(self, value):
|
|
150
|
+
if value is not None:
|
|
151
|
+
self.minTrcvDelayCompensationOffset = value
|
|
152
|
+
return self
|
|
153
|
+
|
|
154
|
+
def getPaddingValue(self):
|
|
155
|
+
return self.paddingValue
|
|
156
|
+
|
|
157
|
+
def setPaddingValue(self, value):
|
|
158
|
+
if value is not None:
|
|
159
|
+
self.paddingValue = value
|
|
160
|
+
return self
|
|
161
|
+
|
|
162
|
+
def getTxBitRateSwitch(self):
|
|
163
|
+
return self.txBitRateSwitch
|
|
164
|
+
|
|
165
|
+
def setTxBitRateSwitch(self, value):
|
|
166
|
+
if value is not None:
|
|
167
|
+
self.txBitRateSwitch = value
|
|
168
|
+
return self
|
|
169
|
+
|
|
7
170
|
class AbstractCanCommunicationControllerAttributes(ARObject, metaclass = ABCMeta):
|
|
8
171
|
def __init__(self):
|
|
9
172
|
super().__init__()
|
|
@@ -94,8 +257,6 @@ class CanControllerConfigurationRequirements(AbstractCanCommunicationControllerA
|
|
|
94
257
|
self.minSyncJumpWidth = value
|
|
95
258
|
return self
|
|
96
259
|
|
|
97
|
-
|
|
98
|
-
|
|
99
260
|
class AbstractCanCommunicationController(CommunicationController, metaclass = ABCMeta):
|
|
100
261
|
def __init__(self, parent: ARObject, short_name: str):
|
|
101
262
|
if type(self) == AbstractCanCommunicationController:
|
|
@@ -111,7 +272,7 @@ class AbstractCanCommunicationController(CommunicationController, metaclass = AB
|
|
|
111
272
|
def setCanControllerAttributes(self, value):
|
|
112
273
|
self.canControllerAttributes = value
|
|
113
274
|
return self
|
|
114
|
-
|
|
275
|
+
|
|
115
276
|
class CanCommunicationController(AbstractCanCommunicationController):
|
|
116
277
|
def __init__(self, parent: ARObject, short_name: str):
|
|
117
278
|
super().__init__(parent, short_name)
|
armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetCommunication.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import List
|
|
2
2
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
|
|
3
3
|
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Boolean, Identifier, PositiveInteger, RefType, TimeValue
|
|
4
|
-
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable, Referrable
|
|
4
|
+
from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import Describable, Identifiable, Referrable
|
|
5
5
|
|
|
6
6
|
class SocketConnection(Describable):
|
|
7
7
|
def __init__(self):
|
|
@@ -227,3 +227,18 @@ class SocketConnectionBundle(Referrable):
|
|
|
227
227
|
def setUdpChecksumHandling(self, value):
|
|
228
228
|
self.udpChecksumHandling = value
|
|
229
229
|
return self
|
|
230
|
+
|
|
231
|
+
class SoAdRoutingGroup(Identifiable):
|
|
232
|
+
def __init__(self, parent: ARObject, short_name: str):
|
|
233
|
+
super().__init__(parent, short_name)
|
|
234
|
+
|
|
235
|
+
# type: EventGroupControlTypeEnum
|
|
236
|
+
self.eventGroupControlType = None
|
|
237
|
+
|
|
238
|
+
def getEventGroupControlType(self):
|
|
239
|
+
return self.eventGroupControlType
|
|
240
|
+
|
|
241
|
+
def setEventGroupControlType(self, value):
|
|
242
|
+
if value is not None:
|
|
243
|
+
self.eventGroupControlType = value
|
|
244
|
+
return self
|