armodel 1.7.7__py3-none-any.whl → 1.7.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.
Files changed (52) hide show
  1. armodel/cli/arxml_dump_cli.py +33 -22
  2. armodel/cli/arxml_format_cli.py +25 -13
  3. armodel/models/M2/AUTOSARTemplates/AutosarTopLevelStructure.py +64 -29
  4. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswBehavior.py +322 -63
  5. armodel/models/M2/AUTOSARTemplates/BswModuleTemplate/BswOverview.py +134 -35
  6. armodel/models/M2/AUTOSARTemplates/CommonStructure/InternalBehavior.py +10 -1
  7. armodel/models/M2/AUTOSARTemplates/CommonStructure/TriggerDeclaration.py +18 -2
  8. armodel/models/M2/AUTOSARTemplates/ECUCDescriptionTemplate.py +20 -19
  9. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/HwElementCategory.py +59 -0
  10. armodel/models/M2/AUTOSARTemplates/EcuResourceTemplate/__init__.py +145 -0
  11. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/ARPackage.py +214 -156
  12. armodel/models/M2/AUTOSARTemplates/GenericStructure/GeneralTemplateClasses/Identifiable.py +60 -32
  13. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Components/__init__.py +63 -42
  14. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/Composition/__init__.py +1 -0
  15. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/EndToEndProtection.py +13 -6
  16. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/PortInterface/__init__.py +111 -38
  17. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/AccessCount.py +9 -1
  18. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/ModeDeclarationGroup.py +5 -4
  19. armodel/models/M2/AUTOSARTemplates/SWComponentTemplate/SwcInternalBehavior/__init__.py +9 -1
  20. armodel/models/M2/AUTOSARTemplates/SystemTemplate/DataMapping.py +167 -5
  21. armodel/models/M2/AUTOSARTemplates/SystemTemplate/{ECUResourceMapping.py → EcuResourceMapping.py} +4 -3
  22. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Can/CanTopology.py +31 -21
  23. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Ethernet/EthernetFrame.py +5 -3
  24. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayCommunication.py +76 -0
  25. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/FlexrayTopology.py +654 -0
  26. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/Fibex4Flexray/__init__.py +0 -0
  27. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreCommunication.py +64 -31
  28. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/CoreTopology.py +158 -40
  29. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Fibex/FibexCore/EcuInstance.py +19 -6
  30. armodel/models/M2/AUTOSARTemplates/SystemTemplate/InstanceRefs.py +2 -0
  31. armodel/models/M2/AUTOSARTemplates/SystemTemplate/Transformer/__init__.py +524 -0
  32. armodel/models/M2/AUTOSARTemplates/SystemTemplate/__init__.py +15 -13
  33. armodel/models/__init__.py +5 -1
  34. armodel/parser/abstract_arxml_parser.py +34 -30
  35. armodel/parser/arxml_parser.py +1196 -525
  36. armodel/parser/file_parser.py +5 -3
  37. armodel/tests/test_armodel/models/test_ar_package.py +6 -11
  38. armodel/tests/test_armodel/models/test_port_interface.py +116 -117
  39. armodel/tests/test_armodel/parser/test_bsw_module_descriiption.py +109 -109
  40. armodel/tests/test_armodel/parser/test_sw_components.py +38 -27
  41. armodel/tests/test_armodel/parser/test_system.py +2 -8
  42. armodel/transformer/__init__.py +0 -0
  43. armodel/transformer/abstract.py +6 -0
  44. armodel/transformer/admin_data.py +31 -0
  45. armodel/writer/abstract_arxml_writer.py +22 -29
  46. armodel/writer/arxml_writer.py +1198 -477
  47. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/METADATA +41 -1
  48. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/RECORD +52 -43
  49. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/LICENSE +0 -0
  50. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/WHEEL +0 -0
  51. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/entry_points.txt +0 -0
  52. {armodel-1.7.7.dist-info → armodel-1.7.8.dist-info}/top_level.txt +0 -0
