@@ 1504-1572 (lines=69) @@ | ||
1501 | __repr__ = __str__ |
|
1502 | ||
1503 | ||
1504 | class ResponseHeader(FrozenClass): |
|
1505 | ''' |
|
1506 | The header passed with every server response. |
|
1507 | ||
1508 | :ivar Timestamp: |
|
1509 | :vartype Timestamp: DateTime |
|
1510 | :ivar RequestHandle: |
|
1511 | :vartype RequestHandle: UInt32 |
|
1512 | :ivar ServiceResult: |
|
1513 | :vartype ServiceResult: StatusCode |
|
1514 | :ivar ServiceDiagnostics: |
|
1515 | :vartype ServiceDiagnostics: DiagnosticInfo |
|
1516 | :ivar StringTable: |
|
1517 | :vartype StringTable: String |
|
1518 | :ivar AdditionalHeader: |
|
1519 | :vartype AdditionalHeader: ExtensionObject |
|
1520 | ''' |
|
1521 | ||
1522 | ua_types = [ |
|
1523 | ||
1524 | ('Timestamp', 'DateTime'), |
|
1525 | ('RequestHandle', 'UInt32'), |
|
1526 | ('ServiceResult', 'StatusCode'), |
|
1527 | ('ServiceDiagnostics', 'DiagnosticInfo'), |
|
1528 | ('StringTable', 'ListOfString'), |
|
1529 | ('AdditionalHeader', 'ExtensionObject'), |
|
1530 | ] |
|
1531 | ||
1532 | def __init__(self): |
|
1533 | self.Timestamp = datetime.utcnow() |
|
1534 | self.RequestHandle = 0 |
|
1535 | self.ServiceResult = StatusCode() |
|
1536 | self.ServiceDiagnostics = DiagnosticInfo() |
|
1537 | self.StringTable = [] |
|
1538 | self.AdditionalHeader = ExtensionObject() |
|
1539 | self._freeze = True |
|
1540 | ||
1541 | def to_binary(self): |
|
1542 | packet = [] |
|
1543 | packet.append(uabin.Primitives.DateTime.pack(self.Timestamp)) |
|
1544 | packet.append(uabin.Primitives.UInt32.pack(self.RequestHandle)) |
|
1545 | packet.append(self.ServiceResult.to_binary()) |
|
1546 | packet.append(self.ServiceDiagnostics.to_binary()) |
|
1547 | packet.append(uabin.Primitives.Int32.pack(len(self.StringTable))) |
|
1548 | for fieldname in self.StringTable: |
|
1549 | packet.append(uabin.Primitives.String.pack(fieldname)) |
|
1550 | packet.append(uabin.extensionobject_to_binary(self.AdditionalHeader)) |
|
1551 | return b''.join(packet) |
|
1552 | ||
1553 | @staticmethod |
|
1554 | def from_binary(data): |
|
1555 | obj = ResponseHeader() |
|
1556 | self.Timestamp = uabin.Primitives.DateTime.unpack(data) |
|
1557 | self.RequestHandle = uabin.Primitives.UInt32.unpack(data) |
|
1558 | obj.ServiceResult = StatusCode.from_binary(data) |
|
1559 | obj.ServiceDiagnostics = DiagnosticInfo.from_binary(data) |
|
1560 | obj.StringTable = uabin.Primitives.String.unpack_array(data) |
|
1561 | obj.AdditionalHeader = uabin.extensionobject_from_binary(data) |
|
1562 | return obj |
|
1563 | ||
1564 | def __str__(self): |
|
1565 | return 'ResponseHeader(' + 'Timestamp:' + str(self.Timestamp) + ', ' + \ |
|
1566 | 'RequestHandle:' + str(self.RequestHandle) + ', ' + \ |
|
1567 | 'ServiceResult:' + str(self.ServiceResult) + ', ' + \ |
|
1568 | 'ServiceDiagnostics:' + str(self.ServiceDiagnostics) + ', ' + \ |
|
1569 | 'StringTable:' + str(self.StringTable) + ', ' + \ |
|
1570 | 'AdditionalHeader:' + str(self.AdditionalHeader) + ')' |
|
1571 | ||
1572 | __repr__ = __str__ |
|
1573 | ||
1574 | ||
1575 | class ServiceFault(FrozenClass): |
|
@@ 8898-8962 (lines=65) @@ | ||
8895 | __repr__ = __str__ |
|
8896 | ||
8897 | ||
8898 | class ReadProcessedDetails(FrozenClass): |
|
8899 | ''' |
|
8900 | :ivar StartTime: |
|
8901 | :vartype StartTime: DateTime |
|
8902 | :ivar EndTime: |
|
8903 | :vartype EndTime: DateTime |
|
8904 | :ivar ProcessingInterval: |
|
8905 | :vartype ProcessingInterval: Double |
|
8906 | :ivar AggregateType: |
|
8907 | :vartype AggregateType: NodeId |
|
8908 | :ivar AggregateConfiguration: |
|
8909 | :vartype AggregateConfiguration: AggregateConfiguration |
|
8910 | ''' |
|
8911 | ||
8912 | ua_types = [ |
|
8913 | ||
8914 | ('StartTime', 'DateTime'), |
|
8915 | ('EndTime', 'DateTime'), |
|
8916 | ('ProcessingInterval', 'Double'), |
|
8917 | ('AggregateType', 'ListOfNodeId'), |
|
8918 | ('AggregateConfiguration', 'AggregateConfiguration'), |
|
8919 | ] |
|
8920 | ||
8921 | def __init__(self): |
|
8922 | self.StartTime = datetime.utcnow() |
|
8923 | self.EndTime = datetime.utcnow() |
|
8924 | self.ProcessingInterval = 0 |
|
8925 | self.AggregateType = [] |
|
8926 | self.AggregateConfiguration = AggregateConfiguration() |
|
8927 | self._freeze = True |
|
8928 | ||
8929 | def to_binary(self): |
|
8930 | packet = [] |
|
8931 | packet.append(uabin.Primitives.DateTime.pack(self.StartTime)) |
|
8932 | packet.append(uabin.Primitives.DateTime.pack(self.EndTime)) |
|
8933 | packet.append(uabin.Primitives.Double.pack(self.ProcessingInterval)) |
|
8934 | packet.append(uabin.Primitives.Int32.pack(len(self.AggregateType))) |
|
8935 | for fieldname in self.AggregateType: |
|
8936 | packet.append(fieldname.to_binary()) |
|
8937 | packet.append(self.AggregateConfiguration.to_binary()) |
|
8938 | return b''.join(packet) |
|
8939 | ||
8940 | @staticmethod |
|
8941 | def from_binary(data): |
|
8942 | obj = ReadProcessedDetails() |
|
8943 | self.StartTime = uabin.Primitives.DateTime.unpack(data) |
|
8944 | self.EndTime = uabin.Primitives.DateTime.unpack(data) |
|
8945 | self.ProcessingInterval = uabin.Primitives.Double.unpack(data) |
|
8946 | length = uabin.Primitives.Int32.unpack(data) |
|
8947 | array = [] |
|
8948 | if length != -1: |
|
8949 | for _ in range(0, length): |
|
8950 | array.append(NodeId.from_binary(data)) |
|
8951 | obj.AggregateType = array |
|
8952 | obj.AggregateConfiguration = AggregateConfiguration.from_binary(data) |
|
8953 | return obj |
|
8954 | ||
8955 | def __str__(self): |
|
8956 | return 'ReadProcessedDetails(' + 'StartTime:' + str(self.StartTime) + ', ' + \ |
|
8957 | 'EndTime:' + str(self.EndTime) + ', ' + \ |
|
8958 | 'ProcessingInterval:' + str(self.ProcessingInterval) + ', ' + \ |
|
8959 | 'AggregateType:' + str(self.AggregateType) + ', ' + \ |
|
8960 | 'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')' |
|
8961 | ||
8962 | __repr__ = __str__ |
|
8963 | ||
8964 | ||
8965 | class ReadAtTimeDetails(FrozenClass): |