@@ 912-977 (lines=66) @@ | ||
909 | __repr__ = __str__ |
|
910 | ||
911 | ||
912 | class Argument(FrozenClass): |
|
913 | ''' |
|
914 | An argument for a method. |
|
915 | ||
916 | :ivar Name: |
|
917 | :vartype Name: String |
|
918 | :ivar DataType: |
|
919 | :vartype DataType: NodeId |
|
920 | :ivar ValueRank: |
|
921 | :vartype ValueRank: Int32 |
|
922 | :ivar ArrayDimensions: |
|
923 | :vartype ArrayDimensions: UInt32 |
|
924 | :ivar Description: |
|
925 | :vartype Description: LocalizedText |
|
926 | ''' |
|
927 | ||
928 | ua_types = { |
|
929 | 'Name': 'String', |
|
930 | 'DataType': 'NodeId', |
|
931 | 'ValueRank': 'Int32', |
|
932 | 'ArrayDimensions': 'UInt32', |
|
933 | 'Description': 'LocalizedText', |
|
934 | } |
|
935 | ||
936 | def __init__(self, binary=None): |
|
937 | if binary is not None: |
|
938 | self._binary_init(binary) |
|
939 | self._freeze = True |
|
940 | return |
|
941 | self.Name = None |
|
942 | self.DataType = NodeId() |
|
943 | self.ValueRank = 0 |
|
944 | self.ArrayDimensions = [] |
|
945 | self.Description = LocalizedText() |
|
946 | self._freeze = True |
|
947 | ||
948 | def to_binary(self): |
|
949 | packet = [] |
|
950 | packet.append(uabin.Primitives.String.pack(self.Name)) |
|
951 | packet.append(self.DataType.to_binary()) |
|
952 | packet.append(uabin.Primitives.Int32.pack(self.ValueRank)) |
|
953 | packet.append(uabin.Primitives.Int32.pack(len(self.ArrayDimensions))) |
|
954 | for fieldname in self.ArrayDimensions: |
|
955 | packet.append(uabin.Primitives.UInt32.pack(fieldname)) |
|
956 | packet.append(self.Description.to_binary()) |
|
957 | return b''.join(packet) |
|
958 | ||
959 | @staticmethod |
|
960 | def from_binary(data): |
|
961 | return Argument(data) |
|
962 | ||
963 | def _binary_init(self, data): |
|
964 | self.Name = uabin.Primitives.String.unpack(data) |
|
965 | self.DataType = NodeId.from_binary(data) |
|
966 | self.ValueRank = uabin.Primitives.Int32.unpack(data) |
|
967 | self.ArrayDimensions = uabin.Primitives.UInt32.unpack_array(data) |
|
968 | self.Description = LocalizedText.from_binary(data) |
|
969 | ||
970 | def __str__(self): |
|
971 | return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \ |
|
972 | 'DataType:' + str(self.DataType) + ', ' + \ |
|
973 | 'ValueRank:' + str(self.ValueRank) + ', ' + \ |
|
974 | 'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \ |
|
975 | 'Description:' + str(self.Description) + ')' |
|
976 | ||
977 | __repr__ = __str__ |
|
978 | ||
979 | ||
980 | class EnumValueType(FrozenClass): |
|
@@ 15809-15872 (lines=64) @@ | ||
15806 | __repr__ = __str__ |
|
15807 | ||
15808 | ||
15809 | class AxisInformation(FrozenClass): |
|
15810 | ''' |
|
15811 | :ivar EngineeringUnits: |
|
15812 | :vartype EngineeringUnits: EUInformation |
|
15813 | :ivar EURange: |
|
15814 | :vartype EURange: Range |
|
15815 | :ivar Title: |
|
15816 | :vartype Title: LocalizedText |
|
15817 | :ivar AxisScaleType: |
|
15818 | :vartype AxisScaleType: AxisScaleEnumeration |
|
15819 | :ivar AxisSteps: |
|
15820 | :vartype AxisSteps: Double |
|
15821 | ''' |
|
15822 | ||
15823 | ua_types = { |
|
15824 | 'EngineeringUnits': 'EUInformation', |
|
15825 | 'EURange': 'Range', |
|
15826 | 'Title': 'LocalizedText', |
|
15827 | 'AxisScaleType': 'AxisScaleEnumeration', |
|
15828 | 'AxisSteps': 'Double', |
|
15829 | } |
|
15830 | ||
15831 | def __init__(self, binary=None): |
|
15832 | if binary is not None: |
|
15833 | self._binary_init(binary) |
|
15834 | self._freeze = True |
|
15835 | return |
|
15836 | self.EngineeringUnits = EUInformation() |
|
15837 | self.EURange = Range() |
|
15838 | self.Title = LocalizedText() |
|
15839 | self.AxisScaleType = AxisScaleEnumeration(0) |
|
15840 | self.AxisSteps = [] |
|
15841 | self._freeze = True |
|
15842 | ||
15843 | def to_binary(self): |
|
15844 | packet = [] |
|
15845 | packet.append(self.EngineeringUnits.to_binary()) |
|
15846 | packet.append(self.EURange.to_binary()) |
|
15847 | packet.append(self.Title.to_binary()) |
|
15848 | packet.append(uabin.Primitives.UInt32.pack(self.AxisScaleType.value)) |
|
15849 | packet.append(uabin.Primitives.Int32.pack(len(self.AxisSteps))) |
|
15850 | for fieldname in self.AxisSteps: |
|
15851 | packet.append(uabin.Primitives.Double.pack(fieldname)) |
|
15852 | return b''.join(packet) |
|
15853 | ||
15854 | @staticmethod |
|
15855 | def from_binary(data): |
|
15856 | return AxisInformation(data) |
|
15857 | ||
15858 | def _binary_init(self, data): |
|
15859 | self.EngineeringUnits = EUInformation.from_binary(data) |
|
15860 | self.EURange = Range.from_binary(data) |
|
15861 | self.Title = LocalizedText.from_binary(data) |
|
15862 | self.AxisScaleType = AxisScaleEnumeration(uabin.Primitives.UInt32.unpack(data)) |
|
15863 | self.AxisSteps = uabin.Primitives.Double.unpack_array(data) |
|
15864 | ||
15865 | def __str__(self): |
|
15866 | return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \ |
|
15867 | 'EURange:' + str(self.EURange) + ', ' + \ |
|
15868 | 'Title:' + str(self.Title) + ', ' + \ |
|
15869 | 'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \ |
|
15870 | 'AxisSteps:' + str(self.AxisSteps) + ')' |
|
15871 | ||
15872 | __repr__ = __str__ |
|
15873 | ||
15874 | ||
15875 | class XVType(FrozenClass): |