@@ -2,11 +2,15 @@ from abc import ABCMeta
2
2
  from typing import List
3
3
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.Identifiable import ARElement, Identifiable, Describable
4
4
  from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.ArObject import ARObject
5
- from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean, Integer, PositiveInteger, RefType, ARBoolean, String, TimeValue, UnlimitedInteger
5
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import ARLiteral, ARNumerical, ARPositiveInteger, Boolean
6
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import Integer, PositiveInteger, RefType, ARBoolean, String
7
+ from ......M2.AUTOSARTemplates.GenericStructure.GeneralTemplateClasses.PrimitiveTypes import TimeValue, UnlimitedInteger
6
8
  from ......M2.AUTOSARTemplates.SystemTemplate.Fibex.FibexCore.Timing import TransmissionModeDeclaration
7
- class FibexElement(Identifiable, metaclass = ABCMeta):
9
+
10
+
11
+ class FibexElement(Identifiable, metaclass=ABCMeta):
8
12
  def __init__(self, parent: ARObject, short_name: str):
9
- if type(self) == FibexElement:
13
+ if type(self) is FibexElement:
10
14
  raise NotImplementedError("FibexElement is an abstract class.")
11
15
 
12
16
  super().__init__(parent, short_name)
@@ -49,9 +53,10 @@ class PduToFrameMapping(Identifiable):
49
53
  self.updateIndicationBitPosition = value
50
54
  return self
51
55
 
52
- class Frame(Identifiable, metaclass = ABCMeta):
56
+
57
+ class Frame(Identifiable, metaclass=ABCMeta):
53
58
  def __init__(self, parent: ARObject, short_name: str):
54
- if type(self) == Frame:
59
+ if type(self) is Frame:
55
60
  raise NotImplementedError("Frame is an abstract class.")
56
61
 
57
62
  super().__init__(parent, short_name)
@@ -74,8 +79,9 @@ class Frame(Identifiable, metaclass = ABCMeta):
74
79
  return self.elements[short_name]
75
80
 
76
81
  def getPduToFrameMappings(self) -> List[PduToFrameMapping]:
77
- return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements.values()), key= lambda o:o.short_name))
78
-
82
+ return list(sorted(filter(lambda a: isinstance(a, PduToFrameMapping), self.elements.values()), key=lambda o: o.short_name))
83
+
84
+
79
85
  class ContainedIPduProps(ARObject):
80
86
  def __init__(self):
81
87
  super().__init__()
@@ -137,20 +143,22 @@ class ContainedIPduProps(ARObject):
137
143
  self.updateIndicationBitPosition = value
138
144
  return self
139
145
 
146
+
140
147
  class ISignalGroup(FibexElement):
141
148
  def __init__(self, parent, short_name):
142
149
  super().__init__(parent, short_name)
143
150
 
144
- self.comBasedSignalGroupTransformationRef = None # type: RefType
151
+ self.comBasedSignalGroupTransformationRefs = [] # type: List[RefType]
145
152
  self.iSignalRefs = [] # type: List[RefType]
146
153
  self.systemSignalGroupRef = None
147
154
  self.transformationISignalProps = None
148
155
 
149
- def getComBasedSignalGroupTransformationRef(self):
150
- return self.comBasedSignalGroupTransformationRef
156
+ def getComBasedSignalGroupTransformationRefs(self):
157
+ return self.comBasedSignalGroupTransformationRefs
151
158
 
152
- def setComBasedSignalGroupTransformationRef(self, value):
153
- self.comBasedSignalGroupTransformationRef = value
159
+ def addComBasedSignalGroupTransformationRef(self, value):
160
+ if value is not None:
161
+ self.comBasedSignalGroupTransformationRefs.append(value)
154
162
  return self
155
163
 
156
164
  def getISignalRefs(self):
