Passed
Push — dev ( b98292 )
by Olivier
02:18
created

opcua.FindServersParameters.to_binary()   A

Complexity

Conditions 3

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 3.009
Metric Value
dl 0
loc 10
ccs 9
cts 10
cp 0.9
rs 9.4286
cc 3
crap 3.009
1
'''
2
Autogenerate code from xml spec
3
'''
4
5 1
from datetime import datetime
6
7 1
from opcua.utils import Buffer
8 1
from opcua.uatypes import *
9 1
from opcua.object_ids import ObjectIds
10
11
12 1
class NamingRuleType(object):
13
    '''
14
    :ivar Mandatory:
15
    :vartype Mandatory: 1
16
    :ivar Optional:
17
    :vartype Optional: 2
18
    :ivar Constraint:
19
    :vartype Constraint: 3
20
    '''
21 1
    Mandatory = 1
22 1
    Optional = 2
23 1
    Constraint = 3
24
25
26 1
class OpenFileMode(object):
27
    '''
28
    :ivar Read:
29
    :vartype Read: 1
30
    :ivar Write:
31
    :vartype Write: 2
32
    :ivar EraseExisting:
33
    :vartype EraseExisting: 4
34
    :ivar Append:
35
    :vartype Append: 8
36
    '''
37 1
    Read = 1
38 1
    Write = 2
39 1
    EraseExisting = 4
40 1
    Append = 8
41
42
43 1
class TrustListMasks(object):
44
    '''
45
    :ivar None_:
46
    :vartype None_: 0
47
    :ivar TrustedCertificates:
48
    :vartype TrustedCertificates: 1
49
    :ivar TrustedCrls:
50
    :vartype TrustedCrls: 2
51
    :ivar IssuerCertificates:
52
    :vartype IssuerCertificates: 4
53
    :ivar IssuerCrls:
54
    :vartype IssuerCrls: 8
55
    :ivar All:
56
    :vartype All: 15
57
    '''
58 1
    None_ = 0
59 1
    TrustedCertificates = 1
60 1
    TrustedCrls = 2
61 1
    IssuerCertificates = 4
62 1
    IssuerCrls = 8
63 1
    All = 15
64
65
66 1
class IdType(object):
67
    '''
68
    The type of identifier used in a node id.
69
70
    :ivar Numeric:
71
    :vartype Numeric: 0
72
    :ivar String:
73
    :vartype String: 1
74
    :ivar Guid:
75
    :vartype Guid: 2
76
    :ivar Opaque:
77
    :vartype Opaque: 3
78
    '''
79 1
    Numeric = 0
80 1
    String = 1
81 1
    Guid = 2
82 1
    Opaque = 3
83
84
85 1
class NodeClass(object):
86
    '''
87
    A mask specifying the class of the node.
88
89
    :ivar Unspecified:
90
    :vartype Unspecified: 0
91
    :ivar Object:
92
    :vartype Object: 1
93
    :ivar Variable:
94
    :vartype Variable: 2
95
    :ivar Method:
96
    :vartype Method: 4
97
    :ivar ObjectType:
98
    :vartype ObjectType: 8
99
    :ivar VariableType:
100
    :vartype VariableType: 16
101
    :ivar ReferenceType:
102
    :vartype ReferenceType: 32
103
    :ivar DataType:
104
    :vartype DataType: 64
105
    :ivar View:
106
    :vartype View: 128
107
    '''
108 1
    Unspecified = 0
109 1
    Object = 1
110 1
    Variable = 2
111 1
    Method = 4
112 1
    ObjectType = 8
113 1
    VariableType = 16
114 1
    ReferenceType = 32
115 1
    DataType = 64
116 1
    View = 128
117
118
119 1
class ApplicationType(object):
120
    '''
121
    The types of applications.
122
123
    :ivar Server:
124
    :vartype Server: 0
125
    :ivar Client:
126
    :vartype Client: 1
127
    :ivar ClientAndServer:
128
    :vartype ClientAndServer: 2
129
    :ivar DiscoveryServer:
130
    :vartype DiscoveryServer: 3
131
    '''
132 1
    Server = 0
133 1
    Client = 1
134 1
    ClientAndServer = 2
135 1
    DiscoveryServer = 3
136
137
138 1
class MessageSecurityMode(object):
139
    '''
140
    The type of security to use on a message.
141
142
    :ivar Invalid:
143
    :vartype Invalid: 0
144
    :ivar None_:
145
    :vartype None_: 1
146
    :ivar Sign:
147
    :vartype Sign: 2
148
    :ivar SignAndEncrypt:
149
    :vartype SignAndEncrypt: 3
150
    '''
151 1
    Invalid = 0
152 1
    None_ = 1
153 1
    Sign = 2
154 1
    SignAndEncrypt = 3
155
156
157 1
class UserTokenType(object):
158
    '''
159
    The possible user token types.
160
161
    :ivar Anonymous:
162
    :vartype Anonymous: 0
163
    :ivar UserName:
164
    :vartype UserName: 1
165
    :ivar Certificate:
166
    :vartype Certificate: 2
167
    :ivar IssuedToken:
168
    :vartype IssuedToken: 3
169
    :ivar Kerberos:
170
    :vartype Kerberos: 4
171
    '''
172 1
    Anonymous = 0
173 1
    UserName = 1
174 1
    Certificate = 2
175 1
    IssuedToken = 3
176 1
    Kerberos = 4
177
178
179 1
class SecurityTokenRequestType(object):
180
    '''
181
    Indicates whether a token if being created or renewed.
182
183
    :ivar Issue:
184
    :vartype Issue: 0
185
    :ivar Renew:
186
    :vartype Renew: 1
187
    '''
188 1
    Issue = 0
189 1
    Renew = 1
190
191
192 1
class NodeAttributesMask(object):
193
    '''
194
    The bits used to specify default attributes for a new node.
195
196
    :ivar None_:
197
    :vartype None_: 0
198
    :ivar AccessLevel:
199
    :vartype AccessLevel: 1
200
    :ivar ArrayDimensions:
201
    :vartype ArrayDimensions: 2
202
    :ivar BrowseName:
203
    :vartype BrowseName: 4
204
    :ivar ContainsNoLoops:
205
    :vartype ContainsNoLoops: 8
206
    :ivar DataType:
207
    :vartype DataType: 16
208
    :ivar Description:
209
    :vartype Description: 32
210
    :ivar DisplayName:
211
    :vartype DisplayName: 64
212
    :ivar EventNotifier:
213
    :vartype EventNotifier: 128
214
    :ivar Executable:
215
    :vartype Executable: 256
216
    :ivar Historizing:
217
    :vartype Historizing: 512
218
    :ivar InverseName:
219
    :vartype InverseName: 1024
220
    :ivar IsAbstract:
221
    :vartype IsAbstract: 2048
222
    :ivar MinimumSamplingInterval:
223
    :vartype MinimumSamplingInterval: 4096
224
    :ivar NodeClass:
225
    :vartype NodeClass: 8192
226
    :ivar NodeId:
227
    :vartype NodeId: 16384
228
    :ivar Symmetric:
229
    :vartype Symmetric: 32768
230
    :ivar UserAccessLevel:
231
    :vartype UserAccessLevel: 65536
232
    :ivar UserExecutable:
233
    :vartype UserExecutable: 131072
234
    :ivar UserWriteMask:
235
    :vartype UserWriteMask: 262144
236
    :ivar ValueRank:
237
    :vartype ValueRank: 524288
238
    :ivar WriteMask:
239
    :vartype WriteMask: 1048576
240
    :ivar Value:
241
    :vartype Value: 2097152
242
    :ivar All:
243
    :vartype All: 4194303
244
    :ivar BaseNode:
245
    :vartype BaseNode: 1335396
246
    :ivar Object:
247
    :vartype Object: 1335524
248
    :ivar ObjectTypeOrDataType:
249
    :vartype ObjectTypeOrDataType: 1337444
250
    :ivar Variable:
251
    :vartype Variable: 4026999
252
    :ivar VariableType:
253
    :vartype VariableType: 3958902
254
    :ivar Method:
255
    :vartype Method: 1466724
256
    :ivar ReferenceType:
257
    :vartype ReferenceType: 1371236
258
    :ivar View:
259
    :vartype View: 1335532
260
    '''
261 1
    None_ = 0
262 1
    AccessLevel = 1
263 1
    ArrayDimensions = 2
264 1
    BrowseName = 4
265 1
    ContainsNoLoops = 8
266 1
    DataType = 16
267 1
    Description = 32
268 1
    DisplayName = 64
269 1
    EventNotifier = 128
270 1
    Executable = 256
271 1
    Historizing = 512
272 1
    InverseName = 1024
273 1
    IsAbstract = 2048
274 1
    MinimumSamplingInterval = 4096
275 1
    NodeClass = 8192
276 1
    NodeId = 16384
277 1
    Symmetric = 32768
278 1
    UserAccessLevel = 65536
279 1
    UserExecutable = 131072
280 1
    UserWriteMask = 262144
281 1
    ValueRank = 524288
282 1
    WriteMask = 1048576
283 1
    Value = 2097152
284 1
    All = 4194303
285 1
    BaseNode = 1335396
286 1
    Object = 1335524
287 1
    ObjectTypeOrDataType = 1337444
288 1
    Variable = 4026999
289 1
    VariableType = 3958902
290 1
    Method = 1466724
291 1
    ReferenceType = 1371236
292 1
    View = 1335532
293
294
295 1
class AttributeWriteMask(object):
296
    '''
297
    Define bits used to indicate which attributes are writable.
298
299
    :ivar None_:
300
    :vartype None_: 0
301
    :ivar AccessLevel:
302
    :vartype AccessLevel: 1
303
    :ivar ArrayDimensions:
304
    :vartype ArrayDimensions: 2
305
    :ivar BrowseName:
306
    :vartype BrowseName: 4
307
    :ivar ContainsNoLoops:
308
    :vartype ContainsNoLoops: 8
309
    :ivar DataType:
310
    :vartype DataType: 16
311
    :ivar Description:
312
    :vartype Description: 32
313
    :ivar DisplayName:
314
    :vartype DisplayName: 64
315
    :ivar EventNotifier:
316
    :vartype EventNotifier: 128
317
    :ivar Executable:
318
    :vartype Executable: 256
319
    :ivar Historizing:
320
    :vartype Historizing: 512
321
    :ivar InverseName:
322
    :vartype InverseName: 1024
323
    :ivar IsAbstract:
324
    :vartype IsAbstract: 2048
325
    :ivar MinimumSamplingInterval:
326
    :vartype MinimumSamplingInterval: 4096
327
    :ivar NodeClass:
328
    :vartype NodeClass: 8192
329
    :ivar NodeId:
330
    :vartype NodeId: 16384
331
    :ivar Symmetric:
332
    :vartype Symmetric: 32768
333
    :ivar UserAccessLevel:
334
    :vartype UserAccessLevel: 65536
335
    :ivar UserExecutable:
336
    :vartype UserExecutable: 131072
337
    :ivar UserWriteMask:
338
    :vartype UserWriteMask: 262144
339
    :ivar ValueRank:
340
    :vartype ValueRank: 524288
341
    :ivar WriteMask:
342
    :vartype WriteMask: 1048576
343
    :ivar ValueForVariableType:
344
    :vartype ValueForVariableType: 2097152
345
    '''
346 1
    None_ = 0
347 1
    AccessLevel = 1
348 1
    ArrayDimensions = 2
349 1
    BrowseName = 4
350 1
    ContainsNoLoops = 8
351 1
    DataType = 16
352 1
    Description = 32
353 1
    DisplayName = 64
354 1
    EventNotifier = 128
355 1
    Executable = 256
356 1
    Historizing = 512
357 1
    InverseName = 1024
358 1
    IsAbstract = 2048
359 1
    MinimumSamplingInterval = 4096
360 1
    NodeClass = 8192
361 1
    NodeId = 16384
362 1
    Symmetric = 32768
363 1
    UserAccessLevel = 65536
364 1
    UserExecutable = 131072
365 1
    UserWriteMask = 262144
366 1
    ValueRank = 524288
367 1
    WriteMask = 1048576
368 1
    ValueForVariableType = 2097152
369
370
371 1
class BrowseDirection(object):
372
    '''
373
    The directions of the references to return.
374
375
    :ivar Forward:
376
    :vartype Forward: 0
377
    :ivar Inverse:
378
    :vartype Inverse: 1
379
    :ivar Both:
380
    :vartype Both: 2
381
    '''
382 1
    Forward = 0
383 1
    Inverse = 1
384 1
    Both = 2
385
386
387 1
class BrowseResultMask(object):
388
    '''
389
    A bit mask which specifies what should be returned in a browse response.
390
391
    :ivar None_:
392
    :vartype None_: 0
393
    :ivar ReferenceTypeId:
394
    :vartype ReferenceTypeId: 1
395
    :ivar IsForward:
396
    :vartype IsForward: 2
397
    :ivar NodeClass:
398
    :vartype NodeClass: 4
399
    :ivar BrowseName:
400
    :vartype BrowseName: 8
401
    :ivar DisplayName:
402
    :vartype DisplayName: 16
403
    :ivar TypeDefinition:
404
    :vartype TypeDefinition: 32
405
    :ivar All:
406
    :vartype All: 63
407
    :ivar ReferenceTypeInfo:
408
    :vartype ReferenceTypeInfo: 3
409
    :ivar TargetInfo:
410
    :vartype TargetInfo: 60
411
    '''
412 1
    None_ = 0
413 1
    ReferenceTypeId = 1
414 1
    IsForward = 2
415 1
    NodeClass = 4
416 1
    BrowseName = 8
417 1
    DisplayName = 16
418 1
    TypeDefinition = 32
419 1
    All = 63
420 1
    ReferenceTypeInfo = 3
421 1
    TargetInfo = 60
422
423
424 1
class ComplianceLevel(object):
425
    '''
426
    :ivar Untested:
427
    :vartype Untested: 0
428
    :ivar Partial:
429
    :vartype Partial: 1
430
    :ivar SelfTested:
431
    :vartype SelfTested: 2
432
    :ivar Certified:
433
    :vartype Certified: 3
434
    '''
435 1
    Untested = 0
436 1
    Partial = 1
437 1
    SelfTested = 2
438 1
    Certified = 3
439
440
441 1
class FilterOperator(object):
442
    '''
443
    :ivar Equals:
444
    :vartype Equals: 0
445
    :ivar IsNull:
446
    :vartype IsNull: 1
447
    :ivar GreaterThan:
448
    :vartype GreaterThan: 2
449
    :ivar LessThan:
450
    :vartype LessThan: 3
451
    :ivar GreaterThanOrEqual:
452
    :vartype GreaterThanOrEqual: 4
453
    :ivar LessThanOrEqual:
454
    :vartype LessThanOrEqual: 5
455
    :ivar Like:
456
    :vartype Like: 6
457
    :ivar Not:
458
    :vartype Not: 7
459
    :ivar Between:
460
    :vartype Between: 8
461
    :ivar InList:
462
    :vartype InList: 9
463
    :ivar And:
464
    :vartype And: 10
465
    :ivar Or:
466
    :vartype Or: 11
467
    :ivar Cast:
468
    :vartype Cast: 12
469
    :ivar InView:
470
    :vartype InView: 13
471
    :ivar OfType:
472
    :vartype OfType: 14
473
    :ivar RelatedTo:
474
    :vartype RelatedTo: 15
475
    :ivar BitwiseAnd:
476
    :vartype BitwiseAnd: 16
477
    :ivar BitwiseOr:
478
    :vartype BitwiseOr: 17
479
    '''
480 1
    Equals = 0
481 1
    IsNull = 1
482 1
    GreaterThan = 2
483 1
    LessThan = 3
484 1
    GreaterThanOrEqual = 4
485 1
    LessThanOrEqual = 5
486 1
    Like = 6
487 1
    Not = 7
488 1
    Between = 8
489 1
    InList = 9
490 1
    And = 10
491 1
    Or = 11
492 1
    Cast = 12
493 1
    InView = 13
494 1
    OfType = 14
495 1
    RelatedTo = 15
496 1
    BitwiseAnd = 16
497 1
    BitwiseOr = 17
498
499
500 1
class TimestampsToReturn(object):
501
    '''
502
    :ivar Source:
503
    :vartype Source: 0
504
    :ivar Server:
505
    :vartype Server: 1
506
    :ivar Both:
507
    :vartype Both: 2
508
    :ivar Neither:
509
    :vartype Neither: 3
510
    '''
511 1
    Source = 0
512 1
    Server = 1
513 1
    Both = 2
514 1
    Neither = 3
515
516
517 1
class HistoryUpdateType(object):
518
    '''
519
    :ivar Insert:
520
    :vartype Insert: 1
521
    :ivar Replace:
522
    :vartype Replace: 2
523
    :ivar Update:
524
    :vartype Update: 3
525
    :ivar Delete:
526
    :vartype Delete: 4
527
    '''
528 1
    Insert = 1
529 1
    Replace = 2
530 1
    Update = 3
531 1
    Delete = 4
532
533
534 1
class PerformUpdateType(object):
535
    '''
536
    :ivar Insert:
537
    :vartype Insert: 1
538
    :ivar Replace:
539
    :vartype Replace: 2
540
    :ivar Update:
541
    :vartype Update: 3
542
    :ivar Remove:
543
    :vartype Remove: 4
544
    '''
545 1
    Insert = 1
546 1
    Replace = 2
547 1
    Update = 3
548 1
    Remove = 4
549
550
551 1
class MonitoringMode(object):
552
    '''
553
    :ivar Disabled:
554
    :vartype Disabled: 0
555
    :ivar Sampling:
556
    :vartype Sampling: 1
557
    :ivar Reporting:
558
    :vartype Reporting: 2
559
    '''
560 1
    Disabled = 0
561 1
    Sampling = 1
562 1
    Reporting = 2
563
564
565 1
class DataChangeTrigger(object):
566
    '''
567
    :ivar Status:
568
    :vartype Status: 0
569
    :ivar StatusValue:
570
    :vartype StatusValue: 1
571
    :ivar StatusValueTimestamp:
572
    :vartype StatusValueTimestamp: 2
573
    '''
574 1
    Status = 0
575 1
    StatusValue = 1
576 1
    StatusValueTimestamp = 2
577
578
579 1
class DeadbandType(object):
580
    '''
581
    :ivar None_:
582
    :vartype None_: 0
583
    :ivar Absolute:
584
    :vartype Absolute: 1
585
    :ivar Percent:
586
    :vartype Percent: 2
587
    '''
588 1
    None_ = 0
589 1
    Absolute = 1
590 1
    Percent = 2
591
592
593 1
class EnumeratedTestType(object):
594
    '''
595
    A simple enumerated type used for testing.
596
597
    :ivar Red:
598
    :vartype Red: 1
599
    :ivar Yellow:
600
    :vartype Yellow: 4
601
    :ivar Green:
602
    :vartype Green: 5
603
    '''
604 1
    Red = 1
605 1
    Yellow = 4
606 1
    Green = 5
607
608
609 1
class RedundancySupport(object):
610
    '''
611
    :ivar None_:
612
    :vartype None_: 0
613
    :ivar Cold:
614
    :vartype Cold: 1
615
    :ivar Warm:
616
    :vartype Warm: 2
617
    :ivar Hot:
618
    :vartype Hot: 3
619
    :ivar Transparent:
620
    :vartype Transparent: 4
621
    :ivar HotAndMirrored:
622
    :vartype HotAndMirrored: 5
623
    '''
624 1
    None_ = 0
625 1
    Cold = 1
626 1
    Warm = 2
627 1
    Hot = 3
628 1
    Transparent = 4
629 1
    HotAndMirrored = 5
630
631
632 1
class ServerState(object):
633
    '''
634
    :ivar Running:
635
    :vartype Running: 0
636
    :ivar Failed:
637
    :vartype Failed: 1
638
    :ivar NoConfiguration:
639
    :vartype NoConfiguration: 2
640
    :ivar Suspended:
641
    :vartype Suspended: 3
642
    :ivar Shutdown:
643
    :vartype Shutdown: 4
644
    :ivar Test:
645
    :vartype Test: 5
646
    :ivar CommunicationFault:
647
    :vartype CommunicationFault: 6
648
    :ivar Unknown:
649
    :vartype Unknown: 7
650
    '''
651 1
    Running = 0
652 1
    Failed = 1
653 1
    NoConfiguration = 2
654 1
    Suspended = 3
655 1
    Shutdown = 4
656 1
    Test = 5
657 1
    CommunicationFault = 6
658 1
    Unknown = 7
659
660
661 1
class ModelChangeStructureVerbMask(object):
662
    '''
663
    :ivar NodeAdded:
664
    :vartype NodeAdded: 1
665
    :ivar NodeDeleted:
666
    :vartype NodeDeleted: 2
667
    :ivar ReferenceAdded:
668
    :vartype ReferenceAdded: 4
669
    :ivar ReferenceDeleted:
670
    :vartype ReferenceDeleted: 8
671
    :ivar DataTypeChanged:
672
    :vartype DataTypeChanged: 16
673
    '''
674 1
    NodeAdded = 1
675 1
    NodeDeleted = 2
676 1
    ReferenceAdded = 4
677 1
    ReferenceDeleted = 8
678 1
    DataTypeChanged = 16
679
680
681 1
class AxisScaleEnumeration(object):
682
    '''
683
    :ivar Linear:
684
    :vartype Linear: 0
685
    :ivar Log:
686
    :vartype Log: 1
687
    :ivar Ln:
688
    :vartype Ln: 2
689
    '''
690 1
    Linear = 0
691 1
    Log = 1
692 1
    Ln = 2
693
694
695 1
class ExceptionDeviationFormat(object):
696
    '''
697
    :ivar AbsoluteValue:
698
    :vartype AbsoluteValue: 0
699
    :ivar PercentOfValue:
700
    :vartype PercentOfValue: 1
701
    :ivar PercentOfRange:
702
    :vartype PercentOfRange: 2
703
    :ivar PercentOfEURange:
704
    :vartype PercentOfEURange: 3
705
    :ivar Unknown:
706
    :vartype Unknown: 4
707
    '''
708 1
    AbsoluteValue = 0
709 1
    PercentOfValue = 1
710 1
    PercentOfRange = 2
711 1
    PercentOfEURange = 3
712 1
    Unknown = 4
713
714
715 1
class XmlElement(FrozenClass):
716
    '''
717
    An XML element encoded as a UTF-8 string.
718
719
    :ivar Length:
720
    :vartype Length: Int32
721
    :ivar Value:
722
    :vartype Value: Char
723
    '''
724 1
    def __init__(self):
725
        self.Length = 0
726
        self.Value = []
727
        self._freeze()
728
729 1
    def to_binary(self):
730
        packet = []
731
        packet.append(pack_uatype('Int32', self.Length))
732
        packet.append(struct.pack('<i', len(self.Value)))
733
        for fieldname in self.Value:
734
            packet.append(pack_uatype('Char', fieldname))
735
        return b''.join(packet)
736
737 1
    @staticmethod
738
    def from_binary(data):
739
        obj = XmlElement()
740
        obj.Length = unpack_uatype('Int32', data)
741
        obj.Value = unpack_uatype_array('Char', data)
742
        return obj
743
744 1
    def __str__(self):
745
        return 'XmlElement(' + 'Length:' + str(self.Length) + ', ' + \
746
               'Value:' + str(self.Value) + ')'
747
748 1
    __repr__ = __str__
749
750
751 1
class DiagnosticInfo(FrozenClass):
752
    '''
753
    A recursive structure containing diagnostic information associated with a status code.
754
755
    :ivar Encoding:
756
    :vartype Encoding: UInt8
757
    :ivar SymbolicId:
758
    :vartype SymbolicId: Int32
759
    :ivar NamespaceURI:
760
    :vartype NamespaceURI: Int32
761
    :ivar Locale:
762
    :vartype Locale: Int32
763
    :ivar LocalizedText:
764
    :vartype LocalizedText: Int32
765
    :ivar AdditionalInfo:
766
    :vartype AdditionalInfo: CharArray
767
    :ivar InnerStatusCode:
768
    :vartype InnerStatusCode: StatusCode
769
    :ivar InnerDiagnosticInfo:
770
    :vartype InnerDiagnosticInfo: DiagnosticInfo
771
    '''
772 1
    def __init__(self):
773 1
        self.Encoding = 0
774 1
        self.SymbolicId = 0
775 1
        self.NamespaceURI = 0
776 1
        self.Locale = 0
777 1
        self.LocalizedText = 0
778 1
        self.AdditionalInfo = b''
779 1
        self.InnerStatusCode = StatusCode()
780 1
        self.InnerDiagnosticInfo = None
781 1
        self._freeze()
782
783 1
    def to_binary(self):
784 1
        packet = []
785 1
        if self.SymbolicId: self.Encoding |= (1 << 0)
786 1
        if self.NamespaceURI: self.Encoding |= (1 << 1)
787 1
        if self.Locale: self.Encoding |= (1 << 2)
788 1
        if self.LocalizedText: self.Encoding |= (1 << 3)
789 1
        if self.AdditionalInfo: self.Encoding |= (1 << 4)
790 1
        if self.InnerStatusCode: self.Encoding |= (1 << 5)
791 1
        if self.InnerDiagnosticInfo: self.Encoding |= (1 << 6)
792 1
        packet.append(pack_uatype('UInt8', self.Encoding))
793 1
        if self.SymbolicId: 
794
            packet.append(pack_uatype('Int32', self.SymbolicId))
795 1
        if self.NamespaceURI: 
796
            packet.append(pack_uatype('Int32', self.NamespaceURI))
797 1
        if self.Locale: 
798
            packet.append(pack_uatype('Int32', self.Locale))
799 1
        if self.LocalizedText: 
800
            packet.append(pack_uatype('Int32', self.LocalizedText))
801 1
        if self.AdditionalInfo: 
802
            packet.append(pack_uatype('CharArray', self.AdditionalInfo))
803 1
        if self.InnerStatusCode: 
804 1
            packet.append(self.InnerStatusCode.to_binary())
805 1
        if self.InnerDiagnosticInfo: 
806
            packet.append(self.InnerDiagnosticInfo.to_binary())
807 1
        return b''.join(packet)
808
809 1
    @staticmethod
810
    def from_binary(data):
811 1
        obj = DiagnosticInfo()
812 1
        obj.Encoding = unpack_uatype('UInt8', data)
813 1
        if obj.Encoding & (1 << 0):
814
            obj.SymbolicId = unpack_uatype('Int32', data)
815 1
        if obj.Encoding & (1 << 1):
816
            obj.NamespaceURI = unpack_uatype('Int32', data)
817 1
        if obj.Encoding & (1 << 2):
818
            obj.Locale = unpack_uatype('Int32', data)
819 1
        if obj.Encoding & (1 << 3):
820
            obj.LocalizedText = unpack_uatype('Int32', data)
821 1
        if obj.Encoding & (1 << 4):
822
            obj.AdditionalInfo = unpack_uatype('CharArray', data)
823 1
        if obj.Encoding & (1 << 5):
824 1
            obj.InnerStatusCode = StatusCode.from_binary(data)
825 1
        if obj.Encoding & (1 << 6):
826
            obj.InnerDiagnosticInfo = DiagnosticInfo.from_binary(data)
827 1
        return obj
828
829 1
    def __str__(self):
830
        return 'DiagnosticInfo(' + 'Encoding:' + str(self.Encoding) + ', ' + \
831
               'SymbolicId:' + str(self.SymbolicId) + ', ' + \
832
               'NamespaceURI:' + str(self.NamespaceURI) + ', ' + \
833
               'Locale:' + str(self.Locale) + ', ' + \
834
               'LocalizedText:' + str(self.LocalizedText) + ', ' + \
835
               'AdditionalInfo:' + str(self.AdditionalInfo) + ', ' + \
836
               'InnerStatusCode:' + str(self.InnerStatusCode) + ', ' + \
837
               'InnerDiagnosticInfo:' + str(self.InnerDiagnosticInfo) + ')'
838
839 1
    __repr__ = __str__
840
841
842 1
class TrustListDataType(FrozenClass):
843
    '''
844
    :ivar SpecifiedLists:
845
    :vartype SpecifiedLists: UInt32
846
    :ivar TrustedCertificates:
847
    :vartype TrustedCertificates: ByteString
848
    :ivar TrustedCrls:
849
    :vartype TrustedCrls: ByteString
850
    :ivar IssuerCertificates:
851
    :vartype IssuerCertificates: ByteString
852
    :ivar IssuerCrls:
853
    :vartype IssuerCrls: ByteString
854
    '''
855 1
    def __init__(self):
856
        self.SpecifiedLists = 0
857
        self.TrustedCertificates = []
858
        self.TrustedCrls = []
859
        self.IssuerCertificates = []
860
        self.IssuerCrls = []
861
        self._freeze()
862
863 1
    def to_binary(self):
864
        packet = []
865
        packet.append(pack_uatype('UInt32', self.SpecifiedLists))
866
        packet.append(struct.pack('<i', len(self.TrustedCertificates)))
867
        for fieldname in self.TrustedCertificates:
868
            packet.append(pack_uatype('ByteString', fieldname))
869
        packet.append(struct.pack('<i', len(self.TrustedCrls)))
870
        for fieldname in self.TrustedCrls:
871
            packet.append(pack_uatype('ByteString', fieldname))
872
        packet.append(struct.pack('<i', len(self.IssuerCertificates)))
873
        for fieldname in self.IssuerCertificates:
874
            packet.append(pack_uatype('ByteString', fieldname))
875
        packet.append(struct.pack('<i', len(self.IssuerCrls)))
876
        for fieldname in self.IssuerCrls:
877
            packet.append(pack_uatype('ByteString', fieldname))
878
        return b''.join(packet)
879
880 1
    @staticmethod
881
    def from_binary(data):
882
        obj = TrustListDataType()
883
        obj.SpecifiedLists = unpack_uatype('UInt32', data)
884
        obj.TrustedCertificates = unpack_uatype_array('ByteString', data)
885
        obj.TrustedCrls = unpack_uatype_array('ByteString', data)
886
        obj.IssuerCertificates = unpack_uatype_array('ByteString', data)
887
        obj.IssuerCrls = unpack_uatype_array('ByteString', data)
888
        return obj
889
890 1
    def __str__(self):
891
        return 'TrustListDataType(' + 'SpecifiedLists:' + str(self.SpecifiedLists) + ', ' + \
892
               'TrustedCertificates:' + str(self.TrustedCertificates) + ', ' + \
893
               'TrustedCrls:' + str(self.TrustedCrls) + ', ' + \
894
               'IssuerCertificates:' + str(self.IssuerCertificates) + ', ' + \
895
               'IssuerCrls:' + str(self.IssuerCrls) + ')'
896
897 1
    __repr__ = __str__
898
899
900 1
class Argument(FrozenClass):
901
    '''
902
    An argument for a method.
903
904
    :ivar Name:
905
    :vartype Name: String
906
    :ivar DataType:
907
    :vartype DataType: NodeId
908
    :ivar ValueRank:
909
    :vartype ValueRank: Int32
910
    :ivar ArrayDimensions:
911
    :vartype ArrayDimensions: UInt32
912
    :ivar Description:
913
    :vartype Description: LocalizedText
914
    '''
915 1
    def __init__(self):
916 1
        self.Name = ''
917 1
        self.DataType = NodeId()
918 1
        self.ValueRank = 0
919 1
        self.ArrayDimensions = []
920 1
        self.Description = LocalizedText()
921 1
        self._freeze()
922
923 1
    def to_binary(self):
924
        packet = []
925
        packet.append(pack_uatype('String', self.Name))
926
        packet.append(self.DataType.to_binary())
927
        packet.append(pack_uatype('Int32', self.ValueRank))
928
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
929
        for fieldname in self.ArrayDimensions:
930
            packet.append(pack_uatype('UInt32', fieldname))
931
        packet.append(self.Description.to_binary())
932
        return b''.join(packet)
933
934 1
    @staticmethod
935
    def from_binary(data):
936
        obj = Argument()
937
        obj.Name = unpack_uatype('String', data)
938
        obj.DataType = NodeId.from_binary(data)
939
        obj.ValueRank = unpack_uatype('Int32', data)
940
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
941
        obj.Description = LocalizedText.from_binary(data)
942
        return obj
943
944 1
    def __str__(self):
945
        return 'Argument(' + 'Name:' + str(self.Name) + ', ' + \
946
               'DataType:' + str(self.DataType) + ', ' + \
947
               'ValueRank:' + str(self.ValueRank) + ', ' + \
948
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
949
               'Description:' + str(self.Description) + ')'
950
951 1
    __repr__ = __str__
952
953
954 1
class EnumValueType(FrozenClass):
955
    '''
956
    A mapping between a value of an enumerated type and a name and description.
957
958
    :ivar Value:
959
    :vartype Value: Int64
960
    :ivar DisplayName:
961
    :vartype DisplayName: LocalizedText
962
    :ivar Description:
963
    :vartype Description: LocalizedText
964
    '''
965 1
    def __init__(self):
966
        self.Value = 0
967
        self.DisplayName = LocalizedText()
968
        self.Description = LocalizedText()
969
        self._freeze()
970
971 1
    def to_binary(self):
972
        packet = []
973
        packet.append(pack_uatype('Int64', self.Value))
974
        packet.append(self.DisplayName.to_binary())
975
        packet.append(self.Description.to_binary())
976
        return b''.join(packet)
977
978 1
    @staticmethod
979
    def from_binary(data):
980
        obj = EnumValueType()
981
        obj.Value = unpack_uatype('Int64', data)
982
        obj.DisplayName = LocalizedText.from_binary(data)
983
        obj.Description = LocalizedText.from_binary(data)
984
        return obj
985
986 1
    def __str__(self):
987
        return 'EnumValueType(' + 'Value:' + str(self.Value) + ', ' + \
988
               'DisplayName:' + str(self.DisplayName) + ', ' + \
989
               'Description:' + str(self.Description) + ')'
990
991 1
    __repr__ = __str__
992
993
994 1
class OptionSet(FrozenClass):
995
    '''
996
    This abstract Structured DataType is the base DataType for all DataTypes representing a bit mask.
997
998
    :ivar Value:
999
    :vartype Value: ByteString
1000
    :ivar ValidBits:
1001
    :vartype ValidBits: ByteString
1002
    '''
1003 1
    def __init__(self):
1004
        self.Value = b''
1005
        self.ValidBits = b''
1006
        self._freeze()
1007
1008 1
    def to_binary(self):
1009
        packet = []
1010
        packet.append(pack_uatype('ByteString', self.Value))
1011
        packet.append(pack_uatype('ByteString', self.ValidBits))
1012
        return b''.join(packet)
1013
1014 1
    @staticmethod
1015
    def from_binary(data):
1016
        obj = OptionSet()
1017
        obj.Value = unpack_uatype('ByteString', data)
1018
        obj.ValidBits = unpack_uatype('ByteString', data)
1019
        return obj
1020
1021 1
    def __str__(self):
1022
        return 'OptionSet(' + 'Value:' + str(self.Value) + ', ' + \
1023
               'ValidBits:' + str(self.ValidBits) + ')'
1024
1025 1
    __repr__ = __str__
1026
1027
1028 1
class Union(FrozenClass):
1029
    '''
1030
    This abstract DataType is the base DataType for all union DataTypes.
1031
1032
    '''
1033 1
    def __init__(self):
1034
        self._freeze()
1035
1036 1
    def to_binary(self):
1037
        packet = []
1038
        return b''.join(packet)
1039
1040 1
    @staticmethod
1041
    def from_binary(data):
1042
        obj = Union()
1043
        return obj
1044
1045 1
    def __str__(self):
1046
        return 'Union(' +  + ')'
1047
1048 1
    __repr__ = __str__
1049
1050
1051 1
class TimeZoneDataType(FrozenClass):
1052
    '''
1053
    :ivar Offset:
1054
    :vartype Offset: Int16
1055
    :ivar DaylightSavingInOffset:
1056
    :vartype DaylightSavingInOffset: Boolean
1057
    '''
1058 1
    def __init__(self):
1059
        self.Offset = 0
1060
        self.DaylightSavingInOffset = True
1061
        self._freeze()
1062
1063 1
    def to_binary(self):
1064
        packet = []
1065
        packet.append(pack_uatype('Int16', self.Offset))
1066
        packet.append(pack_uatype('Boolean', self.DaylightSavingInOffset))
1067
        return b''.join(packet)
1068
1069 1
    @staticmethod
1070
    def from_binary(data):
1071
        obj = TimeZoneDataType()
1072
        obj.Offset = unpack_uatype('Int16', data)
1073
        obj.DaylightSavingInOffset = unpack_uatype('Boolean', data)
1074
        return obj
1075
1076 1
    def __str__(self):
1077
        return 'TimeZoneDataType(' + 'Offset:' + str(self.Offset) + ', ' + \
1078
               'DaylightSavingInOffset:' + str(self.DaylightSavingInOffset) + ')'
1079
1080 1
    __repr__ = __str__
1081
1082
1083 1
class ApplicationDescription(FrozenClass):
1084
    '''
1085
    Describes an application and how to find it.
1086
1087
    :ivar ApplicationUri:
1088
    :vartype ApplicationUri: String
1089
    :ivar ProductUri:
1090
    :vartype ProductUri: String
1091
    :ivar ApplicationName:
1092
    :vartype ApplicationName: LocalizedText
1093
    :ivar ApplicationType:
1094
    :vartype ApplicationType: ApplicationType
1095
    :ivar GatewayServerUri:
1096
    :vartype GatewayServerUri: String
1097
    :ivar DiscoveryProfileUri:
1098
    :vartype DiscoveryProfileUri: String
1099
    :ivar DiscoveryUrls:
1100
    :vartype DiscoveryUrls: String
1101
    '''
1102 1
    def __init__(self):
1103 1
        self.ApplicationUri = ''
1104 1
        self.ProductUri = ''
1105 1
        self.ApplicationName = LocalizedText()
1106 1
        self.ApplicationType = 0
1107 1
        self.GatewayServerUri = ''
1108 1
        self.DiscoveryProfileUri = ''
1109 1
        self.DiscoveryUrls = []
1110 1
        self._freeze()
1111
1112 1
    def to_binary(self):
1113 1
        packet = []
1114 1
        packet.append(pack_uatype('String', self.ApplicationUri))
1115 1
        packet.append(pack_uatype('String', self.ProductUri))
1116 1
        packet.append(self.ApplicationName.to_binary())
1117 1
        packet.append(pack_uatype('UInt32', self.ApplicationType))
1118 1
        packet.append(pack_uatype('String', self.GatewayServerUri))
1119 1
        packet.append(pack_uatype('String', self.DiscoveryProfileUri))
1120 1
        packet.append(struct.pack('<i', len(self.DiscoveryUrls)))
1121 1
        for fieldname in self.DiscoveryUrls:
1122 1
            packet.append(pack_uatype('String', fieldname))
1123 1
        return b''.join(packet)
1124
1125 1
    @staticmethod
1126
    def from_binary(data):
1127 1
        obj = ApplicationDescription()
1128 1
        obj.ApplicationUri = unpack_uatype('String', data)
1129 1
        obj.ProductUri = unpack_uatype('String', data)
1130 1
        obj.ApplicationName = LocalizedText.from_binary(data)
1131 1
        obj.ApplicationType = unpack_uatype('UInt32', data)
1132 1
        obj.GatewayServerUri = unpack_uatype('String', data)
1133 1
        obj.DiscoveryProfileUri = unpack_uatype('String', data)
1134 1
        obj.DiscoveryUrls = unpack_uatype_array('String', data)
1135 1
        return obj
1136
1137 1
    def __str__(self):
1138
        return 'ApplicationDescription(' + 'ApplicationUri:' + str(self.ApplicationUri) + ', ' + \
1139
               'ProductUri:' + str(self.ProductUri) + ', ' + \
1140
               'ApplicationName:' + str(self.ApplicationName) + ', ' + \
1141
               'ApplicationType:' + str(self.ApplicationType) + ', ' + \
1142
               'GatewayServerUri:' + str(self.GatewayServerUri) + ', ' + \
1143
               'DiscoveryProfileUri:' + str(self.DiscoveryProfileUri) + ', ' + \
1144
               'DiscoveryUrls:' + str(self.DiscoveryUrls) + ')'
1145
1146 1
    __repr__ = __str__
1147
1148
1149 1
class RequestHeader(FrozenClass):
1150
    '''
1151
    The header passed with every server request.
1152
1153
    :ivar AuthenticationToken:
1154
    :vartype AuthenticationToken: NodeId
1155
    :ivar Timestamp:
1156
    :vartype Timestamp: DateTime
1157
    :ivar RequestHandle:
1158
    :vartype RequestHandle: UInt32
1159
    :ivar ReturnDiagnostics:
1160
    :vartype ReturnDiagnostics: UInt32
1161
    :ivar AuditEntryId:
1162
    :vartype AuditEntryId: String
1163
    :ivar TimeoutHint:
1164
    :vartype TimeoutHint: UInt32
1165
    :ivar AdditionalHeader:
1166
    :vartype AdditionalHeader: ExtensionObject
1167
    '''
1168 1
    def __init__(self):
1169 1
        self.AuthenticationToken = NodeId()
1170 1
        self.Timestamp = datetime.now()
1171 1
        self.RequestHandle = 0
1172 1
        self.ReturnDiagnostics = 0
1173 1
        self.AuditEntryId = ''
1174 1
        self.TimeoutHint = 0
1175 1
        self.AdditionalHeader = None
1176 1
        self._freeze()
1177
1178 1
    def to_binary(self):
1179 1
        packet = []
1180 1
        packet.append(self.AuthenticationToken.to_binary())
1181 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
1182 1
        packet.append(pack_uatype('UInt32', self.RequestHandle))
1183 1
        packet.append(pack_uatype('UInt32', self.ReturnDiagnostics))
1184 1
        packet.append(pack_uatype('String', self.AuditEntryId))
1185 1
        packet.append(pack_uatype('UInt32', self.TimeoutHint))
1186 1
        packet.append(extensionobject_to_binary(self.AdditionalHeader))
1187 1
        return b''.join(packet)
1188
1189 1
    @staticmethod
1190
    def from_binary(data):
1191 1
        obj = RequestHeader()
1192 1
        obj.AuthenticationToken = NodeId.from_binary(data)
1193 1
        obj.Timestamp = unpack_uatype('DateTime', data)
1194 1
        obj.RequestHandle = unpack_uatype('UInt32', data)
1195 1
        obj.ReturnDiagnostics = unpack_uatype('UInt32', data)
1196 1
        obj.AuditEntryId = unpack_uatype('String', data)
1197 1
        obj.TimeoutHint = unpack_uatype('UInt32', data)
1198 1
        obj.AdditionalHeader = extensionobject_from_binary(data)
1199 1
        return obj
1200
1201 1
    def __str__(self):
1202
        return 'RequestHeader(' + 'AuthenticationToken:' + str(self.AuthenticationToken) + ', ' + \
1203
               'Timestamp:' + str(self.Timestamp) + ', ' + \
1204
               'RequestHandle:' + str(self.RequestHandle) + ', ' + \
1205
               'ReturnDiagnostics:' + str(self.ReturnDiagnostics) + ', ' + \
1206
               'AuditEntryId:' + str(self.AuditEntryId) + ', ' + \
1207
               'TimeoutHint:' + str(self.TimeoutHint) + ', ' + \
1208
               'AdditionalHeader:' + str(self.AdditionalHeader) + ')'
1209
1210 1
    __repr__ = __str__
1211
1212
1213 1
class ResponseHeader(FrozenClass):
1214
    '''
1215
    The header passed with every server response.
1216
1217
    :ivar Timestamp:
1218
    :vartype Timestamp: DateTime
1219
    :ivar RequestHandle:
1220
    :vartype RequestHandle: UInt32
1221
    :ivar ServiceResult:
1222
    :vartype ServiceResult: StatusCode
1223
    :ivar ServiceDiagnostics:
1224
    :vartype ServiceDiagnostics: DiagnosticInfo
1225
    :ivar StringTable:
1226
    :vartype StringTable: String
1227
    :ivar AdditionalHeader:
1228
    :vartype AdditionalHeader: ExtensionObject
1229
    '''
1230 1
    def __init__(self):
1231 1
        self.Timestamp = datetime.now()
1232 1
        self.RequestHandle = 0
1233 1
        self.ServiceResult = StatusCode()
1234 1
        self.ServiceDiagnostics = DiagnosticInfo()
1235 1
        self.StringTable = []
1236 1
        self.AdditionalHeader = None
1237 1
        self._freeze()
1238
1239 1
    def to_binary(self):
1240 1
        packet = []
1241 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
1242 1
        packet.append(pack_uatype('UInt32', self.RequestHandle))
1243 1
        packet.append(self.ServiceResult.to_binary())
1244 1
        packet.append(self.ServiceDiagnostics.to_binary())
1245 1
        packet.append(struct.pack('<i', len(self.StringTable)))
1246 1
        for fieldname in self.StringTable:
1247
            packet.append(pack_uatype('String', fieldname))
1248 1
        packet.append(extensionobject_to_binary(self.AdditionalHeader))
1249 1
        return b''.join(packet)
1250
1251 1
    @staticmethod
1252
    def from_binary(data):
1253 1
        obj = ResponseHeader()
1254 1
        obj.Timestamp = unpack_uatype('DateTime', data)
1255 1
        obj.RequestHandle = unpack_uatype('UInt32', data)
1256 1
        obj.ServiceResult = StatusCode.from_binary(data)
1257 1
        obj.ServiceDiagnostics = DiagnosticInfo.from_binary(data)
1258 1
        obj.StringTable = unpack_uatype_array('String', data)
1259 1
        obj.AdditionalHeader = extensionobject_from_binary(data)
1260 1
        return obj
1261
1262 1
    def __str__(self):
1263
        return 'ResponseHeader(' + 'Timestamp:' + str(self.Timestamp) + ', ' + \
1264
               'RequestHandle:' + str(self.RequestHandle) + ', ' + \
1265
               'ServiceResult:' + str(self.ServiceResult) + ', ' + \
1266
               'ServiceDiagnostics:' + str(self.ServiceDiagnostics) + ', ' + \
1267
               'StringTable:' + str(self.StringTable) + ', ' + \
1268
               'AdditionalHeader:' + str(self.AdditionalHeader) + ')'
1269
1270 1
    __repr__ = __str__
1271
1272
1273 1
class ServiceFault(FrozenClass):
1274
    '''
1275
    The response returned by all services when there is a service level error.
1276
1277
    :ivar TypeId:
1278
    :vartype TypeId: NodeId
1279
    :ivar ResponseHeader:
1280
    :vartype ResponseHeader: ResponseHeader
1281
    '''
1282 1
    def __init__(self):
1283
        self.TypeId = FourByteNodeId(ObjectIds.ServiceFault_Encoding_DefaultBinary)
1284
        self.ResponseHeader = ResponseHeader()
1285
        self._freeze()
1286
1287 1
    def to_binary(self):
1288
        packet = []
1289
        packet.append(self.TypeId.to_binary())
1290
        packet.append(self.ResponseHeader.to_binary())
1291
        return b''.join(packet)
1292
1293 1
    @staticmethod
1294
    def from_binary(data):
1295
        obj = ServiceFault()
1296
        obj.TypeId = NodeId.from_binary(data)
1297
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1298
        return obj
1299
1300 1
    def __str__(self):
1301
        return 'ServiceFault(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1302
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
1303
1304 1
    __repr__ = __str__
1305
1306
1307 1
class FindServersParameters(FrozenClass):
1308
    '''
1309
    :ivar EndpointUrl:
1310
    :vartype EndpointUrl: String
1311
    :ivar LocaleIds:
1312
    :vartype LocaleIds: String
1313
    :ivar ServerUris:
1314
    :vartype ServerUris: String
1315
    '''
1316 1
    def __init__(self):
1317 1
        self.EndpointUrl = ''
1318 1
        self.LocaleIds = []
1319 1
        self.ServerUris = []
1320 1
        self._freeze()
1321
1322 1
    def to_binary(self):
1323 1
        packet = []
1324 1
        packet.append(pack_uatype('String', self.EndpointUrl))
1325 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
1326 1
        for fieldname in self.LocaleIds:
1327
            packet.append(pack_uatype('String', fieldname))
1328 1
        packet.append(struct.pack('<i', len(self.ServerUris)))
1329 1
        for fieldname in self.ServerUris:
1330 1
            packet.append(pack_uatype('String', fieldname))
1331 1
        return b''.join(packet)
1332
1333 1
    @staticmethod
1334
    def from_binary(data):
1335 1
        obj = FindServersParameters()
1336 1
        obj.EndpointUrl = unpack_uatype('String', data)
1337 1
        obj.LocaleIds = unpack_uatype_array('String', data)
1338 1
        obj.ServerUris = unpack_uatype_array('String', data)
1339 1
        return obj
1340
1341 1
    def __str__(self):
1342
        return 'FindServersParameters(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
1343
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
1344
               'ServerUris:' + str(self.ServerUris) + ')'
1345
1346 1
    __repr__ = __str__
1347
1348
1349 1
class FindServersRequest(FrozenClass):
1350
    '''
1351
    Finds the servers known to the discovery server.
1352
1353
    :ivar TypeId:
1354
    :vartype TypeId: NodeId
1355
    :ivar RequestHeader:
1356
    :vartype RequestHeader: RequestHeader
1357
    :ivar Parameters:
1358
    :vartype Parameters: FindServersParameters
1359
    '''
1360 1
    def __init__(self):
1361 1
        self.TypeId = FourByteNodeId(ObjectIds.FindServersRequest_Encoding_DefaultBinary)
1362 1
        self.RequestHeader = RequestHeader()
1363 1
        self.Parameters = FindServersParameters()
1364 1
        self._freeze()
1365
1366 1
    def to_binary(self):
1367 1
        packet = []
1368 1
        packet.append(self.TypeId.to_binary())
1369 1
        packet.append(self.RequestHeader.to_binary())
1370 1
        packet.append(self.Parameters.to_binary())
1371 1
        return b''.join(packet)
1372
1373 1
    @staticmethod
1374
    def from_binary(data):
1375
        obj = FindServersRequest()
1376
        obj.TypeId = NodeId.from_binary(data)
1377
        obj.RequestHeader = RequestHeader.from_binary(data)
1378
        obj.Parameters = FindServersParameters.from_binary(data)
1379
        return obj
1380
1381 1
    def __str__(self):
1382
        return 'FindServersRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1383
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1384
               'Parameters:' + str(self.Parameters) + ')'
1385
1386 1
    __repr__ = __str__
1387
1388
1389 1
class FindServersResponse(FrozenClass):
1390
    '''
1391
    Finds the servers known to the discovery server.
1392
1393
    :ivar TypeId:
1394
    :vartype TypeId: NodeId
1395
    :ivar ResponseHeader:
1396
    :vartype ResponseHeader: ResponseHeader
1397
    :ivar Servers:
1398
    :vartype Servers: ApplicationDescription
1399
    '''
1400 1
    def __init__(self):
1401 1
        self.TypeId = FourByteNodeId(ObjectIds.FindServersResponse_Encoding_DefaultBinary)
1402 1
        self.ResponseHeader = ResponseHeader()
1403 1
        self.Servers = []
1404 1
        self._freeze()
1405
1406 1
    def to_binary(self):
1407 1
        packet = []
1408 1
        packet.append(self.TypeId.to_binary())
1409 1
        packet.append(self.ResponseHeader.to_binary())
1410 1
        packet.append(struct.pack('<i', len(self.Servers)))
1411 1
        for fieldname in self.Servers:
1412 1
            packet.append(fieldname.to_binary())
1413 1
        return b''.join(packet)
1414
1415 1
    @staticmethod
1416
    def from_binary(data):
1417 1
        obj = FindServersResponse()
1418 1
        obj.TypeId = NodeId.from_binary(data)
1419 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1420 1
        length = struct.unpack('<i', data.read(4))[0]
1421 1
        if length != -1:
1422 1
            for _ in range(0, length):
1423 1
                obj.Servers.append(ApplicationDescription.from_binary(data))
1424 1
        return obj
1425
1426 1
    def __str__(self):
1427
        return 'FindServersResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1428
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
1429
               'Servers:' + str(self.Servers) + ')'
1430
1431 1
    __repr__ = __str__
1432
1433
1434 1
class ServerOnNetwork(FrozenClass):
1435
    '''
1436
    :ivar RecordId:
1437
    :vartype RecordId: UInt32
1438
    :ivar ServerName:
1439
    :vartype ServerName: String
1440
    :ivar DiscoveryUrl:
1441
    :vartype DiscoveryUrl: String
1442
    :ivar ServerCapabilities:
1443
    :vartype ServerCapabilities: String
1444
    '''
1445 1
    def __init__(self):
1446
        self.RecordId = 0
1447
        self.ServerName = ''
1448
        self.DiscoveryUrl = ''
1449
        self.ServerCapabilities = []
1450
        self._freeze()
1451
1452 1
    def to_binary(self):
1453
        packet = []
1454
        packet.append(pack_uatype('UInt32', self.RecordId))
1455
        packet.append(pack_uatype('String', self.ServerName))
1456
        packet.append(pack_uatype('String', self.DiscoveryUrl))
1457
        packet.append(struct.pack('<i', len(self.ServerCapabilities)))
1458
        for fieldname in self.ServerCapabilities:
1459
            packet.append(pack_uatype('String', fieldname))
1460
        return b''.join(packet)
1461
1462 1
    @staticmethod
1463
    def from_binary(data):
1464
        obj = ServerOnNetwork()
1465
        obj.RecordId = unpack_uatype('UInt32', data)
1466
        obj.ServerName = unpack_uatype('String', data)
1467
        obj.DiscoveryUrl = unpack_uatype('String', data)
1468
        obj.ServerCapabilities = unpack_uatype_array('String', data)
1469
        return obj
1470
1471 1
    def __str__(self):
1472
        return 'ServerOnNetwork(' + 'RecordId:' + str(self.RecordId) + ', ' + \
1473
               'ServerName:' + str(self.ServerName) + ', ' + \
1474
               'DiscoveryUrl:' + str(self.DiscoveryUrl) + ', ' + \
1475
               'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
1476
1477 1
    __repr__ = __str__
1478
1479
1480 1
class FindServersOnNetworkParameters(FrozenClass):
1481
    '''
1482
    :ivar StartingRecordId:
1483
    :vartype StartingRecordId: UInt32
1484
    :ivar MaxRecordsToReturn:
1485
    :vartype MaxRecordsToReturn: UInt32
1486
    :ivar ServerCapabilityFilter:
1487
    :vartype ServerCapabilityFilter: String
1488
    '''
1489 1
    def __init__(self):
1490
        self.StartingRecordId = 0
1491
        self.MaxRecordsToReturn = 0
1492
        self.ServerCapabilityFilter = []
1493
        self._freeze()
1494
1495 1
    def to_binary(self):
1496
        packet = []
1497
        packet.append(pack_uatype('UInt32', self.StartingRecordId))
1498
        packet.append(pack_uatype('UInt32', self.MaxRecordsToReturn))
1499
        packet.append(struct.pack('<i', len(self.ServerCapabilityFilter)))
1500
        for fieldname in self.ServerCapabilityFilter:
1501
            packet.append(pack_uatype('String', fieldname))
1502
        return b''.join(packet)
1503
1504 1
    @staticmethod
1505
    def from_binary(data):
1506
        obj = FindServersOnNetworkParameters()
1507
        obj.StartingRecordId = unpack_uatype('UInt32', data)
1508
        obj.MaxRecordsToReturn = unpack_uatype('UInt32', data)
1509
        obj.ServerCapabilityFilter = unpack_uatype_array('String', data)
1510
        return obj
1511
1512 1
    def __str__(self):
1513
        return 'FindServersOnNetworkParameters(' + 'StartingRecordId:' + str(self.StartingRecordId) + ', ' + \
1514
               'MaxRecordsToReturn:' + str(self.MaxRecordsToReturn) + ', ' + \
1515
               'ServerCapabilityFilter:' + str(self.ServerCapabilityFilter) + ')'
1516
1517 1
    __repr__ = __str__
1518
1519
1520 1
class FindServersOnNetworkRequest(FrozenClass):
1521
    '''
1522
    :ivar TypeId:
1523
    :vartype TypeId: NodeId
1524
    :ivar RequestHeader:
1525
    :vartype RequestHeader: RequestHeader
1526
    :ivar Parameters:
1527
    :vartype Parameters: FindServersOnNetworkParameters
1528
    '''
1529 1
    def __init__(self):
1530
        self.TypeId = FourByteNodeId(ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary)
1531
        self.RequestHeader = RequestHeader()
1532
        self.Parameters = FindServersOnNetworkParameters()
1533
        self._freeze()
1534
1535 1
    def to_binary(self):
1536
        packet = []
1537
        packet.append(self.TypeId.to_binary())
1538
        packet.append(self.RequestHeader.to_binary())
1539
        packet.append(self.Parameters.to_binary())
1540
        return b''.join(packet)
1541
1542 1
    @staticmethod
1543
    def from_binary(data):
1544
        obj = FindServersOnNetworkRequest()
1545
        obj.TypeId = NodeId.from_binary(data)
1546
        obj.RequestHeader = RequestHeader.from_binary(data)
1547
        obj.Parameters = FindServersOnNetworkParameters.from_binary(data)
1548
        return obj
1549
1550 1
    def __str__(self):
1551
        return 'FindServersOnNetworkRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1552
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1553
               'Parameters:' + str(self.Parameters) + ')'
1554
1555 1
    __repr__ = __str__
1556
1557
1558 1
class FindServersOnNetworkResult(FrozenClass):
1559
    '''
1560
    :ivar LastCounterResetTime:
1561
    :vartype LastCounterResetTime: DateTime
1562
    :ivar Servers:
1563
    :vartype Servers: ServerOnNetwork
1564
    '''
1565 1
    def __init__(self):
1566
        self.LastCounterResetTime = datetime.now()
1567
        self.Servers = []
1568
        self._freeze()
1569
1570 1
    def to_binary(self):
1571
        packet = []
1572
        packet.append(pack_uatype('DateTime', self.LastCounterResetTime))
1573
        packet.append(struct.pack('<i', len(self.Servers)))
1574
        for fieldname in self.Servers:
1575
            packet.append(fieldname.to_binary())
1576
        return b''.join(packet)
1577
1578 1
    @staticmethod
1579
    def from_binary(data):
1580
        obj = FindServersOnNetworkResult()
1581
        obj.LastCounterResetTime = unpack_uatype('DateTime', data)
1582
        length = struct.unpack('<i', data.read(4))[0]
1583
        if length != -1:
1584
            for _ in range(0, length):
1585
                obj.Servers.append(ServerOnNetwork.from_binary(data))
1586
        return obj
1587
1588 1
    def __str__(self):
1589
        return 'FindServersOnNetworkResult(' + 'LastCounterResetTime:' + str(self.LastCounterResetTime) + ', ' + \
1590
               'Servers:' + str(self.Servers) + ')'
1591
1592 1
    __repr__ = __str__
1593
1594
1595 1
class FindServersOnNetworkResponse(FrozenClass):
1596
    '''
1597
    :ivar TypeId:
1598
    :vartype TypeId: NodeId
1599
    :ivar ResponseHeader:
1600
    :vartype ResponseHeader: ResponseHeader
1601
    :ivar Parameters:
1602
    :vartype Parameters: FindServersOnNetworkResult
1603
    '''
1604 1
    def __init__(self):
1605
        self.TypeId = FourByteNodeId(ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary)
1606
        self.ResponseHeader = ResponseHeader()
1607
        self.Parameters = FindServersOnNetworkResult()
1608
        self._freeze()
1609
1610 1
    def to_binary(self):
1611
        packet = []
1612
        packet.append(self.TypeId.to_binary())
1613
        packet.append(self.ResponseHeader.to_binary())
1614
        packet.append(self.Parameters.to_binary())
1615
        return b''.join(packet)
1616
1617 1
    @staticmethod
1618
    def from_binary(data):
1619
        obj = FindServersOnNetworkResponse()
1620
        obj.TypeId = NodeId.from_binary(data)
1621
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1622
        obj.Parameters = FindServersOnNetworkResult.from_binary(data)
1623
        return obj
1624
1625 1
    def __str__(self):
1626
        return 'FindServersOnNetworkResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1627
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
1628
               'Parameters:' + str(self.Parameters) + ')'
1629
1630 1
    __repr__ = __str__
1631
1632
1633 1
class UserTokenPolicy(FrozenClass):
1634
    '''
1635
    Describes a user token that can be used with a server.
1636
1637
    :ivar PolicyId:
1638
    :vartype PolicyId: String
1639
    :ivar TokenType:
1640
    :vartype TokenType: UserTokenType
1641
    :ivar IssuedTokenType:
1642
    :vartype IssuedTokenType: String
1643
    :ivar IssuerEndpointUrl:
1644
    :vartype IssuerEndpointUrl: String
1645
    :ivar SecurityPolicyUri:
1646
    :vartype SecurityPolicyUri: String
1647
    '''
1648 1
    def __init__(self):
1649 1
        self.PolicyId = ''
1650 1
        self.TokenType = 0
1651 1
        self.IssuedTokenType = ''
1652 1
        self.IssuerEndpointUrl = ''
1653 1
        self.SecurityPolicyUri = ''
1654 1
        self._freeze()
1655
1656 1
    def to_binary(self):
1657 1
        packet = []
1658 1
        packet.append(pack_uatype('String', self.PolicyId))
1659 1
        packet.append(pack_uatype('UInt32', self.TokenType))
1660 1
        packet.append(pack_uatype('String', self.IssuedTokenType))
1661 1
        packet.append(pack_uatype('String', self.IssuerEndpointUrl))
1662 1
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
1663 1
        return b''.join(packet)
1664
1665 1
    @staticmethod
1666
    def from_binary(data):
1667 1
        obj = UserTokenPolicy()
1668 1
        obj.PolicyId = unpack_uatype('String', data)
1669 1
        obj.TokenType = unpack_uatype('UInt32', data)
1670 1
        obj.IssuedTokenType = unpack_uatype('String', data)
1671 1
        obj.IssuerEndpointUrl = unpack_uatype('String', data)
1672 1
        obj.SecurityPolicyUri = unpack_uatype('String', data)
1673 1
        return obj
1674
1675 1
    def __str__(self):
1676
        return 'UserTokenPolicy(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
1677
               'TokenType:' + str(self.TokenType) + ', ' + \
1678
               'IssuedTokenType:' + str(self.IssuedTokenType) + ', ' + \
1679
               'IssuerEndpointUrl:' + str(self.IssuerEndpointUrl) + ', ' + \
1680
               'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ')'
1681
1682 1
    __repr__ = __str__
1683
1684
1685 1
class EndpointDescription(FrozenClass):
1686
    '''
1687
    The description of a endpoint that can be used to access a server.
1688
1689
    :ivar EndpointUrl:
1690
    :vartype EndpointUrl: String
1691
    :ivar Server:
1692
    :vartype Server: ApplicationDescription
1693
    :ivar ServerCertificate:
1694
    :vartype ServerCertificate: ByteString
1695
    :ivar SecurityMode:
1696
    :vartype SecurityMode: MessageSecurityMode
1697
    :ivar SecurityPolicyUri:
1698
    :vartype SecurityPolicyUri: String
1699
    :ivar UserIdentityTokens:
1700
    :vartype UserIdentityTokens: UserTokenPolicy
1701
    :ivar TransportProfileUri:
1702
    :vartype TransportProfileUri: String
1703
    :ivar SecurityLevel:
1704
    :vartype SecurityLevel: Byte
1705
    '''
1706 1
    def __init__(self):
1707 1
        self.EndpointUrl = ''
1708 1
        self.Server = ApplicationDescription()
1709 1
        self.ServerCertificate = b''
1710 1
        self.SecurityMode = 0
1711 1
        self.SecurityPolicyUri = ''
1712 1
        self.UserIdentityTokens = []
1713 1
        self.TransportProfileUri = ''
1714 1
        self.SecurityLevel = 0
1715 1
        self._freeze()
1716
1717 1
    def to_binary(self):
1718 1
        packet = []
1719 1
        packet.append(pack_uatype('String', self.EndpointUrl))
1720 1
        packet.append(self.Server.to_binary())
1721 1
        packet.append(pack_uatype('ByteString', self.ServerCertificate))
1722 1
        packet.append(pack_uatype('UInt32', self.SecurityMode))
1723 1
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
1724 1
        packet.append(struct.pack('<i', len(self.UserIdentityTokens)))
1725 1
        for fieldname in self.UserIdentityTokens:
1726 1
            packet.append(fieldname.to_binary())
1727 1
        packet.append(pack_uatype('String', self.TransportProfileUri))
1728 1
        packet.append(pack_uatype('Byte', self.SecurityLevel))
1729 1
        return b''.join(packet)
1730
1731 1
    @staticmethod
1732
    def from_binary(data):
1733 1
        obj = EndpointDescription()
1734 1
        obj.EndpointUrl = unpack_uatype('String', data)
1735 1
        obj.Server = ApplicationDescription.from_binary(data)
1736 1
        obj.ServerCertificate = unpack_uatype('ByteString', data)
1737 1
        obj.SecurityMode = unpack_uatype('UInt32', data)
1738 1
        obj.SecurityPolicyUri = unpack_uatype('String', data)
1739 1
        length = struct.unpack('<i', data.read(4))[0]
1740 1
        if length != -1:
1741 1
            for _ in range(0, length):
1742 1
                obj.UserIdentityTokens.append(UserTokenPolicy.from_binary(data))
1743 1
        obj.TransportProfileUri = unpack_uatype('String', data)
1744 1
        obj.SecurityLevel = unpack_uatype('Byte', data)
1745 1
        return obj
1746
1747 1
    def __str__(self):
1748
        return 'EndpointDescription(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
1749
               'Server:' + str(self.Server) + ', ' + \
1750
               'ServerCertificate:' + str(self.ServerCertificate) + ', ' + \
1751
               'SecurityMode:' + str(self.SecurityMode) + ', ' + \
1752
               'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', ' + \
1753
               'UserIdentityTokens:' + str(self.UserIdentityTokens) + ', ' + \
1754
               'TransportProfileUri:' + str(self.TransportProfileUri) + ', ' + \
1755
               'SecurityLevel:' + str(self.SecurityLevel) + ')'
1756
1757 1
    __repr__ = __str__
1758
1759
1760 1
class GetEndpointsParameters(FrozenClass):
1761
    '''
1762
    :ivar EndpointUrl:
1763
    :vartype EndpointUrl: String
1764
    :ivar LocaleIds:
1765
    :vartype LocaleIds: String
1766
    :ivar ProfileUris:
1767
    :vartype ProfileUris: String
1768
    '''
1769 1
    def __init__(self):
1770 1
        self.EndpointUrl = ''
1771 1
        self.LocaleIds = []
1772 1
        self.ProfileUris = []
1773 1
        self._freeze()
1774
1775 1
    def to_binary(self):
1776 1
        packet = []
1777 1
        packet.append(pack_uatype('String', self.EndpointUrl))
1778 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
1779 1
        for fieldname in self.LocaleIds:
1780
            packet.append(pack_uatype('String', fieldname))
1781 1
        packet.append(struct.pack('<i', len(self.ProfileUris)))
1782 1
        for fieldname in self.ProfileUris:
1783
            packet.append(pack_uatype('String', fieldname))
1784 1
        return b''.join(packet)
1785
1786 1
    @staticmethod
1787
    def from_binary(data):
1788 1
        obj = GetEndpointsParameters()
1789 1
        obj.EndpointUrl = unpack_uatype('String', data)
1790 1
        obj.LocaleIds = unpack_uatype_array('String', data)
1791 1
        obj.ProfileUris = unpack_uatype_array('String', data)
1792 1
        return obj
1793
1794 1
    def __str__(self):
1795
        return 'GetEndpointsParameters(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
1796
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
1797
               'ProfileUris:' + str(self.ProfileUris) + ')'
1798
1799 1
    __repr__ = __str__
1800
1801
1802 1
class GetEndpointsRequest(FrozenClass):
1803
    '''
1804
    Gets the endpoints used by the server.
1805
1806
    :ivar TypeId:
1807
    :vartype TypeId: NodeId
1808
    :ivar RequestHeader:
1809
    :vartype RequestHeader: RequestHeader
1810
    :ivar Parameters:
1811
    :vartype Parameters: GetEndpointsParameters
1812
    '''
1813 1
    def __init__(self):
1814 1
        self.TypeId = FourByteNodeId(ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary)
1815 1
        self.RequestHeader = RequestHeader()
1816 1
        self.Parameters = GetEndpointsParameters()
1817 1
        self._freeze()
1818
1819 1
    def to_binary(self):
1820 1
        packet = []
1821 1
        packet.append(self.TypeId.to_binary())
1822 1
        packet.append(self.RequestHeader.to_binary())
1823 1
        packet.append(self.Parameters.to_binary())
1824 1
        return b''.join(packet)
1825
1826 1
    @staticmethod
1827
    def from_binary(data):
1828
        obj = GetEndpointsRequest()
1829
        obj.TypeId = NodeId.from_binary(data)
1830
        obj.RequestHeader = RequestHeader.from_binary(data)
1831
        obj.Parameters = GetEndpointsParameters.from_binary(data)
1832
        return obj
1833
1834 1
    def __str__(self):
1835
        return 'GetEndpointsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1836
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1837
               'Parameters:' + str(self.Parameters) + ')'
1838
1839 1
    __repr__ = __str__
1840
1841
1842 1
class GetEndpointsResponse(FrozenClass):
1843
    '''
1844
    Gets the endpoints used by the server.
1845
1846
    :ivar TypeId:
1847
    :vartype TypeId: NodeId
1848
    :ivar ResponseHeader:
1849
    :vartype ResponseHeader: ResponseHeader
1850
    :ivar Endpoints:
1851
    :vartype Endpoints: EndpointDescription
1852
    '''
1853 1
    def __init__(self):
1854 1
        self.TypeId = FourByteNodeId(ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary)
1855 1
        self.ResponseHeader = ResponseHeader()
1856 1
        self.Endpoints = []
1857 1
        self._freeze()
1858
1859 1
    def to_binary(self):
1860 1
        packet = []
1861 1
        packet.append(self.TypeId.to_binary())
1862 1
        packet.append(self.ResponseHeader.to_binary())
1863 1
        packet.append(struct.pack('<i', len(self.Endpoints)))
1864 1
        for fieldname in self.Endpoints:
1865 1
            packet.append(fieldname.to_binary())
1866 1
        return b''.join(packet)
1867
1868 1
    @staticmethod
1869
    def from_binary(data):
1870 1
        obj = GetEndpointsResponse()
1871 1
        obj.TypeId = NodeId.from_binary(data)
1872 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1873 1
        length = struct.unpack('<i', data.read(4))[0]
1874 1
        if length != -1:
1875 1
            for _ in range(0, length):
1876 1
                obj.Endpoints.append(EndpointDescription.from_binary(data))
1877 1
        return obj
1878
1879 1
    def __str__(self):
1880
        return 'GetEndpointsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1881
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
1882
               'Endpoints:' + str(self.Endpoints) + ')'
1883
1884 1
    __repr__ = __str__
1885
1886
1887 1
class RegisteredServer(FrozenClass):
1888
    '''
1889
    The information required to register a server with a discovery server.
1890
1891
    :ivar ServerUri:
1892
    :vartype ServerUri: String
1893
    :ivar ProductUri:
1894
    :vartype ProductUri: String
1895
    :ivar ServerNames:
1896
    :vartype ServerNames: LocalizedText
1897
    :ivar ServerType:
1898
    :vartype ServerType: ApplicationType
1899
    :ivar GatewayServerUri:
1900
    :vartype GatewayServerUri: String
1901
    :ivar DiscoveryUrls:
1902
    :vartype DiscoveryUrls: String
1903
    :ivar SemaphoreFilePath:
1904
    :vartype SemaphoreFilePath: String
1905
    :ivar IsOnline:
1906
    :vartype IsOnline: Boolean
1907
    '''
1908 1
    def __init__(self):
1909 1
        self.ServerUri = ''
1910 1
        self.ProductUri = ''
1911 1
        self.ServerNames = []
1912 1
        self.ServerType = 0
1913 1
        self.GatewayServerUri = ''
1914 1
        self.DiscoveryUrls = []
1915 1
        self.SemaphoreFilePath = ''
1916 1
        self.IsOnline = True
1917 1
        self._freeze()
1918
1919 1
    def to_binary(self):
1920 1
        packet = []
1921 1
        packet.append(pack_uatype('String', self.ServerUri))
1922 1
        packet.append(pack_uatype('String', self.ProductUri))
1923 1
        packet.append(struct.pack('<i', len(self.ServerNames)))
1924 1
        for fieldname in self.ServerNames:
1925 1
            packet.append(fieldname.to_binary())
1926 1
        packet.append(pack_uatype('UInt32', self.ServerType))
1927 1
        packet.append(pack_uatype('String', self.GatewayServerUri))
1928 1
        packet.append(struct.pack('<i', len(self.DiscoveryUrls)))
1929 1
        for fieldname in self.DiscoveryUrls:
1930 1
            packet.append(pack_uatype('String', fieldname))
1931 1
        packet.append(pack_uatype('String', self.SemaphoreFilePath))
1932 1
        packet.append(pack_uatype('Boolean', self.IsOnline))
1933 1
        return b''.join(packet)
1934
1935 1
    @staticmethod
1936
    def from_binary(data):
1937 1
        obj = RegisteredServer()
1938 1
        obj.ServerUri = unpack_uatype('String', data)
1939 1
        obj.ProductUri = unpack_uatype('String', data)
1940 1
        length = struct.unpack('<i', data.read(4))[0]
1941 1
        if length != -1:
1942 1
            for _ in range(0, length):
1943 1
                obj.ServerNames.append(LocalizedText.from_binary(data))
1944 1
        obj.ServerType = unpack_uatype('UInt32', data)
1945 1
        obj.GatewayServerUri = unpack_uatype('String', data)
1946 1
        obj.DiscoveryUrls = unpack_uatype_array('String', data)
1947 1
        obj.SemaphoreFilePath = unpack_uatype('String', data)
1948 1
        obj.IsOnline = unpack_uatype('Boolean', data)
1949 1
        return obj
1950
1951 1
    def __str__(self):
1952
        return 'RegisteredServer(' + 'ServerUri:' + str(self.ServerUri) + ', ' + \
1953
               'ProductUri:' + str(self.ProductUri) + ', ' + \
1954
               'ServerNames:' + str(self.ServerNames) + ', ' + \
1955
               'ServerType:' + str(self.ServerType) + ', ' + \
1956
               'GatewayServerUri:' + str(self.GatewayServerUri) + ', ' + \
1957
               'DiscoveryUrls:' + str(self.DiscoveryUrls) + ', ' + \
1958
               'SemaphoreFilePath:' + str(self.SemaphoreFilePath) + ', ' + \
1959
               'IsOnline:' + str(self.IsOnline) + ')'
1960
1961 1
    __repr__ = __str__
1962
1963
1964 1
class RegisterServerRequest(FrozenClass):
1965
    '''
1966
    Registers a server with the discovery server.
1967
1968
    :ivar TypeId:
1969
    :vartype TypeId: NodeId
1970
    :ivar RequestHeader:
1971
    :vartype RequestHeader: RequestHeader
1972
    :ivar Server:
1973
    :vartype Server: RegisteredServer
1974
    '''
1975 1
    def __init__(self):
1976 1
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerRequest_Encoding_DefaultBinary)
1977 1
        self.RequestHeader = RequestHeader()
1978 1
        self.Server = RegisteredServer()
1979 1
        self._freeze()
1980
1981 1
    def to_binary(self):
1982 1
        packet = []
1983 1
        packet.append(self.TypeId.to_binary())
1984 1
        packet.append(self.RequestHeader.to_binary())
1985 1
        packet.append(self.Server.to_binary())
1986 1
        return b''.join(packet)
1987
1988 1
    @staticmethod
1989
    def from_binary(data):
1990
        obj = RegisterServerRequest()
1991
        obj.TypeId = NodeId.from_binary(data)
1992
        obj.RequestHeader = RequestHeader.from_binary(data)
1993
        obj.Server = RegisteredServer.from_binary(data)
1994
        return obj
1995
1996 1
    def __str__(self):
1997
        return 'RegisterServerRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
1998
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
1999
               'Server:' + str(self.Server) + ')'
2000
2001 1
    __repr__ = __str__
2002
2003
2004 1
class RegisterServerResponse(FrozenClass):
2005
    '''
2006
    Registers a server with the discovery server.
2007
2008
    :ivar TypeId:
2009
    :vartype TypeId: NodeId
2010
    :ivar ResponseHeader:
2011
    :vartype ResponseHeader: ResponseHeader
2012
    '''
2013 1
    def __init__(self):
2014 1
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerResponse_Encoding_DefaultBinary)
2015 1
        self.ResponseHeader = ResponseHeader()
2016 1
        self._freeze()
2017
2018 1
    def to_binary(self):
2019 1
        packet = []
2020 1
        packet.append(self.TypeId.to_binary())
2021 1
        packet.append(self.ResponseHeader.to_binary())
2022 1
        return b''.join(packet)
2023
2024 1
    @staticmethod
2025
    def from_binary(data):
2026 1
        obj = RegisterServerResponse()
2027 1
        obj.TypeId = NodeId.from_binary(data)
2028 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2029 1
        return obj
2030
2031 1
    def __str__(self):
2032
        return 'RegisterServerResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2033
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
2034
2035 1
    __repr__ = __str__
2036
2037
2038 1
class DiscoveryConfiguration(FrozenClass):
2039
    '''
2040
    A base type for discovery configuration information.
2041
2042
    '''
2043 1
    def __init__(self):
2044
        self._freeze()
2045
2046 1
    def to_binary(self):
2047
        packet = []
2048
        return b''.join(packet)
2049
2050 1
    @staticmethod
2051
    def from_binary(data):
2052
        obj = DiscoveryConfiguration()
2053
        return obj
2054
2055 1
    def __str__(self):
2056
        return 'DiscoveryConfiguration(' +  + ')'
2057
2058 1
    __repr__ = __str__
2059
2060
2061 1
class MdnsDiscoveryConfiguration(FrozenClass):
2062
    '''
2063
    The discovery information needed for mDNS registration.
2064
2065
    :ivar MdnsServerName:
2066
    :vartype MdnsServerName: String
2067
    :ivar ServerCapabilities:
2068
    :vartype ServerCapabilities: String
2069
    '''
2070 1
    def __init__(self):
2071
        self.MdnsServerName = ''
2072
        self.ServerCapabilities = []
2073
        self._freeze()
2074
2075 1
    def to_binary(self):
2076
        packet = []
2077
        packet.append(pack_uatype('String', self.MdnsServerName))
2078
        packet.append(struct.pack('<i', len(self.ServerCapabilities)))
2079
        for fieldname in self.ServerCapabilities:
2080
            packet.append(pack_uatype('String', fieldname))
2081
        return b''.join(packet)
2082
2083 1
    @staticmethod
2084
    def from_binary(data):
2085
        obj = MdnsDiscoveryConfiguration()
2086
        obj.MdnsServerName = unpack_uatype('String', data)
2087
        obj.ServerCapabilities = unpack_uatype_array('String', data)
2088
        return obj
2089
2090 1
    def __str__(self):
2091
        return 'MdnsDiscoveryConfiguration(' + 'MdnsServerName:' + str(self.MdnsServerName) + ', ' + \
2092
               'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
2093
2094 1
    __repr__ = __str__
2095
2096
2097 1
class RegisterServer2Parameters(FrozenClass):
2098
    '''
2099
    :ivar Server:
2100
    :vartype Server: RegisteredServer
2101
    :ivar DiscoveryConfiguration:
2102
    :vartype DiscoveryConfiguration: ExtensionObject
2103
    '''
2104 1
    def __init__(self):
2105
        self.Server = RegisteredServer()
2106
        self.DiscoveryConfiguration = []
2107
        self._freeze()
2108
2109 1
    def to_binary(self):
2110
        packet = []
2111
        packet.append(self.Server.to_binary())
2112
        packet.append(struct.pack('<i', len(self.DiscoveryConfiguration)))
2113
        for fieldname in self.DiscoveryConfiguration:
2114
            packet.append(extensionobject_to_binary(fieldname))
2115
        return b''.join(packet)
2116
2117 1
    @staticmethod
2118
    def from_binary(data):
2119
        obj = RegisterServer2Parameters()
2120
        obj.Server = RegisteredServer.from_binary(data)
2121
        length = struct.unpack('<i', data.read(4))[0]
2122
        if length != -1:
2123
            for _ in range(0, length):
2124
                obj.DiscoveryConfiguration.append(extensionobject_from_binary(data))
2125
        return obj
2126
2127 1
    def __str__(self):
2128
        return 'RegisterServer2Parameters(' + 'Server:' + str(self.Server) + ', ' + \
2129
               'DiscoveryConfiguration:' + str(self.DiscoveryConfiguration) + ')'
2130
2131 1
    __repr__ = __str__
2132
2133
2134 1
class RegisterServer2Request(FrozenClass):
2135
    '''
2136
    :ivar TypeId:
2137
    :vartype TypeId: NodeId
2138
    :ivar RequestHeader:
2139
    :vartype RequestHeader: RequestHeader
2140
    :ivar Parameters:
2141
    :vartype Parameters: RegisterServer2Parameters
2142
    '''
2143 1
    def __init__(self):
2144
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Request_Encoding_DefaultBinary)
2145
        self.RequestHeader = RequestHeader()
2146
        self.Parameters = RegisterServer2Parameters()
2147
        self._freeze()
2148
2149 1
    def to_binary(self):
2150
        packet = []
2151
        packet.append(self.TypeId.to_binary())
2152
        packet.append(self.RequestHeader.to_binary())
2153
        packet.append(self.Parameters.to_binary())
2154
        return b''.join(packet)
2155
2156 1
    @staticmethod
2157
    def from_binary(data):
2158
        obj = RegisterServer2Request()
2159
        obj.TypeId = NodeId.from_binary(data)
2160
        obj.RequestHeader = RequestHeader.from_binary(data)
2161
        obj.Parameters = RegisterServer2Parameters.from_binary(data)
2162
        return obj
2163
2164 1
    def __str__(self):
2165
        return 'RegisterServer2Request(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2166
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2167
               'Parameters:' + str(self.Parameters) + ')'
2168
2169 1
    __repr__ = __str__
2170
2171
2172 1
class RegisterServer2Response(FrozenClass):
2173
    '''
2174
    :ivar TypeId:
2175
    :vartype TypeId: NodeId
2176
    :ivar ResponseHeader:
2177
    :vartype ResponseHeader: ResponseHeader
2178
    :ivar ConfigurationResults:
2179
    :vartype ConfigurationResults: StatusCode
2180
    :ivar DiagnosticInfos:
2181
    :vartype DiagnosticInfos: DiagnosticInfo
2182
    '''
2183 1
    def __init__(self):
2184
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Response_Encoding_DefaultBinary)
2185
        self.ResponseHeader = ResponseHeader()
2186
        self.ConfigurationResults = []
2187
        self.DiagnosticInfos = []
2188
        self._freeze()
2189
2190 1
    def to_binary(self):
2191
        packet = []
2192
        packet.append(self.TypeId.to_binary())
2193
        packet.append(self.ResponseHeader.to_binary())
2194
        packet.append(struct.pack('<i', len(self.ConfigurationResults)))
2195
        for fieldname in self.ConfigurationResults:
2196
            packet.append(fieldname.to_binary())
2197
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
2198
        for fieldname in self.DiagnosticInfos:
2199
            packet.append(fieldname.to_binary())
2200
        return b''.join(packet)
2201
2202 1
    @staticmethod
2203
    def from_binary(data):
2204
        obj = RegisterServer2Response()
2205
        obj.TypeId = NodeId.from_binary(data)
2206
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2207
        length = struct.unpack('<i', data.read(4))[0]
2208
        if length != -1:
2209
            for _ in range(0, length):
2210
                obj.ConfigurationResults.append(StatusCode.from_binary(data))
2211
        length = struct.unpack('<i', data.read(4))[0]
2212
        if length != -1:
2213
            for _ in range(0, length):
2214
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
2215
        return obj
2216
2217 1
    def __str__(self):
2218
        return 'RegisterServer2Response(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2219
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
2220
               'ConfigurationResults:' + str(self.ConfigurationResults) + ', ' + \
2221
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
2222
2223 1
    __repr__ = __str__
2224
2225
2226 1
class ChannelSecurityToken(FrozenClass):
2227
    '''
2228
    The token that identifies a set of keys for an active secure channel.
2229
2230
    :ivar ChannelId:
2231
    :vartype ChannelId: UInt32
2232
    :ivar TokenId:
2233
    :vartype TokenId: UInt32
2234
    :ivar CreatedAt:
2235
    :vartype CreatedAt: DateTime
2236
    :ivar RevisedLifetime:
2237
    :vartype RevisedLifetime: UInt32
2238
    '''
2239 1
    def __init__(self):
2240 1
        self.ChannelId = 0
2241 1
        self.TokenId = 0
2242 1
        self.CreatedAt = datetime.now()
2243 1
        self.RevisedLifetime = 0
2244 1
        self._freeze()
2245
2246 1
    def to_binary(self):
2247 1
        packet = []
2248 1
        packet.append(pack_uatype('UInt32', self.ChannelId))
2249 1
        packet.append(pack_uatype('UInt32', self.TokenId))
2250 1
        packet.append(pack_uatype('DateTime', self.CreatedAt))
2251 1
        packet.append(pack_uatype('UInt32', self.RevisedLifetime))
2252 1
        return b''.join(packet)
2253
2254 1
    @staticmethod
2255
    def from_binary(data):
2256 1
        obj = ChannelSecurityToken()
2257 1
        obj.ChannelId = unpack_uatype('UInt32', data)
2258 1
        obj.TokenId = unpack_uatype('UInt32', data)
2259 1
        obj.CreatedAt = unpack_uatype('DateTime', data)
2260 1
        obj.RevisedLifetime = unpack_uatype('UInt32', data)
2261 1
        return obj
2262
2263 1
    def __str__(self):
2264
        return 'ChannelSecurityToken(' + 'ChannelId:' + str(self.ChannelId) + ', ' + \
2265
               'TokenId:' + str(self.TokenId) + ', ' + \
2266
               'CreatedAt:' + str(self.CreatedAt) + ', ' + \
2267
               'RevisedLifetime:' + str(self.RevisedLifetime) + ')'
2268
2269 1
    __repr__ = __str__
2270
2271
2272 1
class OpenSecureChannelParameters(FrozenClass):
2273
    '''
2274
    :ivar ClientProtocolVersion:
2275
    :vartype ClientProtocolVersion: UInt32
2276
    :ivar RequestType:
2277
    :vartype RequestType: SecurityTokenRequestType
2278
    :ivar SecurityMode:
2279
    :vartype SecurityMode: MessageSecurityMode
2280
    :ivar ClientNonce:
2281
    :vartype ClientNonce: ByteString
2282
    :ivar RequestedLifetime:
2283
    :vartype RequestedLifetime: UInt32
2284
    '''
2285 1
    def __init__(self):
2286 1
        self.ClientProtocolVersion = 0
2287 1
        self.RequestType = 0
2288 1
        self.SecurityMode = 0
2289 1
        self.ClientNonce = b''
2290 1
        self.RequestedLifetime = 0
2291 1
        self._freeze()
2292
2293 1
    def to_binary(self):
2294 1
        packet = []
2295 1
        packet.append(pack_uatype('UInt32', self.ClientProtocolVersion))
2296 1
        packet.append(pack_uatype('UInt32', self.RequestType))
2297 1
        packet.append(pack_uatype('UInt32', self.SecurityMode))
2298 1
        packet.append(pack_uatype('ByteString', self.ClientNonce))
2299 1
        packet.append(pack_uatype('UInt32', self.RequestedLifetime))
2300 1
        return b''.join(packet)
2301
2302 1
    @staticmethod
2303
    def from_binary(data):
2304 1
        obj = OpenSecureChannelParameters()
2305 1
        obj.ClientProtocolVersion = unpack_uatype('UInt32', data)
2306 1
        obj.RequestType = unpack_uatype('UInt32', data)
2307 1
        obj.SecurityMode = unpack_uatype('UInt32', data)
2308 1
        obj.ClientNonce = unpack_uatype('ByteString', data)
2309 1
        obj.RequestedLifetime = unpack_uatype('UInt32', data)
2310 1
        return obj
2311
2312 1
    def __str__(self):
2313
        return 'OpenSecureChannelParameters(' + 'ClientProtocolVersion:' + str(self.ClientProtocolVersion) + ', ' + \
2314
               'RequestType:' + str(self.RequestType) + ', ' + \
2315
               'SecurityMode:' + str(self.SecurityMode) + ', ' + \
2316
               'ClientNonce:' + str(self.ClientNonce) + ', ' + \
2317
               'RequestedLifetime:' + str(self.RequestedLifetime) + ')'
2318
2319 1
    __repr__ = __str__
2320
2321
2322 1
class OpenSecureChannelRequest(FrozenClass):
2323
    '''
2324
    Creates a secure channel with a server.
2325
2326
    :ivar TypeId:
2327
    :vartype TypeId: NodeId
2328
    :ivar RequestHeader:
2329
    :vartype RequestHeader: RequestHeader
2330
    :ivar Parameters:
2331
    :vartype Parameters: OpenSecureChannelParameters
2332
    '''
2333 1
    def __init__(self):
2334 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary)
2335 1
        self.RequestHeader = RequestHeader()
2336 1
        self.Parameters = OpenSecureChannelParameters()
2337 1
        self._freeze()
2338
2339 1
    def to_binary(self):
2340 1
        packet = []
2341 1
        packet.append(self.TypeId.to_binary())
2342 1
        packet.append(self.RequestHeader.to_binary())
2343 1
        packet.append(self.Parameters.to_binary())
2344 1
        return b''.join(packet)
2345
2346 1
    @staticmethod
2347
    def from_binary(data):
2348 1
        obj = OpenSecureChannelRequest()
2349 1
        obj.TypeId = NodeId.from_binary(data)
2350 1
        obj.RequestHeader = RequestHeader.from_binary(data)
2351 1
        obj.Parameters = OpenSecureChannelParameters.from_binary(data)
2352 1
        return obj
2353
2354 1
    def __str__(self):
2355
        return 'OpenSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2356
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2357
               'Parameters:' + str(self.Parameters) + ')'
2358
2359 1
    __repr__ = __str__
2360
2361
2362 1
class OpenSecureChannelResult(FrozenClass):
2363
    '''
2364
    :ivar ServerProtocolVersion:
2365
    :vartype ServerProtocolVersion: UInt32
2366
    :ivar SecurityToken:
2367
    :vartype SecurityToken: ChannelSecurityToken
2368
    :ivar ServerNonce:
2369
    :vartype ServerNonce: ByteString
2370
    '''
2371 1
    def __init__(self):
2372 1
        self.ServerProtocolVersion = 0
2373 1
        self.SecurityToken = ChannelSecurityToken()
2374 1
        self.ServerNonce = b''
2375 1
        self._freeze()
2376
2377 1
    def to_binary(self):
2378 1
        packet = []
2379 1
        packet.append(pack_uatype('UInt32', self.ServerProtocolVersion))
2380 1
        packet.append(self.SecurityToken.to_binary())
2381 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
2382 1
        return b''.join(packet)
2383
2384 1
    @staticmethod
2385
    def from_binary(data):
2386 1
        obj = OpenSecureChannelResult()
2387 1
        obj.ServerProtocolVersion = unpack_uatype('UInt32', data)
2388 1
        obj.SecurityToken = ChannelSecurityToken.from_binary(data)
2389 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
2390 1
        return obj
2391
2392 1
    def __str__(self):
2393
        return 'OpenSecureChannelResult(' + 'ServerProtocolVersion:' + str(self.ServerProtocolVersion) + ', ' + \
2394
               'SecurityToken:' + str(self.SecurityToken) + ', ' + \
2395
               'ServerNonce:' + str(self.ServerNonce) + ')'
2396
2397 1
    __repr__ = __str__
2398
2399
2400 1
class OpenSecureChannelResponse(FrozenClass):
2401
    '''
2402
    Creates a secure channel with a server.
2403
2404
    :ivar TypeId:
2405
    :vartype TypeId: NodeId
2406
    :ivar ResponseHeader:
2407
    :vartype ResponseHeader: ResponseHeader
2408
    :ivar Parameters:
2409
    :vartype Parameters: OpenSecureChannelResult
2410
    '''
2411 1
    def __init__(self):
2412 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary)
2413 1
        self.ResponseHeader = ResponseHeader()
2414 1
        self.Parameters = OpenSecureChannelResult()
2415 1
        self._freeze()
2416
2417 1
    def to_binary(self):
2418 1
        packet = []
2419 1
        packet.append(self.TypeId.to_binary())
2420 1
        packet.append(self.ResponseHeader.to_binary())
2421 1
        packet.append(self.Parameters.to_binary())
2422 1
        return b''.join(packet)
2423
2424 1
    @staticmethod
2425
    def from_binary(data):
2426 1
        obj = OpenSecureChannelResponse()
2427 1
        obj.TypeId = NodeId.from_binary(data)
2428 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2429 1
        obj.Parameters = OpenSecureChannelResult.from_binary(data)
2430 1
        return obj
2431
2432 1
    def __str__(self):
2433
        return 'OpenSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2434
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
2435
               'Parameters:' + str(self.Parameters) + ')'
2436
2437 1
    __repr__ = __str__
2438
2439
2440 1
class CloseSecureChannelRequest(FrozenClass):
2441
    '''
2442
    Closes a secure channel.
2443
2444
    :ivar TypeId:
2445
    :vartype TypeId: NodeId
2446
    :ivar RequestHeader:
2447
    :vartype RequestHeader: RequestHeader
2448
    '''
2449 1
    def __init__(self):
2450 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary)
2451 1
        self.RequestHeader = RequestHeader()
2452 1
        self._freeze()
2453
2454 1
    def to_binary(self):
2455 1
        packet = []
2456 1
        packet.append(self.TypeId.to_binary())
2457 1
        packet.append(self.RequestHeader.to_binary())
2458 1
        return b''.join(packet)
2459
2460 1
    @staticmethod
2461
    def from_binary(data):
2462
        obj = CloseSecureChannelRequest()
2463
        obj.TypeId = NodeId.from_binary(data)
2464
        obj.RequestHeader = RequestHeader.from_binary(data)
2465
        return obj
2466
2467 1
    def __str__(self):
2468
        return 'CloseSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2469
               'RequestHeader:' + str(self.RequestHeader) + ')'
2470
2471 1
    __repr__ = __str__
2472
2473
2474 1
class CloseSecureChannelResponse(FrozenClass):
2475
    '''
2476
    Closes a secure channel.
2477
2478
    :ivar TypeId:
2479
    :vartype TypeId: NodeId
2480
    :ivar ResponseHeader:
2481
    :vartype ResponseHeader: ResponseHeader
2482
    '''
2483 1
    def __init__(self):
2484
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary)
2485
        self.ResponseHeader = ResponseHeader()
2486
        self._freeze()
2487
2488 1
    def to_binary(self):
2489
        packet = []
2490
        packet.append(self.TypeId.to_binary())
2491
        packet.append(self.ResponseHeader.to_binary())
2492
        return b''.join(packet)
2493
2494 1
    @staticmethod
2495
    def from_binary(data):
2496
        obj = CloseSecureChannelResponse()
2497
        obj.TypeId = NodeId.from_binary(data)
2498
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2499
        return obj
2500
2501 1
    def __str__(self):
2502
        return 'CloseSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2503
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
2504
2505 1
    __repr__ = __str__
2506
2507
2508 1
class SignedSoftwareCertificate(FrozenClass):
2509
    '''
2510
    A software certificate with a digital signature.
2511
2512
    :ivar CertificateData:
2513
    :vartype CertificateData: ByteString
2514
    :ivar Signature:
2515
    :vartype Signature: ByteString
2516
    '''
2517 1
    def __init__(self):
2518
        self.CertificateData = b''
2519
        self.Signature = b''
2520
        self._freeze()
2521
2522 1
    def to_binary(self):
2523
        packet = []
2524
        packet.append(pack_uatype('ByteString', self.CertificateData))
2525
        packet.append(pack_uatype('ByteString', self.Signature))
2526
        return b''.join(packet)
2527
2528 1
    @staticmethod
2529
    def from_binary(data):
2530
        obj = SignedSoftwareCertificate()
2531
        obj.CertificateData = unpack_uatype('ByteString', data)
2532
        obj.Signature = unpack_uatype('ByteString', data)
2533
        return obj
2534
2535 1
    def __str__(self):
2536
        return 'SignedSoftwareCertificate(' + 'CertificateData:' + str(self.CertificateData) + ', ' + \
2537
               'Signature:' + str(self.Signature) + ')'
2538
2539 1
    __repr__ = __str__
2540
2541
2542 1
class SignatureData(FrozenClass):
2543
    '''
2544
    A digital signature.
2545
2546
    :ivar Algorithm:
2547
    :vartype Algorithm: String
2548
    :ivar Signature:
2549
    :vartype Signature: ByteString
2550
    '''
2551 1
    def __init__(self):
2552 1
        self.Algorithm = ''
2553 1
        self.Signature = b''
2554 1
        self._freeze()
2555
2556 1
    def to_binary(self):
2557 1
        packet = []
2558 1
        packet.append(pack_uatype('String', self.Algorithm))
2559 1
        packet.append(pack_uatype('ByteString', self.Signature))
2560 1
        return b''.join(packet)
2561
2562 1
    @staticmethod
2563
    def from_binary(data):
2564 1
        obj = SignatureData()
2565 1
        obj.Algorithm = unpack_uatype('String', data)
2566 1
        obj.Signature = unpack_uatype('ByteString', data)
2567 1
        return obj
2568
2569 1
    def __str__(self):
2570
        return 'SignatureData(' + 'Algorithm:' + str(self.Algorithm) + ', ' + \
2571
               'Signature:' + str(self.Signature) + ')'
2572
2573 1
    __repr__ = __str__
2574
2575
2576 1
class CreateSessionParameters(FrozenClass):
2577
    '''
2578
    :ivar ClientDescription:
2579
    :vartype ClientDescription: ApplicationDescription
2580
    :ivar ServerUri:
2581
    :vartype ServerUri: String
2582
    :ivar EndpointUrl:
2583
    :vartype EndpointUrl: String
2584
    :ivar SessionName:
2585
    :vartype SessionName: String
2586
    :ivar ClientNonce:
2587
    :vartype ClientNonce: ByteString
2588
    :ivar ClientCertificate:
2589
    :vartype ClientCertificate: ByteString
2590
    :ivar RequestedSessionTimeout:
2591
    :vartype RequestedSessionTimeout: Double
2592
    :ivar MaxResponseMessageSize:
2593
    :vartype MaxResponseMessageSize: UInt32
2594
    '''
2595 1
    def __init__(self):
2596 1
        self.ClientDescription = ApplicationDescription()
2597 1
        self.ServerUri = ''
2598 1
        self.EndpointUrl = ''
2599 1
        self.SessionName = ''
2600 1
        self.ClientNonce = b''
2601 1
        self.ClientCertificate = b''
2602 1
        self.RequestedSessionTimeout = 0
2603 1
        self.MaxResponseMessageSize = 0
2604 1
        self._freeze()
2605
2606 1
    def to_binary(self):
2607 1
        packet = []
2608 1
        packet.append(self.ClientDescription.to_binary())
2609 1
        packet.append(pack_uatype('String', self.ServerUri))
2610 1
        packet.append(pack_uatype('String', self.EndpointUrl))
2611 1
        packet.append(pack_uatype('String', self.SessionName))
2612 1
        packet.append(pack_uatype('ByteString', self.ClientNonce))
2613 1
        packet.append(pack_uatype('ByteString', self.ClientCertificate))
2614 1
        packet.append(pack_uatype('Double', self.RequestedSessionTimeout))
2615 1
        packet.append(pack_uatype('UInt32', self.MaxResponseMessageSize))
2616 1
        return b''.join(packet)
2617
2618 1
    @staticmethod
2619
    def from_binary(data):
2620 1
        obj = CreateSessionParameters()
2621 1
        obj.ClientDescription = ApplicationDescription.from_binary(data)
2622 1
        obj.ServerUri = unpack_uatype('String', data)
2623 1
        obj.EndpointUrl = unpack_uatype('String', data)
2624 1
        obj.SessionName = unpack_uatype('String', data)
2625 1
        obj.ClientNonce = unpack_uatype('ByteString', data)
2626 1
        obj.ClientCertificate = unpack_uatype('ByteString', data)
2627 1
        obj.RequestedSessionTimeout = unpack_uatype('Double', data)
2628 1
        obj.MaxResponseMessageSize = unpack_uatype('UInt32', data)
2629 1
        return obj
2630
2631 1
    def __str__(self):
2632
        return 'CreateSessionParameters(' + 'ClientDescription:' + str(self.ClientDescription) + ', ' + \
2633
               'ServerUri:' + str(self.ServerUri) + ', ' + \
2634
               'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
2635
               'SessionName:' + str(self.SessionName) + ', ' + \
2636
               'ClientNonce:' + str(self.ClientNonce) + ', ' + \
2637
               'ClientCertificate:' + str(self.ClientCertificate) + ', ' + \
2638
               'RequestedSessionTimeout:' + str(self.RequestedSessionTimeout) + ', ' + \
2639
               'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ')'
2640
2641 1
    __repr__ = __str__
2642
2643
2644 1
class CreateSessionRequest(FrozenClass):
2645
    '''
2646
    Creates a new session with the server.
2647
2648
    :ivar TypeId:
2649
    :vartype TypeId: NodeId
2650
    :ivar RequestHeader:
2651
    :vartype RequestHeader: RequestHeader
2652
    :ivar Parameters:
2653
    :vartype Parameters: CreateSessionParameters
2654
    '''
2655 1
    def __init__(self):
2656 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionRequest_Encoding_DefaultBinary)
2657 1
        self.RequestHeader = RequestHeader()
2658 1
        self.Parameters = CreateSessionParameters()
2659 1
        self._freeze()
2660
2661 1
    def to_binary(self):
2662 1
        packet = []
2663 1
        packet.append(self.TypeId.to_binary())
2664 1
        packet.append(self.RequestHeader.to_binary())
2665 1
        packet.append(self.Parameters.to_binary())
2666 1
        return b''.join(packet)
2667
2668 1
    @staticmethod
2669
    def from_binary(data):
2670
        obj = CreateSessionRequest()
2671
        obj.TypeId = NodeId.from_binary(data)
2672
        obj.RequestHeader = RequestHeader.from_binary(data)
2673
        obj.Parameters = CreateSessionParameters.from_binary(data)
2674
        return obj
2675
2676 1
    def __str__(self):
2677
        return 'CreateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2678
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
2679
               'Parameters:' + str(self.Parameters) + ')'
2680
2681 1
    __repr__ = __str__
2682
2683
2684 1
class CreateSessionResult(FrozenClass):
2685
    '''
2686
    :ivar SessionId:
2687
    :vartype SessionId: NodeId
2688
    :ivar AuthenticationToken:
2689
    :vartype AuthenticationToken: NodeId
2690
    :ivar RevisedSessionTimeout:
2691
    :vartype RevisedSessionTimeout: Double
2692
    :ivar ServerNonce:
2693
    :vartype ServerNonce: ByteString
2694
    :ivar ServerCertificate:
2695
    :vartype ServerCertificate: ByteString
2696
    :ivar ServerEndpoints:
2697
    :vartype ServerEndpoints: EndpointDescription
2698
    :ivar ServerSoftwareCertificates:
2699
    :vartype ServerSoftwareCertificates: SignedSoftwareCertificate
2700
    :ivar ServerSignature:
2701
    :vartype ServerSignature: SignatureData
2702
    :ivar MaxRequestMessageSize:
2703
    :vartype MaxRequestMessageSize: UInt32
2704
    '''
2705 1
    def __init__(self):
2706 1
        self.SessionId = NodeId()
2707 1
        self.AuthenticationToken = NodeId()
2708 1
        self.RevisedSessionTimeout = 0
2709 1
        self.ServerNonce = b''
2710 1
        self.ServerCertificate = b''
2711 1
        self.ServerEndpoints = []
2712 1
        self.ServerSoftwareCertificates = []
2713 1
        self.ServerSignature = SignatureData()
2714 1
        self.MaxRequestMessageSize = 0
2715 1
        self._freeze()
2716
2717 1
    def to_binary(self):
2718 1
        packet = []
2719 1
        packet.append(self.SessionId.to_binary())
2720 1
        packet.append(self.AuthenticationToken.to_binary())
2721 1
        packet.append(pack_uatype('Double', self.RevisedSessionTimeout))
2722 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
2723 1
        packet.append(pack_uatype('ByteString', self.ServerCertificate))
2724 1
        packet.append(struct.pack('<i', len(self.ServerEndpoints)))
2725 1
        for fieldname in self.ServerEndpoints:
2726 1
            packet.append(fieldname.to_binary())
2727 1
        packet.append(struct.pack('<i', len(self.ServerSoftwareCertificates)))
2728 1
        for fieldname in self.ServerSoftwareCertificates:
2729
            packet.append(fieldname.to_binary())
2730 1
        packet.append(self.ServerSignature.to_binary())
2731 1
        packet.append(pack_uatype('UInt32', self.MaxRequestMessageSize))
2732 1
        return b''.join(packet)
2733
2734 1
    @staticmethod
2735
    def from_binary(data):
2736 1
        obj = CreateSessionResult()
2737 1
        obj.SessionId = NodeId.from_binary(data)
2738 1
        obj.AuthenticationToken = NodeId.from_binary(data)
2739 1
        obj.RevisedSessionTimeout = unpack_uatype('Double', data)
2740 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
2741 1
        obj.ServerCertificate = unpack_uatype('ByteString', data)
2742 1
        length = struct.unpack('<i', data.read(4))[0]
2743 1
        if length != -1:
2744 1
            for _ in range(0, length):
2745 1
                obj.ServerEndpoints.append(EndpointDescription.from_binary(data))
2746 1
        length = struct.unpack('<i', data.read(4))[0]
2747 1
        if length != -1:
2748 1
            for _ in range(0, length):
2749
                obj.ServerSoftwareCertificates.append(SignedSoftwareCertificate.from_binary(data))
2750 1
        obj.ServerSignature = SignatureData.from_binary(data)
2751 1
        obj.MaxRequestMessageSize = unpack_uatype('UInt32', data)
2752 1
        return obj
2753
2754 1
    def __str__(self):
2755
        return 'CreateSessionResult(' + 'SessionId:' + str(self.SessionId) + ', ' + \
2756
               'AuthenticationToken:' + str(self.AuthenticationToken) + ', ' + \
2757
               'RevisedSessionTimeout:' + str(self.RevisedSessionTimeout) + ', ' + \
2758
               'ServerNonce:' + str(self.ServerNonce) + ', ' + \
2759
               'ServerCertificate:' + str(self.ServerCertificate) + ', ' + \
2760
               'ServerEndpoints:' + str(self.ServerEndpoints) + ', ' + \
2761
               'ServerSoftwareCertificates:' + str(self.ServerSoftwareCertificates) + ', ' + \
2762
               'ServerSignature:' + str(self.ServerSignature) + ', ' + \
2763
               'MaxRequestMessageSize:' + str(self.MaxRequestMessageSize) + ')'
2764
2765 1
    __repr__ = __str__
2766
2767
2768 1
class CreateSessionResponse(FrozenClass):
2769
    '''
2770
    Creates a new session with the server.
2771
2772
    :ivar TypeId:
2773
    :vartype TypeId: NodeId
2774
    :ivar ResponseHeader:
2775
    :vartype ResponseHeader: ResponseHeader
2776
    :ivar Parameters:
2777
    :vartype Parameters: CreateSessionResult
2778
    '''
2779 1
    def __init__(self):
2780 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionResponse_Encoding_DefaultBinary)
2781 1
        self.ResponseHeader = ResponseHeader()
2782 1
        self.Parameters = CreateSessionResult()
2783 1
        self._freeze()
2784
2785 1
    def to_binary(self):
2786 1
        packet = []
2787 1
        packet.append(self.TypeId.to_binary())
2788 1
        packet.append(self.ResponseHeader.to_binary())
2789 1
        packet.append(self.Parameters.to_binary())
2790 1
        return b''.join(packet)
2791
2792 1
    @staticmethod
2793
    def from_binary(data):
2794 1
        obj = CreateSessionResponse()
2795 1
        obj.TypeId = NodeId.from_binary(data)
2796 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2797 1
        obj.Parameters = CreateSessionResult.from_binary(data)
2798 1
        return obj
2799
2800 1
    def __str__(self):
2801
        return 'CreateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
2802
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
2803
               'Parameters:' + str(self.Parameters) + ')'
2804
2805 1
    __repr__ = __str__
2806
2807
2808 1
class UserIdentityToken(FrozenClass):
2809
    '''
2810
    A base type for a user identity token.
2811
2812
    :ivar PolicyId:
2813
    :vartype PolicyId: String
2814
    '''
2815 1
    def __init__(self):
2816
        self.PolicyId = ''
2817
        self._freeze()
2818
2819 1
    def to_binary(self):
2820
        packet = []
2821
        packet.append(pack_uatype('String', self.PolicyId))
2822
        return b''.join(packet)
2823
2824 1
    @staticmethod
2825
    def from_binary(data):
2826
        obj = UserIdentityToken()
2827
        obj.PolicyId = unpack_uatype('String', data)
2828
        return obj
2829
2830 1
    def __str__(self):
2831
        return 'UserIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
2832
2833 1
    __repr__ = __str__
2834
2835
2836 1
class AnonymousIdentityToken(FrozenClass):
2837
    '''
2838
    A token representing an anonymous user.
2839
2840
    :ivar PolicyId:
2841
    :vartype PolicyId: String
2842
    '''
2843 1
    def __init__(self):
2844 1
        self.PolicyId = ''
2845 1
        self._freeze()
2846
2847 1
    def to_binary(self):
2848 1
        packet = []
2849 1
        packet.append(pack_uatype('String', self.PolicyId))
2850 1
        return b''.join(packet)
2851
2852 1
    @staticmethod
2853
    def from_binary(data):
2854 1
        obj = AnonymousIdentityToken()
2855 1
        obj.PolicyId = unpack_uatype('String', data)
2856 1
        return obj
2857
2858 1
    def __str__(self):
2859
        return 'AnonymousIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
2860
2861 1
    __repr__ = __str__
2862
2863
2864 1
class UserNameIdentityToken(FrozenClass):
2865
    '''
2866
    A token representing a user identified by a user name and password.
2867
2868
    :ivar PolicyId:
2869
    :vartype PolicyId: String
2870
    :ivar UserName:
2871
    :vartype UserName: String
2872
    :ivar Password:
2873
    :vartype Password: ByteString
2874
    :ivar EncryptionAlgorithm:
2875
    :vartype EncryptionAlgorithm: String
2876
    '''
2877 1
    def __init__(self):
2878 1
        self.PolicyId = ''
2879 1
        self.UserName = ''
2880 1
        self.Password = b''
2881 1
        self.EncryptionAlgorithm = ''
2882 1
        self._freeze()
2883
2884 1
    def to_binary(self):
2885 1
        packet = []
2886 1
        packet.append(pack_uatype('String', self.PolicyId))
2887 1
        packet.append(pack_uatype('String', self.UserName))
2888 1
        packet.append(pack_uatype('ByteString', self.Password))
2889 1
        packet.append(pack_uatype('String', self.EncryptionAlgorithm))
2890 1
        return b''.join(packet)
2891
2892 1
    @staticmethod
2893
    def from_binary(data):
2894 1
        obj = UserNameIdentityToken()
2895 1
        obj.PolicyId = unpack_uatype('String', data)
2896 1
        obj.UserName = unpack_uatype('String', data)
2897 1
        obj.Password = unpack_uatype('ByteString', data)
2898 1
        obj.EncryptionAlgorithm = unpack_uatype('String', data)
2899 1
        return obj
2900
2901 1
    def __str__(self):
2902
        return 'UserNameIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
2903
               'UserName:' + str(self.UserName) + ', ' + \
2904
               'Password:' + str(self.Password) + ', ' + \
2905
               'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
2906
2907 1
    __repr__ = __str__
2908
2909
2910 1
class X509IdentityToken(FrozenClass):
2911
    '''
2912
    A token representing a user identified by an X509 certificate.
2913
2914
    :ivar PolicyId:
2915
    :vartype PolicyId: String
2916
    :ivar CertificateData:
2917
    :vartype CertificateData: ByteString
2918
    '''
2919 1
    def __init__(self):
2920
        self.PolicyId = ''
2921
        self.CertificateData = b''
2922
        self._freeze()
2923
2924 1
    def to_binary(self):
2925
        packet = []
2926
        packet.append(pack_uatype('String', self.PolicyId))
2927
        packet.append(pack_uatype('ByteString', self.CertificateData))
2928
        return b''.join(packet)
2929
2930 1
    @staticmethod
2931
    def from_binary(data):
2932
        obj = X509IdentityToken()
2933
        obj.PolicyId = unpack_uatype('String', data)
2934
        obj.CertificateData = unpack_uatype('ByteString', data)
2935
        return obj
2936
2937 1
    def __str__(self):
2938
        return 'X509IdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
2939
               'CertificateData:' + str(self.CertificateData) + ')'
2940
2941 1
    __repr__ = __str__
2942
2943
2944 1
class KerberosIdentityToken(FrozenClass):
2945
    '''
2946
    :ivar PolicyId:
2947
    :vartype PolicyId: String
2948
    :ivar TicketData:
2949
    :vartype TicketData: ByteString
2950
    '''
2951 1
    def __init__(self):
2952
        self.PolicyId = ''
2953
        self.TicketData = b''
2954
        self._freeze()
2955
2956 1
    def to_binary(self):
2957
        packet = []
2958
        packet.append(pack_uatype('String', self.PolicyId))
2959
        packet.append(pack_uatype('ByteString', self.TicketData))
2960
        return b''.join(packet)
2961
2962 1
    @staticmethod
2963
    def from_binary(data):
2964
        obj = KerberosIdentityToken()
2965
        obj.PolicyId = unpack_uatype('String', data)
2966
        obj.TicketData = unpack_uatype('ByteString', data)
2967
        return obj
2968
2969 1
    def __str__(self):
2970
        return 'KerberosIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
2971
               'TicketData:' + str(self.TicketData) + ')'
2972
2973 1
    __repr__ = __str__
2974
2975
2976 1
class IssuedIdentityToken(FrozenClass):
2977
    '''
2978
    A token representing a user identified by a WS-Security XML token.
2979
2980
    :ivar PolicyId:
2981
    :vartype PolicyId: String
2982
    :ivar TokenData:
2983
    :vartype TokenData: ByteString
2984
    :ivar EncryptionAlgorithm:
2985
    :vartype EncryptionAlgorithm: String
2986
    '''
2987 1
    def __init__(self):
2988
        self.PolicyId = ''
2989
        self.TokenData = b''
2990
        self.EncryptionAlgorithm = ''
2991
        self._freeze()
2992
2993 1
    def to_binary(self):
2994
        packet = []
2995
        packet.append(pack_uatype('String', self.PolicyId))
2996
        packet.append(pack_uatype('ByteString', self.TokenData))
2997
        packet.append(pack_uatype('String', self.EncryptionAlgorithm))
2998
        return b''.join(packet)
2999
3000 1
    @staticmethod
3001
    def from_binary(data):
3002
        obj = IssuedIdentityToken()
3003
        obj.PolicyId = unpack_uatype('String', data)
3004
        obj.TokenData = unpack_uatype('ByteString', data)
3005
        obj.EncryptionAlgorithm = unpack_uatype('String', data)
3006
        return obj
3007
3008 1
    def __str__(self):
3009
        return 'IssuedIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', ' + \
3010
               'TokenData:' + str(self.TokenData) + ', ' + \
3011
               'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
3012
3013 1
    __repr__ = __str__
3014
3015
3016 1
class ActivateSessionParameters(FrozenClass):
3017
    '''
3018
    :ivar ClientSignature:
3019
    :vartype ClientSignature: SignatureData
3020
    :ivar ClientSoftwareCertificates:
3021
    :vartype ClientSoftwareCertificates: SignedSoftwareCertificate
3022
    :ivar LocaleIds:
3023
    :vartype LocaleIds: String
3024
    :ivar UserIdentityToken:
3025
    :vartype UserIdentityToken: ExtensionObject
3026
    :ivar UserTokenSignature:
3027
    :vartype UserTokenSignature: SignatureData
3028
    '''
3029 1
    def __init__(self):
3030 1
        self.ClientSignature = SignatureData()
3031 1
        self.ClientSoftwareCertificates = []
3032 1
        self.LocaleIds = []
3033 1
        self.UserIdentityToken = None
3034 1
        self.UserTokenSignature = SignatureData()
3035 1
        self._freeze()
3036
3037 1
    def to_binary(self):
3038 1
        packet = []
3039 1
        packet.append(self.ClientSignature.to_binary())
3040 1
        packet.append(struct.pack('<i', len(self.ClientSoftwareCertificates)))
3041 1
        for fieldname in self.ClientSoftwareCertificates:
3042
            packet.append(fieldname.to_binary())
3043 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
3044 1
        for fieldname in self.LocaleIds:
3045 1
            packet.append(pack_uatype('String', fieldname))
3046 1
        packet.append(extensionobject_to_binary(self.UserIdentityToken))
3047 1
        packet.append(self.UserTokenSignature.to_binary())
3048 1
        return b''.join(packet)
3049
3050 1
    @staticmethod
3051
    def from_binary(data):
3052 1
        obj = ActivateSessionParameters()
3053 1
        obj.ClientSignature = SignatureData.from_binary(data)
3054 1
        length = struct.unpack('<i', data.read(4))[0]
3055 1
        if length != -1:
3056 1
            for _ in range(0, length):
3057
                obj.ClientSoftwareCertificates.append(SignedSoftwareCertificate.from_binary(data))
3058 1
        obj.LocaleIds = unpack_uatype_array('String', data)
3059 1
        obj.UserIdentityToken = extensionobject_from_binary(data)
3060 1
        obj.UserTokenSignature = SignatureData.from_binary(data)
3061 1
        return obj
3062
3063 1
    def __str__(self):
3064
        return 'ActivateSessionParameters(' + 'ClientSignature:' + str(self.ClientSignature) + ', ' + \
3065
               'ClientSoftwareCertificates:' + str(self.ClientSoftwareCertificates) + ', ' + \
3066
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
3067
               'UserIdentityToken:' + str(self.UserIdentityToken) + ', ' + \
3068
               'UserTokenSignature:' + str(self.UserTokenSignature) + ')'
3069
3070 1
    __repr__ = __str__
3071
3072
3073 1
class ActivateSessionRequest(FrozenClass):
3074
    '''
3075
    Activates a session with the server.
3076
3077
    :ivar TypeId:
3078
    :vartype TypeId: NodeId
3079
    :ivar RequestHeader:
3080
    :vartype RequestHeader: RequestHeader
3081
    :ivar Parameters:
3082
    :vartype Parameters: ActivateSessionParameters
3083
    '''
3084 1
    def __init__(self):
3085 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary)
3086 1
        self.RequestHeader = RequestHeader()
3087 1
        self.Parameters = ActivateSessionParameters()
3088 1
        self._freeze()
3089
3090 1
    def to_binary(self):
3091 1
        packet = []
3092 1
        packet.append(self.TypeId.to_binary())
3093 1
        packet.append(self.RequestHeader.to_binary())
3094 1
        packet.append(self.Parameters.to_binary())
3095 1
        return b''.join(packet)
3096
3097 1
    @staticmethod
3098
    def from_binary(data):
3099
        obj = ActivateSessionRequest()
3100
        obj.TypeId = NodeId.from_binary(data)
3101
        obj.RequestHeader = RequestHeader.from_binary(data)
3102
        obj.Parameters = ActivateSessionParameters.from_binary(data)
3103
        return obj
3104
3105 1
    def __str__(self):
3106
        return 'ActivateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3107
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
3108
               'Parameters:' + str(self.Parameters) + ')'
3109
3110 1
    __repr__ = __str__
3111
3112
3113 1
class ActivateSessionResult(FrozenClass):
3114
    '''
3115
    :ivar ServerNonce:
3116
    :vartype ServerNonce: ByteString
3117
    :ivar Results:
3118
    :vartype Results: StatusCode
3119
    :ivar DiagnosticInfos:
3120
    :vartype DiagnosticInfos: DiagnosticInfo
3121
    '''
3122 1
    def __init__(self):
3123 1
        self.ServerNonce = b''
3124 1
        self.Results = []
3125 1
        self.DiagnosticInfos = []
3126 1
        self._freeze()
3127
3128 1
    def to_binary(self):
3129 1
        packet = []
3130 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
3131 1
        packet.append(struct.pack('<i', len(self.Results)))
3132 1
        for fieldname in self.Results:
3133
            packet.append(fieldname.to_binary())
3134 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
3135 1
        for fieldname in self.DiagnosticInfos:
3136
            packet.append(fieldname.to_binary())
3137 1
        return b''.join(packet)
3138
3139 1
    @staticmethod
3140
    def from_binary(data):
3141 1
        obj = ActivateSessionResult()
3142 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
3143 1
        length = struct.unpack('<i', data.read(4))[0]
3144 1
        if length != -1:
3145 1
            for _ in range(0, length):
3146
                obj.Results.append(StatusCode.from_binary(data))
3147 1
        length = struct.unpack('<i', data.read(4))[0]
3148 1
        if length != -1:
3149 1
            for _ in range(0, length):
3150
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
3151 1
        return obj
3152
3153 1
    def __str__(self):
3154
        return 'ActivateSessionResult(' + 'ServerNonce:' + str(self.ServerNonce) + ', ' + \
3155
               'Results:' + str(self.Results) + ', ' + \
3156
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
3157
3158 1
    __repr__ = __str__
3159
3160
3161 1
class ActivateSessionResponse(FrozenClass):
3162
    '''
3163
    Activates a session with the server.
3164
3165
    :ivar TypeId:
3166
    :vartype TypeId: NodeId
3167
    :ivar ResponseHeader:
3168
    :vartype ResponseHeader: ResponseHeader
3169
    :ivar Parameters:
3170
    :vartype Parameters: ActivateSessionResult
3171
    '''
3172 1
    def __init__(self):
3173 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary)
3174 1
        self.ResponseHeader = ResponseHeader()
3175 1
        self.Parameters = ActivateSessionResult()
3176 1
        self._freeze()
3177
3178 1
    def to_binary(self):
3179 1
        packet = []
3180 1
        packet.append(self.TypeId.to_binary())
3181 1
        packet.append(self.ResponseHeader.to_binary())
3182 1
        packet.append(self.Parameters.to_binary())
3183 1
        return b''.join(packet)
3184
3185 1
    @staticmethod
3186
    def from_binary(data):
3187 1
        obj = ActivateSessionResponse()
3188 1
        obj.TypeId = NodeId.from_binary(data)
3189 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3190 1
        obj.Parameters = ActivateSessionResult.from_binary(data)
3191 1
        return obj
3192
3193 1
    def __str__(self):
3194
        return 'ActivateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3195
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
3196
               'Parameters:' + str(self.Parameters) + ')'
3197
3198 1
    __repr__ = __str__
3199
3200
3201 1
class CloseSessionRequest(FrozenClass):
3202
    '''
3203
    Closes a session with the server.
3204
3205
    :ivar TypeId:
3206
    :vartype TypeId: NodeId
3207
    :ivar RequestHeader:
3208
    :vartype RequestHeader: RequestHeader
3209
    :ivar DeleteSubscriptions:
3210
    :vartype DeleteSubscriptions: Boolean
3211
    '''
3212 1
    def __init__(self):
3213 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionRequest_Encoding_DefaultBinary)
3214 1
        self.RequestHeader = RequestHeader()
3215 1
        self.DeleteSubscriptions = True
3216 1
        self._freeze()
3217
3218 1
    def to_binary(self):
3219 1
        packet = []
3220 1
        packet.append(self.TypeId.to_binary())
3221 1
        packet.append(self.RequestHeader.to_binary())
3222 1
        packet.append(pack_uatype('Boolean', self.DeleteSubscriptions))
3223 1
        return b''.join(packet)
3224
3225 1
    @staticmethod
3226
    def from_binary(data):
3227
        obj = CloseSessionRequest()
3228
        obj.TypeId = NodeId.from_binary(data)
3229
        obj.RequestHeader = RequestHeader.from_binary(data)
3230
        obj.DeleteSubscriptions = unpack_uatype('Boolean', data)
3231
        return obj
3232
3233 1
    def __str__(self):
3234
        return 'CloseSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3235
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
3236
               'DeleteSubscriptions:' + str(self.DeleteSubscriptions) + ')'
3237
3238 1
    __repr__ = __str__
3239
3240
3241 1
class CloseSessionResponse(FrozenClass):
3242
    '''
3243
    Closes a session with the server.
3244
3245
    :ivar TypeId:
3246
    :vartype TypeId: NodeId
3247
    :ivar ResponseHeader:
3248
    :vartype ResponseHeader: ResponseHeader
3249
    '''
3250 1
    def __init__(self):
3251 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionResponse_Encoding_DefaultBinary)
3252 1
        self.ResponseHeader = ResponseHeader()
3253 1
        self._freeze()
3254
3255 1
    def to_binary(self):
3256 1
        packet = []
3257 1
        packet.append(self.TypeId.to_binary())
3258 1
        packet.append(self.ResponseHeader.to_binary())
3259 1
        return b''.join(packet)
3260
3261 1
    @staticmethod
3262
    def from_binary(data):
3263 1
        obj = CloseSessionResponse()
3264 1
        obj.TypeId = NodeId.from_binary(data)
3265 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3266 1
        return obj
3267
3268 1
    def __str__(self):
3269
        return 'CloseSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3270
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
3271
3272 1
    __repr__ = __str__
3273
3274
3275 1
class CancelParameters(FrozenClass):
3276
    '''
3277
    :ivar RequestHandle:
3278
    :vartype RequestHandle: UInt32
3279
    '''
3280 1
    def __init__(self):
3281
        self.RequestHandle = 0
3282
        self._freeze()
3283
3284 1
    def to_binary(self):
3285
        packet = []
3286
        packet.append(pack_uatype('UInt32', self.RequestHandle))
3287
        return b''.join(packet)
3288
3289 1
    @staticmethod
3290
    def from_binary(data):
3291
        obj = CancelParameters()
3292
        obj.RequestHandle = unpack_uatype('UInt32', data)
3293
        return obj
3294
3295 1
    def __str__(self):
3296
        return 'CancelParameters(' + 'RequestHandle:' + str(self.RequestHandle) + ')'
3297
3298 1
    __repr__ = __str__
3299
3300
3301 1
class CancelRequest(FrozenClass):
3302
    '''
3303
    Cancels an outstanding request.
3304
3305
    :ivar TypeId:
3306
    :vartype TypeId: NodeId
3307
    :ivar RequestHeader:
3308
    :vartype RequestHeader: RequestHeader
3309
    :ivar Parameters:
3310
    :vartype Parameters: CancelParameters
3311
    '''
3312 1
    def __init__(self):
3313
        self.TypeId = FourByteNodeId(ObjectIds.CancelRequest_Encoding_DefaultBinary)
3314
        self.RequestHeader = RequestHeader()
3315
        self.Parameters = CancelParameters()
3316
        self._freeze()
3317
3318 1
    def to_binary(self):
3319
        packet = []
3320
        packet.append(self.TypeId.to_binary())
3321
        packet.append(self.RequestHeader.to_binary())
3322
        packet.append(self.Parameters.to_binary())
3323
        return b''.join(packet)
3324
3325 1
    @staticmethod
3326
    def from_binary(data):
3327
        obj = CancelRequest()
3328
        obj.TypeId = NodeId.from_binary(data)
3329
        obj.RequestHeader = RequestHeader.from_binary(data)
3330
        obj.Parameters = CancelParameters.from_binary(data)
3331
        return obj
3332
3333 1
    def __str__(self):
3334
        return 'CancelRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3335
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
3336
               'Parameters:' + str(self.Parameters) + ')'
3337
3338 1
    __repr__ = __str__
3339
3340
3341 1
class CancelResult(FrozenClass):
3342
    '''
3343
    :ivar CancelCount:
3344
    :vartype CancelCount: UInt32
3345
    '''
3346 1
    def __init__(self):
3347
        self.CancelCount = 0
3348
        self._freeze()
3349
3350 1
    def to_binary(self):
3351
        packet = []
3352
        packet.append(pack_uatype('UInt32', self.CancelCount))
3353
        return b''.join(packet)
3354
3355 1
    @staticmethod
3356
    def from_binary(data):
3357
        obj = CancelResult()
3358
        obj.CancelCount = unpack_uatype('UInt32', data)
3359
        return obj
3360
3361 1
    def __str__(self):
3362
        return 'CancelResult(' + 'CancelCount:' + str(self.CancelCount) + ')'
3363
3364 1
    __repr__ = __str__
3365
3366
3367 1
class CancelResponse(FrozenClass):
3368
    '''
3369
    Cancels an outstanding request.
3370
3371
    :ivar TypeId:
3372
    :vartype TypeId: NodeId
3373
    :ivar ResponseHeader:
3374
    :vartype ResponseHeader: ResponseHeader
3375
    :ivar Parameters:
3376
    :vartype Parameters: CancelResult
3377
    '''
3378 1
    def __init__(self):
3379
        self.TypeId = FourByteNodeId(ObjectIds.CancelResponse_Encoding_DefaultBinary)
3380
        self.ResponseHeader = ResponseHeader()
3381
        self.Parameters = CancelResult()
3382
        self._freeze()
3383
3384 1
    def to_binary(self):
3385
        packet = []
3386
        packet.append(self.TypeId.to_binary())
3387
        packet.append(self.ResponseHeader.to_binary())
3388
        packet.append(self.Parameters.to_binary())
3389
        return b''.join(packet)
3390
3391 1
    @staticmethod
3392
    def from_binary(data):
3393
        obj = CancelResponse()
3394
        obj.TypeId = NodeId.from_binary(data)
3395
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3396
        obj.Parameters = CancelResult.from_binary(data)
3397
        return obj
3398
3399 1
    def __str__(self):
3400
        return 'CancelResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
3401
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
3402
               'Parameters:' + str(self.Parameters) + ')'
3403
3404 1
    __repr__ = __str__
3405
3406
3407 1
class NodeAttributes(FrozenClass):
3408
    '''
3409
    The base attributes for all nodes.
3410
3411
    :ivar SpecifiedAttributes:
3412
    :vartype SpecifiedAttributes: UInt32
3413
    :ivar DisplayName:
3414
    :vartype DisplayName: LocalizedText
3415
    :ivar Description:
3416
    :vartype Description: LocalizedText
3417
    :ivar WriteMask:
3418
    :vartype WriteMask: UInt32
3419
    :ivar UserWriteMask:
3420
    :vartype UserWriteMask: UInt32
3421
    '''
3422 1
    def __init__(self):
3423
        self.SpecifiedAttributes = 0
3424
        self.DisplayName = LocalizedText()
3425
        self.Description = LocalizedText()
3426
        self.WriteMask = 0
3427
        self.UserWriteMask = 0
3428
        self._freeze()
3429
3430 1
    def to_binary(self):
3431
        packet = []
3432
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3433
        packet.append(self.DisplayName.to_binary())
3434
        packet.append(self.Description.to_binary())
3435
        packet.append(pack_uatype('UInt32', self.WriteMask))
3436
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3437
        return b''.join(packet)
3438
3439 1
    @staticmethod
3440
    def from_binary(data):
3441
        obj = NodeAttributes()
3442
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3443
        obj.DisplayName = LocalizedText.from_binary(data)
3444
        obj.Description = LocalizedText.from_binary(data)
3445
        obj.WriteMask = unpack_uatype('UInt32', data)
3446
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3447
        return obj
3448
3449 1
    def __str__(self):
3450
        return 'NodeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3451
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3452
               'Description:' + str(self.Description) + ', ' + \
3453
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3454
               'UserWriteMask:' + str(self.UserWriteMask) + ')'
3455
3456 1
    __repr__ = __str__
3457
3458
3459 1
class ObjectAttributes(FrozenClass):
3460
    '''
3461
    The attributes for an object node.
3462
3463
    :ivar SpecifiedAttributes:
3464
    :vartype SpecifiedAttributes: UInt32
3465
    :ivar DisplayName:
3466
    :vartype DisplayName: LocalizedText
3467
    :ivar Description:
3468
    :vartype Description: LocalizedText
3469
    :ivar WriteMask:
3470
    :vartype WriteMask: UInt32
3471
    :ivar UserWriteMask:
3472
    :vartype UserWriteMask: UInt32
3473
    :ivar EventNotifier:
3474
    :vartype EventNotifier: Byte
3475
    '''
3476 1
    def __init__(self):
3477 1
        self.SpecifiedAttributes = 0
3478 1
        self.DisplayName = LocalizedText()
3479 1
        self.Description = LocalizedText()
3480 1
        self.WriteMask = 0
3481 1
        self.UserWriteMask = 0
3482 1
        self.EventNotifier = 0
3483 1
        self._freeze()
3484
3485 1
    def to_binary(self):
3486 1
        packet = []
3487 1
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3488 1
        packet.append(self.DisplayName.to_binary())
3489 1
        packet.append(self.Description.to_binary())
3490 1
        packet.append(pack_uatype('UInt32', self.WriteMask))
3491 1
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3492 1
        packet.append(pack_uatype('Byte', self.EventNotifier))
3493 1
        return b''.join(packet)
3494
3495 1
    @staticmethod
3496
    def from_binary(data):
3497 1
        obj = ObjectAttributes()
3498 1
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3499 1
        obj.DisplayName = LocalizedText.from_binary(data)
3500 1
        obj.Description = LocalizedText.from_binary(data)
3501 1
        obj.WriteMask = unpack_uatype('UInt32', data)
3502 1
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3503 1
        obj.EventNotifier = unpack_uatype('Byte', data)
3504 1
        return obj
3505
3506 1
    def __str__(self):
3507
        return 'ObjectAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3508
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3509
               'Description:' + str(self.Description) + ', ' + \
3510
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3511
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3512
               'EventNotifier:' + str(self.EventNotifier) + ')'
3513
3514 1
    __repr__ = __str__
3515
3516
3517 1
class VariableAttributes(FrozenClass):
3518
    '''
3519
    The attributes for a variable node.
3520
3521
    :ivar SpecifiedAttributes:
3522
    :vartype SpecifiedAttributes: UInt32
3523
    :ivar DisplayName:
3524
    :vartype DisplayName: LocalizedText
3525
    :ivar Description:
3526
    :vartype Description: LocalizedText
3527
    :ivar WriteMask:
3528
    :vartype WriteMask: UInt32
3529
    :ivar UserWriteMask:
3530
    :vartype UserWriteMask: UInt32
3531
    :ivar Value:
3532
    :vartype Value: Variant
3533
    :ivar DataType:
3534
    :vartype DataType: NodeId
3535
    :ivar ValueRank:
3536
    :vartype ValueRank: Int32
3537
    :ivar ArrayDimensions:
3538
    :vartype ArrayDimensions: UInt32
3539
    :ivar AccessLevel:
3540
    :vartype AccessLevel: Byte
3541
    :ivar UserAccessLevel:
3542
    :vartype UserAccessLevel: Byte
3543
    :ivar MinimumSamplingInterval:
3544
    :vartype MinimumSamplingInterval: Double
3545
    :ivar Historizing:
3546
    :vartype Historizing: Boolean
3547
    '''
3548 1
    def __init__(self):
3549 1
        self.SpecifiedAttributes = 0
3550 1
        self.DisplayName = LocalizedText()
3551 1
        self.Description = LocalizedText()
3552 1
        self.WriteMask = 0
3553 1
        self.UserWriteMask = 0
3554 1
        self.Value = Variant()
3555 1
        self.DataType = NodeId()
3556 1
        self.ValueRank = 0
3557 1
        self.ArrayDimensions = []
3558 1
        self.AccessLevel = 0
3559 1
        self.UserAccessLevel = 0
3560 1
        self.MinimumSamplingInterval = 0
3561 1
        self.Historizing = True
3562 1
        self._freeze()
3563
3564 1
    def to_binary(self):
3565 1
        packet = []
3566 1
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3567 1
        packet.append(self.DisplayName.to_binary())
3568 1
        packet.append(self.Description.to_binary())
3569 1
        packet.append(pack_uatype('UInt32', self.WriteMask))
3570 1
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3571 1
        packet.append(self.Value.to_binary())
3572 1
        packet.append(self.DataType.to_binary())
3573 1
        packet.append(pack_uatype('Int32', self.ValueRank))
3574 1
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
3575 1
        for fieldname in self.ArrayDimensions:
3576
            packet.append(pack_uatype('UInt32', fieldname))
3577 1
        packet.append(pack_uatype('Byte', self.AccessLevel))
3578 1
        packet.append(pack_uatype('Byte', self.UserAccessLevel))
3579 1
        packet.append(pack_uatype('Double', self.MinimumSamplingInterval))
3580 1
        packet.append(pack_uatype('Boolean', self.Historizing))
3581 1
        return b''.join(packet)
3582
3583 1
    @staticmethod
3584
    def from_binary(data):
3585 1
        obj = VariableAttributes()
3586 1
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3587 1
        obj.DisplayName = LocalizedText.from_binary(data)
3588 1
        obj.Description = LocalizedText.from_binary(data)
3589 1
        obj.WriteMask = unpack_uatype('UInt32', data)
3590 1
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3591 1
        obj.Value = Variant.from_binary(data)
3592 1
        obj.DataType = NodeId.from_binary(data)
3593 1
        obj.ValueRank = unpack_uatype('Int32', data)
3594 1
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
3595 1
        obj.AccessLevel = unpack_uatype('Byte', data)
3596 1
        obj.UserAccessLevel = unpack_uatype('Byte', data)
3597 1
        obj.MinimumSamplingInterval = unpack_uatype('Double', data)
3598 1
        obj.Historizing = unpack_uatype('Boolean', data)
3599 1
        return obj
3600
3601 1
    def __str__(self):
3602
        return 'VariableAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3603
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3604
               'Description:' + str(self.Description) + ', ' + \
3605
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3606
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3607
               'Value:' + str(self.Value) + ', ' + \
3608
               'DataType:' + str(self.DataType) + ', ' + \
3609
               'ValueRank:' + str(self.ValueRank) + ', ' + \
3610
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
3611
               'AccessLevel:' + str(self.AccessLevel) + ', ' + \
3612
               'UserAccessLevel:' + str(self.UserAccessLevel) + ', ' + \
3613
               'MinimumSamplingInterval:' + str(self.MinimumSamplingInterval) + ', ' + \
3614
               'Historizing:' + str(self.Historizing) + ')'
3615
3616 1
    __repr__ = __str__
3617
3618
3619 1
class MethodAttributes(FrozenClass):
3620
    '''
3621
    The attributes for a method node.
3622
3623
    :ivar SpecifiedAttributes:
3624
    :vartype SpecifiedAttributes: UInt32
3625
    :ivar DisplayName:
3626
    :vartype DisplayName: LocalizedText
3627
    :ivar Description:
3628
    :vartype Description: LocalizedText
3629
    :ivar WriteMask:
3630
    :vartype WriteMask: UInt32
3631
    :ivar UserWriteMask:
3632
    :vartype UserWriteMask: UInt32
3633
    :ivar Executable:
3634
    :vartype Executable: Boolean
3635
    :ivar UserExecutable:
3636
    :vartype UserExecutable: Boolean
3637
    '''
3638 1
    def __init__(self):
3639 1
        self.SpecifiedAttributes = 0
3640 1
        self.DisplayName = LocalizedText()
3641 1
        self.Description = LocalizedText()
3642 1
        self.WriteMask = 0
3643 1
        self.UserWriteMask = 0
3644 1
        self.Executable = True
3645 1
        self.UserExecutable = True
3646 1
        self._freeze()
3647
3648 1
    def to_binary(self):
3649
        packet = []
3650
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3651
        packet.append(self.DisplayName.to_binary())
3652
        packet.append(self.Description.to_binary())
3653
        packet.append(pack_uatype('UInt32', self.WriteMask))
3654
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3655
        packet.append(pack_uatype('Boolean', self.Executable))
3656
        packet.append(pack_uatype('Boolean', self.UserExecutable))
3657
        return b''.join(packet)
3658
3659 1
    @staticmethod
3660
    def from_binary(data):
3661
        obj = MethodAttributes()
3662
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3663
        obj.DisplayName = LocalizedText.from_binary(data)
3664
        obj.Description = LocalizedText.from_binary(data)
3665
        obj.WriteMask = unpack_uatype('UInt32', data)
3666
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3667
        obj.Executable = unpack_uatype('Boolean', data)
3668
        obj.UserExecutable = unpack_uatype('Boolean', data)
3669
        return obj
3670
3671 1
    def __str__(self):
3672
        return 'MethodAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3673
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3674
               'Description:' + str(self.Description) + ', ' + \
3675
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3676
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3677
               'Executable:' + str(self.Executable) + ', ' + \
3678
               'UserExecutable:' + str(self.UserExecutable) + ')'
3679
3680 1
    __repr__ = __str__
3681
3682
3683 1
class ObjectTypeAttributes(FrozenClass):
3684
    '''
3685
    The attributes for an object type node.
3686
3687
    :ivar SpecifiedAttributes:
3688
    :vartype SpecifiedAttributes: UInt32
3689
    :ivar DisplayName:
3690
    :vartype DisplayName: LocalizedText
3691
    :ivar Description:
3692
    :vartype Description: LocalizedText
3693
    :ivar WriteMask:
3694
    :vartype WriteMask: UInt32
3695
    :ivar UserWriteMask:
3696
    :vartype UserWriteMask: UInt32
3697
    :ivar IsAbstract:
3698
    :vartype IsAbstract: Boolean
3699
    '''
3700 1
    def __init__(self):
3701 1
        self.SpecifiedAttributes = 0
3702 1
        self.DisplayName = LocalizedText()
3703 1
        self.Description = LocalizedText()
3704 1
        self.WriteMask = 0
3705 1
        self.UserWriteMask = 0
3706 1
        self.IsAbstract = True
3707 1
        self._freeze()
3708
3709 1
    def to_binary(self):
3710
        packet = []
3711
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3712
        packet.append(self.DisplayName.to_binary())
3713
        packet.append(self.Description.to_binary())
3714
        packet.append(pack_uatype('UInt32', self.WriteMask))
3715
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3716
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3717
        return b''.join(packet)
3718
3719 1
    @staticmethod
3720
    def from_binary(data):
3721
        obj = ObjectTypeAttributes()
3722
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3723
        obj.DisplayName = LocalizedText.from_binary(data)
3724
        obj.Description = LocalizedText.from_binary(data)
3725
        obj.WriteMask = unpack_uatype('UInt32', data)
3726
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3727
        obj.IsAbstract = unpack_uatype('Boolean', data)
3728
        return obj
3729
3730 1
    def __str__(self):
3731
        return 'ObjectTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3732
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3733
               'Description:' + str(self.Description) + ', ' + \
3734
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3735
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3736
               'IsAbstract:' + str(self.IsAbstract) + ')'
3737
3738 1
    __repr__ = __str__
3739
3740
3741 1
class VariableTypeAttributes(FrozenClass):
3742
    '''
3743
    The attributes for a variable type node.
3744
3745
    :ivar SpecifiedAttributes:
3746
    :vartype SpecifiedAttributes: UInt32
3747
    :ivar DisplayName:
3748
    :vartype DisplayName: LocalizedText
3749
    :ivar Description:
3750
    :vartype Description: LocalizedText
3751
    :ivar WriteMask:
3752
    :vartype WriteMask: UInt32
3753
    :ivar UserWriteMask:
3754
    :vartype UserWriteMask: UInt32
3755
    :ivar Value:
3756
    :vartype Value: Variant
3757
    :ivar DataType:
3758
    :vartype DataType: NodeId
3759
    :ivar ValueRank:
3760
    :vartype ValueRank: Int32
3761
    :ivar ArrayDimensions:
3762
    :vartype ArrayDimensions: UInt32
3763
    :ivar IsAbstract:
3764
    :vartype IsAbstract: Boolean
3765
    '''
3766 1
    def __init__(self):
3767 1
        self.SpecifiedAttributes = 0
3768 1
        self.DisplayName = LocalizedText()
3769 1
        self.Description = LocalizedText()
3770 1
        self.WriteMask = 0
3771 1
        self.UserWriteMask = 0
3772 1
        self.Value = Variant()
3773 1
        self.DataType = NodeId()
3774 1
        self.ValueRank = 0
3775 1
        self.ArrayDimensions = []
3776 1
        self.IsAbstract = True
3777 1
        self._freeze()
3778
3779 1
    def to_binary(self):
3780
        packet = []
3781
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3782
        packet.append(self.DisplayName.to_binary())
3783
        packet.append(self.Description.to_binary())
3784
        packet.append(pack_uatype('UInt32', self.WriteMask))
3785
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3786
        packet.append(self.Value.to_binary())
3787
        packet.append(self.DataType.to_binary())
3788
        packet.append(pack_uatype('Int32', self.ValueRank))
3789
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
3790
        for fieldname in self.ArrayDimensions:
3791
            packet.append(pack_uatype('UInt32', fieldname))
3792
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3793
        return b''.join(packet)
3794
3795 1
    @staticmethod
3796
    def from_binary(data):
3797
        obj = VariableTypeAttributes()
3798
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3799
        obj.DisplayName = LocalizedText.from_binary(data)
3800
        obj.Description = LocalizedText.from_binary(data)
3801
        obj.WriteMask = unpack_uatype('UInt32', data)
3802
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3803
        obj.Value = Variant.from_binary(data)
3804
        obj.DataType = NodeId.from_binary(data)
3805
        obj.ValueRank = unpack_uatype('Int32', data)
3806
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
3807
        obj.IsAbstract = unpack_uatype('Boolean', data)
3808
        return obj
3809
3810 1
    def __str__(self):
3811
        return 'VariableTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3812
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3813
               'Description:' + str(self.Description) + ', ' + \
3814
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3815
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3816
               'Value:' + str(self.Value) + ', ' + \
3817
               'DataType:' + str(self.DataType) + ', ' + \
3818
               'ValueRank:' + str(self.ValueRank) + ', ' + \
3819
               'ArrayDimensions:' + str(self.ArrayDimensions) + ', ' + \
3820
               'IsAbstract:' + str(self.IsAbstract) + ')'
3821
3822 1
    __repr__ = __str__
3823
3824
3825 1
class ReferenceTypeAttributes(FrozenClass):
3826
    '''
3827
    The attributes for a reference type node.
3828
3829
    :ivar SpecifiedAttributes:
3830
    :vartype SpecifiedAttributes: UInt32
3831
    :ivar DisplayName:
3832
    :vartype DisplayName: LocalizedText
3833
    :ivar Description:
3834
    :vartype Description: LocalizedText
3835
    :ivar WriteMask:
3836
    :vartype WriteMask: UInt32
3837
    :ivar UserWriteMask:
3838
    :vartype UserWriteMask: UInt32
3839
    :ivar IsAbstract:
3840
    :vartype IsAbstract: Boolean
3841
    :ivar Symmetric:
3842
    :vartype Symmetric: Boolean
3843
    :ivar InverseName:
3844
    :vartype InverseName: LocalizedText
3845
    '''
3846 1
    def __init__(self):
3847 1
        self.SpecifiedAttributes = 0
3848 1
        self.DisplayName = LocalizedText()
3849 1
        self.Description = LocalizedText()
3850 1
        self.WriteMask = 0
3851 1
        self.UserWriteMask = 0
3852 1
        self.IsAbstract = True
3853 1
        self.Symmetric = True
3854 1
        self.InverseName = LocalizedText()
3855 1
        self._freeze()
3856
3857 1
    def to_binary(self):
3858
        packet = []
3859
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3860
        packet.append(self.DisplayName.to_binary())
3861
        packet.append(self.Description.to_binary())
3862
        packet.append(pack_uatype('UInt32', self.WriteMask))
3863
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3864
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3865
        packet.append(pack_uatype('Boolean', self.Symmetric))
3866
        packet.append(self.InverseName.to_binary())
3867
        return b''.join(packet)
3868
3869 1
    @staticmethod
3870
    def from_binary(data):
3871
        obj = ReferenceTypeAttributes()
3872
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3873
        obj.DisplayName = LocalizedText.from_binary(data)
3874
        obj.Description = LocalizedText.from_binary(data)
3875
        obj.WriteMask = unpack_uatype('UInt32', data)
3876
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3877
        obj.IsAbstract = unpack_uatype('Boolean', data)
3878
        obj.Symmetric = unpack_uatype('Boolean', data)
3879
        obj.InverseName = LocalizedText.from_binary(data)
3880
        return obj
3881
3882 1
    def __str__(self):
3883
        return 'ReferenceTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3884
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3885
               'Description:' + str(self.Description) + ', ' + \
3886
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3887
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3888
               'IsAbstract:' + str(self.IsAbstract) + ', ' + \
3889
               'Symmetric:' + str(self.Symmetric) + ', ' + \
3890
               'InverseName:' + str(self.InverseName) + ')'
3891
3892 1
    __repr__ = __str__
3893
3894
3895 1
class DataTypeAttributes(FrozenClass):
3896
    '''
3897
    The attributes for a data type node.
3898
3899
    :ivar SpecifiedAttributes:
3900
    :vartype SpecifiedAttributes: UInt32
3901
    :ivar DisplayName:
3902
    :vartype DisplayName: LocalizedText
3903
    :ivar Description:
3904
    :vartype Description: LocalizedText
3905
    :ivar WriteMask:
3906
    :vartype WriteMask: UInt32
3907
    :ivar UserWriteMask:
3908
    :vartype UserWriteMask: UInt32
3909
    :ivar IsAbstract:
3910
    :vartype IsAbstract: Boolean
3911
    '''
3912 1
    def __init__(self):
3913 1
        self.SpecifiedAttributes = 0
3914 1
        self.DisplayName = LocalizedText()
3915 1
        self.Description = LocalizedText()
3916 1
        self.WriteMask = 0
3917 1
        self.UserWriteMask = 0
3918 1
        self.IsAbstract = True
3919 1
        self._freeze()
3920
3921 1
    def to_binary(self):
3922
        packet = []
3923
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3924
        packet.append(self.DisplayName.to_binary())
3925
        packet.append(self.Description.to_binary())
3926
        packet.append(pack_uatype('UInt32', self.WriteMask))
3927
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3928
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3929
        return b''.join(packet)
3930
3931 1
    @staticmethod
3932
    def from_binary(data):
3933
        obj = DataTypeAttributes()
3934
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3935
        obj.DisplayName = LocalizedText.from_binary(data)
3936
        obj.Description = LocalizedText.from_binary(data)
3937
        obj.WriteMask = unpack_uatype('UInt32', data)
3938
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3939
        obj.IsAbstract = unpack_uatype('Boolean', data)
3940
        return obj
3941
3942 1
    def __str__(self):
3943
        return 'DataTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
3944
               'DisplayName:' + str(self.DisplayName) + ', ' + \
3945
               'Description:' + str(self.Description) + ', ' + \
3946
               'WriteMask:' + str(self.WriteMask) + ', ' + \
3947
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
3948
               'IsAbstract:' + str(self.IsAbstract) + ')'
3949
3950 1
    __repr__ = __str__
3951
3952
3953 1
class ViewAttributes(FrozenClass):
3954
    '''
3955
    The attributes for a view node.
3956
3957
    :ivar SpecifiedAttributes:
3958
    :vartype SpecifiedAttributes: UInt32
3959
    :ivar DisplayName:
3960
    :vartype DisplayName: LocalizedText
3961
    :ivar Description:
3962
    :vartype Description: LocalizedText
3963
    :ivar WriteMask:
3964
    :vartype WriteMask: UInt32
3965
    :ivar UserWriteMask:
3966
    :vartype UserWriteMask: UInt32
3967
    :ivar ContainsNoLoops:
3968
    :vartype ContainsNoLoops: Boolean
3969
    :ivar EventNotifier:
3970
    :vartype EventNotifier: Byte
3971
    '''
3972 1
    def __init__(self):
3973
        self.SpecifiedAttributes = 0
3974
        self.DisplayName = LocalizedText()
3975
        self.Description = LocalizedText()
3976
        self.WriteMask = 0
3977
        self.UserWriteMask = 0
3978
        self.ContainsNoLoops = True
3979
        self.EventNotifier = 0
3980
        self._freeze()
3981
3982 1
    def to_binary(self):
3983
        packet = []
3984
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3985
        packet.append(self.DisplayName.to_binary())
3986
        packet.append(self.Description.to_binary())
3987
        packet.append(pack_uatype('UInt32', self.WriteMask))
3988
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3989
        packet.append(pack_uatype('Boolean', self.ContainsNoLoops))
3990
        packet.append(pack_uatype('Byte', self.EventNotifier))
3991
        return b''.join(packet)
3992
3993 1
    @staticmethod
3994
    def from_binary(data):
3995
        obj = ViewAttributes()
3996
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3997
        obj.DisplayName = LocalizedText.from_binary(data)
3998
        obj.Description = LocalizedText.from_binary(data)
3999
        obj.WriteMask = unpack_uatype('UInt32', data)
4000
        obj.UserWriteMask = unpack_uatype('UInt32', data)
4001
        obj.ContainsNoLoops = unpack_uatype('Boolean', data)
4002
        obj.EventNotifier = unpack_uatype('Byte', data)
4003
        return obj
4004
4005 1
    def __str__(self):
4006
        return 'ViewAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', ' + \
4007
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4008
               'Description:' + str(self.Description) + ', ' + \
4009
               'WriteMask:' + str(self.WriteMask) + ', ' + \
4010
               'UserWriteMask:' + str(self.UserWriteMask) + ', ' + \
4011
               'ContainsNoLoops:' + str(self.ContainsNoLoops) + ', ' + \
4012
               'EventNotifier:' + str(self.EventNotifier) + ')'
4013
4014 1
    __repr__ = __str__
4015
4016
4017 1
class AddNodesItem(FrozenClass):
4018
    '''
4019
    A request to add a node to the server address space.
4020
4021
    :ivar ParentNodeId:
4022
    :vartype ParentNodeId: ExpandedNodeId
4023
    :ivar ReferenceTypeId:
4024
    :vartype ReferenceTypeId: NodeId
4025
    :ivar RequestedNewNodeId:
4026
    :vartype RequestedNewNodeId: ExpandedNodeId
4027
    :ivar BrowseName:
4028
    :vartype BrowseName: QualifiedName
4029
    :ivar NodeClass:
4030
    :vartype NodeClass: NodeClass
4031
    :ivar NodeAttributes:
4032
    :vartype NodeAttributes: ExtensionObject
4033
    :ivar TypeDefinition:
4034
    :vartype TypeDefinition: ExpandedNodeId
4035
    '''
4036 1
    def __init__(self):
4037 1
        self.ParentNodeId = ExpandedNodeId()
4038 1
        self.ReferenceTypeId = NodeId()
4039 1
        self.RequestedNewNodeId = ExpandedNodeId()
4040 1
        self.BrowseName = QualifiedName()
4041 1
        self.NodeClass = 0
4042 1
        self.NodeAttributes = None
4043 1
        self.TypeDefinition = ExpandedNodeId()
4044 1
        self._freeze()
4045
4046 1
    def to_binary(self):
4047 1
        packet = []
4048 1
        packet.append(self.ParentNodeId.to_binary())
4049 1
        packet.append(self.ReferenceTypeId.to_binary())
4050 1
        packet.append(self.RequestedNewNodeId.to_binary())
4051 1
        packet.append(self.BrowseName.to_binary())
4052 1
        packet.append(pack_uatype('UInt32', self.NodeClass))
4053 1
        packet.append(extensionobject_to_binary(self.NodeAttributes))
4054 1
        packet.append(self.TypeDefinition.to_binary())
4055 1
        return b''.join(packet)
4056
4057 1
    @staticmethod
4058
    def from_binary(data):
4059 1
        obj = AddNodesItem()
4060 1
        obj.ParentNodeId = ExpandedNodeId.from_binary(data)
4061 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4062 1
        obj.RequestedNewNodeId = ExpandedNodeId.from_binary(data)
4063 1
        obj.BrowseName = QualifiedName.from_binary(data)
4064 1
        obj.NodeClass = unpack_uatype('UInt32', data)
4065 1
        obj.NodeAttributes = extensionobject_from_binary(data)
4066 1
        obj.TypeDefinition = ExpandedNodeId.from_binary(data)
4067 1
        return obj
4068
4069 1
    def __str__(self):
4070
        return 'AddNodesItem(' + 'ParentNodeId:' + str(self.ParentNodeId) + ', ' + \
4071
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4072
               'RequestedNewNodeId:' + str(self.RequestedNewNodeId) + ', ' + \
4073
               'BrowseName:' + str(self.BrowseName) + ', ' + \
4074
               'NodeClass:' + str(self.NodeClass) + ', ' + \
4075
               'NodeAttributes:' + str(self.NodeAttributes) + ', ' + \
4076
               'TypeDefinition:' + str(self.TypeDefinition) + ')'
4077
4078 1
    __repr__ = __str__
4079
4080
4081 1
class AddNodesResult(FrozenClass):
4082
    '''
4083
    A result of an add node operation.
4084
4085
    :ivar StatusCode:
4086
    :vartype StatusCode: StatusCode
4087
    :ivar AddedNodeId:
4088
    :vartype AddedNodeId: NodeId
4089
    '''
4090 1
    def __init__(self):
4091 1
        self.StatusCode = StatusCode()
4092 1
        self.AddedNodeId = NodeId()
4093 1
        self._freeze()
4094
4095 1
    def to_binary(self):
4096 1
        packet = []
4097 1
        packet.append(self.StatusCode.to_binary())
4098 1
        packet.append(self.AddedNodeId.to_binary())
4099 1
        return b''.join(packet)
4100
4101 1
    @staticmethod
4102
    def from_binary(data):
4103 1
        obj = AddNodesResult()
4104 1
        obj.StatusCode = StatusCode.from_binary(data)
4105 1
        obj.AddedNodeId = NodeId.from_binary(data)
4106 1
        return obj
4107
4108 1
    def __str__(self):
4109
        return 'AddNodesResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
4110
               'AddedNodeId:' + str(self.AddedNodeId) + ')'
4111
4112 1
    __repr__ = __str__
4113
4114
4115 1
class AddNodesParameters(FrozenClass):
4116
    '''
4117
    :ivar NodesToAdd:
4118
    :vartype NodesToAdd: AddNodesItem
4119
    '''
4120 1
    def __init__(self):
4121 1
        self.NodesToAdd = []
4122 1
        self._freeze()
4123
4124 1
    def to_binary(self):
4125 1
        packet = []
4126 1
        packet.append(struct.pack('<i', len(self.NodesToAdd)))
4127 1
        for fieldname in self.NodesToAdd:
4128 1
            packet.append(fieldname.to_binary())
4129 1
        return b''.join(packet)
4130
4131 1
    @staticmethod
4132
    def from_binary(data):
4133 1
        obj = AddNodesParameters()
4134 1
        length = struct.unpack('<i', data.read(4))[0]
4135 1
        if length != -1:
4136 1
            for _ in range(0, length):
4137 1
                obj.NodesToAdd.append(AddNodesItem.from_binary(data))
4138 1
        return obj
4139
4140 1
    def __str__(self):
4141
        return 'AddNodesParameters(' + 'NodesToAdd:' + str(self.NodesToAdd) + ')'
4142
4143 1
    __repr__ = __str__
4144
4145
4146 1
class AddNodesRequest(FrozenClass):
4147
    '''
4148
    Adds one or more nodes to the server address space.
4149
4150
    :ivar TypeId:
4151
    :vartype TypeId: NodeId
4152
    :ivar RequestHeader:
4153
    :vartype RequestHeader: RequestHeader
4154
    :ivar Parameters:
4155
    :vartype Parameters: AddNodesParameters
4156
    '''
4157 1
    def __init__(self):
4158 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesRequest_Encoding_DefaultBinary)
4159 1
        self.RequestHeader = RequestHeader()
4160 1
        self.Parameters = AddNodesParameters()
4161 1
        self._freeze()
4162
4163 1
    def to_binary(self):
4164 1
        packet = []
4165 1
        packet.append(self.TypeId.to_binary())
4166 1
        packet.append(self.RequestHeader.to_binary())
4167 1
        packet.append(self.Parameters.to_binary())
4168 1
        return b''.join(packet)
4169
4170 1
    @staticmethod
4171
    def from_binary(data):
4172
        obj = AddNodesRequest()
4173
        obj.TypeId = NodeId.from_binary(data)
4174
        obj.RequestHeader = RequestHeader.from_binary(data)
4175
        obj.Parameters = AddNodesParameters.from_binary(data)
4176
        return obj
4177
4178 1
    def __str__(self):
4179
        return 'AddNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4180
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4181
               'Parameters:' + str(self.Parameters) + ')'
4182
4183 1
    __repr__ = __str__
4184
4185
4186 1
class AddNodesResponse(FrozenClass):
4187
    '''
4188
    Adds one or more nodes to the server address space.
4189
4190
    :ivar TypeId:
4191
    :vartype TypeId: NodeId
4192
    :ivar ResponseHeader:
4193
    :vartype ResponseHeader: ResponseHeader
4194
    :ivar Results:
4195
    :vartype Results: AddNodesResult
4196
    :ivar DiagnosticInfos:
4197
    :vartype DiagnosticInfos: DiagnosticInfo
4198
    '''
4199 1
    def __init__(self):
4200 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesResponse_Encoding_DefaultBinary)
4201 1
        self.ResponseHeader = ResponseHeader()
4202 1
        self.Results = []
4203 1
        self.DiagnosticInfos = []
4204 1
        self._freeze()
4205
4206 1
    def to_binary(self):
4207 1
        packet = []
4208 1
        packet.append(self.TypeId.to_binary())
4209 1
        packet.append(self.ResponseHeader.to_binary())
4210 1
        packet.append(struct.pack('<i', len(self.Results)))
4211 1
        for fieldname in self.Results:
4212 1
            packet.append(fieldname.to_binary())
4213 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4214 1
        for fieldname in self.DiagnosticInfos:
4215
            packet.append(fieldname.to_binary())
4216 1
        return b''.join(packet)
4217
4218 1
    @staticmethod
4219
    def from_binary(data):
4220 1
        obj = AddNodesResponse()
4221 1
        obj.TypeId = NodeId.from_binary(data)
4222 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4223 1
        length = struct.unpack('<i', data.read(4))[0]
4224 1
        if length != -1:
4225 1
            for _ in range(0, length):
4226 1
                obj.Results.append(AddNodesResult.from_binary(data))
4227 1
        length = struct.unpack('<i', data.read(4))[0]
4228 1
        if length != -1:
4229 1
            for _ in range(0, length):
4230
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4231 1
        return obj
4232
4233 1
    def __str__(self):
4234
        return 'AddNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4235
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
4236
               'Results:' + str(self.Results) + ', ' + \
4237
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4238
4239 1
    __repr__ = __str__
4240
4241
4242 1
class AddReferencesItem(FrozenClass):
4243
    '''
4244
    A request to add a reference to the server address space.
4245
4246
    :ivar SourceNodeId:
4247
    :vartype SourceNodeId: NodeId
4248
    :ivar ReferenceTypeId:
4249
    :vartype ReferenceTypeId: NodeId
4250
    :ivar IsForward:
4251
    :vartype IsForward: Boolean
4252
    :ivar TargetServerUri:
4253
    :vartype TargetServerUri: String
4254
    :ivar TargetNodeId:
4255
    :vartype TargetNodeId: ExpandedNodeId
4256
    :ivar TargetNodeClass:
4257
    :vartype TargetNodeClass: NodeClass
4258
    '''
4259 1
    def __init__(self):
4260 1
        self.SourceNodeId = NodeId()
4261 1
        self.ReferenceTypeId = NodeId()
4262 1
        self.IsForward = True
4263 1
        self.TargetServerUri = ''
4264 1
        self.TargetNodeId = ExpandedNodeId()
4265 1
        self.TargetNodeClass = 0
4266 1
        self._freeze()
4267
4268 1
    def to_binary(self):
4269
        packet = []
4270
        packet.append(self.SourceNodeId.to_binary())
4271
        packet.append(self.ReferenceTypeId.to_binary())
4272
        packet.append(pack_uatype('Boolean', self.IsForward))
4273
        packet.append(pack_uatype('String', self.TargetServerUri))
4274
        packet.append(self.TargetNodeId.to_binary())
4275
        packet.append(pack_uatype('UInt32', self.TargetNodeClass))
4276
        return b''.join(packet)
4277
4278 1
    @staticmethod
4279
    def from_binary(data):
4280
        obj = AddReferencesItem()
4281
        obj.SourceNodeId = NodeId.from_binary(data)
4282
        obj.ReferenceTypeId = NodeId.from_binary(data)
4283
        obj.IsForward = unpack_uatype('Boolean', data)
4284
        obj.TargetServerUri = unpack_uatype('String', data)
4285
        obj.TargetNodeId = ExpandedNodeId.from_binary(data)
4286
        obj.TargetNodeClass = unpack_uatype('UInt32', data)
4287
        return obj
4288
4289 1
    def __str__(self):
4290
        return 'AddReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', ' + \
4291
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4292
               'IsForward:' + str(self.IsForward) + ', ' + \
4293
               'TargetServerUri:' + str(self.TargetServerUri) + ', ' + \
4294
               'TargetNodeId:' + str(self.TargetNodeId) + ', ' + \
4295
               'TargetNodeClass:' + str(self.TargetNodeClass) + ')'
4296
4297 1
    __repr__ = __str__
4298
4299
4300 1
class AddReferencesRequest(FrozenClass):
4301
    '''
4302
    Adds one or more references to the server address space.
4303
4304
    :ivar TypeId:
4305
    :vartype TypeId: NodeId
4306
    :ivar RequestHeader:
4307
    :vartype RequestHeader: RequestHeader
4308
    :ivar ReferencesToAdd:
4309
    :vartype ReferencesToAdd: AddReferencesItem
4310
    '''
4311 1
    def __init__(self):
4312
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesRequest_Encoding_DefaultBinary)
4313
        self.RequestHeader = RequestHeader()
4314
        self.ReferencesToAdd = []
4315
        self._freeze()
4316
4317 1
    def to_binary(self):
4318
        packet = []
4319
        packet.append(self.TypeId.to_binary())
4320
        packet.append(self.RequestHeader.to_binary())
4321
        packet.append(struct.pack('<i', len(self.ReferencesToAdd)))
4322
        for fieldname in self.ReferencesToAdd:
4323
            packet.append(fieldname.to_binary())
4324
        return b''.join(packet)
4325
4326 1
    @staticmethod
4327
    def from_binary(data):
4328
        obj = AddReferencesRequest()
4329
        obj.TypeId = NodeId.from_binary(data)
4330
        obj.RequestHeader = RequestHeader.from_binary(data)
4331
        length = struct.unpack('<i', data.read(4))[0]
4332
        if length != -1:
4333
            for _ in range(0, length):
4334
                obj.ReferencesToAdd.append(AddReferencesItem.from_binary(data))
4335
        return obj
4336
4337 1
    def __str__(self):
4338
        return 'AddReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4339
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4340
               'ReferencesToAdd:' + str(self.ReferencesToAdd) + ')'
4341
4342 1
    __repr__ = __str__
4343
4344
4345 1
class AddReferencesResponse(FrozenClass):
4346
    '''
4347
    Adds one or more references to the server address space.
4348
4349
    :ivar TypeId:
4350
    :vartype TypeId: NodeId
4351
    :ivar ResponseHeader:
4352
    :vartype ResponseHeader: ResponseHeader
4353
    :ivar Results:
4354
    :vartype Results: StatusCode
4355
    :ivar DiagnosticInfos:
4356
    :vartype DiagnosticInfos: DiagnosticInfo
4357
    '''
4358 1
    def __init__(self):
4359
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesResponse_Encoding_DefaultBinary)
4360
        self.ResponseHeader = ResponseHeader()
4361
        self.Results = []
4362
        self.DiagnosticInfos = []
4363
        self._freeze()
4364
4365 1
    def to_binary(self):
4366
        packet = []
4367
        packet.append(self.TypeId.to_binary())
4368
        packet.append(self.ResponseHeader.to_binary())
4369
        packet.append(struct.pack('<i', len(self.Results)))
4370
        for fieldname in self.Results:
4371
            packet.append(fieldname.to_binary())
4372
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4373
        for fieldname in self.DiagnosticInfos:
4374
            packet.append(fieldname.to_binary())
4375
        return b''.join(packet)
4376
4377 1
    @staticmethod
4378
    def from_binary(data):
4379
        obj = AddReferencesResponse()
4380
        obj.TypeId = NodeId.from_binary(data)
4381
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4382
        length = struct.unpack('<i', data.read(4))[0]
4383
        if length != -1:
4384
            for _ in range(0, length):
4385
                obj.Results.append(StatusCode.from_binary(data))
4386
        length = struct.unpack('<i', data.read(4))[0]
4387
        if length != -1:
4388
            for _ in range(0, length):
4389
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4390
        return obj
4391
4392 1
    def __str__(self):
4393
        return 'AddReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4394
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
4395
               'Results:' + str(self.Results) + ', ' + \
4396
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4397
4398 1
    __repr__ = __str__
4399
4400
4401 1
class DeleteNodesItem(FrozenClass):
4402
    '''
4403
    A request to delete a node to the server address space.
4404
4405
    :ivar NodeId:
4406
    :vartype NodeId: NodeId
4407
    :ivar DeleteTargetReferences:
4408
    :vartype DeleteTargetReferences: Boolean
4409
    '''
4410 1
    def __init__(self):
4411
        self.NodeId = NodeId()
4412
        self.DeleteTargetReferences = True
4413
        self._freeze()
4414
4415 1
    def to_binary(self):
4416
        packet = []
4417
        packet.append(self.NodeId.to_binary())
4418
        packet.append(pack_uatype('Boolean', self.DeleteTargetReferences))
4419
        return b''.join(packet)
4420
4421 1
    @staticmethod
4422
    def from_binary(data):
4423
        obj = DeleteNodesItem()
4424
        obj.NodeId = NodeId.from_binary(data)
4425
        obj.DeleteTargetReferences = unpack_uatype('Boolean', data)
4426
        return obj
4427
4428 1
    def __str__(self):
4429
        return 'DeleteNodesItem(' + 'NodeId:' + str(self.NodeId) + ', ' + \
4430
               'DeleteTargetReferences:' + str(self.DeleteTargetReferences) + ')'
4431
4432 1
    __repr__ = __str__
4433
4434
4435 1
class DeleteNodesParameters(FrozenClass):
4436
    '''
4437
    :ivar NodesToDelete:
4438
    :vartype NodesToDelete: DeleteNodesItem
4439
    '''
4440 1
    def __init__(self):
4441
        self.NodesToDelete = []
4442
        self._freeze()
4443
4444 1
    def to_binary(self):
4445
        packet = []
4446
        packet.append(struct.pack('<i', len(self.NodesToDelete)))
4447
        for fieldname in self.NodesToDelete:
4448
            packet.append(fieldname.to_binary())
4449
        return b''.join(packet)
4450
4451 1
    @staticmethod
4452
    def from_binary(data):
4453
        obj = DeleteNodesParameters()
4454
        length = struct.unpack('<i', data.read(4))[0]
4455
        if length != -1:
4456
            for _ in range(0, length):
4457
                obj.NodesToDelete.append(DeleteNodesItem.from_binary(data))
4458
        return obj
4459
4460 1
    def __str__(self):
4461
        return 'DeleteNodesParameters(' + 'NodesToDelete:' + str(self.NodesToDelete) + ')'
4462
4463 1
    __repr__ = __str__
4464
4465
4466 1
class DeleteNodesRequest(FrozenClass):
4467
    '''
4468
    Delete one or more nodes from the server address space.
4469
4470
    :ivar TypeId:
4471
    :vartype TypeId: NodeId
4472
    :ivar RequestHeader:
4473
    :vartype RequestHeader: RequestHeader
4474
    :ivar Parameters:
4475
    :vartype Parameters: DeleteNodesParameters
4476
    '''
4477 1
    def __init__(self):
4478
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary)
4479
        self.RequestHeader = RequestHeader()
4480
        self.Parameters = DeleteNodesParameters()
4481
        self._freeze()
4482
4483 1
    def to_binary(self):
4484
        packet = []
4485
        packet.append(self.TypeId.to_binary())
4486
        packet.append(self.RequestHeader.to_binary())
4487
        packet.append(self.Parameters.to_binary())
4488
        return b''.join(packet)
4489
4490 1
    @staticmethod
4491
    def from_binary(data):
4492
        obj = DeleteNodesRequest()
4493
        obj.TypeId = NodeId.from_binary(data)
4494
        obj.RequestHeader = RequestHeader.from_binary(data)
4495
        obj.Parameters = DeleteNodesParameters.from_binary(data)
4496
        return obj
4497
4498 1
    def __str__(self):
4499
        return 'DeleteNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4500
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4501
               'Parameters:' + str(self.Parameters) + ')'
4502
4503 1
    __repr__ = __str__
4504
4505
4506 1
class DeleteNodesResult(FrozenClass):
4507
    '''
4508
    :ivar Results:
4509
    :vartype Results: StatusCode
4510
    :ivar DiagnosticInfos:
4511
    :vartype DiagnosticInfos: DiagnosticInfo
4512
    '''
4513 1
    def __init__(self):
4514
        self.Results = []
4515
        self.DiagnosticInfos = []
4516
        self._freeze()
4517
4518 1
    def to_binary(self):
4519
        packet = []
4520
        packet.append(struct.pack('<i', len(self.Results)))
4521
        for fieldname in self.Results:
4522
            packet.append(fieldname.to_binary())
4523
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4524
        for fieldname in self.DiagnosticInfos:
4525
            packet.append(fieldname.to_binary())
4526
        return b''.join(packet)
4527
4528 1
    @staticmethod
4529
    def from_binary(data):
4530
        obj = DeleteNodesResult()
4531
        length = struct.unpack('<i', data.read(4))[0]
4532
        if length != -1:
4533
            for _ in range(0, length):
4534
                obj.Results.append(StatusCode.from_binary(data))
4535
        length = struct.unpack('<i', data.read(4))[0]
4536
        if length != -1:
4537
            for _ in range(0, length):
4538
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4539
        return obj
4540
4541 1
    def __str__(self):
4542
        return 'DeleteNodesResult(' + 'Results:' + str(self.Results) + ', ' + \
4543
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4544
4545 1
    __repr__ = __str__
4546
4547
4548 1
class DeleteNodesResponse(FrozenClass):
4549
    '''
4550
    Delete one or more nodes from the server address space.
4551
4552
    :ivar TypeId:
4553
    :vartype TypeId: NodeId
4554
    :ivar ResponseHeader:
4555
    :vartype ResponseHeader: ResponseHeader
4556
    :ivar Parameters:
4557
    :vartype Parameters: DeleteNodesResult
4558
    '''
4559 1
    def __init__(self):
4560
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary)
4561
        self.ResponseHeader = ResponseHeader()
4562
        self.Parameters = DeleteNodesResult()
4563
        self._freeze()
4564
4565 1
    def to_binary(self):
4566
        packet = []
4567
        packet.append(self.TypeId.to_binary())
4568
        packet.append(self.ResponseHeader.to_binary())
4569
        packet.append(self.Parameters.to_binary())
4570
        return b''.join(packet)
4571
4572 1
    @staticmethod
4573
    def from_binary(data):
4574
        obj = DeleteNodesResponse()
4575
        obj.TypeId = NodeId.from_binary(data)
4576
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4577
        obj.Parameters = DeleteNodesResult.from_binary(data)
4578
        return obj
4579
4580 1
    def __str__(self):
4581
        return 'DeleteNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4582
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
4583
               'Parameters:' + str(self.Parameters) + ')'
4584
4585 1
    __repr__ = __str__
4586
4587
4588 1
class DeleteReferencesItem(FrozenClass):
4589
    '''
4590
    A request to delete a node from the server address space.
4591
4592
    :ivar SourceNodeId:
4593
    :vartype SourceNodeId: NodeId
4594
    :ivar ReferenceTypeId:
4595
    :vartype ReferenceTypeId: NodeId
4596
    :ivar IsForward:
4597
    :vartype IsForward: Boolean
4598
    :ivar TargetNodeId:
4599
    :vartype TargetNodeId: ExpandedNodeId
4600
    :ivar DeleteBidirectional:
4601
    :vartype DeleteBidirectional: Boolean
4602
    '''
4603 1
    def __init__(self):
4604
        self.SourceNodeId = NodeId()
4605
        self.ReferenceTypeId = NodeId()
4606
        self.IsForward = True
4607
        self.TargetNodeId = ExpandedNodeId()
4608
        self.DeleteBidirectional = True
4609
        self._freeze()
4610
4611 1
    def to_binary(self):
4612
        packet = []
4613
        packet.append(self.SourceNodeId.to_binary())
4614
        packet.append(self.ReferenceTypeId.to_binary())
4615
        packet.append(pack_uatype('Boolean', self.IsForward))
4616
        packet.append(self.TargetNodeId.to_binary())
4617
        packet.append(pack_uatype('Boolean', self.DeleteBidirectional))
4618
        return b''.join(packet)
4619
4620 1
    @staticmethod
4621
    def from_binary(data):
4622
        obj = DeleteReferencesItem()
4623
        obj.SourceNodeId = NodeId.from_binary(data)
4624
        obj.ReferenceTypeId = NodeId.from_binary(data)
4625
        obj.IsForward = unpack_uatype('Boolean', data)
4626
        obj.TargetNodeId = ExpandedNodeId.from_binary(data)
4627
        obj.DeleteBidirectional = unpack_uatype('Boolean', data)
4628
        return obj
4629
4630 1
    def __str__(self):
4631
        return 'DeleteReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', ' + \
4632
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4633
               'IsForward:' + str(self.IsForward) + ', ' + \
4634
               'TargetNodeId:' + str(self.TargetNodeId) + ', ' + \
4635
               'DeleteBidirectional:' + str(self.DeleteBidirectional) + ')'
4636
4637 1
    __repr__ = __str__
4638
4639
4640 1
class DeleteReferencesParameters(FrozenClass):
4641
    '''
4642
    :ivar ReferencesToDelete:
4643
    :vartype ReferencesToDelete: DeleteReferencesItem
4644
    '''
4645 1
    def __init__(self):
4646
        self.ReferencesToDelete = []
4647
        self._freeze()
4648
4649 1
    def to_binary(self):
4650
        packet = []
4651
        packet.append(struct.pack('<i', len(self.ReferencesToDelete)))
4652
        for fieldname in self.ReferencesToDelete:
4653
            packet.append(fieldname.to_binary())
4654
        return b''.join(packet)
4655
4656 1
    @staticmethod
4657
    def from_binary(data):
4658
        obj = DeleteReferencesParameters()
4659
        length = struct.unpack('<i', data.read(4))[0]
4660
        if length != -1:
4661
            for _ in range(0, length):
4662
                obj.ReferencesToDelete.append(DeleteReferencesItem.from_binary(data))
4663
        return obj
4664
4665 1
    def __str__(self):
4666
        return 'DeleteReferencesParameters(' + 'ReferencesToDelete:' + str(self.ReferencesToDelete) + ')'
4667
4668 1
    __repr__ = __str__
4669
4670
4671 1
class DeleteReferencesRequest(FrozenClass):
4672
    '''
4673
    Delete one or more references from the server address space.
4674
4675
    :ivar TypeId:
4676
    :vartype TypeId: NodeId
4677
    :ivar RequestHeader:
4678
    :vartype RequestHeader: RequestHeader
4679
    :ivar Parameters:
4680
    :vartype Parameters: DeleteReferencesParameters
4681
    '''
4682 1
    def __init__(self):
4683
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary)
4684
        self.RequestHeader = RequestHeader()
4685
        self.Parameters = DeleteReferencesParameters()
4686
        self._freeze()
4687
4688 1
    def to_binary(self):
4689
        packet = []
4690
        packet.append(self.TypeId.to_binary())
4691
        packet.append(self.RequestHeader.to_binary())
4692
        packet.append(self.Parameters.to_binary())
4693
        return b''.join(packet)
4694
4695 1
    @staticmethod
4696
    def from_binary(data):
4697
        obj = DeleteReferencesRequest()
4698
        obj.TypeId = NodeId.from_binary(data)
4699
        obj.RequestHeader = RequestHeader.from_binary(data)
4700
        obj.Parameters = DeleteReferencesParameters.from_binary(data)
4701
        return obj
4702
4703 1
    def __str__(self):
4704
        return 'DeleteReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4705
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
4706
               'Parameters:' + str(self.Parameters) + ')'
4707
4708 1
    __repr__ = __str__
4709
4710
4711 1
class DeleteReferencesResult(FrozenClass):
4712
    '''
4713
    :ivar Results:
4714
    :vartype Results: StatusCode
4715
    :ivar DiagnosticInfos:
4716
    :vartype DiagnosticInfos: DiagnosticInfo
4717
    '''
4718 1
    def __init__(self):
4719
        self.Results = []
4720
        self.DiagnosticInfos = []
4721
        self._freeze()
4722
4723 1
    def to_binary(self):
4724
        packet = []
4725
        packet.append(struct.pack('<i', len(self.Results)))
4726
        for fieldname in self.Results:
4727
            packet.append(fieldname.to_binary())
4728
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4729
        for fieldname in self.DiagnosticInfos:
4730
            packet.append(fieldname.to_binary())
4731
        return b''.join(packet)
4732
4733 1
    @staticmethod
4734
    def from_binary(data):
4735
        obj = DeleteReferencesResult()
4736
        length = struct.unpack('<i', data.read(4))[0]
4737
        if length != -1:
4738
            for _ in range(0, length):
4739
                obj.Results.append(StatusCode.from_binary(data))
4740
        length = struct.unpack('<i', data.read(4))[0]
4741
        if length != -1:
4742
            for _ in range(0, length):
4743
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4744
        return obj
4745
4746 1
    def __str__(self):
4747
        return 'DeleteReferencesResult(' + 'Results:' + str(self.Results) + ', ' + \
4748
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4749
4750 1
    __repr__ = __str__
4751
4752
4753 1
class DeleteReferencesResponse(FrozenClass):
4754
    '''
4755
    Delete one or more references from the server address space.
4756
4757
    :ivar TypeId:
4758
    :vartype TypeId: NodeId
4759
    :ivar ResponseHeader:
4760
    :vartype ResponseHeader: ResponseHeader
4761
    :ivar Parameters:
4762
    :vartype Parameters: DeleteReferencesResult
4763
    '''
4764 1
    def __init__(self):
4765
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary)
4766
        self.ResponseHeader = ResponseHeader()
4767
        self.Parameters = DeleteReferencesResult()
4768
        self._freeze()
4769
4770 1
    def to_binary(self):
4771
        packet = []
4772
        packet.append(self.TypeId.to_binary())
4773
        packet.append(self.ResponseHeader.to_binary())
4774
        packet.append(self.Parameters.to_binary())
4775
        return b''.join(packet)
4776
4777 1
    @staticmethod
4778
    def from_binary(data):
4779
        obj = DeleteReferencesResponse()
4780
        obj.TypeId = NodeId.from_binary(data)
4781
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4782
        obj.Parameters = DeleteReferencesResult.from_binary(data)
4783
        return obj
4784
4785 1
    def __str__(self):
4786
        return 'DeleteReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
4787
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
4788
               'Parameters:' + str(self.Parameters) + ')'
4789
4790 1
    __repr__ = __str__
4791
4792
4793 1
class ViewDescription(FrozenClass):
4794
    '''
4795
    The view to browse.
4796
4797
    :ivar ViewId:
4798
    :vartype ViewId: NodeId
4799
    :ivar Timestamp:
4800
    :vartype Timestamp: DateTime
4801
    :ivar ViewVersion:
4802
    :vartype ViewVersion: UInt32
4803
    '''
4804 1
    def __init__(self):
4805 1
        self.ViewId = NodeId()
4806 1
        self.Timestamp = datetime.now()
4807 1
        self.ViewVersion = 0
4808 1
        self._freeze()
4809
4810 1
    def to_binary(self):
4811 1
        packet = []
4812 1
        packet.append(self.ViewId.to_binary())
4813 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
4814 1
        packet.append(pack_uatype('UInt32', self.ViewVersion))
4815 1
        return b''.join(packet)
4816
4817 1
    @staticmethod
4818
    def from_binary(data):
4819 1
        obj = ViewDescription()
4820 1
        obj.ViewId = NodeId.from_binary(data)
4821 1
        obj.Timestamp = unpack_uatype('DateTime', data)
4822 1
        obj.ViewVersion = unpack_uatype('UInt32', data)
4823 1
        return obj
4824
4825 1
    def __str__(self):
4826
        return 'ViewDescription(' + 'ViewId:' + str(self.ViewId) + ', ' + \
4827
               'Timestamp:' + str(self.Timestamp) + ', ' + \
4828
               'ViewVersion:' + str(self.ViewVersion) + ')'
4829
4830 1
    __repr__ = __str__
4831
4832
4833 1
class BrowseDescription(FrozenClass):
4834
    '''
4835
    A request to browse the the references from a node.
4836
4837
    :ivar NodeId:
4838
    :vartype NodeId: NodeId
4839
    :ivar BrowseDirection:
4840
    :vartype BrowseDirection: BrowseDirection
4841
    :ivar ReferenceTypeId:
4842
    :vartype ReferenceTypeId: NodeId
4843
    :ivar IncludeSubtypes:
4844
    :vartype IncludeSubtypes: Boolean
4845
    :ivar NodeClassMask:
4846
    :vartype NodeClassMask: UInt32
4847
    :ivar ResultMask:
4848
    :vartype ResultMask: UInt32
4849
    '''
4850 1
    def __init__(self):
4851 1
        self.NodeId = NodeId()
4852 1
        self.BrowseDirection = 0
4853 1
        self.ReferenceTypeId = NodeId()
4854 1
        self.IncludeSubtypes = True
4855 1
        self.NodeClassMask = 0
4856 1
        self.ResultMask = 0
4857 1
        self._freeze()
4858
4859 1
    def to_binary(self):
4860 1
        packet = []
4861 1
        packet.append(self.NodeId.to_binary())
4862 1
        packet.append(pack_uatype('UInt32', self.BrowseDirection))
4863 1
        packet.append(self.ReferenceTypeId.to_binary())
4864 1
        packet.append(pack_uatype('Boolean', self.IncludeSubtypes))
4865 1
        packet.append(pack_uatype('UInt32', self.NodeClassMask))
4866 1
        packet.append(pack_uatype('UInt32', self.ResultMask))
4867 1
        return b''.join(packet)
4868
4869 1
    @staticmethod
4870
    def from_binary(data):
4871 1
        obj = BrowseDescription()
4872 1
        obj.NodeId = NodeId.from_binary(data)
4873 1
        obj.BrowseDirection = unpack_uatype('UInt32', data)
4874 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4875 1
        obj.IncludeSubtypes = unpack_uatype('Boolean', data)
4876 1
        obj.NodeClassMask = unpack_uatype('UInt32', data)
4877 1
        obj.ResultMask = unpack_uatype('UInt32', data)
4878 1
        return obj
4879
4880 1
    def __str__(self):
4881
        return 'BrowseDescription(' + 'NodeId:' + str(self.NodeId) + ', ' + \
4882
               'BrowseDirection:' + str(self.BrowseDirection) + ', ' + \
4883
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4884
               'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', ' + \
4885
               'NodeClassMask:' + str(self.NodeClassMask) + ', ' + \
4886
               'ResultMask:' + str(self.ResultMask) + ')'
4887
4888 1
    __repr__ = __str__
4889
4890
4891 1
class ReferenceDescription(FrozenClass):
4892
    '''
4893
    The description of a reference.
4894
4895
    :ivar ReferenceTypeId:
4896
    :vartype ReferenceTypeId: NodeId
4897
    :ivar IsForward:
4898
    :vartype IsForward: Boolean
4899
    :ivar NodeId:
4900
    :vartype NodeId: ExpandedNodeId
4901
    :ivar BrowseName:
4902
    :vartype BrowseName: QualifiedName
4903
    :ivar DisplayName:
4904
    :vartype DisplayName: LocalizedText
4905
    :ivar NodeClass:
4906
    :vartype NodeClass: NodeClass
4907
    :ivar TypeDefinition:
4908
    :vartype TypeDefinition: ExpandedNodeId
4909
    '''
4910 1
    def __init__(self):
4911 1
        self.ReferenceTypeId = NodeId()
4912 1
        self.IsForward = True
4913 1
        self.NodeId = ExpandedNodeId()
4914 1
        self.BrowseName = QualifiedName()
4915 1
        self.DisplayName = LocalizedText()
4916 1
        self.NodeClass = 0
4917 1
        self.TypeDefinition = ExpandedNodeId()
4918 1
        self._freeze()
4919
4920 1
    def to_binary(self):
4921 1
        packet = []
4922 1
        packet.append(self.ReferenceTypeId.to_binary())
4923 1
        packet.append(pack_uatype('Boolean', self.IsForward))
4924 1
        packet.append(self.NodeId.to_binary())
4925 1
        packet.append(self.BrowseName.to_binary())
4926 1
        packet.append(self.DisplayName.to_binary())
4927 1
        packet.append(pack_uatype('UInt32', self.NodeClass))
4928 1
        packet.append(self.TypeDefinition.to_binary())
4929 1
        return b''.join(packet)
4930
4931 1
    @staticmethod
4932
    def from_binary(data):
4933 1
        obj = ReferenceDescription()
4934 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4935 1
        obj.IsForward = unpack_uatype('Boolean', data)
4936 1
        obj.NodeId = ExpandedNodeId.from_binary(data)
4937 1
        obj.BrowseName = QualifiedName.from_binary(data)
4938 1
        obj.DisplayName = LocalizedText.from_binary(data)
4939 1
        obj.NodeClass = unpack_uatype('UInt32', data)
4940 1
        obj.TypeDefinition = ExpandedNodeId.from_binary(data)
4941 1
        return obj
4942
4943 1
    def __str__(self):
4944
        return 'ReferenceDescription(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
4945
               'IsForward:' + str(self.IsForward) + ', ' + \
4946
               'NodeId:' + str(self.NodeId) + ', ' + \
4947
               'BrowseName:' + str(self.BrowseName) + ', ' + \
4948
               'DisplayName:' + str(self.DisplayName) + ', ' + \
4949
               'NodeClass:' + str(self.NodeClass) + ', ' + \
4950
               'TypeDefinition:' + str(self.TypeDefinition) + ')'
4951
4952 1
    __repr__ = __str__
4953
4954
4955 1
class BrowseResult(FrozenClass):
4956
    '''
4957
    The result of a browse operation.
4958
4959
    :ivar StatusCode:
4960
    :vartype StatusCode: StatusCode
4961
    :ivar ContinuationPoint:
4962
    :vartype ContinuationPoint: ByteString
4963
    :ivar References:
4964
    :vartype References: ReferenceDescription
4965
    '''
4966 1
    def __init__(self):
4967 1
        self.StatusCode = StatusCode()
4968 1
        self.ContinuationPoint = b''
4969 1
        self.References = []
4970 1
        self._freeze()
4971
4972 1
    def to_binary(self):
4973 1
        packet = []
4974 1
        packet.append(self.StatusCode.to_binary())
4975 1
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
4976 1
        packet.append(struct.pack('<i', len(self.References)))
4977 1
        for fieldname in self.References:
4978 1
            packet.append(fieldname.to_binary())
4979 1
        return b''.join(packet)
4980
4981 1
    @staticmethod
4982
    def from_binary(data):
4983 1
        obj = BrowseResult()
4984 1
        obj.StatusCode = StatusCode.from_binary(data)
4985 1
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
4986 1
        length = struct.unpack('<i', data.read(4))[0]
4987 1
        if length != -1:
4988 1
            for _ in range(0, length):
4989 1
                obj.References.append(ReferenceDescription.from_binary(data))
4990 1
        return obj
4991
4992 1
    def __str__(self):
4993
        return 'BrowseResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
4994
               'ContinuationPoint:' + str(self.ContinuationPoint) + ', ' + \
4995
               'References:' + str(self.References) + ')'
4996
4997 1
    __repr__ = __str__
4998
4999
5000 1
class BrowseParameters(FrozenClass):
5001
    '''
5002
    :ivar View:
5003
    :vartype View: ViewDescription
5004
    :ivar RequestedMaxReferencesPerNode:
5005
    :vartype RequestedMaxReferencesPerNode: UInt32
5006
    :ivar NodesToBrowse:
5007
    :vartype NodesToBrowse: BrowseDescription
5008
    '''
5009 1
    def __init__(self):
5010 1
        self.View = ViewDescription()
5011 1
        self.RequestedMaxReferencesPerNode = 0
5012 1
        self.NodesToBrowse = []
5013 1
        self._freeze()
5014
5015 1
    def to_binary(self):
5016 1
        packet = []
5017 1
        packet.append(self.View.to_binary())
5018 1
        packet.append(pack_uatype('UInt32', self.RequestedMaxReferencesPerNode))
5019 1
        packet.append(struct.pack('<i', len(self.NodesToBrowse)))
5020 1
        for fieldname in self.NodesToBrowse:
5021 1
            packet.append(fieldname.to_binary())
5022 1
        return b''.join(packet)
5023
5024 1
    @staticmethod
5025
    def from_binary(data):
5026 1
        obj = BrowseParameters()
5027 1
        obj.View = ViewDescription.from_binary(data)
5028 1
        obj.RequestedMaxReferencesPerNode = unpack_uatype('UInt32', data)
5029 1
        length = struct.unpack('<i', data.read(4))[0]
5030 1
        if length != -1:
5031 1
            for _ in range(0, length):
5032 1
                obj.NodesToBrowse.append(BrowseDescription.from_binary(data))
5033 1
        return obj
5034
5035 1
    def __str__(self):
5036
        return 'BrowseParameters(' + 'View:' + str(self.View) + ', ' + \
5037
               'RequestedMaxReferencesPerNode:' + str(self.RequestedMaxReferencesPerNode) + ', ' + \
5038
               'NodesToBrowse:' + str(self.NodesToBrowse) + ')'
5039
5040 1
    __repr__ = __str__
5041
5042
5043 1
class BrowseRequest(FrozenClass):
5044
    '''
5045
    Browse the references for one or more nodes from the server address space.
5046
5047
    :ivar TypeId:
5048
    :vartype TypeId: NodeId
5049
    :ivar RequestHeader:
5050
    :vartype RequestHeader: RequestHeader
5051
    :ivar Parameters:
5052
    :vartype Parameters: BrowseParameters
5053
    '''
5054 1
    def __init__(self):
5055 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseRequest_Encoding_DefaultBinary)
5056 1
        self.RequestHeader = RequestHeader()
5057 1
        self.Parameters = BrowseParameters()
5058 1
        self._freeze()
5059
5060 1
    def to_binary(self):
5061 1
        packet = []
5062 1
        packet.append(self.TypeId.to_binary())
5063 1
        packet.append(self.RequestHeader.to_binary())
5064 1
        packet.append(self.Parameters.to_binary())
5065 1
        return b''.join(packet)
5066
5067 1
    @staticmethod
5068
    def from_binary(data):
5069
        obj = BrowseRequest()
5070
        obj.TypeId = NodeId.from_binary(data)
5071
        obj.RequestHeader = RequestHeader.from_binary(data)
5072
        obj.Parameters = BrowseParameters.from_binary(data)
5073
        return obj
5074
5075 1
    def __str__(self):
5076
        return 'BrowseRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5077
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5078
               'Parameters:' + str(self.Parameters) + ')'
5079
5080 1
    __repr__ = __str__
5081
5082
5083 1
class BrowseResponse(FrozenClass):
5084
    '''
5085
    Browse the references for one or more nodes from the server address space.
5086
5087
    :ivar TypeId:
5088
    :vartype TypeId: NodeId
5089
    :ivar ResponseHeader:
5090
    :vartype ResponseHeader: ResponseHeader
5091
    :ivar Results:
5092
    :vartype Results: BrowseResult
5093
    :ivar DiagnosticInfos:
5094
    :vartype DiagnosticInfos: DiagnosticInfo
5095
    '''
5096 1
    def __init__(self):
5097 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseResponse_Encoding_DefaultBinary)
5098 1
        self.ResponseHeader = ResponseHeader()
5099 1
        self.Results = []
5100 1
        self.DiagnosticInfos = []
5101 1
        self._freeze()
5102
5103 1
    def to_binary(self):
5104 1
        packet = []
5105 1
        packet.append(self.TypeId.to_binary())
5106 1
        packet.append(self.ResponseHeader.to_binary())
5107 1
        packet.append(struct.pack('<i', len(self.Results)))
5108 1
        for fieldname in self.Results:
5109 1
            packet.append(fieldname.to_binary())
5110 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5111 1
        for fieldname in self.DiagnosticInfos:
5112
            packet.append(fieldname.to_binary())
5113 1
        return b''.join(packet)
5114
5115 1
    @staticmethod
5116
    def from_binary(data):
5117 1
        obj = BrowseResponse()
5118 1
        obj.TypeId = NodeId.from_binary(data)
5119 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5120 1
        length = struct.unpack('<i', data.read(4))[0]
5121 1
        if length != -1:
5122 1
            for _ in range(0, length):
5123 1
                obj.Results.append(BrowseResult.from_binary(data))
5124 1
        length = struct.unpack('<i', data.read(4))[0]
5125 1
        if length != -1:
5126 1
            for _ in range(0, length):
5127
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5128 1
        return obj
5129
5130 1
    def __str__(self):
5131
        return 'BrowseResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5132
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5133
               'Results:' + str(self.Results) + ', ' + \
5134
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5135
5136 1
    __repr__ = __str__
5137
5138
5139 1
class BrowseNextParameters(FrozenClass):
5140
    '''
5141
    :ivar ReleaseContinuationPoints:
5142
    :vartype ReleaseContinuationPoints: Boolean
5143
    :ivar ContinuationPoints:
5144
    :vartype ContinuationPoints: ByteString
5145
    '''
5146 1
    def __init__(self):
5147
        self.ReleaseContinuationPoints = True
5148
        self.ContinuationPoints = []
5149
        self._freeze()
5150
5151 1
    def to_binary(self):
5152
        packet = []
5153
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoints))
5154
        packet.append(struct.pack('<i', len(self.ContinuationPoints)))
5155
        for fieldname in self.ContinuationPoints:
5156
            packet.append(pack_uatype('ByteString', fieldname))
5157
        return b''.join(packet)
5158
5159 1
    @staticmethod
5160
    def from_binary(data):
5161
        obj = BrowseNextParameters()
5162
        obj.ReleaseContinuationPoints = unpack_uatype('Boolean', data)
5163
        obj.ContinuationPoints = unpack_uatype_array('ByteString', data)
5164
        return obj
5165
5166 1
    def __str__(self):
5167
        return 'BrowseNextParameters(' + 'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', ' + \
5168
               'ContinuationPoints:' + str(self.ContinuationPoints) + ')'
5169
5170 1
    __repr__ = __str__
5171
5172
5173 1
class BrowseNextRequest(FrozenClass):
5174
    '''
5175
    Continues one or more browse operations.
5176
5177
    :ivar TypeId:
5178
    :vartype TypeId: NodeId
5179
    :ivar RequestHeader:
5180
    :vartype RequestHeader: RequestHeader
5181
    :ivar Parameters:
5182
    :vartype Parameters: BrowseNextParameters
5183
    '''
5184 1
    def __init__(self):
5185
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextRequest_Encoding_DefaultBinary)
5186
        self.RequestHeader = RequestHeader()
5187
        self.Parameters = BrowseNextParameters()
5188
        self._freeze()
5189
5190 1
    def to_binary(self):
5191
        packet = []
5192
        packet.append(self.TypeId.to_binary())
5193
        packet.append(self.RequestHeader.to_binary())
5194
        packet.append(self.Parameters.to_binary())
5195
        return b''.join(packet)
5196
5197 1
    @staticmethod
5198
    def from_binary(data):
5199
        obj = BrowseNextRequest()
5200
        obj.TypeId = NodeId.from_binary(data)
5201
        obj.RequestHeader = RequestHeader.from_binary(data)
5202
        obj.Parameters = BrowseNextParameters.from_binary(data)
5203
        return obj
5204
5205 1
    def __str__(self):
5206
        return 'BrowseNextRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5207
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5208
               'Parameters:' + str(self.Parameters) + ')'
5209
5210 1
    __repr__ = __str__
5211
5212
5213 1
class BrowseNextResult(FrozenClass):
5214
    '''
5215
    :ivar Results:
5216
    :vartype Results: BrowseResult
5217
    :ivar DiagnosticInfos:
5218
    :vartype DiagnosticInfos: DiagnosticInfo
5219
    '''
5220 1
    def __init__(self):
5221
        self.Results = []
5222
        self.DiagnosticInfos = []
5223
        self._freeze()
5224
5225 1
    def to_binary(self):
5226
        packet = []
5227
        packet.append(struct.pack('<i', len(self.Results)))
5228
        for fieldname in self.Results:
5229
            packet.append(fieldname.to_binary())
5230
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5231
        for fieldname in self.DiagnosticInfos:
5232
            packet.append(fieldname.to_binary())
5233
        return b''.join(packet)
5234
5235 1
    @staticmethod
5236
    def from_binary(data):
5237
        obj = BrowseNextResult()
5238
        length = struct.unpack('<i', data.read(4))[0]
5239
        if length != -1:
5240
            for _ in range(0, length):
5241
                obj.Results.append(BrowseResult.from_binary(data))
5242
        length = struct.unpack('<i', data.read(4))[0]
5243
        if length != -1:
5244
            for _ in range(0, length):
5245
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5246
        return obj
5247
5248 1
    def __str__(self):
5249
        return 'BrowseNextResult(' + 'Results:' + str(self.Results) + ', ' + \
5250
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5251
5252 1
    __repr__ = __str__
5253
5254
5255 1
class BrowseNextResponse(FrozenClass):
5256
    '''
5257
    Continues one or more browse operations.
5258
5259
    :ivar TypeId:
5260
    :vartype TypeId: NodeId
5261
    :ivar ResponseHeader:
5262
    :vartype ResponseHeader: ResponseHeader
5263
    :ivar Parameters:
5264
    :vartype Parameters: BrowseNextResult
5265
    '''
5266 1
    def __init__(self):
5267
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextResponse_Encoding_DefaultBinary)
5268
        self.ResponseHeader = ResponseHeader()
5269
        self.Parameters = BrowseNextResult()
5270
        self._freeze()
5271
5272 1
    def to_binary(self):
5273
        packet = []
5274
        packet.append(self.TypeId.to_binary())
5275
        packet.append(self.ResponseHeader.to_binary())
5276
        packet.append(self.Parameters.to_binary())
5277
        return b''.join(packet)
5278
5279 1
    @staticmethod
5280
    def from_binary(data):
5281
        obj = BrowseNextResponse()
5282
        obj.TypeId = NodeId.from_binary(data)
5283
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5284
        obj.Parameters = BrowseNextResult.from_binary(data)
5285
        return obj
5286
5287 1
    def __str__(self):
5288
        return 'BrowseNextResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5289
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5290
               'Parameters:' + str(self.Parameters) + ')'
5291
5292 1
    __repr__ = __str__
5293
5294
5295 1
class RelativePathElement(FrozenClass):
5296
    '''
5297
    An element in a relative path.
5298
5299
    :ivar ReferenceTypeId:
5300
    :vartype ReferenceTypeId: NodeId
5301
    :ivar IsInverse:
5302
    :vartype IsInverse: Boolean
5303
    :ivar IncludeSubtypes:
5304
    :vartype IncludeSubtypes: Boolean
5305
    :ivar TargetName:
5306
    :vartype TargetName: QualifiedName
5307
    '''
5308 1
    def __init__(self):
5309 1
        self.ReferenceTypeId = NodeId()
5310 1
        self.IsInverse = True
5311 1
        self.IncludeSubtypes = True
5312 1
        self.TargetName = QualifiedName()
5313 1
        self._freeze()
5314
5315 1
    def to_binary(self):
5316 1
        packet = []
5317 1
        packet.append(self.ReferenceTypeId.to_binary())
5318 1
        packet.append(pack_uatype('Boolean', self.IsInverse))
5319 1
        packet.append(pack_uatype('Boolean', self.IncludeSubtypes))
5320 1
        packet.append(self.TargetName.to_binary())
5321 1
        return b''.join(packet)
5322
5323 1
    @staticmethod
5324
    def from_binary(data):
5325 1
        obj = RelativePathElement()
5326 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
5327 1
        obj.IsInverse = unpack_uatype('Boolean', data)
5328 1
        obj.IncludeSubtypes = unpack_uatype('Boolean', data)
5329 1
        obj.TargetName = QualifiedName.from_binary(data)
5330 1
        return obj
5331
5332 1
    def __str__(self):
5333
        return 'RelativePathElement(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
5334
               'IsInverse:' + str(self.IsInverse) + ', ' + \
5335
               'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', ' + \
5336
               'TargetName:' + str(self.TargetName) + ')'
5337
5338 1
    __repr__ = __str__
5339
5340
5341 1
class RelativePath(FrozenClass):
5342
    '''
5343
    A relative path constructed from reference types and browse names.
5344
5345
    :ivar Elements:
5346
    :vartype Elements: RelativePathElement
5347
    '''
5348 1
    def __init__(self):
5349 1
        self.Elements = []
5350 1
        self._freeze()
5351
5352 1
    def to_binary(self):
5353 1
        packet = []
5354 1
        packet.append(struct.pack('<i', len(self.Elements)))
5355 1
        for fieldname in self.Elements:
5356 1
            packet.append(fieldname.to_binary())
5357 1
        return b''.join(packet)
5358
5359 1
    @staticmethod
5360
    def from_binary(data):
5361 1
        obj = RelativePath()
5362 1
        length = struct.unpack('<i', data.read(4))[0]
5363 1
        if length != -1:
5364 1
            for _ in range(0, length):
5365 1
                obj.Elements.append(RelativePathElement.from_binary(data))
5366 1
        return obj
5367
5368 1
    def __str__(self):
5369
        return 'RelativePath(' + 'Elements:' + str(self.Elements) + ')'
5370
5371 1
    __repr__ = __str__
5372
5373
5374 1
class BrowsePath(FrozenClass):
5375
    '''
5376
    A request to translate a path into a node id.
5377
5378
    :ivar StartingNode:
5379
    :vartype StartingNode: NodeId
5380
    :ivar RelativePath:
5381
    :vartype RelativePath: RelativePath
5382
    '''
5383 1
    def __init__(self):
5384 1
        self.StartingNode = NodeId()
5385 1
        self.RelativePath = RelativePath()
5386 1
        self._freeze()
5387
5388 1
    def to_binary(self):
5389 1
        packet = []
5390 1
        packet.append(self.StartingNode.to_binary())
5391 1
        packet.append(self.RelativePath.to_binary())
5392 1
        return b''.join(packet)
5393
5394 1
    @staticmethod
5395
    def from_binary(data):
5396 1
        obj = BrowsePath()
5397 1
        obj.StartingNode = NodeId.from_binary(data)
5398 1
        obj.RelativePath = RelativePath.from_binary(data)
5399 1
        return obj
5400
5401 1
    def __str__(self):
5402
        return 'BrowsePath(' + 'StartingNode:' + str(self.StartingNode) + ', ' + \
5403
               'RelativePath:' + str(self.RelativePath) + ')'
5404
5405 1
    __repr__ = __str__
5406
5407
5408 1
class BrowsePathTarget(FrozenClass):
5409
    '''
5410
    The target of the translated path.
5411
5412
    :ivar TargetId:
5413
    :vartype TargetId: ExpandedNodeId
5414
    :ivar RemainingPathIndex:
5415
    :vartype RemainingPathIndex: UInt32
5416
    '''
5417 1
    def __init__(self):
5418 1
        self.TargetId = ExpandedNodeId()
5419 1
        self.RemainingPathIndex = 0
5420 1
        self._freeze()
5421
5422 1
    def to_binary(self):
5423 1
        packet = []
5424 1
        packet.append(self.TargetId.to_binary())
5425 1
        packet.append(pack_uatype('UInt32', self.RemainingPathIndex))
5426 1
        return b''.join(packet)
5427
5428 1
    @staticmethod
5429
    def from_binary(data):
5430 1
        obj = BrowsePathTarget()
5431 1
        obj.TargetId = ExpandedNodeId.from_binary(data)
5432 1
        obj.RemainingPathIndex = unpack_uatype('UInt32', data)
5433 1
        return obj
5434
5435 1
    def __str__(self):
5436
        return 'BrowsePathTarget(' + 'TargetId:' + str(self.TargetId) + ', ' + \
5437
               'RemainingPathIndex:' + str(self.RemainingPathIndex) + ')'
5438
5439 1
    __repr__ = __str__
5440
5441
5442 1
class BrowsePathResult(FrozenClass):
5443
    '''
5444
    The result of a translate opearation.
5445
5446
    :ivar StatusCode:
5447
    :vartype StatusCode: StatusCode
5448
    :ivar Targets:
5449
    :vartype Targets: BrowsePathTarget
5450
    '''
5451 1
    def __init__(self):
5452 1
        self.StatusCode = StatusCode()
5453 1
        self.Targets = []
5454 1
        self._freeze()
5455
5456 1
    def to_binary(self):
5457 1
        packet = []
5458 1
        packet.append(self.StatusCode.to_binary())
5459 1
        packet.append(struct.pack('<i', len(self.Targets)))
5460 1
        for fieldname in self.Targets:
5461 1
            packet.append(fieldname.to_binary())
5462 1
        return b''.join(packet)
5463
5464 1
    @staticmethod
5465
    def from_binary(data):
5466 1
        obj = BrowsePathResult()
5467 1
        obj.StatusCode = StatusCode.from_binary(data)
5468 1
        length = struct.unpack('<i', data.read(4))[0]
5469 1
        if length != -1:
5470 1
            for _ in range(0, length):
5471 1
                obj.Targets.append(BrowsePathTarget.from_binary(data))
5472 1
        return obj
5473
5474 1
    def __str__(self):
5475
        return 'BrowsePathResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
5476
               'Targets:' + str(self.Targets) + ')'
5477
5478 1
    __repr__ = __str__
5479
5480
5481 1
class TranslateBrowsePathsToNodeIdsParameters(FrozenClass):
5482
    '''
5483
    :ivar BrowsePaths:
5484
    :vartype BrowsePaths: BrowsePath
5485
    '''
5486 1
    def __init__(self):
5487 1
        self.BrowsePaths = []
5488 1
        self._freeze()
5489
5490 1
    def to_binary(self):
5491 1
        packet = []
5492 1
        packet.append(struct.pack('<i', len(self.BrowsePaths)))
5493 1
        for fieldname in self.BrowsePaths:
5494 1
            packet.append(fieldname.to_binary())
5495 1
        return b''.join(packet)
5496
5497 1
    @staticmethod
5498
    def from_binary(data):
5499 1
        obj = TranslateBrowsePathsToNodeIdsParameters()
5500 1
        length = struct.unpack('<i', data.read(4))[0]
5501 1
        if length != -1:
5502 1
            for _ in range(0, length):
5503 1
                obj.BrowsePaths.append(BrowsePath.from_binary(data))
5504 1
        return obj
5505
5506 1
    def __str__(self):
5507
        return 'TranslateBrowsePathsToNodeIdsParameters(' + 'BrowsePaths:' + str(self.BrowsePaths) + ')'
5508
5509 1
    __repr__ = __str__
5510
5511
5512 1
class TranslateBrowsePathsToNodeIdsRequest(FrozenClass):
5513
    '''
5514
    Translates one or more paths in the server address space.
5515
5516
    :ivar TypeId:
5517
    :vartype TypeId: NodeId
5518
    :ivar RequestHeader:
5519
    :vartype RequestHeader: RequestHeader
5520
    :ivar Parameters:
5521
    :vartype Parameters: TranslateBrowsePathsToNodeIdsParameters
5522
    '''
5523 1
    def __init__(self):
5524 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary)
5525 1
        self.RequestHeader = RequestHeader()
5526 1
        self.Parameters = TranslateBrowsePathsToNodeIdsParameters()
5527 1
        self._freeze()
5528
5529 1
    def to_binary(self):
5530 1
        packet = []
5531 1
        packet.append(self.TypeId.to_binary())
5532 1
        packet.append(self.RequestHeader.to_binary())
5533 1
        packet.append(self.Parameters.to_binary())
5534 1
        return b''.join(packet)
5535
5536 1
    @staticmethod
5537
    def from_binary(data):
5538
        obj = TranslateBrowsePathsToNodeIdsRequest()
5539
        obj.TypeId = NodeId.from_binary(data)
5540
        obj.RequestHeader = RequestHeader.from_binary(data)
5541
        obj.Parameters = TranslateBrowsePathsToNodeIdsParameters.from_binary(data)
5542
        return obj
5543
5544 1
    def __str__(self):
5545
        return 'TranslateBrowsePathsToNodeIdsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5546
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5547
               'Parameters:' + str(self.Parameters) + ')'
5548
5549 1
    __repr__ = __str__
5550
5551
5552 1
class TranslateBrowsePathsToNodeIdsResponse(FrozenClass):
5553
    '''
5554
    Translates one or more paths in the server address space.
5555
5556
    :ivar TypeId:
5557
    :vartype TypeId: NodeId
5558
    :ivar ResponseHeader:
5559
    :vartype ResponseHeader: ResponseHeader
5560
    :ivar Results:
5561
    :vartype Results: BrowsePathResult
5562
    :ivar DiagnosticInfos:
5563
    :vartype DiagnosticInfos: DiagnosticInfo
5564
    '''
5565 1
    def __init__(self):
5566 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary)
5567 1
        self.ResponseHeader = ResponseHeader()
5568 1
        self.Results = []
5569 1
        self.DiagnosticInfos = []
5570 1
        self._freeze()
5571
5572 1
    def to_binary(self):
5573 1
        packet = []
5574 1
        packet.append(self.TypeId.to_binary())
5575 1
        packet.append(self.ResponseHeader.to_binary())
5576 1
        packet.append(struct.pack('<i', len(self.Results)))
5577 1
        for fieldname in self.Results:
5578 1
            packet.append(fieldname.to_binary())
5579 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5580 1
        for fieldname in self.DiagnosticInfos:
5581
            packet.append(fieldname.to_binary())
5582 1
        return b''.join(packet)
5583
5584 1
    @staticmethod
5585
    def from_binary(data):
5586 1
        obj = TranslateBrowsePathsToNodeIdsResponse()
5587 1
        obj.TypeId = NodeId.from_binary(data)
5588 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5589 1
        length = struct.unpack('<i', data.read(4))[0]
5590 1
        if length != -1:
5591 1
            for _ in range(0, length):
5592 1
                obj.Results.append(BrowsePathResult.from_binary(data))
5593 1
        length = struct.unpack('<i', data.read(4))[0]
5594 1
        if length != -1:
5595 1
            for _ in range(0, length):
5596
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5597 1
        return obj
5598
5599 1
    def __str__(self):
5600
        return 'TranslateBrowsePathsToNodeIdsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5601
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5602
               'Results:' + str(self.Results) + ', ' + \
5603
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5604
5605 1
    __repr__ = __str__
5606
5607
5608 1
class RegisterNodesParameters(FrozenClass):
5609
    '''
5610
    :ivar NodesToRegister:
5611
    :vartype NodesToRegister: NodeId
5612
    '''
5613 1
    def __init__(self):
5614
        self.NodesToRegister = []
5615
        self._freeze()
5616
5617 1
    def to_binary(self):
5618
        packet = []
5619
        packet.append(struct.pack('<i', len(self.NodesToRegister)))
5620
        for fieldname in self.NodesToRegister:
5621
            packet.append(fieldname.to_binary())
5622
        return b''.join(packet)
5623
5624 1
    @staticmethod
5625
    def from_binary(data):
5626
        obj = RegisterNodesParameters()
5627
        length = struct.unpack('<i', data.read(4))[0]
5628
        if length != -1:
5629
            for _ in range(0, length):
5630
                obj.NodesToRegister.append(NodeId.from_binary(data))
5631
        return obj
5632
5633 1
    def __str__(self):
5634
        return 'RegisterNodesParameters(' + 'NodesToRegister:' + str(self.NodesToRegister) + ')'
5635
5636 1
    __repr__ = __str__
5637
5638
5639 1
class RegisterNodesRequest(FrozenClass):
5640
    '''
5641
    Registers one or more nodes for repeated use within a session.
5642
5643
    :ivar TypeId:
5644
    :vartype TypeId: NodeId
5645
    :ivar RequestHeader:
5646
    :vartype RequestHeader: RequestHeader
5647
    :ivar Parameters:
5648
    :vartype Parameters: RegisterNodesParameters
5649
    '''
5650 1
    def __init__(self):
5651
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary)
5652
        self.RequestHeader = RequestHeader()
5653
        self.Parameters = RegisterNodesParameters()
5654
        self._freeze()
5655
5656 1
    def to_binary(self):
5657
        packet = []
5658
        packet.append(self.TypeId.to_binary())
5659
        packet.append(self.RequestHeader.to_binary())
5660
        packet.append(self.Parameters.to_binary())
5661
        return b''.join(packet)
5662
5663 1
    @staticmethod
5664
    def from_binary(data):
5665
        obj = RegisterNodesRequest()
5666
        obj.TypeId = NodeId.from_binary(data)
5667
        obj.RequestHeader = RequestHeader.from_binary(data)
5668
        obj.Parameters = RegisterNodesParameters.from_binary(data)
5669
        return obj
5670
5671 1
    def __str__(self):
5672
        return 'RegisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5673
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5674
               'Parameters:' + str(self.Parameters) + ')'
5675
5676 1
    __repr__ = __str__
5677
5678
5679 1
class RegisterNodesResult(FrozenClass):
5680
    '''
5681
    :ivar RegisteredNodeIds:
5682
    :vartype RegisteredNodeIds: NodeId
5683
    '''
5684 1
    def __init__(self):
5685
        self.RegisteredNodeIds = []
5686
        self._freeze()
5687
5688 1
    def to_binary(self):
5689
        packet = []
5690
        packet.append(struct.pack('<i', len(self.RegisteredNodeIds)))
5691
        for fieldname in self.RegisteredNodeIds:
5692
            packet.append(fieldname.to_binary())
5693
        return b''.join(packet)
5694
5695 1
    @staticmethod
5696
    def from_binary(data):
5697
        obj = RegisterNodesResult()
5698
        length = struct.unpack('<i', data.read(4))[0]
5699
        if length != -1:
5700
            for _ in range(0, length):
5701
                obj.RegisteredNodeIds.append(NodeId.from_binary(data))
5702
        return obj
5703
5704 1
    def __str__(self):
5705
        return 'RegisterNodesResult(' + 'RegisteredNodeIds:' + str(self.RegisteredNodeIds) + ')'
5706
5707 1
    __repr__ = __str__
5708
5709
5710 1
class RegisterNodesResponse(FrozenClass):
5711
    '''
5712
    Registers one or more nodes for repeated use within a session.
5713
5714
    :ivar TypeId:
5715
    :vartype TypeId: NodeId
5716
    :ivar ResponseHeader:
5717
    :vartype ResponseHeader: ResponseHeader
5718
    :ivar Parameters:
5719
    :vartype Parameters: RegisterNodesResult
5720
    '''
5721 1
    def __init__(self):
5722
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary)
5723
        self.ResponseHeader = ResponseHeader()
5724
        self.Parameters = RegisterNodesResult()
5725
        self._freeze()
5726
5727 1
    def to_binary(self):
5728
        packet = []
5729
        packet.append(self.TypeId.to_binary())
5730
        packet.append(self.ResponseHeader.to_binary())
5731
        packet.append(self.Parameters.to_binary())
5732
        return b''.join(packet)
5733
5734 1
    @staticmethod
5735
    def from_binary(data):
5736
        obj = RegisterNodesResponse()
5737
        obj.TypeId = NodeId.from_binary(data)
5738
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5739
        obj.Parameters = RegisterNodesResult.from_binary(data)
5740
        return obj
5741
5742 1
    def __str__(self):
5743
        return 'RegisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5744
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
5745
               'Parameters:' + str(self.Parameters) + ')'
5746
5747 1
    __repr__ = __str__
5748
5749
5750 1
class UnregisterNodesParameters(FrozenClass):
5751
    '''
5752
    :ivar NodesToUnregister:
5753
    :vartype NodesToUnregister: NodeId
5754
    '''
5755 1
    def __init__(self):
5756
        self.NodesToUnregister = []
5757
        self._freeze()
5758
5759 1
    def to_binary(self):
5760
        packet = []
5761
        packet.append(struct.pack('<i', len(self.NodesToUnregister)))
5762
        for fieldname in self.NodesToUnregister:
5763
            packet.append(fieldname.to_binary())
5764
        return b''.join(packet)
5765
5766 1
    @staticmethod
5767
    def from_binary(data):
5768
        obj = UnregisterNodesParameters()
5769
        length = struct.unpack('<i', data.read(4))[0]
5770
        if length != -1:
5771
            for _ in range(0, length):
5772
                obj.NodesToUnregister.append(NodeId.from_binary(data))
5773
        return obj
5774
5775 1
    def __str__(self):
5776
        return 'UnregisterNodesParameters(' + 'NodesToUnregister:' + str(self.NodesToUnregister) + ')'
5777
5778 1
    __repr__ = __str__
5779
5780
5781 1
class UnregisterNodesRequest(FrozenClass):
5782
    '''
5783
    Unregisters one or more previously registered nodes.
5784
5785
    :ivar TypeId:
5786
    :vartype TypeId: NodeId
5787
    :ivar RequestHeader:
5788
    :vartype RequestHeader: RequestHeader
5789
    :ivar Parameters:
5790
    :vartype Parameters: UnregisterNodesParameters
5791
    '''
5792 1
    def __init__(self):
5793
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary)
5794
        self.RequestHeader = RequestHeader()
5795
        self.Parameters = UnregisterNodesParameters()
5796
        self._freeze()
5797
5798 1
    def to_binary(self):
5799
        packet = []
5800
        packet.append(self.TypeId.to_binary())
5801
        packet.append(self.RequestHeader.to_binary())
5802
        packet.append(self.Parameters.to_binary())
5803
        return b''.join(packet)
5804
5805 1
    @staticmethod
5806
    def from_binary(data):
5807
        obj = UnregisterNodesRequest()
5808
        obj.TypeId = NodeId.from_binary(data)
5809
        obj.RequestHeader = RequestHeader.from_binary(data)
5810
        obj.Parameters = UnregisterNodesParameters.from_binary(data)
5811
        return obj
5812
5813 1
    def __str__(self):
5814
        return 'UnregisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5815
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
5816
               'Parameters:' + str(self.Parameters) + ')'
5817
5818 1
    __repr__ = __str__
5819
5820
5821 1
class UnregisterNodesResponse(FrozenClass):
5822
    '''
5823
    Unregisters one or more previously registered nodes.
5824
5825
    :ivar TypeId:
5826
    :vartype TypeId: NodeId
5827
    :ivar ResponseHeader:
5828
    :vartype ResponseHeader: ResponseHeader
5829
    '''
5830 1
    def __init__(self):
5831
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary)
5832
        self.ResponseHeader = ResponseHeader()
5833
        self._freeze()
5834
5835 1
    def to_binary(self):
5836
        packet = []
5837
        packet.append(self.TypeId.to_binary())
5838
        packet.append(self.ResponseHeader.to_binary())
5839
        return b''.join(packet)
5840
5841 1
    @staticmethod
5842
    def from_binary(data):
5843
        obj = UnregisterNodesResponse()
5844
        obj.TypeId = NodeId.from_binary(data)
5845
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5846
        return obj
5847
5848 1
    def __str__(self):
5849
        return 'UnregisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
5850
               'ResponseHeader:' + str(self.ResponseHeader) + ')'
5851
5852 1
    __repr__ = __str__
5853
5854
5855 1
class EndpointConfiguration(FrozenClass):
5856
    '''
5857
    :ivar OperationTimeout:
5858
    :vartype OperationTimeout: Int32
5859
    :ivar UseBinaryEncoding:
5860
    :vartype UseBinaryEncoding: Boolean
5861
    :ivar MaxStringLength:
5862
    :vartype MaxStringLength: Int32
5863
    :ivar MaxByteStringLength:
5864
    :vartype MaxByteStringLength: Int32
5865
    :ivar MaxArrayLength:
5866
    :vartype MaxArrayLength: Int32
5867
    :ivar MaxMessageSize:
5868
    :vartype MaxMessageSize: Int32
5869
    :ivar MaxBufferSize:
5870
    :vartype MaxBufferSize: Int32
5871
    :ivar ChannelLifetime:
5872
    :vartype ChannelLifetime: Int32
5873
    :ivar SecurityTokenLifetime:
5874
    :vartype SecurityTokenLifetime: Int32
5875
    '''
5876 1
    def __init__(self):
5877
        self.OperationTimeout = 0
5878
        self.UseBinaryEncoding = True
5879
        self.MaxStringLength = 0
5880
        self.MaxByteStringLength = 0
5881
        self.MaxArrayLength = 0
5882
        self.MaxMessageSize = 0
5883
        self.MaxBufferSize = 0
5884
        self.ChannelLifetime = 0
5885
        self.SecurityTokenLifetime = 0
5886
        self._freeze()
5887
5888 1
    def to_binary(self):
5889
        packet = []
5890
        packet.append(pack_uatype('Int32', self.OperationTimeout))
5891
        packet.append(pack_uatype('Boolean', self.UseBinaryEncoding))
5892
        packet.append(pack_uatype('Int32', self.MaxStringLength))
5893
        packet.append(pack_uatype('Int32', self.MaxByteStringLength))
5894
        packet.append(pack_uatype('Int32', self.MaxArrayLength))
5895
        packet.append(pack_uatype('Int32', self.MaxMessageSize))
5896
        packet.append(pack_uatype('Int32', self.MaxBufferSize))
5897
        packet.append(pack_uatype('Int32', self.ChannelLifetime))
5898
        packet.append(pack_uatype('Int32', self.SecurityTokenLifetime))
5899
        return b''.join(packet)
5900
5901 1
    @staticmethod
5902
    def from_binary(data):
5903
        obj = EndpointConfiguration()
5904
        obj.OperationTimeout = unpack_uatype('Int32', data)
5905
        obj.UseBinaryEncoding = unpack_uatype('Boolean', data)
5906
        obj.MaxStringLength = unpack_uatype('Int32', data)
5907
        obj.MaxByteStringLength = unpack_uatype('Int32', data)
5908
        obj.MaxArrayLength = unpack_uatype('Int32', data)
5909
        obj.MaxMessageSize = unpack_uatype('Int32', data)
5910
        obj.MaxBufferSize = unpack_uatype('Int32', data)
5911
        obj.ChannelLifetime = unpack_uatype('Int32', data)
5912
        obj.SecurityTokenLifetime = unpack_uatype('Int32', data)
5913
        return obj
5914
5915 1
    def __str__(self):
5916
        return 'EndpointConfiguration(' + 'OperationTimeout:' + str(self.OperationTimeout) + ', ' + \
5917
               'UseBinaryEncoding:' + str(self.UseBinaryEncoding) + ', ' + \
5918
               'MaxStringLength:' + str(self.MaxStringLength) + ', ' + \
5919
               'MaxByteStringLength:' + str(self.MaxByteStringLength) + ', ' + \
5920
               'MaxArrayLength:' + str(self.MaxArrayLength) + ', ' + \
5921
               'MaxMessageSize:' + str(self.MaxMessageSize) + ', ' + \
5922
               'MaxBufferSize:' + str(self.MaxBufferSize) + ', ' + \
5923
               'ChannelLifetime:' + str(self.ChannelLifetime) + ', ' + \
5924
               'SecurityTokenLifetime:' + str(self.SecurityTokenLifetime) + ')'
5925
5926 1
    __repr__ = __str__
5927
5928
5929 1
class SupportedProfile(FrozenClass):
5930
    '''
5931
    :ivar OrganizationUri:
5932
    :vartype OrganizationUri: String
5933
    :ivar ProfileId:
5934
    :vartype ProfileId: String
5935
    :ivar ComplianceTool:
5936
    :vartype ComplianceTool: String
5937
    :ivar ComplianceDate:
5938
    :vartype ComplianceDate: DateTime
5939
    :ivar ComplianceLevel:
5940
    :vartype ComplianceLevel: ComplianceLevel
5941
    :ivar UnsupportedUnitIds:
5942
    :vartype UnsupportedUnitIds: String
5943
    '''
5944 1
    def __init__(self):
5945
        self.OrganizationUri = ''
5946
        self.ProfileId = ''
5947
        self.ComplianceTool = ''
5948
        self.ComplianceDate = datetime.now()
5949
        self.ComplianceLevel = 0
5950
        self.UnsupportedUnitIds = []
5951
        self._freeze()
5952
5953 1
    def to_binary(self):
5954
        packet = []
5955
        packet.append(pack_uatype('String', self.OrganizationUri))
5956
        packet.append(pack_uatype('String', self.ProfileId))
5957
        packet.append(pack_uatype('String', self.ComplianceTool))
5958
        packet.append(pack_uatype('DateTime', self.ComplianceDate))
5959
        packet.append(pack_uatype('UInt32', self.ComplianceLevel))
5960
        packet.append(struct.pack('<i', len(self.UnsupportedUnitIds)))
5961
        for fieldname in self.UnsupportedUnitIds:
5962
            packet.append(pack_uatype('String', fieldname))
5963
        return b''.join(packet)
5964
5965 1
    @staticmethod
5966
    def from_binary(data):
5967
        obj = SupportedProfile()
5968
        obj.OrganizationUri = unpack_uatype('String', data)
5969
        obj.ProfileId = unpack_uatype('String', data)
5970
        obj.ComplianceTool = unpack_uatype('String', data)
5971
        obj.ComplianceDate = unpack_uatype('DateTime', data)
5972
        obj.ComplianceLevel = unpack_uatype('UInt32', data)
5973
        obj.UnsupportedUnitIds = unpack_uatype_array('String', data)
5974
        return obj
5975
5976 1
    def __str__(self):
5977
        return 'SupportedProfile(' + 'OrganizationUri:' + str(self.OrganizationUri) + ', ' + \
5978
               'ProfileId:' + str(self.ProfileId) + ', ' + \
5979
               'ComplianceTool:' + str(self.ComplianceTool) + ', ' + \
5980
               'ComplianceDate:' + str(self.ComplianceDate) + ', ' + \
5981
               'ComplianceLevel:' + str(self.ComplianceLevel) + ', ' + \
5982
               'UnsupportedUnitIds:' + str(self.UnsupportedUnitIds) + ')'
5983
5984 1
    __repr__ = __str__
5985
5986
5987 1
class SoftwareCertificate(FrozenClass):
5988
    '''
5989
    :ivar ProductName:
5990
    :vartype ProductName: String
5991
    :ivar ProductUri:
5992
    :vartype ProductUri: String
5993
    :ivar VendorName:
5994
    :vartype VendorName: String
5995
    :ivar VendorProductCertificate:
5996
    :vartype VendorProductCertificate: ByteString
5997
    :ivar SoftwareVersion:
5998
    :vartype SoftwareVersion: String
5999
    :ivar BuildNumber:
6000
    :vartype BuildNumber: String
6001
    :ivar BuildDate:
6002
    :vartype BuildDate: DateTime
6003
    :ivar IssuedBy:
6004
    :vartype IssuedBy: String
6005
    :ivar IssueDate:
6006
    :vartype IssueDate: DateTime
6007
    :ivar SupportedProfiles:
6008
    :vartype SupportedProfiles: SupportedProfile
6009
    '''
6010 1
    def __init__(self):
6011
        self.ProductName = ''
6012
        self.ProductUri = ''
6013
        self.VendorName = ''
6014
        self.VendorProductCertificate = b''
6015
        self.SoftwareVersion = ''
6016
        self.BuildNumber = ''
6017
        self.BuildDate = datetime.now()
6018
        self.IssuedBy = ''
6019
        self.IssueDate = datetime.now()
6020
        self.SupportedProfiles = []
6021
        self._freeze()
6022
6023 1
    def to_binary(self):
6024
        packet = []
6025
        packet.append(pack_uatype('String', self.ProductName))
6026
        packet.append(pack_uatype('String', self.ProductUri))
6027
        packet.append(pack_uatype('String', self.VendorName))
6028
        packet.append(pack_uatype('ByteString', self.VendorProductCertificate))
6029
        packet.append(pack_uatype('String', self.SoftwareVersion))
6030
        packet.append(pack_uatype('String', self.BuildNumber))
6031
        packet.append(pack_uatype('DateTime', self.BuildDate))
6032
        packet.append(pack_uatype('String', self.IssuedBy))
6033
        packet.append(pack_uatype('DateTime', self.IssueDate))
6034
        packet.append(struct.pack('<i', len(self.SupportedProfiles)))
6035
        for fieldname in self.SupportedProfiles:
6036
            packet.append(fieldname.to_binary())
6037
        return b''.join(packet)
6038
6039 1
    @staticmethod
6040
    def from_binary(data):
6041
        obj = SoftwareCertificate()
6042
        obj.ProductName = unpack_uatype('String', data)
6043
        obj.ProductUri = unpack_uatype('String', data)
6044
        obj.VendorName = unpack_uatype('String', data)
6045
        obj.VendorProductCertificate = unpack_uatype('ByteString', data)
6046
        obj.SoftwareVersion = unpack_uatype('String', data)
6047
        obj.BuildNumber = unpack_uatype('String', data)
6048
        obj.BuildDate = unpack_uatype('DateTime', data)
6049
        obj.IssuedBy = unpack_uatype('String', data)
6050
        obj.IssueDate = unpack_uatype('DateTime', data)
6051
        length = struct.unpack('<i', data.read(4))[0]
6052
        if length != -1:
6053
            for _ in range(0, length):
6054
                obj.SupportedProfiles.append(SupportedProfile.from_binary(data))
6055
        return obj
6056
6057 1
    def __str__(self):
6058
        return 'SoftwareCertificate(' + 'ProductName:' + str(self.ProductName) + ', ' + \
6059
               'ProductUri:' + str(self.ProductUri) + ', ' + \
6060
               'VendorName:' + str(self.VendorName) + ', ' + \
6061
               'VendorProductCertificate:' + str(self.VendorProductCertificate) + ', ' + \
6062
               'SoftwareVersion:' + str(self.SoftwareVersion) + ', ' + \
6063
               'BuildNumber:' + str(self.BuildNumber) + ', ' + \
6064
               'BuildDate:' + str(self.BuildDate) + ', ' + \
6065
               'IssuedBy:' + str(self.IssuedBy) + ', ' + \
6066
               'IssueDate:' + str(self.IssueDate) + ', ' + \
6067
               'SupportedProfiles:' + str(self.SupportedProfiles) + ')'
6068
6069 1
    __repr__ = __str__
6070
6071
6072 1
class QueryDataDescription(FrozenClass):
6073
    '''
6074
    :ivar RelativePath:
6075
    :vartype RelativePath: RelativePath
6076
    :ivar AttributeId:
6077
    :vartype AttributeId: UInt32
6078
    :ivar IndexRange:
6079
    :vartype IndexRange: String
6080
    '''
6081 1
    def __init__(self):
6082
        self.RelativePath = RelativePath()
6083
        self.AttributeId = 0
6084
        self.IndexRange = ''
6085
        self._freeze()
6086
6087 1
    def to_binary(self):
6088
        packet = []
6089
        packet.append(self.RelativePath.to_binary())
6090
        packet.append(pack_uatype('UInt32', self.AttributeId))
6091
        packet.append(pack_uatype('String', self.IndexRange))
6092
        return b''.join(packet)
6093
6094 1
    @staticmethod
6095
    def from_binary(data):
6096
        obj = QueryDataDescription()
6097
        obj.RelativePath = RelativePath.from_binary(data)
6098
        obj.AttributeId = unpack_uatype('UInt32', data)
6099
        obj.IndexRange = unpack_uatype('String', data)
6100
        return obj
6101
6102 1
    def __str__(self):
6103
        return 'QueryDataDescription(' + 'RelativePath:' + str(self.RelativePath) + ', ' + \
6104
               'AttributeId:' + str(self.AttributeId) + ', ' + \
6105
               'IndexRange:' + str(self.IndexRange) + ')'
6106
6107 1
    __repr__ = __str__
6108
6109
6110 1
class NodeTypeDescription(FrozenClass):
6111
    '''
6112
    :ivar TypeDefinitionNode:
6113
    :vartype TypeDefinitionNode: ExpandedNodeId
6114
    :ivar IncludeSubTypes:
6115
    :vartype IncludeSubTypes: Boolean
6116
    :ivar DataToReturn:
6117
    :vartype DataToReturn: QueryDataDescription
6118
    '''
6119 1
    def __init__(self):
6120
        self.TypeDefinitionNode = ExpandedNodeId()
6121
        self.IncludeSubTypes = True
6122
        self.DataToReturn = []
6123
        self._freeze()
6124
6125 1
    def to_binary(self):
6126
        packet = []
6127
        packet.append(self.TypeDefinitionNode.to_binary())
6128
        packet.append(pack_uatype('Boolean', self.IncludeSubTypes))
6129
        packet.append(struct.pack('<i', len(self.DataToReturn)))
6130
        for fieldname in self.DataToReturn:
6131
            packet.append(fieldname.to_binary())
6132
        return b''.join(packet)
6133
6134 1
    @staticmethod
6135
    def from_binary(data):
6136
        obj = NodeTypeDescription()
6137
        obj.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6138
        obj.IncludeSubTypes = unpack_uatype('Boolean', data)
6139
        length = struct.unpack('<i', data.read(4))[0]
6140
        if length != -1:
6141
            for _ in range(0, length):
6142
                obj.DataToReturn.append(QueryDataDescription.from_binary(data))
6143
        return obj
6144
6145 1
    def __str__(self):
6146
        return 'NodeTypeDescription(' + 'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', ' + \
6147
               'IncludeSubTypes:' + str(self.IncludeSubTypes) + ', ' + \
6148
               'DataToReturn:' + str(self.DataToReturn) + ')'
6149
6150 1
    __repr__ = __str__
6151
6152
6153 1
class QueryDataSet(FrozenClass):
6154
    '''
6155
    :ivar NodeId:
6156
    :vartype NodeId: ExpandedNodeId
6157
    :ivar TypeDefinitionNode:
6158
    :vartype TypeDefinitionNode: ExpandedNodeId
6159
    :ivar Values:
6160
    :vartype Values: Variant
6161
    '''
6162 1
    def __init__(self):
6163
        self.NodeId = ExpandedNodeId()
6164
        self.TypeDefinitionNode = ExpandedNodeId()
6165
        self.Values = []
6166
        self._freeze()
6167
6168 1
    def to_binary(self):
6169
        packet = []
6170
        packet.append(self.NodeId.to_binary())
6171
        packet.append(self.TypeDefinitionNode.to_binary())
6172
        packet.append(struct.pack('<i', len(self.Values)))
6173
        for fieldname in self.Values:
6174
            packet.append(fieldname.to_binary())
6175
        return b''.join(packet)
6176
6177 1
    @staticmethod
6178
    def from_binary(data):
6179
        obj = QueryDataSet()
6180
        obj.NodeId = ExpandedNodeId.from_binary(data)
6181
        obj.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6182
        length = struct.unpack('<i', data.read(4))[0]
6183
        if length != -1:
6184
            for _ in range(0, length):
6185
                obj.Values.append(Variant.from_binary(data))
6186
        return obj
6187
6188 1
    def __str__(self):
6189
        return 'QueryDataSet(' + 'NodeId:' + str(self.NodeId) + ', ' + \
6190
               'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', ' + \
6191
               'Values:' + str(self.Values) + ')'
6192
6193 1
    __repr__ = __str__
6194
6195
6196 1
class NodeReference(FrozenClass):
6197
    '''
6198
    :ivar NodeId:
6199
    :vartype NodeId: NodeId
6200
    :ivar ReferenceTypeId:
6201
    :vartype ReferenceTypeId: NodeId
6202
    :ivar IsForward:
6203
    :vartype IsForward: Boolean
6204
    :ivar ReferencedNodeIds:
6205
    :vartype ReferencedNodeIds: NodeId
6206
    '''
6207 1
    def __init__(self):
6208
        self.NodeId = NodeId()
6209
        self.ReferenceTypeId = NodeId()
6210
        self.IsForward = True
6211
        self.ReferencedNodeIds = []
6212
        self._freeze()
6213
6214 1
    def to_binary(self):
6215
        packet = []
6216
        packet.append(self.NodeId.to_binary())
6217
        packet.append(self.ReferenceTypeId.to_binary())
6218
        packet.append(pack_uatype('Boolean', self.IsForward))
6219
        packet.append(struct.pack('<i', len(self.ReferencedNodeIds)))
6220
        for fieldname in self.ReferencedNodeIds:
6221
            packet.append(fieldname.to_binary())
6222
        return b''.join(packet)
6223
6224 1
    @staticmethod
6225
    def from_binary(data):
6226
        obj = NodeReference()
6227
        obj.NodeId = NodeId.from_binary(data)
6228
        obj.ReferenceTypeId = NodeId.from_binary(data)
6229
        obj.IsForward = unpack_uatype('Boolean', data)
6230
        length = struct.unpack('<i', data.read(4))[0]
6231
        if length != -1:
6232
            for _ in range(0, length):
6233
                obj.ReferencedNodeIds.append(NodeId.from_binary(data))
6234
        return obj
6235
6236 1
    def __str__(self):
6237
        return 'NodeReference(' + 'NodeId:' + str(self.NodeId) + ', ' + \
6238
               'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', ' + \
6239
               'IsForward:' + str(self.IsForward) + ', ' + \
6240
               'ReferencedNodeIds:' + str(self.ReferencedNodeIds) + ')'
6241
6242 1
    __repr__ = __str__
6243
6244
6245 1
class ContentFilterElement(FrozenClass):
6246
    '''
6247
    :ivar FilterOperator:
6248
    :vartype FilterOperator: FilterOperator
6249
    :ivar FilterOperands:
6250
    :vartype FilterOperands: ExtensionObject
6251
    '''
6252 1
    def __init__(self):
6253
        self.FilterOperator = 0
6254
        self.FilterOperands = []
6255
        self._freeze()
6256
6257 1
    def to_binary(self):
6258
        packet = []
6259
        packet.append(pack_uatype('UInt32', self.FilterOperator))
6260
        packet.append(struct.pack('<i', len(self.FilterOperands)))
6261
        for fieldname in self.FilterOperands:
6262
            packet.append(extensionobject_to_binary(fieldname))
6263
        return b''.join(packet)
6264
6265 1
    @staticmethod
6266
    def from_binary(data):
6267
        obj = ContentFilterElement()
6268
        obj.FilterOperator = unpack_uatype('UInt32', data)
6269
        length = struct.unpack('<i', data.read(4))[0]
6270
        if length != -1:
6271
            for _ in range(0, length):
6272
                obj.FilterOperands.append(extensionobject_from_binary(data))
6273
        return obj
6274
6275 1
    def __str__(self):
6276
        return 'ContentFilterElement(' + 'FilterOperator:' + str(self.FilterOperator) + ', ' + \
6277
               'FilterOperands:' + str(self.FilterOperands) + ')'
6278
6279 1
    __repr__ = __str__
6280
6281
6282 1
class ContentFilter(FrozenClass):
6283
    '''
6284
    :ivar Elements:
6285
    :vartype Elements: ContentFilterElement
6286
    '''
6287 1
    def __init__(self):
6288 1
        self.Elements = []
6289 1
        self._freeze()
6290
6291 1
    def to_binary(self):
6292 1
        packet = []
6293 1
        packet.append(struct.pack('<i', len(self.Elements)))
6294 1
        for fieldname in self.Elements:
6295
            packet.append(fieldname.to_binary())
6296 1
        return b''.join(packet)
6297
6298 1
    @staticmethod
6299
    def from_binary(data):
6300 1
        obj = ContentFilter()
6301 1
        length = struct.unpack('<i', data.read(4))[0]
6302 1
        if length != -1:
6303 1
            for _ in range(0, length):
6304
                obj.Elements.append(ContentFilterElement.from_binary(data))
6305 1
        return obj
6306
6307 1
    def __str__(self):
6308
        return 'ContentFilter(' + 'Elements:' + str(self.Elements) + ')'
6309
6310 1
    __repr__ = __str__
6311
6312
6313 1
class ElementOperand(FrozenClass):
6314
    '''
6315
    :ivar Index:
6316
    :vartype Index: UInt32
6317
    '''
6318 1
    def __init__(self):
6319
        self.Index = 0
6320
        self._freeze()
6321
6322 1
    def to_binary(self):
6323
        packet = []
6324
        packet.append(pack_uatype('UInt32', self.Index))
6325
        return b''.join(packet)
6326
6327 1
    @staticmethod
6328
    def from_binary(data):
6329
        obj = ElementOperand()
6330
        obj.Index = unpack_uatype('UInt32', data)
6331
        return obj
6332
6333 1
    def __str__(self):
6334
        return 'ElementOperand(' + 'Index:' + str(self.Index) + ')'
6335
6336 1
    __repr__ = __str__
6337
6338
6339 1
class LiteralOperand(FrozenClass):
6340
    '''
6341
    :ivar Value:
6342
    :vartype Value: Variant
6343
    '''
6344 1
    def __init__(self):
6345
        self.Value = Variant()
6346
        self._freeze()
6347
6348 1
    def to_binary(self):
6349
        packet = []
6350
        packet.append(self.Value.to_binary())
6351
        return b''.join(packet)
6352
6353 1
    @staticmethod
6354
    def from_binary(data):
6355
        obj = LiteralOperand()
6356
        obj.Value = Variant.from_binary(data)
6357
        return obj
6358
6359 1
    def __str__(self):
6360
        return 'LiteralOperand(' + 'Value:' + str(self.Value) + ')'
6361
6362 1
    __repr__ = __str__
6363
6364
6365 1
class AttributeOperand(FrozenClass):
6366
    '''
6367
    :ivar NodeId:
6368
    :vartype NodeId: NodeId
6369
    :ivar Alias:
6370
    :vartype Alias: String
6371
    :ivar BrowsePath:
6372
    :vartype BrowsePath: RelativePath
6373
    :ivar AttributeId:
6374
    :vartype AttributeId: UInt32
6375
    :ivar IndexRange:
6376
    :vartype IndexRange: String
6377
    '''
6378 1
    def __init__(self):
6379
        self.NodeId = NodeId()
6380
        self.Alias = ''
6381
        self.BrowsePath = RelativePath()
6382
        self.AttributeId = 0
6383
        self.IndexRange = ''
6384
        self._freeze()
6385
6386 1
    def to_binary(self):
6387
        packet = []
6388
        packet.append(self.NodeId.to_binary())
6389
        packet.append(pack_uatype('String', self.Alias))
6390
        packet.append(self.BrowsePath.to_binary())
6391
        packet.append(pack_uatype('UInt32', self.AttributeId))
6392
        packet.append(pack_uatype('String', self.IndexRange))
6393
        return b''.join(packet)
6394
6395 1
    @staticmethod
6396
    def from_binary(data):
6397
        obj = AttributeOperand()
6398
        obj.NodeId = NodeId.from_binary(data)
6399
        obj.Alias = unpack_uatype('String', data)
6400
        obj.BrowsePath = RelativePath.from_binary(data)
6401
        obj.AttributeId = unpack_uatype('UInt32', data)
6402
        obj.IndexRange = unpack_uatype('String', data)
6403
        return obj
6404
6405 1
    def __str__(self):
6406
        return 'AttributeOperand(' + 'NodeId:' + str(self.NodeId) + ', ' + \
6407
               'Alias:' + str(self.Alias) + ', ' + \
6408
               'BrowsePath:' + str(self.BrowsePath) + ', ' + \
6409
               'AttributeId:' + str(self.AttributeId) + ', ' + \
6410
               'IndexRange:' + str(self.IndexRange) + ')'
6411
6412 1
    __repr__ = __str__
6413
6414
6415 1
class SimpleAttributeOperand(FrozenClass):
6416
    '''
6417
    :ivar TypeDefinitionId:
6418
    :vartype TypeDefinitionId: NodeId
6419
    :ivar BrowsePath:
6420
    :vartype BrowsePath: QualifiedName
6421
    :ivar AttributeId:
6422
    :vartype AttributeId: UInt32
6423
    :ivar IndexRange:
6424
    :vartype IndexRange: String
6425
    '''
6426 1
    def __init__(self):
6427 1
        self.TypeDefinitionId = NodeId()
6428 1
        self.BrowsePath = []
6429 1
        self.AttributeId = 0
6430 1
        self.IndexRange = ''
6431 1
        self._freeze()
6432
6433 1
    def to_binary(self):
6434 1
        packet = []
6435 1
        packet.append(self.TypeDefinitionId.to_binary())
6436 1
        packet.append(struct.pack('<i', len(self.BrowsePath)))
6437 1
        for fieldname in self.BrowsePath:
6438 1
            packet.append(fieldname.to_binary())
6439 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
6440 1
        packet.append(pack_uatype('String', self.IndexRange))
6441 1
        return b''.join(packet)
6442
6443 1
    @staticmethod
6444
    def from_binary(data):
6445 1
        obj = SimpleAttributeOperand()
6446 1
        obj.TypeDefinitionId = NodeId.from_binary(data)
6447 1
        length = struct.unpack('<i', data.read(4))[0]
6448 1
        if length != -1:
6449 1
            for _ in range(0, length):
6450 1
                obj.BrowsePath.append(QualifiedName.from_binary(data))
6451 1
        obj.AttributeId = unpack_uatype('UInt32', data)
6452 1
        obj.IndexRange = unpack_uatype('String', data)
6453 1
        return obj
6454
6455 1
    def __str__(self):
6456
        return 'SimpleAttributeOperand(' + 'TypeDefinitionId:' + str(self.TypeDefinitionId) + ', ' + \
6457
               'BrowsePath:' + str(self.BrowsePath) + ', ' + \
6458
               'AttributeId:' + str(self.AttributeId) + ', ' + \
6459
               'IndexRange:' + str(self.IndexRange) + ')'
6460
6461 1
    __repr__ = __str__
6462
6463
6464 1
class ContentFilterElementResult(FrozenClass):
6465
    '''
6466
    :ivar StatusCode:
6467
    :vartype StatusCode: StatusCode
6468
    :ivar OperandStatusCodes:
6469
    :vartype OperandStatusCodes: StatusCode
6470
    :ivar OperandDiagnosticInfos:
6471
    :vartype OperandDiagnosticInfos: DiagnosticInfo
6472
    '''
6473 1
    def __init__(self):
6474
        self.StatusCode = StatusCode()
6475
        self.OperandStatusCodes = []
6476
        self.OperandDiagnosticInfos = []
6477
        self._freeze()
6478
6479 1
    def to_binary(self):
6480
        packet = []
6481
        packet.append(self.StatusCode.to_binary())
6482
        packet.append(struct.pack('<i', len(self.OperandStatusCodes)))
6483
        for fieldname in self.OperandStatusCodes:
6484
            packet.append(fieldname.to_binary())
6485
        packet.append(struct.pack('<i', len(self.OperandDiagnosticInfos)))
6486
        for fieldname in self.OperandDiagnosticInfos:
6487
            packet.append(fieldname.to_binary())
6488
        return b''.join(packet)
6489
6490 1
    @staticmethod
6491
    def from_binary(data):
6492
        obj = ContentFilterElementResult()
6493
        obj.StatusCode = StatusCode.from_binary(data)
6494
        length = struct.unpack('<i', data.read(4))[0]
6495
        if length != -1:
6496
            for _ in range(0, length):
6497
                obj.OperandStatusCodes.append(StatusCode.from_binary(data))
6498
        length = struct.unpack('<i', data.read(4))[0]
6499
        if length != -1:
6500
            for _ in range(0, length):
6501
                obj.OperandDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6502
        return obj
6503
6504 1
    def __str__(self):
6505
        return 'ContentFilterElementResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
6506
               'OperandStatusCodes:' + str(self.OperandStatusCodes) + ', ' + \
6507
               'OperandDiagnosticInfos:' + str(self.OperandDiagnosticInfos) + ')'
6508
6509 1
    __repr__ = __str__
6510
6511
6512 1
class ContentFilterResult(FrozenClass):
6513
    '''
6514
    :ivar ElementResults:
6515
    :vartype ElementResults: ContentFilterElementResult
6516
    :ivar ElementDiagnosticInfos:
6517
    :vartype ElementDiagnosticInfos: DiagnosticInfo
6518
    '''
6519 1
    def __init__(self):
6520
        self.ElementResults = []
6521
        self.ElementDiagnosticInfos = []
6522
        self._freeze()
6523
6524 1
    def to_binary(self):
6525
        packet = []
6526
        packet.append(struct.pack('<i', len(self.ElementResults)))
6527
        for fieldname in self.ElementResults:
6528
            packet.append(fieldname.to_binary())
6529
        packet.append(struct.pack('<i', len(self.ElementDiagnosticInfos)))
6530
        for fieldname in self.ElementDiagnosticInfos:
6531
            packet.append(fieldname.to_binary())
6532
        return b''.join(packet)
6533
6534 1
    @staticmethod
6535
    def from_binary(data):
6536
        obj = ContentFilterResult()
6537
        length = struct.unpack('<i', data.read(4))[0]
6538
        if length != -1:
6539
            for _ in range(0, length):
6540
                obj.ElementResults.append(ContentFilterElementResult.from_binary(data))
6541
        length = struct.unpack('<i', data.read(4))[0]
6542
        if length != -1:
6543
            for _ in range(0, length):
6544
                obj.ElementDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6545
        return obj
6546
6547 1
    def __str__(self):
6548
        return 'ContentFilterResult(' + 'ElementResults:' + str(self.ElementResults) + ', ' + \
6549
               'ElementDiagnosticInfos:' + str(self.ElementDiagnosticInfos) + ')'
6550
6551 1
    __repr__ = __str__
6552
6553
6554 1
class ParsingResult(FrozenClass):
6555
    '''
6556
    :ivar StatusCode:
6557
    :vartype StatusCode: StatusCode
6558
    :ivar DataStatusCodes:
6559
    :vartype DataStatusCodes: StatusCode
6560
    :ivar DataDiagnosticInfos:
6561
    :vartype DataDiagnosticInfos: DiagnosticInfo
6562
    '''
6563 1
    def __init__(self):
6564
        self.StatusCode = StatusCode()
6565
        self.DataStatusCodes = []
6566
        self.DataDiagnosticInfos = []
6567
        self._freeze()
6568
6569 1
    def to_binary(self):
6570
        packet = []
6571
        packet.append(self.StatusCode.to_binary())
6572
        packet.append(struct.pack('<i', len(self.DataStatusCodes)))
6573
        for fieldname in self.DataStatusCodes:
6574
            packet.append(fieldname.to_binary())
6575
        packet.append(struct.pack('<i', len(self.DataDiagnosticInfos)))
6576
        for fieldname in self.DataDiagnosticInfos:
6577
            packet.append(fieldname.to_binary())
6578
        return b''.join(packet)
6579
6580 1
    @staticmethod
6581
    def from_binary(data):
6582
        obj = ParsingResult()
6583
        obj.StatusCode = StatusCode.from_binary(data)
6584
        length = struct.unpack('<i', data.read(4))[0]
6585
        if length != -1:
6586
            for _ in range(0, length):
6587
                obj.DataStatusCodes.append(StatusCode.from_binary(data))
6588
        length = struct.unpack('<i', data.read(4))[0]
6589
        if length != -1:
6590
            for _ in range(0, length):
6591
                obj.DataDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6592
        return obj
6593
6594 1
    def __str__(self):
6595
        return 'ParsingResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
6596
               'DataStatusCodes:' + str(self.DataStatusCodes) + ', ' + \
6597
               'DataDiagnosticInfos:' + str(self.DataDiagnosticInfos) + ')'
6598
6599 1
    __repr__ = __str__
6600
6601
6602 1
class QueryFirstParameters(FrozenClass):
6603
    '''
6604
    :ivar View:
6605
    :vartype View: ViewDescription
6606
    :ivar NodeTypes:
6607
    :vartype NodeTypes: NodeTypeDescription
6608
    :ivar Filter:
6609
    :vartype Filter: ContentFilter
6610
    :ivar MaxDataSetsToReturn:
6611
    :vartype MaxDataSetsToReturn: UInt32
6612
    :ivar MaxReferencesToReturn:
6613
    :vartype MaxReferencesToReturn: UInt32
6614
    '''
6615 1
    def __init__(self):
6616
        self.View = ViewDescription()
6617
        self.NodeTypes = []
6618
        self.Filter = ContentFilter()
6619
        self.MaxDataSetsToReturn = 0
6620
        self.MaxReferencesToReturn = 0
6621
        self._freeze()
6622
6623 1
    def to_binary(self):
6624
        packet = []
6625
        packet.append(self.View.to_binary())
6626
        packet.append(struct.pack('<i', len(self.NodeTypes)))
6627
        for fieldname in self.NodeTypes:
6628
            packet.append(fieldname.to_binary())
6629
        packet.append(self.Filter.to_binary())
6630
        packet.append(pack_uatype('UInt32', self.MaxDataSetsToReturn))
6631
        packet.append(pack_uatype('UInt32', self.MaxReferencesToReturn))
6632
        return b''.join(packet)
6633
6634 1
    @staticmethod
6635
    def from_binary(data):
6636
        obj = QueryFirstParameters()
6637
        obj.View = ViewDescription.from_binary(data)
6638
        length = struct.unpack('<i', data.read(4))[0]
6639
        if length != -1:
6640
            for _ in range(0, length):
6641
                obj.NodeTypes.append(NodeTypeDescription.from_binary(data))
6642
        obj.Filter = ContentFilter.from_binary(data)
6643
        obj.MaxDataSetsToReturn = unpack_uatype('UInt32', data)
6644
        obj.MaxReferencesToReturn = unpack_uatype('UInt32', data)
6645
        return obj
6646
6647 1
    def __str__(self):
6648
        return 'QueryFirstParameters(' + 'View:' + str(self.View) + ', ' + \
6649
               'NodeTypes:' + str(self.NodeTypes) + ', ' + \
6650
               'Filter:' + str(self.Filter) + ', ' + \
6651
               'MaxDataSetsToReturn:' + str(self.MaxDataSetsToReturn) + ', ' + \
6652
               'MaxReferencesToReturn:' + str(self.MaxReferencesToReturn) + ')'
6653
6654 1
    __repr__ = __str__
6655
6656
6657 1
class QueryFirstRequest(FrozenClass):
6658
    '''
6659
    :ivar TypeId:
6660
    :vartype TypeId: NodeId
6661
    :ivar RequestHeader:
6662
    :vartype RequestHeader: RequestHeader
6663
    :ivar Parameters:
6664
    :vartype Parameters: QueryFirstParameters
6665
    '''
6666 1
    def __init__(self):
6667
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstRequest_Encoding_DefaultBinary)
6668
        self.RequestHeader = RequestHeader()
6669
        self.Parameters = QueryFirstParameters()
6670
        self._freeze()
6671
6672 1
    def to_binary(self):
6673
        packet = []
6674
        packet.append(self.TypeId.to_binary())
6675
        packet.append(self.RequestHeader.to_binary())
6676
        packet.append(self.Parameters.to_binary())
6677
        return b''.join(packet)
6678
6679 1
    @staticmethod
6680
    def from_binary(data):
6681
        obj = QueryFirstRequest()
6682
        obj.TypeId = NodeId.from_binary(data)
6683
        obj.RequestHeader = RequestHeader.from_binary(data)
6684
        obj.Parameters = QueryFirstParameters.from_binary(data)
6685
        return obj
6686
6687 1
    def __str__(self):
6688
        return 'QueryFirstRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6689
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
6690
               'Parameters:' + str(self.Parameters) + ')'
6691
6692 1
    __repr__ = __str__
6693
6694
6695 1
class QueryFirstResult(FrozenClass):
6696
    '''
6697
    :ivar QueryDataSets:
6698
    :vartype QueryDataSets: QueryDataSet
6699
    :ivar ContinuationPoint:
6700
    :vartype ContinuationPoint: ByteString
6701
    :ivar ParsingResults:
6702
    :vartype ParsingResults: ParsingResult
6703
    :ivar DiagnosticInfos:
6704
    :vartype DiagnosticInfos: DiagnosticInfo
6705
    :ivar FilterResult:
6706
    :vartype FilterResult: ContentFilterResult
6707
    '''
6708 1
    def __init__(self):
6709
        self.QueryDataSets = []
6710
        self.ContinuationPoint = b''
6711
        self.ParsingResults = []
6712
        self.DiagnosticInfos = []
6713
        self.FilterResult = ContentFilterResult()
6714
        self._freeze()
6715
6716 1
    def to_binary(self):
6717
        packet = []
6718
        packet.append(struct.pack('<i', len(self.QueryDataSets)))
6719
        for fieldname in self.QueryDataSets:
6720
            packet.append(fieldname.to_binary())
6721
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6722
        packet.append(struct.pack('<i', len(self.ParsingResults)))
6723
        for fieldname in self.ParsingResults:
6724
            packet.append(fieldname.to_binary())
6725
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
6726
        for fieldname in self.DiagnosticInfos:
6727
            packet.append(fieldname.to_binary())
6728
        packet.append(self.FilterResult.to_binary())
6729
        return b''.join(packet)
6730
6731 1
    @staticmethod
6732
    def from_binary(data):
6733
        obj = QueryFirstResult()
6734
        length = struct.unpack('<i', data.read(4))[0]
6735
        if length != -1:
6736
            for _ in range(0, length):
6737
                obj.QueryDataSets.append(QueryDataSet.from_binary(data))
6738
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6739
        length = struct.unpack('<i', data.read(4))[0]
6740
        if length != -1:
6741
            for _ in range(0, length):
6742
                obj.ParsingResults.append(ParsingResult.from_binary(data))
6743
        length = struct.unpack('<i', data.read(4))[0]
6744
        if length != -1:
6745
            for _ in range(0, length):
6746
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6747
        obj.FilterResult = ContentFilterResult.from_binary(data)
6748
        return obj
6749
6750 1
    def __str__(self):
6751
        return 'QueryFirstResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', ' + \
6752
               'ContinuationPoint:' + str(self.ContinuationPoint) + ', ' + \
6753
               'ParsingResults:' + str(self.ParsingResults) + ', ' + \
6754
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ', ' + \
6755
               'FilterResult:' + str(self.FilterResult) + ')'
6756
6757 1
    __repr__ = __str__
6758
6759
6760 1
class QueryFirstResponse(FrozenClass):
6761
    '''
6762
    :ivar TypeId:
6763
    :vartype TypeId: NodeId
6764
    :ivar ResponseHeader:
6765
    :vartype ResponseHeader: ResponseHeader
6766
    :ivar Parameters:
6767
    :vartype Parameters: QueryFirstResult
6768
    '''
6769 1
    def __init__(self):
6770
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstResponse_Encoding_DefaultBinary)
6771
        self.ResponseHeader = ResponseHeader()
6772
        self.Parameters = QueryFirstResult()
6773
        self._freeze()
6774
6775 1
    def to_binary(self):
6776
        packet = []
6777
        packet.append(self.TypeId.to_binary())
6778
        packet.append(self.ResponseHeader.to_binary())
6779
        packet.append(self.Parameters.to_binary())
6780
        return b''.join(packet)
6781
6782 1
    @staticmethod
6783
    def from_binary(data):
6784
        obj = QueryFirstResponse()
6785
        obj.TypeId = NodeId.from_binary(data)
6786
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6787
        obj.Parameters = QueryFirstResult.from_binary(data)
6788
        return obj
6789
6790 1
    def __str__(self):
6791
        return 'QueryFirstResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6792
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
6793
               'Parameters:' + str(self.Parameters) + ')'
6794
6795 1
    __repr__ = __str__
6796
6797
6798 1
class QueryNextParameters(FrozenClass):
6799
    '''
6800
    :ivar ReleaseContinuationPoint:
6801
    :vartype ReleaseContinuationPoint: Boolean
6802
    :ivar ContinuationPoint:
6803
    :vartype ContinuationPoint: ByteString
6804
    '''
6805 1
    def __init__(self):
6806
        self.ReleaseContinuationPoint = True
6807
        self.ContinuationPoint = b''
6808
        self._freeze()
6809
6810 1
    def to_binary(self):
6811
        packet = []
6812
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoint))
6813
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6814
        return b''.join(packet)
6815
6816 1
    @staticmethod
6817
    def from_binary(data):
6818
        obj = QueryNextParameters()
6819
        obj.ReleaseContinuationPoint = unpack_uatype('Boolean', data)
6820
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6821
        return obj
6822
6823 1
    def __str__(self):
6824
        return 'QueryNextParameters(' + 'ReleaseContinuationPoint:' + str(self.ReleaseContinuationPoint) + ', ' + \
6825
               'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
6826
6827 1
    __repr__ = __str__
6828
6829
6830 1
class QueryNextRequest(FrozenClass):
6831
    '''
6832
    :ivar TypeId:
6833
    :vartype TypeId: NodeId
6834
    :ivar RequestHeader:
6835
    :vartype RequestHeader: RequestHeader
6836
    :ivar Parameters:
6837
    :vartype Parameters: QueryNextParameters
6838
    '''
6839 1
    def __init__(self):
6840
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextRequest_Encoding_DefaultBinary)
6841
        self.RequestHeader = RequestHeader()
6842
        self.Parameters = QueryNextParameters()
6843
        self._freeze()
6844
6845 1
    def to_binary(self):
6846
        packet = []
6847
        packet.append(self.TypeId.to_binary())
6848
        packet.append(self.RequestHeader.to_binary())
6849
        packet.append(self.Parameters.to_binary())
6850
        return b''.join(packet)
6851
6852 1
    @staticmethod
6853
    def from_binary(data):
6854
        obj = QueryNextRequest()
6855
        obj.TypeId = NodeId.from_binary(data)
6856
        obj.RequestHeader = RequestHeader.from_binary(data)
6857
        obj.Parameters = QueryNextParameters.from_binary(data)
6858
        return obj
6859
6860 1
    def __str__(self):
6861
        return 'QueryNextRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6862
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
6863
               'Parameters:' + str(self.Parameters) + ')'
6864
6865 1
    __repr__ = __str__
6866
6867
6868 1
class QueryNextResult(FrozenClass):
6869
    '''
6870
    :ivar QueryDataSets:
6871
    :vartype QueryDataSets: QueryDataSet
6872
    :ivar RevisedContinuationPoint:
6873
    :vartype RevisedContinuationPoint: ByteString
6874
    '''
6875 1
    def __init__(self):
6876
        self.QueryDataSets = []
6877
        self.RevisedContinuationPoint = b''
6878
        self._freeze()
6879
6880 1
    def to_binary(self):
6881
        packet = []
6882
        packet.append(struct.pack('<i', len(self.QueryDataSets)))
6883
        for fieldname in self.QueryDataSets:
6884
            packet.append(fieldname.to_binary())
6885
        packet.append(pack_uatype('ByteString', self.RevisedContinuationPoint))
6886
        return b''.join(packet)
6887
6888 1
    @staticmethod
6889
    def from_binary(data):
6890
        obj = QueryNextResult()
6891
        length = struct.unpack('<i', data.read(4))[0]
6892
        if length != -1:
6893
            for _ in range(0, length):
6894
                obj.QueryDataSets.append(QueryDataSet.from_binary(data))
6895
        obj.RevisedContinuationPoint = unpack_uatype('ByteString', data)
6896
        return obj
6897
6898 1
    def __str__(self):
6899
        return 'QueryNextResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', ' + \
6900
               'RevisedContinuationPoint:' + str(self.RevisedContinuationPoint) + ')'
6901
6902 1
    __repr__ = __str__
6903
6904
6905 1
class QueryNextResponse(FrozenClass):
6906
    '''
6907
    :ivar TypeId:
6908
    :vartype TypeId: NodeId
6909
    :ivar ResponseHeader:
6910
    :vartype ResponseHeader: ResponseHeader
6911
    :ivar Parameters:
6912
    :vartype Parameters: QueryNextResult
6913
    '''
6914 1
    def __init__(self):
6915
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextResponse_Encoding_DefaultBinary)
6916
        self.ResponseHeader = ResponseHeader()
6917
        self.Parameters = QueryNextResult()
6918
        self._freeze()
6919
6920 1
    def to_binary(self):
6921
        packet = []
6922
        packet.append(self.TypeId.to_binary())
6923
        packet.append(self.ResponseHeader.to_binary())
6924
        packet.append(self.Parameters.to_binary())
6925
        return b''.join(packet)
6926
6927 1
    @staticmethod
6928
    def from_binary(data):
6929
        obj = QueryNextResponse()
6930
        obj.TypeId = NodeId.from_binary(data)
6931
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6932
        obj.Parameters = QueryNextResult.from_binary(data)
6933
        return obj
6934
6935 1
    def __str__(self):
6936
        return 'QueryNextResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
6937
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
6938
               'Parameters:' + str(self.Parameters) + ')'
6939
6940 1
    __repr__ = __str__
6941
6942
6943 1
class ReadValueId(FrozenClass):
6944
    '''
6945
    :ivar NodeId:
6946
    :vartype NodeId: NodeId
6947
    :ivar AttributeId:
6948
    :vartype AttributeId: UInt32
6949
    :ivar IndexRange:
6950
    :vartype IndexRange: String
6951
    :ivar DataEncoding:
6952
    :vartype DataEncoding: QualifiedName
6953
    '''
6954 1
    def __init__(self):
6955 1
        self.NodeId = NodeId()
6956 1
        self.AttributeId = 0
6957 1
        self.IndexRange = ''
6958 1
        self.DataEncoding = QualifiedName()
6959 1
        self._freeze()
6960
6961 1
    def to_binary(self):
6962 1
        packet = []
6963 1
        packet.append(self.NodeId.to_binary())
6964 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
6965 1
        packet.append(pack_uatype('String', self.IndexRange))
6966 1
        packet.append(self.DataEncoding.to_binary())
6967 1
        return b''.join(packet)
6968
6969 1
    @staticmethod
6970
    def from_binary(data):
6971 1
        obj = ReadValueId()
6972 1
        obj.NodeId = NodeId.from_binary(data)
6973 1
        obj.AttributeId = unpack_uatype('UInt32', data)
6974 1
        obj.IndexRange = unpack_uatype('String', data)
6975 1
        obj.DataEncoding = QualifiedName.from_binary(data)
6976 1
        return obj
6977
6978 1
    def __str__(self):
6979
        return 'ReadValueId(' + 'NodeId:' + str(self.NodeId) + ', ' + \
6980
               'AttributeId:' + str(self.AttributeId) + ', ' + \
6981
               'IndexRange:' + str(self.IndexRange) + ', ' + \
6982
               'DataEncoding:' + str(self.DataEncoding) + ')'
6983
6984 1
    __repr__ = __str__
6985
6986
6987 1
class ReadParameters(FrozenClass):
6988
    '''
6989
    :ivar MaxAge:
6990
    :vartype MaxAge: Double
6991
    :ivar TimestampsToReturn:
6992
    :vartype TimestampsToReturn: TimestampsToReturn
6993
    :ivar NodesToRead:
6994
    :vartype NodesToRead: ReadValueId
6995
    '''
6996 1
    def __init__(self):
6997 1
        self.MaxAge = 0
6998 1
        self.TimestampsToReturn = 0
6999 1
        self.NodesToRead = []
7000 1
        self._freeze()
7001
7002 1
    def to_binary(self):
7003 1
        packet = []
7004 1
        packet.append(pack_uatype('Double', self.MaxAge))
7005 1
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
7006 1
        packet.append(struct.pack('<i', len(self.NodesToRead)))
7007 1
        for fieldname in self.NodesToRead:
7008 1
            packet.append(fieldname.to_binary())
7009 1
        return b''.join(packet)
7010
7011 1
    @staticmethod
7012
    def from_binary(data):
7013 1
        obj = ReadParameters()
7014 1
        obj.MaxAge = unpack_uatype('Double', data)
7015 1
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
7016 1
        length = struct.unpack('<i', data.read(4))[0]
7017 1
        if length != -1:
7018 1
            for _ in range(0, length):
7019 1
                obj.NodesToRead.append(ReadValueId.from_binary(data))
7020 1
        return obj
7021
7022 1
    def __str__(self):
7023
        return 'ReadParameters(' + 'MaxAge:' + str(self.MaxAge) + ', ' + \
7024
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
7025
               'NodesToRead:' + str(self.NodesToRead) + ')'
7026
7027 1
    __repr__ = __str__
7028
7029
7030 1
class ReadRequest(FrozenClass):
7031
    '''
7032
    :ivar TypeId:
7033
    :vartype TypeId: NodeId
7034
    :ivar RequestHeader:
7035
    :vartype RequestHeader: RequestHeader
7036
    :ivar Parameters:
7037
    :vartype Parameters: ReadParameters
7038
    '''
7039 1
    def __init__(self):
7040 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadRequest_Encoding_DefaultBinary)
7041 1
        self.RequestHeader = RequestHeader()
7042 1
        self.Parameters = ReadParameters()
7043 1
        self._freeze()
7044
7045 1
    def to_binary(self):
7046 1
        packet = []
7047 1
        packet.append(self.TypeId.to_binary())
7048 1
        packet.append(self.RequestHeader.to_binary())
7049 1
        packet.append(self.Parameters.to_binary())
7050 1
        return b''.join(packet)
7051
7052 1
    @staticmethod
7053
    def from_binary(data):
7054
        obj = ReadRequest()
7055
        obj.TypeId = NodeId.from_binary(data)
7056
        obj.RequestHeader = RequestHeader.from_binary(data)
7057
        obj.Parameters = ReadParameters.from_binary(data)
7058
        return obj
7059
7060 1
    def __str__(self):
7061
        return 'ReadRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7062
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
7063
               'Parameters:' + str(self.Parameters) + ')'
7064
7065 1
    __repr__ = __str__
7066
7067
7068 1
class ReadResponse(FrozenClass):
7069
    '''
7070
    :ivar TypeId:
7071
    :vartype TypeId: NodeId
7072
    :ivar ResponseHeader:
7073
    :vartype ResponseHeader: ResponseHeader
7074
    :ivar Results:
7075
    :vartype Results: DataValue
7076
    :ivar DiagnosticInfos:
7077
    :vartype DiagnosticInfos: DiagnosticInfo
7078
    '''
7079 1
    def __init__(self):
7080 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadResponse_Encoding_DefaultBinary)
7081 1
        self.ResponseHeader = ResponseHeader()
7082 1
        self.Results = []
7083 1
        self.DiagnosticInfos = []
7084 1
        self._freeze()
7085
7086 1
    def to_binary(self):
7087 1
        packet = []
7088 1
        packet.append(self.TypeId.to_binary())
7089 1
        packet.append(self.ResponseHeader.to_binary())
7090 1
        packet.append(struct.pack('<i', len(self.Results)))
7091 1
        for fieldname in self.Results:
7092 1
            packet.append(fieldname.to_binary())
7093 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7094 1
        for fieldname in self.DiagnosticInfos:
7095
            packet.append(fieldname.to_binary())
7096 1
        return b''.join(packet)
7097
7098 1
    @staticmethod
7099
    def from_binary(data):
7100 1
        obj = ReadResponse()
7101 1
        obj.TypeId = NodeId.from_binary(data)
7102 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7103 1
        length = struct.unpack('<i', data.read(4))[0]
7104 1
        if length != -1:
7105 1
            for _ in range(0, length):
7106 1
                obj.Results.append(DataValue.from_binary(data))
7107 1
        length = struct.unpack('<i', data.read(4))[0]
7108 1
        if length != -1:
7109 1
            for _ in range(0, length):
7110
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7111 1
        return obj
7112
7113 1
    def __str__(self):
7114
        return 'ReadResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7115
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
7116
               'Results:' + str(self.Results) + ', ' + \
7117
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7118
7119 1
    __repr__ = __str__
7120
7121
7122 1
class HistoryReadValueId(FrozenClass):
7123
    '''
7124
    :ivar NodeId:
7125
    :vartype NodeId: NodeId
7126
    :ivar IndexRange:
7127
    :vartype IndexRange: String
7128
    :ivar DataEncoding:
7129
    :vartype DataEncoding: QualifiedName
7130
    :ivar ContinuationPoint:
7131
    :vartype ContinuationPoint: ByteString
7132
    '''
7133 1
    def __init__(self):
7134
        self.NodeId = NodeId()
7135
        self.IndexRange = ''
7136
        self.DataEncoding = QualifiedName()
7137
        self.ContinuationPoint = b''
7138
        self._freeze()
7139
7140 1
    def to_binary(self):
7141
        packet = []
7142
        packet.append(self.NodeId.to_binary())
7143
        packet.append(pack_uatype('String', self.IndexRange))
7144
        packet.append(self.DataEncoding.to_binary())
7145
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
7146
        return b''.join(packet)
7147
7148 1
    @staticmethod
7149
    def from_binary(data):
7150
        obj = HistoryReadValueId()
7151
        obj.NodeId = NodeId.from_binary(data)
7152
        obj.IndexRange = unpack_uatype('String', data)
7153
        obj.DataEncoding = QualifiedName.from_binary(data)
7154
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
7155
        return obj
7156
7157 1
    def __str__(self):
7158
        return 'HistoryReadValueId(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7159
               'IndexRange:' + str(self.IndexRange) + ', ' + \
7160
               'DataEncoding:' + str(self.DataEncoding) + ', ' + \
7161
               'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
7162
7163 1
    __repr__ = __str__
7164
7165
7166 1
class HistoryReadResult(FrozenClass):
7167
    '''
7168
    :ivar StatusCode:
7169
    :vartype StatusCode: StatusCode
7170
    :ivar ContinuationPoint:
7171
    :vartype ContinuationPoint: ByteString
7172
    :ivar HistoryData:
7173
    :vartype HistoryData: ExtensionObject
7174
    '''
7175 1
    def __init__(self):
7176
        self.StatusCode = StatusCode()
7177
        self.ContinuationPoint = b''
7178
        self.HistoryData = None
7179
        self._freeze()
7180
7181 1
    def to_binary(self):
7182
        packet = []
7183
        packet.append(self.StatusCode.to_binary())
7184
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
7185
        packet.append(extensionobject_to_binary(self.HistoryData))
7186
        return b''.join(packet)
7187
7188 1
    @staticmethod
7189
    def from_binary(data):
7190
        obj = HistoryReadResult()
7191
        obj.StatusCode = StatusCode.from_binary(data)
7192
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
7193
        obj.HistoryData = extensionobject_from_binary(data)
7194
        return obj
7195
7196 1
    def __str__(self):
7197
        return 'HistoryReadResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
7198
               'ContinuationPoint:' + str(self.ContinuationPoint) + ', ' + \
7199
               'HistoryData:' + str(self.HistoryData) + ')'
7200
7201 1
    __repr__ = __str__
7202
7203
7204 1
class HistoryReadDetails(FrozenClass):
7205
    '''
7206
    '''
7207 1
    def __init__(self):
7208
        self._freeze()
7209
7210 1
    def to_binary(self):
7211
        packet = []
7212
        return b''.join(packet)
7213
7214 1
    @staticmethod
7215
    def from_binary(data):
7216
        obj = HistoryReadDetails()
7217
        return obj
7218
7219 1
    def __str__(self):
7220
        return 'HistoryReadDetails(' +  + ')'
7221
7222 1
    __repr__ = __str__
7223
7224
7225 1
class ReadEventDetails(FrozenClass):
7226
    '''
7227
    :ivar NumValuesPerNode:
7228
    :vartype NumValuesPerNode: UInt32
7229
    :ivar StartTime:
7230
    :vartype StartTime: DateTime
7231
    :ivar EndTime:
7232
    :vartype EndTime: DateTime
7233
    :ivar Filter:
7234
    :vartype Filter: EventFilter
7235
    '''
7236 1
    def __init__(self):
7237
        self.NumValuesPerNode = 0
7238
        self.StartTime = datetime.now()
7239
        self.EndTime = datetime.now()
7240
        self.Filter = EventFilter()
7241
        self._freeze()
7242
7243 1
    def to_binary(self):
7244
        packet = []
7245
        packet.append(pack_uatype('UInt32', self.NumValuesPerNode))
7246
        packet.append(pack_uatype('DateTime', self.StartTime))
7247
        packet.append(pack_uatype('DateTime', self.EndTime))
7248
        packet.append(self.Filter.to_binary())
7249
        return b''.join(packet)
7250
7251 1
    @staticmethod
7252
    def from_binary(data):
7253
        obj = ReadEventDetails()
7254
        obj.NumValuesPerNode = unpack_uatype('UInt32', data)
7255
        obj.StartTime = unpack_uatype('DateTime', data)
7256
        obj.EndTime = unpack_uatype('DateTime', data)
7257
        obj.Filter = EventFilter.from_binary(data)
7258
        return obj
7259
7260 1
    def __str__(self):
7261
        return 'ReadEventDetails(' + 'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', ' + \
7262
               'StartTime:' + str(self.StartTime) + ', ' + \
7263
               'EndTime:' + str(self.EndTime) + ', ' + \
7264
               'Filter:' + str(self.Filter) + ')'
7265
7266 1
    __repr__ = __str__
7267
7268
7269 1
class ReadRawModifiedDetails(FrozenClass):
7270
    '''
7271
    :ivar IsReadModified:
7272
    :vartype IsReadModified: Boolean
7273
    :ivar StartTime:
7274
    :vartype StartTime: DateTime
7275
    :ivar EndTime:
7276
    :vartype EndTime: DateTime
7277
    :ivar NumValuesPerNode:
7278
    :vartype NumValuesPerNode: UInt32
7279
    :ivar ReturnBounds:
7280
    :vartype ReturnBounds: Boolean
7281
    '''
7282 1
    def __init__(self):
7283
        self.IsReadModified = True
7284
        self.StartTime = datetime.now()
7285
        self.EndTime = datetime.now()
7286
        self.NumValuesPerNode = 0
7287
        self.ReturnBounds = True
7288
        self._freeze()
7289
7290 1
    def to_binary(self):
7291
        packet = []
7292
        packet.append(pack_uatype('Boolean', self.IsReadModified))
7293
        packet.append(pack_uatype('DateTime', self.StartTime))
7294
        packet.append(pack_uatype('DateTime', self.EndTime))
7295
        packet.append(pack_uatype('UInt32', self.NumValuesPerNode))
7296
        packet.append(pack_uatype('Boolean', self.ReturnBounds))
7297
        return b''.join(packet)
7298
7299 1
    @staticmethod
7300
    def from_binary(data):
7301
        obj = ReadRawModifiedDetails()
7302
        obj.IsReadModified = unpack_uatype('Boolean', data)
7303
        obj.StartTime = unpack_uatype('DateTime', data)
7304
        obj.EndTime = unpack_uatype('DateTime', data)
7305
        obj.NumValuesPerNode = unpack_uatype('UInt32', data)
7306
        obj.ReturnBounds = unpack_uatype('Boolean', data)
7307
        return obj
7308
7309 1
    def __str__(self):
7310
        return 'ReadRawModifiedDetails(' + 'IsReadModified:' + str(self.IsReadModified) + ', ' + \
7311
               'StartTime:' + str(self.StartTime) + ', ' + \
7312
               'EndTime:' + str(self.EndTime) + ', ' + \
7313
               'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', ' + \
7314
               'ReturnBounds:' + str(self.ReturnBounds) + ')'
7315
7316 1
    __repr__ = __str__
7317
7318
7319 1
class ReadProcessedDetails(FrozenClass):
7320
    '''
7321
    :ivar StartTime:
7322
    :vartype StartTime: DateTime
7323
    :ivar EndTime:
7324
    :vartype EndTime: DateTime
7325
    :ivar ProcessingInterval:
7326
    :vartype ProcessingInterval: Double
7327
    :ivar AggregateType:
7328
    :vartype AggregateType: NodeId
7329
    :ivar AggregateConfiguration:
7330
    :vartype AggregateConfiguration: AggregateConfiguration
7331
    '''
7332 1
    def __init__(self):
7333
        self.StartTime = datetime.now()
7334
        self.EndTime = datetime.now()
7335
        self.ProcessingInterval = 0
7336
        self.AggregateType = []
7337
        self.AggregateConfiguration = AggregateConfiguration()
7338
        self._freeze()
7339
7340 1
    def to_binary(self):
7341
        packet = []
7342
        packet.append(pack_uatype('DateTime', self.StartTime))
7343
        packet.append(pack_uatype('DateTime', self.EndTime))
7344
        packet.append(pack_uatype('Double', self.ProcessingInterval))
7345
        packet.append(struct.pack('<i', len(self.AggregateType)))
7346
        for fieldname in self.AggregateType:
7347
            packet.append(fieldname.to_binary())
7348
        packet.append(self.AggregateConfiguration.to_binary())
7349
        return b''.join(packet)
7350
7351 1
    @staticmethod
7352
    def from_binary(data):
7353
        obj = ReadProcessedDetails()
7354
        obj.StartTime = unpack_uatype('DateTime', data)
7355
        obj.EndTime = unpack_uatype('DateTime', data)
7356
        obj.ProcessingInterval = unpack_uatype('Double', data)
7357
        length = struct.unpack('<i', data.read(4))[0]
7358
        if length != -1:
7359
            for _ in range(0, length):
7360
                obj.AggregateType.append(NodeId.from_binary(data))
7361
        obj.AggregateConfiguration = AggregateConfiguration.from_binary(data)
7362
        return obj
7363
7364 1
    def __str__(self):
7365
        return 'ReadProcessedDetails(' + 'StartTime:' + str(self.StartTime) + ', ' + \
7366
               'EndTime:' + str(self.EndTime) + ', ' + \
7367
               'ProcessingInterval:' + str(self.ProcessingInterval) + ', ' + \
7368
               'AggregateType:' + str(self.AggregateType) + ', ' + \
7369
               'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
7370
7371 1
    __repr__ = __str__
7372
7373
7374 1
class ReadAtTimeDetails(FrozenClass):
7375
    '''
7376
    :ivar ReqTimes:
7377
    :vartype ReqTimes: DateTime
7378
    :ivar UseSimpleBounds:
7379
    :vartype UseSimpleBounds: Boolean
7380
    '''
7381 1
    def __init__(self):
7382
        self.ReqTimes = []
7383
        self.UseSimpleBounds = True
7384
        self._freeze()
7385
7386 1
    def to_binary(self):
7387
        packet = []
7388
        packet.append(struct.pack('<i', len(self.ReqTimes)))
7389
        for fieldname in self.ReqTimes:
7390
            packet.append(pack_uatype('DateTime', fieldname))
7391
        packet.append(pack_uatype('Boolean', self.UseSimpleBounds))
7392
        return b''.join(packet)
7393
7394 1
    @staticmethod
7395
    def from_binary(data):
7396
        obj = ReadAtTimeDetails()
7397
        obj.ReqTimes = unpack_uatype_array('DateTime', data)
7398
        obj.UseSimpleBounds = unpack_uatype('Boolean', data)
7399
        return obj
7400
7401 1
    def __str__(self):
7402
        return 'ReadAtTimeDetails(' + 'ReqTimes:' + str(self.ReqTimes) + ', ' + \
7403
               'UseSimpleBounds:' + str(self.UseSimpleBounds) + ')'
7404
7405 1
    __repr__ = __str__
7406
7407
7408 1
class HistoryData(FrozenClass):
7409
    '''
7410
    :ivar DataValues:
7411
    :vartype DataValues: DataValue
7412
    '''
7413 1
    def __init__(self):
7414
        self.DataValues = []
7415
        self._freeze()
7416
7417 1
    def to_binary(self):
7418
        packet = []
7419
        packet.append(struct.pack('<i', len(self.DataValues)))
7420
        for fieldname in self.DataValues:
7421
            packet.append(fieldname.to_binary())
7422
        return b''.join(packet)
7423
7424 1
    @staticmethod
7425
    def from_binary(data):
7426
        obj = HistoryData()
7427
        length = struct.unpack('<i', data.read(4))[0]
7428
        if length != -1:
7429
            for _ in range(0, length):
7430
                obj.DataValues.append(DataValue.from_binary(data))
7431
        return obj
7432
7433 1
    def __str__(self):
7434
        return 'HistoryData(' + 'DataValues:' + str(self.DataValues) + ')'
7435
7436 1
    __repr__ = __str__
7437
7438
7439 1
class ModificationInfo(FrozenClass):
7440
    '''
7441
    :ivar ModificationTime:
7442
    :vartype ModificationTime: DateTime
7443
    :ivar UpdateType:
7444
    :vartype UpdateType: HistoryUpdateType
7445
    :ivar UserName:
7446
    :vartype UserName: String
7447
    '''
7448 1
    def __init__(self):
7449
        self.ModificationTime = datetime.now()
7450
        self.UpdateType = 0
7451
        self.UserName = ''
7452
        self._freeze()
7453
7454 1
    def to_binary(self):
7455
        packet = []
7456
        packet.append(pack_uatype('DateTime', self.ModificationTime))
7457
        packet.append(pack_uatype('UInt32', self.UpdateType))
7458
        packet.append(pack_uatype('String', self.UserName))
7459
        return b''.join(packet)
7460
7461 1
    @staticmethod
7462
    def from_binary(data):
7463
        obj = ModificationInfo()
7464
        obj.ModificationTime = unpack_uatype('DateTime', data)
7465
        obj.UpdateType = unpack_uatype('UInt32', data)
7466
        obj.UserName = unpack_uatype('String', data)
7467
        return obj
7468
7469 1
    def __str__(self):
7470
        return 'ModificationInfo(' + 'ModificationTime:' + str(self.ModificationTime) + ', ' + \
7471
               'UpdateType:' + str(self.UpdateType) + ', ' + \
7472
               'UserName:' + str(self.UserName) + ')'
7473
7474 1
    __repr__ = __str__
7475
7476
7477 1
class HistoryModifiedData(FrozenClass):
7478
    '''
7479
    :ivar DataValues:
7480
    :vartype DataValues: DataValue
7481
    :ivar ModificationInfos:
7482
    :vartype ModificationInfos: ModificationInfo
7483
    '''
7484 1
    def __init__(self):
7485
        self.DataValues = []
7486
        self.ModificationInfos = []
7487
        self._freeze()
7488
7489 1
    def to_binary(self):
7490
        packet = []
7491
        packet.append(struct.pack('<i', len(self.DataValues)))
7492
        for fieldname in self.DataValues:
7493
            packet.append(fieldname.to_binary())
7494
        packet.append(struct.pack('<i', len(self.ModificationInfos)))
7495
        for fieldname in self.ModificationInfos:
7496
            packet.append(fieldname.to_binary())
7497
        return b''.join(packet)
7498
7499 1
    @staticmethod
7500
    def from_binary(data):
7501
        obj = HistoryModifiedData()
7502
        length = struct.unpack('<i', data.read(4))[0]
7503
        if length != -1:
7504
            for _ in range(0, length):
7505
                obj.DataValues.append(DataValue.from_binary(data))
7506
        length = struct.unpack('<i', data.read(4))[0]
7507
        if length != -1:
7508
            for _ in range(0, length):
7509
                obj.ModificationInfos.append(ModificationInfo.from_binary(data))
7510
        return obj
7511
7512 1
    def __str__(self):
7513
        return 'HistoryModifiedData(' + 'DataValues:' + str(self.DataValues) + ', ' + \
7514
               'ModificationInfos:' + str(self.ModificationInfos) + ')'
7515
7516 1
    __repr__ = __str__
7517
7518
7519 1
class HistoryEvent(FrozenClass):
7520
    '''
7521
    :ivar Events:
7522
    :vartype Events: HistoryEventFieldList
7523
    '''
7524 1
    def __init__(self):
7525
        self.Events = []
7526
        self._freeze()
7527
7528 1
    def to_binary(self):
7529
        packet = []
7530
        packet.append(struct.pack('<i', len(self.Events)))
7531
        for fieldname in self.Events:
7532
            packet.append(fieldname.to_binary())
7533
        return b''.join(packet)
7534
7535 1
    @staticmethod
7536
    def from_binary(data):
7537
        obj = HistoryEvent()
7538
        length = struct.unpack('<i', data.read(4))[0]
7539
        if length != -1:
7540
            for _ in range(0, length):
7541
                obj.Events.append(HistoryEventFieldList.from_binary(data))
7542
        return obj
7543
7544 1
    def __str__(self):
7545
        return 'HistoryEvent(' + 'Events:' + str(self.Events) + ')'
7546
7547 1
    __repr__ = __str__
7548
7549
7550 1
class HistoryReadParameters(FrozenClass):
7551
    '''
7552
    :ivar HistoryReadDetails:
7553
    :vartype HistoryReadDetails: ExtensionObject
7554
    :ivar TimestampsToReturn:
7555
    :vartype TimestampsToReturn: TimestampsToReturn
7556
    :ivar ReleaseContinuationPoints:
7557
    :vartype ReleaseContinuationPoints: Boolean
7558
    :ivar NodesToRead:
7559
    :vartype NodesToRead: HistoryReadValueId
7560
    '''
7561 1
    def __init__(self):
7562
        self.HistoryReadDetails = None
7563
        self.TimestampsToReturn = 0
7564
        self.ReleaseContinuationPoints = True
7565
        self.NodesToRead = []
7566
        self._freeze()
7567
7568 1
    def to_binary(self):
7569
        packet = []
7570
        packet.append(extensionobject_to_binary(self.HistoryReadDetails))
7571
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
7572
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoints))
7573
        packet.append(struct.pack('<i', len(self.NodesToRead)))
7574
        for fieldname in self.NodesToRead:
7575
            packet.append(fieldname.to_binary())
7576
        return b''.join(packet)
7577
7578 1
    @staticmethod
7579
    def from_binary(data):
7580
        obj = HistoryReadParameters()
7581
        obj.HistoryReadDetails = extensionobject_from_binary(data)
7582
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
7583
        obj.ReleaseContinuationPoints = unpack_uatype('Boolean', data)
7584
        length = struct.unpack('<i', data.read(4))[0]
7585
        if length != -1:
7586
            for _ in range(0, length):
7587
                obj.NodesToRead.append(HistoryReadValueId.from_binary(data))
7588
        return obj
7589
7590 1
    def __str__(self):
7591
        return 'HistoryReadParameters(' + 'HistoryReadDetails:' + str(self.HistoryReadDetails) + ', ' + \
7592
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
7593
               'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', ' + \
7594
               'NodesToRead:' + str(self.NodesToRead) + ')'
7595
7596 1
    __repr__ = __str__
7597
7598
7599 1
class HistoryReadRequest(FrozenClass):
7600
    '''
7601
    :ivar TypeId:
7602
    :vartype TypeId: NodeId
7603
    :ivar RequestHeader:
7604
    :vartype RequestHeader: RequestHeader
7605
    :ivar Parameters:
7606
    :vartype Parameters: HistoryReadParameters
7607
    '''
7608 1
    def __init__(self):
7609
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadRequest_Encoding_DefaultBinary)
7610
        self.RequestHeader = RequestHeader()
7611
        self.Parameters = HistoryReadParameters()
7612
        self._freeze()
7613
7614 1
    def to_binary(self):
7615
        packet = []
7616
        packet.append(self.TypeId.to_binary())
7617
        packet.append(self.RequestHeader.to_binary())
7618
        packet.append(self.Parameters.to_binary())
7619
        return b''.join(packet)
7620
7621 1
    @staticmethod
7622
    def from_binary(data):
7623
        obj = HistoryReadRequest()
7624
        obj.TypeId = NodeId.from_binary(data)
7625
        obj.RequestHeader = RequestHeader.from_binary(data)
7626
        obj.Parameters = HistoryReadParameters.from_binary(data)
7627
        return obj
7628
7629 1
    def __str__(self):
7630
        return 'HistoryReadRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7631
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
7632
               'Parameters:' + str(self.Parameters) + ')'
7633
7634 1
    __repr__ = __str__
7635
7636
7637 1
class HistoryReadResponse(FrozenClass):
7638
    '''
7639
    :ivar TypeId:
7640
    :vartype TypeId: NodeId
7641
    :ivar ResponseHeader:
7642
    :vartype ResponseHeader: ResponseHeader
7643
    :ivar Results:
7644
    :vartype Results: HistoryReadResult
7645
    :ivar DiagnosticInfos:
7646
    :vartype DiagnosticInfos: DiagnosticInfo
7647
    '''
7648 1
    def __init__(self):
7649
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadResponse_Encoding_DefaultBinary)
7650
        self.ResponseHeader = ResponseHeader()
7651
        self.Results = []
7652
        self.DiagnosticInfos = []
7653
        self._freeze()
7654
7655 1
    def to_binary(self):
7656
        packet = []
7657
        packet.append(self.TypeId.to_binary())
7658
        packet.append(self.ResponseHeader.to_binary())
7659
        packet.append(struct.pack('<i', len(self.Results)))
7660
        for fieldname in self.Results:
7661
            packet.append(fieldname.to_binary())
7662
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7663
        for fieldname in self.DiagnosticInfos:
7664
            packet.append(fieldname.to_binary())
7665
        return b''.join(packet)
7666
7667 1
    @staticmethod
7668
    def from_binary(data):
7669
        obj = HistoryReadResponse()
7670
        obj.TypeId = NodeId.from_binary(data)
7671
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7672
        length = struct.unpack('<i', data.read(4))[0]
7673
        if length != -1:
7674
            for _ in range(0, length):
7675
                obj.Results.append(HistoryReadResult.from_binary(data))
7676
        length = struct.unpack('<i', data.read(4))[0]
7677
        if length != -1:
7678
            for _ in range(0, length):
7679
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7680
        return obj
7681
7682 1
    def __str__(self):
7683
        return 'HistoryReadResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7684
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
7685
               'Results:' + str(self.Results) + ', ' + \
7686
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7687
7688 1
    __repr__ = __str__
7689
7690
7691 1
class WriteValue(FrozenClass):
7692
    '''
7693
    :ivar NodeId:
7694
    :vartype NodeId: NodeId
7695
    :ivar AttributeId:
7696
    :vartype AttributeId: UInt32
7697
    :ivar IndexRange:
7698
    :vartype IndexRange: String
7699
    :ivar Value:
7700
    :vartype Value: DataValue
7701
    '''
7702 1
    def __init__(self):
7703 1
        self.NodeId = NodeId()
7704 1
        self.AttributeId = 0
7705 1
        self.IndexRange = ''
7706 1
        self.Value = DataValue()
7707 1
        self._freeze()
7708
7709 1
    def to_binary(self):
7710 1
        packet = []
7711 1
        packet.append(self.NodeId.to_binary())
7712 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
7713 1
        packet.append(pack_uatype('String', self.IndexRange))
7714 1
        packet.append(self.Value.to_binary())
7715 1
        return b''.join(packet)
7716
7717 1
    @staticmethod
7718
    def from_binary(data):
7719 1
        obj = WriteValue()
7720 1
        obj.NodeId = NodeId.from_binary(data)
7721 1
        obj.AttributeId = unpack_uatype('UInt32', data)
7722 1
        obj.IndexRange = unpack_uatype('String', data)
7723 1
        obj.Value = DataValue.from_binary(data)
7724 1
        return obj
7725
7726 1
    def __str__(self):
7727
        return 'WriteValue(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7728
               'AttributeId:' + str(self.AttributeId) + ', ' + \
7729
               'IndexRange:' + str(self.IndexRange) + ', ' + \
7730
               'Value:' + str(self.Value) + ')'
7731
7732 1
    __repr__ = __str__
7733
7734
7735 1
class WriteParameters(FrozenClass):
7736
    '''
7737
    :ivar NodesToWrite:
7738
    :vartype NodesToWrite: WriteValue
7739
    '''
7740 1
    def __init__(self):
7741 1
        self.NodesToWrite = []
7742 1
        self._freeze()
7743
7744 1
    def to_binary(self):
7745 1
        packet = []
7746 1
        packet.append(struct.pack('<i', len(self.NodesToWrite)))
7747 1
        for fieldname in self.NodesToWrite:
7748 1
            packet.append(fieldname.to_binary())
7749 1
        return b''.join(packet)
7750
7751 1
    @staticmethod
7752
    def from_binary(data):
7753 1
        obj = WriteParameters()
7754 1
        length = struct.unpack('<i', data.read(4))[0]
7755 1
        if length != -1:
7756 1
            for _ in range(0, length):
7757 1
                obj.NodesToWrite.append(WriteValue.from_binary(data))
7758 1
        return obj
7759
7760 1
    def __str__(self):
7761
        return 'WriteParameters(' + 'NodesToWrite:' + str(self.NodesToWrite) + ')'
7762
7763 1
    __repr__ = __str__
7764
7765
7766 1
class WriteRequest(FrozenClass):
7767
    '''
7768
    :ivar TypeId:
7769
    :vartype TypeId: NodeId
7770
    :ivar RequestHeader:
7771
    :vartype RequestHeader: RequestHeader
7772
    :ivar Parameters:
7773
    :vartype Parameters: WriteParameters
7774
    '''
7775 1
    def __init__(self):
7776 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteRequest_Encoding_DefaultBinary)
7777 1
        self.RequestHeader = RequestHeader()
7778 1
        self.Parameters = WriteParameters()
7779 1
        self._freeze()
7780
7781 1
    def to_binary(self):
7782 1
        packet = []
7783 1
        packet.append(self.TypeId.to_binary())
7784 1
        packet.append(self.RequestHeader.to_binary())
7785 1
        packet.append(self.Parameters.to_binary())
7786 1
        return b''.join(packet)
7787
7788 1
    @staticmethod
7789
    def from_binary(data):
7790
        obj = WriteRequest()
7791
        obj.TypeId = NodeId.from_binary(data)
7792
        obj.RequestHeader = RequestHeader.from_binary(data)
7793
        obj.Parameters = WriteParameters.from_binary(data)
7794
        return obj
7795
7796 1
    def __str__(self):
7797
        return 'WriteRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7798
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
7799
               'Parameters:' + str(self.Parameters) + ')'
7800
7801 1
    __repr__ = __str__
7802
7803
7804 1
class WriteResponse(FrozenClass):
7805
    '''
7806
    :ivar TypeId:
7807
    :vartype TypeId: NodeId
7808
    :ivar ResponseHeader:
7809
    :vartype ResponseHeader: ResponseHeader
7810
    :ivar Results:
7811
    :vartype Results: StatusCode
7812
    :ivar DiagnosticInfos:
7813
    :vartype DiagnosticInfos: DiagnosticInfo
7814
    '''
7815 1
    def __init__(self):
7816 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteResponse_Encoding_DefaultBinary)
7817 1
        self.ResponseHeader = ResponseHeader()
7818 1
        self.Results = []
7819 1
        self.DiagnosticInfos = []
7820 1
        self._freeze()
7821
7822 1
    def to_binary(self):
7823 1
        packet = []
7824 1
        packet.append(self.TypeId.to_binary())
7825 1
        packet.append(self.ResponseHeader.to_binary())
7826 1
        packet.append(struct.pack('<i', len(self.Results)))
7827 1
        for fieldname in self.Results:
7828 1
            packet.append(fieldname.to_binary())
7829 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7830 1
        for fieldname in self.DiagnosticInfos:
7831
            packet.append(fieldname.to_binary())
7832 1
        return b''.join(packet)
7833
7834 1
    @staticmethod
7835
    def from_binary(data):
7836 1
        obj = WriteResponse()
7837 1
        obj.TypeId = NodeId.from_binary(data)
7838 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7839 1
        length = struct.unpack('<i', data.read(4))[0]
7840 1
        if length != -1:
7841 1
            for _ in range(0, length):
7842 1
                obj.Results.append(StatusCode.from_binary(data))
7843 1
        length = struct.unpack('<i', data.read(4))[0]
7844 1
        if length != -1:
7845 1
            for _ in range(0, length):
7846
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7847 1
        return obj
7848
7849 1
    def __str__(self):
7850
        return 'WriteResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
7851
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
7852
               'Results:' + str(self.Results) + ', ' + \
7853
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7854
7855 1
    __repr__ = __str__
7856
7857
7858 1
class HistoryUpdateDetails(FrozenClass):
7859
    '''
7860
    :ivar NodeId:
7861
    :vartype NodeId: NodeId
7862
    '''
7863 1
    def __init__(self):
7864
        self.NodeId = NodeId()
7865
        self._freeze()
7866
7867 1
    def to_binary(self):
7868
        packet = []
7869
        packet.append(self.NodeId.to_binary())
7870
        return b''.join(packet)
7871
7872 1
    @staticmethod
7873
    def from_binary(data):
7874
        obj = HistoryUpdateDetails()
7875
        obj.NodeId = NodeId.from_binary(data)
7876
        return obj
7877
7878 1
    def __str__(self):
7879
        return 'HistoryUpdateDetails(' + 'NodeId:' + str(self.NodeId) + ')'
7880
7881 1
    __repr__ = __str__
7882
7883
7884 1
class UpdateDataDetails(FrozenClass):
7885
    '''
7886
    :ivar NodeId:
7887
    :vartype NodeId: NodeId
7888
    :ivar PerformInsertReplace:
7889
    :vartype PerformInsertReplace: PerformUpdateType
7890
    :ivar UpdateValues:
7891
    :vartype UpdateValues: DataValue
7892
    '''
7893 1
    def __init__(self):
7894
        self.NodeId = NodeId()
7895
        self.PerformInsertReplace = 0
7896
        self.UpdateValues = []
7897
        self._freeze()
7898
7899 1
    def to_binary(self):
7900
        packet = []
7901
        packet.append(self.NodeId.to_binary())
7902
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7903
        packet.append(struct.pack('<i', len(self.UpdateValues)))
7904
        for fieldname in self.UpdateValues:
7905
            packet.append(fieldname.to_binary())
7906
        return b''.join(packet)
7907
7908 1
    @staticmethod
7909
    def from_binary(data):
7910
        obj = UpdateDataDetails()
7911
        obj.NodeId = NodeId.from_binary(data)
7912
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7913
        length = struct.unpack('<i', data.read(4))[0]
7914
        if length != -1:
7915
            for _ in range(0, length):
7916
                obj.UpdateValues.append(DataValue.from_binary(data))
7917
        return obj
7918
7919 1
    def __str__(self):
7920
        return 'UpdateDataDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7921
               'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', ' + \
7922
               'UpdateValues:' + str(self.UpdateValues) + ')'
7923
7924 1
    __repr__ = __str__
7925
7926
7927 1
class UpdateStructureDataDetails(FrozenClass):
7928
    '''
7929
    :ivar NodeId:
7930
    :vartype NodeId: NodeId
7931
    :ivar PerformInsertReplace:
7932
    :vartype PerformInsertReplace: PerformUpdateType
7933
    :ivar UpdateValues:
7934
    :vartype UpdateValues: DataValue
7935
    '''
7936 1
    def __init__(self):
7937
        self.NodeId = NodeId()
7938
        self.PerformInsertReplace = 0
7939
        self.UpdateValues = []
7940
        self._freeze()
7941
7942 1
    def to_binary(self):
7943
        packet = []
7944
        packet.append(self.NodeId.to_binary())
7945
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7946
        packet.append(struct.pack('<i', len(self.UpdateValues)))
7947
        for fieldname in self.UpdateValues:
7948
            packet.append(fieldname.to_binary())
7949
        return b''.join(packet)
7950
7951 1
    @staticmethod
7952
    def from_binary(data):
7953
        obj = UpdateStructureDataDetails()
7954
        obj.NodeId = NodeId.from_binary(data)
7955
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7956
        length = struct.unpack('<i', data.read(4))[0]
7957
        if length != -1:
7958
            for _ in range(0, length):
7959
                obj.UpdateValues.append(DataValue.from_binary(data))
7960
        return obj
7961
7962 1
    def __str__(self):
7963
        return 'UpdateStructureDataDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
7964
               'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', ' + \
7965
               'UpdateValues:' + str(self.UpdateValues) + ')'
7966
7967 1
    __repr__ = __str__
7968
7969
7970 1
class UpdateEventDetails(FrozenClass):
7971
    '''
7972
    :ivar NodeId:
7973
    :vartype NodeId: NodeId
7974
    :ivar PerformInsertReplace:
7975
    :vartype PerformInsertReplace: PerformUpdateType
7976
    :ivar Filter:
7977
    :vartype Filter: EventFilter
7978
    :ivar EventData:
7979
    :vartype EventData: HistoryEventFieldList
7980
    '''
7981 1
    def __init__(self):
7982
        self.NodeId = NodeId()
7983
        self.PerformInsertReplace = 0
7984
        self.Filter = EventFilter()
7985
        self.EventData = []
7986
        self._freeze()
7987
7988 1
    def to_binary(self):
7989
        packet = []
7990
        packet.append(self.NodeId.to_binary())
7991
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7992
        packet.append(self.Filter.to_binary())
7993
        packet.append(struct.pack('<i', len(self.EventData)))
7994
        for fieldname in self.EventData:
7995
            packet.append(fieldname.to_binary())
7996
        return b''.join(packet)
7997
7998 1
    @staticmethod
7999
    def from_binary(data):
8000
        obj = UpdateEventDetails()
8001
        obj.NodeId = NodeId.from_binary(data)
8002
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
8003
        obj.Filter = EventFilter.from_binary(data)
8004
        length = struct.unpack('<i', data.read(4))[0]
8005
        if length != -1:
8006
            for _ in range(0, length):
8007
                obj.EventData.append(HistoryEventFieldList.from_binary(data))
8008
        return obj
8009
8010 1
    def __str__(self):
8011
        return 'UpdateEventDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8012
               'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', ' + \
8013
               'Filter:' + str(self.Filter) + ', ' + \
8014
               'EventData:' + str(self.EventData) + ')'
8015
8016 1
    __repr__ = __str__
8017
8018
8019 1
class DeleteRawModifiedDetails(FrozenClass):
8020
    '''
8021
    :ivar NodeId:
8022
    :vartype NodeId: NodeId
8023
    :ivar IsDeleteModified:
8024
    :vartype IsDeleteModified: Boolean
8025
    :ivar StartTime:
8026
    :vartype StartTime: DateTime
8027
    :ivar EndTime:
8028
    :vartype EndTime: DateTime
8029
    '''
8030 1
    def __init__(self):
8031
        self.NodeId = NodeId()
8032
        self.IsDeleteModified = True
8033
        self.StartTime = datetime.now()
8034
        self.EndTime = datetime.now()
8035
        self._freeze()
8036
8037 1
    def to_binary(self):
8038
        packet = []
8039
        packet.append(self.NodeId.to_binary())
8040
        packet.append(pack_uatype('Boolean', self.IsDeleteModified))
8041
        packet.append(pack_uatype('DateTime', self.StartTime))
8042
        packet.append(pack_uatype('DateTime', self.EndTime))
8043
        return b''.join(packet)
8044
8045 1
    @staticmethod
8046
    def from_binary(data):
8047
        obj = DeleteRawModifiedDetails()
8048
        obj.NodeId = NodeId.from_binary(data)
8049
        obj.IsDeleteModified = unpack_uatype('Boolean', data)
8050
        obj.StartTime = unpack_uatype('DateTime', data)
8051
        obj.EndTime = unpack_uatype('DateTime', data)
8052
        return obj
8053
8054 1
    def __str__(self):
8055
        return 'DeleteRawModifiedDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8056
               'IsDeleteModified:' + str(self.IsDeleteModified) + ', ' + \
8057
               'StartTime:' + str(self.StartTime) + ', ' + \
8058
               'EndTime:' + str(self.EndTime) + ')'
8059
8060 1
    __repr__ = __str__
8061
8062
8063 1
class DeleteAtTimeDetails(FrozenClass):
8064
    '''
8065
    :ivar NodeId:
8066
    :vartype NodeId: NodeId
8067
    :ivar ReqTimes:
8068
    :vartype ReqTimes: DateTime
8069
    '''
8070 1
    def __init__(self):
8071
        self.NodeId = NodeId()
8072
        self.ReqTimes = []
8073
        self._freeze()
8074
8075 1
    def to_binary(self):
8076
        packet = []
8077
        packet.append(self.NodeId.to_binary())
8078
        packet.append(struct.pack('<i', len(self.ReqTimes)))
8079
        for fieldname in self.ReqTimes:
8080
            packet.append(pack_uatype('DateTime', fieldname))
8081
        return b''.join(packet)
8082
8083 1
    @staticmethod
8084
    def from_binary(data):
8085
        obj = DeleteAtTimeDetails()
8086
        obj.NodeId = NodeId.from_binary(data)
8087
        obj.ReqTimes = unpack_uatype_array('DateTime', data)
8088
        return obj
8089
8090 1
    def __str__(self):
8091
        return 'DeleteAtTimeDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8092
               'ReqTimes:' + str(self.ReqTimes) + ')'
8093
8094 1
    __repr__ = __str__
8095
8096
8097 1
class DeleteEventDetails(FrozenClass):
8098
    '''
8099
    :ivar NodeId:
8100
    :vartype NodeId: NodeId
8101
    :ivar EventIds:
8102
    :vartype EventIds: ByteString
8103
    '''
8104 1
    def __init__(self):
8105
        self.NodeId = NodeId()
8106
        self.EventIds = []
8107
        self._freeze()
8108
8109 1
    def to_binary(self):
8110
        packet = []
8111
        packet.append(self.NodeId.to_binary())
8112
        packet.append(struct.pack('<i', len(self.EventIds)))
8113
        for fieldname in self.EventIds:
8114
            packet.append(pack_uatype('ByteString', fieldname))
8115
        return b''.join(packet)
8116
8117 1
    @staticmethod
8118
    def from_binary(data):
8119
        obj = DeleteEventDetails()
8120
        obj.NodeId = NodeId.from_binary(data)
8121
        obj.EventIds = unpack_uatype_array('ByteString', data)
8122
        return obj
8123
8124 1
    def __str__(self):
8125
        return 'DeleteEventDetails(' + 'NodeId:' + str(self.NodeId) + ', ' + \
8126
               'EventIds:' + str(self.EventIds) + ')'
8127
8128 1
    __repr__ = __str__
8129
8130
8131 1
class HistoryUpdateResult(FrozenClass):
8132
    '''
8133
    :ivar StatusCode:
8134
    :vartype StatusCode: StatusCode
8135
    :ivar OperationResults:
8136
    :vartype OperationResults: StatusCode
8137
    :ivar DiagnosticInfos:
8138
    :vartype DiagnosticInfos: DiagnosticInfo
8139
    '''
8140 1
    def __init__(self):
8141
        self.StatusCode = StatusCode()
8142
        self.OperationResults = []
8143
        self.DiagnosticInfos = []
8144
        self._freeze()
8145
8146 1
    def to_binary(self):
8147
        packet = []
8148
        packet.append(self.StatusCode.to_binary())
8149
        packet.append(struct.pack('<i', len(self.OperationResults)))
8150
        for fieldname in self.OperationResults:
8151
            packet.append(fieldname.to_binary())
8152
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8153
        for fieldname in self.DiagnosticInfos:
8154
            packet.append(fieldname.to_binary())
8155
        return b''.join(packet)
8156
8157 1
    @staticmethod
8158
    def from_binary(data):
8159
        obj = HistoryUpdateResult()
8160
        obj.StatusCode = StatusCode.from_binary(data)
8161
        length = struct.unpack('<i', data.read(4))[0]
8162
        if length != -1:
8163
            for _ in range(0, length):
8164
                obj.OperationResults.append(StatusCode.from_binary(data))
8165
        length = struct.unpack('<i', data.read(4))[0]
8166
        if length != -1:
8167
            for _ in range(0, length):
8168
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8169
        return obj
8170
8171 1
    def __str__(self):
8172
        return 'HistoryUpdateResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
8173
               'OperationResults:' + str(self.OperationResults) + ', ' + \
8174
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8175
8176 1
    __repr__ = __str__
8177
8178
8179 1
class HistoryUpdateParameters(FrozenClass):
8180
    '''
8181
    :ivar HistoryUpdateDetails:
8182
    :vartype HistoryUpdateDetails: ExtensionObject
8183
    '''
8184 1
    def __init__(self):
8185
        self.HistoryUpdateDetails = []
8186
        self._freeze()
8187
8188 1
    def to_binary(self):
8189
        packet = []
8190
        packet.append(struct.pack('<i', len(self.HistoryUpdateDetails)))
8191
        for fieldname in self.HistoryUpdateDetails:
8192
            packet.append(extensionobject_to_binary(fieldname))
8193
        return b''.join(packet)
8194
8195 1
    @staticmethod
8196
    def from_binary(data):
8197
        obj = HistoryUpdateParameters()
8198
        length = struct.unpack('<i', data.read(4))[0]
8199
        if length != -1:
8200
            for _ in range(0, length):
8201
                obj.HistoryUpdateDetails.append(extensionobject_from_binary(data))
8202
        return obj
8203
8204 1
    def __str__(self):
8205
        return 'HistoryUpdateParameters(' + 'HistoryUpdateDetails:' + str(self.HistoryUpdateDetails) + ')'
8206
8207 1
    __repr__ = __str__
8208
8209
8210 1
class HistoryUpdateRequest(FrozenClass):
8211
    '''
8212
    :ivar TypeId:
8213
    :vartype TypeId: NodeId
8214
    :ivar RequestHeader:
8215
    :vartype RequestHeader: RequestHeader
8216
    :ivar Parameters:
8217
    :vartype Parameters: HistoryUpdateParameters
8218
    '''
8219 1
    def __init__(self):
8220
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary)
8221
        self.RequestHeader = RequestHeader()
8222
        self.Parameters = HistoryUpdateParameters()
8223
        self._freeze()
8224
8225 1
    def to_binary(self):
8226
        packet = []
8227
        packet.append(self.TypeId.to_binary())
8228
        packet.append(self.RequestHeader.to_binary())
8229
        packet.append(self.Parameters.to_binary())
8230
        return b''.join(packet)
8231
8232 1
    @staticmethod
8233
    def from_binary(data):
8234
        obj = HistoryUpdateRequest()
8235
        obj.TypeId = NodeId.from_binary(data)
8236
        obj.RequestHeader = RequestHeader.from_binary(data)
8237
        obj.Parameters = HistoryUpdateParameters.from_binary(data)
8238
        return obj
8239
8240 1
    def __str__(self):
8241
        return 'HistoryUpdateRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8242
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
8243
               'Parameters:' + str(self.Parameters) + ')'
8244
8245 1
    __repr__ = __str__
8246
8247
8248 1
class HistoryUpdateResponse(FrozenClass):
8249
    '''
8250
    :ivar TypeId:
8251
    :vartype TypeId: NodeId
8252
    :ivar ResponseHeader:
8253
    :vartype ResponseHeader: ResponseHeader
8254
    :ivar Results:
8255
    :vartype Results: HistoryUpdateResult
8256
    :ivar DiagnosticInfos:
8257
    :vartype DiagnosticInfos: DiagnosticInfo
8258
    '''
8259 1
    def __init__(self):
8260
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary)
8261
        self.ResponseHeader = ResponseHeader()
8262
        self.Results = []
8263
        self.DiagnosticInfos = []
8264
        self._freeze()
8265
8266 1
    def to_binary(self):
8267
        packet = []
8268
        packet.append(self.TypeId.to_binary())
8269
        packet.append(self.ResponseHeader.to_binary())
8270
        packet.append(struct.pack('<i', len(self.Results)))
8271
        for fieldname in self.Results:
8272
            packet.append(fieldname.to_binary())
8273
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8274
        for fieldname in self.DiagnosticInfos:
8275
            packet.append(fieldname.to_binary())
8276
        return b''.join(packet)
8277
8278 1
    @staticmethod
8279
    def from_binary(data):
8280
        obj = HistoryUpdateResponse()
8281
        obj.TypeId = NodeId.from_binary(data)
8282
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8283
        length = struct.unpack('<i', data.read(4))[0]
8284
        if length != -1:
8285
            for _ in range(0, length):
8286
                obj.Results.append(HistoryUpdateResult.from_binary(data))
8287
        length = struct.unpack('<i', data.read(4))[0]
8288
        if length != -1:
8289
            for _ in range(0, length):
8290
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8291
        return obj
8292
8293 1
    def __str__(self):
8294
        return 'HistoryUpdateResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8295
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
8296
               'Results:' + str(self.Results) + ', ' + \
8297
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8298
8299 1
    __repr__ = __str__
8300
8301
8302 1
class CallMethodRequest(FrozenClass):
8303
    '''
8304
    :ivar ObjectId:
8305
    :vartype ObjectId: NodeId
8306
    :ivar MethodId:
8307
    :vartype MethodId: NodeId
8308
    :ivar InputArguments:
8309
    :vartype InputArguments: Variant
8310
    '''
8311 1
    def __init__(self):
8312 1
        self.ObjectId = NodeId()
8313 1
        self.MethodId = NodeId()
8314 1
        self.InputArguments = []
8315 1
        self._freeze()
8316
8317 1
    def to_binary(self):
8318 1
        packet = []
8319 1
        packet.append(self.ObjectId.to_binary())
8320 1
        packet.append(self.MethodId.to_binary())
8321 1
        packet.append(struct.pack('<i', len(self.InputArguments)))
8322 1
        for fieldname in self.InputArguments:
8323 1
            packet.append(fieldname.to_binary())
8324 1
        return b''.join(packet)
8325
8326 1
    @staticmethod
8327
    def from_binary(data):
8328 1
        obj = CallMethodRequest()
8329 1
        obj.ObjectId = NodeId.from_binary(data)
8330 1
        obj.MethodId = NodeId.from_binary(data)
8331 1
        length = struct.unpack('<i', data.read(4))[0]
8332 1
        if length != -1:
8333 1
            for _ in range(0, length):
8334 1
                obj.InputArguments.append(Variant.from_binary(data))
8335 1
        return obj
8336
8337 1
    def __str__(self):
8338 1
        return 'CallMethodRequest(' + 'ObjectId:' + str(self.ObjectId) + ', ' + \
8339
               'MethodId:' + str(self.MethodId) + ', ' + \
8340
               'InputArguments:' + str(self.InputArguments) + ')'
8341
8342 1
    __repr__ = __str__
8343
8344
8345 1
class CallMethodResult(FrozenClass):
8346
    '''
8347
    :ivar StatusCode:
8348
    :vartype StatusCode: StatusCode
8349
    :ivar InputArgumentResults:
8350
    :vartype InputArgumentResults: StatusCode
8351
    :ivar InputArgumentDiagnosticInfos:
8352
    :vartype InputArgumentDiagnosticInfos: DiagnosticInfo
8353
    :ivar OutputArguments:
8354
    :vartype OutputArguments: Variant
8355
    '''
8356 1
    def __init__(self):
8357 1
        self.StatusCode = StatusCode()
8358 1
        self.InputArgumentResults = []
8359 1
        self.InputArgumentDiagnosticInfos = []
8360 1
        self.OutputArguments = []
8361 1
        self._freeze()
8362
8363 1
    def to_binary(self):
8364 1
        packet = []
8365 1
        packet.append(self.StatusCode.to_binary())
8366 1
        packet.append(struct.pack('<i', len(self.InputArgumentResults)))
8367 1
        for fieldname in self.InputArgumentResults:
8368 1
            packet.append(fieldname.to_binary())
8369 1
        packet.append(struct.pack('<i', len(self.InputArgumentDiagnosticInfos)))
8370 1
        for fieldname in self.InputArgumentDiagnosticInfos:
8371
            packet.append(fieldname.to_binary())
8372 1
        packet.append(struct.pack('<i', len(self.OutputArguments)))
8373 1
        for fieldname in self.OutputArguments:
8374 1
            packet.append(fieldname.to_binary())
8375 1
        return b''.join(packet)
8376
8377 1
    @staticmethod
8378
    def from_binary(data):
8379 1
        obj = CallMethodResult()
8380 1
        obj.StatusCode = StatusCode.from_binary(data)
8381 1
        length = struct.unpack('<i', data.read(4))[0]
8382 1
        if length != -1:
8383 1
            for _ in range(0, length):
8384 1
                obj.InputArgumentResults.append(StatusCode.from_binary(data))
8385 1
        length = struct.unpack('<i', data.read(4))[0]
8386 1
        if length != -1:
8387 1
            for _ in range(0, length):
8388
                obj.InputArgumentDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8389 1
        length = struct.unpack('<i', data.read(4))[0]
8390 1
        if length != -1:
8391 1
            for _ in range(0, length):
8392 1
                obj.OutputArguments.append(Variant.from_binary(data))
8393 1
        return obj
8394
8395 1
    def __str__(self):
8396
        return 'CallMethodResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
8397
               'InputArgumentResults:' + str(self.InputArgumentResults) + ', ' + \
8398
               'InputArgumentDiagnosticInfos:' + str(self.InputArgumentDiagnosticInfos) + ', ' + \
8399
               'OutputArguments:' + str(self.OutputArguments) + ')'
8400
8401 1
    __repr__ = __str__
8402
8403
8404 1
class CallParameters(FrozenClass):
8405
    '''
8406
    :ivar MethodsToCall:
8407
    :vartype MethodsToCall: CallMethodRequest
8408
    '''
8409 1
    def __init__(self):
8410 1
        self.MethodsToCall = []
8411 1
        self._freeze()
8412
8413 1
    def to_binary(self):
8414 1
        packet = []
8415 1
        packet.append(struct.pack('<i', len(self.MethodsToCall)))
8416 1
        for fieldname in self.MethodsToCall:
8417 1
            packet.append(fieldname.to_binary())
8418 1
        return b''.join(packet)
8419
8420 1
    @staticmethod
8421
    def from_binary(data):
8422 1
        obj = CallParameters()
8423 1
        length = struct.unpack('<i', data.read(4))[0]
8424 1
        if length != -1:
8425 1
            for _ in range(0, length):
8426 1
                obj.MethodsToCall.append(CallMethodRequest.from_binary(data))
8427 1
        return obj
8428
8429 1
    def __str__(self):
8430
        return 'CallParameters(' + 'MethodsToCall:' + str(self.MethodsToCall) + ')'
8431
8432 1
    __repr__ = __str__
8433
8434
8435 1
class CallRequest(FrozenClass):
8436
    '''
8437
    :ivar TypeId:
8438
    :vartype TypeId: NodeId
8439
    :ivar RequestHeader:
8440
    :vartype RequestHeader: RequestHeader
8441
    :ivar Parameters:
8442
    :vartype Parameters: CallParameters
8443
    '''
8444 1
    def __init__(self):
8445 1
        self.TypeId = FourByteNodeId(ObjectIds.CallRequest_Encoding_DefaultBinary)
8446 1
        self.RequestHeader = RequestHeader()
8447 1
        self.Parameters = CallParameters()
8448 1
        self._freeze()
8449
8450 1
    def to_binary(self):
8451 1
        packet = []
8452 1
        packet.append(self.TypeId.to_binary())
8453 1
        packet.append(self.RequestHeader.to_binary())
8454 1
        packet.append(self.Parameters.to_binary())
8455 1
        return b''.join(packet)
8456
8457 1
    @staticmethod
8458
    def from_binary(data):
8459
        obj = CallRequest()
8460
        obj.TypeId = NodeId.from_binary(data)
8461
        obj.RequestHeader = RequestHeader.from_binary(data)
8462
        obj.Parameters = CallParameters.from_binary(data)
8463
        return obj
8464
8465 1
    def __str__(self):
8466
        return 'CallRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8467
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
8468
               'Parameters:' + str(self.Parameters) + ')'
8469
8470 1
    __repr__ = __str__
8471
8472
8473 1
class CallResponse(FrozenClass):
8474
    '''
8475
    :ivar TypeId:
8476
    :vartype TypeId: NodeId
8477
    :ivar ResponseHeader:
8478
    :vartype ResponseHeader: ResponseHeader
8479
    :ivar Results:
8480
    :vartype Results: CallMethodResult
8481
    :ivar DiagnosticInfos:
8482
    :vartype DiagnosticInfos: DiagnosticInfo
8483
    '''
8484 1
    def __init__(self):
8485 1
        self.TypeId = FourByteNodeId(ObjectIds.CallResponse_Encoding_DefaultBinary)
8486 1
        self.ResponseHeader = ResponseHeader()
8487 1
        self.Results = []
8488 1
        self.DiagnosticInfos = []
8489 1
        self._freeze()
8490
8491 1
    def to_binary(self):
8492 1
        packet = []
8493 1
        packet.append(self.TypeId.to_binary())
8494 1
        packet.append(self.ResponseHeader.to_binary())
8495 1
        packet.append(struct.pack('<i', len(self.Results)))
8496 1
        for fieldname in self.Results:
8497 1
            packet.append(fieldname.to_binary())
8498 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8499 1
        for fieldname in self.DiagnosticInfos:
8500
            packet.append(fieldname.to_binary())
8501 1
        return b''.join(packet)
8502
8503 1
    @staticmethod
8504
    def from_binary(data):
8505 1
        obj = CallResponse()
8506 1
        obj.TypeId = NodeId.from_binary(data)
8507 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8508 1
        length = struct.unpack('<i', data.read(4))[0]
8509 1
        if length != -1:
8510 1
            for _ in range(0, length):
8511 1
                obj.Results.append(CallMethodResult.from_binary(data))
8512 1
        length = struct.unpack('<i', data.read(4))[0]
8513 1
        if length != -1:
8514 1
            for _ in range(0, length):
8515
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8516 1
        return obj
8517
8518 1
    def __str__(self):
8519
        return 'CallResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
8520
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
8521
               'Results:' + str(self.Results) + ', ' + \
8522
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8523
8524 1
    __repr__ = __str__
8525
8526
8527 1
class MonitoringFilter(FrozenClass):
8528
    '''
8529
    '''
8530 1
    def __init__(self):
8531
        self._freeze()
8532
8533 1
    def to_binary(self):
8534
        packet = []
8535
        return b''.join(packet)
8536
8537 1
    @staticmethod
8538
    def from_binary(data):
8539
        obj = MonitoringFilter()
8540
        return obj
8541
8542 1
    def __str__(self):
8543
        return 'MonitoringFilter(' +  + ')'
8544
8545 1
    __repr__ = __str__
8546
8547
8548 1
class DataChangeFilter(FrozenClass):
8549
    '''
8550
    :ivar Trigger:
8551
    :vartype Trigger: DataChangeTrigger
8552
    :ivar DeadbandType:
8553
    :vartype DeadbandType: UInt32
8554
    :ivar DeadbandValue:
8555
    :vartype DeadbandValue: Double
8556
    '''
8557 1
    def __init__(self):
8558
        self.Trigger = 0
8559
        self.DeadbandType = 0
8560
        self.DeadbandValue = 0
8561
        self._freeze()
8562
8563 1
    def to_binary(self):
8564
        packet = []
8565
        packet.append(pack_uatype('UInt32', self.Trigger))
8566
        packet.append(pack_uatype('UInt32', self.DeadbandType))
8567
        packet.append(pack_uatype('Double', self.DeadbandValue))
8568
        return b''.join(packet)
8569
8570 1
    @staticmethod
8571
    def from_binary(data):
8572
        obj = DataChangeFilter()
8573
        obj.Trigger = unpack_uatype('UInt32', data)
8574
        obj.DeadbandType = unpack_uatype('UInt32', data)
8575
        obj.DeadbandValue = unpack_uatype('Double', data)
8576
        return obj
8577
8578 1
    def __str__(self):
8579
        return 'DataChangeFilter(' + 'Trigger:' + str(self.Trigger) + ', ' + \
8580
               'DeadbandType:' + str(self.DeadbandType) + ', ' + \
8581
               'DeadbandValue:' + str(self.DeadbandValue) + ')'
8582
8583 1
    __repr__ = __str__
8584
8585
8586 1
class EventFilter(FrozenClass):
8587
    '''
8588
    :ivar SelectClauses:
8589
    :vartype SelectClauses: SimpleAttributeOperand
8590
    :ivar WhereClause:
8591
    :vartype WhereClause: ContentFilter
8592
    '''
8593 1
    def __init__(self):
8594 1
        self.SelectClauses = []
8595 1
        self.WhereClause = ContentFilter()
8596 1
        self._freeze()
8597
8598 1
    def to_binary(self):
8599 1
        packet = []
8600 1
        packet.append(struct.pack('<i', len(self.SelectClauses)))
8601 1
        for fieldname in self.SelectClauses:
8602 1
            packet.append(fieldname.to_binary())
8603 1
        packet.append(self.WhereClause.to_binary())
8604 1
        return b''.join(packet)
8605
8606 1
    @staticmethod
8607
    def from_binary(data):
8608 1
        obj = EventFilter()
8609 1
        length = struct.unpack('<i', data.read(4))[0]
8610 1
        if length != -1:
8611 1
            for _ in range(0, length):
8612 1
                obj.SelectClauses.append(SimpleAttributeOperand.from_binary(data))
8613 1
        obj.WhereClause = ContentFilter.from_binary(data)
8614 1
        return obj
8615
8616 1
    def __str__(self):
8617
        return 'EventFilter(' + 'SelectClauses:' + str(self.SelectClauses) + ', ' + \
8618
               'WhereClause:' + str(self.WhereClause) + ')'
8619
8620 1
    __repr__ = __str__
8621
8622
8623 1
class AggregateConfiguration(FrozenClass):
8624
    '''
8625
    :ivar UseServerCapabilitiesDefaults:
8626
    :vartype UseServerCapabilitiesDefaults: Boolean
8627
    :ivar TreatUncertainAsBad:
8628
    :vartype TreatUncertainAsBad: Boolean
8629
    :ivar PercentDataBad:
8630
    :vartype PercentDataBad: Byte
8631
    :ivar PercentDataGood:
8632
    :vartype PercentDataGood: Byte
8633
    :ivar UseSlopedExtrapolation:
8634
    :vartype UseSlopedExtrapolation: Boolean
8635
    '''
8636 1
    def __init__(self):
8637
        self.UseServerCapabilitiesDefaults = True
8638
        self.TreatUncertainAsBad = True
8639
        self.PercentDataBad = 0
8640
        self.PercentDataGood = 0
8641
        self.UseSlopedExtrapolation = True
8642
        self._freeze()
8643
8644 1
    def to_binary(self):
8645
        packet = []
8646
        packet.append(pack_uatype('Boolean', self.UseServerCapabilitiesDefaults))
8647
        packet.append(pack_uatype('Boolean', self.TreatUncertainAsBad))
8648
        packet.append(pack_uatype('Byte', self.PercentDataBad))
8649
        packet.append(pack_uatype('Byte', self.PercentDataGood))
8650
        packet.append(pack_uatype('Boolean', self.UseSlopedExtrapolation))
8651
        return b''.join(packet)
8652
8653 1
    @staticmethod
8654
    def from_binary(data):
8655
        obj = AggregateConfiguration()
8656
        obj.UseServerCapabilitiesDefaults = unpack_uatype('Boolean', data)
8657
        obj.TreatUncertainAsBad = unpack_uatype('Boolean', data)
8658
        obj.PercentDataBad = unpack_uatype('Byte', data)
8659
        obj.PercentDataGood = unpack_uatype('Byte', data)
8660
        obj.UseSlopedExtrapolation = unpack_uatype('Boolean', data)
8661
        return obj
8662
8663 1
    def __str__(self):
8664
        return 'AggregateConfiguration(' + 'UseServerCapabilitiesDefaults:' + str(self.UseServerCapabilitiesDefaults) + ', ' + \
8665
               'TreatUncertainAsBad:' + str(self.TreatUncertainAsBad) + ', ' + \
8666
               'PercentDataBad:' + str(self.PercentDataBad) + ', ' + \
8667
               'PercentDataGood:' + str(self.PercentDataGood) + ', ' + \
8668
               'UseSlopedExtrapolation:' + str(self.UseSlopedExtrapolation) + ')'
8669
8670 1
    __repr__ = __str__
8671
8672
8673 1
class AggregateFilter(FrozenClass):
8674
    '''
8675
    :ivar StartTime:
8676
    :vartype StartTime: DateTime
8677
    :ivar AggregateType:
8678
    :vartype AggregateType: NodeId
8679
    :ivar ProcessingInterval:
8680
    :vartype ProcessingInterval: Double
8681
    :ivar AggregateConfiguration:
8682
    :vartype AggregateConfiguration: AggregateConfiguration
8683
    '''
8684 1
    def __init__(self):
8685
        self.StartTime = datetime.now()
8686
        self.AggregateType = NodeId()
8687
        self.ProcessingInterval = 0
8688
        self.AggregateConfiguration = AggregateConfiguration()
8689
        self._freeze()
8690
8691 1
    def to_binary(self):
8692
        packet = []
8693
        packet.append(pack_uatype('DateTime', self.StartTime))
8694
        packet.append(self.AggregateType.to_binary())
8695
        packet.append(pack_uatype('Double', self.ProcessingInterval))
8696
        packet.append(self.AggregateConfiguration.to_binary())
8697
        return b''.join(packet)
8698
8699 1
    @staticmethod
8700
    def from_binary(data):
8701
        obj = AggregateFilter()
8702
        obj.StartTime = unpack_uatype('DateTime', data)
8703
        obj.AggregateType = NodeId.from_binary(data)
8704
        obj.ProcessingInterval = unpack_uatype('Double', data)
8705
        obj.AggregateConfiguration = AggregateConfiguration.from_binary(data)
8706
        return obj
8707
8708 1
    def __str__(self):
8709
        return 'AggregateFilter(' + 'StartTime:' + str(self.StartTime) + ', ' + \
8710
               'AggregateType:' + str(self.AggregateType) + ', ' + \
8711
               'ProcessingInterval:' + str(self.ProcessingInterval) + ', ' + \
8712
               'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
8713
8714 1
    __repr__ = __str__
8715
8716
8717 1
class MonitoringFilterResult(FrozenClass):
8718
    '''
8719
    '''
8720 1
    def __init__(self):
8721
        self._freeze()
8722
8723 1
    def to_binary(self):
8724
        packet = []
8725
        return b''.join(packet)
8726
8727 1
    @staticmethod
8728
    def from_binary(data):
8729
        obj = MonitoringFilterResult()
8730
        return obj
8731
8732 1
    def __str__(self):
8733
        return 'MonitoringFilterResult(' +  + ')'
8734
8735 1
    __repr__ = __str__
8736
8737
8738 1
class EventFilterResult(FrozenClass):
8739
    '''
8740
    :ivar SelectClauseResults:
8741
    :vartype SelectClauseResults: StatusCode
8742
    :ivar SelectClauseDiagnosticInfos:
8743
    :vartype SelectClauseDiagnosticInfos: DiagnosticInfo
8744
    :ivar WhereClauseResult:
8745
    :vartype WhereClauseResult: ContentFilterResult
8746
    '''
8747 1
    def __init__(self):
8748
        self.SelectClauseResults = []
8749
        self.SelectClauseDiagnosticInfos = []
8750
        self.WhereClauseResult = ContentFilterResult()
8751
        self._freeze()
8752
8753 1
    def to_binary(self):
8754
        packet = []
8755
        packet.append(struct.pack('<i', len(self.SelectClauseResults)))
8756
        for fieldname in self.SelectClauseResults:
8757
            packet.append(fieldname.to_binary())
8758
        packet.append(struct.pack('<i', len(self.SelectClauseDiagnosticInfos)))
8759
        for fieldname in self.SelectClauseDiagnosticInfos:
8760
            packet.append(fieldname.to_binary())
8761
        packet.append(self.WhereClauseResult.to_binary())
8762
        return b''.join(packet)
8763
8764 1
    @staticmethod
8765
    def from_binary(data):
8766
        obj = EventFilterResult()
8767
        length = struct.unpack('<i', data.read(4))[0]
8768
        if length != -1:
8769
            for _ in range(0, length):
8770
                obj.SelectClauseResults.append(StatusCode.from_binary(data))
8771
        length = struct.unpack('<i', data.read(4))[0]
8772
        if length != -1:
8773
            for _ in range(0, length):
8774
                obj.SelectClauseDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8775
        obj.WhereClauseResult = ContentFilterResult.from_binary(data)
8776
        return obj
8777
8778 1
    def __str__(self):
8779
        return 'EventFilterResult(' + 'SelectClauseResults:' + str(self.SelectClauseResults) + ', ' + \
8780
               'SelectClauseDiagnosticInfos:' + str(self.SelectClauseDiagnosticInfos) + ', ' + \
8781
               'WhereClauseResult:' + str(self.WhereClauseResult) + ')'
8782
8783 1
    __repr__ = __str__
8784
8785
8786 1
class AggregateFilterResult(FrozenClass):
8787
    '''
8788
    :ivar RevisedStartTime:
8789
    :vartype RevisedStartTime: DateTime
8790
    :ivar RevisedProcessingInterval:
8791
    :vartype RevisedProcessingInterval: Double
8792
    :ivar RevisedAggregateConfiguration:
8793
    :vartype RevisedAggregateConfiguration: AggregateConfiguration
8794
    '''
8795 1
    def __init__(self):
8796
        self.RevisedStartTime = datetime.now()
8797
        self.RevisedProcessingInterval = 0
8798
        self.RevisedAggregateConfiguration = AggregateConfiguration()
8799
        self._freeze()
8800
8801 1
    def to_binary(self):
8802
        packet = []
8803
        packet.append(pack_uatype('DateTime', self.RevisedStartTime))
8804
        packet.append(pack_uatype('Double', self.RevisedProcessingInterval))
8805
        packet.append(self.RevisedAggregateConfiguration.to_binary())
8806
        return b''.join(packet)
8807
8808 1
    @staticmethod
8809
    def from_binary(data):
8810
        obj = AggregateFilterResult()
8811
        obj.RevisedStartTime = unpack_uatype('DateTime', data)
8812
        obj.RevisedProcessingInterval = unpack_uatype('Double', data)
8813
        obj.RevisedAggregateConfiguration = AggregateConfiguration.from_binary(data)
8814
        return obj
8815
8816 1
    def __str__(self):
8817
        return 'AggregateFilterResult(' + 'RevisedStartTime:' + str(self.RevisedStartTime) + ', ' + \
8818
               'RevisedProcessingInterval:' + str(self.RevisedProcessingInterval) + ', ' + \
8819
               'RevisedAggregateConfiguration:' + str(self.RevisedAggregateConfiguration) + ')'
8820
8821 1
    __repr__ = __str__
8822
8823
8824 1
class MonitoringParameters(FrozenClass):
8825
    '''
8826
    :ivar ClientHandle:
8827
    :vartype ClientHandle: UInt32
8828
    :ivar SamplingInterval:
8829
    :vartype SamplingInterval: Double
8830
    :ivar Filter:
8831
    :vartype Filter: ExtensionObject
8832
    :ivar QueueSize:
8833
    :vartype QueueSize: UInt32
8834
    :ivar DiscardOldest:
8835
    :vartype DiscardOldest: Boolean
8836
    '''
8837 1
    def __init__(self):
8838 1
        self.ClientHandle = 0
8839 1
        self.SamplingInterval = 0
8840 1
        self.Filter = None
8841 1
        self.QueueSize = 0
8842 1
        self.DiscardOldest = True
8843 1
        self._freeze()
8844
8845 1
    def to_binary(self):
8846 1
        packet = []
8847 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
8848 1
        packet.append(pack_uatype('Double', self.SamplingInterval))
8849 1
        packet.append(extensionobject_to_binary(self.Filter))
8850 1
        packet.append(pack_uatype('UInt32', self.QueueSize))
8851 1
        packet.append(pack_uatype('Boolean', self.DiscardOldest))
8852 1
        return b''.join(packet)
8853
8854 1
    @staticmethod
8855
    def from_binary(data):
8856 1
        obj = MonitoringParameters()
8857 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
8858 1
        obj.SamplingInterval = unpack_uatype('Double', data)
8859 1
        obj.Filter = extensionobject_from_binary(data)
8860 1
        obj.QueueSize = unpack_uatype('UInt32', data)
8861 1
        obj.DiscardOldest = unpack_uatype('Boolean', data)
8862 1
        return obj
8863
8864 1
    def __str__(self):
8865
        return 'MonitoringParameters(' + 'ClientHandle:' + str(self.ClientHandle) + ', ' + \
8866
               'SamplingInterval:' + str(self.SamplingInterval) + ', ' + \
8867
               'Filter:' + str(self.Filter) + ', ' + \
8868
               'QueueSize:' + str(self.QueueSize) + ', ' + \
8869
               'DiscardOldest:' + str(self.DiscardOldest) + ')'
8870
8871 1
    __repr__ = __str__
8872
8873
8874 1
class MonitoredItemCreateRequest(FrozenClass):
8875
    '''
8876
    :ivar ItemToMonitor:
8877
    :vartype ItemToMonitor: ReadValueId
8878
    :ivar MonitoringMode:
8879
    :vartype MonitoringMode: MonitoringMode
8880
    :ivar RequestedParameters:
8881
    :vartype RequestedParameters: MonitoringParameters
8882
    '''
8883 1
    def __init__(self):
8884 1
        self.ItemToMonitor = ReadValueId()
8885 1
        self.MonitoringMode = 0
8886 1
        self.RequestedParameters = MonitoringParameters()
8887 1
        self._freeze()
8888
8889 1
    def to_binary(self):
8890 1
        packet = []
8891 1
        packet.append(self.ItemToMonitor.to_binary())
8892 1
        packet.append(pack_uatype('UInt32', self.MonitoringMode))
8893 1
        packet.append(self.RequestedParameters.to_binary())
8894 1
        return b''.join(packet)
8895
8896 1
    @staticmethod
8897
    def from_binary(data):
8898 1
        obj = MonitoredItemCreateRequest()
8899 1
        obj.ItemToMonitor = ReadValueId.from_binary(data)
8900 1
        obj.MonitoringMode = unpack_uatype('UInt32', data)
8901 1
        obj.RequestedParameters = MonitoringParameters.from_binary(data)
8902 1
        return obj
8903
8904 1
    def __str__(self):
8905
        return 'MonitoredItemCreateRequest(' + 'ItemToMonitor:' + str(self.ItemToMonitor) + ', ' + \
8906
               'MonitoringMode:' + str(self.MonitoringMode) + ', ' + \
8907
               'RequestedParameters:' + str(self.RequestedParameters) + ')'
8908
8909 1
    __repr__ = __str__
8910
8911
8912 1
class MonitoredItemCreateResult(FrozenClass):
8913
    '''
8914
    :ivar StatusCode:
8915
    :vartype StatusCode: StatusCode
8916
    :ivar MonitoredItemId:
8917
    :vartype MonitoredItemId: UInt32
8918
    :ivar RevisedSamplingInterval:
8919
    :vartype RevisedSamplingInterval: Double
8920
    :ivar RevisedQueueSize:
8921
    :vartype RevisedQueueSize: UInt32
8922
    :ivar FilterResult:
8923
    :vartype FilterResult: ExtensionObject
8924
    '''
8925 1
    def __init__(self):
8926 1
        self.StatusCode = StatusCode()
8927 1
        self.MonitoredItemId = 0
8928 1
        self.RevisedSamplingInterval = 0
8929 1
        self.RevisedQueueSize = 0
8930 1
        self.FilterResult = None
8931 1
        self._freeze()
8932
8933 1
    def to_binary(self):
8934 1
        packet = []
8935 1
        packet.append(self.StatusCode.to_binary())
8936 1
        packet.append(pack_uatype('UInt32', self.MonitoredItemId))
8937 1
        packet.append(pack_uatype('Double', self.RevisedSamplingInterval))
8938 1
        packet.append(pack_uatype('UInt32', self.RevisedQueueSize))
8939 1
        packet.append(extensionobject_to_binary(self.FilterResult))
8940 1
        return b''.join(packet)
8941
8942 1
    @staticmethod
8943
    def from_binary(data):
8944 1
        obj = MonitoredItemCreateResult()
8945 1
        obj.StatusCode = StatusCode.from_binary(data)
8946 1
        obj.MonitoredItemId = unpack_uatype('UInt32', data)
8947 1
        obj.RevisedSamplingInterval = unpack_uatype('Double', data)
8948 1
        obj.RevisedQueueSize = unpack_uatype('UInt32', data)
8949 1
        obj.FilterResult = extensionobject_from_binary(data)
8950 1
        return obj
8951
8952 1
    def __str__(self):
8953
        return 'MonitoredItemCreateResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
8954
               'MonitoredItemId:' + str(self.MonitoredItemId) + ', ' + \
8955
               'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', ' + \
8956
               'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', ' + \
8957
               'FilterResult:' + str(self.FilterResult) + ')'
8958
8959 1
    __repr__ = __str__
8960
8961
8962 1
class CreateMonitoredItemsParameters(FrozenClass):
8963
    '''
8964
    :ivar SubscriptionId:
8965
    :vartype SubscriptionId: UInt32
8966
    :ivar TimestampsToReturn:
8967
    :vartype TimestampsToReturn: TimestampsToReturn
8968
    :ivar ItemsToCreate:
8969
    :vartype ItemsToCreate: MonitoredItemCreateRequest
8970
    '''
8971 1
    def __init__(self):
8972 1
        self.SubscriptionId = 0
8973 1
        self.TimestampsToReturn = 0
8974 1
        self.ItemsToCreate = []
8975 1
        self._freeze()
8976
8977 1
    def to_binary(self):
8978 1
        packet = []
8979 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
8980 1
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
8981 1
        packet.append(struct.pack('<i', len(self.ItemsToCreate)))
8982 1
        for fieldname in self.ItemsToCreate:
8983 1
            packet.append(fieldname.to_binary())
8984 1
        return b''.join(packet)
8985
8986 1
    @staticmethod
8987
    def from_binary(data):
8988 1
        obj = CreateMonitoredItemsParameters()
8989 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
8990 1
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
8991 1
        length = struct.unpack('<i', data.read(4))[0]
8992 1
        if length != -1:
8993 1
            for _ in range(0, length):
8994 1
                obj.ItemsToCreate.append(MonitoredItemCreateRequest.from_binary(data))
8995 1
        return obj
8996
8997 1
    def __str__(self):
8998
        return 'CreateMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
8999
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
9000
               'ItemsToCreate:' + str(self.ItemsToCreate) + ')'
9001
9002 1
    __repr__ = __str__
9003
9004
9005 1
class CreateMonitoredItemsRequest(FrozenClass):
9006
    '''
9007
    :ivar TypeId:
9008
    :vartype TypeId: NodeId
9009
    :ivar RequestHeader:
9010
    :vartype RequestHeader: RequestHeader
9011
    :ivar Parameters:
9012
    :vartype Parameters: CreateMonitoredItemsParameters
9013
    '''
9014 1
    def __init__(self):
9015 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary)
9016 1
        self.RequestHeader = RequestHeader()
9017 1
        self.Parameters = CreateMonitoredItemsParameters()
9018 1
        self._freeze()
9019
9020 1
    def to_binary(self):
9021 1
        packet = []
9022 1
        packet.append(self.TypeId.to_binary())
9023 1
        packet.append(self.RequestHeader.to_binary())
9024 1
        packet.append(self.Parameters.to_binary())
9025 1
        return b''.join(packet)
9026
9027 1
    @staticmethod
9028
    def from_binary(data):
9029
        obj = CreateMonitoredItemsRequest()
9030
        obj.TypeId = NodeId.from_binary(data)
9031
        obj.RequestHeader = RequestHeader.from_binary(data)
9032
        obj.Parameters = CreateMonitoredItemsParameters.from_binary(data)
9033
        return obj
9034
9035 1
    def __str__(self):
9036
        return 'CreateMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9037
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9038
               'Parameters:' + str(self.Parameters) + ')'
9039
9040 1
    __repr__ = __str__
9041
9042
9043 1
class CreateMonitoredItemsResponse(FrozenClass):
9044
    '''
9045
    :ivar TypeId:
9046
    :vartype TypeId: NodeId
9047
    :ivar ResponseHeader:
9048
    :vartype ResponseHeader: ResponseHeader
9049
    :ivar Results:
9050
    :vartype Results: MonitoredItemCreateResult
9051
    :ivar DiagnosticInfos:
9052
    :vartype DiagnosticInfos: DiagnosticInfo
9053
    '''
9054 1
    def __init__(self):
9055 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary)
9056 1
        self.ResponseHeader = ResponseHeader()
9057 1
        self.Results = []
9058 1
        self.DiagnosticInfos = []
9059 1
        self._freeze()
9060
9061 1
    def to_binary(self):
9062 1
        packet = []
9063 1
        packet.append(self.TypeId.to_binary())
9064 1
        packet.append(self.ResponseHeader.to_binary())
9065 1
        packet.append(struct.pack('<i', len(self.Results)))
9066 1
        for fieldname in self.Results:
9067 1
            packet.append(fieldname.to_binary())
9068 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9069 1
        for fieldname in self.DiagnosticInfos:
9070
            packet.append(fieldname.to_binary())
9071 1
        return b''.join(packet)
9072
9073 1
    @staticmethod
9074
    def from_binary(data):
9075 1
        obj = CreateMonitoredItemsResponse()
9076 1
        obj.TypeId = NodeId.from_binary(data)
9077 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9078 1
        length = struct.unpack('<i', data.read(4))[0]
9079 1
        if length != -1:
9080 1
            for _ in range(0, length):
9081 1
                obj.Results.append(MonitoredItemCreateResult.from_binary(data))
9082 1
        length = struct.unpack('<i', data.read(4))[0]
9083 1
        if length != -1:
9084 1
            for _ in range(0, length):
9085
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9086 1
        return obj
9087
9088 1
    def __str__(self):
9089
        return 'CreateMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9090
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9091
               'Results:' + str(self.Results) + ', ' + \
9092
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9093
9094 1
    __repr__ = __str__
9095
9096
9097 1
class MonitoredItemModifyRequest(FrozenClass):
9098
    '''
9099
    :ivar MonitoredItemId:
9100
    :vartype MonitoredItemId: UInt32
9101
    :ivar RequestedParameters:
9102
    :vartype RequestedParameters: MonitoringParameters
9103
    '''
9104 1
    def __init__(self):
9105
        self.MonitoredItemId = 0
9106
        self.RequestedParameters = MonitoringParameters()
9107
        self._freeze()
9108
9109 1
    def to_binary(self):
9110
        packet = []
9111
        packet.append(pack_uatype('UInt32', self.MonitoredItemId))
9112
        packet.append(self.RequestedParameters.to_binary())
9113
        return b''.join(packet)
9114
9115 1
    @staticmethod
9116
    def from_binary(data):
9117
        obj = MonitoredItemModifyRequest()
9118
        obj.MonitoredItemId = unpack_uatype('UInt32', data)
9119
        obj.RequestedParameters = MonitoringParameters.from_binary(data)
9120
        return obj
9121
9122 1
    def __str__(self):
9123
        return 'MonitoredItemModifyRequest(' + 'MonitoredItemId:' + str(self.MonitoredItemId) + ', ' + \
9124
               'RequestedParameters:' + str(self.RequestedParameters) + ')'
9125
9126 1
    __repr__ = __str__
9127
9128
9129 1
class MonitoredItemModifyResult(FrozenClass):
9130
    '''
9131
    :ivar StatusCode:
9132
    :vartype StatusCode: StatusCode
9133
    :ivar RevisedSamplingInterval:
9134
    :vartype RevisedSamplingInterval: Double
9135
    :ivar RevisedQueueSize:
9136
    :vartype RevisedQueueSize: UInt32
9137
    :ivar FilterResult:
9138
    :vartype FilterResult: ExtensionObject
9139
    '''
9140 1
    def __init__(self):
9141
        self.StatusCode = StatusCode()
9142
        self.RevisedSamplingInterval = 0
9143
        self.RevisedQueueSize = 0
9144
        self.FilterResult = None
9145
        self._freeze()
9146
9147 1
    def to_binary(self):
9148
        packet = []
9149
        packet.append(self.StatusCode.to_binary())
9150
        packet.append(pack_uatype('Double', self.RevisedSamplingInterval))
9151
        packet.append(pack_uatype('UInt32', self.RevisedQueueSize))
9152
        packet.append(extensionobject_to_binary(self.FilterResult))
9153
        return b''.join(packet)
9154
9155 1
    @staticmethod
9156
    def from_binary(data):
9157
        obj = MonitoredItemModifyResult()
9158
        obj.StatusCode = StatusCode.from_binary(data)
9159
        obj.RevisedSamplingInterval = unpack_uatype('Double', data)
9160
        obj.RevisedQueueSize = unpack_uatype('UInt32', data)
9161
        obj.FilterResult = extensionobject_from_binary(data)
9162
        return obj
9163
9164 1
    def __str__(self):
9165
        return 'MonitoredItemModifyResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
9166
               'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', ' + \
9167
               'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', ' + \
9168
               'FilterResult:' + str(self.FilterResult) + ')'
9169
9170 1
    __repr__ = __str__
9171
9172
9173 1
class ModifyMonitoredItemsParameters(FrozenClass):
9174
    '''
9175
    :ivar SubscriptionId:
9176
    :vartype SubscriptionId: UInt32
9177
    :ivar TimestampsToReturn:
9178
    :vartype TimestampsToReturn: TimestampsToReturn
9179
    :ivar ItemsToModify:
9180
    :vartype ItemsToModify: MonitoredItemModifyRequest
9181
    '''
9182 1
    def __init__(self):
9183
        self.SubscriptionId = 0
9184
        self.TimestampsToReturn = 0
9185
        self.ItemsToModify = []
9186
        self._freeze()
9187
9188 1
    def to_binary(self):
9189
        packet = []
9190
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9191
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
9192
        packet.append(struct.pack('<i', len(self.ItemsToModify)))
9193
        for fieldname in self.ItemsToModify:
9194
            packet.append(fieldname.to_binary())
9195
        return b''.join(packet)
9196
9197 1
    @staticmethod
9198
    def from_binary(data):
9199
        obj = ModifyMonitoredItemsParameters()
9200
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9201
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
9202
        length = struct.unpack('<i', data.read(4))[0]
9203
        if length != -1:
9204
            for _ in range(0, length):
9205
                obj.ItemsToModify.append(MonitoredItemModifyRequest.from_binary(data))
9206
        return obj
9207
9208 1
    def __str__(self):
9209
        return 'ModifyMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
9210
               'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', ' + \
9211
               'ItemsToModify:' + str(self.ItemsToModify) + ')'
9212
9213 1
    __repr__ = __str__
9214
9215
9216 1
class ModifyMonitoredItemsRequest(FrozenClass):
9217
    '''
9218
    :ivar TypeId:
9219
    :vartype TypeId: NodeId
9220
    :ivar RequestHeader:
9221
    :vartype RequestHeader: RequestHeader
9222
    :ivar Parameters:
9223
    :vartype Parameters: ModifyMonitoredItemsParameters
9224
    '''
9225 1
    def __init__(self):
9226
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary)
9227
        self.RequestHeader = RequestHeader()
9228
        self.Parameters = ModifyMonitoredItemsParameters()
9229
        self._freeze()
9230
9231 1
    def to_binary(self):
9232
        packet = []
9233
        packet.append(self.TypeId.to_binary())
9234
        packet.append(self.RequestHeader.to_binary())
9235
        packet.append(self.Parameters.to_binary())
9236
        return b''.join(packet)
9237
9238 1
    @staticmethod
9239
    def from_binary(data):
9240
        obj = ModifyMonitoredItemsRequest()
9241
        obj.TypeId = NodeId.from_binary(data)
9242
        obj.RequestHeader = RequestHeader.from_binary(data)
9243
        obj.Parameters = ModifyMonitoredItemsParameters.from_binary(data)
9244
        return obj
9245
9246 1
    def __str__(self):
9247
        return 'ModifyMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9248
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9249
               'Parameters:' + str(self.Parameters) + ')'
9250
9251 1
    __repr__ = __str__
9252
9253
9254 1
class ModifyMonitoredItemsResponse(FrozenClass):
9255
    '''
9256
    :ivar TypeId:
9257
    :vartype TypeId: NodeId
9258
    :ivar ResponseHeader:
9259
    :vartype ResponseHeader: ResponseHeader
9260
    :ivar Results:
9261
    :vartype Results: MonitoredItemModifyResult
9262
    :ivar DiagnosticInfos:
9263
    :vartype DiagnosticInfos: DiagnosticInfo
9264
    '''
9265 1
    def __init__(self):
9266
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary)
9267
        self.ResponseHeader = ResponseHeader()
9268
        self.Results = []
9269
        self.DiagnosticInfos = []
9270
        self._freeze()
9271
9272 1
    def to_binary(self):
9273
        packet = []
9274
        packet.append(self.TypeId.to_binary())
9275
        packet.append(self.ResponseHeader.to_binary())
9276
        packet.append(struct.pack('<i', len(self.Results)))
9277
        for fieldname in self.Results:
9278
            packet.append(fieldname.to_binary())
9279
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9280
        for fieldname in self.DiagnosticInfos:
9281
            packet.append(fieldname.to_binary())
9282
        return b''.join(packet)
9283
9284 1
    @staticmethod
9285
    def from_binary(data):
9286
        obj = ModifyMonitoredItemsResponse()
9287
        obj.TypeId = NodeId.from_binary(data)
9288
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9289
        length = struct.unpack('<i', data.read(4))[0]
9290
        if length != -1:
9291
            for _ in range(0, length):
9292
                obj.Results.append(MonitoredItemModifyResult.from_binary(data))
9293
        length = struct.unpack('<i', data.read(4))[0]
9294
        if length != -1:
9295
            for _ in range(0, length):
9296
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9297
        return obj
9298
9299 1
    def __str__(self):
9300
        return 'ModifyMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9301
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9302
               'Results:' + str(self.Results) + ', ' + \
9303
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9304
9305 1
    __repr__ = __str__
9306
9307
9308 1
class SetMonitoringModeParameters(FrozenClass):
9309
    '''
9310
    :ivar SubscriptionId:
9311
    :vartype SubscriptionId: UInt32
9312
    :ivar MonitoringMode:
9313
    :vartype MonitoringMode: MonitoringMode
9314
    :ivar MonitoredItemIds:
9315
    :vartype MonitoredItemIds: UInt32
9316
    '''
9317 1
    def __init__(self):
9318
        self.SubscriptionId = 0
9319
        self.MonitoringMode = 0
9320
        self.MonitoredItemIds = []
9321
        self._freeze()
9322
9323 1
    def to_binary(self):
9324
        packet = []
9325
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9326
        packet.append(pack_uatype('UInt32', self.MonitoringMode))
9327
        packet.append(struct.pack('<i', len(self.MonitoredItemIds)))
9328
        for fieldname in self.MonitoredItemIds:
9329
            packet.append(pack_uatype('UInt32', fieldname))
9330
        return b''.join(packet)
9331
9332 1
    @staticmethod
9333
    def from_binary(data):
9334
        obj = SetMonitoringModeParameters()
9335
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9336
        obj.MonitoringMode = unpack_uatype('UInt32', data)
9337
        obj.MonitoredItemIds = unpack_uatype_array('UInt32', data)
9338
        return obj
9339
9340 1
    def __str__(self):
9341
        return 'SetMonitoringModeParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
9342
               'MonitoringMode:' + str(self.MonitoringMode) + ', ' + \
9343
               'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
9344
9345 1
    __repr__ = __str__
9346
9347
9348 1
class SetMonitoringModeRequest(FrozenClass):
9349
    '''
9350
    :ivar TypeId:
9351
    :vartype TypeId: NodeId
9352
    :ivar RequestHeader:
9353
    :vartype RequestHeader: RequestHeader
9354
    :ivar Parameters:
9355
    :vartype Parameters: SetMonitoringModeParameters
9356
    '''
9357 1
    def __init__(self):
9358
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary)
9359
        self.RequestHeader = RequestHeader()
9360
        self.Parameters = SetMonitoringModeParameters()
9361
        self._freeze()
9362
9363 1
    def to_binary(self):
9364
        packet = []
9365
        packet.append(self.TypeId.to_binary())
9366
        packet.append(self.RequestHeader.to_binary())
9367
        packet.append(self.Parameters.to_binary())
9368
        return b''.join(packet)
9369
9370 1
    @staticmethod
9371
    def from_binary(data):
9372
        obj = SetMonitoringModeRequest()
9373
        obj.TypeId = NodeId.from_binary(data)
9374
        obj.RequestHeader = RequestHeader.from_binary(data)
9375
        obj.Parameters = SetMonitoringModeParameters.from_binary(data)
9376
        return obj
9377
9378 1
    def __str__(self):
9379
        return 'SetMonitoringModeRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9380
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9381
               'Parameters:' + str(self.Parameters) + ')'
9382
9383 1
    __repr__ = __str__
9384
9385
9386 1
class SetMonitoringModeResult(FrozenClass):
9387
    '''
9388
    :ivar Results:
9389
    :vartype Results: StatusCode
9390
    :ivar DiagnosticInfos:
9391
    :vartype DiagnosticInfos: DiagnosticInfo
9392
    '''
9393 1
    def __init__(self):
9394
        self.Results = []
9395
        self.DiagnosticInfos = []
9396
        self._freeze()
9397
9398 1
    def to_binary(self):
9399
        packet = []
9400
        packet.append(struct.pack('<i', len(self.Results)))
9401
        for fieldname in self.Results:
9402
            packet.append(fieldname.to_binary())
9403
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9404
        for fieldname in self.DiagnosticInfos:
9405
            packet.append(fieldname.to_binary())
9406
        return b''.join(packet)
9407
9408 1
    @staticmethod
9409
    def from_binary(data):
9410
        obj = SetMonitoringModeResult()
9411
        length = struct.unpack('<i', data.read(4))[0]
9412
        if length != -1:
9413
            for _ in range(0, length):
9414
                obj.Results.append(StatusCode.from_binary(data))
9415
        length = struct.unpack('<i', data.read(4))[0]
9416
        if length != -1:
9417
            for _ in range(0, length):
9418
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9419
        return obj
9420
9421 1
    def __str__(self):
9422
        return 'SetMonitoringModeResult(' + 'Results:' + str(self.Results) + ', ' + \
9423
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9424
9425 1
    __repr__ = __str__
9426
9427
9428 1
class SetMonitoringModeResponse(FrozenClass):
9429
    '''
9430
    :ivar TypeId:
9431
    :vartype TypeId: NodeId
9432
    :ivar ResponseHeader:
9433
    :vartype ResponseHeader: ResponseHeader
9434
    :ivar Parameters:
9435
    :vartype Parameters: SetMonitoringModeResult
9436
    '''
9437 1
    def __init__(self):
9438
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary)
9439
        self.ResponseHeader = ResponseHeader()
9440
        self.Parameters = SetMonitoringModeResult()
9441
        self._freeze()
9442
9443 1
    def to_binary(self):
9444
        packet = []
9445
        packet.append(self.TypeId.to_binary())
9446
        packet.append(self.ResponseHeader.to_binary())
9447
        packet.append(self.Parameters.to_binary())
9448
        return b''.join(packet)
9449
9450 1
    @staticmethod
9451
    def from_binary(data):
9452
        obj = SetMonitoringModeResponse()
9453
        obj.TypeId = NodeId.from_binary(data)
9454
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9455
        obj.Parameters = SetMonitoringModeResult.from_binary(data)
9456
        return obj
9457
9458 1
    def __str__(self):
9459
        return 'SetMonitoringModeResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9460
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9461
               'Parameters:' + str(self.Parameters) + ')'
9462
9463 1
    __repr__ = __str__
9464
9465
9466 1
class SetTriggeringParameters(FrozenClass):
9467
    '''
9468
    :ivar SubscriptionId:
9469
    :vartype SubscriptionId: UInt32
9470
    :ivar TriggeringItemId:
9471
    :vartype TriggeringItemId: UInt32
9472
    :ivar LinksToAdd:
9473
    :vartype LinksToAdd: UInt32
9474
    :ivar LinksToRemove:
9475
    :vartype LinksToRemove: UInt32
9476
    '''
9477 1
    def __init__(self):
9478
        self.SubscriptionId = 0
9479
        self.TriggeringItemId = 0
9480
        self.LinksToAdd = []
9481
        self.LinksToRemove = []
9482
        self._freeze()
9483
9484 1
    def to_binary(self):
9485
        packet = []
9486
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9487
        packet.append(pack_uatype('UInt32', self.TriggeringItemId))
9488
        packet.append(struct.pack('<i', len(self.LinksToAdd)))
9489
        for fieldname in self.LinksToAdd:
9490
            packet.append(pack_uatype('UInt32', fieldname))
9491
        packet.append(struct.pack('<i', len(self.LinksToRemove)))
9492
        for fieldname in self.LinksToRemove:
9493
            packet.append(pack_uatype('UInt32', fieldname))
9494
        return b''.join(packet)
9495
9496 1
    @staticmethod
9497
    def from_binary(data):
9498
        obj = SetTriggeringParameters()
9499
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9500
        obj.TriggeringItemId = unpack_uatype('UInt32', data)
9501
        obj.LinksToAdd = unpack_uatype_array('UInt32', data)
9502
        obj.LinksToRemove = unpack_uatype_array('UInt32', data)
9503
        return obj
9504
9505 1
    def __str__(self):
9506
        return 'SetTriggeringParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
9507
               'TriggeringItemId:' + str(self.TriggeringItemId) + ', ' + \
9508
               'LinksToAdd:' + str(self.LinksToAdd) + ', ' + \
9509
               'LinksToRemove:' + str(self.LinksToRemove) + ')'
9510
9511 1
    __repr__ = __str__
9512
9513
9514 1
class SetTriggeringRequest(FrozenClass):
9515
    '''
9516
    :ivar TypeId:
9517
    :vartype TypeId: NodeId
9518
    :ivar RequestHeader:
9519
    :vartype RequestHeader: RequestHeader
9520
    :ivar Parameters:
9521
    :vartype Parameters: SetTriggeringParameters
9522
    '''
9523 1
    def __init__(self):
9524
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary)
9525
        self.RequestHeader = RequestHeader()
9526
        self.Parameters = SetTriggeringParameters()
9527
        self._freeze()
9528
9529 1
    def to_binary(self):
9530
        packet = []
9531
        packet.append(self.TypeId.to_binary())
9532
        packet.append(self.RequestHeader.to_binary())
9533
        packet.append(self.Parameters.to_binary())
9534
        return b''.join(packet)
9535
9536 1
    @staticmethod
9537
    def from_binary(data):
9538
        obj = SetTriggeringRequest()
9539
        obj.TypeId = NodeId.from_binary(data)
9540
        obj.RequestHeader = RequestHeader.from_binary(data)
9541
        obj.Parameters = SetTriggeringParameters.from_binary(data)
9542
        return obj
9543
9544 1
    def __str__(self):
9545
        return 'SetTriggeringRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9546
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9547
               'Parameters:' + str(self.Parameters) + ')'
9548
9549 1
    __repr__ = __str__
9550
9551
9552 1
class SetTriggeringResult(FrozenClass):
9553
    '''
9554
    :ivar AddResults:
9555
    :vartype AddResults: StatusCode
9556
    :ivar AddDiagnosticInfos:
9557
    :vartype AddDiagnosticInfos: DiagnosticInfo
9558
    :ivar RemoveResults:
9559
    :vartype RemoveResults: StatusCode
9560
    :ivar RemoveDiagnosticInfos:
9561
    :vartype RemoveDiagnosticInfos: DiagnosticInfo
9562
    '''
9563 1
    def __init__(self):
9564
        self.AddResults = []
9565
        self.AddDiagnosticInfos = []
9566
        self.RemoveResults = []
9567
        self.RemoveDiagnosticInfos = []
9568
        self._freeze()
9569
9570 1
    def to_binary(self):
9571
        packet = []
9572
        packet.append(struct.pack('<i', len(self.AddResults)))
9573
        for fieldname in self.AddResults:
9574
            packet.append(fieldname.to_binary())
9575
        packet.append(struct.pack('<i', len(self.AddDiagnosticInfos)))
9576
        for fieldname in self.AddDiagnosticInfos:
9577
            packet.append(fieldname.to_binary())
9578
        packet.append(struct.pack('<i', len(self.RemoveResults)))
9579
        for fieldname in self.RemoveResults:
9580
            packet.append(fieldname.to_binary())
9581
        packet.append(struct.pack('<i', len(self.RemoveDiagnosticInfos)))
9582
        for fieldname in self.RemoveDiagnosticInfos:
9583
            packet.append(fieldname.to_binary())
9584
        return b''.join(packet)
9585
9586 1
    @staticmethod
9587
    def from_binary(data):
9588
        obj = SetTriggeringResult()
9589
        length = struct.unpack('<i', data.read(4))[0]
9590
        if length != -1:
9591
            for _ in range(0, length):
9592
                obj.AddResults.append(StatusCode.from_binary(data))
9593
        length = struct.unpack('<i', data.read(4))[0]
9594
        if length != -1:
9595
            for _ in range(0, length):
9596
                obj.AddDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9597
        length = struct.unpack('<i', data.read(4))[0]
9598
        if length != -1:
9599
            for _ in range(0, length):
9600
                obj.RemoveResults.append(StatusCode.from_binary(data))
9601
        length = struct.unpack('<i', data.read(4))[0]
9602
        if length != -1:
9603
            for _ in range(0, length):
9604
                obj.RemoveDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9605
        return obj
9606
9607 1
    def __str__(self):
9608
        return 'SetTriggeringResult(' + 'AddResults:' + str(self.AddResults) + ', ' + \
9609
               'AddDiagnosticInfos:' + str(self.AddDiagnosticInfos) + ', ' + \
9610
               'RemoveResults:' + str(self.RemoveResults) + ', ' + \
9611
               'RemoveDiagnosticInfos:' + str(self.RemoveDiagnosticInfos) + ')'
9612
9613 1
    __repr__ = __str__
9614
9615
9616 1
class SetTriggeringResponse(FrozenClass):
9617
    '''
9618
    :ivar TypeId:
9619
    :vartype TypeId: NodeId
9620
    :ivar ResponseHeader:
9621
    :vartype ResponseHeader: ResponseHeader
9622
    :ivar Parameters:
9623
    :vartype Parameters: SetTriggeringResult
9624
    '''
9625 1
    def __init__(self):
9626
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary)
9627
        self.ResponseHeader = ResponseHeader()
9628
        self.Parameters = SetTriggeringResult()
9629
        self._freeze()
9630
9631 1
    def to_binary(self):
9632
        packet = []
9633
        packet.append(self.TypeId.to_binary())
9634
        packet.append(self.ResponseHeader.to_binary())
9635
        packet.append(self.Parameters.to_binary())
9636
        return b''.join(packet)
9637
9638 1
    @staticmethod
9639
    def from_binary(data):
9640
        obj = SetTriggeringResponse()
9641
        obj.TypeId = NodeId.from_binary(data)
9642
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9643
        obj.Parameters = SetTriggeringResult.from_binary(data)
9644
        return obj
9645
9646 1
    def __str__(self):
9647
        return 'SetTriggeringResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9648
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9649
               'Parameters:' + str(self.Parameters) + ')'
9650
9651 1
    __repr__ = __str__
9652
9653
9654 1
class DeleteMonitoredItemsParameters(FrozenClass):
9655
    '''
9656
    :ivar SubscriptionId:
9657
    :vartype SubscriptionId: UInt32
9658
    :ivar MonitoredItemIds:
9659
    :vartype MonitoredItemIds: UInt32
9660
    '''
9661 1
    def __init__(self):
9662 1
        self.SubscriptionId = 0
9663 1
        self.MonitoredItemIds = []
9664 1
        self._freeze()
9665
9666 1
    def to_binary(self):
9667 1
        packet = []
9668 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9669 1
        packet.append(struct.pack('<i', len(self.MonitoredItemIds)))
9670 1
        for fieldname in self.MonitoredItemIds:
9671 1
            packet.append(pack_uatype('UInt32', fieldname))
9672 1
        return b''.join(packet)
9673
9674 1
    @staticmethod
9675
    def from_binary(data):
9676 1
        obj = DeleteMonitoredItemsParameters()
9677 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9678 1
        obj.MonitoredItemIds = unpack_uatype_array('UInt32', data)
9679 1
        return obj
9680
9681 1
    def __str__(self):
9682
        return 'DeleteMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
9683
               'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
9684
9685 1
    __repr__ = __str__
9686
9687
9688 1
class DeleteMonitoredItemsRequest(FrozenClass):
9689
    '''
9690
    :ivar TypeId:
9691
    :vartype TypeId: NodeId
9692
    :ivar RequestHeader:
9693
    :vartype RequestHeader: RequestHeader
9694
    :ivar Parameters:
9695
    :vartype Parameters: DeleteMonitoredItemsParameters
9696
    '''
9697 1
    def __init__(self):
9698 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary)
9699 1
        self.RequestHeader = RequestHeader()
9700 1
        self.Parameters = DeleteMonitoredItemsParameters()
9701 1
        self._freeze()
9702
9703 1
    def to_binary(self):
9704 1
        packet = []
9705 1
        packet.append(self.TypeId.to_binary())
9706 1
        packet.append(self.RequestHeader.to_binary())
9707 1
        packet.append(self.Parameters.to_binary())
9708 1
        return b''.join(packet)
9709
9710 1
    @staticmethod
9711
    def from_binary(data):
9712
        obj = DeleteMonitoredItemsRequest()
9713
        obj.TypeId = NodeId.from_binary(data)
9714
        obj.RequestHeader = RequestHeader.from_binary(data)
9715
        obj.Parameters = DeleteMonitoredItemsParameters.from_binary(data)
9716
        return obj
9717
9718 1
    def __str__(self):
9719
        return 'DeleteMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9720
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9721
               'Parameters:' + str(self.Parameters) + ')'
9722
9723 1
    __repr__ = __str__
9724
9725
9726 1
class DeleteMonitoredItemsResponse(FrozenClass):
9727
    '''
9728
    :ivar TypeId:
9729
    :vartype TypeId: NodeId
9730
    :ivar ResponseHeader:
9731
    :vartype ResponseHeader: ResponseHeader
9732
    :ivar Results:
9733
    :vartype Results: StatusCode
9734
    :ivar DiagnosticInfos:
9735
    :vartype DiagnosticInfos: DiagnosticInfo
9736
    '''
9737 1
    def __init__(self):
9738 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary)
9739 1
        self.ResponseHeader = ResponseHeader()
9740 1
        self.Results = []
9741 1
        self.DiagnosticInfos = []
9742 1
        self._freeze()
9743
9744 1
    def to_binary(self):
9745 1
        packet = []
9746 1
        packet.append(self.TypeId.to_binary())
9747 1
        packet.append(self.ResponseHeader.to_binary())
9748 1
        packet.append(struct.pack('<i', len(self.Results)))
9749 1
        for fieldname in self.Results:
9750 1
            packet.append(fieldname.to_binary())
9751 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9752 1
        for fieldname in self.DiagnosticInfos:
9753
            packet.append(fieldname.to_binary())
9754 1
        return b''.join(packet)
9755
9756 1
    @staticmethod
9757
    def from_binary(data):
9758 1
        obj = DeleteMonitoredItemsResponse()
9759 1
        obj.TypeId = NodeId.from_binary(data)
9760 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9761 1
        length = struct.unpack('<i', data.read(4))[0]
9762 1
        if length != -1:
9763 1
            for _ in range(0, length):
9764 1
                obj.Results.append(StatusCode.from_binary(data))
9765 1
        length = struct.unpack('<i', data.read(4))[0]
9766 1
        if length != -1:
9767 1
            for _ in range(0, length):
9768
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9769 1
        return obj
9770
9771 1
    def __str__(self):
9772
        return 'DeleteMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9773
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9774
               'Results:' + str(self.Results) + ', ' + \
9775
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9776
9777 1
    __repr__ = __str__
9778
9779
9780 1
class CreateSubscriptionParameters(FrozenClass):
9781
    '''
9782
    :ivar RequestedPublishingInterval:
9783
    :vartype RequestedPublishingInterval: Double
9784
    :ivar RequestedLifetimeCount:
9785
    :vartype RequestedLifetimeCount: UInt32
9786
    :ivar RequestedMaxKeepAliveCount:
9787
    :vartype RequestedMaxKeepAliveCount: UInt32
9788
    :ivar MaxNotificationsPerPublish:
9789
    :vartype MaxNotificationsPerPublish: UInt32
9790
    :ivar PublishingEnabled:
9791
    :vartype PublishingEnabled: Boolean
9792
    :ivar Priority:
9793
    :vartype Priority: Byte
9794
    '''
9795 1
    def __init__(self):
9796 1
        self.RequestedPublishingInterval = 0
9797 1
        self.RequestedLifetimeCount = 0
9798 1
        self.RequestedMaxKeepAliveCount = 0
9799 1
        self.MaxNotificationsPerPublish = 0
9800 1
        self.PublishingEnabled = True
9801 1
        self.Priority = 0
9802 1
        self._freeze()
9803
9804 1
    def to_binary(self):
9805 1
        packet = []
9806 1
        packet.append(pack_uatype('Double', self.RequestedPublishingInterval))
9807 1
        packet.append(pack_uatype('UInt32', self.RequestedLifetimeCount))
9808 1
        packet.append(pack_uatype('UInt32', self.RequestedMaxKeepAliveCount))
9809 1
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
9810 1
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
9811 1
        packet.append(pack_uatype('Byte', self.Priority))
9812 1
        return b''.join(packet)
9813
9814 1
    @staticmethod
9815
    def from_binary(data):
9816 1
        obj = CreateSubscriptionParameters()
9817 1
        obj.RequestedPublishingInterval = unpack_uatype('Double', data)
9818 1
        obj.RequestedLifetimeCount = unpack_uatype('UInt32', data)
9819 1
        obj.RequestedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9820 1
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
9821 1
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
9822 1
        obj.Priority = unpack_uatype('Byte', data)
9823 1
        return obj
9824
9825 1
    def __str__(self):
9826
        return 'CreateSubscriptionParameters(' + 'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', ' + \
9827
               'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', ' + \
9828
               'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', ' + \
9829
               'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', ' + \
9830
               'PublishingEnabled:' + str(self.PublishingEnabled) + ', ' + \
9831
               'Priority:' + str(self.Priority) + ')'
9832
9833 1
    __repr__ = __str__
9834
9835
9836 1
class CreateSubscriptionRequest(FrozenClass):
9837
    '''
9838
    :ivar TypeId:
9839
    :vartype TypeId: NodeId
9840
    :ivar RequestHeader:
9841
    :vartype RequestHeader: RequestHeader
9842
    :ivar Parameters:
9843
    :vartype Parameters: CreateSubscriptionParameters
9844
    '''
9845 1
    def __init__(self):
9846 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary)
9847 1
        self.RequestHeader = RequestHeader()
9848 1
        self.Parameters = CreateSubscriptionParameters()
9849 1
        self._freeze()
9850
9851 1
    def to_binary(self):
9852 1
        packet = []
9853 1
        packet.append(self.TypeId.to_binary())
9854 1
        packet.append(self.RequestHeader.to_binary())
9855 1
        packet.append(self.Parameters.to_binary())
9856 1
        return b''.join(packet)
9857
9858 1
    @staticmethod
9859
    def from_binary(data):
9860
        obj = CreateSubscriptionRequest()
9861
        obj.TypeId = NodeId.from_binary(data)
9862
        obj.RequestHeader = RequestHeader.from_binary(data)
9863
        obj.Parameters = CreateSubscriptionParameters.from_binary(data)
9864
        return obj
9865
9866 1
    def __str__(self):
9867
        return 'CreateSubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9868
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
9869
               'Parameters:' + str(self.Parameters) + ')'
9870
9871 1
    __repr__ = __str__
9872
9873
9874 1
class CreateSubscriptionResult(FrozenClass):
9875
    '''
9876
    :ivar SubscriptionId:
9877
    :vartype SubscriptionId: UInt32
9878
    :ivar RevisedPublishingInterval:
9879
    :vartype RevisedPublishingInterval: Double
9880
    :ivar RevisedLifetimeCount:
9881
    :vartype RevisedLifetimeCount: UInt32
9882
    :ivar RevisedMaxKeepAliveCount:
9883
    :vartype RevisedMaxKeepAliveCount: UInt32
9884
    '''
9885 1
    def __init__(self):
9886 1
        self.SubscriptionId = 0
9887 1
        self.RevisedPublishingInterval = 0
9888 1
        self.RevisedLifetimeCount = 0
9889 1
        self.RevisedMaxKeepAliveCount = 0
9890 1
        self._freeze()
9891
9892 1
    def to_binary(self):
9893 1
        packet = []
9894 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9895 1
        packet.append(pack_uatype('Double', self.RevisedPublishingInterval))
9896 1
        packet.append(pack_uatype('UInt32', self.RevisedLifetimeCount))
9897 1
        packet.append(pack_uatype('UInt32', self.RevisedMaxKeepAliveCount))
9898 1
        return b''.join(packet)
9899
9900 1
    @staticmethod
9901
    def from_binary(data):
9902 1
        obj = CreateSubscriptionResult()
9903 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9904 1
        obj.RevisedPublishingInterval = unpack_uatype('Double', data)
9905 1
        obj.RevisedLifetimeCount = unpack_uatype('UInt32', data)
9906 1
        obj.RevisedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9907 1
        return obj
9908
9909 1
    def __str__(self):
9910
        return 'CreateSubscriptionResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
9911
               'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', ' + \
9912
               'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', ' + \
9913
               'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
9914
9915 1
    __repr__ = __str__
9916
9917
9918 1
class CreateSubscriptionResponse(FrozenClass):
9919
    '''
9920
    :ivar TypeId:
9921
    :vartype TypeId: NodeId
9922
    :ivar ResponseHeader:
9923
    :vartype ResponseHeader: ResponseHeader
9924
    :ivar Parameters:
9925
    :vartype Parameters: CreateSubscriptionResult
9926
    '''
9927 1
    def __init__(self):
9928 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary)
9929 1
        self.ResponseHeader = ResponseHeader()
9930 1
        self.Parameters = CreateSubscriptionResult()
9931 1
        self._freeze()
9932
9933 1
    def to_binary(self):
9934 1
        packet = []
9935 1
        packet.append(self.TypeId.to_binary())
9936 1
        packet.append(self.ResponseHeader.to_binary())
9937 1
        packet.append(self.Parameters.to_binary())
9938 1
        return b''.join(packet)
9939
9940 1
    @staticmethod
9941
    def from_binary(data):
9942 1
        obj = CreateSubscriptionResponse()
9943 1
        obj.TypeId = NodeId.from_binary(data)
9944 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9945 1
        obj.Parameters = CreateSubscriptionResult.from_binary(data)
9946 1
        return obj
9947
9948 1
    def __str__(self):
9949
        return 'CreateSubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
9950
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
9951
               'Parameters:' + str(self.Parameters) + ')'
9952
9953 1
    __repr__ = __str__
9954
9955
9956 1
class ModifySubscriptionParameters(FrozenClass):
9957
    '''
9958
    :ivar SubscriptionId:
9959
    :vartype SubscriptionId: UInt32
9960
    :ivar RequestedPublishingInterval:
9961
    :vartype RequestedPublishingInterval: Double
9962
    :ivar RequestedLifetimeCount:
9963
    :vartype RequestedLifetimeCount: UInt32
9964
    :ivar RequestedMaxKeepAliveCount:
9965
    :vartype RequestedMaxKeepAliveCount: UInt32
9966
    :ivar MaxNotificationsPerPublish:
9967
    :vartype MaxNotificationsPerPublish: UInt32
9968
    :ivar Priority:
9969
    :vartype Priority: Byte
9970
    '''
9971 1
    def __init__(self):
9972
        self.SubscriptionId = 0
9973
        self.RequestedPublishingInterval = 0
9974
        self.RequestedLifetimeCount = 0
9975
        self.RequestedMaxKeepAliveCount = 0
9976
        self.MaxNotificationsPerPublish = 0
9977
        self.Priority = 0
9978
        self._freeze()
9979
9980 1
    def to_binary(self):
9981
        packet = []
9982
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9983
        packet.append(pack_uatype('Double', self.RequestedPublishingInterval))
9984
        packet.append(pack_uatype('UInt32', self.RequestedLifetimeCount))
9985
        packet.append(pack_uatype('UInt32', self.RequestedMaxKeepAliveCount))
9986
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
9987
        packet.append(pack_uatype('Byte', self.Priority))
9988
        return b''.join(packet)
9989
9990 1
    @staticmethod
9991
    def from_binary(data):
9992
        obj = ModifySubscriptionParameters()
9993
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9994
        obj.RequestedPublishingInterval = unpack_uatype('Double', data)
9995
        obj.RequestedLifetimeCount = unpack_uatype('UInt32', data)
9996
        obj.RequestedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9997
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
9998
        obj.Priority = unpack_uatype('Byte', data)
9999
        return obj
10000
10001 1
    def __str__(self):
10002
        return 'ModifySubscriptionParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10003
               'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', ' + \
10004
               'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', ' + \
10005
               'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', ' + \
10006
               'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', ' + \
10007
               'Priority:' + str(self.Priority) + ')'
10008
10009 1
    __repr__ = __str__
10010
10011
10012 1
class ModifySubscriptionRequest(FrozenClass):
10013
    '''
10014
    :ivar TypeId:
10015
    :vartype TypeId: NodeId
10016
    :ivar RequestHeader:
10017
    :vartype RequestHeader: RequestHeader
10018
    :ivar Parameters:
10019
    :vartype Parameters: ModifySubscriptionParameters
10020
    '''
10021 1
    def __init__(self):
10022
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary)
10023
        self.RequestHeader = RequestHeader()
10024
        self.Parameters = ModifySubscriptionParameters()
10025
        self._freeze()
10026
10027 1
    def to_binary(self):
10028
        packet = []
10029
        packet.append(self.TypeId.to_binary())
10030
        packet.append(self.RequestHeader.to_binary())
10031
        packet.append(self.Parameters.to_binary())
10032
        return b''.join(packet)
10033
10034 1
    @staticmethod
10035
    def from_binary(data):
10036
        obj = ModifySubscriptionRequest()
10037
        obj.TypeId = NodeId.from_binary(data)
10038
        obj.RequestHeader = RequestHeader.from_binary(data)
10039
        obj.Parameters = ModifySubscriptionParameters.from_binary(data)
10040
        return obj
10041
10042 1
    def __str__(self):
10043
        return 'ModifySubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10044
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10045
               'Parameters:' + str(self.Parameters) + ')'
10046
10047 1
    __repr__ = __str__
10048
10049
10050 1
class ModifySubscriptionResult(FrozenClass):
10051
    '''
10052
    :ivar RevisedPublishingInterval:
10053
    :vartype RevisedPublishingInterval: Double
10054
    :ivar RevisedLifetimeCount:
10055
    :vartype RevisedLifetimeCount: UInt32
10056
    :ivar RevisedMaxKeepAliveCount:
10057
    :vartype RevisedMaxKeepAliveCount: UInt32
10058
    '''
10059 1
    def __init__(self):
10060
        self.RevisedPublishingInterval = 0
10061
        self.RevisedLifetimeCount = 0
10062
        self.RevisedMaxKeepAliveCount = 0
10063
        self._freeze()
10064
10065 1
    def to_binary(self):
10066
        packet = []
10067
        packet.append(pack_uatype('Double', self.RevisedPublishingInterval))
10068
        packet.append(pack_uatype('UInt32', self.RevisedLifetimeCount))
10069
        packet.append(pack_uatype('UInt32', self.RevisedMaxKeepAliveCount))
10070
        return b''.join(packet)
10071
10072 1
    @staticmethod
10073
    def from_binary(data):
10074
        obj = ModifySubscriptionResult()
10075
        obj.RevisedPublishingInterval = unpack_uatype('Double', data)
10076
        obj.RevisedLifetimeCount = unpack_uatype('UInt32', data)
10077
        obj.RevisedMaxKeepAliveCount = unpack_uatype('UInt32', data)
10078
        return obj
10079
10080 1
    def __str__(self):
10081
        return 'ModifySubscriptionResult(' + 'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', ' + \
10082
               'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', ' + \
10083
               'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
10084
10085 1
    __repr__ = __str__
10086
10087
10088 1
class ModifySubscriptionResponse(FrozenClass):
10089
    '''
10090
    :ivar TypeId:
10091
    :vartype TypeId: NodeId
10092
    :ivar ResponseHeader:
10093
    :vartype ResponseHeader: ResponseHeader
10094
    :ivar Parameters:
10095
    :vartype Parameters: ModifySubscriptionResult
10096
    '''
10097 1
    def __init__(self):
10098
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary)
10099
        self.ResponseHeader = ResponseHeader()
10100
        self.Parameters = ModifySubscriptionResult()
10101
        self._freeze()
10102
10103 1
    def to_binary(self):
10104
        packet = []
10105
        packet.append(self.TypeId.to_binary())
10106
        packet.append(self.ResponseHeader.to_binary())
10107
        packet.append(self.Parameters.to_binary())
10108
        return b''.join(packet)
10109
10110 1
    @staticmethod
10111
    def from_binary(data):
10112
        obj = ModifySubscriptionResponse()
10113
        obj.TypeId = NodeId.from_binary(data)
10114
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10115
        obj.Parameters = ModifySubscriptionResult.from_binary(data)
10116
        return obj
10117
10118 1
    def __str__(self):
10119
        return 'ModifySubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10120
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10121
               'Parameters:' + str(self.Parameters) + ')'
10122
10123 1
    __repr__ = __str__
10124
10125
10126 1
class SetPublishingModeParameters(FrozenClass):
10127
    '''
10128
    :ivar PublishingEnabled:
10129
    :vartype PublishingEnabled: Boolean
10130
    :ivar SubscriptionIds:
10131
    :vartype SubscriptionIds: UInt32
10132
    '''
10133 1
    def __init__(self):
10134
        self.PublishingEnabled = True
10135
        self.SubscriptionIds = []
10136
        self._freeze()
10137
10138 1
    def to_binary(self):
10139
        packet = []
10140
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
10141
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
10142
        for fieldname in self.SubscriptionIds:
10143
            packet.append(pack_uatype('UInt32', fieldname))
10144
        return b''.join(packet)
10145
10146 1
    @staticmethod
10147
    def from_binary(data):
10148
        obj = SetPublishingModeParameters()
10149
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
10150
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
10151
        return obj
10152
10153 1
    def __str__(self):
10154
        return 'SetPublishingModeParameters(' + 'PublishingEnabled:' + str(self.PublishingEnabled) + ', ' + \
10155
               'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
10156
10157 1
    __repr__ = __str__
10158
10159
10160 1
class SetPublishingModeRequest(FrozenClass):
10161
    '''
10162
    :ivar TypeId:
10163
    :vartype TypeId: NodeId
10164
    :ivar RequestHeader:
10165
    :vartype RequestHeader: RequestHeader
10166
    :ivar Parameters:
10167
    :vartype Parameters: SetPublishingModeParameters
10168
    '''
10169 1
    def __init__(self):
10170
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary)
10171
        self.RequestHeader = RequestHeader()
10172
        self.Parameters = SetPublishingModeParameters()
10173
        self._freeze()
10174
10175 1
    def to_binary(self):
10176
        packet = []
10177
        packet.append(self.TypeId.to_binary())
10178
        packet.append(self.RequestHeader.to_binary())
10179
        packet.append(self.Parameters.to_binary())
10180
        return b''.join(packet)
10181
10182 1
    @staticmethod
10183
    def from_binary(data):
10184
        obj = SetPublishingModeRequest()
10185
        obj.TypeId = NodeId.from_binary(data)
10186
        obj.RequestHeader = RequestHeader.from_binary(data)
10187
        obj.Parameters = SetPublishingModeParameters.from_binary(data)
10188
        return obj
10189
10190 1
    def __str__(self):
10191
        return 'SetPublishingModeRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10192
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10193
               'Parameters:' + str(self.Parameters) + ')'
10194
10195 1
    __repr__ = __str__
10196
10197
10198 1
class SetPublishingModeResult(FrozenClass):
10199
    '''
10200
    :ivar Results:
10201
    :vartype Results: StatusCode
10202
    :ivar DiagnosticInfos:
10203
    :vartype DiagnosticInfos: DiagnosticInfo
10204
    '''
10205 1
    def __init__(self):
10206
        self.Results = []
10207
        self.DiagnosticInfos = []
10208
        self._freeze()
10209
10210 1
    def to_binary(self):
10211
        packet = []
10212
        packet.append(struct.pack('<i', len(self.Results)))
10213
        for fieldname in self.Results:
10214
            packet.append(fieldname.to_binary())
10215
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10216
        for fieldname in self.DiagnosticInfos:
10217
            packet.append(fieldname.to_binary())
10218
        return b''.join(packet)
10219
10220 1
    @staticmethod
10221
    def from_binary(data):
10222
        obj = SetPublishingModeResult()
10223
        length = struct.unpack('<i', data.read(4))[0]
10224
        if length != -1:
10225
            for _ in range(0, length):
10226
                obj.Results.append(StatusCode.from_binary(data))
10227
        length = struct.unpack('<i', data.read(4))[0]
10228
        if length != -1:
10229
            for _ in range(0, length):
10230
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10231
        return obj
10232
10233 1
    def __str__(self):
10234
        return 'SetPublishingModeResult(' + 'Results:' + str(self.Results) + ', ' + \
10235
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10236
10237 1
    __repr__ = __str__
10238
10239
10240 1
class SetPublishingModeResponse(FrozenClass):
10241
    '''
10242
    :ivar TypeId:
10243
    :vartype TypeId: NodeId
10244
    :ivar ResponseHeader:
10245
    :vartype ResponseHeader: ResponseHeader
10246
    :ivar Parameters:
10247
    :vartype Parameters: SetPublishingModeResult
10248
    '''
10249 1
    def __init__(self):
10250
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary)
10251
        self.ResponseHeader = ResponseHeader()
10252
        self.Parameters = SetPublishingModeResult()
10253
        self._freeze()
10254
10255 1
    def to_binary(self):
10256
        packet = []
10257
        packet.append(self.TypeId.to_binary())
10258
        packet.append(self.ResponseHeader.to_binary())
10259
        packet.append(self.Parameters.to_binary())
10260
        return b''.join(packet)
10261
10262 1
    @staticmethod
10263
    def from_binary(data):
10264
        obj = SetPublishingModeResponse()
10265
        obj.TypeId = NodeId.from_binary(data)
10266
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10267
        obj.Parameters = SetPublishingModeResult.from_binary(data)
10268
        return obj
10269
10270 1
    def __str__(self):
10271
        return 'SetPublishingModeResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10272
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10273
               'Parameters:' + str(self.Parameters) + ')'
10274
10275 1
    __repr__ = __str__
10276
10277
10278 1
class NotificationMessage(FrozenClass):
10279
    '''
10280
    :ivar SequenceNumber:
10281
    :vartype SequenceNumber: UInt32
10282
    :ivar PublishTime:
10283
    :vartype PublishTime: DateTime
10284
    :ivar NotificationData:
10285
    :vartype NotificationData: ExtensionObject
10286
    '''
10287 1
    def __init__(self):
10288 1
        self.SequenceNumber = 0
10289 1
        self.PublishTime = datetime.now()
10290 1
        self.NotificationData = []
10291 1
        self._freeze()
10292
10293 1
    def to_binary(self):
10294 1
        packet = []
10295 1
        packet.append(pack_uatype('UInt32', self.SequenceNumber))
10296 1
        packet.append(pack_uatype('DateTime', self.PublishTime))
10297 1
        packet.append(struct.pack('<i', len(self.NotificationData)))
10298 1
        for fieldname in self.NotificationData:
10299 1
            packet.append(extensionobject_to_binary(fieldname))
10300 1
        return b''.join(packet)
10301
10302 1
    @staticmethod
10303
    def from_binary(data):
10304 1
        obj = NotificationMessage()
10305 1
        obj.SequenceNumber = unpack_uatype('UInt32', data)
10306 1
        obj.PublishTime = unpack_uatype('DateTime', data)
10307 1
        length = struct.unpack('<i', data.read(4))[0]
10308 1
        if length != -1:
10309 1
            for _ in range(0, length):
10310 1
                obj.NotificationData.append(extensionobject_from_binary(data))
10311 1
        return obj
10312
10313 1
    def __str__(self):
10314
        return 'NotificationMessage(' + 'SequenceNumber:' + str(self.SequenceNumber) + ', ' + \
10315
               'PublishTime:' + str(self.PublishTime) + ', ' + \
10316
               'NotificationData:' + str(self.NotificationData) + ')'
10317
10318 1
    __repr__ = __str__
10319
10320
10321 1
class NotificationData(FrozenClass):
10322
    '''
10323
    '''
10324 1
    def __init__(self):
10325
        self._freeze()
10326
10327 1
    def to_binary(self):
10328
        packet = []
10329
        return b''.join(packet)
10330
10331 1
    @staticmethod
10332
    def from_binary(data):
10333
        obj = NotificationData()
10334
        return obj
10335
10336 1
    def __str__(self):
10337
        return 'NotificationData(' +  + ')'
10338
10339 1
    __repr__ = __str__
10340
10341
10342 1
class DataChangeNotification(FrozenClass):
10343
    '''
10344
    :ivar MonitoredItems:
10345
    :vartype MonitoredItems: MonitoredItemNotification
10346
    :ivar DiagnosticInfos:
10347
    :vartype DiagnosticInfos: DiagnosticInfo
10348
    '''
10349 1
    def __init__(self):
10350 1
        self.MonitoredItems = []
10351 1
        self.DiagnosticInfos = []
10352 1
        self._freeze()
10353
10354 1
    def to_binary(self):
10355 1
        packet = []
10356 1
        packet.append(struct.pack('<i', len(self.MonitoredItems)))
10357 1
        for fieldname in self.MonitoredItems:
10358 1
            packet.append(fieldname.to_binary())
10359 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10360 1
        for fieldname in self.DiagnosticInfos:
10361
            packet.append(fieldname.to_binary())
10362 1
        return b''.join(packet)
10363
10364 1
    @staticmethod
10365
    def from_binary(data):
10366 1
        obj = DataChangeNotification()
10367 1
        length = struct.unpack('<i', data.read(4))[0]
10368 1
        if length != -1:
10369 1
            for _ in range(0, length):
10370 1
                obj.MonitoredItems.append(MonitoredItemNotification.from_binary(data))
10371 1
        length = struct.unpack('<i', data.read(4))[0]
10372 1
        if length != -1:
10373 1
            for _ in range(0, length):
10374
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10375 1
        return obj
10376
10377 1
    def __str__(self):
10378
        return 'DataChangeNotification(' + 'MonitoredItems:' + str(self.MonitoredItems) + ', ' + \
10379
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10380
10381 1
    __repr__ = __str__
10382
10383
10384 1
class MonitoredItemNotification(FrozenClass):
10385
    '''
10386
    :ivar ClientHandle:
10387
    :vartype ClientHandle: UInt32
10388
    :ivar Value:
10389
    :vartype Value: DataValue
10390
    '''
10391 1
    def __init__(self):
10392 1
        self.ClientHandle = 0
10393 1
        self.Value = DataValue()
10394 1
        self._freeze()
10395
10396 1
    def to_binary(self):
10397 1
        packet = []
10398 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
10399 1
        packet.append(self.Value.to_binary())
10400 1
        return b''.join(packet)
10401
10402 1
    @staticmethod
10403
    def from_binary(data):
10404 1
        obj = MonitoredItemNotification()
10405 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
10406 1
        obj.Value = DataValue.from_binary(data)
10407 1
        return obj
10408
10409 1
    def __str__(self):
10410
        return 'MonitoredItemNotification(' + 'ClientHandle:' + str(self.ClientHandle) + ', ' + \
10411
               'Value:' + str(self.Value) + ')'
10412
10413 1
    __repr__ = __str__
10414
10415
10416 1
class EventNotificationList(FrozenClass):
10417
    '''
10418
    :ivar Events:
10419
    :vartype Events: EventFieldList
10420
    '''
10421 1
    def __init__(self):
10422 1
        self.Events = []
10423 1
        self._freeze()
10424
10425 1
    def to_binary(self):
10426 1
        packet = []
10427 1
        packet.append(struct.pack('<i', len(self.Events)))
10428 1
        for fieldname in self.Events:
10429 1
            packet.append(fieldname.to_binary())
10430 1
        return b''.join(packet)
10431
10432 1
    @staticmethod
10433
    def from_binary(data):
10434 1
        obj = EventNotificationList()
10435 1
        length = struct.unpack('<i', data.read(4))[0]
10436 1
        if length != -1:
10437 1
            for _ in range(0, length):
10438 1
                obj.Events.append(EventFieldList.from_binary(data))
10439 1
        return obj
10440
10441 1
    def __str__(self):
10442
        return 'EventNotificationList(' + 'Events:' + str(self.Events) + ')'
10443
10444 1
    __repr__ = __str__
10445
10446
10447 1
class EventFieldList(FrozenClass):
10448
    '''
10449
    :ivar ClientHandle:
10450
    :vartype ClientHandle: UInt32
10451
    :ivar EventFields:
10452
    :vartype EventFields: Variant
10453
    '''
10454 1
    def __init__(self):
10455 1
        self.ClientHandle = 0
10456 1
        self.EventFields = []
10457 1
        self._freeze()
10458
10459 1
    def to_binary(self):
10460 1
        packet = []
10461 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
10462 1
        packet.append(struct.pack('<i', len(self.EventFields)))
10463 1
        for fieldname in self.EventFields:
10464 1
            packet.append(fieldname.to_binary())
10465 1
        return b''.join(packet)
10466
10467 1
    @staticmethod
10468
    def from_binary(data):
10469 1
        obj = EventFieldList()
10470 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
10471 1
        length = struct.unpack('<i', data.read(4))[0]
10472 1
        if length != -1:
10473 1
            for _ in range(0, length):
10474 1
                obj.EventFields.append(Variant.from_binary(data))
10475 1
        return obj
10476
10477 1
    def __str__(self):
10478
        return 'EventFieldList(' + 'ClientHandle:' + str(self.ClientHandle) + ', ' + \
10479
               'EventFields:' + str(self.EventFields) + ')'
10480
10481 1
    __repr__ = __str__
10482
10483
10484 1
class HistoryEventFieldList(FrozenClass):
10485
    '''
10486
    :ivar EventFields:
10487
    :vartype EventFields: Variant
10488
    '''
10489 1
    def __init__(self):
10490
        self.EventFields = []
10491
        self._freeze()
10492
10493 1
    def to_binary(self):
10494
        packet = []
10495
        packet.append(struct.pack('<i', len(self.EventFields)))
10496
        for fieldname in self.EventFields:
10497
            packet.append(fieldname.to_binary())
10498
        return b''.join(packet)
10499
10500 1
    @staticmethod
10501
    def from_binary(data):
10502
        obj = HistoryEventFieldList()
10503
        length = struct.unpack('<i', data.read(4))[0]
10504
        if length != -1:
10505
            for _ in range(0, length):
10506
                obj.EventFields.append(Variant.from_binary(data))
10507
        return obj
10508
10509 1
    def __str__(self):
10510
        return 'HistoryEventFieldList(' + 'EventFields:' + str(self.EventFields) + ')'
10511
10512 1
    __repr__ = __str__
10513
10514
10515 1
class StatusChangeNotification(FrozenClass):
10516
    '''
10517
    :ivar Status:
10518
    :vartype Status: StatusCode
10519
    :ivar DiagnosticInfo:
10520
    :vartype DiagnosticInfo: DiagnosticInfo
10521
    '''
10522 1
    def __init__(self):
10523
        self.Status = StatusCode()
10524
        self.DiagnosticInfo = DiagnosticInfo()
10525
        self._freeze()
10526
10527 1
    def to_binary(self):
10528
        packet = []
10529
        packet.append(self.Status.to_binary())
10530
        packet.append(self.DiagnosticInfo.to_binary())
10531
        return b''.join(packet)
10532
10533 1
    @staticmethod
10534
    def from_binary(data):
10535
        obj = StatusChangeNotification()
10536
        obj.Status = StatusCode.from_binary(data)
10537
        obj.DiagnosticInfo = DiagnosticInfo.from_binary(data)
10538
        return obj
10539
10540 1
    def __str__(self):
10541
        return 'StatusChangeNotification(' + 'Status:' + str(self.Status) + ', ' + \
10542
               'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
10543
10544 1
    __repr__ = __str__
10545
10546
10547 1
class SubscriptionAcknowledgement(FrozenClass):
10548
    '''
10549
    :ivar SubscriptionId:
10550
    :vartype SubscriptionId: UInt32
10551
    :ivar SequenceNumber:
10552
    :vartype SequenceNumber: UInt32
10553
    '''
10554 1
    def __init__(self):
10555 1
        self.SubscriptionId = 0
10556 1
        self.SequenceNumber = 0
10557 1
        self._freeze()
10558
10559 1
    def to_binary(self):
10560 1
        packet = []
10561 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10562 1
        packet.append(pack_uatype('UInt32', self.SequenceNumber))
10563 1
        return b''.join(packet)
10564
10565 1
    @staticmethod
10566
    def from_binary(data):
10567 1
        obj = SubscriptionAcknowledgement()
10568 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10569 1
        obj.SequenceNumber = unpack_uatype('UInt32', data)
10570 1
        return obj
10571
10572 1
    def __str__(self):
10573
        return 'SubscriptionAcknowledgement(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10574
               'SequenceNumber:' + str(self.SequenceNumber) + ')'
10575
10576 1
    __repr__ = __str__
10577
10578
10579 1
class PublishParameters(FrozenClass):
10580
    '''
10581
    :ivar SubscriptionAcknowledgements:
10582
    :vartype SubscriptionAcknowledgements: SubscriptionAcknowledgement
10583
    '''
10584 1
    def __init__(self):
10585 1
        self.SubscriptionAcknowledgements = []
10586 1
        self._freeze()
10587
10588 1
    def to_binary(self):
10589 1
        packet = []
10590 1
        packet.append(struct.pack('<i', len(self.SubscriptionAcknowledgements)))
10591 1
        for fieldname in self.SubscriptionAcknowledgements:
10592 1
            packet.append(fieldname.to_binary())
10593 1
        return b''.join(packet)
10594
10595 1
    @staticmethod
10596
    def from_binary(data):
10597 1
        obj = PublishParameters()
10598 1
        length = struct.unpack('<i', data.read(4))[0]
10599 1
        if length != -1:
10600 1
            for _ in range(0, length):
10601 1
                obj.SubscriptionAcknowledgements.append(SubscriptionAcknowledgement.from_binary(data))
10602 1
        return obj
10603
10604 1
    def __str__(self):
10605
        return 'PublishParameters(' + 'SubscriptionAcknowledgements:' + str(self.SubscriptionAcknowledgements) + ')'
10606
10607 1
    __repr__ = __str__
10608
10609
10610 1
class PublishRequest(FrozenClass):
10611
    '''
10612
    :ivar TypeId:
10613
    :vartype TypeId: NodeId
10614
    :ivar RequestHeader:
10615
    :vartype RequestHeader: RequestHeader
10616
    :ivar Parameters:
10617
    :vartype Parameters: PublishParameters
10618
    '''
10619 1
    def __init__(self):
10620 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishRequest_Encoding_DefaultBinary)
10621 1
        self.RequestHeader = RequestHeader()
10622 1
        self.Parameters = PublishParameters()
10623 1
        self._freeze()
10624
10625 1
    def to_binary(self):
10626 1
        packet = []
10627 1
        packet.append(self.TypeId.to_binary())
10628 1
        packet.append(self.RequestHeader.to_binary())
10629 1
        packet.append(self.Parameters.to_binary())
10630 1
        return b''.join(packet)
10631
10632 1
    @staticmethod
10633
    def from_binary(data):
10634
        obj = PublishRequest()
10635
        obj.TypeId = NodeId.from_binary(data)
10636
        obj.RequestHeader = RequestHeader.from_binary(data)
10637
        obj.Parameters = PublishParameters.from_binary(data)
10638
        return obj
10639
10640 1
    def __str__(self):
10641
        return 'PublishRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10642
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10643
               'Parameters:' + str(self.Parameters) + ')'
10644
10645 1
    __repr__ = __str__
10646
10647
10648 1
class PublishResult(FrozenClass):
10649
    '''
10650
    :ivar SubscriptionId:
10651
    :vartype SubscriptionId: UInt32
10652
    :ivar AvailableSequenceNumbers:
10653
    :vartype AvailableSequenceNumbers: UInt32
10654
    :ivar MoreNotifications:
10655
    :vartype MoreNotifications: Boolean
10656
    :ivar NotificationMessage:
10657
    :vartype NotificationMessage: NotificationMessage
10658
    :ivar Results:
10659
    :vartype Results: StatusCode
10660
    :ivar DiagnosticInfos:
10661
    :vartype DiagnosticInfos: DiagnosticInfo
10662
    '''
10663 1
    def __init__(self):
10664 1
        self.SubscriptionId = 0
10665 1
        self.AvailableSequenceNumbers = []
10666 1
        self.MoreNotifications = True
10667 1
        self.NotificationMessage = NotificationMessage()
10668 1
        self.Results = []
10669 1
        self.DiagnosticInfos = []
10670 1
        self._freeze()
10671
10672 1
    def to_binary(self):
10673 1
        packet = []
10674 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10675 1
        packet.append(struct.pack('<i', len(self.AvailableSequenceNumbers)))
10676 1
        for fieldname in self.AvailableSequenceNumbers:
10677 1
            packet.append(pack_uatype('UInt32', fieldname))
10678 1
        packet.append(pack_uatype('Boolean', self.MoreNotifications))
10679 1
        packet.append(self.NotificationMessage.to_binary())
10680 1
        packet.append(struct.pack('<i', len(self.Results)))
10681 1
        for fieldname in self.Results:
10682
            packet.append(fieldname.to_binary())
10683 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10684 1
        for fieldname in self.DiagnosticInfos:
10685
            packet.append(fieldname.to_binary())
10686 1
        return b''.join(packet)
10687
10688 1
    @staticmethod
10689
    def from_binary(data):
10690 1
        obj = PublishResult()
10691 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10692 1
        obj.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
10693 1
        obj.MoreNotifications = unpack_uatype('Boolean', data)
10694 1
        obj.NotificationMessage = NotificationMessage.from_binary(data)
10695 1
        length = struct.unpack('<i', data.read(4))[0]
10696 1
        if length != -1:
10697 1
            for _ in range(0, length):
10698
                obj.Results.append(StatusCode.from_binary(data))
10699 1
        length = struct.unpack('<i', data.read(4))[0]
10700 1
        if length != -1:
10701 1
            for _ in range(0, length):
10702
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10703 1
        return obj
10704
10705 1
    def __str__(self):
10706
        return 'PublishResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10707
               'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ', ' + \
10708
               'MoreNotifications:' + str(self.MoreNotifications) + ', ' + \
10709
               'NotificationMessage:' + str(self.NotificationMessage) + ', ' + \
10710
               'Results:' + str(self.Results) + ', ' + \
10711
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10712
10713 1
    __repr__ = __str__
10714
10715
10716 1
class PublishResponse(FrozenClass):
10717
    '''
10718
    :ivar TypeId:
10719
    :vartype TypeId: NodeId
10720
    :ivar ResponseHeader:
10721
    :vartype ResponseHeader: ResponseHeader
10722
    :ivar Parameters:
10723
    :vartype Parameters: PublishResult
10724
    '''
10725 1
    def __init__(self):
10726 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishResponse_Encoding_DefaultBinary)
10727 1
        self.ResponseHeader = ResponseHeader()
10728 1
        self.Parameters = PublishResult()
10729 1
        self._freeze()
10730
10731 1
    def to_binary(self):
10732 1
        packet = []
10733 1
        packet.append(self.TypeId.to_binary())
10734 1
        packet.append(self.ResponseHeader.to_binary())
10735 1
        packet.append(self.Parameters.to_binary())
10736 1
        return b''.join(packet)
10737
10738 1
    @staticmethod
10739
    def from_binary(data):
10740 1
        obj = PublishResponse()
10741 1
        obj.TypeId = NodeId.from_binary(data)
10742 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10743 1
        obj.Parameters = PublishResult.from_binary(data)
10744 1
        return obj
10745
10746 1
    def __str__(self):
10747
        return 'PublishResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10748
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10749
               'Parameters:' + str(self.Parameters) + ')'
10750
10751 1
    __repr__ = __str__
10752
10753
10754 1
class RepublishParameters(FrozenClass):
10755
    '''
10756
    :ivar SubscriptionId:
10757
    :vartype SubscriptionId: UInt32
10758
    :ivar RetransmitSequenceNumber:
10759
    :vartype RetransmitSequenceNumber: UInt32
10760
    '''
10761 1
    def __init__(self):
10762
        self.SubscriptionId = 0
10763
        self.RetransmitSequenceNumber = 0
10764
        self._freeze()
10765
10766 1
    def to_binary(self):
10767
        packet = []
10768
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10769
        packet.append(pack_uatype('UInt32', self.RetransmitSequenceNumber))
10770
        return b''.join(packet)
10771
10772 1
    @staticmethod
10773
    def from_binary(data):
10774
        obj = RepublishParameters()
10775
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10776
        obj.RetransmitSequenceNumber = unpack_uatype('UInt32', data)
10777
        return obj
10778
10779 1
    def __str__(self):
10780
        return 'RepublishParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
10781
               'RetransmitSequenceNumber:' + str(self.RetransmitSequenceNumber) + ')'
10782
10783 1
    __repr__ = __str__
10784
10785
10786 1
class RepublishRequest(FrozenClass):
10787
    '''
10788
    :ivar TypeId:
10789
    :vartype TypeId: NodeId
10790
    :ivar RequestHeader:
10791
    :vartype RequestHeader: RequestHeader
10792
    :ivar Parameters:
10793
    :vartype Parameters: RepublishParameters
10794
    '''
10795 1
    def __init__(self):
10796
        self.TypeId = FourByteNodeId(ObjectIds.RepublishRequest_Encoding_DefaultBinary)
10797
        self.RequestHeader = RequestHeader()
10798
        self.Parameters = RepublishParameters()
10799
        self._freeze()
10800
10801 1
    def to_binary(self):
10802
        packet = []
10803
        packet.append(self.TypeId.to_binary())
10804
        packet.append(self.RequestHeader.to_binary())
10805
        packet.append(self.Parameters.to_binary())
10806
        return b''.join(packet)
10807
10808 1
    @staticmethod
10809
    def from_binary(data):
10810
        obj = RepublishRequest()
10811
        obj.TypeId = NodeId.from_binary(data)
10812
        obj.RequestHeader = RequestHeader.from_binary(data)
10813
        obj.Parameters = RepublishParameters.from_binary(data)
10814
        return obj
10815
10816 1
    def __str__(self):
10817
        return 'RepublishRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10818
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10819
               'Parameters:' + str(self.Parameters) + ')'
10820
10821 1
    __repr__ = __str__
10822
10823
10824 1
class RepublishResponse(FrozenClass):
10825
    '''
10826
    :ivar TypeId:
10827
    :vartype TypeId: NodeId
10828
    :ivar ResponseHeader:
10829
    :vartype ResponseHeader: ResponseHeader
10830
    :ivar NotificationMessage:
10831
    :vartype NotificationMessage: NotificationMessage
10832
    '''
10833 1
    def __init__(self):
10834
        self.TypeId = FourByteNodeId(ObjectIds.RepublishResponse_Encoding_DefaultBinary)
10835
        self.ResponseHeader = ResponseHeader()
10836
        self.NotificationMessage = NotificationMessage()
10837
        self._freeze()
10838
10839 1
    def to_binary(self):
10840
        packet = []
10841
        packet.append(self.TypeId.to_binary())
10842
        packet.append(self.ResponseHeader.to_binary())
10843
        packet.append(self.NotificationMessage.to_binary())
10844
        return b''.join(packet)
10845
10846 1
    @staticmethod
10847
    def from_binary(data):
10848
        obj = RepublishResponse()
10849
        obj.TypeId = NodeId.from_binary(data)
10850
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10851
        obj.NotificationMessage = NotificationMessage.from_binary(data)
10852
        return obj
10853
10854 1
    def __str__(self):
10855
        return 'RepublishResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10856
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
10857
               'NotificationMessage:' + str(self.NotificationMessage) + ')'
10858
10859 1
    __repr__ = __str__
10860
10861
10862 1
class TransferResult(FrozenClass):
10863
    '''
10864
    :ivar StatusCode:
10865
    :vartype StatusCode: StatusCode
10866
    :ivar AvailableSequenceNumbers:
10867
    :vartype AvailableSequenceNumbers: UInt32
10868
    '''
10869 1
    def __init__(self):
10870
        self.StatusCode = StatusCode()
10871
        self.AvailableSequenceNumbers = []
10872
        self._freeze()
10873
10874 1
    def to_binary(self):
10875
        packet = []
10876
        packet.append(self.StatusCode.to_binary())
10877
        packet.append(struct.pack('<i', len(self.AvailableSequenceNumbers)))
10878
        for fieldname in self.AvailableSequenceNumbers:
10879
            packet.append(pack_uatype('UInt32', fieldname))
10880
        return b''.join(packet)
10881
10882 1
    @staticmethod
10883
    def from_binary(data):
10884
        obj = TransferResult()
10885
        obj.StatusCode = StatusCode.from_binary(data)
10886
        obj.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
10887
        return obj
10888
10889 1
    def __str__(self):
10890
        return 'TransferResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
10891
               'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ')'
10892
10893 1
    __repr__ = __str__
10894
10895
10896 1
class TransferSubscriptionsParameters(FrozenClass):
10897
    '''
10898
    :ivar SubscriptionIds:
10899
    :vartype SubscriptionIds: UInt32
10900
    :ivar SendInitialValues:
10901
    :vartype SendInitialValues: Boolean
10902
    '''
10903 1
    def __init__(self):
10904
        self.SubscriptionIds = []
10905
        self.SendInitialValues = True
10906
        self._freeze()
10907
10908 1
    def to_binary(self):
10909
        packet = []
10910
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
10911
        for fieldname in self.SubscriptionIds:
10912
            packet.append(pack_uatype('UInt32', fieldname))
10913
        packet.append(pack_uatype('Boolean', self.SendInitialValues))
10914
        return b''.join(packet)
10915
10916 1
    @staticmethod
10917
    def from_binary(data):
10918
        obj = TransferSubscriptionsParameters()
10919
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
10920
        obj.SendInitialValues = unpack_uatype('Boolean', data)
10921
        return obj
10922
10923 1
    def __str__(self):
10924
        return 'TransferSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ', ' + \
10925
               'SendInitialValues:' + str(self.SendInitialValues) + ')'
10926
10927 1
    __repr__ = __str__
10928
10929
10930 1
class TransferSubscriptionsRequest(FrozenClass):
10931
    '''
10932
    :ivar TypeId:
10933
    :vartype TypeId: NodeId
10934
    :ivar RequestHeader:
10935
    :vartype RequestHeader: RequestHeader
10936
    :ivar Parameters:
10937
    :vartype Parameters: TransferSubscriptionsParameters
10938
    '''
10939 1
    def __init__(self):
10940
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary)
10941
        self.RequestHeader = RequestHeader()
10942
        self.Parameters = TransferSubscriptionsParameters()
10943
        self._freeze()
10944
10945 1
    def to_binary(self):
10946
        packet = []
10947
        packet.append(self.TypeId.to_binary())
10948
        packet.append(self.RequestHeader.to_binary())
10949
        packet.append(self.Parameters.to_binary())
10950
        return b''.join(packet)
10951
10952 1
    @staticmethod
10953
    def from_binary(data):
10954
        obj = TransferSubscriptionsRequest()
10955
        obj.TypeId = NodeId.from_binary(data)
10956
        obj.RequestHeader = RequestHeader.from_binary(data)
10957
        obj.Parameters = TransferSubscriptionsParameters.from_binary(data)
10958
        return obj
10959
10960 1
    def __str__(self):
10961
        return 'TransferSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
10962
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
10963
               'Parameters:' + str(self.Parameters) + ')'
10964
10965 1
    __repr__ = __str__
10966
10967
10968 1
class TransferSubscriptionsResult(FrozenClass):
10969
    '''
10970
    :ivar Results:
10971
    :vartype Results: TransferResult
10972
    :ivar DiagnosticInfos:
10973
    :vartype DiagnosticInfos: DiagnosticInfo
10974
    '''
10975 1
    def __init__(self):
10976
        self.Results = []
10977
        self.DiagnosticInfos = []
10978
        self._freeze()
10979
10980 1
    def to_binary(self):
10981
        packet = []
10982
        packet.append(struct.pack('<i', len(self.Results)))
10983
        for fieldname in self.Results:
10984
            packet.append(fieldname.to_binary())
10985
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10986
        for fieldname in self.DiagnosticInfos:
10987
            packet.append(fieldname.to_binary())
10988
        return b''.join(packet)
10989
10990 1
    @staticmethod
10991
    def from_binary(data):
10992
        obj = TransferSubscriptionsResult()
10993
        length = struct.unpack('<i', data.read(4))[0]
10994
        if length != -1:
10995
            for _ in range(0, length):
10996
                obj.Results.append(TransferResult.from_binary(data))
10997
        length = struct.unpack('<i', data.read(4))[0]
10998
        if length != -1:
10999
            for _ in range(0, length):
11000
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
11001
        return obj
11002
11003 1
    def __str__(self):
11004
        return 'TransferSubscriptionsResult(' + 'Results:' + str(self.Results) + ', ' + \
11005
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
11006
11007 1
    __repr__ = __str__
11008
11009
11010 1
class TransferSubscriptionsResponse(FrozenClass):
11011
    '''
11012
    :ivar TypeId:
11013
    :vartype TypeId: NodeId
11014
    :ivar ResponseHeader:
11015
    :vartype ResponseHeader: ResponseHeader
11016
    :ivar Parameters:
11017
    :vartype Parameters: TransferSubscriptionsResult
11018
    '''
11019 1
    def __init__(self):
11020
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary)
11021
        self.ResponseHeader = ResponseHeader()
11022
        self.Parameters = TransferSubscriptionsResult()
11023
        self._freeze()
11024
11025 1
    def to_binary(self):
11026
        packet = []
11027
        packet.append(self.TypeId.to_binary())
11028
        packet.append(self.ResponseHeader.to_binary())
11029
        packet.append(self.Parameters.to_binary())
11030
        return b''.join(packet)
11031
11032 1
    @staticmethod
11033
    def from_binary(data):
11034
        obj = TransferSubscriptionsResponse()
11035
        obj.TypeId = NodeId.from_binary(data)
11036
        obj.ResponseHeader = ResponseHeader.from_binary(data)
11037
        obj.Parameters = TransferSubscriptionsResult.from_binary(data)
11038
        return obj
11039
11040 1
    def __str__(self):
11041
        return 'TransferSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11042
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
11043
               'Parameters:' + str(self.Parameters) + ')'
11044
11045 1
    __repr__ = __str__
11046
11047
11048 1
class DeleteSubscriptionsParameters(FrozenClass):
11049
    '''
11050
    :ivar SubscriptionIds:
11051
    :vartype SubscriptionIds: UInt32
11052
    '''
11053 1
    def __init__(self):
11054 1
        self.SubscriptionIds = []
11055 1
        self._freeze()
11056
11057 1
    def to_binary(self):
11058 1
        packet = []
11059 1
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
11060 1
        for fieldname in self.SubscriptionIds:
11061 1
            packet.append(pack_uatype('UInt32', fieldname))
11062 1
        return b''.join(packet)
11063
11064 1
    @staticmethod
11065
    def from_binary(data):
11066 1
        obj = DeleteSubscriptionsParameters()
11067 1
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
11068 1
        return obj
11069
11070 1
    def __str__(self):
11071
        return 'DeleteSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
11072
11073 1
    __repr__ = __str__
11074
11075
11076 1
class DeleteSubscriptionsRequest(FrozenClass):
11077
    '''
11078
    :ivar TypeId:
11079
    :vartype TypeId: NodeId
11080
    :ivar RequestHeader:
11081
    :vartype RequestHeader: RequestHeader
11082
    :ivar Parameters:
11083
    :vartype Parameters: DeleteSubscriptionsParameters
11084
    '''
11085 1
    def __init__(self):
11086 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary)
11087 1
        self.RequestHeader = RequestHeader()
11088 1
        self.Parameters = DeleteSubscriptionsParameters()
11089 1
        self._freeze()
11090
11091 1
    def to_binary(self):
11092 1
        packet = []
11093 1
        packet.append(self.TypeId.to_binary())
11094 1
        packet.append(self.RequestHeader.to_binary())
11095 1
        packet.append(self.Parameters.to_binary())
11096 1
        return b''.join(packet)
11097
11098 1
    @staticmethod
11099
    def from_binary(data):
11100
        obj = DeleteSubscriptionsRequest()
11101
        obj.TypeId = NodeId.from_binary(data)
11102
        obj.RequestHeader = RequestHeader.from_binary(data)
11103
        obj.Parameters = DeleteSubscriptionsParameters.from_binary(data)
11104
        return obj
11105
11106 1
    def __str__(self):
11107
        return 'DeleteSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11108
               'RequestHeader:' + str(self.RequestHeader) + ', ' + \
11109
               'Parameters:' + str(self.Parameters) + ')'
11110
11111 1
    __repr__ = __str__
11112
11113
11114 1
class DeleteSubscriptionsResponse(FrozenClass):
11115
    '''
11116
    :ivar TypeId:
11117
    :vartype TypeId: NodeId
11118
    :ivar ResponseHeader:
11119
    :vartype ResponseHeader: ResponseHeader
11120
    :ivar Results:
11121
    :vartype Results: StatusCode
11122
    :ivar DiagnosticInfos:
11123
    :vartype DiagnosticInfos: DiagnosticInfo
11124
    '''
11125 1
    def __init__(self):
11126 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary)
11127 1
        self.ResponseHeader = ResponseHeader()
11128 1
        self.Results = []
11129 1
        self.DiagnosticInfos = []
11130 1
        self._freeze()
11131
11132 1
    def to_binary(self):
11133 1
        packet = []
11134 1
        packet.append(self.TypeId.to_binary())
11135 1
        packet.append(self.ResponseHeader.to_binary())
11136 1
        packet.append(struct.pack('<i', len(self.Results)))
11137 1
        for fieldname in self.Results:
11138 1
            packet.append(fieldname.to_binary())
11139 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
11140 1
        for fieldname in self.DiagnosticInfos:
11141
            packet.append(fieldname.to_binary())
11142 1
        return b''.join(packet)
11143
11144 1
    @staticmethod
11145
    def from_binary(data):
11146 1
        obj = DeleteSubscriptionsResponse()
11147 1
        obj.TypeId = NodeId.from_binary(data)
11148 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
11149 1
        length = struct.unpack('<i', data.read(4))[0]
11150 1
        if length != -1:
11151 1
            for _ in range(0, length):
11152 1
                obj.Results.append(StatusCode.from_binary(data))
11153 1
        length = struct.unpack('<i', data.read(4))[0]
11154 1
        if length != -1:
11155 1
            for _ in range(0, length):
11156
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
11157 1
        return obj
11158
11159 1
    def __str__(self):
11160
        return 'DeleteSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', ' + \
11161
               'ResponseHeader:' + str(self.ResponseHeader) + ', ' + \
11162
               'Results:' + str(self.Results) + ', ' + \
11163
               'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
11164
11165 1
    __repr__ = __str__
11166
11167
11168 1
class BuildInfo(FrozenClass):
11169
    '''
11170
    :ivar ProductUri:
11171
    :vartype ProductUri: String
11172
    :ivar ManufacturerName:
11173
    :vartype ManufacturerName: String
11174
    :ivar ProductName:
11175
    :vartype ProductName: String
11176
    :ivar SoftwareVersion:
11177
    :vartype SoftwareVersion: String
11178
    :ivar BuildNumber:
11179
    :vartype BuildNumber: String
11180
    :ivar BuildDate:
11181
    :vartype BuildDate: DateTime
11182
    '''
11183 1
    def __init__(self):
11184
        self.ProductUri = ''
11185
        self.ManufacturerName = ''
11186
        self.ProductName = ''
11187
        self.SoftwareVersion = ''
11188
        self.BuildNumber = ''
11189
        self.BuildDate = datetime.now()
11190
        self._freeze()
11191
11192 1
    def to_binary(self):
11193
        packet = []
11194
        packet.append(pack_uatype('String', self.ProductUri))
11195
        packet.append(pack_uatype('String', self.ManufacturerName))
11196
        packet.append(pack_uatype('String', self.ProductName))
11197
        packet.append(pack_uatype('String', self.SoftwareVersion))
11198
        packet.append(pack_uatype('String', self.BuildNumber))
11199
        packet.append(pack_uatype('DateTime', self.BuildDate))
11200
        return b''.join(packet)
11201
11202 1
    @staticmethod
11203
    def from_binary(data):
11204
        obj = BuildInfo()
11205
        obj.ProductUri = unpack_uatype('String', data)
11206
        obj.ManufacturerName = unpack_uatype('String', data)
11207
        obj.ProductName = unpack_uatype('String', data)
11208
        obj.SoftwareVersion = unpack_uatype('String', data)
11209
        obj.BuildNumber = unpack_uatype('String', data)
11210
        obj.BuildDate = unpack_uatype('DateTime', data)
11211
        return obj
11212
11213 1
    def __str__(self):
11214
        return 'BuildInfo(' + 'ProductUri:' + str(self.ProductUri) + ', ' + \
11215
               'ManufacturerName:' + str(self.ManufacturerName) + ', ' + \
11216
               'ProductName:' + str(self.ProductName) + ', ' + \
11217
               'SoftwareVersion:' + str(self.SoftwareVersion) + ', ' + \
11218
               'BuildNumber:' + str(self.BuildNumber) + ', ' + \
11219
               'BuildDate:' + str(self.BuildDate) + ')'
11220
11221 1
    __repr__ = __str__
11222
11223
11224 1
class RedundantServerDataType(FrozenClass):
11225
    '''
11226
    :ivar ServerId:
11227
    :vartype ServerId: String
11228
    :ivar ServiceLevel:
11229
    :vartype ServiceLevel: Byte
11230
    :ivar ServerState:
11231
    :vartype ServerState: ServerState
11232
    '''
11233 1
    def __init__(self):
11234
        self.ServerId = ''
11235
        self.ServiceLevel = 0
11236
        self.ServerState = 0
11237
        self._freeze()
11238
11239 1
    def to_binary(self):
11240
        packet = []
11241
        packet.append(pack_uatype('String', self.ServerId))
11242
        packet.append(pack_uatype('Byte', self.ServiceLevel))
11243
        packet.append(pack_uatype('UInt32', self.ServerState))
11244
        return b''.join(packet)
11245
11246 1
    @staticmethod
11247
    def from_binary(data):
11248
        obj = RedundantServerDataType()
11249
        obj.ServerId = unpack_uatype('String', data)
11250
        obj.ServiceLevel = unpack_uatype('Byte', data)
11251
        obj.ServerState = unpack_uatype('UInt32', data)
11252
        return obj
11253
11254 1
    def __str__(self):
11255
        return 'RedundantServerDataType(' + 'ServerId:' + str(self.ServerId) + ', ' + \
11256
               'ServiceLevel:' + str(self.ServiceLevel) + ', ' + \
11257
               'ServerState:' + str(self.ServerState) + ')'
11258
11259 1
    __repr__ = __str__
11260
11261
11262 1
class EndpointUrlListDataType(FrozenClass):
11263
    '''
11264
    :ivar EndpointUrlList:
11265
    :vartype EndpointUrlList: String
11266
    '''
11267 1
    def __init__(self):
11268
        self.EndpointUrlList = []
11269
        self._freeze()
11270
11271 1
    def to_binary(self):
11272
        packet = []
11273
        packet.append(struct.pack('<i', len(self.EndpointUrlList)))
11274
        for fieldname in self.EndpointUrlList:
11275
            packet.append(pack_uatype('String', fieldname))
11276
        return b''.join(packet)
11277
11278 1
    @staticmethod
11279
    def from_binary(data):
11280
        obj = EndpointUrlListDataType()
11281
        obj.EndpointUrlList = unpack_uatype_array('String', data)
11282
        return obj
11283
11284 1
    def __str__(self):
11285
        return 'EndpointUrlListDataType(' + 'EndpointUrlList:' + str(self.EndpointUrlList) + ')'
11286
11287 1
    __repr__ = __str__
11288
11289
11290 1
class NetworkGroupDataType(FrozenClass):
11291
    '''
11292
    :ivar ServerUri:
11293
    :vartype ServerUri: String
11294
    :ivar NetworkPaths:
11295
    :vartype NetworkPaths: EndpointUrlListDataType
11296
    '''
11297 1
    def __init__(self):
11298
        self.ServerUri = ''
11299
        self.NetworkPaths = []
11300
        self._freeze()
11301
11302 1
    def to_binary(self):
11303
        packet = []
11304
        packet.append(pack_uatype('String', self.ServerUri))
11305
        packet.append(struct.pack('<i', len(self.NetworkPaths)))
11306
        for fieldname in self.NetworkPaths:
11307
            packet.append(fieldname.to_binary())
11308
        return b''.join(packet)
11309
11310 1
    @staticmethod
11311
    def from_binary(data):
11312
        obj = NetworkGroupDataType()
11313
        obj.ServerUri = unpack_uatype('String', data)
11314
        length = struct.unpack('<i', data.read(4))[0]
11315
        if length != -1:
11316
            for _ in range(0, length):
11317
                obj.NetworkPaths.append(EndpointUrlListDataType.from_binary(data))
11318
        return obj
11319
11320 1
    def __str__(self):
11321
        return 'NetworkGroupDataType(' + 'ServerUri:' + str(self.ServerUri) + ', ' + \
11322
               'NetworkPaths:' + str(self.NetworkPaths) + ')'
11323
11324 1
    __repr__ = __str__
11325
11326
11327 1
class SamplingIntervalDiagnosticsDataType(FrozenClass):
11328
    '''
11329
    :ivar SamplingInterval:
11330
    :vartype SamplingInterval: Double
11331
    :ivar MonitoredItemCount:
11332
    :vartype MonitoredItemCount: UInt32
11333
    :ivar MaxMonitoredItemCount:
11334
    :vartype MaxMonitoredItemCount: UInt32
11335
    :ivar DisabledMonitoredItemCount:
11336
    :vartype DisabledMonitoredItemCount: UInt32
11337
    '''
11338 1
    def __init__(self):
11339
        self.SamplingInterval = 0
11340
        self.MonitoredItemCount = 0
11341
        self.MaxMonitoredItemCount = 0
11342
        self.DisabledMonitoredItemCount = 0
11343
        self._freeze()
11344
11345 1
    def to_binary(self):
11346
        packet = []
11347
        packet.append(pack_uatype('Double', self.SamplingInterval))
11348
        packet.append(pack_uatype('UInt32', self.MonitoredItemCount))
11349
        packet.append(pack_uatype('UInt32', self.MaxMonitoredItemCount))
11350
        packet.append(pack_uatype('UInt32', self.DisabledMonitoredItemCount))
11351
        return b''.join(packet)
11352
11353 1
    @staticmethod
11354
    def from_binary(data):
11355
        obj = SamplingIntervalDiagnosticsDataType()
11356
        obj.SamplingInterval = unpack_uatype('Double', data)
11357
        obj.MonitoredItemCount = unpack_uatype('UInt32', data)
11358
        obj.MaxMonitoredItemCount = unpack_uatype('UInt32', data)
11359
        obj.DisabledMonitoredItemCount = unpack_uatype('UInt32', data)
11360
        return obj
11361
11362 1
    def __str__(self):
11363
        return 'SamplingIntervalDiagnosticsDataType(' + 'SamplingInterval:' + str(self.SamplingInterval) + ', ' + \
11364
               'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', ' + \
11365
               'MaxMonitoredItemCount:' + str(self.MaxMonitoredItemCount) + ', ' + \
11366
               'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ')'
11367
11368 1
    __repr__ = __str__
11369
11370
11371 1
class ServerDiagnosticsSummaryDataType(FrozenClass):
11372
    '''
11373
    :ivar ServerViewCount:
11374
    :vartype ServerViewCount: UInt32
11375
    :ivar CurrentSessionCount:
11376
    :vartype CurrentSessionCount: UInt32
11377
    :ivar CumulatedSessionCount:
11378
    :vartype CumulatedSessionCount: UInt32
11379
    :ivar SecurityRejectedSessionCount:
11380
    :vartype SecurityRejectedSessionCount: UInt32
11381
    :ivar RejectedSessionCount:
11382
    :vartype RejectedSessionCount: UInt32
11383
    :ivar SessionTimeoutCount:
11384
    :vartype SessionTimeoutCount: UInt32
11385
    :ivar SessionAbortCount:
11386
    :vartype SessionAbortCount: UInt32
11387
    :ivar CurrentSubscriptionCount:
11388
    :vartype CurrentSubscriptionCount: UInt32
11389
    :ivar CumulatedSubscriptionCount:
11390
    :vartype CumulatedSubscriptionCount: UInt32
11391
    :ivar PublishingIntervalCount:
11392
    :vartype PublishingIntervalCount: UInt32
11393
    :ivar SecurityRejectedRequestsCount:
11394
    :vartype SecurityRejectedRequestsCount: UInt32
11395
    :ivar RejectedRequestsCount:
11396
    :vartype RejectedRequestsCount: UInt32
11397
    '''
11398 1
    def __init__(self):
11399
        self.ServerViewCount = 0
11400
        self.CurrentSessionCount = 0
11401
        self.CumulatedSessionCount = 0
11402
        self.SecurityRejectedSessionCount = 0
11403
        self.RejectedSessionCount = 0
11404
        self.SessionTimeoutCount = 0
11405
        self.SessionAbortCount = 0
11406
        self.CurrentSubscriptionCount = 0
11407
        self.CumulatedSubscriptionCount = 0
11408
        self.PublishingIntervalCount = 0
11409
        self.SecurityRejectedRequestsCount = 0
11410
        self.RejectedRequestsCount = 0
11411
        self._freeze()
11412
11413 1
    def to_binary(self):
11414
        packet = []
11415
        packet.append(pack_uatype('UInt32', self.ServerViewCount))
11416
        packet.append(pack_uatype('UInt32', self.CurrentSessionCount))
11417
        packet.append(pack_uatype('UInt32', self.CumulatedSessionCount))
11418
        packet.append(pack_uatype('UInt32', self.SecurityRejectedSessionCount))
11419
        packet.append(pack_uatype('UInt32', self.RejectedSessionCount))
11420
        packet.append(pack_uatype('UInt32', self.SessionTimeoutCount))
11421
        packet.append(pack_uatype('UInt32', self.SessionAbortCount))
11422
        packet.append(pack_uatype('UInt32', self.CurrentSubscriptionCount))
11423
        packet.append(pack_uatype('UInt32', self.CumulatedSubscriptionCount))
11424
        packet.append(pack_uatype('UInt32', self.PublishingIntervalCount))
11425
        packet.append(pack_uatype('UInt32', self.SecurityRejectedRequestsCount))
11426
        packet.append(pack_uatype('UInt32', self.RejectedRequestsCount))
11427
        return b''.join(packet)
11428
11429 1
    @staticmethod
11430
    def from_binary(data):
11431
        obj = ServerDiagnosticsSummaryDataType()
11432
        obj.ServerViewCount = unpack_uatype('UInt32', data)
11433
        obj.CurrentSessionCount = unpack_uatype('UInt32', data)
11434
        obj.CumulatedSessionCount = unpack_uatype('UInt32', data)
11435
        obj.SecurityRejectedSessionCount = unpack_uatype('UInt32', data)
11436
        obj.RejectedSessionCount = unpack_uatype('UInt32', data)
11437
        obj.SessionTimeoutCount = unpack_uatype('UInt32', data)
11438
        obj.SessionAbortCount = unpack_uatype('UInt32', data)
11439
        obj.CurrentSubscriptionCount = unpack_uatype('UInt32', data)
11440
        obj.CumulatedSubscriptionCount = unpack_uatype('UInt32', data)
11441
        obj.PublishingIntervalCount = unpack_uatype('UInt32', data)
11442
        obj.SecurityRejectedRequestsCount = unpack_uatype('UInt32', data)
11443
        obj.RejectedRequestsCount = unpack_uatype('UInt32', data)
11444
        return obj
11445
11446 1
    def __str__(self):
11447
        return 'ServerDiagnosticsSummaryDataType(' + 'ServerViewCount:' + str(self.ServerViewCount) + ', ' + \
11448
               'CurrentSessionCount:' + str(self.CurrentSessionCount) + ', ' + \
11449
               'CumulatedSessionCount:' + str(self.CumulatedSessionCount) + ', ' + \
11450
               'SecurityRejectedSessionCount:' + str(self.SecurityRejectedSessionCount) + ', ' + \
11451
               'RejectedSessionCount:' + str(self.RejectedSessionCount) + ', ' + \
11452
               'SessionTimeoutCount:' + str(self.SessionTimeoutCount) + ', ' + \
11453
               'SessionAbortCount:' + str(self.SessionAbortCount) + ', ' + \
11454
               'CurrentSubscriptionCount:' + str(self.CurrentSubscriptionCount) + ', ' + \
11455
               'CumulatedSubscriptionCount:' + str(self.CumulatedSubscriptionCount) + ', ' + \
11456
               'PublishingIntervalCount:' + str(self.PublishingIntervalCount) + ', ' + \
11457
               'SecurityRejectedRequestsCount:' + str(self.SecurityRejectedRequestsCount) + ', ' + \
11458
               'RejectedRequestsCount:' + str(self.RejectedRequestsCount) + ')'
11459
11460 1
    __repr__ = __str__
11461
11462
11463 1
class ServerStatusDataType(FrozenClass):
11464
    '''
11465
    :ivar StartTime:
11466
    :vartype StartTime: DateTime
11467
    :ivar CurrentTime:
11468
    :vartype CurrentTime: DateTime
11469
    :ivar State:
11470
    :vartype State: ServerState
11471
    :ivar BuildInfo:
11472
    :vartype BuildInfo: BuildInfo
11473
    :ivar SecondsTillShutdown:
11474
    :vartype SecondsTillShutdown: UInt32
11475
    :ivar ShutdownReason:
11476
    :vartype ShutdownReason: LocalizedText
11477
    '''
11478 1
    def __init__(self):
11479
        self.StartTime = datetime.now()
11480
        self.CurrentTime = datetime.now()
11481
        self.State = 0
11482
        self.BuildInfo = BuildInfo()
11483
        self.SecondsTillShutdown = 0
11484
        self.ShutdownReason = LocalizedText()
11485
        self._freeze()
11486
11487 1
    def to_binary(self):
11488
        packet = []
11489
        packet.append(pack_uatype('DateTime', self.StartTime))
11490
        packet.append(pack_uatype('DateTime', self.CurrentTime))
11491
        packet.append(pack_uatype('UInt32', self.State))
11492
        packet.append(self.BuildInfo.to_binary())
11493
        packet.append(pack_uatype('UInt32', self.SecondsTillShutdown))
11494
        packet.append(self.ShutdownReason.to_binary())
11495
        return b''.join(packet)
11496
11497 1
    @staticmethod
11498
    def from_binary(data):
11499
        obj = ServerStatusDataType()
11500
        obj.StartTime = unpack_uatype('DateTime', data)
11501
        obj.CurrentTime = unpack_uatype('DateTime', data)
11502
        obj.State = unpack_uatype('UInt32', data)
11503
        obj.BuildInfo = BuildInfo.from_binary(data)
11504
        obj.SecondsTillShutdown = unpack_uatype('UInt32', data)
11505
        obj.ShutdownReason = LocalizedText.from_binary(data)
11506
        return obj
11507
11508 1
    def __str__(self):
11509
        return 'ServerStatusDataType(' + 'StartTime:' + str(self.StartTime) + ', ' + \
11510
               'CurrentTime:' + str(self.CurrentTime) + ', ' + \
11511
               'State:' + str(self.State) + ', ' + \
11512
               'BuildInfo:' + str(self.BuildInfo) + ', ' + \
11513
               'SecondsTillShutdown:' + str(self.SecondsTillShutdown) + ', ' + \
11514
               'ShutdownReason:' + str(self.ShutdownReason) + ')'
11515
11516 1
    __repr__ = __str__
11517
11518
11519 1
class SessionDiagnosticsDataType(FrozenClass):
11520
    '''
11521
    :ivar SessionId:
11522
    :vartype SessionId: NodeId
11523
    :ivar SessionName:
11524
    :vartype SessionName: String
11525
    :ivar ClientDescription:
11526
    :vartype ClientDescription: ApplicationDescription
11527
    :ivar ServerUri:
11528
    :vartype ServerUri: String
11529
    :ivar EndpointUrl:
11530
    :vartype EndpointUrl: String
11531
    :ivar LocaleIds:
11532
    :vartype LocaleIds: String
11533
    :ivar ActualSessionTimeout:
11534
    :vartype ActualSessionTimeout: Double
11535
    :ivar MaxResponseMessageSize:
11536
    :vartype MaxResponseMessageSize: UInt32
11537
    :ivar ClientConnectionTime:
11538
    :vartype ClientConnectionTime: DateTime
11539
    :ivar ClientLastContactTime:
11540
    :vartype ClientLastContactTime: DateTime
11541
    :ivar CurrentSubscriptionsCount:
11542
    :vartype CurrentSubscriptionsCount: UInt32
11543
    :ivar CurrentMonitoredItemsCount:
11544
    :vartype CurrentMonitoredItemsCount: UInt32
11545
    :ivar CurrentPublishRequestsInQueue:
11546
    :vartype CurrentPublishRequestsInQueue: UInt32
11547
    :ivar TotalRequestCount:
11548
    :vartype TotalRequestCount: ServiceCounterDataType
11549
    :ivar UnauthorizedRequestCount:
11550
    :vartype UnauthorizedRequestCount: UInt32
11551
    :ivar ReadCount:
11552
    :vartype ReadCount: ServiceCounterDataType
11553
    :ivar HistoryReadCount:
11554
    :vartype HistoryReadCount: ServiceCounterDataType
11555
    :ivar WriteCount:
11556
    :vartype WriteCount: ServiceCounterDataType
11557
    :ivar HistoryUpdateCount:
11558
    :vartype HistoryUpdateCount: ServiceCounterDataType
11559
    :ivar CallCount:
11560
    :vartype CallCount: ServiceCounterDataType
11561
    :ivar CreateMonitoredItemsCount:
11562
    :vartype CreateMonitoredItemsCount: ServiceCounterDataType
11563
    :ivar ModifyMonitoredItemsCount:
11564
    :vartype ModifyMonitoredItemsCount: ServiceCounterDataType
11565
    :ivar SetMonitoringModeCount:
11566
    :vartype SetMonitoringModeCount: ServiceCounterDataType
11567
    :ivar SetTriggeringCount:
11568
    :vartype SetTriggeringCount: ServiceCounterDataType
11569
    :ivar DeleteMonitoredItemsCount:
11570
    :vartype DeleteMonitoredItemsCount: ServiceCounterDataType
11571
    :ivar CreateSubscriptionCount:
11572
    :vartype CreateSubscriptionCount: ServiceCounterDataType
11573
    :ivar ModifySubscriptionCount:
11574
    :vartype ModifySubscriptionCount: ServiceCounterDataType
11575
    :ivar SetPublishingModeCount:
11576
    :vartype SetPublishingModeCount: ServiceCounterDataType
11577
    :ivar PublishCount:
11578
    :vartype PublishCount: ServiceCounterDataType
11579
    :ivar RepublishCount:
11580
    :vartype RepublishCount: ServiceCounterDataType
11581
    :ivar TransferSubscriptionsCount:
11582
    :vartype TransferSubscriptionsCount: ServiceCounterDataType
11583
    :ivar DeleteSubscriptionsCount:
11584
    :vartype DeleteSubscriptionsCount: ServiceCounterDataType
11585
    :ivar AddNodesCount:
11586
    :vartype AddNodesCount: ServiceCounterDataType
11587
    :ivar AddReferencesCount:
11588
    :vartype AddReferencesCount: ServiceCounterDataType
11589
    :ivar DeleteNodesCount:
11590
    :vartype DeleteNodesCount: ServiceCounterDataType
11591
    :ivar DeleteReferencesCount:
11592
    :vartype DeleteReferencesCount: ServiceCounterDataType
11593
    :ivar BrowseCount:
11594
    :vartype BrowseCount: ServiceCounterDataType
11595
    :ivar BrowseNextCount:
11596
    :vartype BrowseNextCount: ServiceCounterDataType
11597
    :ivar TranslateBrowsePathsToNodeIdsCount:
11598
    :vartype TranslateBrowsePathsToNodeIdsCount: ServiceCounterDataType
11599
    :ivar QueryFirstCount:
11600
    :vartype QueryFirstCount: ServiceCounterDataType
11601
    :ivar QueryNextCount:
11602
    :vartype QueryNextCount: ServiceCounterDataType
11603
    :ivar RegisterNodesCount:
11604
    :vartype RegisterNodesCount: ServiceCounterDataType
11605
    :ivar UnregisterNodesCount:
11606
    :vartype UnregisterNodesCount: ServiceCounterDataType
11607
    '''
11608 1
    def __init__(self):
11609
        self.SessionId = NodeId()
11610
        self.SessionName = ''
11611
        self.ClientDescription = ApplicationDescription()
11612
        self.ServerUri = ''
11613
        self.EndpointUrl = ''
11614
        self.LocaleIds = []
11615
        self.ActualSessionTimeout = 0
11616
        self.MaxResponseMessageSize = 0
11617
        self.ClientConnectionTime = datetime.now()
11618
        self.ClientLastContactTime = datetime.now()
11619
        self.CurrentSubscriptionsCount = 0
11620
        self.CurrentMonitoredItemsCount = 0
11621
        self.CurrentPublishRequestsInQueue = 0
11622
        self.TotalRequestCount = ServiceCounterDataType()
11623
        self.UnauthorizedRequestCount = 0
11624
        self.ReadCount = ServiceCounterDataType()
11625
        self.HistoryReadCount = ServiceCounterDataType()
11626
        self.WriteCount = ServiceCounterDataType()
11627
        self.HistoryUpdateCount = ServiceCounterDataType()
11628
        self.CallCount = ServiceCounterDataType()
11629
        self.CreateMonitoredItemsCount = ServiceCounterDataType()
11630
        self.ModifyMonitoredItemsCount = ServiceCounterDataType()
11631
        self.SetMonitoringModeCount = ServiceCounterDataType()
11632
        self.SetTriggeringCount = ServiceCounterDataType()
11633
        self.DeleteMonitoredItemsCount = ServiceCounterDataType()
11634
        self.CreateSubscriptionCount = ServiceCounterDataType()
11635
        self.ModifySubscriptionCount = ServiceCounterDataType()
11636
        self.SetPublishingModeCount = ServiceCounterDataType()
11637
        self.PublishCount = ServiceCounterDataType()
11638
        self.RepublishCount = ServiceCounterDataType()
11639
        self.TransferSubscriptionsCount = ServiceCounterDataType()
11640
        self.DeleteSubscriptionsCount = ServiceCounterDataType()
11641
        self.AddNodesCount = ServiceCounterDataType()
11642
        self.AddReferencesCount = ServiceCounterDataType()
11643
        self.DeleteNodesCount = ServiceCounterDataType()
11644
        self.DeleteReferencesCount = ServiceCounterDataType()
11645
        self.BrowseCount = ServiceCounterDataType()
11646
        self.BrowseNextCount = ServiceCounterDataType()
11647
        self.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType()
11648
        self.QueryFirstCount = ServiceCounterDataType()
11649
        self.QueryNextCount = ServiceCounterDataType()
11650
        self.RegisterNodesCount = ServiceCounterDataType()
11651
        self.UnregisterNodesCount = ServiceCounterDataType()
11652
        self._freeze()
11653
11654 1
    def to_binary(self):
11655
        packet = []
11656
        packet.append(self.SessionId.to_binary())
11657
        packet.append(pack_uatype('String', self.SessionName))
11658
        packet.append(self.ClientDescription.to_binary())
11659
        packet.append(pack_uatype('String', self.ServerUri))
11660
        packet.append(pack_uatype('String', self.EndpointUrl))
11661
        packet.append(struct.pack('<i', len(self.LocaleIds)))
11662
        for fieldname in self.LocaleIds:
11663
            packet.append(pack_uatype('String', fieldname))
11664
        packet.append(pack_uatype('Double', self.ActualSessionTimeout))
11665
        packet.append(pack_uatype('UInt32', self.MaxResponseMessageSize))
11666
        packet.append(pack_uatype('DateTime', self.ClientConnectionTime))
11667
        packet.append(pack_uatype('DateTime', self.ClientLastContactTime))
11668
        packet.append(pack_uatype('UInt32', self.CurrentSubscriptionsCount))
11669
        packet.append(pack_uatype('UInt32', self.CurrentMonitoredItemsCount))
11670
        packet.append(pack_uatype('UInt32', self.CurrentPublishRequestsInQueue))
11671
        packet.append(self.TotalRequestCount.to_binary())
11672
        packet.append(pack_uatype('UInt32', self.UnauthorizedRequestCount))
11673
        packet.append(self.ReadCount.to_binary())
11674
        packet.append(self.HistoryReadCount.to_binary())
11675
        packet.append(self.WriteCount.to_binary())
11676
        packet.append(self.HistoryUpdateCount.to_binary())
11677
        packet.append(self.CallCount.to_binary())
11678
        packet.append(self.CreateMonitoredItemsCount.to_binary())
11679
        packet.append(self.ModifyMonitoredItemsCount.to_binary())
11680
        packet.append(self.SetMonitoringModeCount.to_binary())
11681
        packet.append(self.SetTriggeringCount.to_binary())
11682
        packet.append(self.DeleteMonitoredItemsCount.to_binary())
11683
        packet.append(self.CreateSubscriptionCount.to_binary())
11684
        packet.append(self.ModifySubscriptionCount.to_binary())
11685
        packet.append(self.SetPublishingModeCount.to_binary())
11686
        packet.append(self.PublishCount.to_binary())
11687
        packet.append(self.RepublishCount.to_binary())
11688
        packet.append(self.TransferSubscriptionsCount.to_binary())
11689
        packet.append(self.DeleteSubscriptionsCount.to_binary())
11690
        packet.append(self.AddNodesCount.to_binary())
11691
        packet.append(self.AddReferencesCount.to_binary())
11692
        packet.append(self.DeleteNodesCount.to_binary())
11693
        packet.append(self.DeleteReferencesCount.to_binary())
11694
        packet.append(self.BrowseCount.to_binary())
11695
        packet.append(self.BrowseNextCount.to_binary())
11696
        packet.append(self.TranslateBrowsePathsToNodeIdsCount.to_binary())
11697
        packet.append(self.QueryFirstCount.to_binary())
11698
        packet.append(self.QueryNextCount.to_binary())
11699
        packet.append(self.RegisterNodesCount.to_binary())
11700
        packet.append(self.UnregisterNodesCount.to_binary())
11701
        return b''.join(packet)
11702
11703 1
    @staticmethod
11704
    def from_binary(data):
11705
        obj = SessionDiagnosticsDataType()
11706
        obj.SessionId = NodeId.from_binary(data)
11707
        obj.SessionName = unpack_uatype('String', data)
11708
        obj.ClientDescription = ApplicationDescription.from_binary(data)
11709
        obj.ServerUri = unpack_uatype('String', data)
11710
        obj.EndpointUrl = unpack_uatype('String', data)
11711
        obj.LocaleIds = unpack_uatype_array('String', data)
11712
        obj.ActualSessionTimeout = unpack_uatype('Double', data)
11713
        obj.MaxResponseMessageSize = unpack_uatype('UInt32', data)
11714
        obj.ClientConnectionTime = unpack_uatype('DateTime', data)
11715
        obj.ClientLastContactTime = unpack_uatype('DateTime', data)
11716
        obj.CurrentSubscriptionsCount = unpack_uatype('UInt32', data)
11717
        obj.CurrentMonitoredItemsCount = unpack_uatype('UInt32', data)
11718
        obj.CurrentPublishRequestsInQueue = unpack_uatype('UInt32', data)
11719
        obj.TotalRequestCount = ServiceCounterDataType.from_binary(data)
11720
        obj.UnauthorizedRequestCount = unpack_uatype('UInt32', data)
11721
        obj.ReadCount = ServiceCounterDataType.from_binary(data)
11722
        obj.HistoryReadCount = ServiceCounterDataType.from_binary(data)
11723
        obj.WriteCount = ServiceCounterDataType.from_binary(data)
11724
        obj.HistoryUpdateCount = ServiceCounterDataType.from_binary(data)
11725
        obj.CallCount = ServiceCounterDataType.from_binary(data)
11726
        obj.CreateMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11727
        obj.ModifyMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11728
        obj.SetMonitoringModeCount = ServiceCounterDataType.from_binary(data)
11729
        obj.SetTriggeringCount = ServiceCounterDataType.from_binary(data)
11730
        obj.DeleteMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11731
        obj.CreateSubscriptionCount = ServiceCounterDataType.from_binary(data)
11732
        obj.ModifySubscriptionCount = ServiceCounterDataType.from_binary(data)
11733
        obj.SetPublishingModeCount = ServiceCounterDataType.from_binary(data)
11734
        obj.PublishCount = ServiceCounterDataType.from_binary(data)
11735
        obj.RepublishCount = ServiceCounterDataType.from_binary(data)
11736
        obj.TransferSubscriptionsCount = ServiceCounterDataType.from_binary(data)
11737
        obj.DeleteSubscriptionsCount = ServiceCounterDataType.from_binary(data)
11738
        obj.AddNodesCount = ServiceCounterDataType.from_binary(data)
11739
        obj.AddReferencesCount = ServiceCounterDataType.from_binary(data)
11740
        obj.DeleteNodesCount = ServiceCounterDataType.from_binary(data)
11741
        obj.DeleteReferencesCount = ServiceCounterDataType.from_binary(data)
11742
        obj.BrowseCount = ServiceCounterDataType.from_binary(data)
11743
        obj.BrowseNextCount = ServiceCounterDataType.from_binary(data)
11744
        obj.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType.from_binary(data)
11745
        obj.QueryFirstCount = ServiceCounterDataType.from_binary(data)
11746
        obj.QueryNextCount = ServiceCounterDataType.from_binary(data)
11747
        obj.RegisterNodesCount = ServiceCounterDataType.from_binary(data)
11748
        obj.UnregisterNodesCount = ServiceCounterDataType.from_binary(data)
11749
        return obj
11750
11751 1
    def __str__(self):
11752
        return 'SessionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', ' + \
11753
               'SessionName:' + str(self.SessionName) + ', ' + \
11754
               'ClientDescription:' + str(self.ClientDescription) + ', ' + \
11755
               'ServerUri:' + str(self.ServerUri) + ', ' + \
11756
               'EndpointUrl:' + str(self.EndpointUrl) + ', ' + \
11757
               'LocaleIds:' + str(self.LocaleIds) + ', ' + \
11758
               'ActualSessionTimeout:' + str(self.ActualSessionTimeout) + ', ' + \
11759
               'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ', ' + \
11760
               'ClientConnectionTime:' + str(self.ClientConnectionTime) + ', ' + \
11761
               'ClientLastContactTime:' + str(self.ClientLastContactTime) + ', ' + \
11762
               'CurrentSubscriptionsCount:' + str(self.CurrentSubscriptionsCount) + ', ' + \
11763
               'CurrentMonitoredItemsCount:' + str(self.CurrentMonitoredItemsCount) + ', ' + \
11764
               'CurrentPublishRequestsInQueue:' + str(self.CurrentPublishRequestsInQueue) + ', ' + \
11765
               'TotalRequestCount:' + str(self.TotalRequestCount) + ', ' + \
11766
               'UnauthorizedRequestCount:' + str(self.UnauthorizedRequestCount) + ', ' + \
11767
               'ReadCount:' + str(self.ReadCount) + ', ' + \
11768
               'HistoryReadCount:' + str(self.HistoryReadCount) + ', ' + \
11769
               'WriteCount:' + str(self.WriteCount) + ', ' + \
11770
               'HistoryUpdateCount:' + str(self.HistoryUpdateCount) + ', ' + \
11771
               'CallCount:' + str(self.CallCount) + ', ' + \
11772
               'CreateMonitoredItemsCount:' + str(self.CreateMonitoredItemsCount) + ', ' + \
11773
               'ModifyMonitoredItemsCount:' + str(self.ModifyMonitoredItemsCount) + ', ' + \
11774
               'SetMonitoringModeCount:' + str(self.SetMonitoringModeCount) + ', ' + \
11775
               'SetTriggeringCount:' + str(self.SetTriggeringCount) + ', ' + \
11776
               'DeleteMonitoredItemsCount:' + str(self.DeleteMonitoredItemsCount) + ', ' + \
11777
               'CreateSubscriptionCount:' + str(self.CreateSubscriptionCount) + ', ' + \
11778
               'ModifySubscriptionCount:' + str(self.ModifySubscriptionCount) + ', ' + \
11779
               'SetPublishingModeCount:' + str(self.SetPublishingModeCount) + ', ' + \
11780
               'PublishCount:' + str(self.PublishCount) + ', ' + \
11781
               'RepublishCount:' + str(self.RepublishCount) + ', ' + \
11782
               'TransferSubscriptionsCount:' + str(self.TransferSubscriptionsCount) + ', ' + \
11783
               'DeleteSubscriptionsCount:' + str(self.DeleteSubscriptionsCount) + ', ' + \
11784
               'AddNodesCount:' + str(self.AddNodesCount) + ', ' + \
11785
               'AddReferencesCount:' + str(self.AddReferencesCount) + ', ' + \
11786
               'DeleteNodesCount:' + str(self.DeleteNodesCount) + ', ' + \
11787
               'DeleteReferencesCount:' + str(self.DeleteReferencesCount) + ', ' + \
11788
               'BrowseCount:' + str(self.BrowseCount) + ', ' + \
11789
               'BrowseNextCount:' + str(self.BrowseNextCount) + ', ' + \
11790
               'TranslateBrowsePathsToNodeIdsCount:' + str(self.TranslateBrowsePathsToNodeIdsCount) + ', ' + \
11791
               'QueryFirstCount:' + str(self.QueryFirstCount) + ', ' + \
11792
               'QueryNextCount:' + str(self.QueryNextCount) + ', ' + \
11793
               'RegisterNodesCount:' + str(self.RegisterNodesCount) + ', ' + \
11794
               'UnregisterNodesCount:' + str(self.UnregisterNodesCount) + ')'
11795
11796 1
    __repr__ = __str__
11797
11798
11799 1
class SessionSecurityDiagnosticsDataType(FrozenClass):
11800
    '''
11801
    :ivar SessionId:
11802
    :vartype SessionId: NodeId
11803
    :ivar ClientUserIdOfSession:
11804
    :vartype ClientUserIdOfSession: String
11805
    :ivar ClientUserIdHistory:
11806
    :vartype ClientUserIdHistory: String
11807
    :ivar AuthenticationMechanism:
11808
    :vartype AuthenticationMechanism: String
11809
    :ivar Encoding:
11810
    :vartype Encoding: String
11811
    :ivar TransportProtocol:
11812
    :vartype TransportProtocol: String
11813
    :ivar SecurityMode:
11814
    :vartype SecurityMode: MessageSecurityMode
11815
    :ivar SecurityPolicyUri:
11816
    :vartype SecurityPolicyUri: String
11817
    :ivar ClientCertificate:
11818
    :vartype ClientCertificate: ByteString
11819
    '''
11820 1
    def __init__(self):
11821
        self.SessionId = NodeId()
11822
        self.ClientUserIdOfSession = ''
11823
        self.ClientUserIdHistory = []
11824
        self.AuthenticationMechanism = ''
11825
        self.Encoding = ''
11826
        self.TransportProtocol = ''
11827
        self.SecurityMode = 0
11828
        self.SecurityPolicyUri = ''
11829
        self.ClientCertificate = b''
11830
        self._freeze()
11831
11832 1
    def to_binary(self):
11833
        packet = []
11834
        packet.append(self.SessionId.to_binary())
11835
        packet.append(pack_uatype('String', self.ClientUserIdOfSession))
11836
        packet.append(struct.pack('<i', len(self.ClientUserIdHistory)))
11837
        for fieldname in self.ClientUserIdHistory:
11838
            packet.append(pack_uatype('String', fieldname))
11839
        packet.append(pack_uatype('String', self.AuthenticationMechanism))
11840
        packet.append(pack_uatype('String', self.Encoding))
11841
        packet.append(pack_uatype('String', self.TransportProtocol))
11842
        packet.append(pack_uatype('UInt32', self.SecurityMode))
11843
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
11844
        packet.append(pack_uatype('ByteString', self.ClientCertificate))
11845
        return b''.join(packet)
11846
11847 1
    @staticmethod
11848
    def from_binary(data):
11849
        obj = SessionSecurityDiagnosticsDataType()
11850
        obj.SessionId = NodeId.from_binary(data)
11851
        obj.ClientUserIdOfSession = unpack_uatype('String', data)
11852
        obj.ClientUserIdHistory = unpack_uatype_array('String', data)
11853
        obj.AuthenticationMechanism = unpack_uatype('String', data)
11854
        obj.Encoding = unpack_uatype('String', data)
11855
        obj.TransportProtocol = unpack_uatype('String', data)
11856
        obj.SecurityMode = unpack_uatype('UInt32', data)
11857
        obj.SecurityPolicyUri = unpack_uatype('String', data)
11858
        obj.ClientCertificate = unpack_uatype('ByteString', data)
11859
        return obj
11860
11861 1
    def __str__(self):
11862
        return 'SessionSecurityDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', ' + \
11863
               'ClientUserIdOfSession:' + str(self.ClientUserIdOfSession) + ', ' + \
11864
               'ClientUserIdHistory:' + str(self.ClientUserIdHistory) + ', ' + \
11865
               'AuthenticationMechanism:' + str(self.AuthenticationMechanism) + ', ' + \
11866
               'Encoding:' + str(self.Encoding) + ', ' + \
11867
               'TransportProtocol:' + str(self.TransportProtocol) + ', ' + \
11868
               'SecurityMode:' + str(self.SecurityMode) + ', ' + \
11869
               'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', ' + \
11870
               'ClientCertificate:' + str(self.ClientCertificate) + ')'
11871
11872 1
    __repr__ = __str__
11873
11874
11875 1
class ServiceCounterDataType(FrozenClass):
11876
    '''
11877
    :ivar TotalCount:
11878
    :vartype TotalCount: UInt32
11879
    :ivar ErrorCount:
11880
    :vartype ErrorCount: UInt32
11881
    '''
11882 1
    def __init__(self):
11883
        self.TotalCount = 0
11884
        self.ErrorCount = 0
11885
        self._freeze()
11886
11887 1
    def to_binary(self):
11888
        packet = []
11889
        packet.append(pack_uatype('UInt32', self.TotalCount))
11890
        packet.append(pack_uatype('UInt32', self.ErrorCount))
11891
        return b''.join(packet)
11892
11893 1
    @staticmethod
11894
    def from_binary(data):
11895
        obj = ServiceCounterDataType()
11896
        obj.TotalCount = unpack_uatype('UInt32', data)
11897
        obj.ErrorCount = unpack_uatype('UInt32', data)
11898
        return obj
11899
11900 1
    def __str__(self):
11901
        return 'ServiceCounterDataType(' + 'TotalCount:' + str(self.TotalCount) + ', ' + \
11902
               'ErrorCount:' + str(self.ErrorCount) + ')'
11903
11904 1
    __repr__ = __str__
11905
11906
11907 1
class StatusResult(FrozenClass):
11908
    '''
11909
    :ivar StatusCode:
11910
    :vartype StatusCode: StatusCode
11911
    :ivar DiagnosticInfo:
11912
    :vartype DiagnosticInfo: DiagnosticInfo
11913
    '''
11914 1
    def __init__(self):
11915
        self.StatusCode = StatusCode()
11916
        self.DiagnosticInfo = DiagnosticInfo()
11917
        self._freeze()
11918
11919 1
    def to_binary(self):
11920
        packet = []
11921
        packet.append(self.StatusCode.to_binary())
11922
        packet.append(self.DiagnosticInfo.to_binary())
11923
        return b''.join(packet)
11924
11925 1
    @staticmethod
11926
    def from_binary(data):
11927
        obj = StatusResult()
11928
        obj.StatusCode = StatusCode.from_binary(data)
11929
        obj.DiagnosticInfo = DiagnosticInfo.from_binary(data)
11930
        return obj
11931
11932 1
    def __str__(self):
11933
        return 'StatusResult(' + 'StatusCode:' + str(self.StatusCode) + ', ' + \
11934
               'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
11935
11936 1
    __repr__ = __str__
11937
11938
11939 1
class SubscriptionDiagnosticsDataType(FrozenClass):
11940
    '''
11941
    :ivar SessionId:
11942
    :vartype SessionId: NodeId
11943
    :ivar SubscriptionId:
11944
    :vartype SubscriptionId: UInt32
11945
    :ivar Priority:
11946
    :vartype Priority: Byte
11947
    :ivar PublishingInterval:
11948
    :vartype PublishingInterval: Double
11949
    :ivar MaxKeepAliveCount:
11950
    :vartype MaxKeepAliveCount: UInt32
11951
    :ivar MaxLifetimeCount:
11952
    :vartype MaxLifetimeCount: UInt32
11953
    :ivar MaxNotificationsPerPublish:
11954
    :vartype MaxNotificationsPerPublish: UInt32
11955
    :ivar PublishingEnabled:
11956
    :vartype PublishingEnabled: Boolean
11957
    :ivar ModifyCount:
11958
    :vartype ModifyCount: UInt32
11959
    :ivar EnableCount:
11960
    :vartype EnableCount: UInt32
11961
    :ivar DisableCount:
11962
    :vartype DisableCount: UInt32
11963
    :ivar RepublishRequestCount:
11964
    :vartype RepublishRequestCount: UInt32
11965
    :ivar RepublishMessageRequestCount:
11966
    :vartype RepublishMessageRequestCount: UInt32
11967
    :ivar RepublishMessageCount:
11968
    :vartype RepublishMessageCount: UInt32
11969
    :ivar TransferRequestCount:
11970
    :vartype TransferRequestCount: UInt32
11971
    :ivar TransferredToAltClientCount:
11972
    :vartype TransferredToAltClientCount: UInt32
11973
    :ivar TransferredToSameClientCount:
11974
    :vartype TransferredToSameClientCount: UInt32
11975
    :ivar PublishRequestCount:
11976
    :vartype PublishRequestCount: UInt32
11977
    :ivar DataChangeNotificationsCount:
11978
    :vartype DataChangeNotificationsCount: UInt32
11979
    :ivar EventNotificationsCount:
11980
    :vartype EventNotificationsCount: UInt32
11981
    :ivar NotificationsCount:
11982
    :vartype NotificationsCount: UInt32
11983
    :ivar LatePublishRequestCount:
11984
    :vartype LatePublishRequestCount: UInt32
11985
    :ivar CurrentKeepAliveCount:
11986
    :vartype CurrentKeepAliveCount: UInt32
11987
    :ivar CurrentLifetimeCount:
11988
    :vartype CurrentLifetimeCount: UInt32
11989
    :ivar UnacknowledgedMessageCount:
11990
    :vartype UnacknowledgedMessageCount: UInt32
11991
    :ivar DiscardedMessageCount:
11992
    :vartype DiscardedMessageCount: UInt32
11993
    :ivar MonitoredItemCount:
11994
    :vartype MonitoredItemCount: UInt32
11995
    :ivar DisabledMonitoredItemCount:
11996
    :vartype DisabledMonitoredItemCount: UInt32
11997
    :ivar MonitoringQueueOverflowCount:
11998
    :vartype MonitoringQueueOverflowCount: UInt32
11999
    :ivar NextSequenceNumber:
12000
    :vartype NextSequenceNumber: UInt32
12001
    :ivar EventQueueOverFlowCount:
12002
    :vartype EventQueueOverFlowCount: UInt32
12003
    '''
12004 1
    def __init__(self):
12005
        self.SessionId = NodeId()
12006
        self.SubscriptionId = 0
12007
        self.Priority = 0
12008
        self.PublishingInterval = 0
12009
        self.MaxKeepAliveCount = 0
12010
        self.MaxLifetimeCount = 0
12011
        self.MaxNotificationsPerPublish = 0
12012
        self.PublishingEnabled = True
12013
        self.ModifyCount = 0
12014
        self.EnableCount = 0
12015
        self.DisableCount = 0
12016
        self.RepublishRequestCount = 0
12017
        self.RepublishMessageRequestCount = 0
12018
        self.RepublishMessageCount = 0
12019
        self.TransferRequestCount = 0
12020
        self.TransferredToAltClientCount = 0
12021
        self.TransferredToSameClientCount = 0
12022
        self.PublishRequestCount = 0
12023
        self.DataChangeNotificationsCount = 0
12024
        self.EventNotificationsCount = 0
12025
        self.NotificationsCount = 0
12026
        self.LatePublishRequestCount = 0
12027
        self.CurrentKeepAliveCount = 0
12028
        self.CurrentLifetimeCount = 0
12029
        self.UnacknowledgedMessageCount = 0
12030
        self.DiscardedMessageCount = 0
12031
        self.MonitoredItemCount = 0
12032
        self.DisabledMonitoredItemCount = 0
12033
        self.MonitoringQueueOverflowCount = 0
12034
        self.NextSequenceNumber = 0
12035
        self.EventQueueOverFlowCount = 0
12036
        self._freeze()
12037
12038 1
    def to_binary(self):
12039
        packet = []
12040
        packet.append(self.SessionId.to_binary())
12041
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
12042
        packet.append(pack_uatype('Byte', self.Priority))
12043
        packet.append(pack_uatype('Double', self.PublishingInterval))
12044
        packet.append(pack_uatype('UInt32', self.MaxKeepAliveCount))
12045
        packet.append(pack_uatype('UInt32', self.MaxLifetimeCount))
12046
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
12047
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
12048
        packet.append(pack_uatype('UInt32', self.ModifyCount))
12049
        packet.append(pack_uatype('UInt32', self.EnableCount))
12050
        packet.append(pack_uatype('UInt32', self.DisableCount))
12051
        packet.append(pack_uatype('UInt32', self.RepublishRequestCount))
12052
        packet.append(pack_uatype('UInt32', self.RepublishMessageRequestCount))
12053
        packet.append(pack_uatype('UInt32', self.RepublishMessageCount))
12054
        packet.append(pack_uatype('UInt32', self.TransferRequestCount))
12055
        packet.append(pack_uatype('UInt32', self.TransferredToAltClientCount))
12056
        packet.append(pack_uatype('UInt32', self.TransferredToSameClientCount))
12057
        packet.append(pack_uatype('UInt32', self.PublishRequestCount))
12058
        packet.append(pack_uatype('UInt32', self.DataChangeNotificationsCount))
12059
        packet.append(pack_uatype('UInt32', self.EventNotificationsCount))
12060
        packet.append(pack_uatype('UInt32', self.NotificationsCount))
12061
        packet.append(pack_uatype('UInt32', self.LatePublishRequestCount))
12062
        packet.append(pack_uatype('UInt32', self.CurrentKeepAliveCount))
12063
        packet.append(pack_uatype('UInt32', self.CurrentLifetimeCount))
12064
        packet.append(pack_uatype('UInt32', self.UnacknowledgedMessageCount))
12065
        packet.append(pack_uatype('UInt32', self.DiscardedMessageCount))
12066
        packet.append(pack_uatype('UInt32', self.MonitoredItemCount))
12067
        packet.append(pack_uatype('UInt32', self.DisabledMonitoredItemCount))
12068
        packet.append(pack_uatype('UInt32', self.MonitoringQueueOverflowCount))
12069
        packet.append(pack_uatype('UInt32', self.NextSequenceNumber))
12070
        packet.append(pack_uatype('UInt32', self.EventQueueOverFlowCount))
12071
        return b''.join(packet)
12072
12073 1
    @staticmethod
12074
    def from_binary(data):
12075
        obj = SubscriptionDiagnosticsDataType()
12076
        obj.SessionId = NodeId.from_binary(data)
12077
        obj.SubscriptionId = unpack_uatype('UInt32', data)
12078
        obj.Priority = unpack_uatype('Byte', data)
12079
        obj.PublishingInterval = unpack_uatype('Double', data)
12080
        obj.MaxKeepAliveCount = unpack_uatype('UInt32', data)
12081
        obj.MaxLifetimeCount = unpack_uatype('UInt32', data)
12082
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
12083
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
12084
        obj.ModifyCount = unpack_uatype('UInt32', data)
12085
        obj.EnableCount = unpack_uatype('UInt32', data)
12086
        obj.DisableCount = unpack_uatype('UInt32', data)
12087
        obj.RepublishRequestCount = unpack_uatype('UInt32', data)
12088
        obj.RepublishMessageRequestCount = unpack_uatype('UInt32', data)
12089
        obj.RepublishMessageCount = unpack_uatype('UInt32', data)
12090
        obj.TransferRequestCount = unpack_uatype('UInt32', data)
12091
        obj.TransferredToAltClientCount = unpack_uatype('UInt32', data)
12092
        obj.TransferredToSameClientCount = unpack_uatype('UInt32', data)
12093
        obj.PublishRequestCount = unpack_uatype('UInt32', data)
12094
        obj.DataChangeNotificationsCount = unpack_uatype('UInt32', data)
12095
        obj.EventNotificationsCount = unpack_uatype('UInt32', data)
12096
        obj.NotificationsCount = unpack_uatype('UInt32', data)
12097
        obj.LatePublishRequestCount = unpack_uatype('UInt32', data)
12098
        obj.CurrentKeepAliveCount = unpack_uatype('UInt32', data)
12099
        obj.CurrentLifetimeCount = unpack_uatype('UInt32', data)
12100
        obj.UnacknowledgedMessageCount = unpack_uatype('UInt32', data)
12101
        obj.DiscardedMessageCount = unpack_uatype('UInt32', data)
12102
        obj.MonitoredItemCount = unpack_uatype('UInt32', data)
12103
        obj.DisabledMonitoredItemCount = unpack_uatype('UInt32', data)
12104
        obj.MonitoringQueueOverflowCount = unpack_uatype('UInt32', data)
12105
        obj.NextSequenceNumber = unpack_uatype('UInt32', data)
12106
        obj.EventQueueOverFlowCount = unpack_uatype('UInt32', data)
12107
        return obj
12108
12109 1
    def __str__(self):
12110
        return 'SubscriptionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', ' + \
12111
               'SubscriptionId:' + str(self.SubscriptionId) + ', ' + \
12112
               'Priority:' + str(self.Priority) + ', ' + \
12113
               'PublishingInterval:' + str(self.PublishingInterval) + ', ' + \
12114
               'MaxKeepAliveCount:' + str(self.MaxKeepAliveCount) + ', ' + \
12115
               'MaxLifetimeCount:' + str(self.MaxLifetimeCount) + ', ' + \
12116
               'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', ' + \
12117
               'PublishingEnabled:' + str(self.PublishingEnabled) + ', ' + \
12118
               'ModifyCount:' + str(self.ModifyCount) + ', ' + \
12119
               'EnableCount:' + str(self.EnableCount) + ', ' + \
12120
               'DisableCount:' + str(self.DisableCount) + ', ' + \
12121
               'RepublishRequestCount:' + str(self.RepublishRequestCount) + ', ' + \
12122
               'RepublishMessageRequestCount:' + str(self.RepublishMessageRequestCount) + ', ' + \
12123
               'RepublishMessageCount:' + str(self.RepublishMessageCount) + ', ' + \
12124
               'TransferRequestCount:' + str(self.TransferRequestCount) + ', ' + \
12125
               'TransferredToAltClientCount:' + str(self.TransferredToAltClientCount) + ', ' + \
12126
               'TransferredToSameClientCount:' + str(self.TransferredToSameClientCount) + ', ' + \
12127
               'PublishRequestCount:' + str(self.PublishRequestCount) + ', ' + \
12128
               'DataChangeNotificationsCount:' + str(self.DataChangeNotificationsCount) + ', ' + \
12129
               'EventNotificationsCount:' + str(self.EventNotificationsCount) + ', ' + \
12130
               'NotificationsCount:' + str(self.NotificationsCount) + ', ' + \
12131
               'LatePublishRequestCount:' + str(self.LatePublishRequestCount) + ', ' + \
12132
               'CurrentKeepAliveCount:' + str(self.CurrentKeepAliveCount) + ', ' + \
12133
               'CurrentLifetimeCount:' + str(self.CurrentLifetimeCount) + ', ' + \
12134
               'UnacknowledgedMessageCount:' + str(self.UnacknowledgedMessageCount) + ', ' + \
12135
               'DiscardedMessageCount:' + str(self.DiscardedMessageCount) + ', ' + \
12136
               'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', ' + \
12137
               'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ', ' + \
12138
               'MonitoringQueueOverflowCount:' + str(self.MonitoringQueueOverflowCount) + ', ' + \
12139
               'NextSequenceNumber:' + str(self.NextSequenceNumber) + ', ' + \
12140
               'EventQueueOverFlowCount:' + str(self.EventQueueOverFlowCount) + ')'
12141
12142 1
    __repr__ = __str__
12143
12144
12145 1
class ModelChangeStructureDataType(FrozenClass):
12146
    '''
12147
    :ivar Affected:
12148
    :vartype Affected: NodeId
12149
    :ivar AffectedType:
12150
    :vartype AffectedType: NodeId
12151
    :ivar Verb:
12152
    :vartype Verb: Byte
12153
    '''
12154 1
    def __init__(self):
12155
        self.Affected = NodeId()
12156
        self.AffectedType = NodeId()
12157
        self.Verb = 0
12158
        self._freeze()
12159
12160 1
    def to_binary(self):
12161
        packet = []
12162
        packet.append(self.Affected.to_binary())
12163
        packet.append(self.AffectedType.to_binary())
12164
        packet.append(pack_uatype('Byte', self.Verb))
12165
        return b''.join(packet)
12166
12167 1
    @staticmethod
12168
    def from_binary(data):
12169
        obj = ModelChangeStructureDataType()
12170
        obj.Affected = NodeId.from_binary(data)
12171
        obj.AffectedType = NodeId.from_binary(data)
12172
        obj.Verb = unpack_uatype('Byte', data)
12173
        return obj
12174
12175 1
    def __str__(self):
12176
        return 'ModelChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', ' + \
12177
               'AffectedType:' + str(self.AffectedType) + ', ' + \
12178
               'Verb:' + str(self.Verb) + ')'
12179
12180 1
    __repr__ = __str__
12181
12182
12183 1
class SemanticChangeStructureDataType(FrozenClass):
12184
    '''
12185
    :ivar Affected:
12186
    :vartype Affected: NodeId
12187
    :ivar AffectedType:
12188
    :vartype AffectedType: NodeId
12189
    '''
12190 1
    def __init__(self):
12191
        self.Affected = NodeId()
12192
        self.AffectedType = NodeId()
12193
        self._freeze()
12194
12195 1
    def to_binary(self):
12196
        packet = []
12197
        packet.append(self.Affected.to_binary())
12198
        packet.append(self.AffectedType.to_binary())
12199
        return b''.join(packet)
12200
12201 1
    @staticmethod
12202
    def from_binary(data):
12203
        obj = SemanticChangeStructureDataType()
12204
        obj.Affected = NodeId.from_binary(data)
12205
        obj.AffectedType = NodeId.from_binary(data)
12206
        return obj
12207
12208 1
    def __str__(self):
12209
        return 'SemanticChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', ' + \
12210
               'AffectedType:' + str(self.AffectedType) + ')'
12211
12212 1
    __repr__ = __str__
12213
12214
12215 1
class Range(FrozenClass):
12216
    '''
12217
    :ivar Low:
12218
    :vartype Low: Double
12219
    :ivar High:
12220
    :vartype High: Double
12221
    '''
12222 1
    def __init__(self):
12223
        self.Low = 0
12224
        self.High = 0
12225
        self._freeze()
12226
12227 1
    def to_binary(self):
12228
        packet = []
12229
        packet.append(pack_uatype('Double', self.Low))
12230
        packet.append(pack_uatype('Double', self.High))
12231
        return b''.join(packet)
12232
12233 1
    @staticmethod
12234
    def from_binary(data):
12235
        obj = Range()
12236
        obj.Low = unpack_uatype('Double', data)
12237
        obj.High = unpack_uatype('Double', data)
12238
        return obj
12239
12240 1
    def __str__(self):
12241
        return 'Range(' + 'Low:' + str(self.Low) + ', ' + \
12242
               'High:' + str(self.High) + ')'
12243
12244 1
    __repr__ = __str__
12245
12246
12247 1
class EUInformation(FrozenClass):
12248
    '''
12249
    :ivar NamespaceUri:
12250
    :vartype NamespaceUri: String
12251
    :ivar UnitId:
12252
    :vartype UnitId: Int32
12253
    :ivar DisplayName:
12254
    :vartype DisplayName: LocalizedText
12255
    :ivar Description:
12256
    :vartype Description: LocalizedText
12257
    '''
12258 1
    def __init__(self):
12259
        self.NamespaceUri = ''
12260
        self.UnitId = 0
12261
        self.DisplayName = LocalizedText()
12262
        self.Description = LocalizedText()
12263
        self._freeze()
12264
12265 1
    def to_binary(self):
12266
        packet = []
12267
        packet.append(pack_uatype('String', self.NamespaceUri))
12268
        packet.append(pack_uatype('Int32', self.UnitId))
12269
        packet.append(self.DisplayName.to_binary())
12270
        packet.append(self.Description.to_binary())
12271
        return b''.join(packet)
12272
12273 1
    @staticmethod
12274
    def from_binary(data):
12275
        obj = EUInformation()
12276
        obj.NamespaceUri = unpack_uatype('String', data)
12277
        obj.UnitId = unpack_uatype('Int32', data)
12278
        obj.DisplayName = LocalizedText.from_binary(data)
12279
        obj.Description = LocalizedText.from_binary(data)
12280
        return obj
12281
12282 1
    def __str__(self):
12283
        return 'EUInformation(' + 'NamespaceUri:' + str(self.NamespaceUri) + ', ' + \
12284
               'UnitId:' + str(self.UnitId) + ', ' + \
12285
               'DisplayName:' + str(self.DisplayName) + ', ' + \
12286
               'Description:' + str(self.Description) + ')'
12287
12288 1
    __repr__ = __str__
12289
12290
12291 1
class ComplexNumberType(FrozenClass):
12292
    '''
12293
    :ivar Real:
12294
    :vartype Real: Float
12295
    :ivar Imaginary:
12296
    :vartype Imaginary: Float
12297
    '''
12298 1
    def __init__(self):
12299
        self.Real = 0
12300
        self.Imaginary = 0
12301
        self._freeze()
12302
12303 1
    def to_binary(self):
12304
        packet = []
12305
        packet.append(pack_uatype('Float', self.Real))
12306
        packet.append(pack_uatype('Float', self.Imaginary))
12307
        return b''.join(packet)
12308
12309 1
    @staticmethod
12310
    def from_binary(data):
12311
        obj = ComplexNumberType()
12312
        obj.Real = unpack_uatype('Float', data)
12313
        obj.Imaginary = unpack_uatype('Float', data)
12314
        return obj
12315
12316 1
    def __str__(self):
12317
        return 'ComplexNumberType(' + 'Real:' + str(self.Real) + ', ' + \
12318
               'Imaginary:' + str(self.Imaginary) + ')'
12319
12320 1
    __repr__ = __str__
12321
12322
12323 1
class DoubleComplexNumberType(FrozenClass):
12324
    '''
12325
    :ivar Real:
12326
    :vartype Real: Double
12327
    :ivar Imaginary:
12328
    :vartype Imaginary: Double
12329
    '''
12330 1
    def __init__(self):
12331
        self.Real = 0
12332
        self.Imaginary = 0
12333
        self._freeze()
12334
12335 1
    def to_binary(self):
12336
        packet = []
12337
        packet.append(pack_uatype('Double', self.Real))
12338
        packet.append(pack_uatype('Double', self.Imaginary))
12339
        return b''.join(packet)
12340
12341 1
    @staticmethod
12342
    def from_binary(data):
12343
        obj = DoubleComplexNumberType()
12344
        obj.Real = unpack_uatype('Double', data)
12345
        obj.Imaginary = unpack_uatype('Double', data)
12346
        return obj
12347
12348 1
    def __str__(self):
12349
        return 'DoubleComplexNumberType(' + 'Real:' + str(self.Real) + ', ' + \
12350
               'Imaginary:' + str(self.Imaginary) + ')'
12351
12352 1
    __repr__ = __str__
12353
12354
12355 1
class AxisInformation(FrozenClass):
12356
    '''
12357
    :ivar EngineeringUnits:
12358
    :vartype EngineeringUnits: EUInformation
12359
    :ivar EURange:
12360
    :vartype EURange: Range
12361
    :ivar Title:
12362
    :vartype Title: LocalizedText
12363
    :ivar AxisScaleType:
12364
    :vartype AxisScaleType: AxisScaleEnumeration
12365
    :ivar AxisSteps:
12366
    :vartype AxisSteps: Double
12367
    '''
12368 1
    def __init__(self):
12369
        self.EngineeringUnits = EUInformation()
12370
        self.EURange = Range()
12371
        self.Title = LocalizedText()
12372
        self.AxisScaleType = 0
12373
        self.AxisSteps = []
12374
        self._freeze()
12375
12376 1
    def to_binary(self):
12377
        packet = []
12378
        packet.append(self.EngineeringUnits.to_binary())
12379
        packet.append(self.EURange.to_binary())
12380
        packet.append(self.Title.to_binary())
12381
        packet.append(pack_uatype('UInt32', self.AxisScaleType))
12382
        packet.append(struct.pack('<i', len(self.AxisSteps)))
12383
        for fieldname in self.AxisSteps:
12384
            packet.append(pack_uatype('Double', fieldname))
12385
        return b''.join(packet)
12386
12387 1
    @staticmethod
12388
    def from_binary(data):
12389
        obj = AxisInformation()
12390
        obj.EngineeringUnits = EUInformation.from_binary(data)
12391
        obj.EURange = Range.from_binary(data)
12392
        obj.Title = LocalizedText.from_binary(data)
12393
        obj.AxisScaleType = unpack_uatype('UInt32', data)
12394
        obj.AxisSteps = unpack_uatype_array('Double', data)
12395
        return obj
12396
12397 1
    def __str__(self):
12398
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', ' + \
12399
               'EURange:' + str(self.EURange) + ', ' + \
12400
               'Title:' + str(self.Title) + ', ' + \
12401
               'AxisScaleType:' + str(self.AxisScaleType) + ', ' + \
12402
               'AxisSteps:' + str(self.AxisSteps) + ')'
12403
12404 1
    __repr__ = __str__
12405
12406
12407 1
class XVType(FrozenClass):
12408
    '''
12409
    :ivar X:
12410
    :vartype X: Double
12411
    :ivar Value:
12412
    :vartype Value: Float
12413
    '''
12414 1
    def __init__(self):
12415
        self.X = 0
12416
        self.Value = 0
12417
        self._freeze()
12418
12419 1
    def to_binary(self):
12420
        packet = []
12421
        packet.append(pack_uatype('Double', self.X))
12422
        packet.append(pack_uatype('Float', self.Value))
12423
        return b''.join(packet)
12424
12425 1
    @staticmethod
12426
    def from_binary(data):
12427
        obj = XVType()
12428
        obj.X = unpack_uatype('Double', data)
12429
        obj.Value = unpack_uatype('Float', data)
12430
        return obj
12431
12432 1
    def __str__(self):
12433
        return 'XVType(' + 'X:' + str(self.X) + ', ' + \
12434
               'Value:' + str(self.Value) + ')'
12435
12436 1
    __repr__ = __str__
12437
12438
12439 1
class ProgramDiagnosticDataType(FrozenClass):
12440
    '''
12441
    :ivar CreateSessionId:
12442
    :vartype CreateSessionId: NodeId
12443
    :ivar CreateClientName:
12444
    :vartype CreateClientName: String
12445
    :ivar InvocationCreationTime:
12446
    :vartype InvocationCreationTime: DateTime
12447
    :ivar LastTransitionTime:
12448
    :vartype LastTransitionTime: DateTime
12449
    :ivar LastMethodCall:
12450
    :vartype LastMethodCall: String
12451
    :ivar LastMethodSessionId:
12452
    :vartype LastMethodSessionId: NodeId
12453
    :ivar LastMethodInputArguments:
12454
    :vartype LastMethodInputArguments: Argument
12455
    :ivar LastMethodOutputArguments:
12456
    :vartype LastMethodOutputArguments: Argument
12457
    :ivar LastMethodCallTime:
12458
    :vartype LastMethodCallTime: DateTime
12459
    :ivar LastMethodReturnStatus:
12460
    :vartype LastMethodReturnStatus: StatusResult
12461
    '''
12462 1
    def __init__(self):
12463
        self.CreateSessionId = NodeId()
12464
        self.CreateClientName = ''
12465
        self.InvocationCreationTime = datetime.now()
12466
        self.LastTransitionTime = datetime.now()
12467
        self.LastMethodCall = ''
12468
        self.LastMethodSessionId = NodeId()
12469
        self.LastMethodInputArguments = []
12470
        self.LastMethodOutputArguments = []
12471
        self.LastMethodCallTime = datetime.now()
12472
        self.LastMethodReturnStatus = StatusResult()
12473
        self._freeze()
12474
12475 1
    def to_binary(self):
12476
        packet = []
12477
        packet.append(self.CreateSessionId.to_binary())
12478
        packet.append(pack_uatype('String', self.CreateClientName))
12479
        packet.append(pack_uatype('DateTime', self.InvocationCreationTime))
12480
        packet.append(pack_uatype('DateTime', self.LastTransitionTime))
12481
        packet.append(pack_uatype('String', self.LastMethodCall))
12482
        packet.append(self.LastMethodSessionId.to_binary())
12483
        packet.append(struct.pack('<i', len(self.LastMethodInputArguments)))
12484
        for fieldname in self.LastMethodInputArguments:
12485
            packet.append(fieldname.to_binary())
12486
        packet.append(struct.pack('<i', len(self.LastMethodOutputArguments)))
12487
        for fieldname in self.LastMethodOutputArguments:
12488
            packet.append(fieldname.to_binary())
12489
        packet.append(pack_uatype('DateTime', self.LastMethodCallTime))
12490
        packet.append(self.LastMethodReturnStatus.to_binary())
12491
        return b''.join(packet)
12492
12493 1
    @staticmethod
12494
    def from_binary(data):
12495
        obj = ProgramDiagnosticDataType()
12496
        obj.CreateSessionId = NodeId.from_binary(data)
12497
        obj.CreateClientName = unpack_uatype('String', data)
12498
        obj.InvocationCreationTime = unpack_uatype('DateTime', data)
12499
        obj.LastTransitionTime = unpack_uatype('DateTime', data)
12500
        obj.LastMethodCall = unpack_uatype('String', data)
12501
        obj.LastMethodSessionId = NodeId.from_binary(data)
12502
        length = struct.unpack('<i', data.read(4))[0]
12503
        if length != -1:
12504
            for _ in range(0, length):
12505
                obj.LastMethodInputArguments.append(Argument.from_binary(data))
12506
        length = struct.unpack('<i', data.read(4))[0]
12507
        if length != -1:
12508
            for _ in range(0, length):
12509
                obj.LastMethodOutputArguments.append(Argument.from_binary(data))
12510
        obj.LastMethodCallTime = unpack_uatype('DateTime', data)
12511
        obj.LastMethodReturnStatus = StatusResult.from_binary(data)
12512
        return obj
12513
12514 1
    def __str__(self):
12515
        return 'ProgramDiagnosticDataType(' + 'CreateSessionId:' + str(self.CreateSessionId) + ', ' + \
12516
               'CreateClientName:' + str(self.CreateClientName) + ', ' + \
12517
               'InvocationCreationTime:' + str(self.InvocationCreationTime) + ', ' + \
12518
               'LastTransitionTime:' + str(self.LastTransitionTime) + ', ' + \
12519
               'LastMethodCall:' + str(self.LastMethodCall) + ', ' + \
12520
               'LastMethodSessionId:' + str(self.LastMethodSessionId) + ', ' + \
12521
               'LastMethodInputArguments:' + str(self.LastMethodInputArguments) + ', ' + \
12522
               'LastMethodOutputArguments:' + str(self.LastMethodOutputArguments) + ', ' + \
12523
               'LastMethodCallTime:' + str(self.LastMethodCallTime) + ', ' + \
12524
               'LastMethodReturnStatus:' + str(self.LastMethodReturnStatus) + ')'
12525
12526 1
    __repr__ = __str__
12527
12528
12529 1
class Annotation(FrozenClass):
12530
    '''
12531
    :ivar Message:
12532
    :vartype Message: String
12533
    :ivar UserName:
12534
    :vartype UserName: String
12535
    :ivar AnnotationTime:
12536
    :vartype AnnotationTime: DateTime
12537
    '''
12538 1
    def __init__(self):
12539
        self.Message = ''
12540
        self.UserName = ''
12541
        self.AnnotationTime = datetime.now()
12542
        self._freeze()
12543
12544 1
    def to_binary(self):
12545
        packet = []
12546
        packet.append(pack_uatype('String', self.Message))
12547
        packet.append(pack_uatype('String', self.UserName))
12548
        packet.append(pack_uatype('DateTime', self.AnnotationTime))
12549
        return b''.join(packet)
12550
12551 1
    @staticmethod
12552
    def from_binary(data):
12553
        obj = Annotation()
12554
        obj.Message = unpack_uatype('String', data)
12555
        obj.UserName = unpack_uatype('String', data)
12556
        obj.AnnotationTime = unpack_uatype('DateTime', data)
12557
        return obj
12558
12559 1
    def __str__(self):
12560
        return 'Annotation(' + 'Message:' + str(self.Message) + ', ' + \
12561
               'UserName:' + str(self.UserName) + ', ' + \
12562
               'AnnotationTime:' + str(self.AnnotationTime) + ')'
12563
12564 1
    __repr__ = __str__
12565
12566
12567 1
ExtensionClasses = {
12568
    ObjectIds.TrustListDataType_Encoding_DefaultBinary: TrustListDataType,
12569
    ObjectIds.Argument_Encoding_DefaultBinary: Argument,
12570
    ObjectIds.EnumValueType_Encoding_DefaultBinary: EnumValueType,
12571
    ObjectIds.OptionSet_Encoding_DefaultBinary: OptionSet,
12572
    ObjectIds.Union_Encoding_DefaultBinary: Union,
12573
    ObjectIds.TimeZoneDataType_Encoding_DefaultBinary: TimeZoneDataType,
12574
    ObjectIds.ApplicationDescription_Encoding_DefaultBinary: ApplicationDescription,
12575
    ObjectIds.RequestHeader_Encoding_DefaultBinary: RequestHeader,
12576
    ObjectIds.ResponseHeader_Encoding_DefaultBinary: ResponseHeader,
12577
    ObjectIds.ServiceFault_Encoding_DefaultBinary: ServiceFault,
12578
    ObjectIds.FindServersRequest_Encoding_DefaultBinary: FindServersRequest,
12579
    ObjectIds.FindServersResponse_Encoding_DefaultBinary: FindServersResponse,
12580
    ObjectIds.ServerOnNetwork_Encoding_DefaultBinary: ServerOnNetwork,
12581
    ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary: FindServersOnNetworkRequest,
12582
    ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary: FindServersOnNetworkResponse,
12583
    ObjectIds.UserTokenPolicy_Encoding_DefaultBinary: UserTokenPolicy,
12584
    ObjectIds.EndpointDescription_Encoding_DefaultBinary: EndpointDescription,
12585
    ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary: GetEndpointsRequest,
12586
    ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary: GetEndpointsResponse,
12587
    ObjectIds.RegisteredServer_Encoding_DefaultBinary: RegisteredServer,
12588
    ObjectIds.RegisterServerRequest_Encoding_DefaultBinary: RegisterServerRequest,
12589
    ObjectIds.RegisterServerResponse_Encoding_DefaultBinary: RegisterServerResponse,
12590
    ObjectIds.DiscoveryConfiguration_Encoding_DefaultBinary: DiscoveryConfiguration,
12591
    ObjectIds.MdnsDiscoveryConfiguration_Encoding_DefaultBinary: MdnsDiscoveryConfiguration,
12592
    ObjectIds.RegisterServer2Request_Encoding_DefaultBinary: RegisterServer2Request,
12593
    ObjectIds.RegisterServer2Response_Encoding_DefaultBinary: RegisterServer2Response,
12594
    ObjectIds.ChannelSecurityToken_Encoding_DefaultBinary: ChannelSecurityToken,
12595
    ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary: OpenSecureChannelRequest,
12596
    ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary: OpenSecureChannelResponse,
12597
    ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary: CloseSecureChannelRequest,
12598
    ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary: CloseSecureChannelResponse,
12599
    ObjectIds.SignedSoftwareCertificate_Encoding_DefaultBinary: SignedSoftwareCertificate,
12600
    ObjectIds.SignatureData_Encoding_DefaultBinary: SignatureData,
12601
    ObjectIds.CreateSessionRequest_Encoding_DefaultBinary: CreateSessionRequest,
12602
    ObjectIds.CreateSessionResponse_Encoding_DefaultBinary: CreateSessionResponse,
12603
    ObjectIds.UserIdentityToken_Encoding_DefaultBinary: UserIdentityToken,
12604
    ObjectIds.AnonymousIdentityToken_Encoding_DefaultBinary: AnonymousIdentityToken,
12605
    ObjectIds.UserNameIdentityToken_Encoding_DefaultBinary: UserNameIdentityToken,
12606
    ObjectIds.X509IdentityToken_Encoding_DefaultBinary: X509IdentityToken,
12607
    ObjectIds.KerberosIdentityToken_Encoding_DefaultBinary: KerberosIdentityToken,
12608
    ObjectIds.IssuedIdentityToken_Encoding_DefaultBinary: IssuedIdentityToken,
12609
    ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary: ActivateSessionRequest,
12610
    ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary: ActivateSessionResponse,
12611
    ObjectIds.CloseSessionRequest_Encoding_DefaultBinary: CloseSessionRequest,
12612
    ObjectIds.CloseSessionResponse_Encoding_DefaultBinary: CloseSessionResponse,
12613
    ObjectIds.CancelRequest_Encoding_DefaultBinary: CancelRequest,
12614
    ObjectIds.CancelResponse_Encoding_DefaultBinary: CancelResponse,
12615
    ObjectIds.NodeAttributes_Encoding_DefaultBinary: NodeAttributes,
12616
    ObjectIds.ObjectAttributes_Encoding_DefaultBinary: ObjectAttributes,
12617
    ObjectIds.VariableAttributes_Encoding_DefaultBinary: VariableAttributes,
12618
    ObjectIds.MethodAttributes_Encoding_DefaultBinary: MethodAttributes,
12619
    ObjectIds.ObjectTypeAttributes_Encoding_DefaultBinary: ObjectTypeAttributes,
12620
    ObjectIds.VariableTypeAttributes_Encoding_DefaultBinary: VariableTypeAttributes,
12621
    ObjectIds.ReferenceTypeAttributes_Encoding_DefaultBinary: ReferenceTypeAttributes,
12622
    ObjectIds.DataTypeAttributes_Encoding_DefaultBinary: DataTypeAttributes,
12623
    ObjectIds.ViewAttributes_Encoding_DefaultBinary: ViewAttributes,
12624
    ObjectIds.AddNodesItem_Encoding_DefaultBinary: AddNodesItem,
12625
    ObjectIds.AddNodesResult_Encoding_DefaultBinary: AddNodesResult,
12626
    ObjectIds.AddNodesRequest_Encoding_DefaultBinary: AddNodesRequest,
12627
    ObjectIds.AddNodesResponse_Encoding_DefaultBinary: AddNodesResponse,
12628
    ObjectIds.AddReferencesItem_Encoding_DefaultBinary: AddReferencesItem,
12629
    ObjectIds.AddReferencesRequest_Encoding_DefaultBinary: AddReferencesRequest,
12630
    ObjectIds.AddReferencesResponse_Encoding_DefaultBinary: AddReferencesResponse,
12631
    ObjectIds.DeleteNodesItem_Encoding_DefaultBinary: DeleteNodesItem,
12632
    ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary: DeleteNodesRequest,
12633
    ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary: DeleteNodesResponse,
12634
    ObjectIds.DeleteReferencesItem_Encoding_DefaultBinary: DeleteReferencesItem,
12635
    ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary: DeleteReferencesRequest,
12636
    ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary: DeleteReferencesResponse,
12637
    ObjectIds.ViewDescription_Encoding_DefaultBinary: ViewDescription,
12638
    ObjectIds.BrowseDescription_Encoding_DefaultBinary: BrowseDescription,
12639
    ObjectIds.ReferenceDescription_Encoding_DefaultBinary: ReferenceDescription,
12640
    ObjectIds.BrowseResult_Encoding_DefaultBinary: BrowseResult,
12641
    ObjectIds.BrowseRequest_Encoding_DefaultBinary: BrowseRequest,
12642
    ObjectIds.BrowseResponse_Encoding_DefaultBinary: BrowseResponse,
12643
    ObjectIds.BrowseNextRequest_Encoding_DefaultBinary: BrowseNextRequest,
12644
    ObjectIds.BrowseNextResponse_Encoding_DefaultBinary: BrowseNextResponse,
12645
    ObjectIds.RelativePathElement_Encoding_DefaultBinary: RelativePathElement,
12646
    ObjectIds.RelativePath_Encoding_DefaultBinary: RelativePath,
12647
    ObjectIds.BrowsePath_Encoding_DefaultBinary: BrowsePath,
12648
    ObjectIds.BrowsePathTarget_Encoding_DefaultBinary: BrowsePathTarget,
12649
    ObjectIds.BrowsePathResult_Encoding_DefaultBinary: BrowsePathResult,
12650
    ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary: TranslateBrowsePathsToNodeIdsRequest,
12651
    ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary: TranslateBrowsePathsToNodeIdsResponse,
12652
    ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary: RegisterNodesRequest,
12653
    ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary: RegisterNodesResponse,
12654
    ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary: UnregisterNodesRequest,
12655
    ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary: UnregisterNodesResponse,
12656
    ObjectIds.EndpointConfiguration_Encoding_DefaultBinary: EndpointConfiguration,
12657
    ObjectIds.SupportedProfile_Encoding_DefaultBinary: SupportedProfile,
12658
    ObjectIds.SoftwareCertificate_Encoding_DefaultBinary: SoftwareCertificate,
12659
    ObjectIds.QueryDataDescription_Encoding_DefaultBinary: QueryDataDescription,
12660
    ObjectIds.NodeTypeDescription_Encoding_DefaultBinary: NodeTypeDescription,
12661
    ObjectIds.QueryDataSet_Encoding_DefaultBinary: QueryDataSet,
12662
    ObjectIds.NodeReference_Encoding_DefaultBinary: NodeReference,
12663
    ObjectIds.ContentFilterElement_Encoding_DefaultBinary: ContentFilterElement,
12664
    ObjectIds.ContentFilter_Encoding_DefaultBinary: ContentFilter,
12665
    ObjectIds.ElementOperand_Encoding_DefaultBinary: ElementOperand,
12666
    ObjectIds.LiteralOperand_Encoding_DefaultBinary: LiteralOperand,
12667
    ObjectIds.AttributeOperand_Encoding_DefaultBinary: AttributeOperand,
12668
    ObjectIds.SimpleAttributeOperand_Encoding_DefaultBinary: SimpleAttributeOperand,
12669
    ObjectIds.ContentFilterElementResult_Encoding_DefaultBinary: ContentFilterElementResult,
12670
    ObjectIds.ContentFilterResult_Encoding_DefaultBinary: ContentFilterResult,
12671
    ObjectIds.ParsingResult_Encoding_DefaultBinary: ParsingResult,
12672
    ObjectIds.QueryFirstRequest_Encoding_DefaultBinary: QueryFirstRequest,
12673
    ObjectIds.QueryFirstResponse_Encoding_DefaultBinary: QueryFirstResponse,
12674
    ObjectIds.QueryNextRequest_Encoding_DefaultBinary: QueryNextRequest,
12675
    ObjectIds.QueryNextResponse_Encoding_DefaultBinary: QueryNextResponse,
12676
    ObjectIds.ReadValueId_Encoding_DefaultBinary: ReadValueId,
12677
    ObjectIds.ReadRequest_Encoding_DefaultBinary: ReadRequest,
12678
    ObjectIds.ReadResponse_Encoding_DefaultBinary: ReadResponse,
12679
    ObjectIds.HistoryReadValueId_Encoding_DefaultBinary: HistoryReadValueId,
12680
    ObjectIds.HistoryReadResult_Encoding_DefaultBinary: HistoryReadResult,
12681
    ObjectIds.HistoryReadDetails_Encoding_DefaultBinary: HistoryReadDetails,
12682
    ObjectIds.ReadEventDetails_Encoding_DefaultBinary: ReadEventDetails,
12683
    ObjectIds.ReadRawModifiedDetails_Encoding_DefaultBinary: ReadRawModifiedDetails,
12684
    ObjectIds.ReadProcessedDetails_Encoding_DefaultBinary: ReadProcessedDetails,
12685
    ObjectIds.ReadAtTimeDetails_Encoding_DefaultBinary: ReadAtTimeDetails,
12686
    ObjectIds.HistoryData_Encoding_DefaultBinary: HistoryData,
12687
    ObjectIds.ModificationInfo_Encoding_DefaultBinary: ModificationInfo,
12688
    ObjectIds.HistoryModifiedData_Encoding_DefaultBinary: HistoryModifiedData,
12689
    ObjectIds.HistoryEvent_Encoding_DefaultBinary: HistoryEvent,
12690
    ObjectIds.HistoryReadRequest_Encoding_DefaultBinary: HistoryReadRequest,
12691
    ObjectIds.HistoryReadResponse_Encoding_DefaultBinary: HistoryReadResponse,
12692
    ObjectIds.WriteValue_Encoding_DefaultBinary: WriteValue,
12693
    ObjectIds.WriteRequest_Encoding_DefaultBinary: WriteRequest,
12694
    ObjectIds.WriteResponse_Encoding_DefaultBinary: WriteResponse,
12695
    ObjectIds.HistoryUpdateDetails_Encoding_DefaultBinary: HistoryUpdateDetails,
12696
    ObjectIds.UpdateDataDetails_Encoding_DefaultBinary: UpdateDataDetails,
12697
    ObjectIds.UpdateStructureDataDetails_Encoding_DefaultBinary: UpdateStructureDataDetails,
12698
    ObjectIds.UpdateEventDetails_Encoding_DefaultBinary: UpdateEventDetails,
12699
    ObjectIds.DeleteRawModifiedDetails_Encoding_DefaultBinary: DeleteRawModifiedDetails,
12700
    ObjectIds.DeleteAtTimeDetails_Encoding_DefaultBinary: DeleteAtTimeDetails,
12701
    ObjectIds.DeleteEventDetails_Encoding_DefaultBinary: DeleteEventDetails,
12702
    ObjectIds.HistoryUpdateResult_Encoding_DefaultBinary: HistoryUpdateResult,
12703
    ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary: HistoryUpdateRequest,
12704
    ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary: HistoryUpdateResponse,
12705
    ObjectIds.CallMethodRequest_Encoding_DefaultBinary: CallMethodRequest,
12706
    ObjectIds.CallMethodResult_Encoding_DefaultBinary: CallMethodResult,
12707
    ObjectIds.CallRequest_Encoding_DefaultBinary: CallRequest,
12708
    ObjectIds.CallResponse_Encoding_DefaultBinary: CallResponse,
12709
    ObjectIds.MonitoringFilter_Encoding_DefaultBinary: MonitoringFilter,
12710
    ObjectIds.DataChangeFilter_Encoding_DefaultBinary: DataChangeFilter,
12711
    ObjectIds.EventFilter_Encoding_DefaultBinary: EventFilter,
12712
    ObjectIds.AggregateConfiguration_Encoding_DefaultBinary: AggregateConfiguration,
12713
    ObjectIds.AggregateFilter_Encoding_DefaultBinary: AggregateFilter,
12714
    ObjectIds.MonitoringFilterResult_Encoding_DefaultBinary: MonitoringFilterResult,
12715
    ObjectIds.EventFilterResult_Encoding_DefaultBinary: EventFilterResult,
12716
    ObjectIds.AggregateFilterResult_Encoding_DefaultBinary: AggregateFilterResult,
12717
    ObjectIds.MonitoringParameters_Encoding_DefaultBinary: MonitoringParameters,
12718
    ObjectIds.MonitoredItemCreateRequest_Encoding_DefaultBinary: MonitoredItemCreateRequest,
12719
    ObjectIds.MonitoredItemCreateResult_Encoding_DefaultBinary: MonitoredItemCreateResult,
12720
    ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary: CreateMonitoredItemsRequest,
12721
    ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary: CreateMonitoredItemsResponse,
12722
    ObjectIds.MonitoredItemModifyRequest_Encoding_DefaultBinary: MonitoredItemModifyRequest,
12723
    ObjectIds.MonitoredItemModifyResult_Encoding_DefaultBinary: MonitoredItemModifyResult,
12724
    ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary: ModifyMonitoredItemsRequest,
12725
    ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary: ModifyMonitoredItemsResponse,
12726
    ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary: SetMonitoringModeRequest,
12727
    ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary: SetMonitoringModeResponse,
12728
    ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary: SetTriggeringRequest,
12729
    ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary: SetTriggeringResponse,
12730
    ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary: DeleteMonitoredItemsRequest,
12731
    ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary: DeleteMonitoredItemsResponse,
12732
    ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary: CreateSubscriptionRequest,
12733
    ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary: CreateSubscriptionResponse,
12734
    ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary: ModifySubscriptionRequest,
12735
    ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary: ModifySubscriptionResponse,
12736
    ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary: SetPublishingModeRequest,
12737
    ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary: SetPublishingModeResponse,
12738
    ObjectIds.NotificationMessage_Encoding_DefaultBinary: NotificationMessage,
12739
    ObjectIds.NotificationData_Encoding_DefaultBinary: NotificationData,
12740
    ObjectIds.DataChangeNotification_Encoding_DefaultBinary: DataChangeNotification,
12741
    ObjectIds.MonitoredItemNotification_Encoding_DefaultBinary: MonitoredItemNotification,
12742
    ObjectIds.EventNotificationList_Encoding_DefaultBinary: EventNotificationList,
12743
    ObjectIds.EventFieldList_Encoding_DefaultBinary: EventFieldList,
12744
    ObjectIds.HistoryEventFieldList_Encoding_DefaultBinary: HistoryEventFieldList,
12745
    ObjectIds.StatusChangeNotification_Encoding_DefaultBinary: StatusChangeNotification,
12746
    ObjectIds.SubscriptionAcknowledgement_Encoding_DefaultBinary: SubscriptionAcknowledgement,
12747
    ObjectIds.PublishRequest_Encoding_DefaultBinary: PublishRequest,
12748
    ObjectIds.PublishResponse_Encoding_DefaultBinary: PublishResponse,
12749
    ObjectIds.RepublishRequest_Encoding_DefaultBinary: RepublishRequest,
12750
    ObjectIds.RepublishResponse_Encoding_DefaultBinary: RepublishResponse,
12751
    ObjectIds.TransferResult_Encoding_DefaultBinary: TransferResult,
12752
    ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary: TransferSubscriptionsRequest,
12753
    ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary: TransferSubscriptionsResponse,
12754
    ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary: DeleteSubscriptionsRequest,
12755
    ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary: DeleteSubscriptionsResponse,
12756
    ObjectIds.BuildInfo_Encoding_DefaultBinary: BuildInfo,
12757
    ObjectIds.RedundantServerDataType_Encoding_DefaultBinary: RedundantServerDataType,
12758
    ObjectIds.EndpointUrlListDataType_Encoding_DefaultBinary: EndpointUrlListDataType,
12759
    ObjectIds.NetworkGroupDataType_Encoding_DefaultBinary: NetworkGroupDataType,
12760
    ObjectIds.SamplingIntervalDiagnosticsDataType_Encoding_DefaultBinary: SamplingIntervalDiagnosticsDataType,
12761
    ObjectIds.ServerDiagnosticsSummaryDataType_Encoding_DefaultBinary: ServerDiagnosticsSummaryDataType,
12762
    ObjectIds.ServerStatusDataType_Encoding_DefaultBinary: ServerStatusDataType,
12763
    ObjectIds.SessionDiagnosticsDataType_Encoding_DefaultBinary: SessionDiagnosticsDataType,
12764
    ObjectIds.SessionSecurityDiagnosticsDataType_Encoding_DefaultBinary: SessionSecurityDiagnosticsDataType,
12765
    ObjectIds.ServiceCounterDataType_Encoding_DefaultBinary: ServiceCounterDataType,
12766
    ObjectIds.StatusResult_Encoding_DefaultBinary: StatusResult,
12767
    ObjectIds.SubscriptionDiagnosticsDataType_Encoding_DefaultBinary: SubscriptionDiagnosticsDataType,
12768
    ObjectIds.ModelChangeStructureDataType_Encoding_DefaultBinary: ModelChangeStructureDataType,
12769
    ObjectIds.SemanticChangeStructureDataType_Encoding_DefaultBinary: SemanticChangeStructureDataType,
12770
    ObjectIds.Range_Encoding_DefaultBinary: Range,
12771
    ObjectIds.EUInformation_Encoding_DefaultBinary: EUInformation,
12772
    ObjectIds.ComplexNumberType_Encoding_DefaultBinary: ComplexNumberType,
12773
    ObjectIds.DoubleComplexNumberType_Encoding_DefaultBinary: DoubleComplexNumberType,
12774
    ObjectIds.AxisInformation_Encoding_DefaultBinary: AxisInformation,
12775
    ObjectIds.XVType_Encoding_DefaultBinary: XVType,
12776
    ObjectIds.ProgramDiagnosticDataType_Encoding_DefaultBinary: ProgramDiagnosticDataType,
12777
    ObjectIds.Annotation_Encoding_DefaultBinary: Annotation,
12778
}
12779
12780
12781 1
def extensionobject_from_binary(data):
12782
    """
12783
    Convert binary-coded ExtensionObject to a Python object.
12784
    Returns an object, or None if TypeId is zero
12785
    """
12786 1
    TypeId = NodeId.from_binary(data)
12787 1
    Encoding = unpack_uatype('UInt8', data)
12788 1
    if Encoding & (1 << 0):
12789 1
        Body = unpack_uatype('ByteString', data)
12790 1
    if TypeId.Identifier == 0:
12791 1
        return None
12792 1
    klass = ExtensionClasses[TypeId.Identifier]
12793 1
    return klass.from_binary(Buffer(Body))
12794
12795
12796 1
def extensionobject_to_binary(obj):
12797
    """
12798
    Convert Python object to binary-coded ExtensionObject.
12799
    If obj is None, convert to empty ExtensionObject (TypeId = 0, no Body).
12800
    Returns a binary string
12801
    """
12802 1
    TypeId = NodeId()
12803 1
    Encoding = 0
12804 1
    Body = None
12805 1
    if obj is not None:
12806 1
        TypeId = FourByteNodeId(getattr(ObjectIds, "{}_Encoding_DefaultBinary".format(obj.__class__.__name__)))
12807 1
        Encoding |= (1 << 0)
12808 1
        Body = obj.to_binary()
12809 1
    packet = []
12810 1
    packet.append(TypeId.to_binary())
12811 1
    packet.append(pack_uatype('UInt8', Encoding))
12812 1
    if Body:
12813 1
        packet.append(pack_uatype('ByteString', Body))
12814
    return b''.join(packet)
12815