@@ 910-975 (lines=66) @@ | ||
907 | __repr__ = __str__ |
|
908 | ||
909 | ||
910 | class Argument(FrozenClass): |
|
911 | ''' |
|
912 | An argument for a method. |
|
913 | ||
914 | :ivar Name: |
|
915 | :vartype Name: String |
|
916 | :ivar DataType: |
|
917 | :vartype DataType: NodeId |
|
918 | :ivar ValueRank: |
|
919 | :vartype ValueRank: Int32 |
|
920 | :ivar ArrayDimensions: |
|
921 | :vartype ArrayDimensions: UInt32 |
|
922 | :ivar Description: |
|
923 | :vartype Description: LocalizedText |
|
924 | ''' |
|
925 | ||
926 | ua_types = { |
|
927 | 'Name': 'String', |
|
928 | 'DataType': 'NodeId', |
|
929 | 'ValueRank': 'Int32', |
|
930 | 'ArrayDimensions': 'UInt32', |
|
931 | 'Description': 'LocalizedText', |
|
932 | } |
|
933 | ||
934 | def __init__(self, binary=None): |
|
935 | if binary is not None: |
|
936 | self._binary_init(binary) |
|
937 | self._freeze = True |
|
938 | return |
|
939 | self.Name = None |
|
940 | self.DataType = NodeId() |
|
941 | self.ValueRank = 0 |
|
942 | self.ArrayDimensions = [] |
|
943 | self.Description = LocalizedText() |
|
944 | self._freeze = True |
|
945 | ||
946 | def to_binary(self): |
|
947 | packet = [] |
|
948 | packet.append(uabin.Primitives.String.pack(self.Name)) |
|
949 | packet.append(self.DataType.to_binary()) |
|
950 | packet.append(uabin.Primitives.Int32.pack(self.ValueRank)) |
|
951 | packet.append(uabin.Primitives.Int32.pack(len(self.ArrayDimensions))) |
|
952 | for fieldname in self.ArrayDimensions: |
|
953 | packet.append(uabin.Primitives.UInt32.pack(fieldname)) |
|
954 | packet.append(self.Description.to_binary()) |
|
955 | return b''.join(packet) |
|
956 | ||
957 | @staticmethod |
|
958 | def from_binary(data): |
|
959 | return Argument(data) |
|
960 | ||
961 | def _binary_init(self, data): |
|
962 | self.Name = uabin.Primitives.String.unpack(data) |
|
963 | self.DataType = NodeId.from_binary(data) |
|
964 | self.ValueRank = uabin.Primitives.Int32.unpack(data) |
|
965 | self.ArrayDimensions = uabin.Primitives.UInt32.unpack_array(data) |
|
966 | self.Description = LocalizedText.from_binary(data) |
|
967 | ||
968 | def __str__(self): |
|
969 | return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \ |
|
970 | 'DataType:' + str(self.DataType) + ', ' + \ |
|
971 | 'ValueRank:' + str(self.ValueRank) + ', ' + \ |
|
972 | 'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \ |
|
973 | 'Description:' + str(self.Description) + ')' |
|
974 | ||
975 | __repr__ = __str__ |
|
976 | ||
977 | ||
978 | class EnumValueType(FrozenClass): |
|
@@ 15843-15906 (lines=64) @@ | ||
15840 | __repr__ = __str__ |
|
15841 | ||
15842 | ||
15843 | class AxisInformation(FrozenClass): |
|
15844 | ''' |
|
15845 | :ivar EngineeringUnits: |
|
15846 | :vartype EngineeringUnits: EUInformation |
|
15847 | :ivar EURange: |
|
15848 | :vartype EURange: Range |
|
15849 | :ivar Title: |
|
15850 | :vartype Title: LocalizedText |
|
15851 | :ivar AxisScaleType: |
|
15852 | :vartype AxisScaleType: AxisScaleEnumeration |
|
15853 | :ivar AxisSteps: |
|
15854 | :vartype AxisSteps: Double |
|
15855 | ''' |
|
15856 | ||
15857 | ua_types = { |
|
15858 | 'EngineeringUnits': 'EUInformation', |
|
15859 | 'EURange': 'Range', |
|
15860 | 'Title': 'LocalizedText', |
|
15861 | 'AxisScaleType': 'AxisScaleEnumeration', |
|
15862 | 'AxisSteps': 'Double', |
|
15863 | } |
|
15864 | ||
15865 | def __init__(self, binary=None): |
|
15866 | if binary is not None: |
|
15867 | self._binary_init(binary) |
|
15868 | self._freeze = True |
|
15869 | return |
|
15870 | self.EngineeringUnits = EUInformation() |
|
15871 | self.EURange = Range() |
|
15872 | self.Title = LocalizedText() |
|
15873 | self.AxisScaleType = AxisScaleEnumeration(0) |
|
15874 | self.AxisSteps = [] |
|
15875 | self._freeze = True |
|
15876 | ||
15877 | def to_binary(self): |
|
15878 | packet = [] |
|
15879 | packet.append(self.EngineeringUnits.to_binary()) |
|
15880 | packet.append(self.EURange.to_binary()) |
|
15881 | packet.append(self.Title.to_binary()) |
|
15882 | packet.append(uabin.Primitives.UInt32.pack(self.AxisScaleType.value)) |
|
15883 | packet.append(uabin.Primitives.Int32.pack(len(self.AxisSteps))) |
|
15884 | for fieldname in self.AxisSteps: |
|
15885 | packet.append(uabin.Primitives.Double.pack(fieldname)) |
|
15886 | return b''.join(packet) |
|
15887 | ||
15888 | @staticmethod |
|
15889 | def from_binary(data): |
|
15890 | return AxisInformation(data) |
|
15891 | ||
15892 | def _binary_init(self, data): |
|
15893 | self.EngineeringUnits = EUInformation.from_binary(data) |
|
15894 | self.EURange = Range.from_binary(data) |
|
15895 | self.Title = LocalizedText.from_binary(data) |
|
15896 | self.AxisScaleType = AxisScaleEnumeration(uabin.Primitives.UInt32.unpack(data)) |
|
15897 | self.AxisSteps = uabin.Primitives.Double.unpack_array(data) |
|
15898 | ||
15899 | def __str__(self): |
|
15900 | return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \ |
|
15901 | 'EURange:' + str(self.EURange) + ', ' + \ |
|
15902 | 'Title:' + str(self.Title) + ', ' + \ |
|
15903 | 'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \ |
|
15904 | 'AxisSteps:' + str(self.AxisSteps) + ')' |
|
15905 | ||
15906 | __repr__ = __str__ |
|
15907 | ||
15908 | ||
15909 | class XVType(FrozenClass): |