@@ -219,10 +227,11 @@ class ISignalIPduGroup(FibexElement):
219
227
  def addNmPduRef(self, value):
220
228
  self.nmPduRefs.append(value)
221
229
  return self
222
-
223
- class Pdu(FibexElement, metaclass = ABCMeta):
230
+
231
+
232
+ class Pdu(FibexElement, metaclass=ABCMeta):
224
233
  def __init__(self, parent: ARObject, short_name: str):
225
- if type(self) == Pdu:
234
+ if type(self) is Pdu:
226
235
  raise NotImplementedError("Pdu is an abstract class.")
227
236
 
228
237
  super().__init__(parent, short_name)
@@ -238,7 +247,6 @@ class Pdu(FibexElement, metaclass = ABCMeta):
238
247
  self.hasDynamicLength = value
239
248
  return self
240
249
 
241
-
242
250
  def getLength(self):
243
251
  return self.length
244
252
 
@@ -246,9 +254,10 @@ class Pdu(FibexElement, metaclass = ABCMeta):
246
254
  self.length = value
247
255
  return self
248
256
 
249
- class IPdu(Pdu, metaclass = ABCMeta):
257
+
258
+ class IPdu(Pdu, metaclass=ABCMeta):
250
259
  def __init__(self, parent: ARObject, short_name: str):
251
- if type(self) == IPdu:
260
+ if type(self) is IPdu:
252
261
  raise NotImplementedError("IPdu is an abstract class.")
253
262
 
254
263
  super().__init__(parent, short_name)
@@ -264,6 +273,7 @@ class IPdu(Pdu, metaclass = ABCMeta):
264
273
  self.containedIPduProps = value
265
274
  return self
266
275
 
276
+
267
277
  class SecureCommunicationProps(ARObject):
268
278
  def __init__(self):
269
279
  super().__init__()
@@ -307,7 +317,6 @@ class SecureCommunicationProps(ARObject):
307
317
  self.authInfoTxLength = value
308
318
  return self
309
319
 
310
-
311
320
  def getAuthenticationBuildAttempts(self):
312
321
  return self.authenticationBuildAttempts
313
322
 
@@ -464,7 +473,8 @@ class SecuredIPdu(IPdu):
464
473
  if value is not None:
465
474
  self.useSecuredPduHeader = value
466
475
  return self
467
-
476
+
477
+
468
478
  class ISignalToIPduMapping(Identifiable):
469
479
  def __init__(self, parent, short_name):
470
480
  super().__init__(parent, short_name)
@@ -518,6 +528,7 @@ class ISignalToIPduMapping(Identifiable):
518
528
  self.updateIndicationBitPosition = value
519
529
  return self
520
530
 
531
+
521
532
  class NmPdu(Pdu):
522
533
  def __init__(self, parent: ARObject, short_name: str):
523
534
  super().__init__(parent, short_name)
@@ -566,6 +577,7 @@ class NPdu(IPdu):
566
577
  def __init__(self, parent: ARObject, short_name: str):
567
578
  super().__init__(parent, short_name)
568
579
 
580
+
569
581
  class DcmIPdu(IPdu):
570
582
  def __init__(self, parent: ARObject, short_name: str):
571
583
  super().__init__(parent, short_name)
@@ -579,6 +591,7 @@ class DcmIPdu(IPdu):
579
591
  self.diagPduType = value
580
592
  return self
581
593
 
594
+
582
595
  class IPduTiming(Describable):
583
596
  def __init__(self):
584
597
  super().__init__()
@@ -599,7 +612,8 @@ class IPduTiming(Describable):
599
612
  def setTransmissionModeDeclaration(self, value):
600
613
  self.transmissionModeDeclaration = value
601
614
  return self
602
-
615
+
616
+
603
617
  class ISignalIPdu(IPdu):
604
618
  def __init__(self, parent, short_name):
605
619
  super().__init__(parent, short_name)
@@ -717,7 +731,8 @@ class ISignal(FibexElement):
717
731
  def addTransformationISignalProps(self, value):
718
732
  self.transformationISignalProps.append(value)
719
733
  return self
720
-
734
+
735
+
721
736
  class PduTriggering(Identifiable):
722
737
  def __init__(self, parent, short_name):
723
738
  super().__init__(parent, short_name)
@@ -743,7 +758,8 @@ class PduTriggering(Identifiable):
743
758
  return self
744
759
 
745
760
  def getISignalTriggeringRefs(self):
746
- return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
761
+ # return sorted(self.iSignalTriggeringRefs, key = lambda i: i.getShortValue())
762
+ return self.iSignalTriggeringRefs
747
763
 
748
764
  def addISignalTriggeringRef(self, value):
749
765
  self.iSignalTriggeringRefs.append(value)
@@ -764,9 +780,9 @@ class PduTriggering(Identifiable):
764
780
  return self
765
781
 
766
782
 
767
- class FrameTriggering(Identifiable, metaclass = ABCMeta):
783
+ class FrameTriggering(Identifiable, metaclass=ABCMeta):
768
784
  def __init__(self, parent, short_name):
769
- if type(self) == FrameTriggering:
785
+ if type(self) is FrameTriggering:
770
786
  raise NotImplementedError("FrameTriggering is an abstract class.")
771
787
 
772
788
  super().__init__(parent, short_name)
@@ -796,6 +812,7 @@ class FrameTriggering(Identifiable, metaclass = ABCMeta):
796
812
  self.pduTriggeringRefs.append(value)
797
813
  return self
798
814
 
815
+
799
816
  class SystemSignal(ARElement):
800
817
  def __init__(self, parent, short_name):
801
818
  super().__init__(parent, short_name)
@@ -817,6 +834,7 @@ class SystemSignal(ARElement):
817
834
  self.physicalProps = value
818
835
  return self
819
836
 
837
+
820
838
  class SystemSignalGroup(ARElement):
821
839
  def __init__(self, parent, short_name):
822
840
  super().__init__(parent, short_name)
@@ -827,7 +845,7 @@ class SystemSignalGroup(ARElement):
827
845
  def getSystemSignalRefs(self):
828
846
  return self.systemSignalRefs
829
847
 
830
- def addSystemSignalRefs(self, value:RefType):
848
+ def addSystemSignalRefs(self, value: RefType):
831
849
  self.systemSignalRefs.append(value)
832
850
  return self
833
851
 
@@ -838,6 +856,7 @@ class SystemSignalGroup(ARElement):
838
856
  self.transformingSystemSignalRef = value
839
857
  return self
840
858
 
859
+
841
860
  class ISignalTriggering(Identifiable):
842
861
  def __init__(self, parent, short_name):
843
862
  super().__init__(parent, short_name)
@@ -866,7 +885,8 @@ class ISignalTriggering(Identifiable):
866
885
  def addISignalPortRef(self, value):
867
886
  self.iSignalPortRefs.append(value)
868
887
  return self
869
-
888
+
889
+
870
890
  class SegmentPosition(ARObject):
871
891
  def __init__(self):
872
892
  super().__init__()
@@ -899,9 +919,10 @@ class SegmentPosition(ARObject):
899
919
  self.segmentPosition = value
900
920
  return self
901
921
 
902
- class MultiplexedPart(ARObject, metaclass = ABCMeta):
922
+
923
+ class MultiplexedPart(ARObject, metaclass=ABCMeta):
903
924
  def __init__(self):
904
- if type(self) == MultiplexedPart:
925
+ if type(self) is MultiplexedPart:
905
926
  raise NotImplementedError("MultiplexedPart is an abstract class.")
906
927
 
907
928
  super().__init__()
@@ -916,6 +937,7 @@ class MultiplexedPart(ARObject, metaclass = ABCMeta):
916
937
  self.segmentPositions.append(value)
917
938
  return self
918
939
 
940
+
919
941
  class StaticPart(MultiplexedPart):
920
942
  def __init__(self):
921
943
  super().__init__()
@@ -929,6 +951,8 @@ class StaticPart(MultiplexedPart):
929
951
  if value is not None:
930
952
  self.iPduRef = value
931
953
  return self
954
+
955
+
932
956
  class DynamicPartAlternative(ARObject):
933
957
  def __init__(self):
934
958
  super().__init__()
@@ -961,6 +985,7 @@ class DynamicPartAlternative(ARObject):
961
985
  self.selectorFieldCode = value
962
986
  return self
963
987
 
988
+
964
989
  class DynamicPart(MultiplexedPart):
965
990
  def __init__(self):
966
991
  super().__init__()
@@ -975,6 +1000,7 @@ class DynamicPart(MultiplexedPart):
975
1000
  self.dynamicPartAlternatives.append(value)
976
1001
  return self
977
1002
 
1003
+
978
1004
  class MultiplexedIPdu(IPdu):
979
1005
  def __init__(self, parent, short_name):
980
1006
  super().__init__(parent, short_name)
@@ -1043,6 +1069,7 @@ class MultiplexedIPdu(IPdu):
1043
1069
  self.unusedBitPattern = value
1044
1070
  return self
1045
1071
 
1072
+
1046
1073
  class UserDefinedIPdu(IPdu):
1047
1074
  def __init__(self, parent, short_name):
1048
1075
  super().__init__(parent, short_name)
@@ -1057,10 +1084,12 @@ class UserDefinedIPdu(IPdu):
1057
1084
  self.cddType = value
1058
1085
  return self
1059
1086
 
1087
+
1060
1088
  class GeneralPurposeIPdu(IPdu):
1061
1089
  def __init__(self, parent: ARObject, short_name: str):
1062
1090
  super().__init__(parent, short_name)
1063
1091
 
1092
+
1064
1093
  class UserDefinedPdu(Pdu):
1065
1094
  def __init__(self, parent: ARObject, short_name: str):
1066
1095
  super().__init__(parent, short_name)
@@ -1075,6 +1104,7 @@ class UserDefinedPdu(Pdu):
1075
1104
  self.cddType = value
1076
1105
  return self
1077
1106
 
1107
+
1078
1108
  class GeneralPurposePdu(Pdu):
1079
1109
  def __init__(self, parent: ARObject, short_name: str):
1080
1110
  super().__init__(parent, short_name)
@@ -1097,7 +1127,8 @@ class GeneralPurposePdu(Pdu):
1097
1127
  if value is not None:
1098
1128
  self.length = value
1099
1129
  return self
1100
-
1130
+
1131
+
1101
1132
  class SecureCommunicationAuthenticationProps(Identifiable):
1102
1133
  def __init__(self, parent: ARObject, short_name: str):
1103
1134
  super().__init__(parent, short_name)
@@ -1120,7 +1151,8 @@ class SecureCommunicationAuthenticationProps(Identifiable):
1120
1151
  if value is not None:
1121
1152
  self.authInfoTxLength = value
1122
1153
  return self
1123
-
1154
+
1155
+
1124
1156
  class SecureCommunicationFreshnessProps(Identifiable):
1125
1157
  def __init__(self, parent: ARObject, short_name: str):
1126
1158
  super().__init__(parent, short_name)
@@ -1171,6 +1203,7 @@ class SecureCommunicationFreshnessProps(Identifiable):
1171
1203
  self.useFreshnessTimestamp = value
1172
1204
  return self
1173
1205
 
1206
+
1174
1207
  class SecureCommunicationPropsSet(Identifiable):
1175
1208
  def __init__(self, parent: ARObject, short_name: str):
1176
1209
  super().__init__(parent, short_name)