Completed
Push — dev ( 17cd27...3b343f )
by Olivier
02:12
created

opcua.MethodAttributes.__str__()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1.125
Metric Value
dl 0
loc 8
ccs 1
cts 2
cp 0.5
rs 9.4286
cc 1
crap 1.125
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
13 1
class NamingRuleType(object):
14
    '''
15
    :ivar Mandatory: 
16
    :vartype Mandatory: 1 
17
    :ivar Optional: 
18
    :vartype Optional: 2 
19
    :ivar Constraint: 
20
    :vartype Constraint: 3 
21
    '''
22 1
    Mandatory = 1
23 1
    Optional = 2
24 1
    Constraint = 3
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 1
class TrustListMasks(object):
43
    '''
44
    :ivar None_: 
45
    :vartype None_: 0 
46
    :ivar TrustedCertificates: 
47
    :vartype TrustedCertificates: 1 
48
    :ivar TrustedCrls: 
49
    :vartype TrustedCrls: 2 
50
    :ivar IssuerCertificates: 
51
    :vartype IssuerCertificates: 4 
52
    :ivar IssuerCrls: 
53
    :vartype IssuerCrls: 8 
54
    :ivar All: 
55
    :vartype All: 15 
56
    '''
57 1
    None_ = 0
58 1
    TrustedCertificates = 1
59 1
    TrustedCrls = 2
60 1
    IssuerCertificates = 4
61 1
    IssuerCrls = 8
62 1
    All = 15
63
64 1
class IdType(object):
65
    '''
66
    The type of identifier used in a node id.
67
    
68
    :ivar Numeric: 
69
    :vartype Numeric: 0 
70
    :ivar String: 
71
    :vartype String: 1 
72
    :ivar Guid: 
73
    :vartype Guid: 2 
74
    :ivar Opaque: 
75
    :vartype Opaque: 3 
76
    '''
77 1
    Numeric = 0
78 1
    String = 1
79 1
    Guid = 2
80 1
    Opaque = 3
81
82 1
class NodeClass(object):
83
    '''
84
    A mask specifying the class of the node.
85
    
86
    :ivar Unspecified: 
87
    :vartype Unspecified: 0 
88
    :ivar Object: 
89
    :vartype Object: 1 
90
    :ivar Variable: 
91
    :vartype Variable: 2 
92
    :ivar Method: 
93
    :vartype Method: 4 
94
    :ivar ObjectType: 
95
    :vartype ObjectType: 8 
96
    :ivar VariableType: 
97
    :vartype VariableType: 16 
98
    :ivar ReferenceType: 
99
    :vartype ReferenceType: 32 
100
    :ivar DataType: 
101
    :vartype DataType: 64 
102
    :ivar View: 
103
    :vartype View: 128 
104
    '''
105 1
    Unspecified = 0
106 1
    Object = 1
107 1
    Variable = 2
108 1
    Method = 4
109 1
    ObjectType = 8
110 1
    VariableType = 16
111 1
    ReferenceType = 32
112 1
    DataType = 64
113 1
    View = 128
114
115 1
class ApplicationType(object):
116
    '''
117
    The types of applications.
118
    
119
    :ivar Server: 
120
    :vartype Server: 0 
121
    :ivar Client: 
122
    :vartype Client: 1 
123
    :ivar ClientAndServer: 
124
    :vartype ClientAndServer: 2 
125
    :ivar DiscoveryServer: 
126
    :vartype DiscoveryServer: 3 
127
    '''
128 1
    Server = 0
129 1
    Client = 1
130 1
    ClientAndServer = 2
131 1
    DiscoveryServer = 3
132
133 1
class MessageSecurityMode(object):
134
    '''
135
    The type of security to use on a message.
136
    
137
    :ivar Invalid: 
138
    :vartype Invalid: 0 
139
    :ivar None_: 
140
    :vartype None_: 1 
141
    :ivar Sign: 
142
    :vartype Sign: 2 
143
    :ivar SignAndEncrypt: 
144
    :vartype SignAndEncrypt: 3 
145
    '''
146 1
    Invalid = 0
147 1
    None_ = 1
148 1
    Sign = 2
149 1
    SignAndEncrypt = 3
150
151 1
class UserTokenType(object):
152
    '''
153
    The possible user token types.
154
    
155
    :ivar Anonymous: 
156
    :vartype Anonymous: 0 
157
    :ivar UserName: 
158
    :vartype UserName: 1 
159
    :ivar Certificate: 
160
    :vartype Certificate: 2 
161
    :ivar IssuedToken: 
162
    :vartype IssuedToken: 3 
163
    :ivar Kerberos: 
164
    :vartype Kerberos: 4 
165
    '''
166 1
    Anonymous = 0
167 1
    UserName = 1
168 1
    Certificate = 2
169 1
    IssuedToken = 3
170 1
    Kerberos = 4
171
172 1
class SecurityTokenRequestType(object):
173
    '''
174
    Indicates whether a token if being created or renewed.
175
    
176
    :ivar Issue: 
177
    :vartype Issue: 0 
178
    :ivar Renew: 
179
    :vartype Renew: 1 
180
    '''
181 1
    Issue = 0
182 1
    Renew = 1
183
184 1
class NodeAttributesMask(object):
185
    '''
186
    The bits used to specify default attributes for a new node.
187
    
188
    :ivar None_: 
189
    :vartype None_: 0 
190
    :ivar AccessLevel: 
191
    :vartype AccessLevel: 1 
192
    :ivar ArrayDimensions: 
193
    :vartype ArrayDimensions: 2 
194
    :ivar BrowseName: 
195
    :vartype BrowseName: 4 
196
    :ivar ContainsNoLoops: 
197
    :vartype ContainsNoLoops: 8 
198
    :ivar DataType: 
199
    :vartype DataType: 16 
200
    :ivar Description: 
201
    :vartype Description: 32 
202
    :ivar DisplayName: 
203
    :vartype DisplayName: 64 
204
    :ivar EventNotifier: 
205
    :vartype EventNotifier: 128 
206
    :ivar Executable: 
207
    :vartype Executable: 256 
208
    :ivar Historizing: 
209
    :vartype Historizing: 512 
210
    :ivar InverseName: 
211
    :vartype InverseName: 1024 
212
    :ivar IsAbstract: 
213
    :vartype IsAbstract: 2048 
214
    :ivar MinimumSamplingInterval: 
215
    :vartype MinimumSamplingInterval: 4096 
216
    :ivar NodeClass: 
217
    :vartype NodeClass: 8192 
218
    :ivar NodeId: 
219
    :vartype NodeId: 16384 
220
    :ivar Symmetric: 
221
    :vartype Symmetric: 32768 
222
    :ivar UserAccessLevel: 
223
    :vartype UserAccessLevel: 65536 
224
    :ivar UserExecutable: 
225
    :vartype UserExecutable: 131072 
226
    :ivar UserWriteMask: 
227
    :vartype UserWriteMask: 262144 
228
    :ivar ValueRank: 
229
    :vartype ValueRank: 524288 
230
    :ivar WriteMask: 
231
    :vartype WriteMask: 1048576 
232
    :ivar Value: 
233
    :vartype Value: 2097152 
234
    :ivar All: 
235
    :vartype All: 4194303 
236
    :ivar BaseNode: 
237
    :vartype BaseNode: 1335396 
238
    :ivar Object: 
239
    :vartype Object: 1335524 
240
    :ivar ObjectTypeOrDataType: 
241
    :vartype ObjectTypeOrDataType: 1337444 
242
    :ivar Variable: 
243
    :vartype Variable: 4026999 
244
    :ivar VariableType: 
245
    :vartype VariableType: 3958902 
246
    :ivar Method: 
247
    :vartype Method: 1466724 
248
    :ivar ReferenceType: 
249
    :vartype ReferenceType: 1371236 
250
    :ivar View: 
251
    :vartype View: 1335532 
252
    '''
253 1
    None_ = 0
254 1
    AccessLevel = 1
255 1
    ArrayDimensions = 2
256 1
    BrowseName = 4
257 1
    ContainsNoLoops = 8
258 1
    DataType = 16
259 1
    Description = 32
260 1
    DisplayName = 64
261 1
    EventNotifier = 128
262 1
    Executable = 256
263 1
    Historizing = 512
264 1
    InverseName = 1024
265 1
    IsAbstract = 2048
266 1
    MinimumSamplingInterval = 4096
267 1
    NodeClass = 8192
268 1
    NodeId = 16384
269 1
    Symmetric = 32768
270 1
    UserAccessLevel = 65536
271 1
    UserExecutable = 131072
272 1
    UserWriteMask = 262144
273 1
    ValueRank = 524288
274 1
    WriteMask = 1048576
275 1
    Value = 2097152
276 1
    All = 4194303
277 1
    BaseNode = 1335396
278 1
    Object = 1335524
279 1
    ObjectTypeOrDataType = 1337444
280 1
    Variable = 4026999
281 1
    VariableType = 3958902
282 1
    Method = 1466724
283 1
    ReferenceType = 1371236
284 1
    View = 1335532
285
286 1
class AttributeWriteMask(object):
287
    '''
288
    Define bits used to indicate which attributes are writable.
289
    
290
    :ivar None_: 
291
    :vartype None_: 0 
292
    :ivar AccessLevel: 
293
    :vartype AccessLevel: 1 
294
    :ivar ArrayDimensions: 
295
    :vartype ArrayDimensions: 2 
296
    :ivar BrowseName: 
297
    :vartype BrowseName: 4 
298
    :ivar ContainsNoLoops: 
299
    :vartype ContainsNoLoops: 8 
300
    :ivar DataType: 
301
    :vartype DataType: 16 
302
    :ivar Description: 
303
    :vartype Description: 32 
304
    :ivar DisplayName: 
305
    :vartype DisplayName: 64 
306
    :ivar EventNotifier: 
307
    :vartype EventNotifier: 128 
308
    :ivar Executable: 
309
    :vartype Executable: 256 
310
    :ivar Historizing: 
311
    :vartype Historizing: 512 
312
    :ivar InverseName: 
313
    :vartype InverseName: 1024 
314
    :ivar IsAbstract: 
315
    :vartype IsAbstract: 2048 
316
    :ivar MinimumSamplingInterval: 
317
    :vartype MinimumSamplingInterval: 4096 
318
    :ivar NodeClass: 
319
    :vartype NodeClass: 8192 
320
    :ivar NodeId: 
321
    :vartype NodeId: 16384 
322
    :ivar Symmetric: 
323
    :vartype Symmetric: 32768 
324
    :ivar UserAccessLevel: 
325
    :vartype UserAccessLevel: 65536 
326
    :ivar UserExecutable: 
327
    :vartype UserExecutable: 131072 
328
    :ivar UserWriteMask: 
329
    :vartype UserWriteMask: 262144 
330
    :ivar ValueRank: 
331
    :vartype ValueRank: 524288 
332
    :ivar WriteMask: 
333
    :vartype WriteMask: 1048576 
334
    :ivar ValueForVariableType: 
335
    :vartype ValueForVariableType: 2097152 
336
    '''
337 1
    None_ = 0
338 1
    AccessLevel = 1
339 1
    ArrayDimensions = 2
340 1
    BrowseName = 4
341 1
    ContainsNoLoops = 8
342 1
    DataType = 16
343 1
    Description = 32
344 1
    DisplayName = 64
345 1
    EventNotifier = 128
346 1
    Executable = 256
347 1
    Historizing = 512
348 1
    InverseName = 1024
349 1
    IsAbstract = 2048
350 1
    MinimumSamplingInterval = 4096
351 1
    NodeClass = 8192
352 1
    NodeId = 16384
353 1
    Symmetric = 32768
354 1
    UserAccessLevel = 65536
355 1
    UserExecutable = 131072
356 1
    UserWriteMask = 262144
357 1
    ValueRank = 524288
358 1
    WriteMask = 1048576
359 1
    ValueForVariableType = 2097152
360
361 1
class BrowseDirection(object):
362
    '''
363
    The directions of the references to return.
364
    
365
    :ivar Forward: 
366
    :vartype Forward: 0 
367
    :ivar Inverse: 
368
    :vartype Inverse: 1 
369
    :ivar Both: 
370
    :vartype Both: 2 
371
    '''
372 1
    Forward = 0
373 1
    Inverse = 1
374 1
    Both = 2
375
376 1
class BrowseResultMask(object):
377
    '''
378
    A bit mask which specifies what should be returned in a browse response.
379
    
380
    :ivar None_: 
381
    :vartype None_: 0 
382
    :ivar ReferenceTypeId: 
383
    :vartype ReferenceTypeId: 1 
384
    :ivar IsForward: 
385
    :vartype IsForward: 2 
386
    :ivar NodeClass: 
387
    :vartype NodeClass: 4 
388
    :ivar BrowseName: 
389
    :vartype BrowseName: 8 
390
    :ivar DisplayName: 
391
    :vartype DisplayName: 16 
392
    :ivar TypeDefinition: 
393
    :vartype TypeDefinition: 32 
394
    :ivar All: 
395
    :vartype All: 63 
396
    :ivar ReferenceTypeInfo: 
397
    :vartype ReferenceTypeInfo: 3 
398
    :ivar TargetInfo: 
399
    :vartype TargetInfo: 60 
400
    '''
401 1
    None_ = 0
402 1
    ReferenceTypeId = 1
403 1
    IsForward = 2
404 1
    NodeClass = 4
405 1
    BrowseName = 8
406 1
    DisplayName = 16
407 1
    TypeDefinition = 32
408 1
    All = 63
409 1
    ReferenceTypeInfo = 3
410 1
    TargetInfo = 60
411
412 1
class ComplianceLevel(object):
413
    '''
414
    :ivar Untested: 
415
    :vartype Untested: 0 
416
    :ivar Partial: 
417
    :vartype Partial: 1 
418
    :ivar SelfTested: 
419
    :vartype SelfTested: 2 
420
    :ivar Certified: 
421
    :vartype Certified: 3 
422
    '''
423 1
    Untested = 0
424 1
    Partial = 1
425 1
    SelfTested = 2
426 1
    Certified = 3
427
428 1
class FilterOperator(object):
429
    '''
430
    :ivar Equals: 
431
    :vartype Equals: 0 
432
    :ivar IsNull: 
433
    :vartype IsNull: 1 
434
    :ivar GreaterThan: 
435
    :vartype GreaterThan: 2 
436
    :ivar LessThan: 
437
    :vartype LessThan: 3 
438
    :ivar GreaterThanOrEqual: 
439
    :vartype GreaterThanOrEqual: 4 
440
    :ivar LessThanOrEqual: 
441
    :vartype LessThanOrEqual: 5 
442
    :ivar Like: 
443
    :vartype Like: 6 
444
    :ivar Not: 
445
    :vartype Not: 7 
446
    :ivar Between: 
447
    :vartype Between: 8 
448
    :ivar InList: 
449
    :vartype InList: 9 
450
    :ivar And: 
451
    :vartype And: 10 
452
    :ivar Or: 
453
    :vartype Or: 11 
454
    :ivar Cast: 
455
    :vartype Cast: 12 
456
    :ivar InView: 
457
    :vartype InView: 13 
458
    :ivar OfType: 
459
    :vartype OfType: 14 
460
    :ivar RelatedTo: 
461
    :vartype RelatedTo: 15 
462
    :ivar BitwiseAnd: 
463
    :vartype BitwiseAnd: 16 
464
    :ivar BitwiseOr: 
465
    :vartype BitwiseOr: 17 
466
    '''
467 1
    Equals = 0
468 1
    IsNull = 1
469 1
    GreaterThan = 2
470 1
    LessThan = 3
471 1
    GreaterThanOrEqual = 4
472 1
    LessThanOrEqual = 5
473 1
    Like = 6
474 1
    Not = 7
475 1
    Between = 8
476 1
    InList = 9
477 1
    And = 10
478 1
    Or = 11
479 1
    Cast = 12
480 1
    InView = 13
481 1
    OfType = 14
482 1
    RelatedTo = 15
483 1
    BitwiseAnd = 16
484 1
    BitwiseOr = 17
485
486 1
class TimestampsToReturn(object):
487
    '''
488
    :ivar Source: 
489
    :vartype Source: 0 
490
    :ivar Server: 
491
    :vartype Server: 1 
492
    :ivar Both: 
493
    :vartype Both: 2 
494
    :ivar Neither: 
495
    :vartype Neither: 3 
496
    '''
497 1
    Source = 0
498 1
    Server = 1
499 1
    Both = 2
500 1
    Neither = 3
501
502 1
class HistoryUpdateType(object):
503
    '''
504
    :ivar Insert: 
505
    :vartype Insert: 1 
506
    :ivar Replace: 
507
    :vartype Replace: 2 
508
    :ivar Update: 
509
    :vartype Update: 3 
510
    :ivar Delete: 
511
    :vartype Delete: 4 
512
    '''
513 1
    Insert = 1
514 1
    Replace = 2
515 1
    Update = 3
516 1
    Delete = 4
517
518 1
class PerformUpdateType(object):
519
    '''
520
    :ivar Insert: 
521
    :vartype Insert: 1 
522
    :ivar Replace: 
523
    :vartype Replace: 2 
524
    :ivar Update: 
525
    :vartype Update: 3 
526
    :ivar Remove: 
527
    :vartype Remove: 4 
528
    '''
529 1
    Insert = 1
530 1
    Replace = 2
531 1
    Update = 3
532 1
    Remove = 4
533
534 1
class MonitoringMode(object):
535
    '''
536
    :ivar Disabled: 
537
    :vartype Disabled: 0 
538
    :ivar Sampling: 
539
    :vartype Sampling: 1 
540
    :ivar Reporting: 
541
    :vartype Reporting: 2 
542
    '''
543 1
    Disabled = 0
544 1
    Sampling = 1
545 1
    Reporting = 2
546
547 1
class DataChangeTrigger(object):
548
    '''
549
    :ivar Status: 
550
    :vartype Status: 0 
551
    :ivar StatusValue: 
552
    :vartype StatusValue: 1 
553
    :ivar StatusValueTimestamp: 
554
    :vartype StatusValueTimestamp: 2 
555
    '''
556 1
    Status = 0
557 1
    StatusValue = 1
558 1
    StatusValueTimestamp = 2
559
560 1
class DeadbandType(object):
561
    '''
562
    :ivar None_: 
563
    :vartype None_: 0 
564
    :ivar Absolute: 
565
    :vartype Absolute: 1 
566
    :ivar Percent: 
567
    :vartype Percent: 2 
568
    '''
569 1
    None_ = 0
570 1
    Absolute = 1
571 1
    Percent = 2
572
573 1
class EnumeratedTestType(object):
574
    '''
575
    A simple enumerated type used for testing.
576
    
577
    :ivar Red: 
578
    :vartype Red: 1 
579
    :ivar Yellow: 
580
    :vartype Yellow: 4 
581
    :ivar Green: 
582
    :vartype Green: 5 
583
    '''
584 1
    Red = 1
585 1
    Yellow = 4
586 1
    Green = 5
587
588 1
class RedundancySupport(object):
589
    '''
590
    :ivar None_: 
591
    :vartype None_: 0 
592
    :ivar Cold: 
593
    :vartype Cold: 1 
594
    :ivar Warm: 
595
    :vartype Warm: 2 
596
    :ivar Hot: 
597
    :vartype Hot: 3 
598
    :ivar Transparent: 
599
    :vartype Transparent: 4 
600
    :ivar HotAndMirrored: 
601
    :vartype HotAndMirrored: 5 
602
    '''
603 1
    None_ = 0
604 1
    Cold = 1
605 1
    Warm = 2
606 1
    Hot = 3
607 1
    Transparent = 4
608 1
    HotAndMirrored = 5
609
610 1
class ServerState(object):
611
    '''
612
    :ivar Running: 
613
    :vartype Running: 0 
614
    :ivar Failed: 
615
    :vartype Failed: 1 
616
    :ivar NoConfiguration: 
617
    :vartype NoConfiguration: 2 
618
    :ivar Suspended: 
619
    :vartype Suspended: 3 
620
    :ivar Shutdown: 
621
    :vartype Shutdown: 4 
622
    :ivar Test: 
623
    :vartype Test: 5 
624
    :ivar CommunicationFault: 
625
    :vartype CommunicationFault: 6 
626
    :ivar Unknown: 
627
    :vartype Unknown: 7 
628
    '''
629 1
    Running = 0
630 1
    Failed = 1
631 1
    NoConfiguration = 2
632 1
    Suspended = 3
633 1
    Shutdown = 4
634 1
    Test = 5
635 1
    CommunicationFault = 6
636 1
    Unknown = 7
637
638 1
class ModelChangeStructureVerbMask(object):
639
    '''
640
    :ivar NodeAdded: 
641
    :vartype NodeAdded: 1 
642
    :ivar NodeDeleted: 
643
    :vartype NodeDeleted: 2 
644
    :ivar ReferenceAdded: 
645
    :vartype ReferenceAdded: 4 
646
    :ivar ReferenceDeleted: 
647
    :vartype ReferenceDeleted: 8 
648
    :ivar DataTypeChanged: 
649
    :vartype DataTypeChanged: 16 
650
    '''
651 1
    NodeAdded = 1
652 1
    NodeDeleted = 2
653 1
    ReferenceAdded = 4
654 1
    ReferenceDeleted = 8
655 1
    DataTypeChanged = 16
656
657 1
class AxisScaleEnumeration(object):
658
    '''
659
    :ivar Linear: 
660
    :vartype Linear: 0 
661
    :ivar Log: 
662
    :vartype Log: 1 
663
    :ivar Ln: 
664
    :vartype Ln: 2 
665
    '''
666 1
    Linear = 0
667 1
    Log = 1
668 1
    Ln = 2
669
670 1
class ExceptionDeviationFormat(object):
671
    '''
672
    :ivar AbsoluteValue: 
673
    :vartype AbsoluteValue: 0 
674
    :ivar PercentOfValue: 
675
    :vartype PercentOfValue: 1 
676
    :ivar PercentOfRange: 
677
    :vartype PercentOfRange: 2 
678
    :ivar PercentOfEURange: 
679
    :vartype PercentOfEURange: 3 
680
    :ivar Unknown: 
681
    :vartype Unknown: 4 
682
    '''
683 1
    AbsoluteValue = 0
684 1
    PercentOfValue = 1
685 1
    PercentOfRange = 2
686 1
    PercentOfEURange = 3
687 1
    Unknown = 4
688
689 1
class XmlElement(FrozenClass):
690
    '''
691
    An XML element encoded as a UTF-8 string.
692
    
693
    :ivar Length: 
694
    :vartype Length: Int32 
695
    :ivar Value: 
696
    :vartype Value: Char 
697
    '''
698 1
    def __init__(self):
699
        self.Length = 0
700
        self.Value = []
701
        self._freeze()
702
    
703 1
    def to_binary(self):
704
        packet = []
705
        packet.append(pack_uatype('Int32', self.Length))
706
        packet.append(struct.pack('<i', len(self.Value)))
707
        for fieldname in self.Value:
708
            packet.append(pack_uatype('Char', fieldname))
709
        return b''.join(packet)
710
        
711 1
    @staticmethod
712
    def from_binary(data):
713
        obj = XmlElement()
714
        obj.Length = unpack_uatype('Int32', data)
715
        obj.Value = unpack_uatype_array('Char', data)
716
        return obj
717
    
718 1
    def __str__(self):
719
        return 'XmlElement(' + 'Length:' + str(self.Length) + ', '  + \
720
             'Value:' + str(self.Value) + ')'
721
    
722 1
    __repr__ = __str__
723
    
724 1
class DiagnosticInfo(FrozenClass):
725
    '''
726
    A recursive structure containing diagnostic information associated with a status code.
727
    
728
    :ivar Encoding: 
729
    :vartype Encoding: UInt8 
730
    :ivar SymbolicId: 
731
    :vartype SymbolicId: Int32 
732
    :ivar NamespaceURI: 
733
    :vartype NamespaceURI: Int32 
734
    :ivar Locale: 
735
    :vartype Locale: Int32 
736
    :ivar LocalizedText: 
737
    :vartype LocalizedText: Int32 
738
    :ivar AdditionalInfo: 
739
    :vartype AdditionalInfo: CharArray 
740
    :ivar InnerStatusCode: 
741
    :vartype InnerStatusCode: StatusCode 
742
    :ivar InnerDiagnosticInfo: 
743
    :vartype InnerDiagnosticInfo: DiagnosticInfo 
744
    '''
745 1
    def __init__(self):
746 1
        self.Encoding = 0
747 1
        self.SymbolicId = 0
748 1
        self.NamespaceURI = 0
749 1
        self.Locale = 0
750 1
        self.LocalizedText = 0
751 1
        self.AdditionalInfo = b''
752 1
        self.InnerStatusCode = StatusCode()
753 1
        self.InnerDiagnosticInfo = None
754 1
        self._freeze()
755
    
756 1
    def to_binary(self):
757 1
        packet = []
758 1
        if self.SymbolicId: self.Encoding |= (1 << 0)
759 1
        if self.NamespaceURI: self.Encoding |= (1 << 1)
760 1
        if self.Locale: self.Encoding |= (1 << 2)
761 1
        if self.LocalizedText: self.Encoding |= (1 << 3)
762 1
        if self.AdditionalInfo: self.Encoding |= (1 << 4)
763 1
        if self.InnerStatusCode: self.Encoding |= (1 << 5)
764 1
        if self.InnerDiagnosticInfo: self.Encoding |= (1 << 6)
765 1
        packet.append(pack_uatype('UInt8', self.Encoding))
766 1
        if self.SymbolicId: 
767
            packet.append(pack_uatype('Int32', self.SymbolicId))
768 1
        if self.NamespaceURI: 
769
            packet.append(pack_uatype('Int32', self.NamespaceURI))
770 1
        if self.Locale: 
771
            packet.append(pack_uatype('Int32', self.Locale))
772 1
        if self.LocalizedText: 
773
            packet.append(pack_uatype('Int32', self.LocalizedText))
774 1
        if self.AdditionalInfo: 
775
            packet.append(pack_uatype('CharArray', self.AdditionalInfo))
776 1
        if self.InnerStatusCode: 
777 1
            packet.append(self.InnerStatusCode.to_binary())
778 1
        if self.InnerDiagnosticInfo: 
779
            packet.append(self.InnerDiagnosticInfo.to_binary())
780 1
        return b''.join(packet)
781
        
782 1
    @staticmethod
783
    def from_binary(data):
784 1
        obj = DiagnosticInfo()
785 1
        obj.Encoding = unpack_uatype('UInt8', data)
786 1
        if obj.Encoding & (1 << 0):
787
            obj.SymbolicId = unpack_uatype('Int32', data)
788 1
        if obj.Encoding & (1 << 1):
789
            obj.NamespaceURI = unpack_uatype('Int32', data)
790 1
        if obj.Encoding & (1 << 2):
791
            obj.Locale = unpack_uatype('Int32', data)
792 1
        if obj.Encoding & (1 << 3):
793
            obj.LocalizedText = unpack_uatype('Int32', data)
794 1
        if obj.Encoding & (1 << 4):
795
            obj.AdditionalInfo = unpack_uatype('CharArray', data)
796 1
        if obj.Encoding & (1 << 5):
797 1
            obj.InnerStatusCode = StatusCode.from_binary(data)
798 1
        if obj.Encoding & (1 << 6):
799
            obj.InnerDiagnosticInfo = DiagnosticInfo.from_binary(data)
800 1
        return obj
801
    
802 1
    def __str__(self):
803
        return 'DiagnosticInfo(' + 'Encoding:' + str(self.Encoding) + ', '  + \
804
             'SymbolicId:' + str(self.SymbolicId) + ', '  + \
805
             'NamespaceURI:' + str(self.NamespaceURI) + ', '  + \
806
             'Locale:' + str(self.Locale) + ', '  + \
807
             'LocalizedText:' + str(self.LocalizedText) + ', '  + \
808
             'AdditionalInfo:' + str(self.AdditionalInfo) + ', '  + \
809
             'InnerStatusCode:' + str(self.InnerStatusCode) + ', '  + \
810
             'InnerDiagnosticInfo:' + str(self.InnerDiagnosticInfo) + ')'
811
    
812 1
    __repr__ = __str__
813
    
814 1
class TrustListDataType(FrozenClass):
815
    '''
816
    :ivar SpecifiedLists: 
817
    :vartype SpecifiedLists: UInt32 
818
    :ivar TrustedCertificates: 
819
    :vartype TrustedCertificates: ByteString 
820
    :ivar TrustedCrls: 
821
    :vartype TrustedCrls: ByteString 
822
    :ivar IssuerCertificates: 
823
    :vartype IssuerCertificates: ByteString 
824
    :ivar IssuerCrls: 
825
    :vartype IssuerCrls: ByteString 
826
    '''
827 1
    def __init__(self):
828
        self.SpecifiedLists = 0
829
        self.TrustedCertificates = []
830
        self.TrustedCrls = []
831
        self.IssuerCertificates = []
832
        self.IssuerCrls = []
833
        self._freeze()
834
    
835 1
    def to_binary(self):
836
        packet = []
837
        packet.append(pack_uatype('UInt32', self.SpecifiedLists))
838
        packet.append(struct.pack('<i', len(self.TrustedCertificates)))
839
        for fieldname in self.TrustedCertificates:
840
            packet.append(pack_uatype('ByteString', fieldname))
841
        packet.append(struct.pack('<i', len(self.TrustedCrls)))
842
        for fieldname in self.TrustedCrls:
843
            packet.append(pack_uatype('ByteString', fieldname))
844
        packet.append(struct.pack('<i', len(self.IssuerCertificates)))
845
        for fieldname in self.IssuerCertificates:
846
            packet.append(pack_uatype('ByteString', fieldname))
847
        packet.append(struct.pack('<i', len(self.IssuerCrls)))
848
        for fieldname in self.IssuerCrls:
849
            packet.append(pack_uatype('ByteString', fieldname))
850
        return b''.join(packet)
851
        
852 1
    @staticmethod
853
    def from_binary(data):
854
        obj = TrustListDataType()
855
        obj.SpecifiedLists = unpack_uatype('UInt32', data)
856
        obj.TrustedCertificates = unpack_uatype_array('ByteString', data)
857
        obj.TrustedCrls = unpack_uatype_array('ByteString', data)
858
        obj.IssuerCertificates = unpack_uatype_array('ByteString', data)
859
        obj.IssuerCrls = unpack_uatype_array('ByteString', data)
860
        return obj
861
    
862 1
    def __str__(self):
863
        return 'TrustListDataType(' + 'SpecifiedLists:' + str(self.SpecifiedLists) + ', '  + \
864
             'TrustedCertificates:' + str(self.TrustedCertificates) + ', '  + \
865
             'TrustedCrls:' + str(self.TrustedCrls) + ', '  + \
866
             'IssuerCertificates:' + str(self.IssuerCertificates) + ', '  + \
867
             'IssuerCrls:' + str(self.IssuerCrls) + ')'
868
    
869 1
    __repr__ = __str__
870
    
871 1
class Argument(FrozenClass):
872
    '''
873
    An argument for a method.
874
    
875
    :ivar Name: 
876
    :vartype Name: String 
877
    :ivar DataType: 
878
    :vartype DataType: NodeId 
879
    :ivar ValueRank: 
880
    :vartype ValueRank: Int32 
881
    :ivar ArrayDimensions: 
882
    :vartype ArrayDimensions: UInt32 
883
    :ivar Description: 
884
    :vartype Description: LocalizedText 
885
    '''
886 1
    def __init__(self):
887 1
        self.Name = ''
888 1
        self.DataType = NodeId()
889 1
        self.ValueRank = 0
890 1
        self.ArrayDimensions = []
891 1
        self.Description = LocalizedText()
892 1
        self._freeze()
893
    
894 1
    def to_binary(self):
895
        packet = []
896
        packet.append(pack_uatype('String', self.Name))
897
        packet.append(self.DataType.to_binary())
898
        packet.append(pack_uatype('Int32', self.ValueRank))
899
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
900
        for fieldname in self.ArrayDimensions:
901
            packet.append(pack_uatype('UInt32', fieldname))
902
        packet.append(self.Description.to_binary())
903
        return b''.join(packet)
904
        
905 1
    @staticmethod
906
    def from_binary(data):
907
        obj = Argument()
908
        obj.Name = unpack_uatype('String', data)
909
        obj.DataType = NodeId.from_binary(data)
910
        obj.ValueRank = unpack_uatype('Int32', data)
911
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
912
        obj.Description = LocalizedText.from_binary(data)
913
        return obj
914
    
915 1
    def __str__(self):
916
        return 'Argument(' + 'Name:' + str(self.Name) + ', '  + \
917
             'DataType:' + str(self.DataType) + ', '  + \
918
             'ValueRank:' + str(self.ValueRank) + ', '  + \
919
             'ArrayDimensions:' + str(self.ArrayDimensions) + ', '  + \
920
             'Description:' + str(self.Description) + ')'
921
    
922 1
    __repr__ = __str__
923
    
924 1
class EnumValueType(FrozenClass):
925
    '''
926
    A mapping between a value of an enumerated type and a name and description.
927
    
928
    :ivar Value: 
929
    :vartype Value: Int64 
930
    :ivar DisplayName: 
931
    :vartype DisplayName: LocalizedText 
932
    :ivar Description: 
933
    :vartype Description: LocalizedText 
934
    '''
935 1
    def __init__(self):
936
        self.Value = 0
937
        self.DisplayName = LocalizedText()
938
        self.Description = LocalizedText()
939
        self._freeze()
940
    
941 1
    def to_binary(self):
942
        packet = []
943
        packet.append(pack_uatype('Int64', self.Value))
944
        packet.append(self.DisplayName.to_binary())
945
        packet.append(self.Description.to_binary())
946
        return b''.join(packet)
947
        
948 1
    @staticmethod
949
    def from_binary(data):
950
        obj = EnumValueType()
951
        obj.Value = unpack_uatype('Int64', data)
952
        obj.DisplayName = LocalizedText.from_binary(data)
953
        obj.Description = LocalizedText.from_binary(data)
954
        return obj
955
    
956 1
    def __str__(self):
957
        return 'EnumValueType(' + 'Value:' + str(self.Value) + ', '  + \
958
             'DisplayName:' + str(self.DisplayName) + ', '  + \
959
             'Description:' + str(self.Description) + ')'
960
    
961 1
    __repr__ = __str__
962
    
963 1
class OptionSet(FrozenClass):
964
    '''
965
    This abstract Structured DataType is the base DataType for all DataTypes representing a bit mask.
966
    
967
    :ivar Value: 
968
    :vartype Value: ByteString 
969
    :ivar ValidBits: 
970
    :vartype ValidBits: ByteString 
971
    '''
972 1
    def __init__(self):
973
        self.Value = b''
974
        self.ValidBits = b''
975
        self._freeze()
976
    
977 1
    def to_binary(self):
978
        packet = []
979
        packet.append(pack_uatype('ByteString', self.Value))
980
        packet.append(pack_uatype('ByteString', self.ValidBits))
981
        return b''.join(packet)
982
        
983 1
    @staticmethod
984
    def from_binary(data):
985
        obj = OptionSet()
986
        obj.Value = unpack_uatype('ByteString', data)
987
        obj.ValidBits = unpack_uatype('ByteString', data)
988
        return obj
989
    
990 1
    def __str__(self):
991
        return 'OptionSet(' + 'Value:' + str(self.Value) + ', '  + \
992
             'ValidBits:' + str(self.ValidBits) + ')'
993
    
994 1
    __repr__ = __str__
995
    
996 1
class Union(FrozenClass):
997
    '''
998
    This abstract DataType is the base DataType for all union DataTypes.
999
    
1000
    '''
1001 1
    def __init__(self):
1002
        self._freeze()
1003
    
1004 1
    def to_binary(self):
1005
        packet = []
1006
        return b''.join(packet)
1007
        
1008 1
    @staticmethod
1009
    def from_binary(data):
1010
        obj = Union()
1011
        return obj
1012
    
1013 1
    def __str__(self):
1014
        return 'Union(' +  + ')'
1015
    
1016 1
    __repr__ = __str__
1017
    
1018 1
class TimeZoneDataType(FrozenClass):
1019
    '''
1020
    :ivar Offset: 
1021
    :vartype Offset: Int16 
1022
    :ivar DaylightSavingInOffset: 
1023
    :vartype DaylightSavingInOffset: Boolean 
1024
    '''
1025 1
    def __init__(self):
1026
        self.Offset = 0
1027
        self.DaylightSavingInOffset = True
1028
        self._freeze()
1029
    
1030 1
    def to_binary(self):
1031
        packet = []
1032
        packet.append(pack_uatype('Int16', self.Offset))
1033
        packet.append(pack_uatype('Boolean', self.DaylightSavingInOffset))
1034
        return b''.join(packet)
1035
        
1036 1
    @staticmethod
1037
    def from_binary(data):
1038
        obj = TimeZoneDataType()
1039
        obj.Offset = unpack_uatype('Int16', data)
1040
        obj.DaylightSavingInOffset = unpack_uatype('Boolean', data)
1041
        return obj
1042
    
1043 1
    def __str__(self):
1044
        return 'TimeZoneDataType(' + 'Offset:' + str(self.Offset) + ', '  + \
1045
             'DaylightSavingInOffset:' + str(self.DaylightSavingInOffset) + ')'
1046
    
1047 1
    __repr__ = __str__
1048
    
1049 1
class ApplicationDescription(FrozenClass):
1050
    '''
1051
    Describes an application and how to find it.
1052
    
1053
    :ivar ApplicationUri: 
1054
    :vartype ApplicationUri: String 
1055
    :ivar ProductUri: 
1056
    :vartype ProductUri: String 
1057
    :ivar ApplicationName: 
1058
    :vartype ApplicationName: LocalizedText 
1059
    :ivar ApplicationType: 
1060
    :vartype ApplicationType: ApplicationType 
1061
    :ivar GatewayServerUri: 
1062
    :vartype GatewayServerUri: String 
1063
    :ivar DiscoveryProfileUri: 
1064
    :vartype DiscoveryProfileUri: String 
1065
    :ivar DiscoveryUrls: 
1066
    :vartype DiscoveryUrls: String 
1067
    '''
1068 1
    def __init__(self):
1069 1
        self.ApplicationUri = ''
1070 1
        self.ProductUri = ''
1071 1
        self.ApplicationName = LocalizedText()
1072 1
        self.ApplicationType = 0
1073 1
        self.GatewayServerUri = ''
1074 1
        self.DiscoveryProfileUri = ''
1075 1
        self.DiscoveryUrls = []
1076 1
        self._freeze()
1077
    
1078 1
    def to_binary(self):
1079 1
        packet = []
1080 1
        packet.append(pack_uatype('String', self.ApplicationUri))
1081 1
        packet.append(pack_uatype('String', self.ProductUri))
1082 1
        packet.append(self.ApplicationName.to_binary())
1083 1
        packet.append(pack_uatype('UInt32', self.ApplicationType))
1084 1
        packet.append(pack_uatype('String', self.GatewayServerUri))
1085 1
        packet.append(pack_uatype('String', self.DiscoveryProfileUri))
1086 1
        packet.append(struct.pack('<i', len(self.DiscoveryUrls)))
1087 1
        for fieldname in self.DiscoveryUrls:
1088 1
            packet.append(pack_uatype('String', fieldname))
1089 1
        return b''.join(packet)
1090
        
1091 1
    @staticmethod
1092
    def from_binary(data):
1093 1
        obj = ApplicationDescription()
1094 1
        obj.ApplicationUri = unpack_uatype('String', data)
1095 1
        obj.ProductUri = unpack_uatype('String', data)
1096 1
        obj.ApplicationName = LocalizedText.from_binary(data)
1097 1
        obj.ApplicationType = unpack_uatype('UInt32', data)
1098 1
        obj.GatewayServerUri = unpack_uatype('String', data)
1099 1
        obj.DiscoveryProfileUri = unpack_uatype('String', data)
1100 1
        obj.DiscoveryUrls = unpack_uatype_array('String', data)
1101 1
        return obj
1102
    
1103 1
    def __str__(self):
1104
        return 'ApplicationDescription(' + 'ApplicationUri:' + str(self.ApplicationUri) + ', '  + \
1105
             'ProductUri:' + str(self.ProductUri) + ', '  + \
1106
             'ApplicationName:' + str(self.ApplicationName) + ', '  + \
1107
             'ApplicationType:' + str(self.ApplicationType) + ', '  + \
1108
             'GatewayServerUri:' + str(self.GatewayServerUri) + ', '  + \
1109
             'DiscoveryProfileUri:' + str(self.DiscoveryProfileUri) + ', '  + \
1110
             'DiscoveryUrls:' + str(self.DiscoveryUrls) + ')'
1111
    
1112 1
    __repr__ = __str__
1113
    
1114 1
class RequestHeader(FrozenClass):
1115
    '''
1116
    The header passed with every server request.
1117
    
1118
    :ivar AuthenticationToken: 
1119
    :vartype AuthenticationToken: NodeId 
1120
    :ivar Timestamp: 
1121
    :vartype Timestamp: DateTime 
1122
    :ivar RequestHandle: 
1123
    :vartype RequestHandle: UInt32 
1124
    :ivar ReturnDiagnostics: 
1125
    :vartype ReturnDiagnostics: UInt32 
1126
    :ivar AuditEntryId: 
1127
    :vartype AuditEntryId: String 
1128
    :ivar TimeoutHint: 
1129
    :vartype TimeoutHint: UInt32 
1130
    :ivar AdditionalHeader: 
1131
    :vartype AdditionalHeader: ExtensionObject 
1132
    '''
1133 1
    def __init__(self):
1134 1
        self.AuthenticationToken = NodeId()
1135 1
        self.Timestamp = datetime.now()
1136 1
        self.RequestHandle = 0
1137 1
        self.ReturnDiagnostics = 0
1138 1
        self.AuditEntryId = ''
1139 1
        self.TimeoutHint = 0
1140 1
        self.AdditionalHeader = None
1141 1
        self._freeze()
1142
    
1143 1
    def to_binary(self):
1144 1
        packet = []
1145 1
        packet.append(self.AuthenticationToken.to_binary())
1146 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
1147 1
        packet.append(pack_uatype('UInt32', self.RequestHandle))
1148 1
        packet.append(pack_uatype('UInt32', self.ReturnDiagnostics))
1149 1
        packet.append(pack_uatype('String', self.AuditEntryId))
1150 1
        packet.append(pack_uatype('UInt32', self.TimeoutHint))
1151 1
        packet.append(extensionobject_to_binary(self.AdditionalHeader))
1152 1
        return b''.join(packet)
1153
        
1154 1
    @staticmethod
1155
    def from_binary(data):
1156 1
        obj = RequestHeader()
1157 1
        obj.AuthenticationToken = NodeId.from_binary(data)
1158 1
        obj.Timestamp = unpack_uatype('DateTime', data)
1159 1
        obj.RequestHandle = unpack_uatype('UInt32', data)
1160 1
        obj.ReturnDiagnostics = unpack_uatype('UInt32', data)
1161 1
        obj.AuditEntryId = unpack_uatype('String', data)
1162 1
        obj.TimeoutHint = unpack_uatype('UInt32', data)
1163 1
        obj.AdditionalHeader = extensionobject_from_binary(data)
1164 1
        return obj
1165
    
1166 1
    def __str__(self):
1167
        return 'RequestHeader(' + 'AuthenticationToken:' + str(self.AuthenticationToken) + ', '  + \
1168
             'Timestamp:' + str(self.Timestamp) + ', '  + \
1169
             'RequestHandle:' + str(self.RequestHandle) + ', '  + \
1170
             'ReturnDiagnostics:' + str(self.ReturnDiagnostics) + ', '  + \
1171
             'AuditEntryId:' + str(self.AuditEntryId) + ', '  + \
1172
             'TimeoutHint:' + str(self.TimeoutHint) + ', '  + \
1173
             'AdditionalHeader:' + str(self.AdditionalHeader) + ')'
1174
    
1175 1
    __repr__ = __str__
1176
    
1177 1
class ResponseHeader(FrozenClass):
1178
    '''
1179
    The header passed with every server response.
1180
    
1181
    :ivar Timestamp: 
1182
    :vartype Timestamp: DateTime 
1183
    :ivar RequestHandle: 
1184
    :vartype RequestHandle: UInt32 
1185
    :ivar ServiceResult: 
1186
    :vartype ServiceResult: StatusCode 
1187
    :ivar ServiceDiagnostics: 
1188
    :vartype ServiceDiagnostics: DiagnosticInfo 
1189
    :ivar StringTable: 
1190
    :vartype StringTable: String 
1191
    :ivar AdditionalHeader: 
1192
    :vartype AdditionalHeader: ExtensionObject 
1193
    '''
1194 1
    def __init__(self):
1195 1
        self.Timestamp = datetime.now()
1196 1
        self.RequestHandle = 0
1197 1
        self.ServiceResult = StatusCode()
1198 1
        self.ServiceDiagnostics = DiagnosticInfo()
1199 1
        self.StringTable = []
1200 1
        self.AdditionalHeader = None
1201 1
        self._freeze()
1202
    
1203 1
    def to_binary(self):
1204 1
        packet = []
1205 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
1206 1
        packet.append(pack_uatype('UInt32', self.RequestHandle))
1207 1
        packet.append(self.ServiceResult.to_binary())
1208 1
        packet.append(self.ServiceDiagnostics.to_binary())
1209 1
        packet.append(struct.pack('<i', len(self.StringTable)))
1210 1
        for fieldname in self.StringTable:
1211
            packet.append(pack_uatype('String', fieldname))
1212 1
        packet.append(extensionobject_to_binary(self.AdditionalHeader))
1213 1
        return b''.join(packet)
1214
        
1215 1
    @staticmethod
1216
    def from_binary(data):
1217 1
        obj = ResponseHeader()
1218 1
        obj.Timestamp = unpack_uatype('DateTime', data)
1219 1
        obj.RequestHandle = unpack_uatype('UInt32', data)
1220 1
        obj.ServiceResult = StatusCode.from_binary(data)
1221 1
        obj.ServiceDiagnostics = DiagnosticInfo.from_binary(data)
1222 1
        obj.StringTable = unpack_uatype_array('String', data)
1223 1
        obj.AdditionalHeader = extensionobject_from_binary(data)
1224 1
        return obj
1225
    
1226 1
    def __str__(self):
1227
        return 'ResponseHeader(' + 'Timestamp:' + str(self.Timestamp) + ', '  + \
1228
             'RequestHandle:' + str(self.RequestHandle) + ', '  + \
1229
             'ServiceResult:' + str(self.ServiceResult) + ', '  + \
1230
             'ServiceDiagnostics:' + str(self.ServiceDiagnostics) + ', '  + \
1231
             'StringTable:' + str(self.StringTable) + ', '  + \
1232
             'AdditionalHeader:' + str(self.AdditionalHeader) + ')'
1233
    
1234 1
    __repr__ = __str__
1235
    
1236 1
class ServiceFault(FrozenClass):
1237
    '''
1238
    The response returned by all services when there is a service level error.
1239
    
1240
    :ivar TypeId: 
1241
    :vartype TypeId: NodeId 
1242
    :ivar ResponseHeader: 
1243
    :vartype ResponseHeader: ResponseHeader 
1244
    '''
1245 1
    def __init__(self):
1246
        self.TypeId = FourByteNodeId(ObjectIds.ServiceFault_Encoding_DefaultBinary)
1247
        self.ResponseHeader = ResponseHeader()
1248
        self._freeze()
1249
    
1250 1
    def to_binary(self):
1251
        packet = []
1252
        packet.append(self.TypeId.to_binary())
1253
        packet.append(self.ResponseHeader.to_binary())
1254
        return b''.join(packet)
1255
        
1256 1
    @staticmethod
1257
    def from_binary(data):
1258
        obj = ServiceFault()
1259
        obj.TypeId = NodeId.from_binary(data)
1260
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1261
        return obj
1262
    
1263 1
    def __str__(self):
1264
        return 'ServiceFault(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1265
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
1266
    
1267 1
    __repr__ = __str__
1268
    
1269 1
class FindServersParameters(FrozenClass):
1270
    '''
1271
    :ivar EndpointUrl: 
1272
    :vartype EndpointUrl: String 
1273
    :ivar LocaleIds: 
1274
    :vartype LocaleIds: String 
1275
    :ivar ServerUris: 
1276
    :vartype ServerUris: String 
1277
    '''
1278 1
    def __init__(self):
1279
        self.EndpointUrl = ''
1280
        self.LocaleIds = []
1281
        self.ServerUris = []
1282
        self._freeze()
1283
    
1284 1
    def to_binary(self):
1285
        packet = []
1286
        packet.append(pack_uatype('String', self.EndpointUrl))
1287
        packet.append(struct.pack('<i', len(self.LocaleIds)))
1288
        for fieldname in self.LocaleIds:
1289
            packet.append(pack_uatype('String', fieldname))
1290
        packet.append(struct.pack('<i', len(self.ServerUris)))
1291
        for fieldname in self.ServerUris:
1292
            packet.append(pack_uatype('String', fieldname))
1293
        return b''.join(packet)
1294
        
1295 1
    @staticmethod
1296
    def from_binary(data):
1297
        obj = FindServersParameters()
1298
        obj.EndpointUrl = unpack_uatype('String', data)
1299
        obj.LocaleIds = unpack_uatype_array('String', data)
1300
        obj.ServerUris = unpack_uatype_array('String', data)
1301
        return obj
1302
    
1303 1
    def __str__(self):
1304
        return 'FindServersParameters(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
1305
             'LocaleIds:' + str(self.LocaleIds) + ', '  + \
1306
             'ServerUris:' + str(self.ServerUris) + ')'
1307
    
1308 1
    __repr__ = __str__
1309
    
1310 1
class FindServersRequest(FrozenClass):
1311
    '''
1312
    Finds the servers known to the discovery server.
1313
    
1314
    :ivar TypeId: 
1315
    :vartype TypeId: NodeId 
1316
    :ivar RequestHeader: 
1317
    :vartype RequestHeader: RequestHeader 
1318
    :ivar Parameters: 
1319
    :vartype Parameters: FindServersParameters 
1320
    '''
1321 1
    def __init__(self):
1322
        self.TypeId = FourByteNodeId(ObjectIds.FindServersRequest_Encoding_DefaultBinary)
1323
        self.RequestHeader = RequestHeader()
1324
        self.Parameters = FindServersParameters()
1325
        self._freeze()
1326
    
1327 1
    def to_binary(self):
1328
        packet = []
1329
        packet.append(self.TypeId.to_binary())
1330
        packet.append(self.RequestHeader.to_binary())
1331
        packet.append(self.Parameters.to_binary())
1332
        return b''.join(packet)
1333
        
1334 1
    @staticmethod
1335
    def from_binary(data):
1336
        obj = FindServersRequest()
1337
        obj.TypeId = NodeId.from_binary(data)
1338
        obj.RequestHeader = RequestHeader.from_binary(data)
1339
        obj.Parameters = FindServersParameters.from_binary(data)
1340
        return obj
1341
    
1342 1
    def __str__(self):
1343
        return 'FindServersRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1344
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
1345
             'Parameters:' + str(self.Parameters) + ')'
1346
    
1347 1
    __repr__ = __str__
1348
    
1349 1
class FindServersResponse(FrozenClass):
1350
    '''
1351
    Finds the servers known to the discovery server.
1352
    
1353
    :ivar TypeId: 
1354
    :vartype TypeId: NodeId 
1355
    :ivar ResponseHeader: 
1356
    :vartype ResponseHeader: ResponseHeader 
1357
    :ivar Servers: 
1358
    :vartype Servers: ApplicationDescription 
1359
    '''
1360 1
    def __init__(self):
1361
        self.TypeId = FourByteNodeId(ObjectIds.FindServersResponse_Encoding_DefaultBinary)
1362
        self.ResponseHeader = ResponseHeader()
1363
        self.Servers = []
1364
        self._freeze()
1365
    
1366 1
    def to_binary(self):
1367
        packet = []
1368
        packet.append(self.TypeId.to_binary())
1369
        packet.append(self.ResponseHeader.to_binary())
1370
        packet.append(struct.pack('<i', len(self.Servers)))
1371
        for fieldname in self.Servers:
1372
            packet.append(fieldname.to_binary())
1373
        return b''.join(packet)
1374
        
1375 1
    @staticmethod
1376
    def from_binary(data):
1377
        obj = FindServersResponse()
1378
        obj.TypeId = NodeId.from_binary(data)
1379
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1380
        length = struct.unpack('<i', data.read(4))[0]
1381
        if length != -1:
1382
            for _ in range(0, length):
1383
                obj.Servers.append(ApplicationDescription.from_binary(data))
1384
        return obj
1385
    
1386 1
    def __str__(self):
1387
        return 'FindServersResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1388
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
1389
             'Servers:' + str(self.Servers) + ')'
1390
    
1391 1
    __repr__ = __str__
1392
    
1393 1
class ServerOnNetwork(FrozenClass):
1394
    '''
1395
    :ivar RecordId: 
1396
    :vartype RecordId: UInt32 
1397
    :ivar ServerName: 
1398
    :vartype ServerName: String 
1399
    :ivar DiscoveryUrl: 
1400
    :vartype DiscoveryUrl: String 
1401
    :ivar ServerCapabilities: 
1402
    :vartype ServerCapabilities: String 
1403
    '''
1404 1
    def __init__(self):
1405
        self.RecordId = 0
1406
        self.ServerName = ''
1407
        self.DiscoveryUrl = ''
1408
        self.ServerCapabilities = []
1409
        self._freeze()
1410
    
1411 1
    def to_binary(self):
1412
        packet = []
1413
        packet.append(pack_uatype('UInt32', self.RecordId))
1414
        packet.append(pack_uatype('String', self.ServerName))
1415
        packet.append(pack_uatype('String', self.DiscoveryUrl))
1416
        packet.append(struct.pack('<i', len(self.ServerCapabilities)))
1417
        for fieldname in self.ServerCapabilities:
1418
            packet.append(pack_uatype('String', fieldname))
1419
        return b''.join(packet)
1420
        
1421 1
    @staticmethod
1422
    def from_binary(data):
1423
        obj = ServerOnNetwork()
1424
        obj.RecordId = unpack_uatype('UInt32', data)
1425
        obj.ServerName = unpack_uatype('String', data)
1426
        obj.DiscoveryUrl = unpack_uatype('String', data)
1427
        obj.ServerCapabilities = unpack_uatype_array('String', data)
1428
        return obj
1429
    
1430 1
    def __str__(self):
1431
        return 'ServerOnNetwork(' + 'RecordId:' + str(self.RecordId) + ', '  + \
1432
             'ServerName:' + str(self.ServerName) + ', '  + \
1433
             'DiscoveryUrl:' + str(self.DiscoveryUrl) + ', '  + \
1434
             'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
1435
    
1436 1
    __repr__ = __str__
1437
    
1438 1
class FindServersOnNetworkParameters(FrozenClass):
1439
    '''
1440
    :ivar StartingRecordId: 
1441
    :vartype StartingRecordId: UInt32 
1442
    :ivar MaxRecordsToReturn: 
1443
    :vartype MaxRecordsToReturn: UInt32 
1444
    :ivar ServerCapabilityFilter: 
1445
    :vartype ServerCapabilityFilter: String 
1446
    '''
1447 1
    def __init__(self):
1448
        self.StartingRecordId = 0
1449
        self.MaxRecordsToReturn = 0
1450
        self.ServerCapabilityFilter = []
1451
        self._freeze()
1452
    
1453 1
    def to_binary(self):
1454
        packet = []
1455
        packet.append(pack_uatype('UInt32', self.StartingRecordId))
1456
        packet.append(pack_uatype('UInt32', self.MaxRecordsToReturn))
1457
        packet.append(struct.pack('<i', len(self.ServerCapabilityFilter)))
1458
        for fieldname in self.ServerCapabilityFilter:
1459
            packet.append(pack_uatype('String', fieldname))
1460
        return b''.join(packet)
1461
        
1462 1
    @staticmethod
1463
    def from_binary(data):
1464
        obj = FindServersOnNetworkParameters()
1465
        obj.StartingRecordId = unpack_uatype('UInt32', data)
1466
        obj.MaxRecordsToReturn = unpack_uatype('UInt32', data)
1467
        obj.ServerCapabilityFilter = unpack_uatype_array('String', data)
1468
        return obj
1469
    
1470 1
    def __str__(self):
1471
        return 'FindServersOnNetworkParameters(' + 'StartingRecordId:' + str(self.StartingRecordId) + ', '  + \
1472
             'MaxRecordsToReturn:' + str(self.MaxRecordsToReturn) + ', '  + \
1473
             'ServerCapabilityFilter:' + str(self.ServerCapabilityFilter) + ')'
1474
    
1475 1
    __repr__ = __str__
1476
    
1477 1
class FindServersOnNetworkRequest(FrozenClass):
1478
    '''
1479
    :ivar TypeId: 
1480
    :vartype TypeId: NodeId 
1481
    :ivar RequestHeader: 
1482
    :vartype RequestHeader: RequestHeader 
1483
    :ivar Parameters: 
1484
    :vartype Parameters: FindServersOnNetworkParameters 
1485
    '''
1486 1
    def __init__(self):
1487
        self.TypeId = FourByteNodeId(ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary)
1488
        self.RequestHeader = RequestHeader()
1489
        self.Parameters = FindServersOnNetworkParameters()
1490
        self._freeze()
1491
    
1492 1
    def to_binary(self):
1493
        packet = []
1494
        packet.append(self.TypeId.to_binary())
1495
        packet.append(self.RequestHeader.to_binary())
1496
        packet.append(self.Parameters.to_binary())
1497
        return b''.join(packet)
1498
        
1499 1
    @staticmethod
1500
    def from_binary(data):
1501
        obj = FindServersOnNetworkRequest()
1502
        obj.TypeId = NodeId.from_binary(data)
1503
        obj.RequestHeader = RequestHeader.from_binary(data)
1504
        obj.Parameters = FindServersOnNetworkParameters.from_binary(data)
1505
        return obj
1506
    
1507 1
    def __str__(self):
1508
        return 'FindServersOnNetworkRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1509
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
1510
             'Parameters:' + str(self.Parameters) + ')'
1511
    
1512 1
    __repr__ = __str__
1513
    
1514 1
class FindServersOnNetworkResult(FrozenClass):
1515
    '''
1516
    :ivar LastCounterResetTime: 
1517
    :vartype LastCounterResetTime: DateTime 
1518
    :ivar Servers: 
1519
    :vartype Servers: ServerOnNetwork 
1520
    '''
1521 1
    def __init__(self):
1522
        self.LastCounterResetTime = datetime.now()
1523
        self.Servers = []
1524
        self._freeze()
1525
    
1526 1
    def to_binary(self):
1527
        packet = []
1528
        packet.append(pack_uatype('DateTime', self.LastCounterResetTime))
1529
        packet.append(struct.pack('<i', len(self.Servers)))
1530
        for fieldname in self.Servers:
1531
            packet.append(fieldname.to_binary())
1532
        return b''.join(packet)
1533
        
1534 1
    @staticmethod
1535
    def from_binary(data):
1536
        obj = FindServersOnNetworkResult()
1537
        obj.LastCounterResetTime = unpack_uatype('DateTime', data)
1538
        length = struct.unpack('<i', data.read(4))[0]
1539
        if length != -1:
1540
            for _ in range(0, length):
1541
                obj.Servers.append(ServerOnNetwork.from_binary(data))
1542
        return obj
1543
    
1544 1
    def __str__(self):
1545
        return 'FindServersOnNetworkResult(' + 'LastCounterResetTime:' + str(self.LastCounterResetTime) + ', '  + \
1546
             'Servers:' + str(self.Servers) + ')'
1547
    
1548 1
    __repr__ = __str__
1549
    
1550 1
class FindServersOnNetworkResponse(FrozenClass):
1551
    '''
1552
    :ivar TypeId: 
1553
    :vartype TypeId: NodeId 
1554
    :ivar ResponseHeader: 
1555
    :vartype ResponseHeader: ResponseHeader 
1556
    :ivar Parameters: 
1557
    :vartype Parameters: FindServersOnNetworkResult 
1558
    '''
1559 1
    def __init__(self):
1560
        self.TypeId = FourByteNodeId(ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary)
1561
        self.ResponseHeader = ResponseHeader()
1562
        self.Parameters = FindServersOnNetworkResult()
1563
        self._freeze()
1564
    
1565 1
    def to_binary(self):
1566
        packet = []
1567
        packet.append(self.TypeId.to_binary())
1568
        packet.append(self.ResponseHeader.to_binary())
1569
        packet.append(self.Parameters.to_binary())
1570
        return b''.join(packet)
1571
        
1572 1
    @staticmethod
1573
    def from_binary(data):
1574
        obj = FindServersOnNetworkResponse()
1575
        obj.TypeId = NodeId.from_binary(data)
1576
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1577
        obj.Parameters = FindServersOnNetworkResult.from_binary(data)
1578
        return obj
1579
    
1580 1
    def __str__(self):
1581
        return 'FindServersOnNetworkResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1582
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
1583
             'Parameters:' + str(self.Parameters) + ')'
1584
    
1585 1
    __repr__ = __str__
1586
    
1587 1
class UserTokenPolicy(FrozenClass):
1588
    '''
1589
    Describes a user token that can be used with a server.
1590
    
1591
    :ivar PolicyId: 
1592
    :vartype PolicyId: String 
1593
    :ivar TokenType: 
1594
    :vartype TokenType: UserTokenType 
1595
    :ivar IssuedTokenType: 
1596
    :vartype IssuedTokenType: String 
1597
    :ivar IssuerEndpointUrl: 
1598
    :vartype IssuerEndpointUrl: String 
1599
    :ivar SecurityPolicyUri: 
1600
    :vartype SecurityPolicyUri: String 
1601
    '''
1602 1
    def __init__(self):
1603 1
        self.PolicyId = ''
1604 1
        self.TokenType = 0
1605 1
        self.IssuedTokenType = ''
1606 1
        self.IssuerEndpointUrl = ''
1607 1
        self.SecurityPolicyUri = ''
1608 1
        self._freeze()
1609
    
1610 1
    def to_binary(self):
1611 1
        packet = []
1612 1
        packet.append(pack_uatype('String', self.PolicyId))
1613 1
        packet.append(pack_uatype('UInt32', self.TokenType))
1614 1
        packet.append(pack_uatype('String', self.IssuedTokenType))
1615 1
        packet.append(pack_uatype('String', self.IssuerEndpointUrl))
1616 1
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
1617 1
        return b''.join(packet)
1618
        
1619 1
    @staticmethod
1620
    def from_binary(data):
1621 1
        obj = UserTokenPolicy()
1622 1
        obj.PolicyId = unpack_uatype('String', data)
1623 1
        obj.TokenType = unpack_uatype('UInt32', data)
1624 1
        obj.IssuedTokenType = unpack_uatype('String', data)
1625 1
        obj.IssuerEndpointUrl = unpack_uatype('String', data)
1626 1
        obj.SecurityPolicyUri = unpack_uatype('String', data)
1627 1
        return obj
1628
    
1629 1
    def __str__(self):
1630
        return 'UserTokenPolicy(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
1631
             'TokenType:' + str(self.TokenType) + ', '  + \
1632
             'IssuedTokenType:' + str(self.IssuedTokenType) + ', '  + \
1633
             'IssuerEndpointUrl:' + str(self.IssuerEndpointUrl) + ', '  + \
1634
             'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ')'
1635
    
1636 1
    __repr__ = __str__
1637
    
1638 1
class EndpointDescription(FrozenClass):
1639
    '''
1640
    The description of a endpoint that can be used to access a server.
1641
    
1642
    :ivar EndpointUrl: 
1643
    :vartype EndpointUrl: String 
1644
    :ivar Server: 
1645
    :vartype Server: ApplicationDescription 
1646
    :ivar ServerCertificate: 
1647
    :vartype ServerCertificate: ByteString 
1648
    :ivar SecurityMode: 
1649
    :vartype SecurityMode: MessageSecurityMode 
1650
    :ivar SecurityPolicyUri: 
1651
    :vartype SecurityPolicyUri: String 
1652
    :ivar UserIdentityTokens: 
1653
    :vartype UserIdentityTokens: UserTokenPolicy 
1654
    :ivar TransportProfileUri: 
1655
    :vartype TransportProfileUri: String 
1656
    :ivar SecurityLevel: 
1657
    :vartype SecurityLevel: Byte 
1658
    '''
1659 1
    def __init__(self):
1660 1
        self.EndpointUrl = ''
1661 1
        self.Server = ApplicationDescription()
1662 1
        self.ServerCertificate = b''
1663 1
        self.SecurityMode = 0
1664 1
        self.SecurityPolicyUri = ''
1665 1
        self.UserIdentityTokens = []
1666 1
        self.TransportProfileUri = ''
1667 1
        self.SecurityLevel = 0
1668 1
        self._freeze()
1669
    
1670 1
    def to_binary(self):
1671 1
        packet = []
1672 1
        packet.append(pack_uatype('String', self.EndpointUrl))
1673 1
        packet.append(self.Server.to_binary())
1674 1
        packet.append(pack_uatype('ByteString', self.ServerCertificate))
1675 1
        packet.append(pack_uatype('UInt32', self.SecurityMode))
1676 1
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
1677 1
        packet.append(struct.pack('<i', len(self.UserIdentityTokens)))
1678 1
        for fieldname in self.UserIdentityTokens:
1679 1
            packet.append(fieldname.to_binary())
1680 1
        packet.append(pack_uatype('String', self.TransportProfileUri))
1681 1
        packet.append(pack_uatype('Byte', self.SecurityLevel))
1682 1
        return b''.join(packet)
1683
        
1684 1
    @staticmethod
1685
    def from_binary(data):
1686 1
        obj = EndpointDescription()
1687 1
        obj.EndpointUrl = unpack_uatype('String', data)
1688 1
        obj.Server = ApplicationDescription.from_binary(data)
1689 1
        obj.ServerCertificate = unpack_uatype('ByteString', data)
1690 1
        obj.SecurityMode = unpack_uatype('UInt32', data)
1691 1
        obj.SecurityPolicyUri = unpack_uatype('String', data)
1692 1
        length = struct.unpack('<i', data.read(4))[0]
1693 1
        if length != -1:
1694 1
            for _ in range(0, length):
1695 1
                obj.UserIdentityTokens.append(UserTokenPolicy.from_binary(data))
1696 1
        obj.TransportProfileUri = unpack_uatype('String', data)
1697 1
        obj.SecurityLevel = unpack_uatype('Byte', data)
1698 1
        return obj
1699
    
1700 1
    def __str__(self):
1701
        return 'EndpointDescription(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
1702
             'Server:' + str(self.Server) + ', '  + \
1703
             'ServerCertificate:' + str(self.ServerCertificate) + ', '  + \
1704
             'SecurityMode:' + str(self.SecurityMode) + ', '  + \
1705
             'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', '  + \
1706
             'UserIdentityTokens:' + str(self.UserIdentityTokens) + ', '  + \
1707
             'TransportProfileUri:' + str(self.TransportProfileUri) + ', '  + \
1708
             'SecurityLevel:' + str(self.SecurityLevel) + ')'
1709
    
1710 1
    __repr__ = __str__
1711
    
1712 1
class GetEndpointsParameters(FrozenClass):
1713
    '''
1714
    :ivar EndpointUrl: 
1715
    :vartype EndpointUrl: String 
1716
    :ivar LocaleIds: 
1717
    :vartype LocaleIds: String 
1718
    :ivar ProfileUris: 
1719
    :vartype ProfileUris: String 
1720
    '''
1721 1
    def __init__(self):
1722 1
        self.EndpointUrl = ''
1723 1
        self.LocaleIds = []
1724 1
        self.ProfileUris = []
1725 1
        self._freeze()
1726
    
1727 1
    def to_binary(self):
1728 1
        packet = []
1729 1
        packet.append(pack_uatype('String', self.EndpointUrl))
1730 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
1731 1
        for fieldname in self.LocaleIds:
1732
            packet.append(pack_uatype('String', fieldname))
1733 1
        packet.append(struct.pack('<i', len(self.ProfileUris)))
1734 1
        for fieldname in self.ProfileUris:
1735
            packet.append(pack_uatype('String', fieldname))
1736 1
        return b''.join(packet)
1737
        
1738 1
    @staticmethod
1739
    def from_binary(data):
1740 1
        obj = GetEndpointsParameters()
1741 1
        obj.EndpointUrl = unpack_uatype('String', data)
1742 1
        obj.LocaleIds = unpack_uatype_array('String', data)
1743 1
        obj.ProfileUris = unpack_uatype_array('String', data)
1744 1
        return obj
1745
    
1746 1
    def __str__(self):
1747
        return 'GetEndpointsParameters(' + 'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
1748
             'LocaleIds:' + str(self.LocaleIds) + ', '  + \
1749
             'ProfileUris:' + str(self.ProfileUris) + ')'
1750
    
1751 1
    __repr__ = __str__
1752
    
1753 1
class GetEndpointsRequest(FrozenClass):
1754
    '''
1755
    Gets the endpoints used by the server.
1756
    
1757
    :ivar TypeId: 
1758
    :vartype TypeId: NodeId 
1759
    :ivar RequestHeader: 
1760
    :vartype RequestHeader: RequestHeader 
1761
    :ivar Parameters: 
1762
    :vartype Parameters: GetEndpointsParameters 
1763
    '''
1764 1
    def __init__(self):
1765 1
        self.TypeId = FourByteNodeId(ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary)
1766 1
        self.RequestHeader = RequestHeader()
1767 1
        self.Parameters = GetEndpointsParameters()
1768 1
        self._freeze()
1769
    
1770 1
    def to_binary(self):
1771 1
        packet = []
1772 1
        packet.append(self.TypeId.to_binary())
1773 1
        packet.append(self.RequestHeader.to_binary())
1774 1
        packet.append(self.Parameters.to_binary())
1775 1
        return b''.join(packet)
1776
        
1777 1
    @staticmethod
1778
    def from_binary(data):
1779
        obj = GetEndpointsRequest()
1780
        obj.TypeId = NodeId.from_binary(data)
1781
        obj.RequestHeader = RequestHeader.from_binary(data)
1782
        obj.Parameters = GetEndpointsParameters.from_binary(data)
1783
        return obj
1784
    
1785 1
    def __str__(self):
1786
        return 'GetEndpointsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1787
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
1788
             'Parameters:' + str(self.Parameters) + ')'
1789
    
1790 1
    __repr__ = __str__
1791
    
1792 1
class GetEndpointsResponse(FrozenClass):
1793
    '''
1794
    Gets the endpoints used by the server.
1795
    
1796
    :ivar TypeId: 
1797
    :vartype TypeId: NodeId 
1798
    :ivar ResponseHeader: 
1799
    :vartype ResponseHeader: ResponseHeader 
1800
    :ivar Endpoints: 
1801
    :vartype Endpoints: EndpointDescription 
1802
    '''
1803 1
    def __init__(self):
1804 1
        self.TypeId = FourByteNodeId(ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary)
1805 1
        self.ResponseHeader = ResponseHeader()
1806 1
        self.Endpoints = []
1807 1
        self._freeze()
1808
    
1809 1
    def to_binary(self):
1810 1
        packet = []
1811 1
        packet.append(self.TypeId.to_binary())
1812 1
        packet.append(self.ResponseHeader.to_binary())
1813 1
        packet.append(struct.pack('<i', len(self.Endpoints)))
1814 1
        for fieldname in self.Endpoints:
1815 1
            packet.append(fieldname.to_binary())
1816 1
        return b''.join(packet)
1817
        
1818 1
    @staticmethod
1819
    def from_binary(data):
1820 1
        obj = GetEndpointsResponse()
1821 1
        obj.TypeId = NodeId.from_binary(data)
1822 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1823 1
        length = struct.unpack('<i', data.read(4))[0]
1824 1
        if length != -1:
1825 1
            for _ in range(0, length):
1826 1
                obj.Endpoints.append(EndpointDescription.from_binary(data))
1827 1
        return obj
1828
    
1829 1
    def __str__(self):
1830
        return 'GetEndpointsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1831
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
1832
             'Endpoints:' + str(self.Endpoints) + ')'
1833
    
1834 1
    __repr__ = __str__
1835
    
1836 1
class RegisteredServer(FrozenClass):
1837
    '''
1838
    The information required to register a server with a discovery server.
1839
    
1840
    :ivar ServerUri: 
1841
    :vartype ServerUri: String 
1842
    :ivar ProductUri: 
1843
    :vartype ProductUri: String 
1844
    :ivar ServerNames: 
1845
    :vartype ServerNames: LocalizedText 
1846
    :ivar ServerType: 
1847
    :vartype ServerType: ApplicationType 
1848
    :ivar GatewayServerUri: 
1849
    :vartype GatewayServerUri: String 
1850
    :ivar DiscoveryUrls: 
1851
    :vartype DiscoveryUrls: String 
1852
    :ivar SemaphoreFilePath: 
1853
    :vartype SemaphoreFilePath: String 
1854
    :ivar IsOnline: 
1855
    :vartype IsOnline: Boolean 
1856
    '''
1857 1
    def __init__(self):
1858
        self.ServerUri = ''
1859
        self.ProductUri = ''
1860
        self.ServerNames = []
1861
        self.ServerType = 0
1862
        self.GatewayServerUri = ''
1863
        self.DiscoveryUrls = []
1864
        self.SemaphoreFilePath = ''
1865
        self.IsOnline = True
1866
        self._freeze()
1867
    
1868 1
    def to_binary(self):
1869
        packet = []
1870
        packet.append(pack_uatype('String', self.ServerUri))
1871
        packet.append(pack_uatype('String', self.ProductUri))
1872
        packet.append(struct.pack('<i', len(self.ServerNames)))
1873
        for fieldname in self.ServerNames:
1874
            packet.append(fieldname.to_binary())
1875
        packet.append(pack_uatype('UInt32', self.ServerType))
1876
        packet.append(pack_uatype('String', self.GatewayServerUri))
1877
        packet.append(struct.pack('<i', len(self.DiscoveryUrls)))
1878
        for fieldname in self.DiscoveryUrls:
1879
            packet.append(pack_uatype('String', fieldname))
1880
        packet.append(pack_uatype('String', self.SemaphoreFilePath))
1881
        packet.append(pack_uatype('Boolean', self.IsOnline))
1882
        return b''.join(packet)
1883
        
1884 1
    @staticmethod
1885
    def from_binary(data):
1886
        obj = RegisteredServer()
1887
        obj.ServerUri = unpack_uatype('String', data)
1888
        obj.ProductUri = unpack_uatype('String', data)
1889
        length = struct.unpack('<i', data.read(4))[0]
1890
        if length != -1:
1891
            for _ in range(0, length):
1892
                obj.ServerNames.append(LocalizedText.from_binary(data))
1893
        obj.ServerType = unpack_uatype('UInt32', data)
1894
        obj.GatewayServerUri = unpack_uatype('String', data)
1895
        obj.DiscoveryUrls = unpack_uatype_array('String', data)
1896
        obj.SemaphoreFilePath = unpack_uatype('String', data)
1897
        obj.IsOnline = unpack_uatype('Boolean', data)
1898
        return obj
1899
    
1900 1
    def __str__(self):
1901
        return 'RegisteredServer(' + 'ServerUri:' + str(self.ServerUri) + ', '  + \
1902
             'ProductUri:' + str(self.ProductUri) + ', '  + \
1903
             'ServerNames:' + str(self.ServerNames) + ', '  + \
1904
             'ServerType:' + str(self.ServerType) + ', '  + \
1905
             'GatewayServerUri:' + str(self.GatewayServerUri) + ', '  + \
1906
             'DiscoveryUrls:' + str(self.DiscoveryUrls) + ', '  + \
1907
             'SemaphoreFilePath:' + str(self.SemaphoreFilePath) + ', '  + \
1908
             'IsOnline:' + str(self.IsOnline) + ')'
1909
    
1910 1
    __repr__ = __str__
1911
    
1912 1
class RegisterServerParameters(FrozenClass):
1913
    '''
1914
    :ivar Server: 
1915
    :vartype Server: RegisteredServer 
1916
    '''
1917 1
    def __init__(self):
1918
        self.Server = RegisteredServer()
1919
        self._freeze()
1920
    
1921 1
    def to_binary(self):
1922
        packet = []
1923
        packet.append(self.Server.to_binary())
1924
        return b''.join(packet)
1925
        
1926 1
    @staticmethod
1927
    def from_binary(data):
1928
        obj = RegisterServerParameters()
1929
        obj.Server = RegisteredServer.from_binary(data)
1930
        return obj
1931
    
1932 1
    def __str__(self):
1933
        return 'RegisterServerParameters(' + 'Server:' + str(self.Server) + ')'
1934
    
1935 1
    __repr__ = __str__
1936
    
1937 1
class RegisterServerRequest(FrozenClass):
1938
    '''
1939
    Registers a server with the discovery server.
1940
    
1941
    :ivar TypeId: 
1942
    :vartype TypeId: NodeId 
1943
    :ivar RequestHeader: 
1944
    :vartype RequestHeader: RequestHeader 
1945
    :ivar Parameters: 
1946
    :vartype Parameters: RegisterServerParameters 
1947
    '''
1948 1
    def __init__(self):
1949
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerRequest_Encoding_DefaultBinary)
1950
        self.RequestHeader = RequestHeader()
1951
        self.Parameters = RegisterServerParameters()
1952
        self._freeze()
1953
    
1954 1
    def to_binary(self):
1955
        packet = []
1956
        packet.append(self.TypeId.to_binary())
1957
        packet.append(self.RequestHeader.to_binary())
1958
        packet.append(self.Parameters.to_binary())
1959
        return b''.join(packet)
1960
        
1961 1
    @staticmethod
1962
    def from_binary(data):
1963
        obj = RegisterServerRequest()
1964
        obj.TypeId = NodeId.from_binary(data)
1965
        obj.RequestHeader = RequestHeader.from_binary(data)
1966
        obj.Parameters = RegisterServerParameters.from_binary(data)
1967
        return obj
1968
    
1969 1
    def __str__(self):
1970
        return 'RegisterServerRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1971
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
1972
             'Parameters:' + str(self.Parameters) + ')'
1973
    
1974 1
    __repr__ = __str__
1975
    
1976 1
class RegisterServerResponse(FrozenClass):
1977
    '''
1978
    Registers a server with the discovery server.
1979
    
1980
    :ivar TypeId: 
1981
    :vartype TypeId: NodeId 
1982
    :ivar ResponseHeader: 
1983
    :vartype ResponseHeader: ResponseHeader 
1984
    '''
1985 1
    def __init__(self):
1986
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerResponse_Encoding_DefaultBinary)
1987
        self.ResponseHeader = ResponseHeader()
1988
        self._freeze()
1989
    
1990 1
    def to_binary(self):
1991
        packet = []
1992
        packet.append(self.TypeId.to_binary())
1993
        packet.append(self.ResponseHeader.to_binary())
1994
        return b''.join(packet)
1995
        
1996 1
    @staticmethod
1997
    def from_binary(data):
1998
        obj = RegisterServerResponse()
1999
        obj.TypeId = NodeId.from_binary(data)
2000
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2001
        return obj
2002
    
2003 1
    def __str__(self):
2004
        return 'RegisterServerResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2005
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
2006
    
2007 1
    __repr__ = __str__
2008
    
2009 1
class DiscoveryConfiguration(FrozenClass):
2010
    '''
2011
    A base type for discovery configuration information.
2012
    
2013
    '''
2014 1
    def __init__(self):
2015
        self._freeze()
2016
    
2017 1
    def to_binary(self):
2018
        packet = []
2019
        return b''.join(packet)
2020
        
2021 1
    @staticmethod
2022
    def from_binary(data):
2023
        obj = DiscoveryConfiguration()
2024
        return obj
2025
    
2026 1
    def __str__(self):
2027
        return 'DiscoveryConfiguration(' +  + ')'
2028
    
2029 1
    __repr__ = __str__
2030
    
2031 1
class MdnsDiscoveryConfiguration(FrozenClass):
2032
    '''
2033
    The discovery information needed for mDNS registration.
2034
    
2035
    :ivar MdnsServerName: 
2036
    :vartype MdnsServerName: String 
2037
    :ivar ServerCapabilities: 
2038
    :vartype ServerCapabilities: String 
2039
    '''
2040 1
    def __init__(self):
2041
        self.MdnsServerName = ''
2042
        self.ServerCapabilities = []
2043
        self._freeze()
2044
    
2045 1
    def to_binary(self):
2046
        packet = []
2047
        packet.append(pack_uatype('String', self.MdnsServerName))
2048
        packet.append(struct.pack('<i', len(self.ServerCapabilities)))
2049
        for fieldname in self.ServerCapabilities:
2050
            packet.append(pack_uatype('String', fieldname))
2051
        return b''.join(packet)
2052
        
2053 1
    @staticmethod
2054
    def from_binary(data):
2055
        obj = MdnsDiscoveryConfiguration()
2056
        obj.MdnsServerName = unpack_uatype('String', data)
2057
        obj.ServerCapabilities = unpack_uatype_array('String', data)
2058
        return obj
2059
    
2060 1
    def __str__(self):
2061
        return 'MdnsDiscoveryConfiguration(' + 'MdnsServerName:' + str(self.MdnsServerName) + ', '  + \
2062
             'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
2063
    
2064 1
    __repr__ = __str__
2065
    
2066 1
class RegisterServer2Parameters(FrozenClass):
2067
    '''
2068
    :ivar Server: 
2069
    :vartype Server: RegisteredServer 
2070
    :ivar DiscoveryConfiguration: 
2071
    :vartype DiscoveryConfiguration: ExtensionObject 
2072
    '''
2073 1
    def __init__(self):
2074
        self.Server = RegisteredServer()
2075
        self.DiscoveryConfiguration = []
2076
        self._freeze()
2077
    
2078 1
    def to_binary(self):
2079
        packet = []
2080
        packet.append(self.Server.to_binary())
2081
        packet.append(struct.pack('<i', len(self.DiscoveryConfiguration)))
2082
        for fieldname in self.DiscoveryConfiguration:
2083
            packet.append(extensionobject_to_binary(fieldname))
2084
        return b''.join(packet)
2085
        
2086 1
    @staticmethod
2087
    def from_binary(data):
2088
        obj = RegisterServer2Parameters()
2089
        obj.Server = RegisteredServer.from_binary(data)
2090
        length = struct.unpack('<i', data.read(4))[0]
2091
        if length != -1:
2092
            for _ in range(0, length):
2093
                obj.DiscoveryConfiguration.append(extensionobject_from_binary(data))
2094
        return obj
2095
    
2096 1
    def __str__(self):
2097
        return 'RegisterServer2Parameters(' + 'Server:' + str(self.Server) + ', '  + \
2098
             'DiscoveryConfiguration:' + str(self.DiscoveryConfiguration) + ')'
2099
    
2100 1
    __repr__ = __str__
2101
    
2102 1
class RegisterServer2Request(FrozenClass):
2103
    '''
2104
    :ivar TypeId: 
2105
    :vartype TypeId: NodeId 
2106
    :ivar RequestHeader: 
2107
    :vartype RequestHeader: RequestHeader 
2108
    :ivar Parameters: 
2109
    :vartype Parameters: RegisterServer2Parameters 
2110
    '''
2111 1
    def __init__(self):
2112
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Request_Encoding_DefaultBinary)
2113
        self.RequestHeader = RequestHeader()
2114
        self.Parameters = RegisterServer2Parameters()
2115
        self._freeze()
2116
    
2117 1
    def to_binary(self):
2118
        packet = []
2119
        packet.append(self.TypeId.to_binary())
2120
        packet.append(self.RequestHeader.to_binary())
2121
        packet.append(self.Parameters.to_binary())
2122
        return b''.join(packet)
2123
        
2124 1
    @staticmethod
2125
    def from_binary(data):
2126
        obj = RegisterServer2Request()
2127
        obj.TypeId = NodeId.from_binary(data)
2128
        obj.RequestHeader = RequestHeader.from_binary(data)
2129
        obj.Parameters = RegisterServer2Parameters.from_binary(data)
2130
        return obj
2131
    
2132 1
    def __str__(self):
2133
        return 'RegisterServer2Request(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2134
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
2135
             'Parameters:' + str(self.Parameters) + ')'
2136
    
2137 1
    __repr__ = __str__
2138
    
2139 1
class RegisterServer2Result(FrozenClass):
2140
    '''
2141
    :ivar ConfigurationResults: 
2142
    :vartype ConfigurationResults: StatusCode 
2143
    :ivar DiagnosticInfos: 
2144
    :vartype DiagnosticInfos: DiagnosticInfo 
2145
    '''
2146 1
    def __init__(self):
2147
        self.ConfigurationResults = []
2148
        self.DiagnosticInfos = []
2149
        self._freeze()
2150
    
2151 1
    def to_binary(self):
2152
        packet = []
2153
        packet.append(struct.pack('<i', len(self.ConfigurationResults)))
2154
        for fieldname in self.ConfigurationResults:
2155
            packet.append(fieldname.to_binary())
2156
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
2157
        for fieldname in self.DiagnosticInfos:
2158
            packet.append(fieldname.to_binary())
2159
        return b''.join(packet)
2160
        
2161 1
    @staticmethod
2162
    def from_binary(data):
2163
        obj = RegisterServer2Result()
2164
        length = struct.unpack('<i', data.read(4))[0]
2165
        if length != -1:
2166
            for _ in range(0, length):
2167
                obj.ConfigurationResults.append(StatusCode.from_binary(data))
2168
        length = struct.unpack('<i', data.read(4))[0]
2169
        if length != -1:
2170
            for _ in range(0, length):
2171
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
2172
        return obj
2173
    
2174 1
    def __str__(self):
2175
        return 'RegisterServer2Result(' + 'ConfigurationResults:' + str(self.ConfigurationResults) + ', '  + \
2176
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
2177
    
2178 1
    __repr__ = __str__
2179
    
2180 1
class RegisterServer2Response(FrozenClass):
2181
    '''
2182
    :ivar TypeId: 
2183
    :vartype TypeId: NodeId 
2184
    :ivar ResponseHeader: 
2185
    :vartype ResponseHeader: ResponseHeader 
2186
    :ivar Parameters: 
2187
    :vartype Parameters: RegisterServer2Result 
2188
    '''
2189 1
    def __init__(self):
2190
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Response_Encoding_DefaultBinary)
2191
        self.ResponseHeader = ResponseHeader()
2192
        self.Parameters = RegisterServer2Result()
2193
        self._freeze()
2194
    
2195 1
    def to_binary(self):
2196
        packet = []
2197
        packet.append(self.TypeId.to_binary())
2198
        packet.append(self.ResponseHeader.to_binary())
2199
        packet.append(self.Parameters.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
        obj.Parameters = RegisterServer2Result.from_binary(data)
2208
        return obj
2209
    
2210 1
    def __str__(self):
2211
        return 'RegisterServer2Response(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2212
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
2213
             'Parameters:' + str(self.Parameters) + ')'
2214
    
2215 1
    __repr__ = __str__
2216
    
2217 1
class ChannelSecurityToken(FrozenClass):
2218
    '''
2219
    The token that identifies a set of keys for an active secure channel.
2220
    
2221
    :ivar ChannelId: 
2222
    :vartype ChannelId: UInt32 
2223
    :ivar TokenId: 
2224
    :vartype TokenId: UInt32 
2225
    :ivar CreatedAt: 
2226
    :vartype CreatedAt: DateTime 
2227
    :ivar RevisedLifetime: 
2228
    :vartype RevisedLifetime: UInt32 
2229
    '''
2230 1
    def __init__(self):
2231 1
        self.ChannelId = 0
2232 1
        self.TokenId = 0
2233 1
        self.CreatedAt = datetime.now()
2234 1
        self.RevisedLifetime = 0
2235 1
        self._freeze()
2236
    
2237 1
    def to_binary(self):
2238 1
        packet = []
2239 1
        packet.append(pack_uatype('UInt32', self.ChannelId))
2240 1
        packet.append(pack_uatype('UInt32', self.TokenId))
2241 1
        packet.append(pack_uatype('DateTime', self.CreatedAt))
2242 1
        packet.append(pack_uatype('UInt32', self.RevisedLifetime))
2243 1
        return b''.join(packet)
2244
        
2245 1
    @staticmethod
2246
    def from_binary(data):
2247 1
        obj = ChannelSecurityToken()
2248 1
        obj.ChannelId = unpack_uatype('UInt32', data)
2249 1
        obj.TokenId = unpack_uatype('UInt32', data)
2250 1
        obj.CreatedAt = unpack_uatype('DateTime', data)
2251 1
        obj.RevisedLifetime = unpack_uatype('UInt32', data)
2252 1
        return obj
2253
    
2254 1
    def __str__(self):
2255
        return 'ChannelSecurityToken(' + 'ChannelId:' + str(self.ChannelId) + ', '  + \
2256
             'TokenId:' + str(self.TokenId) + ', '  + \
2257
             'CreatedAt:' + str(self.CreatedAt) + ', '  + \
2258
             'RevisedLifetime:' + str(self.RevisedLifetime) + ')'
2259
    
2260 1
    __repr__ = __str__
2261
    
2262 1
class OpenSecureChannelParameters(FrozenClass):
2263
    '''
2264
    :ivar ClientProtocolVersion: 
2265
    :vartype ClientProtocolVersion: UInt32 
2266
    :ivar RequestType: 
2267
    :vartype RequestType: SecurityTokenRequestType 
2268
    :ivar SecurityMode: 
2269
    :vartype SecurityMode: MessageSecurityMode 
2270
    :ivar ClientNonce: 
2271
    :vartype ClientNonce: ByteString 
2272
    :ivar RequestedLifetime: 
2273
    :vartype RequestedLifetime: UInt32 
2274
    '''
2275 1
    def __init__(self):
2276 1
        self.ClientProtocolVersion = 0
2277 1
        self.RequestType = 0
2278 1
        self.SecurityMode = 0
2279 1
        self.ClientNonce = b''
2280 1
        self.RequestedLifetime = 0
2281 1
        self._freeze()
2282
    
2283 1
    def to_binary(self):
2284 1
        packet = []
2285 1
        packet.append(pack_uatype('UInt32', self.ClientProtocolVersion))
2286 1
        packet.append(pack_uatype('UInt32', self.RequestType))
2287 1
        packet.append(pack_uatype('UInt32', self.SecurityMode))
2288 1
        packet.append(pack_uatype('ByteString', self.ClientNonce))
2289 1
        packet.append(pack_uatype('UInt32', self.RequestedLifetime))
2290 1
        return b''.join(packet)
2291
        
2292 1
    @staticmethod
2293
    def from_binary(data):
2294 1
        obj = OpenSecureChannelParameters()
2295 1
        obj.ClientProtocolVersion = unpack_uatype('UInt32', data)
2296 1
        obj.RequestType = unpack_uatype('UInt32', data)
2297 1
        obj.SecurityMode = unpack_uatype('UInt32', data)
2298 1
        obj.ClientNonce = unpack_uatype('ByteString', data)
2299 1
        obj.RequestedLifetime = unpack_uatype('UInt32', data)
2300 1
        return obj
2301
    
2302 1
    def __str__(self):
2303
        return 'OpenSecureChannelParameters(' + 'ClientProtocolVersion:' + str(self.ClientProtocolVersion) + ', '  + \
2304
             'RequestType:' + str(self.RequestType) + ', '  + \
2305
             'SecurityMode:' + str(self.SecurityMode) + ', '  + \
2306
             'ClientNonce:' + str(self.ClientNonce) + ', '  + \
2307
             'RequestedLifetime:' + str(self.RequestedLifetime) + ')'
2308
    
2309 1
    __repr__ = __str__
2310
    
2311 1
class OpenSecureChannelRequest(FrozenClass):
2312
    '''
2313
    Creates a secure channel with a server.
2314
    
2315
    :ivar TypeId: 
2316
    :vartype TypeId: NodeId 
2317
    :ivar RequestHeader: 
2318
    :vartype RequestHeader: RequestHeader 
2319
    :ivar Parameters: 
2320
    :vartype Parameters: OpenSecureChannelParameters 
2321
    '''
2322 1
    def __init__(self):
2323 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary)
2324 1
        self.RequestHeader = RequestHeader()
2325 1
        self.Parameters = OpenSecureChannelParameters()
2326 1
        self._freeze()
2327
    
2328 1
    def to_binary(self):
2329 1
        packet = []
2330 1
        packet.append(self.TypeId.to_binary())
2331 1
        packet.append(self.RequestHeader.to_binary())
2332 1
        packet.append(self.Parameters.to_binary())
2333 1
        return b''.join(packet)
2334
        
2335 1
    @staticmethod
2336
    def from_binary(data):
2337 1
        obj = OpenSecureChannelRequest()
2338 1
        obj.TypeId = NodeId.from_binary(data)
2339 1
        obj.RequestHeader = RequestHeader.from_binary(data)
2340 1
        obj.Parameters = OpenSecureChannelParameters.from_binary(data)
2341 1
        return obj
2342
    
2343 1
    def __str__(self):
2344
        return 'OpenSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2345
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
2346
             'Parameters:' + str(self.Parameters) + ')'
2347
    
2348 1
    __repr__ = __str__
2349
    
2350 1
class OpenSecureChannelResult(FrozenClass):
2351
    '''
2352
    :ivar ServerProtocolVersion: 
2353
    :vartype ServerProtocolVersion: UInt32 
2354
    :ivar SecurityToken: 
2355
    :vartype SecurityToken: ChannelSecurityToken 
2356
    :ivar ServerNonce: 
2357
    :vartype ServerNonce: ByteString 
2358
    '''
2359 1
    def __init__(self):
2360 1
        self.ServerProtocolVersion = 0
2361 1
        self.SecurityToken = ChannelSecurityToken()
2362 1
        self.ServerNonce = b''
2363 1
        self._freeze()
2364
    
2365 1
    def to_binary(self):
2366 1
        packet = []
2367 1
        packet.append(pack_uatype('UInt32', self.ServerProtocolVersion))
2368 1
        packet.append(self.SecurityToken.to_binary())
2369 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
2370 1
        return b''.join(packet)
2371
        
2372 1
    @staticmethod
2373
    def from_binary(data):
2374 1
        obj = OpenSecureChannelResult()
2375 1
        obj.ServerProtocolVersion = unpack_uatype('UInt32', data)
2376 1
        obj.SecurityToken = ChannelSecurityToken.from_binary(data)
2377 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
2378 1
        return obj
2379
    
2380 1
    def __str__(self):
2381
        return 'OpenSecureChannelResult(' + 'ServerProtocolVersion:' + str(self.ServerProtocolVersion) + ', '  + \
2382
             'SecurityToken:' + str(self.SecurityToken) + ', '  + \
2383
             'ServerNonce:' + str(self.ServerNonce) + ')'
2384
    
2385 1
    __repr__ = __str__
2386
    
2387 1
class OpenSecureChannelResponse(FrozenClass):
2388
    '''
2389
    Creates a secure channel with a server.
2390
    
2391
    :ivar TypeId: 
2392
    :vartype TypeId: NodeId 
2393
    :ivar ResponseHeader: 
2394
    :vartype ResponseHeader: ResponseHeader 
2395
    :ivar Parameters: 
2396
    :vartype Parameters: OpenSecureChannelResult 
2397
    '''
2398 1
    def __init__(self):
2399 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary)
2400 1
        self.ResponseHeader = ResponseHeader()
2401 1
        self.Parameters = OpenSecureChannelResult()
2402 1
        self._freeze()
2403
    
2404 1
    def to_binary(self):
2405 1
        packet = []
2406 1
        packet.append(self.TypeId.to_binary())
2407 1
        packet.append(self.ResponseHeader.to_binary())
2408 1
        packet.append(self.Parameters.to_binary())
2409 1
        return b''.join(packet)
2410
        
2411 1
    @staticmethod
2412
    def from_binary(data):
2413 1
        obj = OpenSecureChannelResponse()
2414 1
        obj.TypeId = NodeId.from_binary(data)
2415 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2416 1
        obj.Parameters = OpenSecureChannelResult.from_binary(data)
2417 1
        return obj
2418
    
2419 1
    def __str__(self):
2420
        return 'OpenSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2421
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
2422
             'Parameters:' + str(self.Parameters) + ')'
2423
    
2424 1
    __repr__ = __str__
2425
    
2426 1
class CloseSecureChannelRequest(FrozenClass):
2427
    '''
2428
    Closes a secure channel.
2429
    
2430
    :ivar TypeId: 
2431
    :vartype TypeId: NodeId 
2432
    :ivar RequestHeader: 
2433
    :vartype RequestHeader: RequestHeader 
2434
    '''
2435 1
    def __init__(self):
2436 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary)
2437 1
        self.RequestHeader = RequestHeader()
2438 1
        self._freeze()
2439
    
2440 1
    def to_binary(self):
2441 1
        packet = []
2442 1
        packet.append(self.TypeId.to_binary())
2443 1
        packet.append(self.RequestHeader.to_binary())
2444 1
        return b''.join(packet)
2445
        
2446 1
    @staticmethod
2447
    def from_binary(data):
2448
        obj = CloseSecureChannelRequest()
2449
        obj.TypeId = NodeId.from_binary(data)
2450
        obj.RequestHeader = RequestHeader.from_binary(data)
2451
        return obj
2452
    
2453 1
    def __str__(self):
2454
        return 'CloseSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2455
             'RequestHeader:' + str(self.RequestHeader) + ')'
2456
    
2457 1
    __repr__ = __str__
2458
    
2459 1
class CloseSecureChannelResponse(FrozenClass):
2460
    '''
2461
    Closes a secure channel.
2462
    
2463
    :ivar TypeId: 
2464
    :vartype TypeId: NodeId 
2465
    :ivar ResponseHeader: 
2466
    :vartype ResponseHeader: ResponseHeader 
2467
    '''
2468 1
    def __init__(self):
2469
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary)
2470
        self.ResponseHeader = ResponseHeader()
2471
        self._freeze()
2472
    
2473 1
    def to_binary(self):
2474
        packet = []
2475
        packet.append(self.TypeId.to_binary())
2476
        packet.append(self.ResponseHeader.to_binary())
2477
        return b''.join(packet)
2478
        
2479 1
    @staticmethod
2480
    def from_binary(data):
2481
        obj = CloseSecureChannelResponse()
2482
        obj.TypeId = NodeId.from_binary(data)
2483
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2484
        return obj
2485
    
2486 1
    def __str__(self):
2487
        return 'CloseSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2488
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
2489
    
2490 1
    __repr__ = __str__
2491
    
2492 1
class SignedSoftwareCertificate(FrozenClass):
2493
    '''
2494
    A software certificate with a digital signature.
2495
    
2496
    :ivar CertificateData: 
2497
    :vartype CertificateData: ByteString 
2498
    :ivar Signature: 
2499
    :vartype Signature: ByteString 
2500
    '''
2501 1
    def __init__(self):
2502
        self.CertificateData = b''
2503
        self.Signature = b''
2504
        self._freeze()
2505
    
2506 1
    def to_binary(self):
2507
        packet = []
2508
        packet.append(pack_uatype('ByteString', self.CertificateData))
2509
        packet.append(pack_uatype('ByteString', self.Signature))
2510
        return b''.join(packet)
2511
        
2512 1
    @staticmethod
2513
    def from_binary(data):
2514
        obj = SignedSoftwareCertificate()
2515
        obj.CertificateData = unpack_uatype('ByteString', data)
2516
        obj.Signature = unpack_uatype('ByteString', data)
2517
        return obj
2518
    
2519 1
    def __str__(self):
2520
        return 'SignedSoftwareCertificate(' + 'CertificateData:' + str(self.CertificateData) + ', '  + \
2521
             'Signature:' + str(self.Signature) + ')'
2522
    
2523 1
    __repr__ = __str__
2524
    
2525 1
class SignatureData(FrozenClass):
2526
    '''
2527
    A digital signature.
2528
    
2529
    :ivar Algorithm: 
2530
    :vartype Algorithm: String 
2531
    :ivar Signature: 
2532
    :vartype Signature: ByteString 
2533
    '''
2534 1
    def __init__(self):
2535 1
        self.Algorithm = ''
2536 1
        self.Signature = b''
2537 1
        self._freeze()
2538
    
2539 1
    def to_binary(self):
2540 1
        packet = []
2541 1
        packet.append(pack_uatype('String', self.Algorithm))
2542 1
        packet.append(pack_uatype('ByteString', self.Signature))
2543 1
        return b''.join(packet)
2544
        
2545 1
    @staticmethod
2546
    def from_binary(data):
2547 1
        obj = SignatureData()
2548 1
        obj.Algorithm = unpack_uatype('String', data)
2549 1
        obj.Signature = unpack_uatype('ByteString', data)
2550 1
        return obj
2551
    
2552 1
    def __str__(self):
2553
        return 'SignatureData(' + 'Algorithm:' + str(self.Algorithm) + ', '  + \
2554
             'Signature:' + str(self.Signature) + ')'
2555
    
2556 1
    __repr__ = __str__
2557
    
2558 1
class CreateSessionParameters(FrozenClass):
2559
    '''
2560
    :ivar ClientDescription: 
2561
    :vartype ClientDescription: ApplicationDescription 
2562
    :ivar ServerUri: 
2563
    :vartype ServerUri: String 
2564
    :ivar EndpointUrl: 
2565
    :vartype EndpointUrl: String 
2566
    :ivar SessionName: 
2567
    :vartype SessionName: String 
2568
    :ivar ClientNonce: 
2569
    :vartype ClientNonce: ByteString 
2570
    :ivar ClientCertificate: 
2571
    :vartype ClientCertificate: ByteString 
2572
    :ivar RequestedSessionTimeout: 
2573
    :vartype RequestedSessionTimeout: Double 
2574
    :ivar MaxResponseMessageSize: 
2575
    :vartype MaxResponseMessageSize: UInt32 
2576
    '''
2577 1
    def __init__(self):
2578 1
        self.ClientDescription = ApplicationDescription()
2579 1
        self.ServerUri = ''
2580 1
        self.EndpointUrl = ''
2581 1
        self.SessionName = ''
2582 1
        self.ClientNonce = b''
2583 1
        self.ClientCertificate = b''
2584 1
        self.RequestedSessionTimeout = 0
2585 1
        self.MaxResponseMessageSize = 0
2586 1
        self._freeze()
2587
    
2588 1
    def to_binary(self):
2589 1
        packet = []
2590 1
        packet.append(self.ClientDescription.to_binary())
2591 1
        packet.append(pack_uatype('String', self.ServerUri))
2592 1
        packet.append(pack_uatype('String', self.EndpointUrl))
2593 1
        packet.append(pack_uatype('String', self.SessionName))
2594 1
        packet.append(pack_uatype('ByteString', self.ClientNonce))
2595 1
        packet.append(pack_uatype('ByteString', self.ClientCertificate))
2596 1
        packet.append(pack_uatype('Double', self.RequestedSessionTimeout))
2597 1
        packet.append(pack_uatype('UInt32', self.MaxResponseMessageSize))
2598 1
        return b''.join(packet)
2599
        
2600 1
    @staticmethod
2601
    def from_binary(data):
2602 1
        obj = CreateSessionParameters()
2603 1
        obj.ClientDescription = ApplicationDescription.from_binary(data)
2604 1
        obj.ServerUri = unpack_uatype('String', data)
2605 1
        obj.EndpointUrl = unpack_uatype('String', data)
2606 1
        obj.SessionName = unpack_uatype('String', data)
2607 1
        obj.ClientNonce = unpack_uatype('ByteString', data)
2608 1
        obj.ClientCertificate = unpack_uatype('ByteString', data)
2609 1
        obj.RequestedSessionTimeout = unpack_uatype('Double', data)
2610 1
        obj.MaxResponseMessageSize = unpack_uatype('UInt32', data)
2611 1
        return obj
2612
    
2613 1
    def __str__(self):
2614
        return 'CreateSessionParameters(' + 'ClientDescription:' + str(self.ClientDescription) + ', '  + \
2615
             'ServerUri:' + str(self.ServerUri) + ', '  + \
2616
             'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
2617
             'SessionName:' + str(self.SessionName) + ', '  + \
2618
             'ClientNonce:' + str(self.ClientNonce) + ', '  + \
2619
             'ClientCertificate:' + str(self.ClientCertificate) + ', '  + \
2620
             'RequestedSessionTimeout:' + str(self.RequestedSessionTimeout) + ', '  + \
2621
             'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ')'
2622
    
2623 1
    __repr__ = __str__
2624
    
2625 1
class CreateSessionRequest(FrozenClass):
2626
    '''
2627
    Creates a new session with the server.
2628
    
2629
    :ivar TypeId: 
2630
    :vartype TypeId: NodeId 
2631
    :ivar RequestHeader: 
2632
    :vartype RequestHeader: RequestHeader 
2633
    :ivar Parameters: 
2634
    :vartype Parameters: CreateSessionParameters 
2635
    '''
2636 1
    def __init__(self):
2637 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionRequest_Encoding_DefaultBinary)
2638 1
        self.RequestHeader = RequestHeader()
2639 1
        self.Parameters = CreateSessionParameters()
2640 1
        self._freeze()
2641
    
2642 1
    def to_binary(self):
2643 1
        packet = []
2644 1
        packet.append(self.TypeId.to_binary())
2645 1
        packet.append(self.RequestHeader.to_binary())
2646 1
        packet.append(self.Parameters.to_binary())
2647 1
        return b''.join(packet)
2648
        
2649 1
    @staticmethod
2650
    def from_binary(data):
2651
        obj = CreateSessionRequest()
2652
        obj.TypeId = NodeId.from_binary(data)
2653
        obj.RequestHeader = RequestHeader.from_binary(data)
2654
        obj.Parameters = CreateSessionParameters.from_binary(data)
2655
        return obj
2656
    
2657 1
    def __str__(self):
2658
        return 'CreateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2659
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
2660
             'Parameters:' + str(self.Parameters) + ')'
2661
    
2662 1
    __repr__ = __str__
2663
    
2664 1
class CreateSessionResult(FrozenClass):
2665
    '''
2666
    :ivar SessionId: 
2667
    :vartype SessionId: NodeId 
2668
    :ivar AuthenticationToken: 
2669
    :vartype AuthenticationToken: NodeId 
2670
    :ivar RevisedSessionTimeout: 
2671
    :vartype RevisedSessionTimeout: Double 
2672
    :ivar ServerNonce: 
2673
    :vartype ServerNonce: ByteString 
2674
    :ivar ServerCertificate: 
2675
    :vartype ServerCertificate: ByteString 
2676
    :ivar ServerEndpoints: 
2677
    :vartype ServerEndpoints: EndpointDescription 
2678
    :ivar ServerSoftwareCertificates: 
2679
    :vartype ServerSoftwareCertificates: SignedSoftwareCertificate 
2680
    :ivar ServerSignature: 
2681
    :vartype ServerSignature: SignatureData 
2682
    :ivar MaxRequestMessageSize: 
2683
    :vartype MaxRequestMessageSize: UInt32 
2684
    '''
2685 1
    def __init__(self):
2686 1
        self.SessionId = NodeId()
2687 1
        self.AuthenticationToken = NodeId()
2688 1
        self.RevisedSessionTimeout = 0
2689 1
        self.ServerNonce = b''
2690 1
        self.ServerCertificate = b''
2691 1
        self.ServerEndpoints = []
2692 1
        self.ServerSoftwareCertificates = []
2693 1
        self.ServerSignature = SignatureData()
2694 1
        self.MaxRequestMessageSize = 0
2695 1
        self._freeze()
2696
    
2697 1
    def to_binary(self):
2698 1
        packet = []
2699 1
        packet.append(self.SessionId.to_binary())
2700 1
        packet.append(self.AuthenticationToken.to_binary())
2701 1
        packet.append(pack_uatype('Double', self.RevisedSessionTimeout))
2702 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
2703 1
        packet.append(pack_uatype('ByteString', self.ServerCertificate))
2704 1
        packet.append(struct.pack('<i', len(self.ServerEndpoints)))
2705 1
        for fieldname in self.ServerEndpoints:
2706 1
            packet.append(fieldname.to_binary())
2707 1
        packet.append(struct.pack('<i', len(self.ServerSoftwareCertificates)))
2708 1
        for fieldname in self.ServerSoftwareCertificates:
2709
            packet.append(fieldname.to_binary())
2710 1
        packet.append(self.ServerSignature.to_binary())
2711 1
        packet.append(pack_uatype('UInt32', self.MaxRequestMessageSize))
2712 1
        return b''.join(packet)
2713
        
2714 1
    @staticmethod
2715
    def from_binary(data):
2716 1
        obj = CreateSessionResult()
2717 1
        obj.SessionId = NodeId.from_binary(data)
2718 1
        obj.AuthenticationToken = NodeId.from_binary(data)
2719 1
        obj.RevisedSessionTimeout = unpack_uatype('Double', data)
2720 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
2721 1
        obj.ServerCertificate = unpack_uatype('ByteString', data)
2722 1
        length = struct.unpack('<i', data.read(4))[0]
2723 1
        if length != -1:
2724 1
            for _ in range(0, length):
2725 1
                obj.ServerEndpoints.append(EndpointDescription.from_binary(data))
2726 1
        length = struct.unpack('<i', data.read(4))[0]
2727 1
        if length != -1:
2728 1
            for _ in range(0, length):
2729
                obj.ServerSoftwareCertificates.append(SignedSoftwareCertificate.from_binary(data))
2730 1
        obj.ServerSignature = SignatureData.from_binary(data)
2731 1
        obj.MaxRequestMessageSize = unpack_uatype('UInt32', data)
2732 1
        return obj
2733
    
2734 1
    def __str__(self):
2735
        return 'CreateSessionResult(' + 'SessionId:' + str(self.SessionId) + ', '  + \
2736
             'AuthenticationToken:' + str(self.AuthenticationToken) + ', '  + \
2737
             'RevisedSessionTimeout:' + str(self.RevisedSessionTimeout) + ', '  + \
2738
             'ServerNonce:' + str(self.ServerNonce) + ', '  + \
2739
             'ServerCertificate:' + str(self.ServerCertificate) + ', '  + \
2740
             'ServerEndpoints:' + str(self.ServerEndpoints) + ', '  + \
2741
             'ServerSoftwareCertificates:' + str(self.ServerSoftwareCertificates) + ', '  + \
2742
             'ServerSignature:' + str(self.ServerSignature) + ', '  + \
2743
             'MaxRequestMessageSize:' + str(self.MaxRequestMessageSize) + ')'
2744
    
2745 1
    __repr__ = __str__
2746
    
2747 1
class CreateSessionResponse(FrozenClass):
2748
    '''
2749
    Creates a new session with the server.
2750
    
2751
    :ivar TypeId: 
2752
    :vartype TypeId: NodeId 
2753
    :ivar ResponseHeader: 
2754
    :vartype ResponseHeader: ResponseHeader 
2755
    :ivar Parameters: 
2756
    :vartype Parameters: CreateSessionResult 
2757
    '''
2758 1
    def __init__(self):
2759 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionResponse_Encoding_DefaultBinary)
2760 1
        self.ResponseHeader = ResponseHeader()
2761 1
        self.Parameters = CreateSessionResult()
2762 1
        self._freeze()
2763
    
2764 1
    def to_binary(self):
2765 1
        packet = []
2766 1
        packet.append(self.TypeId.to_binary())
2767 1
        packet.append(self.ResponseHeader.to_binary())
2768 1
        packet.append(self.Parameters.to_binary())
2769 1
        return b''.join(packet)
2770
        
2771 1
    @staticmethod
2772
    def from_binary(data):
2773 1
        obj = CreateSessionResponse()
2774 1
        obj.TypeId = NodeId.from_binary(data)
2775 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2776 1
        obj.Parameters = CreateSessionResult.from_binary(data)
2777 1
        return obj
2778
    
2779 1
    def __str__(self):
2780
        return 'CreateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2781
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
2782
             'Parameters:' + str(self.Parameters) + ')'
2783
    
2784 1
    __repr__ = __str__
2785
    
2786 1
class UserIdentityToken(FrozenClass):
2787
    '''
2788
    A base type for a user identity token.
2789
    
2790
    :ivar PolicyId: 
2791
    :vartype PolicyId: String 
2792
    '''
2793 1
    def __init__(self):
2794
        self.PolicyId = ''
2795
        self._freeze()
2796
    
2797 1
    def to_binary(self):
2798
        packet = []
2799
        packet.append(pack_uatype('String', self.PolicyId))
2800
        return b''.join(packet)
2801
        
2802 1
    @staticmethod
2803
    def from_binary(data):
2804
        obj = UserIdentityToken()
2805
        obj.PolicyId = unpack_uatype('String', data)
2806
        return obj
2807
    
2808 1
    def __str__(self):
2809
        return 'UserIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
2810
    
2811 1
    __repr__ = __str__
2812
    
2813 1
class AnonymousIdentityToken(FrozenClass):
2814
    '''
2815
    A token representing an anonymous user.
2816
    
2817
    :ivar PolicyId: 
2818
    :vartype PolicyId: String 
2819
    '''
2820 1
    def __init__(self):
2821 1
        self.PolicyId = ''
2822 1
        self._freeze()
2823
    
2824 1
    def to_binary(self):
2825 1
        packet = []
2826 1
        packet.append(pack_uatype('String', self.PolicyId))
2827 1
        return b''.join(packet)
2828
        
2829 1
    @staticmethod
2830
    def from_binary(data):
2831 1
        obj = AnonymousIdentityToken()
2832 1
        obj.PolicyId = unpack_uatype('String', data)
2833 1
        return obj
2834
    
2835 1
    def __str__(self):
2836
        return 'AnonymousIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
2837
    
2838 1
    __repr__ = __str__
2839
    
2840 1
class UserNameIdentityToken(FrozenClass):
2841
    '''
2842
    A token representing a user identified by a user name and password.
2843
    
2844
    :ivar PolicyId: 
2845
    :vartype PolicyId: String 
2846
    :ivar UserName: 
2847
    :vartype UserName: String 
2848
    :ivar Password: 
2849
    :vartype Password: ByteString 
2850
    :ivar EncryptionAlgorithm: 
2851
    :vartype EncryptionAlgorithm: String 
2852
    '''
2853 1
    def __init__(self):
2854 1
        self.PolicyId = ''
2855 1
        self.UserName = ''
2856 1
        self.Password = b''
2857 1
        self.EncryptionAlgorithm = ''
2858 1
        self._freeze()
2859
    
2860 1
    def to_binary(self):
2861 1
        packet = []
2862 1
        packet.append(pack_uatype('String', self.PolicyId))
2863 1
        packet.append(pack_uatype('String', self.UserName))
2864 1
        packet.append(pack_uatype('ByteString', self.Password))
2865 1
        packet.append(pack_uatype('String', self.EncryptionAlgorithm))
2866 1
        return b''.join(packet)
2867
        
2868 1
    @staticmethod
2869
    def from_binary(data):
2870 1
        obj = UserNameIdentityToken()
2871 1
        obj.PolicyId = unpack_uatype('String', data)
2872 1
        obj.UserName = unpack_uatype('String', data)
2873 1
        obj.Password = unpack_uatype('ByteString', data)
2874 1
        obj.EncryptionAlgorithm = unpack_uatype('String', data)
2875 1
        return obj
2876
    
2877 1
    def __str__(self):
2878
        return 'UserNameIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2879
             'UserName:' + str(self.UserName) + ', '  + \
2880
             'Password:' + str(self.Password) + ', '  + \
2881
             'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
2882
    
2883 1
    __repr__ = __str__
2884
    
2885 1
class X509IdentityToken(FrozenClass):
2886
    '''
2887
    A token representing a user identified by an X509 certificate.
2888
    
2889
    :ivar PolicyId: 
2890
    :vartype PolicyId: String 
2891
    :ivar CertificateData: 
2892
    :vartype CertificateData: ByteString 
2893
    '''
2894 1
    def __init__(self):
2895
        self.PolicyId = ''
2896
        self.CertificateData = b''
2897
        self._freeze()
2898
    
2899 1
    def to_binary(self):
2900
        packet = []
2901
        packet.append(pack_uatype('String', self.PolicyId))
2902
        packet.append(pack_uatype('ByteString', self.CertificateData))
2903
        return b''.join(packet)
2904
        
2905 1
    @staticmethod
2906
    def from_binary(data):
2907
        obj = X509IdentityToken()
2908
        obj.PolicyId = unpack_uatype('String', data)
2909
        obj.CertificateData = unpack_uatype('ByteString', data)
2910
        return obj
2911
    
2912 1
    def __str__(self):
2913
        return 'X509IdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2914
             'CertificateData:' + str(self.CertificateData) + ')'
2915
    
2916 1
    __repr__ = __str__
2917
    
2918 1
class KerberosIdentityToken(FrozenClass):
2919
    '''
2920
    :ivar PolicyId: 
2921
    :vartype PolicyId: String 
2922
    :ivar TicketData: 
2923
    :vartype TicketData: ByteString 
2924
    '''
2925 1
    def __init__(self):
2926
        self.PolicyId = ''
2927
        self.TicketData = b''
2928
        self._freeze()
2929
    
2930 1
    def to_binary(self):
2931
        packet = []
2932
        packet.append(pack_uatype('String', self.PolicyId))
2933
        packet.append(pack_uatype('ByteString', self.TicketData))
2934
        return b''.join(packet)
2935
        
2936 1
    @staticmethod
2937
    def from_binary(data):
2938
        obj = KerberosIdentityToken()
2939
        obj.PolicyId = unpack_uatype('String', data)
2940
        obj.TicketData = unpack_uatype('ByteString', data)
2941
        return obj
2942
    
2943 1
    def __str__(self):
2944
        return 'KerberosIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2945
             'TicketData:' + str(self.TicketData) + ')'
2946
    
2947 1
    __repr__ = __str__
2948
    
2949 1
class IssuedIdentityToken(FrozenClass):
2950
    '''
2951
    A token representing a user identified by a WS-Security XML token.
2952
    
2953
    :ivar PolicyId: 
2954
    :vartype PolicyId: String 
2955
    :ivar TokenData: 
2956
    :vartype TokenData: ByteString 
2957
    :ivar EncryptionAlgorithm: 
2958
    :vartype EncryptionAlgorithm: String 
2959
    '''
2960 1
    def __init__(self):
2961
        self.PolicyId = ''
2962
        self.TokenData = b''
2963
        self.EncryptionAlgorithm = ''
2964
        self._freeze()
2965
    
2966 1
    def to_binary(self):
2967
        packet = []
2968
        packet.append(pack_uatype('String', self.PolicyId))
2969
        packet.append(pack_uatype('ByteString', self.TokenData))
2970
        packet.append(pack_uatype('String', self.EncryptionAlgorithm))
2971
        return b''.join(packet)
2972
        
2973 1
    @staticmethod
2974
    def from_binary(data):
2975
        obj = IssuedIdentityToken()
2976
        obj.PolicyId = unpack_uatype('String', data)
2977
        obj.TokenData = unpack_uatype('ByteString', data)
2978
        obj.EncryptionAlgorithm = unpack_uatype('String', data)
2979
        return obj
2980
    
2981 1
    def __str__(self):
2982
        return 'IssuedIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2983
             'TokenData:' + str(self.TokenData) + ', '  + \
2984
             'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
2985
    
2986 1
    __repr__ = __str__
2987
    
2988 1
class ActivateSessionParameters(FrozenClass):
2989
    '''
2990
    :ivar ClientSignature: 
2991
    :vartype ClientSignature: SignatureData 
2992
    :ivar ClientSoftwareCertificates: 
2993
    :vartype ClientSoftwareCertificates: SignedSoftwareCertificate 
2994
    :ivar LocaleIds: 
2995
    :vartype LocaleIds: String 
2996
    :ivar UserIdentityToken: 
2997
    :vartype UserIdentityToken: ExtensionObject 
2998
    :ivar UserTokenSignature: 
2999
    :vartype UserTokenSignature: SignatureData 
3000
    '''
3001 1
    def __init__(self):
3002 1
        self.ClientSignature = SignatureData()
3003 1
        self.ClientSoftwareCertificates = []
3004 1
        self.LocaleIds = []
3005 1
        self.UserIdentityToken = None
3006 1
        self.UserTokenSignature = SignatureData()
3007 1
        self._freeze()
3008
    
3009 1
    def to_binary(self):
3010 1
        packet = []
3011 1
        packet.append(self.ClientSignature.to_binary())
3012 1
        packet.append(struct.pack('<i', len(self.ClientSoftwareCertificates)))
3013 1
        for fieldname in self.ClientSoftwareCertificates:
3014
            packet.append(fieldname.to_binary())
3015 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
3016 1
        for fieldname in self.LocaleIds:
3017 1
            packet.append(pack_uatype('String', fieldname))
3018 1
        packet.append(extensionobject_to_binary(self.UserIdentityToken))
3019 1
        packet.append(self.UserTokenSignature.to_binary())
3020 1
        return b''.join(packet)
3021
        
3022 1
    @staticmethod
3023
    def from_binary(data):
3024 1
        obj = ActivateSessionParameters()
3025 1
        obj.ClientSignature = SignatureData.from_binary(data)
3026 1
        length = struct.unpack('<i', data.read(4))[0]
3027 1
        if length != -1:
3028 1
            for _ in range(0, length):
3029
                obj.ClientSoftwareCertificates.append(SignedSoftwareCertificate.from_binary(data))
3030 1
        obj.LocaleIds = unpack_uatype_array('String', data)
3031 1
        obj.UserIdentityToken = extensionobject_from_binary(data)
3032 1
        obj.UserTokenSignature = SignatureData.from_binary(data)
3033 1
        return obj
3034
    
3035 1
    def __str__(self):
3036
        return 'ActivateSessionParameters(' + 'ClientSignature:' + str(self.ClientSignature) + ', '  + \
3037
             'ClientSoftwareCertificates:' + str(self.ClientSoftwareCertificates) + ', '  + \
3038
             'LocaleIds:' + str(self.LocaleIds) + ', '  + \
3039
             'UserIdentityToken:' + str(self.UserIdentityToken) + ', '  + \
3040
             'UserTokenSignature:' + str(self.UserTokenSignature) + ')'
3041
    
3042 1
    __repr__ = __str__
3043
    
3044 1
class ActivateSessionRequest(FrozenClass):
3045
    '''
3046
    Activates a session with the server.
3047
    
3048
    :ivar TypeId: 
3049
    :vartype TypeId: NodeId 
3050
    :ivar RequestHeader: 
3051
    :vartype RequestHeader: RequestHeader 
3052
    :ivar Parameters: 
3053
    :vartype Parameters: ActivateSessionParameters 
3054
    '''
3055 1
    def __init__(self):
3056 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary)
3057 1
        self.RequestHeader = RequestHeader()
3058 1
        self.Parameters = ActivateSessionParameters()
3059 1
        self._freeze()
3060
    
3061 1
    def to_binary(self):
3062 1
        packet = []
3063 1
        packet.append(self.TypeId.to_binary())
3064 1
        packet.append(self.RequestHeader.to_binary())
3065 1
        packet.append(self.Parameters.to_binary())
3066 1
        return b''.join(packet)
3067
        
3068 1
    @staticmethod
3069
    def from_binary(data):
3070
        obj = ActivateSessionRequest()
3071
        obj.TypeId = NodeId.from_binary(data)
3072
        obj.RequestHeader = RequestHeader.from_binary(data)
3073
        obj.Parameters = ActivateSessionParameters.from_binary(data)
3074
        return obj
3075
    
3076 1
    def __str__(self):
3077
        return 'ActivateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3078
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
3079
             'Parameters:' + str(self.Parameters) + ')'
3080
    
3081 1
    __repr__ = __str__
3082
    
3083 1
class ActivateSessionResult(FrozenClass):
3084
    '''
3085
    :ivar ServerNonce: 
3086
    :vartype ServerNonce: ByteString 
3087
    :ivar Results: 
3088
    :vartype Results: StatusCode 
3089
    :ivar DiagnosticInfos: 
3090
    :vartype DiagnosticInfos: DiagnosticInfo 
3091
    '''
3092 1
    def __init__(self):
3093 1
        self.ServerNonce = b''
3094 1
        self.Results = []
3095 1
        self.DiagnosticInfos = []
3096 1
        self._freeze()
3097
    
3098 1
    def to_binary(self):
3099 1
        packet = []
3100 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
3101 1
        packet.append(struct.pack('<i', len(self.Results)))
3102 1
        for fieldname in self.Results:
3103
            packet.append(fieldname.to_binary())
3104 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
3105 1
        for fieldname in self.DiagnosticInfos:
3106
            packet.append(fieldname.to_binary())
3107 1
        return b''.join(packet)
3108
        
3109 1
    @staticmethod
3110
    def from_binary(data):
3111 1
        obj = ActivateSessionResult()
3112 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
3113 1
        length = struct.unpack('<i', data.read(4))[0]
3114 1
        if length != -1:
3115 1
            for _ in range(0, length):
3116
                obj.Results.append(StatusCode.from_binary(data))
3117 1
        length = struct.unpack('<i', data.read(4))[0]
3118 1
        if length != -1:
3119 1
            for _ in range(0, length):
3120
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
3121 1
        return obj
3122
    
3123 1
    def __str__(self):
3124
        return 'ActivateSessionResult(' + 'ServerNonce:' + str(self.ServerNonce) + ', '  + \
3125
             'Results:' + str(self.Results) + ', '  + \
3126
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
3127
    
3128 1
    __repr__ = __str__
3129
    
3130 1
class ActivateSessionResponse(FrozenClass):
3131
    '''
3132
    Activates a session with the server.
3133
    
3134
    :ivar TypeId: 
3135
    :vartype TypeId: NodeId 
3136
    :ivar ResponseHeader: 
3137
    :vartype ResponseHeader: ResponseHeader 
3138
    :ivar Parameters: 
3139
    :vartype Parameters: ActivateSessionResult 
3140
    '''
3141 1
    def __init__(self):
3142 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary)
3143 1
        self.ResponseHeader = ResponseHeader()
3144 1
        self.Parameters = ActivateSessionResult()
3145 1
        self._freeze()
3146
    
3147 1
    def to_binary(self):
3148 1
        packet = []
3149 1
        packet.append(self.TypeId.to_binary())
3150 1
        packet.append(self.ResponseHeader.to_binary())
3151 1
        packet.append(self.Parameters.to_binary())
3152 1
        return b''.join(packet)
3153
        
3154 1
    @staticmethod
3155
    def from_binary(data):
3156 1
        obj = ActivateSessionResponse()
3157 1
        obj.TypeId = NodeId.from_binary(data)
3158 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3159 1
        obj.Parameters = ActivateSessionResult.from_binary(data)
3160 1
        return obj
3161
    
3162 1
    def __str__(self):
3163
        return 'ActivateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3164
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
3165
             'Parameters:' + str(self.Parameters) + ')'
3166
    
3167 1
    __repr__ = __str__
3168
    
3169 1
class CloseSessionRequest(FrozenClass):
3170
    '''
3171
    Closes a session with the server.
3172
    
3173
    :ivar TypeId: 
3174
    :vartype TypeId: NodeId 
3175
    :ivar RequestHeader: 
3176
    :vartype RequestHeader: RequestHeader 
3177
    :ivar DeleteSubscriptions: 
3178
    :vartype DeleteSubscriptions: Boolean 
3179
    '''
3180 1
    def __init__(self):
3181 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionRequest_Encoding_DefaultBinary)
3182 1
        self.RequestHeader = RequestHeader()
3183 1
        self.DeleteSubscriptions = True
3184 1
        self._freeze()
3185
    
3186 1
    def to_binary(self):
3187 1
        packet = []
3188 1
        packet.append(self.TypeId.to_binary())
3189 1
        packet.append(self.RequestHeader.to_binary())
3190 1
        packet.append(pack_uatype('Boolean', self.DeleteSubscriptions))
3191 1
        return b''.join(packet)
3192
        
3193 1
    @staticmethod
3194
    def from_binary(data):
3195
        obj = CloseSessionRequest()
3196
        obj.TypeId = NodeId.from_binary(data)
3197
        obj.RequestHeader = RequestHeader.from_binary(data)
3198
        obj.DeleteSubscriptions = unpack_uatype('Boolean', data)
3199
        return obj
3200
    
3201 1
    def __str__(self):
3202
        return 'CloseSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3203
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
3204
             'DeleteSubscriptions:' + str(self.DeleteSubscriptions) + ')'
3205
    
3206 1
    __repr__ = __str__
3207
    
3208 1
class CloseSessionResponse(FrozenClass):
3209
    '''
3210
    Closes a session with the server.
3211
    
3212
    :ivar TypeId: 
3213
    :vartype TypeId: NodeId 
3214
    :ivar ResponseHeader: 
3215
    :vartype ResponseHeader: ResponseHeader 
3216
    '''
3217 1
    def __init__(self):
3218 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionResponse_Encoding_DefaultBinary)
3219 1
        self.ResponseHeader = ResponseHeader()
3220 1
        self._freeze()
3221
    
3222 1
    def to_binary(self):
3223 1
        packet = []
3224 1
        packet.append(self.TypeId.to_binary())
3225 1
        packet.append(self.ResponseHeader.to_binary())
3226 1
        return b''.join(packet)
3227
        
3228 1
    @staticmethod
3229
    def from_binary(data):
3230 1
        obj = CloseSessionResponse()
3231 1
        obj.TypeId = NodeId.from_binary(data)
3232 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3233 1
        return obj
3234
    
3235 1
    def __str__(self):
3236
        return 'CloseSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3237
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
3238
    
3239 1
    __repr__ = __str__
3240
    
3241 1
class CancelParameters(FrozenClass):
3242
    '''
3243
    :ivar RequestHandle: 
3244
    :vartype RequestHandle: UInt32 
3245
    '''
3246 1
    def __init__(self):
3247
        self.RequestHandle = 0
3248
        self._freeze()
3249
    
3250 1
    def to_binary(self):
3251
        packet = []
3252
        packet.append(pack_uatype('UInt32', self.RequestHandle))
3253
        return b''.join(packet)
3254
        
3255 1
    @staticmethod
3256
    def from_binary(data):
3257
        obj = CancelParameters()
3258
        obj.RequestHandle = unpack_uatype('UInt32', data)
3259
        return obj
3260
    
3261 1
    def __str__(self):
3262
        return 'CancelParameters(' + 'RequestHandle:' + str(self.RequestHandle) + ')'
3263
    
3264 1
    __repr__ = __str__
3265
    
3266 1
class CancelRequest(FrozenClass):
3267
    '''
3268
    Cancels an outstanding request.
3269
    
3270
    :ivar TypeId: 
3271
    :vartype TypeId: NodeId 
3272
    :ivar RequestHeader: 
3273
    :vartype RequestHeader: RequestHeader 
3274
    :ivar Parameters: 
3275
    :vartype Parameters: CancelParameters 
3276
    '''
3277 1
    def __init__(self):
3278
        self.TypeId = FourByteNodeId(ObjectIds.CancelRequest_Encoding_DefaultBinary)
3279
        self.RequestHeader = RequestHeader()
3280
        self.Parameters = CancelParameters()
3281
        self._freeze()
3282
    
3283 1
    def to_binary(self):
3284
        packet = []
3285
        packet.append(self.TypeId.to_binary())
3286
        packet.append(self.RequestHeader.to_binary())
3287
        packet.append(self.Parameters.to_binary())
3288
        return b''.join(packet)
3289
        
3290 1
    @staticmethod
3291
    def from_binary(data):
3292
        obj = CancelRequest()
3293
        obj.TypeId = NodeId.from_binary(data)
3294
        obj.RequestHeader = RequestHeader.from_binary(data)
3295
        obj.Parameters = CancelParameters.from_binary(data)
3296
        return obj
3297
    
3298 1
    def __str__(self):
3299
        return 'CancelRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3300
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
3301
             'Parameters:' + str(self.Parameters) + ')'
3302
    
3303 1
    __repr__ = __str__
3304
    
3305 1
class CancelResult(FrozenClass):
3306
    '''
3307
    :ivar CancelCount: 
3308
    :vartype CancelCount: UInt32 
3309
    '''
3310 1
    def __init__(self):
3311
        self.CancelCount = 0
3312
        self._freeze()
3313
    
3314 1
    def to_binary(self):
3315
        packet = []
3316
        packet.append(pack_uatype('UInt32', self.CancelCount))
3317
        return b''.join(packet)
3318
        
3319 1
    @staticmethod
3320
    def from_binary(data):
3321
        obj = CancelResult()
3322
        obj.CancelCount = unpack_uatype('UInt32', data)
3323
        return obj
3324
    
3325 1
    def __str__(self):
3326
        return 'CancelResult(' + 'CancelCount:' + str(self.CancelCount) + ')'
3327
    
3328 1
    __repr__ = __str__
3329
    
3330 1
class CancelResponse(FrozenClass):
3331
    '''
3332
    Cancels an outstanding request.
3333
    
3334
    :ivar TypeId: 
3335
    :vartype TypeId: NodeId 
3336
    :ivar ResponseHeader: 
3337
    :vartype ResponseHeader: ResponseHeader 
3338
    :ivar Parameters: 
3339
    :vartype Parameters: CancelResult 
3340
    '''
3341 1
    def __init__(self):
3342
        self.TypeId = FourByteNodeId(ObjectIds.CancelResponse_Encoding_DefaultBinary)
3343
        self.ResponseHeader = ResponseHeader()
3344
        self.Parameters = CancelResult()
3345
        self._freeze()
3346
    
3347 1
    def to_binary(self):
3348
        packet = []
3349
        packet.append(self.TypeId.to_binary())
3350
        packet.append(self.ResponseHeader.to_binary())
3351
        packet.append(self.Parameters.to_binary())
3352
        return b''.join(packet)
3353
        
3354 1
    @staticmethod
3355
    def from_binary(data):
3356
        obj = CancelResponse()
3357
        obj.TypeId = NodeId.from_binary(data)
3358
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3359
        obj.Parameters = CancelResult.from_binary(data)
3360
        return obj
3361
    
3362 1
    def __str__(self):
3363
        return 'CancelResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3364
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
3365
             'Parameters:' + str(self.Parameters) + ')'
3366
    
3367 1
    __repr__ = __str__
3368
    
3369 1
class NodeAttributes(FrozenClass):
3370
    '''
3371
    The base attributes for all nodes.
3372
    
3373
    :ivar SpecifiedAttributes: 
3374
    :vartype SpecifiedAttributes: UInt32 
3375
    :ivar DisplayName: 
3376
    :vartype DisplayName: LocalizedText 
3377
    :ivar Description: 
3378
    :vartype Description: LocalizedText 
3379
    :ivar WriteMask: 
3380
    :vartype WriteMask: UInt32 
3381
    :ivar UserWriteMask: 
3382
    :vartype UserWriteMask: UInt32 
3383
    '''
3384 1
    def __init__(self):
3385
        self.SpecifiedAttributes = 0
3386
        self.DisplayName = LocalizedText()
3387
        self.Description = LocalizedText()
3388
        self.WriteMask = 0
3389
        self.UserWriteMask = 0
3390
        self._freeze()
3391
    
3392 1
    def to_binary(self):
3393
        packet = []
3394
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3395
        packet.append(self.DisplayName.to_binary())
3396
        packet.append(self.Description.to_binary())
3397
        packet.append(pack_uatype('UInt32', self.WriteMask))
3398
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3399
        return b''.join(packet)
3400
        
3401 1
    @staticmethod
3402
    def from_binary(data):
3403
        obj = NodeAttributes()
3404
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3405
        obj.DisplayName = LocalizedText.from_binary(data)
3406
        obj.Description = LocalizedText.from_binary(data)
3407
        obj.WriteMask = unpack_uatype('UInt32', data)
3408
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3409
        return obj
3410
    
3411 1
    def __str__(self):
3412
        return 'NodeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3413
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3414
             'Description:' + str(self.Description) + ', '  + \
3415
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3416
             'UserWriteMask:' + str(self.UserWriteMask) + ')'
3417
    
3418 1
    __repr__ = __str__
3419
    
3420 1
class ObjectAttributes(FrozenClass):
3421
    '''
3422
    The attributes for an object node.
3423
    
3424
    :ivar SpecifiedAttributes: 
3425
    :vartype SpecifiedAttributes: UInt32 
3426
    :ivar DisplayName: 
3427
    :vartype DisplayName: LocalizedText 
3428
    :ivar Description: 
3429
    :vartype Description: LocalizedText 
3430
    :ivar WriteMask: 
3431
    :vartype WriteMask: UInt32 
3432
    :ivar UserWriteMask: 
3433
    :vartype UserWriteMask: UInt32 
3434
    :ivar EventNotifier: 
3435
    :vartype EventNotifier: Byte 
3436
    '''
3437 1
    def __init__(self):
3438 1
        self.SpecifiedAttributes = 0
3439 1
        self.DisplayName = LocalizedText()
3440 1
        self.Description = LocalizedText()
3441 1
        self.WriteMask = 0
3442 1
        self.UserWriteMask = 0
3443 1
        self.EventNotifier = 0
3444 1
        self._freeze()
3445
    
3446 1
    def to_binary(self):
3447 1
        packet = []
3448 1
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3449 1
        packet.append(self.DisplayName.to_binary())
3450 1
        packet.append(self.Description.to_binary())
3451 1
        packet.append(pack_uatype('UInt32', self.WriteMask))
3452 1
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3453 1
        packet.append(pack_uatype('Byte', self.EventNotifier))
3454 1
        return b''.join(packet)
3455
        
3456 1
    @staticmethod
3457
    def from_binary(data):
3458 1
        obj = ObjectAttributes()
3459 1
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3460 1
        obj.DisplayName = LocalizedText.from_binary(data)
3461 1
        obj.Description = LocalizedText.from_binary(data)
3462 1
        obj.WriteMask = unpack_uatype('UInt32', data)
3463 1
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3464 1
        obj.EventNotifier = unpack_uatype('Byte', data)
3465 1
        return obj
3466
    
3467 1
    def __str__(self):
3468
        return 'ObjectAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3469
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3470
             'Description:' + str(self.Description) + ', '  + \
3471
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3472
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3473
             'EventNotifier:' + str(self.EventNotifier) + ')'
3474
    
3475 1
    __repr__ = __str__
3476
    
3477 1
class VariableAttributes(FrozenClass):
3478
    '''
3479
    The attributes for a variable node.
3480
    
3481
    :ivar SpecifiedAttributes: 
3482
    :vartype SpecifiedAttributes: UInt32 
3483
    :ivar DisplayName: 
3484
    :vartype DisplayName: LocalizedText 
3485
    :ivar Description: 
3486
    :vartype Description: LocalizedText 
3487
    :ivar WriteMask: 
3488
    :vartype WriteMask: UInt32 
3489
    :ivar UserWriteMask: 
3490
    :vartype UserWriteMask: UInt32 
3491
    :ivar Value: 
3492
    :vartype Value: Variant 
3493
    :ivar DataType: 
3494
    :vartype DataType: NodeId 
3495
    :ivar ValueRank: 
3496
    :vartype ValueRank: Int32 
3497
    :ivar ArrayDimensions: 
3498
    :vartype ArrayDimensions: UInt32 
3499
    :ivar AccessLevel: 
3500
    :vartype AccessLevel: Byte 
3501
    :ivar UserAccessLevel: 
3502
    :vartype UserAccessLevel: Byte 
3503
    :ivar MinimumSamplingInterval: 
3504
    :vartype MinimumSamplingInterval: Double 
3505
    :ivar Historizing: 
3506
    :vartype Historizing: Boolean 
3507
    '''
3508 1
    def __init__(self):
3509 1
        self.SpecifiedAttributes = 0
3510 1
        self.DisplayName = LocalizedText()
3511 1
        self.Description = LocalizedText()
3512 1
        self.WriteMask = 0
3513 1
        self.UserWriteMask = 0
3514 1
        self.Value = Variant()
3515 1
        self.DataType = NodeId()
3516 1
        self.ValueRank = 0
3517 1
        self.ArrayDimensions = []
3518 1
        self.AccessLevel = 0
3519 1
        self.UserAccessLevel = 0
3520 1
        self.MinimumSamplingInterval = 0
3521 1
        self.Historizing = True
3522 1
        self._freeze()
3523
    
3524 1
    def to_binary(self):
3525 1
        packet = []
3526 1
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3527 1
        packet.append(self.DisplayName.to_binary())
3528 1
        packet.append(self.Description.to_binary())
3529 1
        packet.append(pack_uatype('UInt32', self.WriteMask))
3530 1
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3531 1
        packet.append(self.Value.to_binary())
3532 1
        packet.append(self.DataType.to_binary())
3533 1
        packet.append(pack_uatype('Int32', self.ValueRank))
3534 1
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
3535 1
        for fieldname in self.ArrayDimensions:
3536
            packet.append(pack_uatype('UInt32', fieldname))
3537 1
        packet.append(pack_uatype('Byte', self.AccessLevel))
3538 1
        packet.append(pack_uatype('Byte', self.UserAccessLevel))
3539 1
        packet.append(pack_uatype('Double', self.MinimumSamplingInterval))
3540 1
        packet.append(pack_uatype('Boolean', self.Historizing))
3541 1
        return b''.join(packet)
3542
        
3543 1
    @staticmethod
3544
    def from_binary(data):
3545 1
        obj = VariableAttributes()
3546 1
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3547 1
        obj.DisplayName = LocalizedText.from_binary(data)
3548 1
        obj.Description = LocalizedText.from_binary(data)
3549 1
        obj.WriteMask = unpack_uatype('UInt32', data)
3550 1
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3551 1
        obj.Value = Variant.from_binary(data)
3552 1
        obj.DataType = NodeId.from_binary(data)
3553 1
        obj.ValueRank = unpack_uatype('Int32', data)
3554 1
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
3555 1
        obj.AccessLevel = unpack_uatype('Byte', data)
3556 1
        obj.UserAccessLevel = unpack_uatype('Byte', data)
3557 1
        obj.MinimumSamplingInterval = unpack_uatype('Double', data)
3558 1
        obj.Historizing = unpack_uatype('Boolean', data)
3559 1
        return obj
3560
    
3561 1
    def __str__(self):
3562
        return 'VariableAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3563
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3564
             'Description:' + str(self.Description) + ', '  + \
3565
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3566
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3567
             'Value:' + str(self.Value) + ', '  + \
3568
             'DataType:' + str(self.DataType) + ', '  + \
3569
             'ValueRank:' + str(self.ValueRank) + ', '  + \
3570
             'ArrayDimensions:' + str(self.ArrayDimensions) + ', '  + \
3571
             'AccessLevel:' + str(self.AccessLevel) + ', '  + \
3572
             'UserAccessLevel:' + str(self.UserAccessLevel) + ', '  + \
3573
             'MinimumSamplingInterval:' + str(self.MinimumSamplingInterval) + ', '  + \
3574
             'Historizing:' + str(self.Historizing) + ')'
3575
    
3576 1
    __repr__ = __str__
3577
    
3578 1
class MethodAttributes(FrozenClass):
3579
    '''
3580
    The attributes for a method node.
3581
    
3582
    :ivar SpecifiedAttributes: 
3583
    :vartype SpecifiedAttributes: UInt32 
3584
    :ivar DisplayName: 
3585
    :vartype DisplayName: LocalizedText 
3586
    :ivar Description: 
3587
    :vartype Description: LocalizedText 
3588
    :ivar WriteMask: 
3589
    :vartype WriteMask: UInt32 
3590
    :ivar UserWriteMask: 
3591
    :vartype UserWriteMask: UInt32 
3592
    :ivar Executable: 
3593
    :vartype Executable: Boolean 
3594
    :ivar UserExecutable: 
3595
    :vartype UserExecutable: Boolean 
3596
    '''
3597 1
    def __init__(self):
3598 1
        self.SpecifiedAttributes = 0
3599 1
        self.DisplayName = LocalizedText()
3600 1
        self.Description = LocalizedText()
3601 1
        self.WriteMask = 0
3602 1
        self.UserWriteMask = 0
3603 1
        self.Executable = True
3604 1
        self.UserExecutable = True
3605 1
        self._freeze()
3606
    
3607 1
    def to_binary(self):
3608
        packet = []
3609
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3610
        packet.append(self.DisplayName.to_binary())
3611
        packet.append(self.Description.to_binary())
3612
        packet.append(pack_uatype('UInt32', self.WriteMask))
3613
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3614
        packet.append(pack_uatype('Boolean', self.Executable))
3615
        packet.append(pack_uatype('Boolean', self.UserExecutable))
3616
        return b''.join(packet)
3617
        
3618 1
    @staticmethod
3619
    def from_binary(data):
3620
        obj = MethodAttributes()
3621
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3622
        obj.DisplayName = LocalizedText.from_binary(data)
3623
        obj.Description = LocalizedText.from_binary(data)
3624
        obj.WriteMask = unpack_uatype('UInt32', data)
3625
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3626
        obj.Executable = unpack_uatype('Boolean', data)
3627
        obj.UserExecutable = unpack_uatype('Boolean', data)
3628
        return obj
3629
    
3630 1
    def __str__(self):
3631
        return 'MethodAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3632
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3633
             'Description:' + str(self.Description) + ', '  + \
3634
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3635
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3636
             'Executable:' + str(self.Executable) + ', '  + \
3637
             'UserExecutable:' + str(self.UserExecutable) + ')'
3638
    
3639 1
    __repr__ = __str__
3640
    
3641 1
class ObjectTypeAttributes(FrozenClass):
3642
    '''
3643
    The attributes for an object type node.
3644
    
3645
    :ivar SpecifiedAttributes: 
3646
    :vartype SpecifiedAttributes: UInt32 
3647
    :ivar DisplayName: 
3648
    :vartype DisplayName: LocalizedText 
3649
    :ivar Description: 
3650
    :vartype Description: LocalizedText 
3651
    :ivar WriteMask: 
3652
    :vartype WriteMask: UInt32 
3653
    :ivar UserWriteMask: 
3654
    :vartype UserWriteMask: UInt32 
3655
    :ivar IsAbstract: 
3656
    :vartype IsAbstract: Boolean 
3657
    '''
3658 1
    def __init__(self):
3659 1
        self.SpecifiedAttributes = 0
3660 1
        self.DisplayName = LocalizedText()
3661 1
        self.Description = LocalizedText()
3662 1
        self.WriteMask = 0
3663 1
        self.UserWriteMask = 0
3664 1
        self.IsAbstract = True
3665 1
        self._freeze()
3666
    
3667 1
    def to_binary(self):
3668
        packet = []
3669
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3670
        packet.append(self.DisplayName.to_binary())
3671
        packet.append(self.Description.to_binary())
3672
        packet.append(pack_uatype('UInt32', self.WriteMask))
3673
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3674
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3675
        return b''.join(packet)
3676
        
3677 1
    @staticmethod
3678
    def from_binary(data):
3679
        obj = ObjectTypeAttributes()
3680
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3681
        obj.DisplayName = LocalizedText.from_binary(data)
3682
        obj.Description = LocalizedText.from_binary(data)
3683
        obj.WriteMask = unpack_uatype('UInt32', data)
3684
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3685
        obj.IsAbstract = unpack_uatype('Boolean', data)
3686
        return obj
3687
    
3688 1
    def __str__(self):
3689
        return 'ObjectTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3690
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3691
             'Description:' + str(self.Description) + ', '  + \
3692
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3693
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3694
             'IsAbstract:' + str(self.IsAbstract) + ')'
3695
    
3696 1
    __repr__ = __str__
3697
    
3698 1
class VariableTypeAttributes(FrozenClass):
3699
    '''
3700
    The attributes for a variable type node.
3701
    
3702
    :ivar SpecifiedAttributes: 
3703
    :vartype SpecifiedAttributes: UInt32 
3704
    :ivar DisplayName: 
3705
    :vartype DisplayName: LocalizedText 
3706
    :ivar Description: 
3707
    :vartype Description: LocalizedText 
3708
    :ivar WriteMask: 
3709
    :vartype WriteMask: UInt32 
3710
    :ivar UserWriteMask: 
3711
    :vartype UserWriteMask: UInt32 
3712
    :ivar Value: 
3713
    :vartype Value: Variant 
3714
    :ivar DataType: 
3715
    :vartype DataType: NodeId 
3716
    :ivar ValueRank: 
3717
    :vartype ValueRank: Int32 
3718
    :ivar ArrayDimensions: 
3719
    :vartype ArrayDimensions: UInt32 
3720
    :ivar IsAbstract: 
3721
    :vartype IsAbstract: Boolean 
3722
    '''
3723 1
    def __init__(self):
3724 1
        self.SpecifiedAttributes = 0
3725 1
        self.DisplayName = LocalizedText()
3726 1
        self.Description = LocalizedText()
3727 1
        self.WriteMask = 0
3728 1
        self.UserWriteMask = 0
3729 1
        self.Value = Variant()
3730 1
        self.DataType = NodeId()
3731 1
        self.ValueRank = 0
3732 1
        self.ArrayDimensions = []
3733 1
        self.IsAbstract = True
3734 1
        self._freeze()
3735
    
3736 1
    def to_binary(self):
3737
        packet = []
3738
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3739
        packet.append(self.DisplayName.to_binary())
3740
        packet.append(self.Description.to_binary())
3741
        packet.append(pack_uatype('UInt32', self.WriteMask))
3742
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3743
        packet.append(self.Value.to_binary())
3744
        packet.append(self.DataType.to_binary())
3745
        packet.append(pack_uatype('Int32', self.ValueRank))
3746
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
3747
        for fieldname in self.ArrayDimensions:
3748
            packet.append(pack_uatype('UInt32', fieldname))
3749
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3750
        return b''.join(packet)
3751
        
3752 1
    @staticmethod
3753
    def from_binary(data):
3754
        obj = VariableTypeAttributes()
3755
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3756
        obj.DisplayName = LocalizedText.from_binary(data)
3757
        obj.Description = LocalizedText.from_binary(data)
3758
        obj.WriteMask = unpack_uatype('UInt32', data)
3759
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3760
        obj.Value = Variant.from_binary(data)
3761
        obj.DataType = NodeId.from_binary(data)
3762
        obj.ValueRank = unpack_uatype('Int32', data)
3763
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
3764
        obj.IsAbstract = unpack_uatype('Boolean', data)
3765
        return obj
3766
    
3767 1
    def __str__(self):
3768
        return 'VariableTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3769
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3770
             'Description:' + str(self.Description) + ', '  + \
3771
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3772
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3773
             'Value:' + str(self.Value) + ', '  + \
3774
             'DataType:' + str(self.DataType) + ', '  + \
3775
             'ValueRank:' + str(self.ValueRank) + ', '  + \
3776
             'ArrayDimensions:' + str(self.ArrayDimensions) + ', '  + \
3777
             'IsAbstract:' + str(self.IsAbstract) + ')'
3778
    
3779 1
    __repr__ = __str__
3780
    
3781 1
class ReferenceTypeAttributes(FrozenClass):
3782
    '''
3783
    The attributes for a reference type node.
3784
    
3785
    :ivar SpecifiedAttributes: 
3786
    :vartype SpecifiedAttributes: UInt32 
3787
    :ivar DisplayName: 
3788
    :vartype DisplayName: LocalizedText 
3789
    :ivar Description: 
3790
    :vartype Description: LocalizedText 
3791
    :ivar WriteMask: 
3792
    :vartype WriteMask: UInt32 
3793
    :ivar UserWriteMask: 
3794
    :vartype UserWriteMask: UInt32 
3795
    :ivar IsAbstract: 
3796
    :vartype IsAbstract: Boolean 
3797
    :ivar Symmetric: 
3798
    :vartype Symmetric: Boolean 
3799
    :ivar InverseName: 
3800
    :vartype InverseName: LocalizedText 
3801
    '''
3802 1
    def __init__(self):
3803 1
        self.SpecifiedAttributes = 0
3804 1
        self.DisplayName = LocalizedText()
3805 1
        self.Description = LocalizedText()
3806 1
        self.WriteMask = 0
3807 1
        self.UserWriteMask = 0
3808 1
        self.IsAbstract = True
3809 1
        self.Symmetric = True
3810 1
        self.InverseName = LocalizedText()
3811 1
        self._freeze()
3812
    
3813 1
    def to_binary(self):
3814
        packet = []
3815
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3816
        packet.append(self.DisplayName.to_binary())
3817
        packet.append(self.Description.to_binary())
3818
        packet.append(pack_uatype('UInt32', self.WriteMask))
3819
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3820
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3821
        packet.append(pack_uatype('Boolean', self.Symmetric))
3822
        packet.append(self.InverseName.to_binary())
3823
        return b''.join(packet)
3824
        
3825 1
    @staticmethod
3826
    def from_binary(data):
3827
        obj = ReferenceTypeAttributes()
3828
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3829
        obj.DisplayName = LocalizedText.from_binary(data)
3830
        obj.Description = LocalizedText.from_binary(data)
3831
        obj.WriteMask = unpack_uatype('UInt32', data)
3832
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3833
        obj.IsAbstract = unpack_uatype('Boolean', data)
3834
        obj.Symmetric = unpack_uatype('Boolean', data)
3835
        obj.InverseName = LocalizedText.from_binary(data)
3836
        return obj
3837
    
3838 1
    def __str__(self):
3839
        return 'ReferenceTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3840
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3841
             'Description:' + str(self.Description) + ', '  + \
3842
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3843
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3844
             'IsAbstract:' + str(self.IsAbstract) + ', '  + \
3845
             'Symmetric:' + str(self.Symmetric) + ', '  + \
3846
             'InverseName:' + str(self.InverseName) + ')'
3847
    
3848 1
    __repr__ = __str__
3849
    
3850 1
class DataTypeAttributes(FrozenClass):
3851
    '''
3852
    The attributes for a data type node.
3853
    
3854
    :ivar SpecifiedAttributes: 
3855
    :vartype SpecifiedAttributes: UInt32 
3856
    :ivar DisplayName: 
3857
    :vartype DisplayName: LocalizedText 
3858
    :ivar Description: 
3859
    :vartype Description: LocalizedText 
3860
    :ivar WriteMask: 
3861
    :vartype WriteMask: UInt32 
3862
    :ivar UserWriteMask: 
3863
    :vartype UserWriteMask: UInt32 
3864
    :ivar IsAbstract: 
3865
    :vartype IsAbstract: Boolean 
3866
    '''
3867 1
    def __init__(self):
3868 1
        self.SpecifiedAttributes = 0
3869 1
        self.DisplayName = LocalizedText()
3870 1
        self.Description = LocalizedText()
3871 1
        self.WriteMask = 0
3872 1
        self.UserWriteMask = 0
3873 1
        self.IsAbstract = True
3874 1
        self._freeze()
3875
    
3876 1
    def to_binary(self):
3877
        packet = []
3878
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3879
        packet.append(self.DisplayName.to_binary())
3880
        packet.append(self.Description.to_binary())
3881
        packet.append(pack_uatype('UInt32', self.WriteMask))
3882
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3883
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3884
        return b''.join(packet)
3885
        
3886 1
    @staticmethod
3887
    def from_binary(data):
3888
        obj = DataTypeAttributes()
3889
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3890
        obj.DisplayName = LocalizedText.from_binary(data)
3891
        obj.Description = LocalizedText.from_binary(data)
3892
        obj.WriteMask = unpack_uatype('UInt32', data)
3893
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3894
        obj.IsAbstract = unpack_uatype('Boolean', data)
3895
        return obj
3896
    
3897 1
    def __str__(self):
3898
        return 'DataTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3899
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3900
             'Description:' + str(self.Description) + ', '  + \
3901
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3902
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3903
             'IsAbstract:' + str(self.IsAbstract) + ')'
3904
    
3905 1
    __repr__ = __str__
3906
    
3907 1
class ViewAttributes(FrozenClass):
3908
    '''
3909
    The attributes for a view node.
3910
    
3911
    :ivar SpecifiedAttributes: 
3912
    :vartype SpecifiedAttributes: UInt32 
3913
    :ivar DisplayName: 
3914
    :vartype DisplayName: LocalizedText 
3915
    :ivar Description: 
3916
    :vartype Description: LocalizedText 
3917
    :ivar WriteMask: 
3918
    :vartype WriteMask: UInt32 
3919
    :ivar UserWriteMask: 
3920
    :vartype UserWriteMask: UInt32 
3921
    :ivar ContainsNoLoops: 
3922
    :vartype ContainsNoLoops: Boolean 
3923
    :ivar EventNotifier: 
3924
    :vartype EventNotifier: Byte 
3925
    '''
3926 1
    def __init__(self):
3927
        self.SpecifiedAttributes = 0
3928
        self.DisplayName = LocalizedText()
3929
        self.Description = LocalizedText()
3930
        self.WriteMask = 0
3931
        self.UserWriteMask = 0
3932
        self.ContainsNoLoops = True
3933
        self.EventNotifier = 0
3934
        self._freeze()
3935
    
3936 1
    def to_binary(self):
3937
        packet = []
3938
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3939
        packet.append(self.DisplayName.to_binary())
3940
        packet.append(self.Description.to_binary())
3941
        packet.append(pack_uatype('UInt32', self.WriteMask))
3942
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3943
        packet.append(pack_uatype('Boolean', self.ContainsNoLoops))
3944
        packet.append(pack_uatype('Byte', self.EventNotifier))
3945
        return b''.join(packet)
3946
        
3947 1
    @staticmethod
3948
    def from_binary(data):
3949
        obj = ViewAttributes()
3950
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3951
        obj.DisplayName = LocalizedText.from_binary(data)
3952
        obj.Description = LocalizedText.from_binary(data)
3953
        obj.WriteMask = unpack_uatype('UInt32', data)
3954
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3955
        obj.ContainsNoLoops = unpack_uatype('Boolean', data)
3956
        obj.EventNotifier = unpack_uatype('Byte', data)
3957
        return obj
3958
    
3959 1
    def __str__(self):
3960
        return 'ViewAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3961
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3962
             'Description:' + str(self.Description) + ', '  + \
3963
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3964
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3965
             'ContainsNoLoops:' + str(self.ContainsNoLoops) + ', '  + \
3966
             'EventNotifier:' + str(self.EventNotifier) + ')'
3967
    
3968 1
    __repr__ = __str__
3969
    
3970 1
class AddNodesItem(FrozenClass):
3971
    '''
3972
    A request to add a node to the server address space.
3973
    
3974
    :ivar ParentNodeId: 
3975
    :vartype ParentNodeId: ExpandedNodeId 
3976
    :ivar ReferenceTypeId: 
3977
    :vartype ReferenceTypeId: NodeId 
3978
    :ivar RequestedNewNodeId: 
3979
    :vartype RequestedNewNodeId: ExpandedNodeId 
3980
    :ivar BrowseName: 
3981
    :vartype BrowseName: QualifiedName 
3982
    :ivar NodeClass: 
3983
    :vartype NodeClass: NodeClass 
3984
    :ivar NodeAttributes: 
3985
    :vartype NodeAttributes: ExtensionObject 
3986
    :ivar TypeDefinition: 
3987
    :vartype TypeDefinition: ExpandedNodeId 
3988
    '''
3989 1
    def __init__(self):
3990 1
        self.ParentNodeId = ExpandedNodeId()
3991 1
        self.ReferenceTypeId = NodeId()
3992 1
        self.RequestedNewNodeId = ExpandedNodeId()
3993 1
        self.BrowseName = QualifiedName()
3994 1
        self.NodeClass = 0
3995 1
        self.NodeAttributes = None
3996 1
        self.TypeDefinition = ExpandedNodeId()
3997 1
        self._freeze()
3998
    
3999 1
    def to_binary(self):
4000 1
        packet = []
4001 1
        packet.append(self.ParentNodeId.to_binary())
4002 1
        packet.append(self.ReferenceTypeId.to_binary())
4003 1
        packet.append(self.RequestedNewNodeId.to_binary())
4004 1
        packet.append(self.BrowseName.to_binary())
4005 1
        packet.append(pack_uatype('UInt32', self.NodeClass))
4006 1
        packet.append(extensionobject_to_binary(self.NodeAttributes))
4007 1
        packet.append(self.TypeDefinition.to_binary())
4008 1
        return b''.join(packet)
4009
        
4010 1
    @staticmethod
4011
    def from_binary(data):
4012 1
        obj = AddNodesItem()
4013 1
        obj.ParentNodeId = ExpandedNodeId.from_binary(data)
4014 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4015 1
        obj.RequestedNewNodeId = ExpandedNodeId.from_binary(data)
4016 1
        obj.BrowseName = QualifiedName.from_binary(data)
4017 1
        obj.NodeClass = unpack_uatype('UInt32', data)
4018 1
        obj.NodeAttributes = extensionobject_from_binary(data)
4019 1
        obj.TypeDefinition = ExpandedNodeId.from_binary(data)
4020 1
        return obj
4021
    
4022 1
    def __str__(self):
4023
        return 'AddNodesItem(' + 'ParentNodeId:' + str(self.ParentNodeId) + ', '  + \
4024
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4025
             'RequestedNewNodeId:' + str(self.RequestedNewNodeId) + ', '  + \
4026
             'BrowseName:' + str(self.BrowseName) + ', '  + \
4027
             'NodeClass:' + str(self.NodeClass) + ', '  + \
4028
             'NodeAttributes:' + str(self.NodeAttributes) + ', '  + \
4029
             'TypeDefinition:' + str(self.TypeDefinition) + ')'
4030
    
4031 1
    __repr__ = __str__
4032
    
4033 1
class AddNodesResult(FrozenClass):
4034
    '''
4035
    A result of an add node operation.
4036
    
4037
    :ivar StatusCode: 
4038
    :vartype StatusCode: StatusCode 
4039
    :ivar AddedNodeId: 
4040
    :vartype AddedNodeId: NodeId 
4041
    '''
4042 1
    def __init__(self):
4043 1
        self.StatusCode = StatusCode()
4044 1
        self.AddedNodeId = NodeId()
4045 1
        self._freeze()
4046
    
4047 1
    def to_binary(self):
4048 1
        packet = []
4049 1
        packet.append(self.StatusCode.to_binary())
4050 1
        packet.append(self.AddedNodeId.to_binary())
4051 1
        return b''.join(packet)
4052
        
4053 1
    @staticmethod
4054
    def from_binary(data):
4055 1
        obj = AddNodesResult()
4056 1
        obj.StatusCode = StatusCode.from_binary(data)
4057 1
        obj.AddedNodeId = NodeId.from_binary(data)
4058 1
        return obj
4059
    
4060 1
    def __str__(self):
4061
        return 'AddNodesResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
4062
             'AddedNodeId:' + str(self.AddedNodeId) + ')'
4063
    
4064 1
    __repr__ = __str__
4065
    
4066 1
class AddNodesParameters(FrozenClass):
4067
    '''
4068
    :ivar NodesToAdd: 
4069
    :vartype NodesToAdd: AddNodesItem 
4070
    '''
4071 1
    def __init__(self):
4072 1
        self.NodesToAdd = []
4073 1
        self._freeze()
4074
    
4075 1
    def to_binary(self):
4076 1
        packet = []
4077 1
        packet.append(struct.pack('<i', len(self.NodesToAdd)))
4078 1
        for fieldname in self.NodesToAdd:
4079 1
            packet.append(fieldname.to_binary())
4080 1
        return b''.join(packet)
4081
        
4082 1
    @staticmethod
4083
    def from_binary(data):
4084 1
        obj = AddNodesParameters()
4085 1
        length = struct.unpack('<i', data.read(4))[0]
4086 1
        if length != -1:
4087 1
            for _ in range(0, length):
4088 1
                obj.NodesToAdd.append(AddNodesItem.from_binary(data))
4089 1
        return obj
4090
    
4091 1
    def __str__(self):
4092
        return 'AddNodesParameters(' + 'NodesToAdd:' + str(self.NodesToAdd) + ')'
4093
    
4094 1
    __repr__ = __str__
4095
    
4096 1
class AddNodesRequest(FrozenClass):
4097
    '''
4098
    Adds one or more nodes to the server address space.
4099
    
4100
    :ivar TypeId: 
4101
    :vartype TypeId: NodeId 
4102
    :ivar RequestHeader: 
4103
    :vartype RequestHeader: RequestHeader 
4104
    :ivar Parameters: 
4105
    :vartype Parameters: AddNodesParameters 
4106
    '''
4107 1
    def __init__(self):
4108 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesRequest_Encoding_DefaultBinary)
4109 1
        self.RequestHeader = RequestHeader()
4110 1
        self.Parameters = AddNodesParameters()
4111 1
        self._freeze()
4112
    
4113 1
    def to_binary(self):
4114 1
        packet = []
4115 1
        packet.append(self.TypeId.to_binary())
4116 1
        packet.append(self.RequestHeader.to_binary())
4117 1
        packet.append(self.Parameters.to_binary())
4118 1
        return b''.join(packet)
4119
        
4120 1
    @staticmethod
4121
    def from_binary(data):
4122
        obj = AddNodesRequest()
4123
        obj.TypeId = NodeId.from_binary(data)
4124
        obj.RequestHeader = RequestHeader.from_binary(data)
4125
        obj.Parameters = AddNodesParameters.from_binary(data)
4126
        return obj
4127
    
4128 1
    def __str__(self):
4129
        return 'AddNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4130
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4131
             'Parameters:' + str(self.Parameters) + ')'
4132
    
4133 1
    __repr__ = __str__
4134
    
4135 1
class AddNodesResponse(FrozenClass):
4136
    '''
4137
    Adds one or more nodes to the server address space.
4138
    
4139
    :ivar TypeId: 
4140
    :vartype TypeId: NodeId 
4141
    :ivar ResponseHeader: 
4142
    :vartype ResponseHeader: ResponseHeader 
4143
    :ivar Results: 
4144
    :vartype Results: AddNodesResult 
4145
    :ivar DiagnosticInfos: 
4146
    :vartype DiagnosticInfos: DiagnosticInfo 
4147
    '''
4148 1
    def __init__(self):
4149 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesResponse_Encoding_DefaultBinary)
4150 1
        self.ResponseHeader = ResponseHeader()
4151 1
        self.Results = []
4152 1
        self.DiagnosticInfos = []
4153 1
        self._freeze()
4154
    
4155 1
    def to_binary(self):
4156 1
        packet = []
4157 1
        packet.append(self.TypeId.to_binary())
4158 1
        packet.append(self.ResponseHeader.to_binary())
4159 1
        packet.append(struct.pack('<i', len(self.Results)))
4160 1
        for fieldname in self.Results:
4161 1
            packet.append(fieldname.to_binary())
4162 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4163 1
        for fieldname in self.DiagnosticInfos:
4164
            packet.append(fieldname.to_binary())
4165 1
        return b''.join(packet)
4166
        
4167 1
    @staticmethod
4168
    def from_binary(data):
4169 1
        obj = AddNodesResponse()
4170 1
        obj.TypeId = NodeId.from_binary(data)
4171 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4172 1
        length = struct.unpack('<i', data.read(4))[0]
4173 1
        if length != -1:
4174 1
            for _ in range(0, length):
4175 1
                obj.Results.append(AddNodesResult.from_binary(data))
4176 1
        length = struct.unpack('<i', data.read(4))[0]
4177 1
        if length != -1:
4178 1
            for _ in range(0, length):
4179
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4180 1
        return obj
4181
    
4182 1
    def __str__(self):
4183
        return 'AddNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4184
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4185
             'Results:' + str(self.Results) + ', '  + \
4186
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4187
    
4188 1
    __repr__ = __str__
4189
    
4190 1
class AddReferencesItem(FrozenClass):
4191
    '''
4192
    A request to add a reference to the server address space.
4193
    
4194
    :ivar SourceNodeId: 
4195
    :vartype SourceNodeId: NodeId 
4196
    :ivar ReferenceTypeId: 
4197
    :vartype ReferenceTypeId: NodeId 
4198
    :ivar IsForward: 
4199
    :vartype IsForward: Boolean 
4200
    :ivar TargetServerUri: 
4201
    :vartype TargetServerUri: String 
4202
    :ivar TargetNodeId: 
4203
    :vartype TargetNodeId: ExpandedNodeId 
4204
    :ivar TargetNodeClass: 
4205
    :vartype TargetNodeClass: NodeClass 
4206
    '''
4207 1
    def __init__(self):
4208 1
        self.SourceNodeId = NodeId()
4209 1
        self.ReferenceTypeId = NodeId()
4210 1
        self.IsForward = True
4211 1
        self.TargetServerUri = ''
4212 1
        self.TargetNodeId = ExpandedNodeId()
4213 1
        self.TargetNodeClass = 0
4214 1
        self._freeze()
4215
    
4216 1
    def to_binary(self):
4217
        packet = []
4218
        packet.append(self.SourceNodeId.to_binary())
4219
        packet.append(self.ReferenceTypeId.to_binary())
4220
        packet.append(pack_uatype('Boolean', self.IsForward))
4221
        packet.append(pack_uatype('String', self.TargetServerUri))
4222
        packet.append(self.TargetNodeId.to_binary())
4223
        packet.append(pack_uatype('UInt32', self.TargetNodeClass))
4224
        return b''.join(packet)
4225
        
4226 1
    @staticmethod
4227
    def from_binary(data):
4228
        obj = AddReferencesItem()
4229
        obj.SourceNodeId = NodeId.from_binary(data)
4230
        obj.ReferenceTypeId = NodeId.from_binary(data)
4231
        obj.IsForward = unpack_uatype('Boolean', data)
4232
        obj.TargetServerUri = unpack_uatype('String', data)
4233
        obj.TargetNodeId = ExpandedNodeId.from_binary(data)
4234
        obj.TargetNodeClass = unpack_uatype('UInt32', data)
4235
        return obj
4236
    
4237 1
    def __str__(self):
4238
        return 'AddReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', '  + \
4239
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4240
             'IsForward:' + str(self.IsForward) + ', '  + \
4241
             'TargetServerUri:' + str(self.TargetServerUri) + ', '  + \
4242
             'TargetNodeId:' + str(self.TargetNodeId) + ', '  + \
4243
             'TargetNodeClass:' + str(self.TargetNodeClass) + ')'
4244
    
4245 1
    __repr__ = __str__
4246
    
4247 1
class AddReferencesRequest(FrozenClass):
4248
    '''
4249
    Adds one or more references to the server address space.
4250
    
4251
    :ivar TypeId: 
4252
    :vartype TypeId: NodeId 
4253
    :ivar RequestHeader: 
4254
    :vartype RequestHeader: RequestHeader 
4255
    :ivar ReferencesToAdd: 
4256
    :vartype ReferencesToAdd: AddReferencesItem 
4257
    '''
4258 1
    def __init__(self):
4259
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesRequest_Encoding_DefaultBinary)
4260
        self.RequestHeader = RequestHeader()
4261
        self.ReferencesToAdd = []
4262
        self._freeze()
4263
    
4264 1
    def to_binary(self):
4265
        packet = []
4266
        packet.append(self.TypeId.to_binary())
4267
        packet.append(self.RequestHeader.to_binary())
4268
        packet.append(struct.pack('<i', len(self.ReferencesToAdd)))
4269
        for fieldname in self.ReferencesToAdd:
4270
            packet.append(fieldname.to_binary())
4271
        return b''.join(packet)
4272
        
4273 1
    @staticmethod
4274
    def from_binary(data):
4275
        obj = AddReferencesRequest()
4276
        obj.TypeId = NodeId.from_binary(data)
4277
        obj.RequestHeader = RequestHeader.from_binary(data)
4278
        length = struct.unpack('<i', data.read(4))[0]
4279
        if length != -1:
4280
            for _ in range(0, length):
4281
                obj.ReferencesToAdd.append(AddReferencesItem.from_binary(data))
4282
        return obj
4283
    
4284 1
    def __str__(self):
4285
        return 'AddReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4286
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4287
             'ReferencesToAdd:' + str(self.ReferencesToAdd) + ')'
4288
    
4289 1
    __repr__ = __str__
4290
    
4291 1
class AddReferencesResponse(FrozenClass):
4292
    '''
4293
    Adds one or more references to the server address space.
4294
    
4295
    :ivar TypeId: 
4296
    :vartype TypeId: NodeId 
4297
    :ivar ResponseHeader: 
4298
    :vartype ResponseHeader: ResponseHeader 
4299
    :ivar Results: 
4300
    :vartype Results: StatusCode 
4301
    :ivar DiagnosticInfos: 
4302
    :vartype DiagnosticInfos: DiagnosticInfo 
4303
    '''
4304 1
    def __init__(self):
4305
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesResponse_Encoding_DefaultBinary)
4306
        self.ResponseHeader = ResponseHeader()
4307
        self.Results = []
4308
        self.DiagnosticInfos = []
4309
        self._freeze()
4310
    
4311 1
    def to_binary(self):
4312
        packet = []
4313
        packet.append(self.TypeId.to_binary())
4314
        packet.append(self.ResponseHeader.to_binary())
4315
        packet.append(struct.pack('<i', len(self.Results)))
4316
        for fieldname in self.Results:
4317
            packet.append(fieldname.to_binary())
4318
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4319
        for fieldname in self.DiagnosticInfos:
4320
            packet.append(fieldname.to_binary())
4321
        return b''.join(packet)
4322
        
4323 1
    @staticmethod
4324
    def from_binary(data):
4325
        obj = AddReferencesResponse()
4326
        obj.TypeId = NodeId.from_binary(data)
4327
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4328
        length = struct.unpack('<i', data.read(4))[0]
4329
        if length != -1:
4330
            for _ in range(0, length):
4331
                obj.Results.append(StatusCode.from_binary(data))
4332
        length = struct.unpack('<i', data.read(4))[0]
4333
        if length != -1:
4334
            for _ in range(0, length):
4335
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4336
        return obj
4337
    
4338 1
    def __str__(self):
4339
        return 'AddReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4340
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4341
             'Results:' + str(self.Results) + ', '  + \
4342
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4343
    
4344 1
    __repr__ = __str__
4345
    
4346 1
class DeleteNodesItem(FrozenClass):
4347
    '''
4348
    A request to delete a node to the server address space.
4349
    
4350
    :ivar NodeId: 
4351
    :vartype NodeId: NodeId 
4352
    :ivar DeleteTargetReferences: 
4353
    :vartype DeleteTargetReferences: Boolean 
4354
    '''
4355 1
    def __init__(self):
4356
        self.NodeId = NodeId()
4357
        self.DeleteTargetReferences = True
4358
        self._freeze()
4359
    
4360 1
    def to_binary(self):
4361
        packet = []
4362
        packet.append(self.NodeId.to_binary())
4363
        packet.append(pack_uatype('Boolean', self.DeleteTargetReferences))
4364
        return b''.join(packet)
4365
        
4366 1
    @staticmethod
4367
    def from_binary(data):
4368
        obj = DeleteNodesItem()
4369
        obj.NodeId = NodeId.from_binary(data)
4370
        obj.DeleteTargetReferences = unpack_uatype('Boolean', data)
4371
        return obj
4372
    
4373 1
    def __str__(self):
4374
        return 'DeleteNodesItem(' + 'NodeId:' + str(self.NodeId) + ', '  + \
4375
             'DeleteTargetReferences:' + str(self.DeleteTargetReferences) + ')'
4376
    
4377 1
    __repr__ = __str__
4378
    
4379 1
class DeleteNodesParameters(FrozenClass):
4380
    '''
4381
    :ivar NodesToDelete: 
4382
    :vartype NodesToDelete: DeleteNodesItem 
4383
    '''
4384 1
    def __init__(self):
4385
        self.NodesToDelete = []
4386
        self._freeze()
4387
    
4388 1
    def to_binary(self):
4389
        packet = []
4390
        packet.append(struct.pack('<i', len(self.NodesToDelete)))
4391
        for fieldname in self.NodesToDelete:
4392
            packet.append(fieldname.to_binary())
4393
        return b''.join(packet)
4394
        
4395 1
    @staticmethod
4396
    def from_binary(data):
4397
        obj = DeleteNodesParameters()
4398
        length = struct.unpack('<i', data.read(4))[0]
4399
        if length != -1:
4400
            for _ in range(0, length):
4401
                obj.NodesToDelete.append(DeleteNodesItem.from_binary(data))
4402
        return obj
4403
    
4404 1
    def __str__(self):
4405
        return 'DeleteNodesParameters(' + 'NodesToDelete:' + str(self.NodesToDelete) + ')'
4406
    
4407 1
    __repr__ = __str__
4408
    
4409 1
class DeleteNodesRequest(FrozenClass):
4410
    '''
4411
    Delete one or more nodes from the server address space.
4412
    
4413
    :ivar TypeId: 
4414
    :vartype TypeId: NodeId 
4415
    :ivar RequestHeader: 
4416
    :vartype RequestHeader: RequestHeader 
4417
    :ivar Parameters: 
4418
    :vartype Parameters: DeleteNodesParameters 
4419
    '''
4420 1
    def __init__(self):
4421
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary)
4422
        self.RequestHeader = RequestHeader()
4423
        self.Parameters = DeleteNodesParameters()
4424
        self._freeze()
4425
    
4426 1
    def to_binary(self):
4427
        packet = []
4428
        packet.append(self.TypeId.to_binary())
4429
        packet.append(self.RequestHeader.to_binary())
4430
        packet.append(self.Parameters.to_binary())
4431
        return b''.join(packet)
4432
        
4433 1
    @staticmethod
4434
    def from_binary(data):
4435
        obj = DeleteNodesRequest()
4436
        obj.TypeId = NodeId.from_binary(data)
4437
        obj.RequestHeader = RequestHeader.from_binary(data)
4438
        obj.Parameters = DeleteNodesParameters.from_binary(data)
4439
        return obj
4440
    
4441 1
    def __str__(self):
4442
        return 'DeleteNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4443
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4444
             'Parameters:' + str(self.Parameters) + ')'
4445
    
4446 1
    __repr__ = __str__
4447
    
4448 1
class DeleteNodesResult(FrozenClass):
4449
    '''
4450
    :ivar Results: 
4451
    :vartype Results: StatusCode 
4452
    :ivar DiagnosticInfos: 
4453
    :vartype DiagnosticInfos: DiagnosticInfo 
4454
    '''
4455 1
    def __init__(self):
4456
        self.Results = []
4457
        self.DiagnosticInfos = []
4458
        self._freeze()
4459
    
4460 1
    def to_binary(self):
4461
        packet = []
4462
        packet.append(struct.pack('<i', len(self.Results)))
4463
        for fieldname in self.Results:
4464
            packet.append(fieldname.to_binary())
4465
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4466
        for fieldname in self.DiagnosticInfos:
4467
            packet.append(fieldname.to_binary())
4468
        return b''.join(packet)
4469
        
4470 1
    @staticmethod
4471
    def from_binary(data):
4472
        obj = DeleteNodesResult()
4473
        length = struct.unpack('<i', data.read(4))[0]
4474
        if length != -1:
4475
            for _ in range(0, length):
4476
                obj.Results.append(StatusCode.from_binary(data))
4477
        length = struct.unpack('<i', data.read(4))[0]
4478
        if length != -1:
4479
            for _ in range(0, length):
4480
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4481
        return obj
4482
    
4483 1
    def __str__(self):
4484
        return 'DeleteNodesResult(' + 'Results:' + str(self.Results) + ', '  + \
4485
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4486
    
4487 1
    __repr__ = __str__
4488
    
4489 1
class DeleteNodesResponse(FrozenClass):
4490
    '''
4491
    Delete one or more nodes from the server address space.
4492
    
4493
    :ivar TypeId: 
4494
    :vartype TypeId: NodeId 
4495
    :ivar ResponseHeader: 
4496
    :vartype ResponseHeader: ResponseHeader 
4497
    :ivar Parameters: 
4498
    :vartype Parameters: DeleteNodesResult 
4499
    '''
4500 1
    def __init__(self):
4501
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary)
4502
        self.ResponseHeader = ResponseHeader()
4503
        self.Parameters = DeleteNodesResult()
4504
        self._freeze()
4505
    
4506 1
    def to_binary(self):
4507
        packet = []
4508
        packet.append(self.TypeId.to_binary())
4509
        packet.append(self.ResponseHeader.to_binary())
4510
        packet.append(self.Parameters.to_binary())
4511
        return b''.join(packet)
4512
        
4513 1
    @staticmethod
4514
    def from_binary(data):
4515
        obj = DeleteNodesResponse()
4516
        obj.TypeId = NodeId.from_binary(data)
4517
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4518
        obj.Parameters = DeleteNodesResult.from_binary(data)
4519
        return obj
4520
    
4521 1
    def __str__(self):
4522
        return 'DeleteNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4523
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4524
             'Parameters:' + str(self.Parameters) + ')'
4525
    
4526 1
    __repr__ = __str__
4527
    
4528 1
class DeleteReferencesItem(FrozenClass):
4529
    '''
4530
    A request to delete a node from the server address space.
4531
    
4532
    :ivar SourceNodeId: 
4533
    :vartype SourceNodeId: NodeId 
4534
    :ivar ReferenceTypeId: 
4535
    :vartype ReferenceTypeId: NodeId 
4536
    :ivar IsForward: 
4537
    :vartype IsForward: Boolean 
4538
    :ivar TargetNodeId: 
4539
    :vartype TargetNodeId: ExpandedNodeId 
4540
    :ivar DeleteBidirectional: 
4541
    :vartype DeleteBidirectional: Boolean 
4542
    '''
4543 1
    def __init__(self):
4544
        self.SourceNodeId = NodeId()
4545
        self.ReferenceTypeId = NodeId()
4546
        self.IsForward = True
4547
        self.TargetNodeId = ExpandedNodeId()
4548
        self.DeleteBidirectional = True
4549
        self._freeze()
4550
    
4551 1
    def to_binary(self):
4552
        packet = []
4553
        packet.append(self.SourceNodeId.to_binary())
4554
        packet.append(self.ReferenceTypeId.to_binary())
4555
        packet.append(pack_uatype('Boolean', self.IsForward))
4556
        packet.append(self.TargetNodeId.to_binary())
4557
        packet.append(pack_uatype('Boolean', self.DeleteBidirectional))
4558
        return b''.join(packet)
4559
        
4560 1
    @staticmethod
4561
    def from_binary(data):
4562
        obj = DeleteReferencesItem()
4563
        obj.SourceNodeId = NodeId.from_binary(data)
4564
        obj.ReferenceTypeId = NodeId.from_binary(data)
4565
        obj.IsForward = unpack_uatype('Boolean', data)
4566
        obj.TargetNodeId = ExpandedNodeId.from_binary(data)
4567
        obj.DeleteBidirectional = unpack_uatype('Boolean', data)
4568
        return obj
4569
    
4570 1
    def __str__(self):
4571
        return 'DeleteReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', '  + \
4572
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4573
             'IsForward:' + str(self.IsForward) + ', '  + \
4574
             'TargetNodeId:' + str(self.TargetNodeId) + ', '  + \
4575
             'DeleteBidirectional:' + str(self.DeleteBidirectional) + ')'
4576
    
4577 1
    __repr__ = __str__
4578
    
4579 1
class DeleteReferencesParameters(FrozenClass):
4580
    '''
4581
    :ivar ReferencesToDelete: 
4582
    :vartype ReferencesToDelete: DeleteReferencesItem 
4583
    '''
4584 1
    def __init__(self):
4585
        self.ReferencesToDelete = []
4586
        self._freeze()
4587
    
4588 1
    def to_binary(self):
4589
        packet = []
4590
        packet.append(struct.pack('<i', len(self.ReferencesToDelete)))
4591
        for fieldname in self.ReferencesToDelete:
4592
            packet.append(fieldname.to_binary())
4593
        return b''.join(packet)
4594
        
4595 1
    @staticmethod
4596
    def from_binary(data):
4597
        obj = DeleteReferencesParameters()
4598
        length = struct.unpack('<i', data.read(4))[0]
4599
        if length != -1:
4600
            for _ in range(0, length):
4601
                obj.ReferencesToDelete.append(DeleteReferencesItem.from_binary(data))
4602
        return obj
4603
    
4604 1
    def __str__(self):
4605
        return 'DeleteReferencesParameters(' + 'ReferencesToDelete:' + str(self.ReferencesToDelete) + ')'
4606
    
4607 1
    __repr__ = __str__
4608
    
4609 1
class DeleteReferencesRequest(FrozenClass):
4610
    '''
4611
    Delete one or more references from the server address space.
4612
    
4613
    :ivar TypeId: 
4614
    :vartype TypeId: NodeId 
4615
    :ivar RequestHeader: 
4616
    :vartype RequestHeader: RequestHeader 
4617
    :ivar Parameters: 
4618
    :vartype Parameters: DeleteReferencesParameters 
4619
    '''
4620 1
    def __init__(self):
4621
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary)
4622
        self.RequestHeader = RequestHeader()
4623
        self.Parameters = DeleteReferencesParameters()
4624
        self._freeze()
4625
    
4626 1
    def to_binary(self):
4627
        packet = []
4628
        packet.append(self.TypeId.to_binary())
4629
        packet.append(self.RequestHeader.to_binary())
4630
        packet.append(self.Parameters.to_binary())
4631
        return b''.join(packet)
4632
        
4633 1
    @staticmethod
4634
    def from_binary(data):
4635
        obj = DeleteReferencesRequest()
4636
        obj.TypeId = NodeId.from_binary(data)
4637
        obj.RequestHeader = RequestHeader.from_binary(data)
4638
        obj.Parameters = DeleteReferencesParameters.from_binary(data)
4639
        return obj
4640
    
4641 1
    def __str__(self):
4642
        return 'DeleteReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4643
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4644
             'Parameters:' + str(self.Parameters) + ')'
4645
    
4646 1
    __repr__ = __str__
4647
    
4648 1
class DeleteReferencesResult(FrozenClass):
4649
    '''
4650
    :ivar Results: 
4651
    :vartype Results: StatusCode 
4652
    :ivar DiagnosticInfos: 
4653
    :vartype DiagnosticInfos: DiagnosticInfo 
4654
    '''
4655 1
    def __init__(self):
4656
        self.Results = []
4657
        self.DiagnosticInfos = []
4658
        self._freeze()
4659
    
4660 1
    def to_binary(self):
4661
        packet = []
4662
        packet.append(struct.pack('<i', len(self.Results)))
4663
        for fieldname in self.Results:
4664
            packet.append(fieldname.to_binary())
4665
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4666
        for fieldname in self.DiagnosticInfos:
4667
            packet.append(fieldname.to_binary())
4668
        return b''.join(packet)
4669
        
4670 1
    @staticmethod
4671
    def from_binary(data):
4672
        obj = DeleteReferencesResult()
4673
        length = struct.unpack('<i', data.read(4))[0]
4674
        if length != -1:
4675
            for _ in range(0, length):
4676
                obj.Results.append(StatusCode.from_binary(data))
4677
        length = struct.unpack('<i', data.read(4))[0]
4678
        if length != -1:
4679
            for _ in range(0, length):
4680
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4681
        return obj
4682
    
4683 1
    def __str__(self):
4684
        return 'DeleteReferencesResult(' + 'Results:' + str(self.Results) + ', '  + \
4685
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4686
    
4687 1
    __repr__ = __str__
4688
    
4689 1
class DeleteReferencesResponse(FrozenClass):
4690
    '''
4691
    Delete one or more references from the server address space.
4692
    
4693
    :ivar TypeId: 
4694
    :vartype TypeId: NodeId 
4695
    :ivar ResponseHeader: 
4696
    :vartype ResponseHeader: ResponseHeader 
4697
    :ivar Parameters: 
4698
    :vartype Parameters: DeleteReferencesResult 
4699
    '''
4700 1
    def __init__(self):
4701
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary)
4702
        self.ResponseHeader = ResponseHeader()
4703
        self.Parameters = DeleteReferencesResult()
4704
        self._freeze()
4705
    
4706 1
    def to_binary(self):
4707
        packet = []
4708
        packet.append(self.TypeId.to_binary())
4709
        packet.append(self.ResponseHeader.to_binary())
4710
        packet.append(self.Parameters.to_binary())
4711
        return b''.join(packet)
4712
        
4713 1
    @staticmethod
4714
    def from_binary(data):
4715
        obj = DeleteReferencesResponse()
4716
        obj.TypeId = NodeId.from_binary(data)
4717
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4718
        obj.Parameters = DeleteReferencesResult.from_binary(data)
4719
        return obj
4720
    
4721 1
    def __str__(self):
4722
        return 'DeleteReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4723
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4724
             'Parameters:' + str(self.Parameters) + ')'
4725
    
4726 1
    __repr__ = __str__
4727
    
4728 1
class ViewDescription(FrozenClass):
4729
    '''
4730
    The view to browse.
4731
    
4732
    :ivar ViewId: 
4733
    :vartype ViewId: NodeId 
4734
    :ivar Timestamp: 
4735
    :vartype Timestamp: DateTime 
4736
    :ivar ViewVersion: 
4737
    :vartype ViewVersion: UInt32 
4738
    '''
4739 1
    def __init__(self):
4740 1
        self.ViewId = NodeId()
4741 1
        self.Timestamp = datetime.now()
4742 1
        self.ViewVersion = 0
4743 1
        self._freeze()
4744
    
4745 1
    def to_binary(self):
4746 1
        packet = []
4747 1
        packet.append(self.ViewId.to_binary())
4748 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
4749 1
        packet.append(pack_uatype('UInt32', self.ViewVersion))
4750 1
        return b''.join(packet)
4751
        
4752 1
    @staticmethod
4753
    def from_binary(data):
4754 1
        obj = ViewDescription()
4755 1
        obj.ViewId = NodeId.from_binary(data)
4756 1
        obj.Timestamp = unpack_uatype('DateTime', data)
4757 1
        obj.ViewVersion = unpack_uatype('UInt32', data)
4758 1
        return obj
4759
    
4760 1
    def __str__(self):
4761
        return 'ViewDescription(' + 'ViewId:' + str(self.ViewId) + ', '  + \
4762
             'Timestamp:' + str(self.Timestamp) + ', '  + \
4763
             'ViewVersion:' + str(self.ViewVersion) + ')'
4764
    
4765 1
    __repr__ = __str__
4766
    
4767 1
class BrowseDescription(FrozenClass):
4768
    '''
4769
    A request to browse the the references from a node.
4770
    
4771
    :ivar NodeId: 
4772
    :vartype NodeId: NodeId 
4773
    :ivar BrowseDirection: 
4774
    :vartype BrowseDirection: BrowseDirection 
4775
    :ivar ReferenceTypeId: 
4776
    :vartype ReferenceTypeId: NodeId 
4777
    :ivar IncludeSubtypes: 
4778
    :vartype IncludeSubtypes: Boolean 
4779
    :ivar NodeClassMask: 
4780
    :vartype NodeClassMask: UInt32 
4781
    :ivar ResultMask: 
4782
    :vartype ResultMask: UInt32 
4783
    '''
4784 1
    def __init__(self):
4785 1
        self.NodeId = NodeId()
4786 1
        self.BrowseDirection = 0
4787 1
        self.ReferenceTypeId = NodeId()
4788 1
        self.IncludeSubtypes = True
4789 1
        self.NodeClassMask = 0
4790 1
        self.ResultMask = 0
4791 1
        self._freeze()
4792
    
4793 1
    def to_binary(self):
4794 1
        packet = []
4795 1
        packet.append(self.NodeId.to_binary())
4796 1
        packet.append(pack_uatype('UInt32', self.BrowseDirection))
4797 1
        packet.append(self.ReferenceTypeId.to_binary())
4798 1
        packet.append(pack_uatype('Boolean', self.IncludeSubtypes))
4799 1
        packet.append(pack_uatype('UInt32', self.NodeClassMask))
4800 1
        packet.append(pack_uatype('UInt32', self.ResultMask))
4801 1
        return b''.join(packet)
4802
        
4803 1
    @staticmethod
4804
    def from_binary(data):
4805 1
        obj = BrowseDescription()
4806 1
        obj.NodeId = NodeId.from_binary(data)
4807 1
        obj.BrowseDirection = unpack_uatype('UInt32', data)
4808 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4809 1
        obj.IncludeSubtypes = unpack_uatype('Boolean', data)
4810 1
        obj.NodeClassMask = unpack_uatype('UInt32', data)
4811 1
        obj.ResultMask = unpack_uatype('UInt32', data)
4812 1
        return obj
4813
    
4814 1
    def __str__(self):
4815
        return 'BrowseDescription(' + 'NodeId:' + str(self.NodeId) + ', '  + \
4816
             'BrowseDirection:' + str(self.BrowseDirection) + ', '  + \
4817
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4818
             'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', '  + \
4819
             'NodeClassMask:' + str(self.NodeClassMask) + ', '  + \
4820
             'ResultMask:' + str(self.ResultMask) + ')'
4821
    
4822 1
    __repr__ = __str__
4823
    
4824 1
class ReferenceDescription(FrozenClass):
4825
    '''
4826
    The description of a reference.
4827
    
4828
    :ivar ReferenceTypeId: 
4829
    :vartype ReferenceTypeId: NodeId 
4830
    :ivar IsForward: 
4831
    :vartype IsForward: Boolean 
4832
    :ivar NodeId: 
4833
    :vartype NodeId: ExpandedNodeId 
4834
    :ivar BrowseName: 
4835
    :vartype BrowseName: QualifiedName 
4836
    :ivar DisplayName: 
4837
    :vartype DisplayName: LocalizedText 
4838
    :ivar NodeClass: 
4839
    :vartype NodeClass: NodeClass 
4840
    :ivar TypeDefinition: 
4841
    :vartype TypeDefinition: ExpandedNodeId 
4842
    '''
4843 1
    def __init__(self):
4844 1
        self.ReferenceTypeId = NodeId()
4845 1
        self.IsForward = True
4846 1
        self.NodeId = ExpandedNodeId()
4847 1
        self.BrowseName = QualifiedName()
4848 1
        self.DisplayName = LocalizedText()
4849 1
        self.NodeClass = 0
4850 1
        self.TypeDefinition = ExpandedNodeId()
4851 1
        self._freeze()
4852
    
4853 1
    def to_binary(self):
4854 1
        packet = []
4855 1
        packet.append(self.ReferenceTypeId.to_binary())
4856 1
        packet.append(pack_uatype('Boolean', self.IsForward))
4857 1
        packet.append(self.NodeId.to_binary())
4858 1
        packet.append(self.BrowseName.to_binary())
4859 1
        packet.append(self.DisplayName.to_binary())
4860 1
        packet.append(pack_uatype('UInt32', self.NodeClass))
4861 1
        packet.append(self.TypeDefinition.to_binary())
4862 1
        return b''.join(packet)
4863
        
4864 1
    @staticmethod
4865
    def from_binary(data):
4866 1
        obj = ReferenceDescription()
4867 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4868 1
        obj.IsForward = unpack_uatype('Boolean', data)
4869 1
        obj.NodeId = ExpandedNodeId.from_binary(data)
4870 1
        obj.BrowseName = QualifiedName.from_binary(data)
4871 1
        obj.DisplayName = LocalizedText.from_binary(data)
4872 1
        obj.NodeClass = unpack_uatype('UInt32', data)
4873 1
        obj.TypeDefinition = ExpandedNodeId.from_binary(data)
4874 1
        return obj
4875
    
4876 1
    def __str__(self):
4877
        return 'ReferenceDescription(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4878
             'IsForward:' + str(self.IsForward) + ', '  + \
4879
             'NodeId:' + str(self.NodeId) + ', '  + \
4880
             'BrowseName:' + str(self.BrowseName) + ', '  + \
4881
             'DisplayName:' + str(self.DisplayName) + ', '  + \
4882
             'NodeClass:' + str(self.NodeClass) + ', '  + \
4883
             'TypeDefinition:' + str(self.TypeDefinition) + ')'
4884
    
4885 1
    __repr__ = __str__
4886
    
4887 1
class BrowseResult(FrozenClass):
4888
    '''
4889
    The result of a browse operation.
4890
    
4891
    :ivar StatusCode: 
4892
    :vartype StatusCode: StatusCode 
4893
    :ivar ContinuationPoint: 
4894
    :vartype ContinuationPoint: ByteString 
4895
    :ivar References: 
4896
    :vartype References: ReferenceDescription 
4897
    '''
4898 1
    def __init__(self):
4899 1
        self.StatusCode = StatusCode()
4900 1
        self.ContinuationPoint = b''
4901 1
        self.References = []
4902 1
        self._freeze()
4903
    
4904 1
    def to_binary(self):
4905 1
        packet = []
4906 1
        packet.append(self.StatusCode.to_binary())
4907 1
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
4908 1
        packet.append(struct.pack('<i', len(self.References)))
4909 1
        for fieldname in self.References:
4910 1
            packet.append(fieldname.to_binary())
4911 1
        return b''.join(packet)
4912
        
4913 1
    @staticmethod
4914
    def from_binary(data):
4915 1
        obj = BrowseResult()
4916 1
        obj.StatusCode = StatusCode.from_binary(data)
4917 1
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
4918 1
        length = struct.unpack('<i', data.read(4))[0]
4919 1
        if length != -1:
4920 1
            for _ in range(0, length):
4921 1
                obj.References.append(ReferenceDescription.from_binary(data))
4922 1
        return obj
4923
    
4924 1
    def __str__(self):
4925
        return 'BrowseResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
4926
             'ContinuationPoint:' + str(self.ContinuationPoint) + ', '  + \
4927
             'References:' + str(self.References) + ')'
4928
    
4929 1
    __repr__ = __str__
4930
    
4931 1
class BrowseParameters(FrozenClass):
4932
    '''
4933
    :ivar View: 
4934
    :vartype View: ViewDescription 
4935
    :ivar RequestedMaxReferencesPerNode: 
4936
    :vartype RequestedMaxReferencesPerNode: UInt32 
4937
    :ivar NodesToBrowse: 
4938
    :vartype NodesToBrowse: BrowseDescription 
4939
    '''
4940 1
    def __init__(self):
4941 1
        self.View = ViewDescription()
4942 1
        self.RequestedMaxReferencesPerNode = 0
4943 1
        self.NodesToBrowse = []
4944 1
        self._freeze()
4945
    
4946 1
    def to_binary(self):
4947 1
        packet = []
4948 1
        packet.append(self.View.to_binary())
4949 1
        packet.append(pack_uatype('UInt32', self.RequestedMaxReferencesPerNode))
4950 1
        packet.append(struct.pack('<i', len(self.NodesToBrowse)))
4951 1
        for fieldname in self.NodesToBrowse:
4952 1
            packet.append(fieldname.to_binary())
4953 1
        return b''.join(packet)
4954
        
4955 1
    @staticmethod
4956
    def from_binary(data):
4957 1
        obj = BrowseParameters()
4958 1
        obj.View = ViewDescription.from_binary(data)
4959 1
        obj.RequestedMaxReferencesPerNode = unpack_uatype('UInt32', data)
4960 1
        length = struct.unpack('<i', data.read(4))[0]
4961 1
        if length != -1:
4962 1
            for _ in range(0, length):
4963 1
                obj.NodesToBrowse.append(BrowseDescription.from_binary(data))
4964 1
        return obj
4965
    
4966 1
    def __str__(self):
4967
        return 'BrowseParameters(' + 'View:' + str(self.View) + ', '  + \
4968
             'RequestedMaxReferencesPerNode:' + str(self.RequestedMaxReferencesPerNode) + ', '  + \
4969
             'NodesToBrowse:' + str(self.NodesToBrowse) + ')'
4970
    
4971 1
    __repr__ = __str__
4972
    
4973 1
class BrowseRequest(FrozenClass):
4974
    '''
4975
    Browse the references for one or more nodes from the server address space.
4976
    
4977
    :ivar TypeId: 
4978
    :vartype TypeId: NodeId 
4979
    :ivar RequestHeader: 
4980
    :vartype RequestHeader: RequestHeader 
4981
    :ivar Parameters: 
4982
    :vartype Parameters: BrowseParameters 
4983
    '''
4984 1
    def __init__(self):
4985 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseRequest_Encoding_DefaultBinary)
4986 1
        self.RequestHeader = RequestHeader()
4987 1
        self.Parameters = BrowseParameters()
4988 1
        self._freeze()
4989
    
4990 1
    def to_binary(self):
4991 1
        packet = []
4992 1
        packet.append(self.TypeId.to_binary())
4993 1
        packet.append(self.RequestHeader.to_binary())
4994 1
        packet.append(self.Parameters.to_binary())
4995 1
        return b''.join(packet)
4996
        
4997 1
    @staticmethod
4998
    def from_binary(data):
4999
        obj = BrowseRequest()
5000
        obj.TypeId = NodeId.from_binary(data)
5001
        obj.RequestHeader = RequestHeader.from_binary(data)
5002
        obj.Parameters = BrowseParameters.from_binary(data)
5003
        return obj
5004
    
5005 1
    def __str__(self):
5006
        return 'BrowseRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5007
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5008
             'Parameters:' + str(self.Parameters) + ')'
5009
    
5010 1
    __repr__ = __str__
5011
    
5012 1
class BrowseResponse(FrozenClass):
5013
    '''
5014
    Browse the references for one or more nodes from the server address space.
5015
    
5016
    :ivar TypeId: 
5017
    :vartype TypeId: NodeId 
5018
    :ivar ResponseHeader: 
5019
    :vartype ResponseHeader: ResponseHeader 
5020
    :ivar Results: 
5021
    :vartype Results: BrowseResult 
5022
    :ivar DiagnosticInfos: 
5023
    :vartype DiagnosticInfos: DiagnosticInfo 
5024
    '''
5025 1
    def __init__(self):
5026 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseResponse_Encoding_DefaultBinary)
5027 1
        self.ResponseHeader = ResponseHeader()
5028 1
        self.Results = []
5029 1
        self.DiagnosticInfos = []
5030 1
        self._freeze()
5031
    
5032 1
    def to_binary(self):
5033 1
        packet = []
5034 1
        packet.append(self.TypeId.to_binary())
5035 1
        packet.append(self.ResponseHeader.to_binary())
5036 1
        packet.append(struct.pack('<i', len(self.Results)))
5037 1
        for fieldname in self.Results:
5038 1
            packet.append(fieldname.to_binary())
5039 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5040 1
        for fieldname in self.DiagnosticInfos:
5041
            packet.append(fieldname.to_binary())
5042 1
        return b''.join(packet)
5043
        
5044 1
    @staticmethod
5045
    def from_binary(data):
5046 1
        obj = BrowseResponse()
5047 1
        obj.TypeId = NodeId.from_binary(data)
5048 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5049 1
        length = struct.unpack('<i', data.read(4))[0]
5050 1
        if length != -1:
5051 1
            for _ in range(0, length):
5052 1
                obj.Results.append(BrowseResult.from_binary(data))
5053 1
        length = struct.unpack('<i', data.read(4))[0]
5054 1
        if length != -1:
5055 1
            for _ in range(0, length):
5056
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5057 1
        return obj
5058
    
5059 1
    def __str__(self):
5060
        return 'BrowseResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5061
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5062
             'Results:' + str(self.Results) + ', '  + \
5063
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5064
    
5065 1
    __repr__ = __str__
5066
    
5067 1
class BrowseNextParameters(FrozenClass):
5068
    '''
5069
    :ivar ReleaseContinuationPoints: 
5070
    :vartype ReleaseContinuationPoints: Boolean 
5071
    :ivar ContinuationPoints: 
5072
    :vartype ContinuationPoints: ByteString 
5073
    '''
5074 1
    def __init__(self):
5075
        self.ReleaseContinuationPoints = True
5076
        self.ContinuationPoints = []
5077
        self._freeze()
5078
    
5079 1
    def to_binary(self):
5080
        packet = []
5081
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoints))
5082
        packet.append(struct.pack('<i', len(self.ContinuationPoints)))
5083
        for fieldname in self.ContinuationPoints:
5084
            packet.append(pack_uatype('ByteString', fieldname))
5085
        return b''.join(packet)
5086
        
5087 1
    @staticmethod
5088
    def from_binary(data):
5089
        obj = BrowseNextParameters()
5090
        obj.ReleaseContinuationPoints = unpack_uatype('Boolean', data)
5091
        obj.ContinuationPoints = unpack_uatype_array('ByteString', data)
5092
        return obj
5093
    
5094 1
    def __str__(self):
5095
        return 'BrowseNextParameters(' + 'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', '  + \
5096
             'ContinuationPoints:' + str(self.ContinuationPoints) + ')'
5097
    
5098 1
    __repr__ = __str__
5099
    
5100 1
class BrowseNextRequest(FrozenClass):
5101
    '''
5102
    Continues one or more browse operations.
5103
    
5104
    :ivar TypeId: 
5105
    :vartype TypeId: NodeId 
5106
    :ivar RequestHeader: 
5107
    :vartype RequestHeader: RequestHeader 
5108
    :ivar Parameters: 
5109
    :vartype Parameters: BrowseNextParameters 
5110
    '''
5111 1
    def __init__(self):
5112
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextRequest_Encoding_DefaultBinary)
5113
        self.RequestHeader = RequestHeader()
5114
        self.Parameters = BrowseNextParameters()
5115
        self._freeze()
5116
    
5117 1
    def to_binary(self):
5118
        packet = []
5119
        packet.append(self.TypeId.to_binary())
5120
        packet.append(self.RequestHeader.to_binary())
5121
        packet.append(self.Parameters.to_binary())
5122
        return b''.join(packet)
5123
        
5124 1
    @staticmethod
5125
    def from_binary(data):
5126
        obj = BrowseNextRequest()
5127
        obj.TypeId = NodeId.from_binary(data)
5128
        obj.RequestHeader = RequestHeader.from_binary(data)
5129
        obj.Parameters = BrowseNextParameters.from_binary(data)
5130
        return obj
5131
    
5132 1
    def __str__(self):
5133
        return 'BrowseNextRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5134
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5135
             'Parameters:' + str(self.Parameters) + ')'
5136
    
5137 1
    __repr__ = __str__
5138
    
5139 1
class BrowseNextResult(FrozenClass):
5140
    '''
5141
    :ivar Results: 
5142
    :vartype Results: BrowseResult 
5143
    :ivar DiagnosticInfos: 
5144
    :vartype DiagnosticInfos: DiagnosticInfo 
5145
    '''
5146 1
    def __init__(self):
5147
        self.Results = []
5148
        self.DiagnosticInfos = []
5149
        self._freeze()
5150
    
5151 1
    def to_binary(self):
5152
        packet = []
5153
        packet.append(struct.pack('<i', len(self.Results)))
5154
        for fieldname in self.Results:
5155
            packet.append(fieldname.to_binary())
5156
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5157
        for fieldname in self.DiagnosticInfos:
5158
            packet.append(fieldname.to_binary())
5159
        return b''.join(packet)
5160
        
5161 1
    @staticmethod
5162
    def from_binary(data):
5163
        obj = BrowseNextResult()
5164
        length = struct.unpack('<i', data.read(4))[0]
5165
        if length != -1:
5166
            for _ in range(0, length):
5167
                obj.Results.append(BrowseResult.from_binary(data))
5168
        length = struct.unpack('<i', data.read(4))[0]
5169
        if length != -1:
5170
            for _ in range(0, length):
5171
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5172
        return obj
5173
    
5174 1
    def __str__(self):
5175
        return 'BrowseNextResult(' + 'Results:' + str(self.Results) + ', '  + \
5176
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5177
    
5178 1
    __repr__ = __str__
5179
    
5180 1
class BrowseNextResponse(FrozenClass):
5181
    '''
5182
    Continues one or more browse operations.
5183
    
5184
    :ivar TypeId: 
5185
    :vartype TypeId: NodeId 
5186
    :ivar ResponseHeader: 
5187
    :vartype ResponseHeader: ResponseHeader 
5188
    :ivar Parameters: 
5189
    :vartype Parameters: BrowseNextResult 
5190
    '''
5191 1
    def __init__(self):
5192
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextResponse_Encoding_DefaultBinary)
5193
        self.ResponseHeader = ResponseHeader()
5194
        self.Parameters = BrowseNextResult()
5195
        self._freeze()
5196
    
5197 1
    def to_binary(self):
5198
        packet = []
5199
        packet.append(self.TypeId.to_binary())
5200
        packet.append(self.ResponseHeader.to_binary())
5201
        packet.append(self.Parameters.to_binary())
5202
        return b''.join(packet)
5203
        
5204 1
    @staticmethod
5205
    def from_binary(data):
5206
        obj = BrowseNextResponse()
5207
        obj.TypeId = NodeId.from_binary(data)
5208
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5209
        obj.Parameters = BrowseNextResult.from_binary(data)
5210
        return obj
5211
    
5212 1
    def __str__(self):
5213
        return 'BrowseNextResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5214
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5215
             'Parameters:' + str(self.Parameters) + ')'
5216
    
5217 1
    __repr__ = __str__
5218
    
5219 1
class RelativePathElement(FrozenClass):
5220
    '''
5221
    An element in a relative path.
5222
    
5223
    :ivar ReferenceTypeId: 
5224
    :vartype ReferenceTypeId: NodeId 
5225
    :ivar IsInverse: 
5226
    :vartype IsInverse: Boolean 
5227
    :ivar IncludeSubtypes: 
5228
    :vartype IncludeSubtypes: Boolean 
5229
    :ivar TargetName: 
5230
    :vartype TargetName: QualifiedName 
5231
    '''
5232 1
    def __init__(self):
5233 1
        self.ReferenceTypeId = NodeId()
5234 1
        self.IsInverse = True
5235 1
        self.IncludeSubtypes = True
5236 1
        self.TargetName = QualifiedName()
5237 1
        self._freeze()
5238
    
5239 1
    def to_binary(self):
5240 1
        packet = []
5241 1
        packet.append(self.ReferenceTypeId.to_binary())
5242 1
        packet.append(pack_uatype('Boolean', self.IsInverse))
5243 1
        packet.append(pack_uatype('Boolean', self.IncludeSubtypes))
5244 1
        packet.append(self.TargetName.to_binary())
5245 1
        return b''.join(packet)
5246
        
5247 1
    @staticmethod
5248
    def from_binary(data):
5249 1
        obj = RelativePathElement()
5250 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
5251 1
        obj.IsInverse = unpack_uatype('Boolean', data)
5252 1
        obj.IncludeSubtypes = unpack_uatype('Boolean', data)
5253 1
        obj.TargetName = QualifiedName.from_binary(data)
5254 1
        return obj
5255
    
5256 1
    def __str__(self):
5257
        return 'RelativePathElement(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
5258
             'IsInverse:' + str(self.IsInverse) + ', '  + \
5259
             'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', '  + \
5260
             'TargetName:' + str(self.TargetName) + ')'
5261
    
5262 1
    __repr__ = __str__
5263
    
5264 1
class RelativePath(FrozenClass):
5265
    '''
5266
    A relative path constructed from reference types and browse names.
5267
    
5268
    :ivar Elements: 
5269
    :vartype Elements: RelativePathElement 
5270
    '''
5271 1
    def __init__(self):
5272 1
        self.Elements = []
5273 1
        self._freeze()
5274
    
5275 1
    def to_binary(self):
5276 1
        packet = []
5277 1
        packet.append(struct.pack('<i', len(self.Elements)))
5278 1
        for fieldname in self.Elements:
5279 1
            packet.append(fieldname.to_binary())
5280 1
        return b''.join(packet)
5281
        
5282 1
    @staticmethod
5283
    def from_binary(data):
5284 1
        obj = RelativePath()
5285 1
        length = struct.unpack('<i', data.read(4))[0]
5286 1
        if length != -1:
5287 1
            for _ in range(0, length):
5288 1
                obj.Elements.append(RelativePathElement.from_binary(data))
5289 1
        return obj
5290
    
5291 1
    def __str__(self):
5292
        return 'RelativePath(' + 'Elements:' + str(self.Elements) + ')'
5293
    
5294 1
    __repr__ = __str__
5295
    
5296 1
class BrowsePath(FrozenClass):
5297
    '''
5298
    A request to translate a path into a node id.
5299
    
5300
    :ivar StartingNode: 
5301
    :vartype StartingNode: NodeId 
5302
    :ivar RelativePath: 
5303
    :vartype RelativePath: RelativePath 
5304
    '''
5305 1
    def __init__(self):
5306 1
        self.StartingNode = NodeId()
5307 1
        self.RelativePath = RelativePath()
5308 1
        self._freeze()
5309
    
5310 1
    def to_binary(self):
5311 1
        packet = []
5312 1
        packet.append(self.StartingNode.to_binary())
5313 1
        packet.append(self.RelativePath.to_binary())
5314 1
        return b''.join(packet)
5315
        
5316 1
    @staticmethod
5317
    def from_binary(data):
5318 1
        obj = BrowsePath()
5319 1
        obj.StartingNode = NodeId.from_binary(data)
5320 1
        obj.RelativePath = RelativePath.from_binary(data)
5321 1
        return obj
5322
    
5323 1
    def __str__(self):
5324
        return 'BrowsePath(' + 'StartingNode:' + str(self.StartingNode) + ', '  + \
5325
             'RelativePath:' + str(self.RelativePath) + ')'
5326
    
5327 1
    __repr__ = __str__
5328
    
5329 1
class BrowsePathTarget(FrozenClass):
5330
    '''
5331
    The target of the translated path.
5332
    
5333
    :ivar TargetId: 
5334
    :vartype TargetId: ExpandedNodeId 
5335
    :ivar RemainingPathIndex: 
5336
    :vartype RemainingPathIndex: UInt32 
5337
    '''
5338 1
    def __init__(self):
5339 1
        self.TargetId = ExpandedNodeId()
5340 1
        self.RemainingPathIndex = 0
5341 1
        self._freeze()
5342
    
5343 1
    def to_binary(self):
5344 1
        packet = []
5345 1
        packet.append(self.TargetId.to_binary())
5346 1
        packet.append(pack_uatype('UInt32', self.RemainingPathIndex))
5347 1
        return b''.join(packet)
5348
        
5349 1
    @staticmethod
5350
    def from_binary(data):
5351 1
        obj = BrowsePathTarget()
5352 1
        obj.TargetId = ExpandedNodeId.from_binary(data)
5353 1
        obj.RemainingPathIndex = unpack_uatype('UInt32', data)
5354 1
        return obj
5355
    
5356 1
    def __str__(self):
5357
        return 'BrowsePathTarget(' + 'TargetId:' + str(self.TargetId) + ', '  + \
5358
             'RemainingPathIndex:' + str(self.RemainingPathIndex) + ')'
5359
    
5360 1
    __repr__ = __str__
5361
    
5362 1
class BrowsePathResult(FrozenClass):
5363
    '''
5364
    The result of a translate opearation.
5365
    
5366
    :ivar StatusCode: 
5367
    :vartype StatusCode: StatusCode 
5368
    :ivar Targets: 
5369
    :vartype Targets: BrowsePathTarget 
5370
    '''
5371 1
    def __init__(self):
5372 1
        self.StatusCode = StatusCode()
5373 1
        self.Targets = []
5374 1
        self._freeze()
5375
    
5376 1
    def to_binary(self):
5377 1
        packet = []
5378 1
        packet.append(self.StatusCode.to_binary())
5379 1
        packet.append(struct.pack('<i', len(self.Targets)))
5380 1
        for fieldname in self.Targets:
5381 1
            packet.append(fieldname.to_binary())
5382 1
        return b''.join(packet)
5383
        
5384 1
    @staticmethod
5385
    def from_binary(data):
5386 1
        obj = BrowsePathResult()
5387 1
        obj.StatusCode = StatusCode.from_binary(data)
5388 1
        length = struct.unpack('<i', data.read(4))[0]
5389 1
        if length != -1:
5390 1
            for _ in range(0, length):
5391 1
                obj.Targets.append(BrowsePathTarget.from_binary(data))
5392 1
        return obj
5393
    
5394 1
    def __str__(self):
5395
        return 'BrowsePathResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
5396
             'Targets:' + str(self.Targets) + ')'
5397
    
5398 1
    __repr__ = __str__
5399
    
5400 1
class TranslateBrowsePathsToNodeIdsParameters(FrozenClass):
5401
    '''
5402
    :ivar BrowsePaths: 
5403
    :vartype BrowsePaths: BrowsePath 
5404
    '''
5405 1
    def __init__(self):
5406 1
        self.BrowsePaths = []
5407 1
        self._freeze()
5408
    
5409 1
    def to_binary(self):
5410 1
        packet = []
5411 1
        packet.append(struct.pack('<i', len(self.BrowsePaths)))
5412 1
        for fieldname in self.BrowsePaths:
5413 1
            packet.append(fieldname.to_binary())
5414 1
        return b''.join(packet)
5415
        
5416 1
    @staticmethod
5417
    def from_binary(data):
5418 1
        obj = TranslateBrowsePathsToNodeIdsParameters()
5419 1
        length = struct.unpack('<i', data.read(4))[0]
5420 1
        if length != -1:
5421 1
            for _ in range(0, length):
5422 1
                obj.BrowsePaths.append(BrowsePath.from_binary(data))
5423 1
        return obj
5424
    
5425 1
    def __str__(self):
5426
        return 'TranslateBrowsePathsToNodeIdsParameters(' + 'BrowsePaths:' + str(self.BrowsePaths) + ')'
5427
    
5428 1
    __repr__ = __str__
5429
    
5430 1
class TranslateBrowsePathsToNodeIdsRequest(FrozenClass):
5431
    '''
5432
    Translates one or more paths in the server address space.
5433
    
5434
    :ivar TypeId: 
5435
    :vartype TypeId: NodeId 
5436
    :ivar RequestHeader: 
5437
    :vartype RequestHeader: RequestHeader 
5438
    :ivar Parameters: 
5439
    :vartype Parameters: TranslateBrowsePathsToNodeIdsParameters 
5440
    '''
5441 1
    def __init__(self):
5442 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary)
5443 1
        self.RequestHeader = RequestHeader()
5444 1
        self.Parameters = TranslateBrowsePathsToNodeIdsParameters()
5445 1
        self._freeze()
5446
    
5447 1
    def to_binary(self):
5448 1
        packet = []
5449 1
        packet.append(self.TypeId.to_binary())
5450 1
        packet.append(self.RequestHeader.to_binary())
5451 1
        packet.append(self.Parameters.to_binary())
5452 1
        return b''.join(packet)
5453
        
5454 1
    @staticmethod
5455
    def from_binary(data):
5456
        obj = TranslateBrowsePathsToNodeIdsRequest()
5457
        obj.TypeId = NodeId.from_binary(data)
5458
        obj.RequestHeader = RequestHeader.from_binary(data)
5459
        obj.Parameters = TranslateBrowsePathsToNodeIdsParameters.from_binary(data)
5460
        return obj
5461
    
5462 1
    def __str__(self):
5463
        return 'TranslateBrowsePathsToNodeIdsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5464
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5465
             'Parameters:' + str(self.Parameters) + ')'
5466
    
5467 1
    __repr__ = __str__
5468
    
5469 1
class TranslateBrowsePathsToNodeIdsResponse(FrozenClass):
5470
    '''
5471
    Translates one or more paths in the server address space.
5472
    
5473
    :ivar TypeId: 
5474
    :vartype TypeId: NodeId 
5475
    :ivar ResponseHeader: 
5476
    :vartype ResponseHeader: ResponseHeader 
5477
    :ivar Results: 
5478
    :vartype Results: BrowsePathResult 
5479
    :ivar DiagnosticInfos: 
5480
    :vartype DiagnosticInfos: DiagnosticInfo 
5481
    '''
5482 1
    def __init__(self):
5483 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary)
5484 1
        self.ResponseHeader = ResponseHeader()
5485 1
        self.Results = []
5486 1
        self.DiagnosticInfos = []
5487 1
        self._freeze()
5488
    
5489 1
    def to_binary(self):
5490 1
        packet = []
5491 1
        packet.append(self.TypeId.to_binary())
5492 1
        packet.append(self.ResponseHeader.to_binary())
5493 1
        packet.append(struct.pack('<i', len(self.Results)))
5494 1
        for fieldname in self.Results:
5495 1
            packet.append(fieldname.to_binary())
5496 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5497 1
        for fieldname in self.DiagnosticInfos:
5498
            packet.append(fieldname.to_binary())
5499 1
        return b''.join(packet)
5500
        
5501 1
    @staticmethod
5502
    def from_binary(data):
5503 1
        obj = TranslateBrowsePathsToNodeIdsResponse()
5504 1
        obj.TypeId = NodeId.from_binary(data)
5505 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5506 1
        length = struct.unpack('<i', data.read(4))[0]
5507 1
        if length != -1:
5508 1
            for _ in range(0, length):
5509 1
                obj.Results.append(BrowsePathResult.from_binary(data))
5510 1
        length = struct.unpack('<i', data.read(4))[0]
5511 1
        if length != -1:
5512 1
            for _ in range(0, length):
5513
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5514 1
        return obj
5515
    
5516 1
    def __str__(self):
5517
        return 'TranslateBrowsePathsToNodeIdsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5518
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5519
             'Results:' + str(self.Results) + ', '  + \
5520
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5521
    
5522 1
    __repr__ = __str__
5523
    
5524 1
class RegisterNodesParameters(FrozenClass):
5525
    '''
5526
    :ivar NodesToRegister: 
5527
    :vartype NodesToRegister: NodeId 
5528
    '''
5529 1
    def __init__(self):
5530
        self.NodesToRegister = []
5531
        self._freeze()
5532
    
5533 1
    def to_binary(self):
5534
        packet = []
5535
        packet.append(struct.pack('<i', len(self.NodesToRegister)))
5536
        for fieldname in self.NodesToRegister:
5537
            packet.append(fieldname.to_binary())
5538
        return b''.join(packet)
5539
        
5540 1
    @staticmethod
5541
    def from_binary(data):
5542
        obj = RegisterNodesParameters()
5543
        length = struct.unpack('<i', data.read(4))[0]
5544
        if length != -1:
5545
            for _ in range(0, length):
5546
                obj.NodesToRegister.append(NodeId.from_binary(data))
5547
        return obj
5548
    
5549 1
    def __str__(self):
5550
        return 'RegisterNodesParameters(' + 'NodesToRegister:' + str(self.NodesToRegister) + ')'
5551
    
5552 1
    __repr__ = __str__
5553
    
5554 1
class RegisterNodesRequest(FrozenClass):
5555
    '''
5556
    Registers one or more nodes for repeated use within a session.
5557
    
5558
    :ivar TypeId: 
5559
    :vartype TypeId: NodeId 
5560
    :ivar RequestHeader: 
5561
    :vartype RequestHeader: RequestHeader 
5562
    :ivar Parameters: 
5563
    :vartype Parameters: RegisterNodesParameters 
5564
    '''
5565 1
    def __init__(self):
5566
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary)
5567
        self.RequestHeader = RequestHeader()
5568
        self.Parameters = RegisterNodesParameters()
5569
        self._freeze()
5570
    
5571 1
    def to_binary(self):
5572
        packet = []
5573
        packet.append(self.TypeId.to_binary())
5574
        packet.append(self.RequestHeader.to_binary())
5575
        packet.append(self.Parameters.to_binary())
5576
        return b''.join(packet)
5577
        
5578 1
    @staticmethod
5579
    def from_binary(data):
5580
        obj = RegisterNodesRequest()
5581
        obj.TypeId = NodeId.from_binary(data)
5582
        obj.RequestHeader = RequestHeader.from_binary(data)
5583
        obj.Parameters = RegisterNodesParameters.from_binary(data)
5584
        return obj
5585
    
5586 1
    def __str__(self):
5587
        return 'RegisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5588
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5589
             'Parameters:' + str(self.Parameters) + ')'
5590
    
5591 1
    __repr__ = __str__
5592
    
5593 1
class RegisterNodesResult(FrozenClass):
5594
    '''
5595
    :ivar RegisteredNodeIds: 
5596
    :vartype RegisteredNodeIds: NodeId 
5597
    '''
5598 1
    def __init__(self):
5599
        self.RegisteredNodeIds = []
5600
        self._freeze()
5601
    
5602 1
    def to_binary(self):
5603
        packet = []
5604
        packet.append(struct.pack('<i', len(self.RegisteredNodeIds)))
5605
        for fieldname in self.RegisteredNodeIds:
5606
            packet.append(fieldname.to_binary())
5607
        return b''.join(packet)
5608
        
5609 1
    @staticmethod
5610
    def from_binary(data):
5611
        obj = RegisterNodesResult()
5612
        length = struct.unpack('<i', data.read(4))[0]
5613
        if length != -1:
5614
            for _ in range(0, length):
5615
                obj.RegisteredNodeIds.append(NodeId.from_binary(data))
5616
        return obj
5617
    
5618 1
    def __str__(self):
5619
        return 'RegisterNodesResult(' + 'RegisteredNodeIds:' + str(self.RegisteredNodeIds) + ')'
5620
    
5621 1
    __repr__ = __str__
5622
    
5623 1
class RegisterNodesResponse(FrozenClass):
5624
    '''
5625
    Registers one or more nodes for repeated use within a session.
5626
    
5627
    :ivar TypeId: 
5628
    :vartype TypeId: NodeId 
5629
    :ivar ResponseHeader: 
5630
    :vartype ResponseHeader: ResponseHeader 
5631
    :ivar Parameters: 
5632
    :vartype Parameters: RegisterNodesResult 
5633
    '''
5634 1
    def __init__(self):
5635
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary)
5636
        self.ResponseHeader = ResponseHeader()
5637
        self.Parameters = RegisterNodesResult()
5638
        self._freeze()
5639
    
5640 1
    def to_binary(self):
5641
        packet = []
5642
        packet.append(self.TypeId.to_binary())
5643
        packet.append(self.ResponseHeader.to_binary())
5644
        packet.append(self.Parameters.to_binary())
5645
        return b''.join(packet)
5646
        
5647 1
    @staticmethod
5648
    def from_binary(data):
5649
        obj = RegisterNodesResponse()
5650
        obj.TypeId = NodeId.from_binary(data)
5651
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5652
        obj.Parameters = RegisterNodesResult.from_binary(data)
5653
        return obj
5654
    
5655 1
    def __str__(self):
5656
        return 'RegisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5657
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5658
             'Parameters:' + str(self.Parameters) + ')'
5659
    
5660 1
    __repr__ = __str__
5661
    
5662 1
class UnregisterNodesParameters(FrozenClass):
5663
    '''
5664
    :ivar NodesToUnregister: 
5665
    :vartype NodesToUnregister: NodeId 
5666
    '''
5667 1
    def __init__(self):
5668
        self.NodesToUnregister = []
5669
        self._freeze()
5670
    
5671 1
    def to_binary(self):
5672
        packet = []
5673
        packet.append(struct.pack('<i', len(self.NodesToUnregister)))
5674
        for fieldname in self.NodesToUnregister:
5675
            packet.append(fieldname.to_binary())
5676
        return b''.join(packet)
5677
        
5678 1
    @staticmethod
5679
    def from_binary(data):
5680
        obj = UnregisterNodesParameters()
5681
        length = struct.unpack('<i', data.read(4))[0]
5682
        if length != -1:
5683
            for _ in range(0, length):
5684
                obj.NodesToUnregister.append(NodeId.from_binary(data))
5685
        return obj
5686
    
5687 1
    def __str__(self):
5688
        return 'UnregisterNodesParameters(' + 'NodesToUnregister:' + str(self.NodesToUnregister) + ')'
5689
    
5690 1
    __repr__ = __str__
5691
    
5692 1
class UnregisterNodesRequest(FrozenClass):
5693
    '''
5694
    Unregisters one or more previously registered nodes.
5695
    
5696
    :ivar TypeId: 
5697
    :vartype TypeId: NodeId 
5698
    :ivar RequestHeader: 
5699
    :vartype RequestHeader: RequestHeader 
5700
    :ivar Parameters: 
5701
    :vartype Parameters: UnregisterNodesParameters 
5702
    '''
5703 1
    def __init__(self):
5704
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary)
5705
        self.RequestHeader = RequestHeader()
5706
        self.Parameters = UnregisterNodesParameters()
5707
        self._freeze()
5708
    
5709 1
    def to_binary(self):
5710
        packet = []
5711
        packet.append(self.TypeId.to_binary())
5712
        packet.append(self.RequestHeader.to_binary())
5713
        packet.append(self.Parameters.to_binary())
5714
        return b''.join(packet)
5715
        
5716 1
    @staticmethod
5717
    def from_binary(data):
5718
        obj = UnregisterNodesRequest()
5719
        obj.TypeId = NodeId.from_binary(data)
5720
        obj.RequestHeader = RequestHeader.from_binary(data)
5721
        obj.Parameters = UnregisterNodesParameters.from_binary(data)
5722
        return obj
5723
    
5724 1
    def __str__(self):
5725
        return 'UnregisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5726
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5727
             'Parameters:' + str(self.Parameters) + ')'
5728
    
5729 1
    __repr__ = __str__
5730
    
5731 1
class UnregisterNodesResponse(FrozenClass):
5732
    '''
5733
    Unregisters one or more previously registered nodes.
5734
    
5735
    :ivar TypeId: 
5736
    :vartype TypeId: NodeId 
5737
    :ivar ResponseHeader: 
5738
    :vartype ResponseHeader: ResponseHeader 
5739
    '''
5740 1
    def __init__(self):
5741
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary)
5742
        self.ResponseHeader = ResponseHeader()
5743
        self._freeze()
5744
    
5745 1
    def to_binary(self):
5746
        packet = []
5747
        packet.append(self.TypeId.to_binary())
5748
        packet.append(self.ResponseHeader.to_binary())
5749
        return b''.join(packet)
5750
        
5751 1
    @staticmethod
5752
    def from_binary(data):
5753
        obj = UnregisterNodesResponse()
5754
        obj.TypeId = NodeId.from_binary(data)
5755
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5756
        return obj
5757
    
5758 1
    def __str__(self):
5759
        return 'UnregisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5760
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
5761
    
5762 1
    __repr__ = __str__
5763
    
5764 1
class EndpointConfiguration(FrozenClass):
5765
    '''
5766
    :ivar OperationTimeout: 
5767
    :vartype OperationTimeout: Int32 
5768
    :ivar UseBinaryEncoding: 
5769
    :vartype UseBinaryEncoding: Boolean 
5770
    :ivar MaxStringLength: 
5771
    :vartype MaxStringLength: Int32 
5772
    :ivar MaxByteStringLength: 
5773
    :vartype MaxByteStringLength: Int32 
5774
    :ivar MaxArrayLength: 
5775
    :vartype MaxArrayLength: Int32 
5776
    :ivar MaxMessageSize: 
5777
    :vartype MaxMessageSize: Int32 
5778
    :ivar MaxBufferSize: 
5779
    :vartype MaxBufferSize: Int32 
5780
    :ivar ChannelLifetime: 
5781
    :vartype ChannelLifetime: Int32 
5782
    :ivar SecurityTokenLifetime: 
5783
    :vartype SecurityTokenLifetime: Int32 
5784
    '''
5785 1
    def __init__(self):
5786
        self.OperationTimeout = 0
5787
        self.UseBinaryEncoding = True
5788
        self.MaxStringLength = 0
5789
        self.MaxByteStringLength = 0
5790
        self.MaxArrayLength = 0
5791
        self.MaxMessageSize = 0
5792
        self.MaxBufferSize = 0
5793
        self.ChannelLifetime = 0
5794
        self.SecurityTokenLifetime = 0
5795
        self._freeze()
5796
    
5797 1
    def to_binary(self):
5798
        packet = []
5799
        packet.append(pack_uatype('Int32', self.OperationTimeout))
5800
        packet.append(pack_uatype('Boolean', self.UseBinaryEncoding))
5801
        packet.append(pack_uatype('Int32', self.MaxStringLength))
5802
        packet.append(pack_uatype('Int32', self.MaxByteStringLength))
5803
        packet.append(pack_uatype('Int32', self.MaxArrayLength))
5804
        packet.append(pack_uatype('Int32', self.MaxMessageSize))
5805
        packet.append(pack_uatype('Int32', self.MaxBufferSize))
5806
        packet.append(pack_uatype('Int32', self.ChannelLifetime))
5807
        packet.append(pack_uatype('Int32', self.SecurityTokenLifetime))
5808
        return b''.join(packet)
5809
        
5810 1
    @staticmethod
5811
    def from_binary(data):
5812
        obj = EndpointConfiguration()
5813
        obj.OperationTimeout = unpack_uatype('Int32', data)
5814
        obj.UseBinaryEncoding = unpack_uatype('Boolean', data)
5815
        obj.MaxStringLength = unpack_uatype('Int32', data)
5816
        obj.MaxByteStringLength = unpack_uatype('Int32', data)
5817
        obj.MaxArrayLength = unpack_uatype('Int32', data)
5818
        obj.MaxMessageSize = unpack_uatype('Int32', data)
5819
        obj.MaxBufferSize = unpack_uatype('Int32', data)
5820
        obj.ChannelLifetime = unpack_uatype('Int32', data)
5821
        obj.SecurityTokenLifetime = unpack_uatype('Int32', data)
5822
        return obj
5823
    
5824 1
    def __str__(self):
5825
        return 'EndpointConfiguration(' + 'OperationTimeout:' + str(self.OperationTimeout) + ', '  + \
5826
             'UseBinaryEncoding:' + str(self.UseBinaryEncoding) + ', '  + \
5827
             'MaxStringLength:' + str(self.MaxStringLength) + ', '  + \
5828
             'MaxByteStringLength:' + str(self.MaxByteStringLength) + ', '  + \
5829
             'MaxArrayLength:' + str(self.MaxArrayLength) + ', '  + \
5830
             'MaxMessageSize:' + str(self.MaxMessageSize) + ', '  + \
5831
             'MaxBufferSize:' + str(self.MaxBufferSize) + ', '  + \
5832
             'ChannelLifetime:' + str(self.ChannelLifetime) + ', '  + \
5833
             'SecurityTokenLifetime:' + str(self.SecurityTokenLifetime) + ')'
5834
    
5835 1
    __repr__ = __str__
5836
    
5837 1
class SupportedProfile(FrozenClass):
5838
    '''
5839
    :ivar OrganizationUri: 
5840
    :vartype OrganizationUri: String 
5841
    :ivar ProfileId: 
5842
    :vartype ProfileId: String 
5843
    :ivar ComplianceTool: 
5844
    :vartype ComplianceTool: String 
5845
    :ivar ComplianceDate: 
5846
    :vartype ComplianceDate: DateTime 
5847
    :ivar ComplianceLevel: 
5848
    :vartype ComplianceLevel: ComplianceLevel 
5849
    :ivar UnsupportedUnitIds: 
5850
    :vartype UnsupportedUnitIds: String 
5851
    '''
5852 1
    def __init__(self):
5853
        self.OrganizationUri = ''
5854
        self.ProfileId = ''
5855
        self.ComplianceTool = ''
5856
        self.ComplianceDate = datetime.now()
5857
        self.ComplianceLevel = 0
5858
        self.UnsupportedUnitIds = []
5859
        self._freeze()
5860
    
5861 1
    def to_binary(self):
5862
        packet = []
5863
        packet.append(pack_uatype('String', self.OrganizationUri))
5864
        packet.append(pack_uatype('String', self.ProfileId))
5865
        packet.append(pack_uatype('String', self.ComplianceTool))
5866
        packet.append(pack_uatype('DateTime', self.ComplianceDate))
5867
        packet.append(pack_uatype('UInt32', self.ComplianceLevel))
5868
        packet.append(struct.pack('<i', len(self.UnsupportedUnitIds)))
5869
        for fieldname in self.UnsupportedUnitIds:
5870
            packet.append(pack_uatype('String', fieldname))
5871
        return b''.join(packet)
5872
        
5873 1
    @staticmethod
5874
    def from_binary(data):
5875
        obj = SupportedProfile()
5876
        obj.OrganizationUri = unpack_uatype('String', data)
5877
        obj.ProfileId = unpack_uatype('String', data)
5878
        obj.ComplianceTool = unpack_uatype('String', data)
5879
        obj.ComplianceDate = unpack_uatype('DateTime', data)
5880
        obj.ComplianceLevel = unpack_uatype('UInt32', data)
5881
        obj.UnsupportedUnitIds = unpack_uatype_array('String', data)
5882
        return obj
5883
    
5884 1
    def __str__(self):
5885
        return 'SupportedProfile(' + 'OrganizationUri:' + str(self.OrganizationUri) + ', '  + \
5886
             'ProfileId:' + str(self.ProfileId) + ', '  + \
5887
             'ComplianceTool:' + str(self.ComplianceTool) + ', '  + \
5888
             'ComplianceDate:' + str(self.ComplianceDate) + ', '  + \
5889
             'ComplianceLevel:' + str(self.ComplianceLevel) + ', '  + \
5890
             'UnsupportedUnitIds:' + str(self.UnsupportedUnitIds) + ')'
5891
    
5892 1
    __repr__ = __str__
5893
    
5894 1
class SoftwareCertificate(FrozenClass):
5895
    '''
5896
    :ivar ProductName: 
5897
    :vartype ProductName: String 
5898
    :ivar ProductUri: 
5899
    :vartype ProductUri: String 
5900
    :ivar VendorName: 
5901
    :vartype VendorName: String 
5902
    :ivar VendorProductCertificate: 
5903
    :vartype VendorProductCertificate: ByteString 
5904
    :ivar SoftwareVersion: 
5905
    :vartype SoftwareVersion: String 
5906
    :ivar BuildNumber: 
5907
    :vartype BuildNumber: String 
5908
    :ivar BuildDate: 
5909
    :vartype BuildDate: DateTime 
5910
    :ivar IssuedBy: 
5911
    :vartype IssuedBy: String 
5912
    :ivar IssueDate: 
5913
    :vartype IssueDate: DateTime 
5914
    :ivar SupportedProfiles: 
5915
    :vartype SupportedProfiles: SupportedProfile 
5916
    '''
5917 1
    def __init__(self):
5918
        self.ProductName = ''
5919
        self.ProductUri = ''
5920
        self.VendorName = ''
5921
        self.VendorProductCertificate = b''
5922
        self.SoftwareVersion = ''
5923
        self.BuildNumber = ''
5924
        self.BuildDate = datetime.now()
5925
        self.IssuedBy = ''
5926
        self.IssueDate = datetime.now()
5927
        self.SupportedProfiles = []
5928
        self._freeze()
5929
    
5930 1
    def to_binary(self):
5931
        packet = []
5932
        packet.append(pack_uatype('String', self.ProductName))
5933
        packet.append(pack_uatype('String', self.ProductUri))
5934
        packet.append(pack_uatype('String', self.VendorName))
5935
        packet.append(pack_uatype('ByteString', self.VendorProductCertificate))
5936
        packet.append(pack_uatype('String', self.SoftwareVersion))
5937
        packet.append(pack_uatype('String', self.BuildNumber))
5938
        packet.append(pack_uatype('DateTime', self.BuildDate))
5939
        packet.append(pack_uatype('String', self.IssuedBy))
5940
        packet.append(pack_uatype('DateTime', self.IssueDate))
5941
        packet.append(struct.pack('<i', len(self.SupportedProfiles)))
5942
        for fieldname in self.SupportedProfiles:
5943
            packet.append(fieldname.to_binary())
5944
        return b''.join(packet)
5945
        
5946 1
    @staticmethod
5947
    def from_binary(data):
5948
        obj = SoftwareCertificate()
5949
        obj.ProductName = unpack_uatype('String', data)
5950
        obj.ProductUri = unpack_uatype('String', data)
5951
        obj.VendorName = unpack_uatype('String', data)
5952
        obj.VendorProductCertificate = unpack_uatype('ByteString', data)
5953
        obj.SoftwareVersion = unpack_uatype('String', data)
5954
        obj.BuildNumber = unpack_uatype('String', data)
5955
        obj.BuildDate = unpack_uatype('DateTime', data)
5956
        obj.IssuedBy = unpack_uatype('String', data)
5957
        obj.IssueDate = unpack_uatype('DateTime', data)
5958
        length = struct.unpack('<i', data.read(4))[0]
5959
        if length != -1:
5960
            for _ in range(0, length):
5961
                obj.SupportedProfiles.append(SupportedProfile.from_binary(data))
5962
        return obj
5963
    
5964 1
    def __str__(self):
5965
        return 'SoftwareCertificate(' + 'ProductName:' + str(self.ProductName) + ', '  + \
5966
             'ProductUri:' + str(self.ProductUri) + ', '  + \
5967
             'VendorName:' + str(self.VendorName) + ', '  + \
5968
             'VendorProductCertificate:' + str(self.VendorProductCertificate) + ', '  + \
5969
             'SoftwareVersion:' + str(self.SoftwareVersion) + ', '  + \
5970
             'BuildNumber:' + str(self.BuildNumber) + ', '  + \
5971
             'BuildDate:' + str(self.BuildDate) + ', '  + \
5972
             'IssuedBy:' + str(self.IssuedBy) + ', '  + \
5973
             'IssueDate:' + str(self.IssueDate) + ', '  + \
5974
             'SupportedProfiles:' + str(self.SupportedProfiles) + ')'
5975
    
5976 1
    __repr__ = __str__
5977
    
5978 1
class QueryDataDescription(FrozenClass):
5979
    '''
5980
    :ivar RelativePath: 
5981
    :vartype RelativePath: RelativePath 
5982
    :ivar AttributeId: 
5983
    :vartype AttributeId: UInt32 
5984
    :ivar IndexRange: 
5985
    :vartype IndexRange: String 
5986
    '''
5987 1
    def __init__(self):
5988
        self.RelativePath = RelativePath()
5989
        self.AttributeId = 0
5990
        self.IndexRange = ''
5991
        self._freeze()
5992
    
5993 1
    def to_binary(self):
5994
        packet = []
5995
        packet.append(self.RelativePath.to_binary())
5996
        packet.append(pack_uatype('UInt32', self.AttributeId))
5997
        packet.append(pack_uatype('String', self.IndexRange))
5998
        return b''.join(packet)
5999
        
6000 1
    @staticmethod
6001
    def from_binary(data):
6002
        obj = QueryDataDescription()
6003
        obj.RelativePath = RelativePath.from_binary(data)
6004
        obj.AttributeId = unpack_uatype('UInt32', data)
6005
        obj.IndexRange = unpack_uatype('String', data)
6006
        return obj
6007
    
6008 1
    def __str__(self):
6009
        return 'QueryDataDescription(' + 'RelativePath:' + str(self.RelativePath) + ', '  + \
6010
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6011
             'IndexRange:' + str(self.IndexRange) + ')'
6012
    
6013 1
    __repr__ = __str__
6014
    
6015 1
class NodeTypeDescription(FrozenClass):
6016
    '''
6017
    :ivar TypeDefinitionNode: 
6018
    :vartype TypeDefinitionNode: ExpandedNodeId 
6019
    :ivar IncludeSubTypes: 
6020
    :vartype IncludeSubTypes: Boolean 
6021
    :ivar DataToReturn: 
6022
    :vartype DataToReturn: QueryDataDescription 
6023
    '''
6024 1
    def __init__(self):
6025
        self.TypeDefinitionNode = ExpandedNodeId()
6026
        self.IncludeSubTypes = True
6027
        self.DataToReturn = []
6028
        self._freeze()
6029
    
6030 1
    def to_binary(self):
6031
        packet = []
6032
        packet.append(self.TypeDefinitionNode.to_binary())
6033
        packet.append(pack_uatype('Boolean', self.IncludeSubTypes))
6034
        packet.append(struct.pack('<i', len(self.DataToReturn)))
6035
        for fieldname in self.DataToReturn:
6036
            packet.append(fieldname.to_binary())
6037
        return b''.join(packet)
6038
        
6039 1
    @staticmethod
6040
    def from_binary(data):
6041
        obj = NodeTypeDescription()
6042
        obj.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6043
        obj.IncludeSubTypes = unpack_uatype('Boolean', data)
6044
        length = struct.unpack('<i', data.read(4))[0]
6045
        if length != -1:
6046
            for _ in range(0, length):
6047
                obj.DataToReturn.append(QueryDataDescription.from_binary(data))
6048
        return obj
6049
    
6050 1
    def __str__(self):
6051
        return 'NodeTypeDescription(' + 'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', '  + \
6052
             'IncludeSubTypes:' + str(self.IncludeSubTypes) + ', '  + \
6053
             'DataToReturn:' + str(self.DataToReturn) + ')'
6054
    
6055 1
    __repr__ = __str__
6056
    
6057 1
class QueryDataSet(FrozenClass):
6058
    '''
6059
    :ivar NodeId: 
6060
    :vartype NodeId: ExpandedNodeId 
6061
    :ivar TypeDefinitionNode: 
6062
    :vartype TypeDefinitionNode: ExpandedNodeId 
6063
    :ivar Values: 
6064
    :vartype Values: Variant 
6065
    '''
6066 1
    def __init__(self):
6067
        self.NodeId = ExpandedNodeId()
6068
        self.TypeDefinitionNode = ExpandedNodeId()
6069
        self.Values = []
6070
        self._freeze()
6071
    
6072 1
    def to_binary(self):
6073
        packet = []
6074
        packet.append(self.NodeId.to_binary())
6075
        packet.append(self.TypeDefinitionNode.to_binary())
6076
        packet.append(struct.pack('<i', len(self.Values)))
6077
        for fieldname in self.Values:
6078
            packet.append(fieldname.to_binary())
6079
        return b''.join(packet)
6080
        
6081 1
    @staticmethod
6082
    def from_binary(data):
6083
        obj = QueryDataSet()
6084
        obj.NodeId = ExpandedNodeId.from_binary(data)
6085
        obj.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6086
        length = struct.unpack('<i', data.read(4))[0]
6087
        if length != -1:
6088
            for _ in range(0, length):
6089
                obj.Values.append(Variant.from_binary(data))
6090
        return obj
6091
    
6092 1
    def __str__(self):
6093
        return 'QueryDataSet(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6094
             'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', '  + \
6095
             'Values:' + str(self.Values) + ')'
6096
    
6097 1
    __repr__ = __str__
6098
    
6099 1
class NodeReference(FrozenClass):
6100
    '''
6101
    :ivar NodeId: 
6102
    :vartype NodeId: NodeId 
6103
    :ivar ReferenceTypeId: 
6104
    :vartype ReferenceTypeId: NodeId 
6105
    :ivar IsForward: 
6106
    :vartype IsForward: Boolean 
6107
    :ivar ReferencedNodeIds: 
6108
    :vartype ReferencedNodeIds: NodeId 
6109
    '''
6110 1
    def __init__(self):
6111
        self.NodeId = NodeId()
6112
        self.ReferenceTypeId = NodeId()
6113
        self.IsForward = True
6114
        self.ReferencedNodeIds = []
6115
        self._freeze()
6116
    
6117 1
    def to_binary(self):
6118
        packet = []
6119
        packet.append(self.NodeId.to_binary())
6120
        packet.append(self.ReferenceTypeId.to_binary())
6121
        packet.append(pack_uatype('Boolean', self.IsForward))
6122
        packet.append(struct.pack('<i', len(self.ReferencedNodeIds)))
6123
        for fieldname in self.ReferencedNodeIds:
6124
            packet.append(fieldname.to_binary())
6125
        return b''.join(packet)
6126
        
6127 1
    @staticmethod
6128
    def from_binary(data):
6129
        obj = NodeReference()
6130
        obj.NodeId = NodeId.from_binary(data)
6131
        obj.ReferenceTypeId = NodeId.from_binary(data)
6132
        obj.IsForward = unpack_uatype('Boolean', data)
6133
        length = struct.unpack('<i', data.read(4))[0]
6134
        if length != -1:
6135
            for _ in range(0, length):
6136
                obj.ReferencedNodeIds.append(NodeId.from_binary(data))
6137
        return obj
6138
    
6139 1
    def __str__(self):
6140
        return 'NodeReference(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6141
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
6142
             'IsForward:' + str(self.IsForward) + ', '  + \
6143
             'ReferencedNodeIds:' + str(self.ReferencedNodeIds) + ')'
6144
    
6145 1
    __repr__ = __str__
6146
    
6147 1
class ContentFilterElement(FrozenClass):
6148
    '''
6149
    :ivar FilterOperator: 
6150
    :vartype FilterOperator: FilterOperator 
6151
    :ivar FilterOperands: 
6152
    :vartype FilterOperands: ExtensionObject 
6153
    '''
6154 1
    def __init__(self):
6155
        self.FilterOperator = 0
6156
        self.FilterOperands = []
6157
        self._freeze()
6158
    
6159 1
    def to_binary(self):
6160
        packet = []
6161
        packet.append(pack_uatype('UInt32', self.FilterOperator))
6162
        packet.append(struct.pack('<i', len(self.FilterOperands)))
6163
        for fieldname in self.FilterOperands:
6164
            packet.append(extensionobject_to_binary(fieldname))
6165
        return b''.join(packet)
6166
        
6167 1
    @staticmethod
6168
    def from_binary(data):
6169
        obj = ContentFilterElement()
6170
        obj.FilterOperator = unpack_uatype('UInt32', data)
6171
        length = struct.unpack('<i', data.read(4))[0]
6172
        if length != -1:
6173
            for _ in range(0, length):
6174
                obj.FilterOperands.append(extensionobject_from_binary(data))
6175
        return obj
6176
    
6177 1
    def __str__(self):
6178
        return 'ContentFilterElement(' + 'FilterOperator:' + str(self.FilterOperator) + ', '  + \
6179
             'FilterOperands:' + str(self.FilterOperands) + ')'
6180
    
6181 1
    __repr__ = __str__
6182
    
6183 1
class ContentFilter(FrozenClass):
6184
    '''
6185
    :ivar Elements: 
6186
    :vartype Elements: ContentFilterElement 
6187
    '''
6188 1
    def __init__(self):
6189 1
        self.Elements = []
6190 1
        self._freeze()
6191
    
6192 1
    def to_binary(self):
6193 1
        packet = []
6194 1
        packet.append(struct.pack('<i', len(self.Elements)))
6195 1
        for fieldname in self.Elements:
6196
            packet.append(fieldname.to_binary())
6197 1
        return b''.join(packet)
6198
        
6199 1
    @staticmethod
6200
    def from_binary(data):
6201 1
        obj = ContentFilter()
6202 1
        length = struct.unpack('<i', data.read(4))[0]
6203 1
        if length != -1:
6204 1
            for _ in range(0, length):
6205
                obj.Elements.append(ContentFilterElement.from_binary(data))
6206 1
        return obj
6207
    
6208 1
    def __str__(self):
6209
        return 'ContentFilter(' + 'Elements:' + str(self.Elements) + ')'
6210
    
6211 1
    __repr__ = __str__
6212
    
6213 1
class ElementOperand(FrozenClass):
6214
    '''
6215
    :ivar Index: 
6216
    :vartype Index: UInt32 
6217
    '''
6218 1
    def __init__(self):
6219
        self.Index = 0
6220
        self._freeze()
6221
    
6222 1
    def to_binary(self):
6223
        packet = []
6224
        packet.append(pack_uatype('UInt32', self.Index))
6225
        return b''.join(packet)
6226
        
6227 1
    @staticmethod
6228
    def from_binary(data):
6229
        obj = ElementOperand()
6230
        obj.Index = unpack_uatype('UInt32', data)
6231
        return obj
6232
    
6233 1
    def __str__(self):
6234
        return 'ElementOperand(' + 'Index:' + str(self.Index) + ')'
6235
    
6236 1
    __repr__ = __str__
6237
    
6238 1
class LiteralOperand(FrozenClass):
6239
    '''
6240
    :ivar Value: 
6241
    :vartype Value: Variant 
6242
    '''
6243 1
    def __init__(self):
6244
        self.Value = Variant()
6245
        self._freeze()
6246
    
6247 1
    def to_binary(self):
6248
        packet = []
6249
        packet.append(self.Value.to_binary())
6250
        return b''.join(packet)
6251
        
6252 1
    @staticmethod
6253
    def from_binary(data):
6254
        obj = LiteralOperand()
6255
        obj.Value = Variant.from_binary(data)
6256
        return obj
6257
    
6258 1
    def __str__(self):
6259
        return 'LiteralOperand(' + 'Value:' + str(self.Value) + ')'
6260
    
6261 1
    __repr__ = __str__
6262
    
6263 1
class AttributeOperand(FrozenClass):
6264
    '''
6265
    :ivar NodeId: 
6266
    :vartype NodeId: NodeId 
6267
    :ivar Alias: 
6268
    :vartype Alias: String 
6269
    :ivar BrowsePath: 
6270
    :vartype BrowsePath: RelativePath 
6271
    :ivar AttributeId: 
6272
    :vartype AttributeId: UInt32 
6273
    :ivar IndexRange: 
6274
    :vartype IndexRange: String 
6275
    '''
6276 1
    def __init__(self):
6277
        self.NodeId = NodeId()
6278
        self.Alias = ''
6279
        self.BrowsePath = RelativePath()
6280
        self.AttributeId = 0
6281
        self.IndexRange = ''
6282
        self._freeze()
6283
    
6284 1
    def to_binary(self):
6285
        packet = []
6286
        packet.append(self.NodeId.to_binary())
6287
        packet.append(pack_uatype('String', self.Alias))
6288
        packet.append(self.BrowsePath.to_binary())
6289
        packet.append(pack_uatype('UInt32', self.AttributeId))
6290
        packet.append(pack_uatype('String', self.IndexRange))
6291
        return b''.join(packet)
6292
        
6293 1
    @staticmethod
6294
    def from_binary(data):
6295
        obj = AttributeOperand()
6296
        obj.NodeId = NodeId.from_binary(data)
6297
        obj.Alias = unpack_uatype('String', data)
6298
        obj.BrowsePath = RelativePath.from_binary(data)
6299
        obj.AttributeId = unpack_uatype('UInt32', data)
6300
        obj.IndexRange = unpack_uatype('String', data)
6301
        return obj
6302
    
6303 1
    def __str__(self):
6304
        return 'AttributeOperand(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6305
             'Alias:' + str(self.Alias) + ', '  + \
6306
             'BrowsePath:' + str(self.BrowsePath) + ', '  + \
6307
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6308
             'IndexRange:' + str(self.IndexRange) + ')'
6309
    
6310 1
    __repr__ = __str__
6311
    
6312 1
class SimpleAttributeOperand(FrozenClass):
6313
    '''
6314
    :ivar TypeDefinitionId: 
6315
    :vartype TypeDefinitionId: NodeId 
6316
    :ivar BrowsePath: 
6317
    :vartype BrowsePath: QualifiedName 
6318
    :ivar AttributeId: 
6319
    :vartype AttributeId: UInt32 
6320
    :ivar IndexRange: 
6321
    :vartype IndexRange: String 
6322
    '''
6323 1
    def __init__(self):
6324 1
        self.TypeDefinitionId = NodeId()
6325 1
        self.BrowsePath = []
6326 1
        self.AttributeId = 0
6327 1
        self.IndexRange = ''
6328 1
        self._freeze()
6329
    
6330 1
    def to_binary(self):
6331 1
        packet = []
6332 1
        packet.append(self.TypeDefinitionId.to_binary())
6333 1
        packet.append(struct.pack('<i', len(self.BrowsePath)))
6334 1
        for fieldname in self.BrowsePath:
6335 1
            packet.append(fieldname.to_binary())
6336 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
6337 1
        packet.append(pack_uatype('String', self.IndexRange))
6338 1
        return b''.join(packet)
6339
        
6340 1
    @staticmethod
6341
    def from_binary(data):
6342 1
        obj = SimpleAttributeOperand()
6343 1
        obj.TypeDefinitionId = NodeId.from_binary(data)
6344 1
        length = struct.unpack('<i', data.read(4))[0]
6345 1
        if length != -1:
6346 1
            for _ in range(0, length):
6347 1
                obj.BrowsePath.append(QualifiedName.from_binary(data))
6348 1
        obj.AttributeId = unpack_uatype('UInt32', data)
6349 1
        obj.IndexRange = unpack_uatype('String', data)
6350 1
        return obj
6351
    
6352 1
    def __str__(self):
6353
        return 'SimpleAttributeOperand(' + 'TypeDefinitionId:' + str(self.TypeDefinitionId) + ', '  + \
6354
             'BrowsePath:' + str(self.BrowsePath) + ', '  + \
6355
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6356
             'IndexRange:' + str(self.IndexRange) + ')'
6357
    
6358 1
    __repr__ = __str__
6359
    
6360 1
class ContentFilterElementResult(FrozenClass):
6361
    '''
6362
    :ivar StatusCode: 
6363
    :vartype StatusCode: StatusCode 
6364
    :ivar OperandStatusCodes: 
6365
    :vartype OperandStatusCodes: StatusCode 
6366
    :ivar OperandDiagnosticInfos: 
6367
    :vartype OperandDiagnosticInfos: DiagnosticInfo 
6368
    '''
6369 1
    def __init__(self):
6370
        self.StatusCode = StatusCode()
6371
        self.OperandStatusCodes = []
6372
        self.OperandDiagnosticInfos = []
6373
        self._freeze()
6374
    
6375 1
    def to_binary(self):
6376
        packet = []
6377
        packet.append(self.StatusCode.to_binary())
6378
        packet.append(struct.pack('<i', len(self.OperandStatusCodes)))
6379
        for fieldname in self.OperandStatusCodes:
6380
            packet.append(fieldname.to_binary())
6381
        packet.append(struct.pack('<i', len(self.OperandDiagnosticInfos)))
6382
        for fieldname in self.OperandDiagnosticInfos:
6383
            packet.append(fieldname.to_binary())
6384
        return b''.join(packet)
6385
        
6386 1
    @staticmethod
6387
    def from_binary(data):
6388
        obj = ContentFilterElementResult()
6389
        obj.StatusCode = StatusCode.from_binary(data)
6390
        length = struct.unpack('<i', data.read(4))[0]
6391
        if length != -1:
6392
            for _ in range(0, length):
6393
                obj.OperandStatusCodes.append(StatusCode.from_binary(data))
6394
        length = struct.unpack('<i', data.read(4))[0]
6395
        if length != -1:
6396
            for _ in range(0, length):
6397
                obj.OperandDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6398
        return obj
6399
    
6400 1
    def __str__(self):
6401
        return 'ContentFilterElementResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
6402
             'OperandStatusCodes:' + str(self.OperandStatusCodes) + ', '  + \
6403
             'OperandDiagnosticInfos:' + str(self.OperandDiagnosticInfos) + ')'
6404
    
6405 1
    __repr__ = __str__
6406
    
6407 1
class ContentFilterResult(FrozenClass):
6408
    '''
6409
    :ivar ElementResults: 
6410
    :vartype ElementResults: ContentFilterElementResult 
6411
    :ivar ElementDiagnosticInfos: 
6412
    :vartype ElementDiagnosticInfos: DiagnosticInfo 
6413
    '''
6414 1
    def __init__(self):
6415
        self.ElementResults = []
6416
        self.ElementDiagnosticInfos = []
6417
        self._freeze()
6418
    
6419 1
    def to_binary(self):
6420
        packet = []
6421
        packet.append(struct.pack('<i', len(self.ElementResults)))
6422
        for fieldname in self.ElementResults:
6423
            packet.append(fieldname.to_binary())
6424
        packet.append(struct.pack('<i', len(self.ElementDiagnosticInfos)))
6425
        for fieldname in self.ElementDiagnosticInfos:
6426
            packet.append(fieldname.to_binary())
6427
        return b''.join(packet)
6428
        
6429 1
    @staticmethod
6430
    def from_binary(data):
6431
        obj = ContentFilterResult()
6432
        length = struct.unpack('<i', data.read(4))[0]
6433
        if length != -1:
6434
            for _ in range(0, length):
6435
                obj.ElementResults.append(ContentFilterElementResult.from_binary(data))
6436
        length = struct.unpack('<i', data.read(4))[0]
6437
        if length != -1:
6438
            for _ in range(0, length):
6439
                obj.ElementDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6440
        return obj
6441
    
6442 1
    def __str__(self):
6443
        return 'ContentFilterResult(' + 'ElementResults:' + str(self.ElementResults) + ', '  + \
6444
             'ElementDiagnosticInfos:' + str(self.ElementDiagnosticInfos) + ')'
6445
    
6446 1
    __repr__ = __str__
6447
    
6448 1
class ParsingResult(FrozenClass):
6449
    '''
6450
    :ivar StatusCode: 
6451
    :vartype StatusCode: StatusCode 
6452
    :ivar DataStatusCodes: 
6453
    :vartype DataStatusCodes: StatusCode 
6454
    :ivar DataDiagnosticInfos: 
6455
    :vartype DataDiagnosticInfos: DiagnosticInfo 
6456
    '''
6457 1
    def __init__(self):
6458
        self.StatusCode = StatusCode()
6459
        self.DataStatusCodes = []
6460
        self.DataDiagnosticInfos = []
6461
        self._freeze()
6462
    
6463 1
    def to_binary(self):
6464
        packet = []
6465
        packet.append(self.StatusCode.to_binary())
6466
        packet.append(struct.pack('<i', len(self.DataStatusCodes)))
6467
        for fieldname in self.DataStatusCodes:
6468
            packet.append(fieldname.to_binary())
6469
        packet.append(struct.pack('<i', len(self.DataDiagnosticInfos)))
6470
        for fieldname in self.DataDiagnosticInfos:
6471
            packet.append(fieldname.to_binary())
6472
        return b''.join(packet)
6473
        
6474 1
    @staticmethod
6475
    def from_binary(data):
6476
        obj = ParsingResult()
6477
        obj.StatusCode = StatusCode.from_binary(data)
6478
        length = struct.unpack('<i', data.read(4))[0]
6479
        if length != -1:
6480
            for _ in range(0, length):
6481
                obj.DataStatusCodes.append(StatusCode.from_binary(data))
6482
        length = struct.unpack('<i', data.read(4))[0]
6483
        if length != -1:
6484
            for _ in range(0, length):
6485
                obj.DataDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6486
        return obj
6487
    
6488 1
    def __str__(self):
6489
        return 'ParsingResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
6490
             'DataStatusCodes:' + str(self.DataStatusCodes) + ', '  + \
6491
             'DataDiagnosticInfos:' + str(self.DataDiagnosticInfos) + ')'
6492
    
6493 1
    __repr__ = __str__
6494
    
6495 1
class QueryFirstParameters(FrozenClass):
6496
    '''
6497
    :ivar View: 
6498
    :vartype View: ViewDescription 
6499
    :ivar NodeTypes: 
6500
    :vartype NodeTypes: NodeTypeDescription 
6501
    :ivar Filter: 
6502
    :vartype Filter: ContentFilter 
6503
    :ivar MaxDataSetsToReturn: 
6504
    :vartype MaxDataSetsToReturn: UInt32 
6505
    :ivar MaxReferencesToReturn: 
6506
    :vartype MaxReferencesToReturn: UInt32 
6507
    '''
6508 1
    def __init__(self):
6509
        self.View = ViewDescription()
6510
        self.NodeTypes = []
6511
        self.Filter = ContentFilter()
6512
        self.MaxDataSetsToReturn = 0
6513
        self.MaxReferencesToReturn = 0
6514
        self._freeze()
6515
    
6516 1
    def to_binary(self):
6517
        packet = []
6518
        packet.append(self.View.to_binary())
6519
        packet.append(struct.pack('<i', len(self.NodeTypes)))
6520
        for fieldname in self.NodeTypes:
6521
            packet.append(fieldname.to_binary())
6522
        packet.append(self.Filter.to_binary())
6523
        packet.append(pack_uatype('UInt32', self.MaxDataSetsToReturn))
6524
        packet.append(pack_uatype('UInt32', self.MaxReferencesToReturn))
6525
        return b''.join(packet)
6526
        
6527 1
    @staticmethod
6528
    def from_binary(data):
6529
        obj = QueryFirstParameters()
6530
        obj.View = ViewDescription.from_binary(data)
6531
        length = struct.unpack('<i', data.read(4))[0]
6532
        if length != -1:
6533
            for _ in range(0, length):
6534
                obj.NodeTypes.append(NodeTypeDescription.from_binary(data))
6535
        obj.Filter = ContentFilter.from_binary(data)
6536
        obj.MaxDataSetsToReturn = unpack_uatype('UInt32', data)
6537
        obj.MaxReferencesToReturn = unpack_uatype('UInt32', data)
6538
        return obj
6539
    
6540 1
    def __str__(self):
6541
        return 'QueryFirstParameters(' + 'View:' + str(self.View) + ', '  + \
6542
             'NodeTypes:' + str(self.NodeTypes) + ', '  + \
6543
             'Filter:' + str(self.Filter) + ', '  + \
6544
             'MaxDataSetsToReturn:' + str(self.MaxDataSetsToReturn) + ', '  + \
6545
             'MaxReferencesToReturn:' + str(self.MaxReferencesToReturn) + ')'
6546
    
6547 1
    __repr__ = __str__
6548
    
6549 1
class QueryFirstRequest(FrozenClass):
6550
    '''
6551
    :ivar TypeId: 
6552
    :vartype TypeId: NodeId 
6553
    :ivar RequestHeader: 
6554
    :vartype RequestHeader: RequestHeader 
6555
    :ivar Parameters: 
6556
    :vartype Parameters: QueryFirstParameters 
6557
    '''
6558 1
    def __init__(self):
6559
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstRequest_Encoding_DefaultBinary)
6560
        self.RequestHeader = RequestHeader()
6561
        self.Parameters = QueryFirstParameters()
6562
        self._freeze()
6563
    
6564 1
    def to_binary(self):
6565
        packet = []
6566
        packet.append(self.TypeId.to_binary())
6567
        packet.append(self.RequestHeader.to_binary())
6568
        packet.append(self.Parameters.to_binary())
6569
        return b''.join(packet)
6570
        
6571 1
    @staticmethod
6572
    def from_binary(data):
6573
        obj = QueryFirstRequest()
6574
        obj.TypeId = NodeId.from_binary(data)
6575
        obj.RequestHeader = RequestHeader.from_binary(data)
6576
        obj.Parameters = QueryFirstParameters.from_binary(data)
6577
        return obj
6578
    
6579 1
    def __str__(self):
6580
        return 'QueryFirstRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6581
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
6582
             'Parameters:' + str(self.Parameters) + ')'
6583
    
6584 1
    __repr__ = __str__
6585
    
6586 1
class QueryFirstResult(FrozenClass):
6587
    '''
6588
    :ivar QueryDataSets: 
6589
    :vartype QueryDataSets: QueryDataSet 
6590
    :ivar ContinuationPoint: 
6591
    :vartype ContinuationPoint: ByteString 
6592
    :ivar ParsingResults: 
6593
    :vartype ParsingResults: ParsingResult 
6594
    :ivar DiagnosticInfos: 
6595
    :vartype DiagnosticInfos: DiagnosticInfo 
6596
    :ivar FilterResult: 
6597
    :vartype FilterResult: ContentFilterResult 
6598
    '''
6599 1
    def __init__(self):
6600
        self.QueryDataSets = []
6601
        self.ContinuationPoint = b''
6602
        self.ParsingResults = []
6603
        self.DiagnosticInfos = []
6604
        self.FilterResult = ContentFilterResult()
6605
        self._freeze()
6606
    
6607 1
    def to_binary(self):
6608
        packet = []
6609
        packet.append(struct.pack('<i', len(self.QueryDataSets)))
6610
        for fieldname in self.QueryDataSets:
6611
            packet.append(fieldname.to_binary())
6612
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6613
        packet.append(struct.pack('<i', len(self.ParsingResults)))
6614
        for fieldname in self.ParsingResults:
6615
            packet.append(fieldname.to_binary())
6616
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
6617
        for fieldname in self.DiagnosticInfos:
6618
            packet.append(fieldname.to_binary())
6619
        packet.append(self.FilterResult.to_binary())
6620
        return b''.join(packet)
6621
        
6622 1
    @staticmethod
6623
    def from_binary(data):
6624
        obj = QueryFirstResult()
6625
        length = struct.unpack('<i', data.read(4))[0]
6626
        if length != -1:
6627
            for _ in range(0, length):
6628
                obj.QueryDataSets.append(QueryDataSet.from_binary(data))
6629
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6630
        length = struct.unpack('<i', data.read(4))[0]
6631
        if length != -1:
6632
            for _ in range(0, length):
6633
                obj.ParsingResults.append(ParsingResult.from_binary(data))
6634
        length = struct.unpack('<i', data.read(4))[0]
6635
        if length != -1:
6636
            for _ in range(0, length):
6637
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6638
        obj.FilterResult = ContentFilterResult.from_binary(data)
6639
        return obj
6640
    
6641 1
    def __str__(self):
6642
        return 'QueryFirstResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', '  + \
6643
             'ContinuationPoint:' + str(self.ContinuationPoint) + ', '  + \
6644
             'ParsingResults:' + str(self.ParsingResults) + ', '  + \
6645
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ', '  + \
6646
             'FilterResult:' + str(self.FilterResult) + ')'
6647
    
6648 1
    __repr__ = __str__
6649
    
6650 1
class QueryFirstResponse(FrozenClass):
6651
    '''
6652
    :ivar TypeId: 
6653
    :vartype TypeId: NodeId 
6654
    :ivar ResponseHeader: 
6655
    :vartype ResponseHeader: ResponseHeader 
6656
    :ivar Parameters: 
6657
    :vartype Parameters: QueryFirstResult 
6658
    '''
6659 1
    def __init__(self):
6660
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstResponse_Encoding_DefaultBinary)
6661
        self.ResponseHeader = ResponseHeader()
6662
        self.Parameters = QueryFirstResult()
6663
        self._freeze()
6664
    
6665 1
    def to_binary(self):
6666
        packet = []
6667
        packet.append(self.TypeId.to_binary())
6668
        packet.append(self.ResponseHeader.to_binary())
6669
        packet.append(self.Parameters.to_binary())
6670
        return b''.join(packet)
6671
        
6672 1
    @staticmethod
6673
    def from_binary(data):
6674
        obj = QueryFirstResponse()
6675
        obj.TypeId = NodeId.from_binary(data)
6676
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6677
        obj.Parameters = QueryFirstResult.from_binary(data)
6678
        return obj
6679
    
6680 1
    def __str__(self):
6681
        return 'QueryFirstResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6682
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
6683
             'Parameters:' + str(self.Parameters) + ')'
6684
    
6685 1
    __repr__ = __str__
6686
    
6687 1
class QueryNextParameters(FrozenClass):
6688
    '''
6689
    :ivar ReleaseContinuationPoint: 
6690
    :vartype ReleaseContinuationPoint: Boolean 
6691
    :ivar ContinuationPoint: 
6692
    :vartype ContinuationPoint: ByteString 
6693
    '''
6694 1
    def __init__(self):
6695
        self.ReleaseContinuationPoint = True
6696
        self.ContinuationPoint = b''
6697
        self._freeze()
6698
    
6699 1
    def to_binary(self):
6700
        packet = []
6701
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoint))
6702
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6703
        return b''.join(packet)
6704
        
6705 1
    @staticmethod
6706
    def from_binary(data):
6707
        obj = QueryNextParameters()
6708
        obj.ReleaseContinuationPoint = unpack_uatype('Boolean', data)
6709
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6710
        return obj
6711
    
6712 1
    def __str__(self):
6713
        return 'QueryNextParameters(' + 'ReleaseContinuationPoint:' + str(self.ReleaseContinuationPoint) + ', '  + \
6714
             'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
6715
    
6716 1
    __repr__ = __str__
6717
    
6718 1
class QueryNextRequest(FrozenClass):
6719
    '''
6720
    :ivar TypeId: 
6721
    :vartype TypeId: NodeId 
6722
    :ivar RequestHeader: 
6723
    :vartype RequestHeader: RequestHeader 
6724
    :ivar Parameters: 
6725
    :vartype Parameters: QueryNextParameters 
6726
    '''
6727 1
    def __init__(self):
6728
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextRequest_Encoding_DefaultBinary)
6729
        self.RequestHeader = RequestHeader()
6730
        self.Parameters = QueryNextParameters()
6731
        self._freeze()
6732
    
6733 1
    def to_binary(self):
6734
        packet = []
6735
        packet.append(self.TypeId.to_binary())
6736
        packet.append(self.RequestHeader.to_binary())
6737
        packet.append(self.Parameters.to_binary())
6738
        return b''.join(packet)
6739
        
6740 1
    @staticmethod
6741
    def from_binary(data):
6742
        obj = QueryNextRequest()
6743
        obj.TypeId = NodeId.from_binary(data)
6744
        obj.RequestHeader = RequestHeader.from_binary(data)
6745
        obj.Parameters = QueryNextParameters.from_binary(data)
6746
        return obj
6747
    
6748 1
    def __str__(self):
6749
        return 'QueryNextRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6750
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
6751
             'Parameters:' + str(self.Parameters) + ')'
6752
    
6753 1
    __repr__ = __str__
6754
    
6755 1
class QueryNextResult(FrozenClass):
6756
    '''
6757
    :ivar QueryDataSets: 
6758
    :vartype QueryDataSets: QueryDataSet 
6759
    :ivar RevisedContinuationPoint: 
6760
    :vartype RevisedContinuationPoint: ByteString 
6761
    '''
6762 1
    def __init__(self):
6763
        self.QueryDataSets = []
6764
        self.RevisedContinuationPoint = b''
6765
        self._freeze()
6766
    
6767 1
    def to_binary(self):
6768
        packet = []
6769
        packet.append(struct.pack('<i', len(self.QueryDataSets)))
6770
        for fieldname in self.QueryDataSets:
6771
            packet.append(fieldname.to_binary())
6772
        packet.append(pack_uatype('ByteString', self.RevisedContinuationPoint))
6773
        return b''.join(packet)
6774
        
6775 1
    @staticmethod
6776
    def from_binary(data):
6777
        obj = QueryNextResult()
6778
        length = struct.unpack('<i', data.read(4))[0]
6779
        if length != -1:
6780
            for _ in range(0, length):
6781
                obj.QueryDataSets.append(QueryDataSet.from_binary(data))
6782
        obj.RevisedContinuationPoint = unpack_uatype('ByteString', data)
6783
        return obj
6784
    
6785 1
    def __str__(self):
6786
        return 'QueryNextResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', '  + \
6787
             'RevisedContinuationPoint:' + str(self.RevisedContinuationPoint) + ')'
6788
    
6789 1
    __repr__ = __str__
6790
    
6791 1
class QueryNextResponse(FrozenClass):
6792
    '''
6793
    :ivar TypeId: 
6794
    :vartype TypeId: NodeId 
6795
    :ivar ResponseHeader: 
6796
    :vartype ResponseHeader: ResponseHeader 
6797
    :ivar Parameters: 
6798
    :vartype Parameters: QueryNextResult 
6799
    '''
6800 1
    def __init__(self):
6801
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextResponse_Encoding_DefaultBinary)
6802
        self.ResponseHeader = ResponseHeader()
6803
        self.Parameters = QueryNextResult()
6804
        self._freeze()
6805
    
6806 1
    def to_binary(self):
6807
        packet = []
6808
        packet.append(self.TypeId.to_binary())
6809
        packet.append(self.ResponseHeader.to_binary())
6810
        packet.append(self.Parameters.to_binary())
6811
        return b''.join(packet)
6812
        
6813 1
    @staticmethod
6814
    def from_binary(data):
6815
        obj = QueryNextResponse()
6816
        obj.TypeId = NodeId.from_binary(data)
6817
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6818
        obj.Parameters = QueryNextResult.from_binary(data)
6819
        return obj
6820
    
6821 1
    def __str__(self):
6822
        return 'QueryNextResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6823
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
6824
             'Parameters:' + str(self.Parameters) + ')'
6825
    
6826 1
    __repr__ = __str__
6827
    
6828 1
class ReadValueId(FrozenClass):
6829
    '''
6830
    :ivar NodeId: 
6831
    :vartype NodeId: NodeId 
6832
    :ivar AttributeId: 
6833
    :vartype AttributeId: UInt32 
6834
    :ivar IndexRange: 
6835
    :vartype IndexRange: String 
6836
    :ivar DataEncoding: 
6837
    :vartype DataEncoding: QualifiedName 
6838
    '''
6839 1
    def __init__(self):
6840 1
        self.NodeId = NodeId()
6841 1
        self.AttributeId = 0
6842 1
        self.IndexRange = ''
6843 1
        self.DataEncoding = QualifiedName()
6844 1
        self._freeze()
6845
    
6846 1
    def to_binary(self):
6847 1
        packet = []
6848 1
        packet.append(self.NodeId.to_binary())
6849 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
6850 1
        packet.append(pack_uatype('String', self.IndexRange))
6851 1
        packet.append(self.DataEncoding.to_binary())
6852 1
        return b''.join(packet)
6853
        
6854 1
    @staticmethod
6855
    def from_binary(data):
6856 1
        obj = ReadValueId()
6857 1
        obj.NodeId = NodeId.from_binary(data)
6858 1
        obj.AttributeId = unpack_uatype('UInt32', data)
6859 1
        obj.IndexRange = unpack_uatype('String', data)
6860 1
        obj.DataEncoding = QualifiedName.from_binary(data)
6861 1
        return obj
6862
    
6863 1
    def __str__(self):
6864
        return 'ReadValueId(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6865
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6866
             'IndexRange:' + str(self.IndexRange) + ', '  + \
6867
             'DataEncoding:' + str(self.DataEncoding) + ')'
6868
    
6869 1
    __repr__ = __str__
6870
    
6871 1
class ReadParameters(FrozenClass):
6872
    '''
6873
    :ivar MaxAge: 
6874
    :vartype MaxAge: Double 
6875
    :ivar TimestampsToReturn: 
6876
    :vartype TimestampsToReturn: TimestampsToReturn 
6877
    :ivar NodesToRead: 
6878
    :vartype NodesToRead: ReadValueId 
6879
    '''
6880 1
    def __init__(self):
6881 1
        self.MaxAge = 0
6882 1
        self.TimestampsToReturn = 0
6883 1
        self.NodesToRead = []
6884 1
        self._freeze()
6885
    
6886 1
    def to_binary(self):
6887 1
        packet = []
6888 1
        packet.append(pack_uatype('Double', self.MaxAge))
6889 1
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
6890 1
        packet.append(struct.pack('<i', len(self.NodesToRead)))
6891 1
        for fieldname in self.NodesToRead:
6892 1
            packet.append(fieldname.to_binary())
6893 1
        return b''.join(packet)
6894
        
6895 1
    @staticmethod
6896
    def from_binary(data):
6897 1
        obj = ReadParameters()
6898 1
        obj.MaxAge = unpack_uatype('Double', data)
6899 1
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
6900 1
        length = struct.unpack('<i', data.read(4))[0]
6901 1
        if length != -1:
6902 1
            for _ in range(0, length):
6903 1
                obj.NodesToRead.append(ReadValueId.from_binary(data))
6904 1
        return obj
6905
    
6906 1
    def __str__(self):
6907
        return 'ReadParameters(' + 'MaxAge:' + str(self.MaxAge) + ', '  + \
6908
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
6909
             'NodesToRead:' + str(self.NodesToRead) + ')'
6910
    
6911 1
    __repr__ = __str__
6912
    
6913 1
class ReadRequest(FrozenClass):
6914
    '''
6915
    :ivar TypeId: 
6916
    :vartype TypeId: NodeId 
6917
    :ivar RequestHeader: 
6918
    :vartype RequestHeader: RequestHeader 
6919
    :ivar Parameters: 
6920
    :vartype Parameters: ReadParameters 
6921
    '''
6922 1
    def __init__(self):
6923 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadRequest_Encoding_DefaultBinary)
6924 1
        self.RequestHeader = RequestHeader()
6925 1
        self.Parameters = ReadParameters()
6926 1
        self._freeze()
6927
    
6928 1
    def to_binary(self):
6929 1
        packet = []
6930 1
        packet.append(self.TypeId.to_binary())
6931 1
        packet.append(self.RequestHeader.to_binary())
6932 1
        packet.append(self.Parameters.to_binary())
6933 1
        return b''.join(packet)
6934
        
6935 1
    @staticmethod
6936
    def from_binary(data):
6937
        obj = ReadRequest()
6938
        obj.TypeId = NodeId.from_binary(data)
6939
        obj.RequestHeader = RequestHeader.from_binary(data)
6940
        obj.Parameters = ReadParameters.from_binary(data)
6941
        return obj
6942
    
6943 1
    def __str__(self):
6944
        return 'ReadRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6945
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
6946
             'Parameters:' + str(self.Parameters) + ')'
6947
    
6948 1
    __repr__ = __str__
6949
    
6950 1
class ReadResponse(FrozenClass):
6951
    '''
6952
    :ivar TypeId: 
6953
    :vartype TypeId: NodeId 
6954
    :ivar ResponseHeader: 
6955
    :vartype ResponseHeader: ResponseHeader 
6956
    :ivar Results: 
6957
    :vartype Results: DataValue 
6958
    :ivar DiagnosticInfos: 
6959
    :vartype DiagnosticInfos: DiagnosticInfo 
6960
    '''
6961 1
    def __init__(self):
6962 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadResponse_Encoding_DefaultBinary)
6963 1
        self.ResponseHeader = ResponseHeader()
6964 1
        self.Results = []
6965 1
        self.DiagnosticInfos = []
6966 1
        self._freeze()
6967
    
6968 1
    def to_binary(self):
6969 1
        packet = []
6970 1
        packet.append(self.TypeId.to_binary())
6971 1
        packet.append(self.ResponseHeader.to_binary())
6972 1
        packet.append(struct.pack('<i', len(self.Results)))
6973 1
        for fieldname in self.Results:
6974 1
            packet.append(fieldname.to_binary())
6975 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
6976 1
        for fieldname in self.DiagnosticInfos:
6977
            packet.append(fieldname.to_binary())
6978 1
        return b''.join(packet)
6979
        
6980 1
    @staticmethod
6981
    def from_binary(data):
6982 1
        obj = ReadResponse()
6983 1
        obj.TypeId = NodeId.from_binary(data)
6984 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6985 1
        length = struct.unpack('<i', data.read(4))[0]
6986 1
        if length != -1:
6987 1
            for _ in range(0, length):
6988 1
                obj.Results.append(DataValue.from_binary(data))
6989 1
        length = struct.unpack('<i', data.read(4))[0]
6990 1
        if length != -1:
6991 1
            for _ in range(0, length):
6992
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6993 1
        return obj
6994
    
6995 1
    def __str__(self):
6996
        return 'ReadResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6997
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
6998
             'Results:' + str(self.Results) + ', '  + \
6999
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7000
    
7001 1
    __repr__ = __str__
7002
    
7003 1
class HistoryReadValueId(FrozenClass):
7004
    '''
7005
    :ivar NodeId: 
7006
    :vartype NodeId: NodeId 
7007
    :ivar IndexRange: 
7008
    :vartype IndexRange: String 
7009
    :ivar DataEncoding: 
7010
    :vartype DataEncoding: QualifiedName 
7011
    :ivar ContinuationPoint: 
7012
    :vartype ContinuationPoint: ByteString 
7013
    '''
7014 1
    def __init__(self):
7015
        self.NodeId = NodeId()
7016
        self.IndexRange = ''
7017
        self.DataEncoding = QualifiedName()
7018
        self.ContinuationPoint = b''
7019
        self._freeze()
7020
    
7021 1
    def to_binary(self):
7022
        packet = []
7023
        packet.append(self.NodeId.to_binary())
7024
        packet.append(pack_uatype('String', self.IndexRange))
7025
        packet.append(self.DataEncoding.to_binary())
7026
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
7027
        return b''.join(packet)
7028
        
7029 1
    @staticmethod
7030
    def from_binary(data):
7031
        obj = HistoryReadValueId()
7032
        obj.NodeId = NodeId.from_binary(data)
7033
        obj.IndexRange = unpack_uatype('String', data)
7034
        obj.DataEncoding = QualifiedName.from_binary(data)
7035
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
7036
        return obj
7037
    
7038 1
    def __str__(self):
7039
        return 'HistoryReadValueId(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7040
             'IndexRange:' + str(self.IndexRange) + ', '  + \
7041
             'DataEncoding:' + str(self.DataEncoding) + ', '  + \
7042
             'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
7043
    
7044 1
    __repr__ = __str__
7045
    
7046 1
class HistoryReadResult(FrozenClass):
7047
    '''
7048
    :ivar StatusCode: 
7049
    :vartype StatusCode: StatusCode 
7050
    :ivar ContinuationPoint: 
7051
    :vartype ContinuationPoint: ByteString 
7052
    :ivar HistoryData: 
7053
    :vartype HistoryData: ExtensionObject 
7054
    '''
7055 1
    def __init__(self):
7056
        self.StatusCode = StatusCode()
7057
        self.ContinuationPoint = b''
7058
        self.HistoryData = None
7059
        self._freeze()
7060
    
7061 1
    def to_binary(self):
7062
        packet = []
7063
        packet.append(self.StatusCode.to_binary())
7064
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
7065
        packet.append(extensionobject_to_binary(self.HistoryData))
7066
        return b''.join(packet)
7067
        
7068 1
    @staticmethod
7069
    def from_binary(data):
7070
        obj = HistoryReadResult()
7071
        obj.StatusCode = StatusCode.from_binary(data)
7072
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
7073
        obj.HistoryData = extensionobject_from_binary(data)
7074
        return obj
7075
    
7076 1
    def __str__(self):
7077
        return 'HistoryReadResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
7078
             'ContinuationPoint:' + str(self.ContinuationPoint) + ', '  + \
7079
             'HistoryData:' + str(self.HistoryData) + ')'
7080
    
7081 1
    __repr__ = __str__
7082
    
7083 1
class HistoryReadDetails(FrozenClass):
7084
    '''
7085
    '''
7086 1
    def __init__(self):
7087
        self._freeze()
7088
    
7089 1
    def to_binary(self):
7090
        packet = []
7091
        return b''.join(packet)
7092
        
7093 1
    @staticmethod
7094
    def from_binary(data):
7095
        obj = HistoryReadDetails()
7096
        return obj
7097
    
7098 1
    def __str__(self):
7099
        return 'HistoryReadDetails(' +  + ')'
7100
    
7101 1
    __repr__ = __str__
7102
    
7103 1
class ReadEventDetails(FrozenClass):
7104
    '''
7105
    :ivar NumValuesPerNode: 
7106
    :vartype NumValuesPerNode: UInt32 
7107
    :ivar StartTime: 
7108
    :vartype StartTime: DateTime 
7109
    :ivar EndTime: 
7110
    :vartype EndTime: DateTime 
7111
    :ivar Filter: 
7112
    :vartype Filter: EventFilter 
7113
    '''
7114 1
    def __init__(self):
7115
        self.NumValuesPerNode = 0
7116
        self.StartTime = datetime.now()
7117
        self.EndTime = datetime.now()
7118
        self.Filter = EventFilter()
7119
        self._freeze()
7120
    
7121 1
    def to_binary(self):
7122
        packet = []
7123
        packet.append(pack_uatype('UInt32', self.NumValuesPerNode))
7124
        packet.append(pack_uatype('DateTime', self.StartTime))
7125
        packet.append(pack_uatype('DateTime', self.EndTime))
7126
        packet.append(self.Filter.to_binary())
7127
        return b''.join(packet)
7128
        
7129 1
    @staticmethod
7130
    def from_binary(data):
7131
        obj = ReadEventDetails()
7132
        obj.NumValuesPerNode = unpack_uatype('UInt32', data)
7133
        obj.StartTime = unpack_uatype('DateTime', data)
7134
        obj.EndTime = unpack_uatype('DateTime', data)
7135
        obj.Filter = EventFilter.from_binary(data)
7136
        return obj
7137
    
7138 1
    def __str__(self):
7139
        return 'ReadEventDetails(' + 'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', '  + \
7140
             'StartTime:' + str(self.StartTime) + ', '  + \
7141
             'EndTime:' + str(self.EndTime) + ', '  + \
7142
             'Filter:' + str(self.Filter) + ')'
7143
    
7144 1
    __repr__ = __str__
7145
    
7146 1
class ReadRawModifiedDetails(FrozenClass):
7147
    '''
7148
    :ivar IsReadModified: 
7149
    :vartype IsReadModified: Boolean 
7150
    :ivar StartTime: 
7151
    :vartype StartTime: DateTime 
7152
    :ivar EndTime: 
7153
    :vartype EndTime: DateTime 
7154
    :ivar NumValuesPerNode: 
7155
    :vartype NumValuesPerNode: UInt32 
7156
    :ivar ReturnBounds: 
7157
    :vartype ReturnBounds: Boolean 
7158
    '''
7159 1
    def __init__(self):
7160
        self.IsReadModified = True
7161
        self.StartTime = datetime.now()
7162
        self.EndTime = datetime.now()
7163
        self.NumValuesPerNode = 0
7164
        self.ReturnBounds = True
7165
        self._freeze()
7166
    
7167 1
    def to_binary(self):
7168
        packet = []
7169
        packet.append(pack_uatype('Boolean', self.IsReadModified))
7170
        packet.append(pack_uatype('DateTime', self.StartTime))
7171
        packet.append(pack_uatype('DateTime', self.EndTime))
7172
        packet.append(pack_uatype('UInt32', self.NumValuesPerNode))
7173
        packet.append(pack_uatype('Boolean', self.ReturnBounds))
7174
        return b''.join(packet)
7175
        
7176 1
    @staticmethod
7177
    def from_binary(data):
7178
        obj = ReadRawModifiedDetails()
7179
        obj.IsReadModified = unpack_uatype('Boolean', data)
7180
        obj.StartTime = unpack_uatype('DateTime', data)
7181
        obj.EndTime = unpack_uatype('DateTime', data)
7182
        obj.NumValuesPerNode = unpack_uatype('UInt32', data)
7183
        obj.ReturnBounds = unpack_uatype('Boolean', data)
7184
        return obj
7185
    
7186 1
    def __str__(self):
7187
        return 'ReadRawModifiedDetails(' + 'IsReadModified:' + str(self.IsReadModified) + ', '  + \
7188
             'StartTime:' + str(self.StartTime) + ', '  + \
7189
             'EndTime:' + str(self.EndTime) + ', '  + \
7190
             'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', '  + \
7191
             'ReturnBounds:' + str(self.ReturnBounds) + ')'
7192
    
7193 1
    __repr__ = __str__
7194
    
7195 1
class ReadProcessedDetails(FrozenClass):
7196
    '''
7197
    :ivar StartTime: 
7198
    :vartype StartTime: DateTime 
7199
    :ivar EndTime: 
7200
    :vartype EndTime: DateTime 
7201
    :ivar ProcessingInterval: 
7202
    :vartype ProcessingInterval: Double 
7203
    :ivar AggregateType: 
7204
    :vartype AggregateType: NodeId 
7205
    :ivar AggregateConfiguration: 
7206
    :vartype AggregateConfiguration: AggregateConfiguration 
7207
    '''
7208 1
    def __init__(self):
7209
        self.StartTime = datetime.now()
7210
        self.EndTime = datetime.now()
7211
        self.ProcessingInterval = 0
7212
        self.AggregateType = []
7213
        self.AggregateConfiguration = AggregateConfiguration()
7214
        self._freeze()
7215
    
7216 1
    def to_binary(self):
7217
        packet = []
7218
        packet.append(pack_uatype('DateTime', self.StartTime))
7219
        packet.append(pack_uatype('DateTime', self.EndTime))
7220
        packet.append(pack_uatype('Double', self.ProcessingInterval))
7221
        packet.append(struct.pack('<i', len(self.AggregateType)))
7222
        for fieldname in self.AggregateType:
7223
            packet.append(fieldname.to_binary())
7224
        packet.append(self.AggregateConfiguration.to_binary())
7225
        return b''.join(packet)
7226
        
7227 1
    @staticmethod
7228
    def from_binary(data):
7229
        obj = ReadProcessedDetails()
7230
        obj.StartTime = unpack_uatype('DateTime', data)
7231
        obj.EndTime = unpack_uatype('DateTime', data)
7232
        obj.ProcessingInterval = unpack_uatype('Double', data)
7233
        length = struct.unpack('<i', data.read(4))[0]
7234
        if length != -1:
7235
            for _ in range(0, length):
7236
                obj.AggregateType.append(NodeId.from_binary(data))
7237
        obj.AggregateConfiguration = AggregateConfiguration.from_binary(data)
7238
        return obj
7239
    
7240 1
    def __str__(self):
7241
        return 'ReadProcessedDetails(' + 'StartTime:' + str(self.StartTime) + ', '  + \
7242
             'EndTime:' + str(self.EndTime) + ', '  + \
7243
             'ProcessingInterval:' + str(self.ProcessingInterval) + ', '  + \
7244
             'AggregateType:' + str(self.AggregateType) + ', '  + \
7245
             'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
7246
    
7247 1
    __repr__ = __str__
7248
    
7249 1
class ReadAtTimeDetails(FrozenClass):
7250
    '''
7251
    :ivar ReqTimes: 
7252
    :vartype ReqTimes: DateTime 
7253
    :ivar UseSimpleBounds: 
7254
    :vartype UseSimpleBounds: Boolean 
7255
    '''
7256 1
    def __init__(self):
7257
        self.ReqTimes = []
7258
        self.UseSimpleBounds = True
7259
        self._freeze()
7260
    
7261 1
    def to_binary(self):
7262
        packet = []
7263
        packet.append(struct.pack('<i', len(self.ReqTimes)))
7264
        for fieldname in self.ReqTimes:
7265
            packet.append(pack_uatype('DateTime', fieldname))
7266
        packet.append(pack_uatype('Boolean', self.UseSimpleBounds))
7267
        return b''.join(packet)
7268
        
7269 1
    @staticmethod
7270
    def from_binary(data):
7271
        obj = ReadAtTimeDetails()
7272
        obj.ReqTimes = unpack_uatype_array('DateTime', data)
7273
        obj.UseSimpleBounds = unpack_uatype('Boolean', data)
7274
        return obj
7275
    
7276 1
    def __str__(self):
7277
        return 'ReadAtTimeDetails(' + 'ReqTimes:' + str(self.ReqTimes) + ', '  + \
7278
             'UseSimpleBounds:' + str(self.UseSimpleBounds) + ')'
7279
    
7280 1
    __repr__ = __str__
7281
    
7282 1
class HistoryData(FrozenClass):
7283
    '''
7284
    :ivar DataValues: 
7285
    :vartype DataValues: DataValue 
7286
    '''
7287 1
    def __init__(self):
7288
        self.DataValues = []
7289
        self._freeze()
7290
    
7291 1
    def to_binary(self):
7292
        packet = []
7293
        packet.append(struct.pack('<i', len(self.DataValues)))
7294
        for fieldname in self.DataValues:
7295
            packet.append(fieldname.to_binary())
7296
        return b''.join(packet)
7297
        
7298 1
    @staticmethod
7299
    def from_binary(data):
7300
        obj = HistoryData()
7301
        length = struct.unpack('<i', data.read(4))[0]
7302
        if length != -1:
7303
            for _ in range(0, length):
7304
                obj.DataValues.append(DataValue.from_binary(data))
7305
        return obj
7306
    
7307 1
    def __str__(self):
7308
        return 'HistoryData(' + 'DataValues:' + str(self.DataValues) + ')'
7309
    
7310 1
    __repr__ = __str__
7311
    
7312 1
class ModificationInfo(FrozenClass):
7313
    '''
7314
    :ivar ModificationTime: 
7315
    :vartype ModificationTime: DateTime 
7316
    :ivar UpdateType: 
7317
    :vartype UpdateType: HistoryUpdateType 
7318
    :ivar UserName: 
7319
    :vartype UserName: String 
7320
    '''
7321 1
    def __init__(self):
7322
        self.ModificationTime = datetime.now()
7323
        self.UpdateType = 0
7324
        self.UserName = ''
7325
        self._freeze()
7326
    
7327 1
    def to_binary(self):
7328
        packet = []
7329
        packet.append(pack_uatype('DateTime', self.ModificationTime))
7330
        packet.append(pack_uatype('UInt32', self.UpdateType))
7331
        packet.append(pack_uatype('String', self.UserName))
7332
        return b''.join(packet)
7333
        
7334 1
    @staticmethod
7335
    def from_binary(data):
7336
        obj = ModificationInfo()
7337
        obj.ModificationTime = unpack_uatype('DateTime', data)
7338
        obj.UpdateType = unpack_uatype('UInt32', data)
7339
        obj.UserName = unpack_uatype('String', data)
7340
        return obj
7341
    
7342 1
    def __str__(self):
7343
        return 'ModificationInfo(' + 'ModificationTime:' + str(self.ModificationTime) + ', '  + \
7344
             'UpdateType:' + str(self.UpdateType) + ', '  + \
7345
             'UserName:' + str(self.UserName) + ')'
7346
    
7347 1
    __repr__ = __str__
7348
    
7349 1
class HistoryModifiedData(FrozenClass):
7350
    '''
7351
    :ivar DataValues: 
7352
    :vartype DataValues: DataValue 
7353
    :ivar ModificationInfos: 
7354
    :vartype ModificationInfos: ModificationInfo 
7355
    '''
7356 1
    def __init__(self):
7357
        self.DataValues = []
7358
        self.ModificationInfos = []
7359
        self._freeze()
7360
    
7361 1
    def to_binary(self):
7362
        packet = []
7363
        packet.append(struct.pack('<i', len(self.DataValues)))
7364
        for fieldname in self.DataValues:
7365
            packet.append(fieldname.to_binary())
7366
        packet.append(struct.pack('<i', len(self.ModificationInfos)))
7367
        for fieldname in self.ModificationInfos:
7368
            packet.append(fieldname.to_binary())
7369
        return b''.join(packet)
7370
        
7371 1
    @staticmethod
7372
    def from_binary(data):
7373
        obj = HistoryModifiedData()
7374
        length = struct.unpack('<i', data.read(4))[0]
7375
        if length != -1:
7376
            for _ in range(0, length):
7377
                obj.DataValues.append(DataValue.from_binary(data))
7378
        length = struct.unpack('<i', data.read(4))[0]
7379
        if length != -1:
7380
            for _ in range(0, length):
7381
                obj.ModificationInfos.append(ModificationInfo.from_binary(data))
7382
        return obj
7383
    
7384 1
    def __str__(self):
7385
        return 'HistoryModifiedData(' + 'DataValues:' + str(self.DataValues) + ', '  + \
7386
             'ModificationInfos:' + str(self.ModificationInfos) + ')'
7387
    
7388 1
    __repr__ = __str__
7389
    
7390 1
class HistoryEvent(FrozenClass):
7391
    '''
7392
    :ivar Events: 
7393
    :vartype Events: HistoryEventFieldList 
7394
    '''
7395 1
    def __init__(self):
7396
        self.Events = []
7397
        self._freeze()
7398
    
7399 1
    def to_binary(self):
7400
        packet = []
7401
        packet.append(struct.pack('<i', len(self.Events)))
7402
        for fieldname in self.Events:
7403
            packet.append(fieldname.to_binary())
7404
        return b''.join(packet)
7405
        
7406 1
    @staticmethod
7407
    def from_binary(data):
7408
        obj = HistoryEvent()
7409
        length = struct.unpack('<i', data.read(4))[0]
7410
        if length != -1:
7411
            for _ in range(0, length):
7412
                obj.Events.append(HistoryEventFieldList.from_binary(data))
7413
        return obj
7414
    
7415 1
    def __str__(self):
7416
        return 'HistoryEvent(' + 'Events:' + str(self.Events) + ')'
7417
    
7418 1
    __repr__ = __str__
7419
    
7420 1
class HistoryReadParameters(FrozenClass):
7421
    '''
7422
    :ivar HistoryReadDetails: 
7423
    :vartype HistoryReadDetails: ExtensionObject 
7424
    :ivar TimestampsToReturn: 
7425
    :vartype TimestampsToReturn: TimestampsToReturn 
7426
    :ivar ReleaseContinuationPoints: 
7427
    :vartype ReleaseContinuationPoints: Boolean 
7428
    :ivar NodesToRead: 
7429
    :vartype NodesToRead: HistoryReadValueId 
7430
    '''
7431 1
    def __init__(self):
7432
        self.HistoryReadDetails = None
7433
        self.TimestampsToReturn = 0
7434
        self.ReleaseContinuationPoints = True
7435
        self.NodesToRead = []
7436
        self._freeze()
7437
    
7438 1
    def to_binary(self):
7439
        packet = []
7440
        packet.append(extensionobject_to_binary(self.HistoryReadDetails))
7441
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
7442
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoints))
7443
        packet.append(struct.pack('<i', len(self.NodesToRead)))
7444
        for fieldname in self.NodesToRead:
7445
            packet.append(fieldname.to_binary())
7446
        return b''.join(packet)
7447
        
7448 1
    @staticmethod
7449
    def from_binary(data):
7450
        obj = HistoryReadParameters()
7451
        obj.HistoryReadDetails = extensionobject_from_binary(data)
7452
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
7453
        obj.ReleaseContinuationPoints = unpack_uatype('Boolean', data)
7454
        length = struct.unpack('<i', data.read(4))[0]
7455
        if length != -1:
7456
            for _ in range(0, length):
7457
                obj.NodesToRead.append(HistoryReadValueId.from_binary(data))
7458
        return obj
7459
    
7460 1
    def __str__(self):
7461
        return 'HistoryReadParameters(' + 'HistoryReadDetails:' + str(self.HistoryReadDetails) + ', '  + \
7462
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
7463
             'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', '  + \
7464
             'NodesToRead:' + str(self.NodesToRead) + ')'
7465
    
7466 1
    __repr__ = __str__
7467
    
7468 1
class HistoryReadRequest(FrozenClass):
7469
    '''
7470
    :ivar TypeId: 
7471
    :vartype TypeId: NodeId 
7472
    :ivar RequestHeader: 
7473
    :vartype RequestHeader: RequestHeader 
7474
    :ivar Parameters: 
7475
    :vartype Parameters: HistoryReadParameters 
7476
    '''
7477 1
    def __init__(self):
7478
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadRequest_Encoding_DefaultBinary)
7479
        self.RequestHeader = RequestHeader()
7480
        self.Parameters = HistoryReadParameters()
7481
        self._freeze()
7482
    
7483 1
    def to_binary(self):
7484
        packet = []
7485
        packet.append(self.TypeId.to_binary())
7486
        packet.append(self.RequestHeader.to_binary())
7487
        packet.append(self.Parameters.to_binary())
7488
        return b''.join(packet)
7489
        
7490 1
    @staticmethod
7491
    def from_binary(data):
7492
        obj = HistoryReadRequest()
7493
        obj.TypeId = NodeId.from_binary(data)
7494
        obj.RequestHeader = RequestHeader.from_binary(data)
7495
        obj.Parameters = HistoryReadParameters.from_binary(data)
7496
        return obj
7497
    
7498 1
    def __str__(self):
7499
        return 'HistoryReadRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7500
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
7501
             'Parameters:' + str(self.Parameters) + ')'
7502
    
7503 1
    __repr__ = __str__
7504
    
7505 1
class HistoryReadResponse(FrozenClass):
7506
    '''
7507
    :ivar TypeId: 
7508
    :vartype TypeId: NodeId 
7509
    :ivar ResponseHeader: 
7510
    :vartype ResponseHeader: ResponseHeader 
7511
    :ivar Results: 
7512
    :vartype Results: HistoryReadResult 
7513
    :ivar DiagnosticInfos: 
7514
    :vartype DiagnosticInfos: DiagnosticInfo 
7515
    '''
7516 1
    def __init__(self):
7517
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadResponse_Encoding_DefaultBinary)
7518
        self.ResponseHeader = ResponseHeader()
7519
        self.Results = []
7520
        self.DiagnosticInfos = []
7521
        self._freeze()
7522
    
7523 1
    def to_binary(self):
7524
        packet = []
7525
        packet.append(self.TypeId.to_binary())
7526
        packet.append(self.ResponseHeader.to_binary())
7527
        packet.append(struct.pack('<i', len(self.Results)))
7528
        for fieldname in self.Results:
7529
            packet.append(fieldname.to_binary())
7530
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7531
        for fieldname in self.DiagnosticInfos:
7532
            packet.append(fieldname.to_binary())
7533
        return b''.join(packet)
7534
        
7535 1
    @staticmethod
7536
    def from_binary(data):
7537
        obj = HistoryReadResponse()
7538
        obj.TypeId = NodeId.from_binary(data)
7539
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7540
        length = struct.unpack('<i', data.read(4))[0]
7541
        if length != -1:
7542
            for _ in range(0, length):
7543
                obj.Results.append(HistoryReadResult.from_binary(data))
7544
        length = struct.unpack('<i', data.read(4))[0]
7545
        if length != -1:
7546
            for _ in range(0, length):
7547
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7548
        return obj
7549
    
7550 1
    def __str__(self):
7551
        return 'HistoryReadResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7552
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
7553
             'Results:' + str(self.Results) + ', '  + \
7554
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7555
    
7556 1
    __repr__ = __str__
7557
    
7558 1
class WriteValue(FrozenClass):
7559
    '''
7560
    :ivar NodeId: 
7561
    :vartype NodeId: NodeId 
7562
    :ivar AttributeId: 
7563
    :vartype AttributeId: UInt32 
7564
    :ivar IndexRange: 
7565
    :vartype IndexRange: String 
7566
    :ivar Value: 
7567
    :vartype Value: DataValue 
7568
    '''
7569 1
    def __init__(self):
7570 1
        self.NodeId = NodeId()
7571 1
        self.AttributeId = 0
7572 1
        self.IndexRange = ''
7573 1
        self.Value = DataValue()
7574 1
        self._freeze()
7575
    
7576 1
    def to_binary(self):
7577 1
        packet = []
7578 1
        packet.append(self.NodeId.to_binary())
7579 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
7580 1
        packet.append(pack_uatype('String', self.IndexRange))
7581 1
        packet.append(self.Value.to_binary())
7582 1
        return b''.join(packet)
7583
        
7584 1
    @staticmethod
7585
    def from_binary(data):
7586 1
        obj = WriteValue()
7587 1
        obj.NodeId = NodeId.from_binary(data)
7588 1
        obj.AttributeId = unpack_uatype('UInt32', data)
7589 1
        obj.IndexRange = unpack_uatype('String', data)
7590 1
        obj.Value = DataValue.from_binary(data)
7591 1
        return obj
7592
    
7593 1
    def __str__(self):
7594
        return 'WriteValue(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7595
             'AttributeId:' + str(self.AttributeId) + ', '  + \
7596
             'IndexRange:' + str(self.IndexRange) + ', '  + \
7597
             'Value:' + str(self.Value) + ')'
7598
    
7599 1
    __repr__ = __str__
7600
    
7601 1
class WriteParameters(FrozenClass):
7602
    '''
7603
    :ivar NodesToWrite: 
7604
    :vartype NodesToWrite: WriteValue 
7605
    '''
7606 1
    def __init__(self):
7607 1
        self.NodesToWrite = []
7608 1
        self._freeze()
7609
    
7610 1
    def to_binary(self):
7611 1
        packet = []
7612 1
        packet.append(struct.pack('<i', len(self.NodesToWrite)))
7613 1
        for fieldname in self.NodesToWrite:
7614 1
            packet.append(fieldname.to_binary())
7615 1
        return b''.join(packet)
7616
        
7617 1
    @staticmethod
7618
    def from_binary(data):
7619 1
        obj = WriteParameters()
7620 1
        length = struct.unpack('<i', data.read(4))[0]
7621 1
        if length != -1:
7622 1
            for _ in range(0, length):
7623 1
                obj.NodesToWrite.append(WriteValue.from_binary(data))
7624 1
        return obj
7625
    
7626 1
    def __str__(self):
7627
        return 'WriteParameters(' + 'NodesToWrite:' + str(self.NodesToWrite) + ')'
7628
    
7629 1
    __repr__ = __str__
7630
    
7631 1
class WriteRequest(FrozenClass):
7632
    '''
7633
    :ivar TypeId: 
7634
    :vartype TypeId: NodeId 
7635
    :ivar RequestHeader: 
7636
    :vartype RequestHeader: RequestHeader 
7637
    :ivar Parameters: 
7638
    :vartype Parameters: WriteParameters 
7639
    '''
7640 1
    def __init__(self):
7641 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteRequest_Encoding_DefaultBinary)
7642 1
        self.RequestHeader = RequestHeader()
7643 1
        self.Parameters = WriteParameters()
7644 1
        self._freeze()
7645
    
7646 1
    def to_binary(self):
7647 1
        packet = []
7648 1
        packet.append(self.TypeId.to_binary())
7649 1
        packet.append(self.RequestHeader.to_binary())
7650 1
        packet.append(self.Parameters.to_binary())
7651 1
        return b''.join(packet)
7652
        
7653 1
    @staticmethod
7654
    def from_binary(data):
7655
        obj = WriteRequest()
7656
        obj.TypeId = NodeId.from_binary(data)
7657
        obj.RequestHeader = RequestHeader.from_binary(data)
7658
        obj.Parameters = WriteParameters.from_binary(data)
7659
        return obj
7660
    
7661 1
    def __str__(self):
7662
        return 'WriteRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7663
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
7664
             'Parameters:' + str(self.Parameters) + ')'
7665
    
7666 1
    __repr__ = __str__
7667
    
7668 1
class WriteResponse(FrozenClass):
7669
    '''
7670
    :ivar TypeId: 
7671
    :vartype TypeId: NodeId 
7672
    :ivar ResponseHeader: 
7673
    :vartype ResponseHeader: ResponseHeader 
7674
    :ivar Results: 
7675
    :vartype Results: StatusCode 
7676
    :ivar DiagnosticInfos: 
7677
    :vartype DiagnosticInfos: DiagnosticInfo 
7678
    '''
7679 1
    def __init__(self):
7680 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteResponse_Encoding_DefaultBinary)
7681 1
        self.ResponseHeader = ResponseHeader()
7682 1
        self.Results = []
7683 1
        self.DiagnosticInfos = []
7684 1
        self._freeze()
7685
    
7686 1
    def to_binary(self):
7687 1
        packet = []
7688 1
        packet.append(self.TypeId.to_binary())
7689 1
        packet.append(self.ResponseHeader.to_binary())
7690 1
        packet.append(struct.pack('<i', len(self.Results)))
7691 1
        for fieldname in self.Results:
7692 1
            packet.append(fieldname.to_binary())
7693 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7694 1
        for fieldname in self.DiagnosticInfos:
7695
            packet.append(fieldname.to_binary())
7696 1
        return b''.join(packet)
7697
        
7698 1
    @staticmethod
7699
    def from_binary(data):
7700 1
        obj = WriteResponse()
7701 1
        obj.TypeId = NodeId.from_binary(data)
7702 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7703 1
        length = struct.unpack('<i', data.read(4))[0]
7704 1
        if length != -1:
7705 1
            for _ in range(0, length):
7706 1
                obj.Results.append(StatusCode.from_binary(data))
7707 1
        length = struct.unpack('<i', data.read(4))[0]
7708 1
        if length != -1:
7709 1
            for _ in range(0, length):
7710
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7711 1
        return obj
7712
    
7713 1
    def __str__(self):
7714
        return 'WriteResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7715
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
7716
             'Results:' + str(self.Results) + ', '  + \
7717
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7718
    
7719 1
    __repr__ = __str__
7720
    
7721 1
class HistoryUpdateDetails(FrozenClass):
7722
    '''
7723
    :ivar NodeId: 
7724
    :vartype NodeId: NodeId 
7725
    '''
7726 1
    def __init__(self):
7727
        self.NodeId = NodeId()
7728
        self._freeze()
7729
    
7730 1
    def to_binary(self):
7731
        packet = []
7732
        packet.append(self.NodeId.to_binary())
7733
        return b''.join(packet)
7734
        
7735 1
    @staticmethod
7736
    def from_binary(data):
7737
        obj = HistoryUpdateDetails()
7738
        obj.NodeId = NodeId.from_binary(data)
7739
        return obj
7740
    
7741 1
    def __str__(self):
7742
        return 'HistoryUpdateDetails(' + 'NodeId:' + str(self.NodeId) + ')'
7743
    
7744 1
    __repr__ = __str__
7745
    
7746 1
class UpdateDataDetails(FrozenClass):
7747
    '''
7748
    :ivar NodeId: 
7749
    :vartype NodeId: NodeId 
7750
    :ivar PerformInsertReplace: 
7751
    :vartype PerformInsertReplace: PerformUpdateType 
7752
    :ivar UpdateValues: 
7753
    :vartype UpdateValues: DataValue 
7754
    '''
7755 1
    def __init__(self):
7756
        self.NodeId = NodeId()
7757
        self.PerformInsertReplace = 0
7758
        self.UpdateValues = []
7759
        self._freeze()
7760
    
7761 1
    def to_binary(self):
7762
        packet = []
7763
        packet.append(self.NodeId.to_binary())
7764
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7765
        packet.append(struct.pack('<i', len(self.UpdateValues)))
7766
        for fieldname in self.UpdateValues:
7767
            packet.append(fieldname.to_binary())
7768
        return b''.join(packet)
7769
        
7770 1
    @staticmethod
7771
    def from_binary(data):
7772
        obj = UpdateDataDetails()
7773
        obj.NodeId = NodeId.from_binary(data)
7774
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7775
        length = struct.unpack('<i', data.read(4))[0]
7776
        if length != -1:
7777
            for _ in range(0, length):
7778
                obj.UpdateValues.append(DataValue.from_binary(data))
7779
        return obj
7780
    
7781 1
    def __str__(self):
7782
        return 'UpdateDataDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7783
             'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', '  + \
7784
             'UpdateValues:' + str(self.UpdateValues) + ')'
7785
    
7786 1
    __repr__ = __str__
7787
    
7788 1
class UpdateStructureDataDetails(FrozenClass):
7789
    '''
7790
    :ivar NodeId: 
7791
    :vartype NodeId: NodeId 
7792
    :ivar PerformInsertReplace: 
7793
    :vartype PerformInsertReplace: PerformUpdateType 
7794
    :ivar UpdateValues: 
7795
    :vartype UpdateValues: DataValue 
7796
    '''
7797 1
    def __init__(self):
7798
        self.NodeId = NodeId()
7799
        self.PerformInsertReplace = 0
7800
        self.UpdateValues = []
7801
        self._freeze()
7802
    
7803 1
    def to_binary(self):
7804
        packet = []
7805
        packet.append(self.NodeId.to_binary())
7806
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7807
        packet.append(struct.pack('<i', len(self.UpdateValues)))
7808
        for fieldname in self.UpdateValues:
7809
            packet.append(fieldname.to_binary())
7810
        return b''.join(packet)
7811
        
7812 1
    @staticmethod
7813
    def from_binary(data):
7814
        obj = UpdateStructureDataDetails()
7815
        obj.NodeId = NodeId.from_binary(data)
7816
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7817
        length = struct.unpack('<i', data.read(4))[0]
7818
        if length != -1:
7819
            for _ in range(0, length):
7820
                obj.UpdateValues.append(DataValue.from_binary(data))
7821
        return obj
7822
    
7823 1
    def __str__(self):
7824
        return 'UpdateStructureDataDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7825
             'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', '  + \
7826
             'UpdateValues:' + str(self.UpdateValues) + ')'
7827
    
7828 1
    __repr__ = __str__
7829
    
7830 1
class UpdateEventDetails(FrozenClass):
7831
    '''
7832
    :ivar NodeId: 
7833
    :vartype NodeId: NodeId 
7834
    :ivar PerformInsertReplace: 
7835
    :vartype PerformInsertReplace: PerformUpdateType 
7836
    :ivar Filter: 
7837
    :vartype Filter: EventFilter 
7838
    :ivar EventData: 
7839
    :vartype EventData: HistoryEventFieldList 
7840
    '''
7841 1
    def __init__(self):
7842
        self.NodeId = NodeId()
7843
        self.PerformInsertReplace = 0
7844
        self.Filter = EventFilter()
7845
        self.EventData = []
7846
        self._freeze()
7847
    
7848 1
    def to_binary(self):
7849
        packet = []
7850
        packet.append(self.NodeId.to_binary())
7851
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7852
        packet.append(self.Filter.to_binary())
7853
        packet.append(struct.pack('<i', len(self.EventData)))
7854
        for fieldname in self.EventData:
7855
            packet.append(fieldname.to_binary())
7856
        return b''.join(packet)
7857
        
7858 1
    @staticmethod
7859
    def from_binary(data):
7860
        obj = UpdateEventDetails()
7861
        obj.NodeId = NodeId.from_binary(data)
7862
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7863
        obj.Filter = EventFilter.from_binary(data)
7864
        length = struct.unpack('<i', data.read(4))[0]
7865
        if length != -1:
7866
            for _ in range(0, length):
7867
                obj.EventData.append(HistoryEventFieldList.from_binary(data))
7868
        return obj
7869
    
7870 1
    def __str__(self):
7871
        return 'UpdateEventDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7872
             'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', '  + \
7873
             'Filter:' + str(self.Filter) + ', '  + \
7874
             'EventData:' + str(self.EventData) + ')'
7875
    
7876 1
    __repr__ = __str__
7877
    
7878 1
class DeleteRawModifiedDetails(FrozenClass):
7879
    '''
7880
    :ivar NodeId: 
7881
    :vartype NodeId: NodeId 
7882
    :ivar IsDeleteModified: 
7883
    :vartype IsDeleteModified: Boolean 
7884
    :ivar StartTime: 
7885
    :vartype StartTime: DateTime 
7886
    :ivar EndTime: 
7887
    :vartype EndTime: DateTime 
7888
    '''
7889 1
    def __init__(self):
7890
        self.NodeId = NodeId()
7891
        self.IsDeleteModified = True
7892
        self.StartTime = datetime.now()
7893
        self.EndTime = datetime.now()
7894
        self._freeze()
7895
    
7896 1
    def to_binary(self):
7897
        packet = []
7898
        packet.append(self.NodeId.to_binary())
7899
        packet.append(pack_uatype('Boolean', self.IsDeleteModified))
7900
        packet.append(pack_uatype('DateTime', self.StartTime))
7901
        packet.append(pack_uatype('DateTime', self.EndTime))
7902
        return b''.join(packet)
7903
        
7904 1
    @staticmethod
7905
    def from_binary(data):
7906
        obj = DeleteRawModifiedDetails()
7907
        obj.NodeId = NodeId.from_binary(data)
7908
        obj.IsDeleteModified = unpack_uatype('Boolean', data)
7909
        obj.StartTime = unpack_uatype('DateTime', data)
7910
        obj.EndTime = unpack_uatype('DateTime', data)
7911
        return obj
7912
    
7913 1
    def __str__(self):
7914
        return 'DeleteRawModifiedDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7915
             'IsDeleteModified:' + str(self.IsDeleteModified) + ', '  + \
7916
             'StartTime:' + str(self.StartTime) + ', '  + \
7917
             'EndTime:' + str(self.EndTime) + ')'
7918
    
7919 1
    __repr__ = __str__
7920
    
7921 1
class DeleteAtTimeDetails(FrozenClass):
7922
    '''
7923
    :ivar NodeId: 
7924
    :vartype NodeId: NodeId 
7925
    :ivar ReqTimes: 
7926
    :vartype ReqTimes: DateTime 
7927
    '''
7928 1
    def __init__(self):
7929
        self.NodeId = NodeId()
7930
        self.ReqTimes = []
7931
        self._freeze()
7932
    
7933 1
    def to_binary(self):
7934
        packet = []
7935
        packet.append(self.NodeId.to_binary())
7936
        packet.append(struct.pack('<i', len(self.ReqTimes)))
7937
        for fieldname in self.ReqTimes:
7938
            packet.append(pack_uatype('DateTime', fieldname))
7939
        return b''.join(packet)
7940
        
7941 1
    @staticmethod
7942
    def from_binary(data):
7943
        obj = DeleteAtTimeDetails()
7944
        obj.NodeId = NodeId.from_binary(data)
7945
        obj.ReqTimes = unpack_uatype_array('DateTime', data)
7946
        return obj
7947
    
7948 1
    def __str__(self):
7949
        return 'DeleteAtTimeDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7950
             'ReqTimes:' + str(self.ReqTimes) + ')'
7951
    
7952 1
    __repr__ = __str__
7953
    
7954 1
class DeleteEventDetails(FrozenClass):
7955
    '''
7956
    :ivar NodeId: 
7957
    :vartype NodeId: NodeId 
7958
    :ivar EventIds: 
7959
    :vartype EventIds: ByteString 
7960
    '''
7961 1
    def __init__(self):
7962
        self.NodeId = NodeId()
7963
        self.EventIds = []
7964
        self._freeze()
7965
    
7966 1
    def to_binary(self):
7967
        packet = []
7968
        packet.append(self.NodeId.to_binary())
7969
        packet.append(struct.pack('<i', len(self.EventIds)))
7970
        for fieldname in self.EventIds:
7971
            packet.append(pack_uatype('ByteString', fieldname))
7972
        return b''.join(packet)
7973
        
7974 1
    @staticmethod
7975
    def from_binary(data):
7976
        obj = DeleteEventDetails()
7977
        obj.NodeId = NodeId.from_binary(data)
7978
        obj.EventIds = unpack_uatype_array('ByteString', data)
7979
        return obj
7980
    
7981 1
    def __str__(self):
7982
        return 'DeleteEventDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7983
             'EventIds:' + str(self.EventIds) + ')'
7984
    
7985 1
    __repr__ = __str__
7986
    
7987 1
class HistoryUpdateResult(FrozenClass):
7988
    '''
7989
    :ivar StatusCode: 
7990
    :vartype StatusCode: StatusCode 
7991
    :ivar OperationResults: 
7992
    :vartype OperationResults: StatusCode 
7993
    :ivar DiagnosticInfos: 
7994
    :vartype DiagnosticInfos: DiagnosticInfo 
7995
    '''
7996 1
    def __init__(self):
7997
        self.StatusCode = StatusCode()
7998
        self.OperationResults = []
7999
        self.DiagnosticInfos = []
8000
        self._freeze()
8001
    
8002 1
    def to_binary(self):
8003
        packet = []
8004
        packet.append(self.StatusCode.to_binary())
8005
        packet.append(struct.pack('<i', len(self.OperationResults)))
8006
        for fieldname in self.OperationResults:
8007
            packet.append(fieldname.to_binary())
8008
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8009
        for fieldname in self.DiagnosticInfos:
8010
            packet.append(fieldname.to_binary())
8011
        return b''.join(packet)
8012
        
8013 1
    @staticmethod
8014
    def from_binary(data):
8015
        obj = HistoryUpdateResult()
8016
        obj.StatusCode = StatusCode.from_binary(data)
8017
        length = struct.unpack('<i', data.read(4))[0]
8018
        if length != -1:
8019
            for _ in range(0, length):
8020
                obj.OperationResults.append(StatusCode.from_binary(data))
8021
        length = struct.unpack('<i', data.read(4))[0]
8022
        if length != -1:
8023
            for _ in range(0, length):
8024
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8025
        return obj
8026
    
8027 1
    def __str__(self):
8028
        return 'HistoryUpdateResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8029
             'OperationResults:' + str(self.OperationResults) + ', '  + \
8030
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8031
    
8032 1
    __repr__ = __str__
8033
    
8034 1
class HistoryUpdateParameters(FrozenClass):
8035
    '''
8036
    :ivar HistoryUpdateDetails: 
8037
    :vartype HistoryUpdateDetails: ExtensionObject 
8038
    '''
8039 1
    def __init__(self):
8040
        self.HistoryUpdateDetails = []
8041
        self._freeze()
8042
    
8043 1
    def to_binary(self):
8044
        packet = []
8045
        packet.append(struct.pack('<i', len(self.HistoryUpdateDetails)))
8046
        for fieldname in self.HistoryUpdateDetails:
8047
            packet.append(extensionobject_to_binary(fieldname))
8048
        return b''.join(packet)
8049
        
8050 1
    @staticmethod
8051
    def from_binary(data):
8052
        obj = HistoryUpdateParameters()
8053
        length = struct.unpack('<i', data.read(4))[0]
8054
        if length != -1:
8055
            for _ in range(0, length):
8056
                obj.HistoryUpdateDetails.append(extensionobject_from_binary(data))
8057
        return obj
8058
    
8059 1
    def __str__(self):
8060
        return 'HistoryUpdateParameters(' + 'HistoryUpdateDetails:' + str(self.HistoryUpdateDetails) + ')'
8061
    
8062 1
    __repr__ = __str__
8063
    
8064 1
class HistoryUpdateRequest(FrozenClass):
8065
    '''
8066
    :ivar TypeId: 
8067
    :vartype TypeId: NodeId 
8068
    :ivar RequestHeader: 
8069
    :vartype RequestHeader: RequestHeader 
8070
    :ivar Parameters: 
8071
    :vartype Parameters: HistoryUpdateParameters 
8072
    '''
8073 1
    def __init__(self):
8074
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary)
8075
        self.RequestHeader = RequestHeader()
8076
        self.Parameters = HistoryUpdateParameters()
8077
        self._freeze()
8078
    
8079 1
    def to_binary(self):
8080
        packet = []
8081
        packet.append(self.TypeId.to_binary())
8082
        packet.append(self.RequestHeader.to_binary())
8083
        packet.append(self.Parameters.to_binary())
8084
        return b''.join(packet)
8085
        
8086 1
    @staticmethod
8087
    def from_binary(data):
8088
        obj = HistoryUpdateRequest()
8089
        obj.TypeId = NodeId.from_binary(data)
8090
        obj.RequestHeader = RequestHeader.from_binary(data)
8091
        obj.Parameters = HistoryUpdateParameters.from_binary(data)
8092
        return obj
8093
    
8094 1
    def __str__(self):
8095
        return 'HistoryUpdateRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8096
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
8097
             'Parameters:' + str(self.Parameters) + ')'
8098
    
8099 1
    __repr__ = __str__
8100
    
8101 1
class HistoryUpdateResponse(FrozenClass):
8102
    '''
8103
    :ivar TypeId: 
8104
    :vartype TypeId: NodeId 
8105
    :ivar ResponseHeader: 
8106
    :vartype ResponseHeader: ResponseHeader 
8107
    :ivar Results: 
8108
    :vartype Results: HistoryUpdateResult 
8109
    :ivar DiagnosticInfos: 
8110
    :vartype DiagnosticInfos: DiagnosticInfo 
8111
    '''
8112 1
    def __init__(self):
8113
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary)
8114
        self.ResponseHeader = ResponseHeader()
8115
        self.Results = []
8116
        self.DiagnosticInfos = []
8117
        self._freeze()
8118
    
8119 1
    def to_binary(self):
8120
        packet = []
8121
        packet.append(self.TypeId.to_binary())
8122
        packet.append(self.ResponseHeader.to_binary())
8123
        packet.append(struct.pack('<i', len(self.Results)))
8124
        for fieldname in self.Results:
8125
            packet.append(fieldname.to_binary())
8126
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8127
        for fieldname in self.DiagnosticInfos:
8128
            packet.append(fieldname.to_binary())
8129
        return b''.join(packet)
8130
        
8131 1
    @staticmethod
8132
    def from_binary(data):
8133
        obj = HistoryUpdateResponse()
8134
        obj.TypeId = NodeId.from_binary(data)
8135
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8136
        length = struct.unpack('<i', data.read(4))[0]
8137
        if length != -1:
8138
            for _ in range(0, length):
8139
                obj.Results.append(HistoryUpdateResult.from_binary(data))
8140
        length = struct.unpack('<i', data.read(4))[0]
8141
        if length != -1:
8142
            for _ in range(0, length):
8143
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8144
        return obj
8145
    
8146 1
    def __str__(self):
8147
        return 'HistoryUpdateResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8148
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
8149
             'Results:' + str(self.Results) + ', '  + \
8150
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8151
    
8152 1
    __repr__ = __str__
8153
    
8154 1
class CallMethodRequest(FrozenClass):
8155
    '''
8156
    :ivar ObjectId: 
8157
    :vartype ObjectId: NodeId 
8158
    :ivar MethodId: 
8159
    :vartype MethodId: NodeId 
8160
    :ivar InputArguments: 
8161
    :vartype InputArguments: Variant 
8162
    '''
8163 1
    def __init__(self):
8164 1
        self.ObjectId = NodeId()
8165 1
        self.MethodId = NodeId()
8166 1
        self.InputArguments = []
8167 1
        self._freeze()
8168
    
8169 1
    def to_binary(self):
8170 1
        packet = []
8171 1
        packet.append(self.ObjectId.to_binary())
8172 1
        packet.append(self.MethodId.to_binary())
8173 1
        packet.append(struct.pack('<i', len(self.InputArguments)))
8174 1
        for fieldname in self.InputArguments:
8175 1
            packet.append(fieldname.to_binary())
8176 1
        return b''.join(packet)
8177
        
8178 1
    @staticmethod
8179
    def from_binary(data):
8180 1
        obj = CallMethodRequest()
8181 1
        obj.ObjectId = NodeId.from_binary(data)
8182 1
        obj.MethodId = NodeId.from_binary(data)
8183 1
        length = struct.unpack('<i', data.read(4))[0]
8184 1
        if length != -1:
8185 1
            for _ in range(0, length):
8186 1
                obj.InputArguments.append(Variant.from_binary(data))
8187 1
        return obj
8188
    
8189 1
    def __str__(self):
8190 1
        return 'CallMethodRequest(' + 'ObjectId:' + str(self.ObjectId) + ', '  + \
8191
             'MethodId:' + str(self.MethodId) + ', '  + \
8192
             'InputArguments:' + str(self.InputArguments) + ')'
8193
    
8194 1
    __repr__ = __str__
8195
    
8196 1
class CallMethodResult(FrozenClass):
8197
    '''
8198
    :ivar StatusCode: 
8199
    :vartype StatusCode: StatusCode 
8200
    :ivar InputArgumentResults: 
8201
    :vartype InputArgumentResults: StatusCode 
8202
    :ivar InputArgumentDiagnosticInfos: 
8203
    :vartype InputArgumentDiagnosticInfos: DiagnosticInfo 
8204
    :ivar OutputArguments: 
8205
    :vartype OutputArguments: Variant 
8206
    '''
8207 1
    def __init__(self):
8208 1
        self.StatusCode = StatusCode()
8209 1
        self.InputArgumentResults = []
8210 1
        self.InputArgumentDiagnosticInfos = []
8211 1
        self.OutputArguments = []
8212 1
        self._freeze()
8213
    
8214 1
    def to_binary(self):
8215 1
        packet = []
8216 1
        packet.append(self.StatusCode.to_binary())
8217 1
        packet.append(struct.pack('<i', len(self.InputArgumentResults)))
8218 1
        for fieldname in self.InputArgumentResults:
8219 1
            packet.append(fieldname.to_binary())
8220 1
        packet.append(struct.pack('<i', len(self.InputArgumentDiagnosticInfos)))
8221 1
        for fieldname in self.InputArgumentDiagnosticInfos:
8222
            packet.append(fieldname.to_binary())
8223 1
        packet.append(struct.pack('<i', len(self.OutputArguments)))
8224 1
        for fieldname in self.OutputArguments:
8225 1
            packet.append(fieldname.to_binary())
8226 1
        return b''.join(packet)
8227
        
8228 1
    @staticmethod
8229
    def from_binary(data):
8230 1
        obj = CallMethodResult()
8231 1
        obj.StatusCode = StatusCode.from_binary(data)
8232 1
        length = struct.unpack('<i', data.read(4))[0]
8233 1
        if length != -1:
8234 1
            for _ in range(0, length):
8235 1
                obj.InputArgumentResults.append(StatusCode.from_binary(data))
8236 1
        length = struct.unpack('<i', data.read(4))[0]
8237 1
        if length != -1:
8238 1
            for _ in range(0, length):
8239
                obj.InputArgumentDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8240 1
        length = struct.unpack('<i', data.read(4))[0]
8241 1
        if length != -1:
8242 1
            for _ in range(0, length):
8243 1
                obj.OutputArguments.append(Variant.from_binary(data))
8244 1
        return obj
8245
    
8246 1
    def __str__(self):
8247
        return 'CallMethodResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8248
             'InputArgumentResults:' + str(self.InputArgumentResults) + ', '  + \
8249
             'InputArgumentDiagnosticInfos:' + str(self.InputArgumentDiagnosticInfos) + ', '  + \
8250
             'OutputArguments:' + str(self.OutputArguments) + ')'
8251
    
8252 1
    __repr__ = __str__
8253
    
8254 1
class CallParameters(FrozenClass):
8255
    '''
8256
    :ivar MethodsToCall: 
8257
    :vartype MethodsToCall: CallMethodRequest 
8258
    '''
8259 1
    def __init__(self):
8260 1
        self.MethodsToCall = []
8261 1
        self._freeze()
8262
    
8263 1
    def to_binary(self):
8264 1
        packet = []
8265 1
        packet.append(struct.pack('<i', len(self.MethodsToCall)))
8266 1
        for fieldname in self.MethodsToCall:
8267 1
            packet.append(fieldname.to_binary())
8268 1
        return b''.join(packet)
8269
        
8270 1
    @staticmethod
8271
    def from_binary(data):
8272 1
        obj = CallParameters()
8273 1
        length = struct.unpack('<i', data.read(4))[0]
8274 1
        if length != -1:
8275 1
            for _ in range(0, length):
8276 1
                obj.MethodsToCall.append(CallMethodRequest.from_binary(data))
8277 1
        return obj
8278
    
8279 1
    def __str__(self):
8280
        return 'CallParameters(' + 'MethodsToCall:' + str(self.MethodsToCall) + ')'
8281
    
8282 1
    __repr__ = __str__
8283
    
8284 1
class CallRequest(FrozenClass):
8285
    '''
8286
    :ivar TypeId: 
8287
    :vartype TypeId: NodeId 
8288
    :ivar RequestHeader: 
8289
    :vartype RequestHeader: RequestHeader 
8290
    :ivar Parameters: 
8291
    :vartype Parameters: CallParameters 
8292
    '''
8293 1
    def __init__(self):
8294 1
        self.TypeId = FourByteNodeId(ObjectIds.CallRequest_Encoding_DefaultBinary)
8295 1
        self.RequestHeader = RequestHeader()
8296 1
        self.Parameters = CallParameters()
8297 1
        self._freeze()
8298
    
8299 1
    def to_binary(self):
8300 1
        packet = []
8301 1
        packet.append(self.TypeId.to_binary())
8302 1
        packet.append(self.RequestHeader.to_binary())
8303 1
        packet.append(self.Parameters.to_binary())
8304 1
        return b''.join(packet)
8305
        
8306 1
    @staticmethod
8307
    def from_binary(data):
8308
        obj = CallRequest()
8309
        obj.TypeId = NodeId.from_binary(data)
8310
        obj.RequestHeader = RequestHeader.from_binary(data)
8311
        obj.Parameters = CallParameters.from_binary(data)
8312
        return obj
8313
    
8314 1
    def __str__(self):
8315
        return 'CallRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8316
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
8317
             'Parameters:' + str(self.Parameters) + ')'
8318
    
8319 1
    __repr__ = __str__
8320
    
8321 1
class CallResponse(FrozenClass):
8322
    '''
8323
    :ivar TypeId: 
8324
    :vartype TypeId: NodeId 
8325
    :ivar ResponseHeader: 
8326
    :vartype ResponseHeader: ResponseHeader 
8327
    :ivar Results: 
8328
    :vartype Results: CallMethodResult 
8329
    :ivar DiagnosticInfos: 
8330
    :vartype DiagnosticInfos: DiagnosticInfo 
8331
    '''
8332 1
    def __init__(self):
8333 1
        self.TypeId = FourByteNodeId(ObjectIds.CallResponse_Encoding_DefaultBinary)
8334 1
        self.ResponseHeader = ResponseHeader()
8335 1
        self.Results = []
8336 1
        self.DiagnosticInfos = []
8337 1
        self._freeze()
8338
    
8339 1
    def to_binary(self):
8340 1
        packet = []
8341 1
        packet.append(self.TypeId.to_binary())
8342 1
        packet.append(self.ResponseHeader.to_binary())
8343 1
        packet.append(struct.pack('<i', len(self.Results)))
8344 1
        for fieldname in self.Results:
8345 1
            packet.append(fieldname.to_binary())
8346 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8347 1
        for fieldname in self.DiagnosticInfos:
8348
            packet.append(fieldname.to_binary())
8349 1
        return b''.join(packet)
8350
        
8351 1
    @staticmethod
8352
    def from_binary(data):
8353 1
        obj = CallResponse()
8354 1
        obj.TypeId = NodeId.from_binary(data)
8355 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8356 1
        length = struct.unpack('<i', data.read(4))[0]
8357 1
        if length != -1:
8358 1
            for _ in range(0, length):
8359 1
                obj.Results.append(CallMethodResult.from_binary(data))
8360 1
        length = struct.unpack('<i', data.read(4))[0]
8361 1
        if length != -1:
8362 1
            for _ in range(0, length):
8363
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8364 1
        return obj
8365
    
8366 1
    def __str__(self):
8367
        return 'CallResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8368
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
8369
             'Results:' + str(self.Results) + ', '  + \
8370
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8371
    
8372 1
    __repr__ = __str__
8373
    
8374 1
class MonitoringFilter(FrozenClass):
8375
    '''
8376
    '''
8377 1
    def __init__(self):
8378
        self._freeze()
8379
    
8380 1
    def to_binary(self):
8381
        packet = []
8382
        return b''.join(packet)
8383
        
8384 1
    @staticmethod
8385
    def from_binary(data):
8386
        obj = MonitoringFilter()
8387
        return obj
8388
    
8389 1
    def __str__(self):
8390
        return 'MonitoringFilter(' +  + ')'
8391
    
8392 1
    __repr__ = __str__
8393
    
8394 1
class DataChangeFilter(FrozenClass):
8395
    '''
8396
    :ivar Trigger: 
8397
    :vartype Trigger: DataChangeTrigger 
8398
    :ivar DeadbandType: 
8399
    :vartype DeadbandType: UInt32 
8400
    :ivar DeadbandValue: 
8401
    :vartype DeadbandValue: Double 
8402
    '''
8403 1
    def __init__(self):
8404
        self.Trigger = 0
8405
        self.DeadbandType = 0
8406
        self.DeadbandValue = 0
8407
        self._freeze()
8408
    
8409 1
    def to_binary(self):
8410
        packet = []
8411
        packet.append(pack_uatype('UInt32', self.Trigger))
8412
        packet.append(pack_uatype('UInt32', self.DeadbandType))
8413
        packet.append(pack_uatype('Double', self.DeadbandValue))
8414
        return b''.join(packet)
8415
        
8416 1
    @staticmethod
8417
    def from_binary(data):
8418
        obj = DataChangeFilter()
8419
        obj.Trigger = unpack_uatype('UInt32', data)
8420
        obj.DeadbandType = unpack_uatype('UInt32', data)
8421
        obj.DeadbandValue = unpack_uatype('Double', data)
8422
        return obj
8423
    
8424 1
    def __str__(self):
8425
        return 'DataChangeFilter(' + 'Trigger:' + str(self.Trigger) + ', '  + \
8426
             'DeadbandType:' + str(self.DeadbandType) + ', '  + \
8427
             'DeadbandValue:' + str(self.DeadbandValue) + ')'
8428
    
8429 1
    __repr__ = __str__
8430
    
8431 1
class EventFilter(FrozenClass):
8432
    '''
8433
    :ivar SelectClauses: 
8434
    :vartype SelectClauses: SimpleAttributeOperand 
8435
    :ivar WhereClause: 
8436
    :vartype WhereClause: ContentFilter 
8437
    '''
8438 1
    def __init__(self):
8439 1
        self.SelectClauses = []
8440 1
        self.WhereClause = ContentFilter()
8441 1
        self._freeze()
8442
    
8443 1
    def to_binary(self):
8444 1
        packet = []
8445 1
        packet.append(struct.pack('<i', len(self.SelectClauses)))
8446 1
        for fieldname in self.SelectClauses:
8447 1
            packet.append(fieldname.to_binary())
8448 1
        packet.append(self.WhereClause.to_binary())
8449 1
        return b''.join(packet)
8450
        
8451 1
    @staticmethod
8452
    def from_binary(data):
8453 1
        obj = EventFilter()
8454 1
        length = struct.unpack('<i', data.read(4))[0]
8455 1
        if length != -1:
8456 1
            for _ in range(0, length):
8457 1
                obj.SelectClauses.append(SimpleAttributeOperand.from_binary(data))
8458 1
        obj.WhereClause = ContentFilter.from_binary(data)
8459 1
        return obj
8460
    
8461 1
    def __str__(self):
8462
        return 'EventFilter(' + 'SelectClauses:' + str(self.SelectClauses) + ', '  + \
8463
             'WhereClause:' + str(self.WhereClause) + ')'
8464
    
8465 1
    __repr__ = __str__
8466
    
8467 1
class AggregateConfiguration(FrozenClass):
8468
    '''
8469
    :ivar UseServerCapabilitiesDefaults: 
8470
    :vartype UseServerCapabilitiesDefaults: Boolean 
8471
    :ivar TreatUncertainAsBad: 
8472
    :vartype TreatUncertainAsBad: Boolean 
8473
    :ivar PercentDataBad: 
8474
    :vartype PercentDataBad: Byte 
8475
    :ivar PercentDataGood: 
8476
    :vartype PercentDataGood: Byte 
8477
    :ivar UseSlopedExtrapolation: 
8478
    :vartype UseSlopedExtrapolation: Boolean 
8479
    '''
8480 1
    def __init__(self):
8481
        self.UseServerCapabilitiesDefaults = True
8482
        self.TreatUncertainAsBad = True
8483
        self.PercentDataBad = 0
8484
        self.PercentDataGood = 0
8485
        self.UseSlopedExtrapolation = True
8486
        self._freeze()
8487
    
8488 1
    def to_binary(self):
8489
        packet = []
8490
        packet.append(pack_uatype('Boolean', self.UseServerCapabilitiesDefaults))
8491
        packet.append(pack_uatype('Boolean', self.TreatUncertainAsBad))
8492
        packet.append(pack_uatype('Byte', self.PercentDataBad))
8493
        packet.append(pack_uatype('Byte', self.PercentDataGood))
8494
        packet.append(pack_uatype('Boolean', self.UseSlopedExtrapolation))
8495
        return b''.join(packet)
8496
        
8497 1
    @staticmethod
8498
    def from_binary(data):
8499
        obj = AggregateConfiguration()
8500
        obj.UseServerCapabilitiesDefaults = unpack_uatype('Boolean', data)
8501
        obj.TreatUncertainAsBad = unpack_uatype('Boolean', data)
8502
        obj.PercentDataBad = unpack_uatype('Byte', data)
8503
        obj.PercentDataGood = unpack_uatype('Byte', data)
8504
        obj.UseSlopedExtrapolation = unpack_uatype('Boolean', data)
8505
        return obj
8506
    
8507 1
    def __str__(self):
8508
        return 'AggregateConfiguration(' + 'UseServerCapabilitiesDefaults:' + str(self.UseServerCapabilitiesDefaults) + ', '  + \
8509
             'TreatUncertainAsBad:' + str(self.TreatUncertainAsBad) + ', '  + \
8510
             'PercentDataBad:' + str(self.PercentDataBad) + ', '  + \
8511
             'PercentDataGood:' + str(self.PercentDataGood) + ', '  + \
8512
             'UseSlopedExtrapolation:' + str(self.UseSlopedExtrapolation) + ')'
8513
    
8514 1
    __repr__ = __str__
8515
    
8516 1
class AggregateFilter(FrozenClass):
8517
    '''
8518
    :ivar StartTime: 
8519
    :vartype StartTime: DateTime 
8520
    :ivar AggregateType: 
8521
    :vartype AggregateType: NodeId 
8522
    :ivar ProcessingInterval: 
8523
    :vartype ProcessingInterval: Double 
8524
    :ivar AggregateConfiguration: 
8525
    :vartype AggregateConfiguration: AggregateConfiguration 
8526
    '''
8527 1
    def __init__(self):
8528
        self.StartTime = datetime.now()
8529
        self.AggregateType = NodeId()
8530
        self.ProcessingInterval = 0
8531
        self.AggregateConfiguration = AggregateConfiguration()
8532
        self._freeze()
8533
    
8534 1
    def to_binary(self):
8535
        packet = []
8536
        packet.append(pack_uatype('DateTime', self.StartTime))
8537
        packet.append(self.AggregateType.to_binary())
8538
        packet.append(pack_uatype('Double', self.ProcessingInterval))
8539
        packet.append(self.AggregateConfiguration.to_binary())
8540
        return b''.join(packet)
8541
        
8542 1
    @staticmethod
8543
    def from_binary(data):
8544
        obj = AggregateFilter()
8545
        obj.StartTime = unpack_uatype('DateTime', data)
8546
        obj.AggregateType = NodeId.from_binary(data)
8547
        obj.ProcessingInterval = unpack_uatype('Double', data)
8548
        obj.AggregateConfiguration = AggregateConfiguration.from_binary(data)
8549
        return obj
8550
    
8551 1
    def __str__(self):
8552
        return 'AggregateFilter(' + 'StartTime:' + str(self.StartTime) + ', '  + \
8553
             'AggregateType:' + str(self.AggregateType) + ', '  + \
8554
             'ProcessingInterval:' + str(self.ProcessingInterval) + ', '  + \
8555
             'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
8556
    
8557 1
    __repr__ = __str__
8558
    
8559 1
class MonitoringFilterResult(FrozenClass):
8560
    '''
8561
    '''
8562 1
    def __init__(self):
8563
        self._freeze()
8564
    
8565 1
    def to_binary(self):
8566
        packet = []
8567
        return b''.join(packet)
8568
        
8569 1
    @staticmethod
8570
    def from_binary(data):
8571
        obj = MonitoringFilterResult()
8572
        return obj
8573
    
8574 1
    def __str__(self):
8575
        return 'MonitoringFilterResult(' +  + ')'
8576
    
8577 1
    __repr__ = __str__
8578
    
8579 1
class EventFilterResult(FrozenClass):
8580
    '''
8581
    :ivar SelectClauseResults: 
8582
    :vartype SelectClauseResults: StatusCode 
8583
    :ivar SelectClauseDiagnosticInfos: 
8584
    :vartype SelectClauseDiagnosticInfos: DiagnosticInfo 
8585
    :ivar WhereClauseResult: 
8586
    :vartype WhereClauseResult: ContentFilterResult 
8587
    '''
8588 1
    def __init__(self):
8589
        self.SelectClauseResults = []
8590
        self.SelectClauseDiagnosticInfos = []
8591
        self.WhereClauseResult = ContentFilterResult()
8592
        self._freeze()
8593
    
8594 1
    def to_binary(self):
8595
        packet = []
8596
        packet.append(struct.pack('<i', len(self.SelectClauseResults)))
8597
        for fieldname in self.SelectClauseResults:
8598
            packet.append(fieldname.to_binary())
8599
        packet.append(struct.pack('<i', len(self.SelectClauseDiagnosticInfos)))
8600
        for fieldname in self.SelectClauseDiagnosticInfos:
8601
            packet.append(fieldname.to_binary())
8602
        packet.append(self.WhereClauseResult.to_binary())
8603
        return b''.join(packet)
8604
        
8605 1
    @staticmethod
8606
    def from_binary(data):
8607
        obj = EventFilterResult()
8608
        length = struct.unpack('<i', data.read(4))[0]
8609
        if length != -1:
8610
            for _ in range(0, length):
8611
                obj.SelectClauseResults.append(StatusCode.from_binary(data))
8612
        length = struct.unpack('<i', data.read(4))[0]
8613
        if length != -1:
8614
            for _ in range(0, length):
8615
                obj.SelectClauseDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8616
        obj.WhereClauseResult = ContentFilterResult.from_binary(data)
8617
        return obj
8618
    
8619 1
    def __str__(self):
8620
        return 'EventFilterResult(' + 'SelectClauseResults:' + str(self.SelectClauseResults) + ', '  + \
8621
             'SelectClauseDiagnosticInfos:' + str(self.SelectClauseDiagnosticInfos) + ', '  + \
8622
             'WhereClauseResult:' + str(self.WhereClauseResult) + ')'
8623
    
8624 1
    __repr__ = __str__
8625
    
8626 1
class AggregateFilterResult(FrozenClass):
8627
    '''
8628
    :ivar RevisedStartTime: 
8629
    :vartype RevisedStartTime: DateTime 
8630
    :ivar RevisedProcessingInterval: 
8631
    :vartype RevisedProcessingInterval: Double 
8632
    :ivar RevisedAggregateConfiguration: 
8633
    :vartype RevisedAggregateConfiguration: AggregateConfiguration 
8634
    '''
8635 1
    def __init__(self):
8636
        self.RevisedStartTime = datetime.now()
8637
        self.RevisedProcessingInterval = 0
8638
        self.RevisedAggregateConfiguration = AggregateConfiguration()
8639
        self._freeze()
8640
    
8641 1
    def to_binary(self):
8642
        packet = []
8643
        packet.append(pack_uatype('DateTime', self.RevisedStartTime))
8644
        packet.append(pack_uatype('Double', self.RevisedProcessingInterval))
8645
        packet.append(self.RevisedAggregateConfiguration.to_binary())
8646
        return b''.join(packet)
8647
        
8648 1
    @staticmethod
8649
    def from_binary(data):
8650
        obj = AggregateFilterResult()
8651
        obj.RevisedStartTime = unpack_uatype('DateTime', data)
8652
        obj.RevisedProcessingInterval = unpack_uatype('Double', data)
8653
        obj.RevisedAggregateConfiguration = AggregateConfiguration.from_binary(data)
8654
        return obj
8655
    
8656 1
    def __str__(self):
8657
        return 'AggregateFilterResult(' + 'RevisedStartTime:' + str(self.RevisedStartTime) + ', '  + \
8658
             'RevisedProcessingInterval:' + str(self.RevisedProcessingInterval) + ', '  + \
8659
             'RevisedAggregateConfiguration:' + str(self.RevisedAggregateConfiguration) + ')'
8660
    
8661 1
    __repr__ = __str__
8662
    
8663 1
class MonitoringParameters(FrozenClass):
8664
    '''
8665
    :ivar ClientHandle: 
8666
    :vartype ClientHandle: UInt32 
8667
    :ivar SamplingInterval: 
8668
    :vartype SamplingInterval: Double 
8669
    :ivar Filter: 
8670
    :vartype Filter: ExtensionObject 
8671
    :ivar QueueSize: 
8672
    :vartype QueueSize: UInt32 
8673
    :ivar DiscardOldest: 
8674
    :vartype DiscardOldest: Boolean 
8675
    '''
8676 1
    def __init__(self):
8677 1
        self.ClientHandle = 0
8678 1
        self.SamplingInterval = 0
8679 1
        self.Filter = None
8680 1
        self.QueueSize = 0
8681 1
        self.DiscardOldest = True
8682 1
        self._freeze()
8683
    
8684 1
    def to_binary(self):
8685 1
        packet = []
8686 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
8687 1
        packet.append(pack_uatype('Double', self.SamplingInterval))
8688 1
        packet.append(extensionobject_to_binary(self.Filter))
8689 1
        packet.append(pack_uatype('UInt32', self.QueueSize))
8690 1
        packet.append(pack_uatype('Boolean', self.DiscardOldest))
8691 1
        return b''.join(packet)
8692
        
8693 1
    @staticmethod
8694
    def from_binary(data):
8695 1
        obj = MonitoringParameters()
8696 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
8697 1
        obj.SamplingInterval = unpack_uatype('Double', data)
8698 1
        obj.Filter = extensionobject_from_binary(data)
8699 1
        obj.QueueSize = unpack_uatype('UInt32', data)
8700 1
        obj.DiscardOldest = unpack_uatype('Boolean', data)
8701 1
        return obj
8702
    
8703 1
    def __str__(self):
8704
        return 'MonitoringParameters(' + 'ClientHandle:' + str(self.ClientHandle) + ', '  + \
8705
             'SamplingInterval:' + str(self.SamplingInterval) + ', '  + \
8706
             'Filter:' + str(self.Filter) + ', '  + \
8707
             'QueueSize:' + str(self.QueueSize) + ', '  + \
8708
             'DiscardOldest:' + str(self.DiscardOldest) + ')'
8709
    
8710 1
    __repr__ = __str__
8711
    
8712 1
class MonitoredItemCreateRequest(FrozenClass):
8713
    '''
8714
    :ivar ItemToMonitor: 
8715
    :vartype ItemToMonitor: ReadValueId 
8716
    :ivar MonitoringMode: 
8717
    :vartype MonitoringMode: MonitoringMode 
8718
    :ivar RequestedParameters: 
8719
    :vartype RequestedParameters: MonitoringParameters 
8720
    '''
8721 1
    def __init__(self):
8722 1
        self.ItemToMonitor = ReadValueId()
8723 1
        self.MonitoringMode = 0
8724 1
        self.RequestedParameters = MonitoringParameters()
8725 1
        self._freeze()
8726
    
8727 1
    def to_binary(self):
8728 1
        packet = []
8729 1
        packet.append(self.ItemToMonitor.to_binary())
8730 1
        packet.append(pack_uatype('UInt32', self.MonitoringMode))
8731 1
        packet.append(self.RequestedParameters.to_binary())
8732 1
        return b''.join(packet)
8733
        
8734 1
    @staticmethod
8735
    def from_binary(data):
8736 1
        obj = MonitoredItemCreateRequest()
8737 1
        obj.ItemToMonitor = ReadValueId.from_binary(data)
8738 1
        obj.MonitoringMode = unpack_uatype('UInt32', data)
8739 1
        obj.RequestedParameters = MonitoringParameters.from_binary(data)
8740 1
        return obj
8741
    
8742 1
    def __str__(self):
8743
        return 'MonitoredItemCreateRequest(' + 'ItemToMonitor:' + str(self.ItemToMonitor) + ', '  + \
8744
             'MonitoringMode:' + str(self.MonitoringMode) + ', '  + \
8745
             'RequestedParameters:' + str(self.RequestedParameters) + ')'
8746
    
8747 1
    __repr__ = __str__
8748
    
8749 1
class MonitoredItemCreateResult(FrozenClass):
8750
    '''
8751
    :ivar StatusCode: 
8752
    :vartype StatusCode: StatusCode 
8753
    :ivar MonitoredItemId: 
8754
    :vartype MonitoredItemId: UInt32 
8755
    :ivar RevisedSamplingInterval: 
8756
    :vartype RevisedSamplingInterval: Double 
8757
    :ivar RevisedQueueSize: 
8758
    :vartype RevisedQueueSize: UInt32 
8759
    :ivar FilterResult: 
8760
    :vartype FilterResult: ExtensionObject 
8761
    '''
8762 1
    def __init__(self):
8763 1
        self.StatusCode = StatusCode()
8764 1
        self.MonitoredItemId = 0
8765 1
        self.RevisedSamplingInterval = 0
8766 1
        self.RevisedQueueSize = 0
8767 1
        self.FilterResult = None
8768 1
        self._freeze()
8769
    
8770 1
    def to_binary(self):
8771 1
        packet = []
8772 1
        packet.append(self.StatusCode.to_binary())
8773 1
        packet.append(pack_uatype('UInt32', self.MonitoredItemId))
8774 1
        packet.append(pack_uatype('Double', self.RevisedSamplingInterval))
8775 1
        packet.append(pack_uatype('UInt32', self.RevisedQueueSize))
8776 1
        packet.append(extensionobject_to_binary(self.FilterResult))
8777 1
        return b''.join(packet)
8778
        
8779 1
    @staticmethod
8780
    def from_binary(data):
8781 1
        obj = MonitoredItemCreateResult()
8782 1
        obj.StatusCode = StatusCode.from_binary(data)
8783 1
        obj.MonitoredItemId = unpack_uatype('UInt32', data)
8784 1
        obj.RevisedSamplingInterval = unpack_uatype('Double', data)
8785 1
        obj.RevisedQueueSize = unpack_uatype('UInt32', data)
8786 1
        obj.FilterResult = extensionobject_from_binary(data)
8787 1
        return obj
8788
    
8789 1
    def __str__(self):
8790
        return 'MonitoredItemCreateResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8791
             'MonitoredItemId:' + str(self.MonitoredItemId) + ', '  + \
8792
             'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', '  + \
8793
             'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', '  + \
8794
             'FilterResult:' + str(self.FilterResult) + ')'
8795
    
8796 1
    __repr__ = __str__
8797
    
8798 1
class CreateMonitoredItemsParameters(FrozenClass):
8799
    '''
8800
    :ivar SubscriptionId: 
8801
    :vartype SubscriptionId: UInt32 
8802
    :ivar TimestampsToReturn: 
8803
    :vartype TimestampsToReturn: TimestampsToReturn 
8804
    :ivar ItemsToCreate: 
8805
    :vartype ItemsToCreate: MonitoredItemCreateRequest 
8806
    '''
8807 1
    def __init__(self):
8808 1
        self.SubscriptionId = 0
8809 1
        self.TimestampsToReturn = 0
8810 1
        self.ItemsToCreate = []
8811 1
        self._freeze()
8812
    
8813 1
    def to_binary(self):
8814 1
        packet = []
8815 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
8816 1
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
8817 1
        packet.append(struct.pack('<i', len(self.ItemsToCreate)))
8818 1
        for fieldname in self.ItemsToCreate:
8819 1
            packet.append(fieldname.to_binary())
8820 1
        return b''.join(packet)
8821
        
8822 1
    @staticmethod
8823
    def from_binary(data):
8824 1
        obj = CreateMonitoredItemsParameters()
8825 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
8826 1
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
8827 1
        length = struct.unpack('<i', data.read(4))[0]
8828 1
        if length != -1:
8829 1
            for _ in range(0, length):
8830 1
                obj.ItemsToCreate.append(MonitoredItemCreateRequest.from_binary(data))
8831 1
        return obj
8832
    
8833 1
    def __str__(self):
8834
        return 'CreateMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
8835
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
8836
             'ItemsToCreate:' + str(self.ItemsToCreate) + ')'
8837
    
8838 1
    __repr__ = __str__
8839
    
8840 1
class CreateMonitoredItemsRequest(FrozenClass):
8841
    '''
8842
    :ivar TypeId: 
8843
    :vartype TypeId: NodeId 
8844
    :ivar RequestHeader: 
8845
    :vartype RequestHeader: RequestHeader 
8846
    :ivar Parameters: 
8847
    :vartype Parameters: CreateMonitoredItemsParameters 
8848
    '''
8849 1
    def __init__(self):
8850 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary)
8851 1
        self.RequestHeader = RequestHeader()
8852 1
        self.Parameters = CreateMonitoredItemsParameters()
8853 1
        self._freeze()
8854
    
8855 1
    def to_binary(self):
8856 1
        packet = []
8857 1
        packet.append(self.TypeId.to_binary())
8858 1
        packet.append(self.RequestHeader.to_binary())
8859 1
        packet.append(self.Parameters.to_binary())
8860 1
        return b''.join(packet)
8861
        
8862 1
    @staticmethod
8863
    def from_binary(data):
8864
        obj = CreateMonitoredItemsRequest()
8865
        obj.TypeId = NodeId.from_binary(data)
8866
        obj.RequestHeader = RequestHeader.from_binary(data)
8867
        obj.Parameters = CreateMonitoredItemsParameters.from_binary(data)
8868
        return obj
8869
    
8870 1
    def __str__(self):
8871
        return 'CreateMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8872
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
8873
             'Parameters:' + str(self.Parameters) + ')'
8874
    
8875 1
    __repr__ = __str__
8876
    
8877 1
class CreateMonitoredItemsResponse(FrozenClass):
8878
    '''
8879
    :ivar TypeId: 
8880
    :vartype TypeId: NodeId 
8881
    :ivar ResponseHeader: 
8882
    :vartype ResponseHeader: ResponseHeader 
8883
    :ivar Results: 
8884
    :vartype Results: MonitoredItemCreateResult 
8885
    :ivar DiagnosticInfos: 
8886
    :vartype DiagnosticInfos: DiagnosticInfo 
8887
    '''
8888 1
    def __init__(self):
8889 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary)
8890 1
        self.ResponseHeader = ResponseHeader()
8891 1
        self.Results = []
8892 1
        self.DiagnosticInfos = []
8893 1
        self._freeze()
8894
    
8895 1
    def to_binary(self):
8896 1
        packet = []
8897 1
        packet.append(self.TypeId.to_binary())
8898 1
        packet.append(self.ResponseHeader.to_binary())
8899 1
        packet.append(struct.pack('<i', len(self.Results)))
8900 1
        for fieldname in self.Results:
8901 1
            packet.append(fieldname.to_binary())
8902 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8903 1
        for fieldname in self.DiagnosticInfos:
8904
            packet.append(fieldname.to_binary())
8905 1
        return b''.join(packet)
8906
        
8907 1
    @staticmethod
8908
    def from_binary(data):
8909 1
        obj = CreateMonitoredItemsResponse()
8910 1
        obj.TypeId = NodeId.from_binary(data)
8911 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8912 1
        length = struct.unpack('<i', data.read(4))[0]
8913 1
        if length != -1:
8914 1
            for _ in range(0, length):
8915 1
                obj.Results.append(MonitoredItemCreateResult.from_binary(data))
8916 1
        length = struct.unpack('<i', data.read(4))[0]
8917 1
        if length != -1:
8918 1
            for _ in range(0, length):
8919
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8920 1
        return obj
8921
    
8922 1
    def __str__(self):
8923
        return 'CreateMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8924
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
8925
             'Results:' + str(self.Results) + ', '  + \
8926
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8927
    
8928 1
    __repr__ = __str__
8929
    
8930 1
class MonitoredItemModifyRequest(FrozenClass):
8931
    '''
8932
    :ivar MonitoredItemId: 
8933
    :vartype MonitoredItemId: UInt32 
8934
    :ivar RequestedParameters: 
8935
    :vartype RequestedParameters: MonitoringParameters 
8936
    '''
8937 1
    def __init__(self):
8938
        self.MonitoredItemId = 0
8939
        self.RequestedParameters = MonitoringParameters()
8940
        self._freeze()
8941
    
8942 1
    def to_binary(self):
8943
        packet = []
8944
        packet.append(pack_uatype('UInt32', self.MonitoredItemId))
8945
        packet.append(self.RequestedParameters.to_binary())
8946
        return b''.join(packet)
8947
        
8948 1
    @staticmethod
8949
    def from_binary(data):
8950
        obj = MonitoredItemModifyRequest()
8951
        obj.MonitoredItemId = unpack_uatype('UInt32', data)
8952
        obj.RequestedParameters = MonitoringParameters.from_binary(data)
8953
        return obj
8954
    
8955 1
    def __str__(self):
8956
        return 'MonitoredItemModifyRequest(' + 'MonitoredItemId:' + str(self.MonitoredItemId) + ', '  + \
8957
             'RequestedParameters:' + str(self.RequestedParameters) + ')'
8958
    
8959 1
    __repr__ = __str__
8960
    
8961 1
class MonitoredItemModifyResult(FrozenClass):
8962
    '''
8963
    :ivar StatusCode: 
8964
    :vartype StatusCode: StatusCode 
8965
    :ivar RevisedSamplingInterval: 
8966
    :vartype RevisedSamplingInterval: Double 
8967
    :ivar RevisedQueueSize: 
8968
    :vartype RevisedQueueSize: UInt32 
8969
    :ivar FilterResult: 
8970
    :vartype FilterResult: ExtensionObject 
8971
    '''
8972 1
    def __init__(self):
8973
        self.StatusCode = StatusCode()
8974
        self.RevisedSamplingInterval = 0
8975
        self.RevisedQueueSize = 0
8976
        self.FilterResult = None
8977
        self._freeze()
8978
    
8979 1
    def to_binary(self):
8980
        packet = []
8981
        packet.append(self.StatusCode.to_binary())
8982
        packet.append(pack_uatype('Double', self.RevisedSamplingInterval))
8983
        packet.append(pack_uatype('UInt32', self.RevisedQueueSize))
8984
        packet.append(extensionobject_to_binary(self.FilterResult))
8985
        return b''.join(packet)
8986
        
8987 1
    @staticmethod
8988
    def from_binary(data):
8989
        obj = MonitoredItemModifyResult()
8990
        obj.StatusCode = StatusCode.from_binary(data)
8991
        obj.RevisedSamplingInterval = unpack_uatype('Double', data)
8992
        obj.RevisedQueueSize = unpack_uatype('UInt32', data)
8993
        obj.FilterResult = extensionobject_from_binary(data)
8994
        return obj
8995
    
8996 1
    def __str__(self):
8997
        return 'MonitoredItemModifyResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8998
             'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', '  + \
8999
             'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', '  + \
9000
             'FilterResult:' + str(self.FilterResult) + ')'
9001
    
9002 1
    __repr__ = __str__
9003
    
9004 1
class ModifyMonitoredItemsParameters(FrozenClass):
9005
    '''
9006
    :ivar SubscriptionId: 
9007
    :vartype SubscriptionId: UInt32 
9008
    :ivar TimestampsToReturn: 
9009
    :vartype TimestampsToReturn: TimestampsToReturn 
9010
    :ivar ItemsToModify: 
9011
    :vartype ItemsToModify: MonitoredItemModifyRequest 
9012
    '''
9013 1
    def __init__(self):
9014
        self.SubscriptionId = 0
9015
        self.TimestampsToReturn = 0
9016
        self.ItemsToModify = []
9017
        self._freeze()
9018
    
9019 1
    def to_binary(self):
9020
        packet = []
9021
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9022
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
9023
        packet.append(struct.pack('<i', len(self.ItemsToModify)))
9024
        for fieldname in self.ItemsToModify:
9025
            packet.append(fieldname.to_binary())
9026
        return b''.join(packet)
9027
        
9028 1
    @staticmethod
9029
    def from_binary(data):
9030
        obj = ModifyMonitoredItemsParameters()
9031
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9032
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
9033
        length = struct.unpack('<i', data.read(4))[0]
9034
        if length != -1:
9035
            for _ in range(0, length):
9036
                obj.ItemsToModify.append(MonitoredItemModifyRequest.from_binary(data))
9037
        return obj
9038
    
9039 1
    def __str__(self):
9040
        return 'ModifyMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9041
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
9042
             'ItemsToModify:' + str(self.ItemsToModify) + ')'
9043
    
9044 1
    __repr__ = __str__
9045
    
9046 1
class ModifyMonitoredItemsRequest(FrozenClass):
9047
    '''
9048
    :ivar TypeId: 
9049
    :vartype TypeId: NodeId 
9050
    :ivar RequestHeader: 
9051
    :vartype RequestHeader: RequestHeader 
9052
    :ivar Parameters: 
9053
    :vartype Parameters: ModifyMonitoredItemsParameters 
9054
    '''
9055 1
    def __init__(self):
9056
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary)
9057
        self.RequestHeader = RequestHeader()
9058
        self.Parameters = ModifyMonitoredItemsParameters()
9059
        self._freeze()
9060
    
9061 1
    def to_binary(self):
9062
        packet = []
9063
        packet.append(self.TypeId.to_binary())
9064
        packet.append(self.RequestHeader.to_binary())
9065
        packet.append(self.Parameters.to_binary())
9066
        return b''.join(packet)
9067
        
9068 1
    @staticmethod
9069
    def from_binary(data):
9070
        obj = ModifyMonitoredItemsRequest()
9071
        obj.TypeId = NodeId.from_binary(data)
9072
        obj.RequestHeader = RequestHeader.from_binary(data)
9073
        obj.Parameters = ModifyMonitoredItemsParameters.from_binary(data)
9074
        return obj
9075
    
9076 1
    def __str__(self):
9077
        return 'ModifyMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9078
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9079
             'Parameters:' + str(self.Parameters) + ')'
9080
    
9081 1
    __repr__ = __str__
9082
    
9083 1
class ModifyMonitoredItemsResponse(FrozenClass):
9084
    '''
9085
    :ivar TypeId: 
9086
    :vartype TypeId: NodeId 
9087
    :ivar ResponseHeader: 
9088
    :vartype ResponseHeader: ResponseHeader 
9089
    :ivar Results: 
9090
    :vartype Results: MonitoredItemModifyResult 
9091
    :ivar DiagnosticInfos: 
9092
    :vartype DiagnosticInfos: DiagnosticInfo 
9093
    '''
9094 1
    def __init__(self):
9095
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary)
9096
        self.ResponseHeader = ResponseHeader()
9097
        self.Results = []
9098
        self.DiagnosticInfos = []
9099
        self._freeze()
9100
    
9101 1
    def to_binary(self):
9102
        packet = []
9103
        packet.append(self.TypeId.to_binary())
9104
        packet.append(self.ResponseHeader.to_binary())
9105
        packet.append(struct.pack('<i', len(self.Results)))
9106
        for fieldname in self.Results:
9107
            packet.append(fieldname.to_binary())
9108
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9109
        for fieldname in self.DiagnosticInfos:
9110
            packet.append(fieldname.to_binary())
9111
        return b''.join(packet)
9112
        
9113 1
    @staticmethod
9114
    def from_binary(data):
9115
        obj = ModifyMonitoredItemsResponse()
9116
        obj.TypeId = NodeId.from_binary(data)
9117
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9118
        length = struct.unpack('<i', data.read(4))[0]
9119
        if length != -1:
9120
            for _ in range(0, length):
9121
                obj.Results.append(MonitoredItemModifyResult.from_binary(data))
9122
        length = struct.unpack('<i', data.read(4))[0]
9123
        if length != -1:
9124
            for _ in range(0, length):
9125
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9126
        return obj
9127
    
9128 1
    def __str__(self):
9129
        return 'ModifyMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9130
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9131
             'Results:' + str(self.Results) + ', '  + \
9132
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9133
    
9134 1
    __repr__ = __str__
9135
    
9136 1
class SetMonitoringModeParameters(FrozenClass):
9137
    '''
9138
    :ivar SubscriptionId: 
9139
    :vartype SubscriptionId: UInt32 
9140
    :ivar MonitoringMode: 
9141
    :vartype MonitoringMode: MonitoringMode 
9142
    :ivar MonitoredItemIds: 
9143
    :vartype MonitoredItemIds: UInt32 
9144
    '''
9145 1
    def __init__(self):
9146
        self.SubscriptionId = 0
9147
        self.MonitoringMode = 0
9148
        self.MonitoredItemIds = []
9149
        self._freeze()
9150
    
9151 1
    def to_binary(self):
9152
        packet = []
9153
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9154
        packet.append(pack_uatype('UInt32', self.MonitoringMode))
9155
        packet.append(struct.pack('<i', len(self.MonitoredItemIds)))
9156
        for fieldname in self.MonitoredItemIds:
9157
            packet.append(pack_uatype('UInt32', fieldname))
9158
        return b''.join(packet)
9159
        
9160 1
    @staticmethod
9161
    def from_binary(data):
9162
        obj = SetMonitoringModeParameters()
9163
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9164
        obj.MonitoringMode = unpack_uatype('UInt32', data)
9165
        obj.MonitoredItemIds = unpack_uatype_array('UInt32', data)
9166
        return obj
9167
    
9168 1
    def __str__(self):
9169
        return 'SetMonitoringModeParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9170
             'MonitoringMode:' + str(self.MonitoringMode) + ', '  + \
9171
             'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
9172
    
9173 1
    __repr__ = __str__
9174
    
9175 1
class SetMonitoringModeRequest(FrozenClass):
9176
    '''
9177
    :ivar TypeId: 
9178
    :vartype TypeId: NodeId 
9179
    :ivar RequestHeader: 
9180
    :vartype RequestHeader: RequestHeader 
9181
    :ivar Parameters: 
9182
    :vartype Parameters: SetMonitoringModeParameters 
9183
    '''
9184 1
    def __init__(self):
9185
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary)
9186
        self.RequestHeader = RequestHeader()
9187
        self.Parameters = SetMonitoringModeParameters()
9188
        self._freeze()
9189
    
9190 1
    def to_binary(self):
9191
        packet = []
9192
        packet.append(self.TypeId.to_binary())
9193
        packet.append(self.RequestHeader.to_binary())
9194
        packet.append(self.Parameters.to_binary())
9195
        return b''.join(packet)
9196
        
9197 1
    @staticmethod
9198
    def from_binary(data):
9199
        obj = SetMonitoringModeRequest()
9200
        obj.TypeId = NodeId.from_binary(data)
9201
        obj.RequestHeader = RequestHeader.from_binary(data)
9202
        obj.Parameters = SetMonitoringModeParameters.from_binary(data)
9203
        return obj
9204
    
9205 1
    def __str__(self):
9206
        return 'SetMonitoringModeRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9207
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9208
             'Parameters:' + str(self.Parameters) + ')'
9209
    
9210 1
    __repr__ = __str__
9211
    
9212 1
class SetMonitoringModeResult(FrozenClass):
9213
    '''
9214
    :ivar Results: 
9215
    :vartype Results: StatusCode 
9216
    :ivar DiagnosticInfos: 
9217
    :vartype DiagnosticInfos: DiagnosticInfo 
9218
    '''
9219 1
    def __init__(self):
9220
        self.Results = []
9221
        self.DiagnosticInfos = []
9222
        self._freeze()
9223
    
9224 1
    def to_binary(self):
9225
        packet = []
9226
        packet.append(struct.pack('<i', len(self.Results)))
9227
        for fieldname in self.Results:
9228
            packet.append(fieldname.to_binary())
9229
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9230
        for fieldname in self.DiagnosticInfos:
9231
            packet.append(fieldname.to_binary())
9232
        return b''.join(packet)
9233
        
9234 1
    @staticmethod
9235
    def from_binary(data):
9236
        obj = SetMonitoringModeResult()
9237
        length = struct.unpack('<i', data.read(4))[0]
9238
        if length != -1:
9239
            for _ in range(0, length):
9240
                obj.Results.append(StatusCode.from_binary(data))
9241
        length = struct.unpack('<i', data.read(4))[0]
9242
        if length != -1:
9243
            for _ in range(0, length):
9244
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9245
        return obj
9246
    
9247 1
    def __str__(self):
9248
        return 'SetMonitoringModeResult(' + 'Results:' + str(self.Results) + ', '  + \
9249
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9250
    
9251 1
    __repr__ = __str__
9252
    
9253 1
class SetMonitoringModeResponse(FrozenClass):
9254
    '''
9255
    :ivar TypeId: 
9256
    :vartype TypeId: NodeId 
9257
    :ivar ResponseHeader: 
9258
    :vartype ResponseHeader: ResponseHeader 
9259
    :ivar Parameters: 
9260
    :vartype Parameters: SetMonitoringModeResult 
9261
    '''
9262 1
    def __init__(self):
9263
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary)
9264
        self.ResponseHeader = ResponseHeader()
9265
        self.Parameters = SetMonitoringModeResult()
9266
        self._freeze()
9267
    
9268 1
    def to_binary(self):
9269
        packet = []
9270
        packet.append(self.TypeId.to_binary())
9271
        packet.append(self.ResponseHeader.to_binary())
9272
        packet.append(self.Parameters.to_binary())
9273
        return b''.join(packet)
9274
        
9275 1
    @staticmethod
9276
    def from_binary(data):
9277
        obj = SetMonitoringModeResponse()
9278
        obj.TypeId = NodeId.from_binary(data)
9279
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9280
        obj.Parameters = SetMonitoringModeResult.from_binary(data)
9281
        return obj
9282
    
9283 1
    def __str__(self):
9284
        return 'SetMonitoringModeResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9285
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9286
             'Parameters:' + str(self.Parameters) + ')'
9287
    
9288 1
    __repr__ = __str__
9289
    
9290 1
class SetTriggeringParameters(FrozenClass):
9291
    '''
9292
    :ivar SubscriptionId: 
9293
    :vartype SubscriptionId: UInt32 
9294
    :ivar TriggeringItemId: 
9295
    :vartype TriggeringItemId: UInt32 
9296
    :ivar LinksToAdd: 
9297
    :vartype LinksToAdd: UInt32 
9298
    :ivar LinksToRemove: 
9299
    :vartype LinksToRemove: UInt32 
9300
    '''
9301 1
    def __init__(self):
9302
        self.SubscriptionId = 0
9303
        self.TriggeringItemId = 0
9304
        self.LinksToAdd = []
9305
        self.LinksToRemove = []
9306
        self._freeze()
9307
    
9308 1
    def to_binary(self):
9309
        packet = []
9310
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9311
        packet.append(pack_uatype('UInt32', self.TriggeringItemId))
9312
        packet.append(struct.pack('<i', len(self.LinksToAdd)))
9313
        for fieldname in self.LinksToAdd:
9314
            packet.append(pack_uatype('UInt32', fieldname))
9315
        packet.append(struct.pack('<i', len(self.LinksToRemove)))
9316
        for fieldname in self.LinksToRemove:
9317
            packet.append(pack_uatype('UInt32', fieldname))
9318
        return b''.join(packet)
9319
        
9320 1
    @staticmethod
9321
    def from_binary(data):
9322
        obj = SetTriggeringParameters()
9323
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9324
        obj.TriggeringItemId = unpack_uatype('UInt32', data)
9325
        obj.LinksToAdd = unpack_uatype_array('UInt32', data)
9326
        obj.LinksToRemove = unpack_uatype_array('UInt32', data)
9327
        return obj
9328
    
9329 1
    def __str__(self):
9330
        return 'SetTriggeringParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9331
             'TriggeringItemId:' + str(self.TriggeringItemId) + ', '  + \
9332
             'LinksToAdd:' + str(self.LinksToAdd) + ', '  + \
9333
             'LinksToRemove:' + str(self.LinksToRemove) + ')'
9334
    
9335 1
    __repr__ = __str__
9336
    
9337 1
class SetTriggeringRequest(FrozenClass):
9338
    '''
9339
    :ivar TypeId: 
9340
    :vartype TypeId: NodeId 
9341
    :ivar RequestHeader: 
9342
    :vartype RequestHeader: RequestHeader 
9343
    :ivar Parameters: 
9344
    :vartype Parameters: SetTriggeringParameters 
9345
    '''
9346 1
    def __init__(self):
9347
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary)
9348
        self.RequestHeader = RequestHeader()
9349
        self.Parameters = SetTriggeringParameters()
9350
        self._freeze()
9351
    
9352 1
    def to_binary(self):
9353
        packet = []
9354
        packet.append(self.TypeId.to_binary())
9355
        packet.append(self.RequestHeader.to_binary())
9356
        packet.append(self.Parameters.to_binary())
9357
        return b''.join(packet)
9358
        
9359 1
    @staticmethod
9360
    def from_binary(data):
9361
        obj = SetTriggeringRequest()
9362
        obj.TypeId = NodeId.from_binary(data)
9363
        obj.RequestHeader = RequestHeader.from_binary(data)
9364
        obj.Parameters = SetTriggeringParameters.from_binary(data)
9365
        return obj
9366
    
9367 1
    def __str__(self):
9368
        return 'SetTriggeringRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9369
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9370
             'Parameters:' + str(self.Parameters) + ')'
9371
    
9372 1
    __repr__ = __str__
9373
    
9374 1
class SetTriggeringResult(FrozenClass):
9375
    '''
9376
    :ivar AddResults: 
9377
    :vartype AddResults: StatusCode 
9378
    :ivar AddDiagnosticInfos: 
9379
    :vartype AddDiagnosticInfos: DiagnosticInfo 
9380
    :ivar RemoveResults: 
9381
    :vartype RemoveResults: StatusCode 
9382
    :ivar RemoveDiagnosticInfos: 
9383
    :vartype RemoveDiagnosticInfos: DiagnosticInfo 
9384
    '''
9385 1
    def __init__(self):
9386
        self.AddResults = []
9387
        self.AddDiagnosticInfos = []
9388
        self.RemoveResults = []
9389
        self.RemoveDiagnosticInfos = []
9390
        self._freeze()
9391
    
9392 1
    def to_binary(self):
9393
        packet = []
9394
        packet.append(struct.pack('<i', len(self.AddResults)))
9395
        for fieldname in self.AddResults:
9396
            packet.append(fieldname.to_binary())
9397
        packet.append(struct.pack('<i', len(self.AddDiagnosticInfos)))
9398
        for fieldname in self.AddDiagnosticInfos:
9399
            packet.append(fieldname.to_binary())
9400
        packet.append(struct.pack('<i', len(self.RemoveResults)))
9401
        for fieldname in self.RemoveResults:
9402
            packet.append(fieldname.to_binary())
9403
        packet.append(struct.pack('<i', len(self.RemoveDiagnosticInfos)))
9404
        for fieldname in self.RemoveDiagnosticInfos:
9405
            packet.append(fieldname.to_binary())
9406
        return b''.join(packet)
9407
        
9408 1
    @staticmethod
9409
    def from_binary(data):
9410
        obj = SetTriggeringResult()
9411
        length = struct.unpack('<i', data.read(4))[0]
9412
        if length != -1:
9413
            for _ in range(0, length):
9414
                obj.AddResults.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.AddDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9419
        length = struct.unpack('<i', data.read(4))[0]
9420
        if length != -1:
9421
            for _ in range(0, length):
9422
                obj.RemoveResults.append(StatusCode.from_binary(data))
9423
        length = struct.unpack('<i', data.read(4))[0]
9424
        if length != -1:
9425
            for _ in range(0, length):
9426
                obj.RemoveDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9427
        return obj
9428
    
9429 1
    def __str__(self):
9430
        return 'SetTriggeringResult(' + 'AddResults:' + str(self.AddResults) + ', '  + \
9431
             'AddDiagnosticInfos:' + str(self.AddDiagnosticInfos) + ', '  + \
9432
             'RemoveResults:' + str(self.RemoveResults) + ', '  + \
9433
             'RemoveDiagnosticInfos:' + str(self.RemoveDiagnosticInfos) + ')'
9434
    
9435 1
    __repr__ = __str__
9436
    
9437 1
class SetTriggeringResponse(FrozenClass):
9438
    '''
9439
    :ivar TypeId: 
9440
    :vartype TypeId: NodeId 
9441
    :ivar ResponseHeader: 
9442
    :vartype ResponseHeader: ResponseHeader 
9443
    :ivar Parameters: 
9444
    :vartype Parameters: SetTriggeringResult 
9445
    '''
9446 1
    def __init__(self):
9447
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary)
9448
        self.ResponseHeader = ResponseHeader()
9449
        self.Parameters = SetTriggeringResult()
9450
        self._freeze()
9451
    
9452 1
    def to_binary(self):
9453
        packet = []
9454
        packet.append(self.TypeId.to_binary())
9455
        packet.append(self.ResponseHeader.to_binary())
9456
        packet.append(self.Parameters.to_binary())
9457
        return b''.join(packet)
9458
        
9459 1
    @staticmethod
9460
    def from_binary(data):
9461
        obj = SetTriggeringResponse()
9462
        obj.TypeId = NodeId.from_binary(data)
9463
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9464
        obj.Parameters = SetTriggeringResult.from_binary(data)
9465
        return obj
9466
    
9467 1
    def __str__(self):
9468
        return 'SetTriggeringResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9469
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9470
             'Parameters:' + str(self.Parameters) + ')'
9471
    
9472 1
    __repr__ = __str__
9473
    
9474 1
class DeleteMonitoredItemsParameters(FrozenClass):
9475
    '''
9476
    :ivar SubscriptionId: 
9477
    :vartype SubscriptionId: UInt32 
9478
    :ivar MonitoredItemIds: 
9479
    :vartype MonitoredItemIds: UInt32 
9480
    '''
9481 1
    def __init__(self):
9482 1
        self.SubscriptionId = 0
9483 1
        self.MonitoredItemIds = []
9484 1
        self._freeze()
9485
    
9486 1
    def to_binary(self):
9487 1
        packet = []
9488 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9489 1
        packet.append(struct.pack('<i', len(self.MonitoredItemIds)))
9490 1
        for fieldname in self.MonitoredItemIds:
9491 1
            packet.append(pack_uatype('UInt32', fieldname))
9492 1
        return b''.join(packet)
9493
        
9494 1
    @staticmethod
9495
    def from_binary(data):
9496 1
        obj = DeleteMonitoredItemsParameters()
9497 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9498 1
        obj.MonitoredItemIds = unpack_uatype_array('UInt32', data)
9499 1
        return obj
9500
    
9501 1
    def __str__(self):
9502
        return 'DeleteMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9503
             'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
9504
    
9505 1
    __repr__ = __str__
9506
    
9507 1
class DeleteMonitoredItemsRequest(FrozenClass):
9508
    '''
9509
    :ivar TypeId: 
9510
    :vartype TypeId: NodeId 
9511
    :ivar RequestHeader: 
9512
    :vartype RequestHeader: RequestHeader 
9513
    :ivar Parameters: 
9514
    :vartype Parameters: DeleteMonitoredItemsParameters 
9515
    '''
9516 1
    def __init__(self):
9517 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary)
9518 1
        self.RequestHeader = RequestHeader()
9519 1
        self.Parameters = DeleteMonitoredItemsParameters()
9520 1
        self._freeze()
9521
    
9522 1
    def to_binary(self):
9523 1
        packet = []
9524 1
        packet.append(self.TypeId.to_binary())
9525 1
        packet.append(self.RequestHeader.to_binary())
9526 1
        packet.append(self.Parameters.to_binary())
9527 1
        return b''.join(packet)
9528
        
9529 1
    @staticmethod
9530
    def from_binary(data):
9531
        obj = DeleteMonitoredItemsRequest()
9532
        obj.TypeId = NodeId.from_binary(data)
9533
        obj.RequestHeader = RequestHeader.from_binary(data)
9534
        obj.Parameters = DeleteMonitoredItemsParameters.from_binary(data)
9535
        return obj
9536
    
9537 1
    def __str__(self):
9538
        return 'DeleteMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9539
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9540
             'Parameters:' + str(self.Parameters) + ')'
9541
    
9542 1
    __repr__ = __str__
9543
    
9544 1
class DeleteMonitoredItemsResponse(FrozenClass):
9545
    '''
9546
    :ivar TypeId: 
9547
    :vartype TypeId: NodeId 
9548
    :ivar ResponseHeader: 
9549
    :vartype ResponseHeader: ResponseHeader 
9550
    :ivar Results: 
9551
    :vartype Results: StatusCode 
9552
    :ivar DiagnosticInfos: 
9553
    :vartype DiagnosticInfos: DiagnosticInfo 
9554
    '''
9555 1
    def __init__(self):
9556 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary)
9557 1
        self.ResponseHeader = ResponseHeader()
9558 1
        self.Results = []
9559 1
        self.DiagnosticInfos = []
9560 1
        self._freeze()
9561
    
9562 1
    def to_binary(self):
9563 1
        packet = []
9564 1
        packet.append(self.TypeId.to_binary())
9565 1
        packet.append(self.ResponseHeader.to_binary())
9566 1
        packet.append(struct.pack('<i', len(self.Results)))
9567 1
        for fieldname in self.Results:
9568 1
            packet.append(fieldname.to_binary())
9569 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9570 1
        for fieldname in self.DiagnosticInfos:
9571
            packet.append(fieldname.to_binary())
9572 1
        return b''.join(packet)
9573
        
9574 1
    @staticmethod
9575
    def from_binary(data):
9576 1
        obj = DeleteMonitoredItemsResponse()
9577 1
        obj.TypeId = NodeId.from_binary(data)
9578 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9579 1
        length = struct.unpack('<i', data.read(4))[0]
9580 1
        if length != -1:
9581 1
            for _ in range(0, length):
9582 1
                obj.Results.append(StatusCode.from_binary(data))
9583 1
        length = struct.unpack('<i', data.read(4))[0]
9584 1
        if length != -1:
9585 1
            for _ in range(0, length):
9586
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9587 1
        return obj
9588
    
9589 1
    def __str__(self):
9590
        return 'DeleteMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9591
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9592
             'Results:' + str(self.Results) + ', '  + \
9593
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9594
    
9595 1
    __repr__ = __str__
9596
    
9597 1
class CreateSubscriptionParameters(FrozenClass):
9598
    '''
9599
    :ivar RequestedPublishingInterval: 
9600
    :vartype RequestedPublishingInterval: Double 
9601
    :ivar RequestedLifetimeCount: 
9602
    :vartype RequestedLifetimeCount: UInt32 
9603
    :ivar RequestedMaxKeepAliveCount: 
9604
    :vartype RequestedMaxKeepAliveCount: UInt32 
9605
    :ivar MaxNotificationsPerPublish: 
9606
    :vartype MaxNotificationsPerPublish: UInt32 
9607
    :ivar PublishingEnabled: 
9608
    :vartype PublishingEnabled: Boolean 
9609
    :ivar Priority: 
9610
    :vartype Priority: Byte 
9611
    '''
9612 1
    def __init__(self):
9613 1
        self.RequestedPublishingInterval = 0
9614 1
        self.RequestedLifetimeCount = 0
9615 1
        self.RequestedMaxKeepAliveCount = 0
9616 1
        self.MaxNotificationsPerPublish = 0
9617 1
        self.PublishingEnabled = True
9618 1
        self.Priority = 0
9619 1
        self._freeze()
9620
    
9621 1
    def to_binary(self):
9622 1
        packet = []
9623 1
        packet.append(pack_uatype('Double', self.RequestedPublishingInterval))
9624 1
        packet.append(pack_uatype('UInt32', self.RequestedLifetimeCount))
9625 1
        packet.append(pack_uatype('UInt32', self.RequestedMaxKeepAliveCount))
9626 1
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
9627 1
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
9628 1
        packet.append(pack_uatype('Byte', self.Priority))
9629 1
        return b''.join(packet)
9630
        
9631 1
    @staticmethod
9632
    def from_binary(data):
9633 1
        obj = CreateSubscriptionParameters()
9634 1
        obj.RequestedPublishingInterval = unpack_uatype('Double', data)
9635 1
        obj.RequestedLifetimeCount = unpack_uatype('UInt32', data)
9636 1
        obj.RequestedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9637 1
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
9638 1
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
9639 1
        obj.Priority = unpack_uatype('Byte', data)
9640 1
        return obj
9641
    
9642 1
    def __str__(self):
9643
        return 'CreateSubscriptionParameters(' + 'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', '  + \
9644
             'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', '  + \
9645
             'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', '  + \
9646
             'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', '  + \
9647
             'PublishingEnabled:' + str(self.PublishingEnabled) + ', '  + \
9648
             'Priority:' + str(self.Priority) + ')'
9649
    
9650 1
    __repr__ = __str__
9651
    
9652 1
class CreateSubscriptionRequest(FrozenClass):
9653
    '''
9654
    :ivar TypeId: 
9655
    :vartype TypeId: NodeId 
9656
    :ivar RequestHeader: 
9657
    :vartype RequestHeader: RequestHeader 
9658
    :ivar Parameters: 
9659
    :vartype Parameters: CreateSubscriptionParameters 
9660
    '''
9661 1
    def __init__(self):
9662 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary)
9663 1
        self.RequestHeader = RequestHeader()
9664 1
        self.Parameters = CreateSubscriptionParameters()
9665 1
        self._freeze()
9666
    
9667 1
    def to_binary(self):
9668 1
        packet = []
9669 1
        packet.append(self.TypeId.to_binary())
9670 1
        packet.append(self.RequestHeader.to_binary())
9671 1
        packet.append(self.Parameters.to_binary())
9672 1
        return b''.join(packet)
9673
        
9674 1
    @staticmethod
9675
    def from_binary(data):
9676
        obj = CreateSubscriptionRequest()
9677
        obj.TypeId = NodeId.from_binary(data)
9678
        obj.RequestHeader = RequestHeader.from_binary(data)
9679
        obj.Parameters = CreateSubscriptionParameters.from_binary(data)
9680
        return obj
9681
    
9682 1
    def __str__(self):
9683
        return 'CreateSubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9684
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9685
             'Parameters:' + str(self.Parameters) + ')'
9686
    
9687 1
    __repr__ = __str__
9688
    
9689 1
class CreateSubscriptionResult(FrozenClass):
9690
    '''
9691
    :ivar SubscriptionId: 
9692
    :vartype SubscriptionId: UInt32 
9693
    :ivar RevisedPublishingInterval: 
9694
    :vartype RevisedPublishingInterval: Double 
9695
    :ivar RevisedLifetimeCount: 
9696
    :vartype RevisedLifetimeCount: UInt32 
9697
    :ivar RevisedMaxKeepAliveCount: 
9698
    :vartype RevisedMaxKeepAliveCount: UInt32 
9699
    '''
9700 1
    def __init__(self):
9701 1
        self.SubscriptionId = 0
9702 1
        self.RevisedPublishingInterval = 0
9703 1
        self.RevisedLifetimeCount = 0
9704 1
        self.RevisedMaxKeepAliveCount = 0
9705 1
        self._freeze()
9706
    
9707 1
    def to_binary(self):
9708 1
        packet = []
9709 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9710 1
        packet.append(pack_uatype('Double', self.RevisedPublishingInterval))
9711 1
        packet.append(pack_uatype('UInt32', self.RevisedLifetimeCount))
9712 1
        packet.append(pack_uatype('UInt32', self.RevisedMaxKeepAliveCount))
9713 1
        return b''.join(packet)
9714
        
9715 1
    @staticmethod
9716
    def from_binary(data):
9717 1
        obj = CreateSubscriptionResult()
9718 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9719 1
        obj.RevisedPublishingInterval = unpack_uatype('Double', data)
9720 1
        obj.RevisedLifetimeCount = unpack_uatype('UInt32', data)
9721 1
        obj.RevisedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9722 1
        return obj
9723
    
9724 1
    def __str__(self):
9725
        return 'CreateSubscriptionResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9726
             'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', '  + \
9727
             'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', '  + \
9728
             'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
9729
    
9730 1
    __repr__ = __str__
9731
    
9732 1
class CreateSubscriptionResponse(FrozenClass):
9733
    '''
9734
    :ivar TypeId: 
9735
    :vartype TypeId: NodeId 
9736
    :ivar ResponseHeader: 
9737
    :vartype ResponseHeader: ResponseHeader 
9738
    :ivar Parameters: 
9739
    :vartype Parameters: CreateSubscriptionResult 
9740
    '''
9741 1
    def __init__(self):
9742 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary)
9743 1
        self.ResponseHeader = ResponseHeader()
9744 1
        self.Parameters = CreateSubscriptionResult()
9745 1
        self._freeze()
9746
    
9747 1
    def to_binary(self):
9748 1
        packet = []
9749 1
        packet.append(self.TypeId.to_binary())
9750 1
        packet.append(self.ResponseHeader.to_binary())
9751 1
        packet.append(self.Parameters.to_binary())
9752 1
        return b''.join(packet)
9753
        
9754 1
    @staticmethod
9755
    def from_binary(data):
9756 1
        obj = CreateSubscriptionResponse()
9757 1
        obj.TypeId = NodeId.from_binary(data)
9758 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9759 1
        obj.Parameters = CreateSubscriptionResult.from_binary(data)
9760 1
        return obj
9761
    
9762 1
    def __str__(self):
9763
        return 'CreateSubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9764
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9765
             'Parameters:' + str(self.Parameters) + ')'
9766
    
9767 1
    __repr__ = __str__
9768
    
9769 1
class ModifySubscriptionParameters(FrozenClass):
9770
    '''
9771
    :ivar SubscriptionId: 
9772
    :vartype SubscriptionId: UInt32 
9773
    :ivar RequestedPublishingInterval: 
9774
    :vartype RequestedPublishingInterval: Double 
9775
    :ivar RequestedLifetimeCount: 
9776
    :vartype RequestedLifetimeCount: UInt32 
9777
    :ivar RequestedMaxKeepAliveCount: 
9778
    :vartype RequestedMaxKeepAliveCount: UInt32 
9779
    :ivar MaxNotificationsPerPublish: 
9780
    :vartype MaxNotificationsPerPublish: UInt32 
9781
    :ivar Priority: 
9782
    :vartype Priority: Byte 
9783
    '''
9784 1
    def __init__(self):
9785
        self.SubscriptionId = 0
9786
        self.RequestedPublishingInterval = 0
9787
        self.RequestedLifetimeCount = 0
9788
        self.RequestedMaxKeepAliveCount = 0
9789
        self.MaxNotificationsPerPublish = 0
9790
        self.Priority = 0
9791
        self._freeze()
9792
    
9793 1
    def to_binary(self):
9794
        packet = []
9795
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9796
        packet.append(pack_uatype('Double', self.RequestedPublishingInterval))
9797
        packet.append(pack_uatype('UInt32', self.RequestedLifetimeCount))
9798
        packet.append(pack_uatype('UInt32', self.RequestedMaxKeepAliveCount))
9799
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
9800
        packet.append(pack_uatype('Byte', self.Priority))
9801
        return b''.join(packet)
9802
        
9803 1
    @staticmethod
9804
    def from_binary(data):
9805
        obj = ModifySubscriptionParameters()
9806
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9807
        obj.RequestedPublishingInterval = unpack_uatype('Double', data)
9808
        obj.RequestedLifetimeCount = unpack_uatype('UInt32', data)
9809
        obj.RequestedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9810
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
9811
        obj.Priority = unpack_uatype('Byte', data)
9812
        return obj
9813
    
9814 1
    def __str__(self):
9815
        return 'ModifySubscriptionParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9816
             'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', '  + \
9817
             'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', '  + \
9818
             'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', '  + \
9819
             'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', '  + \
9820
             'Priority:' + str(self.Priority) + ')'
9821
    
9822 1
    __repr__ = __str__
9823
    
9824 1
class ModifySubscriptionRequest(FrozenClass):
9825
    '''
9826
    :ivar TypeId: 
9827
    :vartype TypeId: NodeId 
9828
    :ivar RequestHeader: 
9829
    :vartype RequestHeader: RequestHeader 
9830
    :ivar Parameters: 
9831
    :vartype Parameters: ModifySubscriptionParameters 
9832
    '''
9833 1
    def __init__(self):
9834
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary)
9835
        self.RequestHeader = RequestHeader()
9836
        self.Parameters = ModifySubscriptionParameters()
9837
        self._freeze()
9838
    
9839 1
    def to_binary(self):
9840
        packet = []
9841
        packet.append(self.TypeId.to_binary())
9842
        packet.append(self.RequestHeader.to_binary())
9843
        packet.append(self.Parameters.to_binary())
9844
        return b''.join(packet)
9845
        
9846 1
    @staticmethod
9847
    def from_binary(data):
9848
        obj = ModifySubscriptionRequest()
9849
        obj.TypeId = NodeId.from_binary(data)
9850
        obj.RequestHeader = RequestHeader.from_binary(data)
9851
        obj.Parameters = ModifySubscriptionParameters.from_binary(data)
9852
        return obj
9853
    
9854 1
    def __str__(self):
9855
        return 'ModifySubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9856
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9857
             'Parameters:' + str(self.Parameters) + ')'
9858
    
9859 1
    __repr__ = __str__
9860
    
9861 1
class ModifySubscriptionResult(FrozenClass):
9862
    '''
9863
    :ivar RevisedPublishingInterval: 
9864
    :vartype RevisedPublishingInterval: Double 
9865
    :ivar RevisedLifetimeCount: 
9866
    :vartype RevisedLifetimeCount: UInt32 
9867
    :ivar RevisedMaxKeepAliveCount: 
9868
    :vartype RevisedMaxKeepAliveCount: UInt32 
9869
    '''
9870 1
    def __init__(self):
9871
        self.RevisedPublishingInterval = 0
9872
        self.RevisedLifetimeCount = 0
9873
        self.RevisedMaxKeepAliveCount = 0
9874
        self._freeze()
9875
    
9876 1
    def to_binary(self):
9877
        packet = []
9878
        packet.append(pack_uatype('Double', self.RevisedPublishingInterval))
9879
        packet.append(pack_uatype('UInt32', self.RevisedLifetimeCount))
9880
        packet.append(pack_uatype('UInt32', self.RevisedMaxKeepAliveCount))
9881
        return b''.join(packet)
9882
        
9883 1
    @staticmethod
9884
    def from_binary(data):
9885
        obj = ModifySubscriptionResult()
9886
        obj.RevisedPublishingInterval = unpack_uatype('Double', data)
9887
        obj.RevisedLifetimeCount = unpack_uatype('UInt32', data)
9888
        obj.RevisedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9889
        return obj
9890
    
9891 1
    def __str__(self):
9892
        return 'ModifySubscriptionResult(' + 'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', '  + \
9893
             'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', '  + \
9894
             'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
9895
    
9896 1
    __repr__ = __str__
9897
    
9898 1
class ModifySubscriptionResponse(FrozenClass):
9899
    '''
9900
    :ivar TypeId: 
9901
    :vartype TypeId: NodeId 
9902
    :ivar ResponseHeader: 
9903
    :vartype ResponseHeader: ResponseHeader 
9904
    :ivar Parameters: 
9905
    :vartype Parameters: ModifySubscriptionResult 
9906
    '''
9907 1
    def __init__(self):
9908
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary)
9909
        self.ResponseHeader = ResponseHeader()
9910
        self.Parameters = ModifySubscriptionResult()
9911
        self._freeze()
9912
    
9913 1
    def to_binary(self):
9914
        packet = []
9915
        packet.append(self.TypeId.to_binary())
9916
        packet.append(self.ResponseHeader.to_binary())
9917
        packet.append(self.Parameters.to_binary())
9918
        return b''.join(packet)
9919
        
9920 1
    @staticmethod
9921
    def from_binary(data):
9922
        obj = ModifySubscriptionResponse()
9923
        obj.TypeId = NodeId.from_binary(data)
9924
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9925
        obj.Parameters = ModifySubscriptionResult.from_binary(data)
9926
        return obj
9927
    
9928 1
    def __str__(self):
9929
        return 'ModifySubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9930
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9931
             'Parameters:' + str(self.Parameters) + ')'
9932
    
9933 1
    __repr__ = __str__
9934
    
9935 1
class SetPublishingModeParameters(FrozenClass):
9936
    '''
9937
    :ivar PublishingEnabled: 
9938
    :vartype PublishingEnabled: Boolean 
9939
    :ivar SubscriptionIds: 
9940
    :vartype SubscriptionIds: UInt32 
9941
    '''
9942 1
    def __init__(self):
9943
        self.PublishingEnabled = True
9944
        self.SubscriptionIds = []
9945
        self._freeze()
9946
    
9947 1
    def to_binary(self):
9948
        packet = []
9949
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
9950
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
9951
        for fieldname in self.SubscriptionIds:
9952
            packet.append(pack_uatype('UInt32', fieldname))
9953
        return b''.join(packet)
9954
        
9955 1
    @staticmethod
9956
    def from_binary(data):
9957
        obj = SetPublishingModeParameters()
9958
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
9959
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
9960
        return obj
9961
    
9962 1
    def __str__(self):
9963
        return 'SetPublishingModeParameters(' + 'PublishingEnabled:' + str(self.PublishingEnabled) + ', '  + \
9964
             'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
9965
    
9966 1
    __repr__ = __str__
9967
    
9968 1
class SetPublishingModeRequest(FrozenClass):
9969
    '''
9970
    :ivar TypeId: 
9971
    :vartype TypeId: NodeId 
9972
    :ivar RequestHeader: 
9973
    :vartype RequestHeader: RequestHeader 
9974
    :ivar Parameters: 
9975
    :vartype Parameters: SetPublishingModeParameters 
9976
    '''
9977 1
    def __init__(self):
9978
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary)
9979
        self.RequestHeader = RequestHeader()
9980
        self.Parameters = SetPublishingModeParameters()
9981
        self._freeze()
9982
    
9983 1
    def to_binary(self):
9984
        packet = []
9985
        packet.append(self.TypeId.to_binary())
9986
        packet.append(self.RequestHeader.to_binary())
9987
        packet.append(self.Parameters.to_binary())
9988
        return b''.join(packet)
9989
        
9990 1
    @staticmethod
9991
    def from_binary(data):
9992
        obj = SetPublishingModeRequest()
9993
        obj.TypeId = NodeId.from_binary(data)
9994
        obj.RequestHeader = RequestHeader.from_binary(data)
9995
        obj.Parameters = SetPublishingModeParameters.from_binary(data)
9996
        return obj
9997
    
9998 1
    def __str__(self):
9999
        return 'SetPublishingModeRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10000
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10001
             'Parameters:' + str(self.Parameters) + ')'
10002
    
10003 1
    __repr__ = __str__
10004
    
10005 1
class SetPublishingModeResult(FrozenClass):
10006
    '''
10007
    :ivar Results: 
10008
    :vartype Results: StatusCode 
10009
    :ivar DiagnosticInfos: 
10010
    :vartype DiagnosticInfos: DiagnosticInfo 
10011
    '''
10012 1
    def __init__(self):
10013
        self.Results = []
10014
        self.DiagnosticInfos = []
10015
        self._freeze()
10016
    
10017 1
    def to_binary(self):
10018
        packet = []
10019
        packet.append(struct.pack('<i', len(self.Results)))
10020
        for fieldname in self.Results:
10021
            packet.append(fieldname.to_binary())
10022
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10023
        for fieldname in self.DiagnosticInfos:
10024
            packet.append(fieldname.to_binary())
10025
        return b''.join(packet)
10026
        
10027 1
    @staticmethod
10028
    def from_binary(data):
10029
        obj = SetPublishingModeResult()
10030
        length = struct.unpack('<i', data.read(4))[0]
10031
        if length != -1:
10032
            for _ in range(0, length):
10033
                obj.Results.append(StatusCode.from_binary(data))
10034
        length = struct.unpack('<i', data.read(4))[0]
10035
        if length != -1:
10036
            for _ in range(0, length):
10037
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10038
        return obj
10039
    
10040 1
    def __str__(self):
10041
        return 'SetPublishingModeResult(' + 'Results:' + str(self.Results) + ', '  + \
10042
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10043
    
10044 1
    __repr__ = __str__
10045
    
10046 1
class SetPublishingModeResponse(FrozenClass):
10047
    '''
10048
    :ivar TypeId: 
10049
    :vartype TypeId: NodeId 
10050
    :ivar ResponseHeader: 
10051
    :vartype ResponseHeader: ResponseHeader 
10052
    :ivar Parameters: 
10053
    :vartype Parameters: SetPublishingModeResult 
10054
    '''
10055 1
    def __init__(self):
10056
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary)
10057
        self.ResponseHeader = ResponseHeader()
10058
        self.Parameters = SetPublishingModeResult()
10059
        self._freeze()
10060
    
10061 1
    def to_binary(self):
10062
        packet = []
10063
        packet.append(self.TypeId.to_binary())
10064
        packet.append(self.ResponseHeader.to_binary())
10065
        packet.append(self.Parameters.to_binary())
10066
        return b''.join(packet)
10067
        
10068 1
    @staticmethod
10069
    def from_binary(data):
10070
        obj = SetPublishingModeResponse()
10071
        obj.TypeId = NodeId.from_binary(data)
10072
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10073
        obj.Parameters = SetPublishingModeResult.from_binary(data)
10074
        return obj
10075
    
10076 1
    def __str__(self):
10077
        return 'SetPublishingModeResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10078
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10079
             'Parameters:' + str(self.Parameters) + ')'
10080
    
10081 1
    __repr__ = __str__
10082
    
10083 1
class NotificationMessage(FrozenClass):
10084
    '''
10085
    :ivar SequenceNumber: 
10086
    :vartype SequenceNumber: UInt32 
10087
    :ivar PublishTime: 
10088
    :vartype PublishTime: DateTime 
10089
    :ivar NotificationData: 
10090
    :vartype NotificationData: ExtensionObject 
10091
    '''
10092 1
    def __init__(self):
10093 1
        self.SequenceNumber = 0
10094 1
        self.PublishTime = datetime.now()
10095 1
        self.NotificationData = []
10096 1
        self._freeze()
10097
    
10098 1
    def to_binary(self):
10099 1
        packet = []
10100 1
        packet.append(pack_uatype('UInt32', self.SequenceNumber))
10101 1
        packet.append(pack_uatype('DateTime', self.PublishTime))
10102 1
        packet.append(struct.pack('<i', len(self.NotificationData)))
10103 1
        for fieldname in self.NotificationData:
10104 1
            packet.append(extensionobject_to_binary(fieldname))
10105 1
        return b''.join(packet)
10106
        
10107 1
    @staticmethod
10108
    def from_binary(data):
10109 1
        obj = NotificationMessage()
10110 1
        obj.SequenceNumber = unpack_uatype('UInt32', data)
10111 1
        obj.PublishTime = unpack_uatype('DateTime', data)
10112 1
        length = struct.unpack('<i', data.read(4))[0]
10113 1
        if length != -1:
10114 1
            for _ in range(0, length):
10115 1
                obj.NotificationData.append(extensionobject_from_binary(data))
10116 1
        return obj
10117
    
10118 1
    def __str__(self):
10119
        return 'NotificationMessage(' + 'SequenceNumber:' + str(self.SequenceNumber) + ', '  + \
10120
             'PublishTime:' + str(self.PublishTime) + ', '  + \
10121
             'NotificationData:' + str(self.NotificationData) + ')'
10122
    
10123 1
    __repr__ = __str__
10124
    
10125 1
class NotificationData(FrozenClass):
10126
    '''
10127
    '''
10128 1
    def __init__(self):
10129
        self._freeze()
10130
    
10131 1
    def to_binary(self):
10132
        packet = []
10133
        return b''.join(packet)
10134
        
10135 1
    @staticmethod
10136
    def from_binary(data):
10137
        obj = NotificationData()
10138
        return obj
10139
    
10140 1
    def __str__(self):
10141
        return 'NotificationData(' +  + ')'
10142
    
10143 1
    __repr__ = __str__
10144
    
10145 1
class DataChangeNotification(FrozenClass):
10146
    '''
10147
    :ivar MonitoredItems: 
10148
    :vartype MonitoredItems: MonitoredItemNotification 
10149
    :ivar DiagnosticInfos: 
10150
    :vartype DiagnosticInfos: DiagnosticInfo 
10151
    '''
10152 1
    def __init__(self):
10153 1
        self.MonitoredItems = []
10154 1
        self.DiagnosticInfos = []
10155 1
        self._freeze()
10156
    
10157 1
    def to_binary(self):
10158 1
        packet = []
10159 1
        packet.append(struct.pack('<i', len(self.MonitoredItems)))
10160 1
        for fieldname in self.MonitoredItems:
10161 1
            packet.append(fieldname.to_binary())
10162 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10163 1
        for fieldname in self.DiagnosticInfos:
10164
            packet.append(fieldname.to_binary())
10165 1
        return b''.join(packet)
10166
        
10167 1
    @staticmethod
10168
    def from_binary(data):
10169 1
        obj = DataChangeNotification()
10170 1
        length = struct.unpack('<i', data.read(4))[0]
10171 1
        if length != -1:
10172 1
            for _ in range(0, length):
10173 1
                obj.MonitoredItems.append(MonitoredItemNotification.from_binary(data))
10174 1
        length = struct.unpack('<i', data.read(4))[0]
10175 1
        if length != -1:
10176 1
            for _ in range(0, length):
10177
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10178 1
        return obj
10179
    
10180 1
    def __str__(self):
10181
        return 'DataChangeNotification(' + 'MonitoredItems:' + str(self.MonitoredItems) + ', '  + \
10182
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10183
    
10184 1
    __repr__ = __str__
10185
    
10186 1
class MonitoredItemNotification(FrozenClass):
10187
    '''
10188
    :ivar ClientHandle: 
10189
    :vartype ClientHandle: UInt32 
10190
    :ivar Value: 
10191
    :vartype Value: DataValue 
10192
    '''
10193 1
    def __init__(self):
10194 1
        self.ClientHandle = 0
10195 1
        self.Value = DataValue()
10196 1
        self._freeze()
10197
    
10198 1
    def to_binary(self):
10199 1
        packet = []
10200 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
10201 1
        packet.append(self.Value.to_binary())
10202 1
        return b''.join(packet)
10203
        
10204 1
    @staticmethod
10205
    def from_binary(data):
10206 1
        obj = MonitoredItemNotification()
10207 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
10208 1
        obj.Value = DataValue.from_binary(data)
10209 1
        return obj
10210
    
10211 1
    def __str__(self):
10212
        return 'MonitoredItemNotification(' + 'ClientHandle:' + str(self.ClientHandle) + ', '  + \
10213
             'Value:' + str(self.Value) + ')'
10214
    
10215 1
    __repr__ = __str__
10216
    
10217 1
class EventNotificationList(FrozenClass):
10218
    '''
10219
    :ivar Events: 
10220
    :vartype Events: EventFieldList 
10221
    '''
10222 1
    def __init__(self):
10223 1
        self.Events = []
10224 1
        self._freeze()
10225
    
10226 1
    def to_binary(self):
10227 1
        packet = []
10228 1
        packet.append(struct.pack('<i', len(self.Events)))
10229 1
        for fieldname in self.Events:
10230 1
            packet.append(fieldname.to_binary())
10231 1
        return b''.join(packet)
10232
        
10233 1
    @staticmethod
10234
    def from_binary(data):
10235 1
        obj = EventNotificationList()
10236 1
        length = struct.unpack('<i', data.read(4))[0]
10237 1
        if length != -1:
10238 1
            for _ in range(0, length):
10239 1
                obj.Events.append(EventFieldList.from_binary(data))
10240 1
        return obj
10241
    
10242 1
    def __str__(self):
10243
        return 'EventNotificationList(' + 'Events:' + str(self.Events) + ')'
10244
    
10245 1
    __repr__ = __str__
10246
    
10247 1
class EventFieldList(FrozenClass):
10248
    '''
10249
    :ivar ClientHandle: 
10250
    :vartype ClientHandle: UInt32 
10251
    :ivar EventFields: 
10252
    :vartype EventFields: Variant 
10253
    '''
10254 1
    def __init__(self):
10255 1
        self.ClientHandle = 0
10256 1
        self.EventFields = []
10257 1
        self._freeze()
10258
    
10259 1
    def to_binary(self):
10260 1
        packet = []
10261 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
10262 1
        packet.append(struct.pack('<i', len(self.EventFields)))
10263 1
        for fieldname in self.EventFields:
10264 1
            packet.append(fieldname.to_binary())
10265 1
        return b''.join(packet)
10266
        
10267 1
    @staticmethod
10268
    def from_binary(data):
10269 1
        obj = EventFieldList()
10270 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
10271 1
        length = struct.unpack('<i', data.read(4))[0]
10272 1
        if length != -1:
10273 1
            for _ in range(0, length):
10274 1
                obj.EventFields.append(Variant.from_binary(data))
10275 1
        return obj
10276
    
10277 1
    def __str__(self):
10278
        return 'EventFieldList(' + 'ClientHandle:' + str(self.ClientHandle) + ', '  + \
10279
             'EventFields:' + str(self.EventFields) + ')'
10280
    
10281 1
    __repr__ = __str__
10282
    
10283 1
class HistoryEventFieldList(FrozenClass):
10284
    '''
10285
    :ivar EventFields: 
10286
    :vartype EventFields: Variant 
10287
    '''
10288 1
    def __init__(self):
10289
        self.EventFields = []
10290
        self._freeze()
10291
    
10292 1
    def to_binary(self):
10293
        packet = []
10294
        packet.append(struct.pack('<i', len(self.EventFields)))
10295
        for fieldname in self.EventFields:
10296
            packet.append(fieldname.to_binary())
10297
        return b''.join(packet)
10298
        
10299 1
    @staticmethod
10300
    def from_binary(data):
10301
        obj = HistoryEventFieldList()
10302
        length = struct.unpack('<i', data.read(4))[0]
10303
        if length != -1:
10304
            for _ in range(0, length):
10305
                obj.EventFields.append(Variant.from_binary(data))
10306
        return obj
10307
    
10308 1
    def __str__(self):
10309
        return 'HistoryEventFieldList(' + 'EventFields:' + str(self.EventFields) + ')'
10310
    
10311 1
    __repr__ = __str__
10312
    
10313 1
class StatusChangeNotification(FrozenClass):
10314
    '''
10315
    :ivar Status: 
10316
    :vartype Status: StatusCode 
10317
    :ivar DiagnosticInfo: 
10318
    :vartype DiagnosticInfo: DiagnosticInfo 
10319
    '''
10320 1
    def __init__(self):
10321
        self.Status = StatusCode()
10322
        self.DiagnosticInfo = DiagnosticInfo()
10323
        self._freeze()
10324
    
10325 1
    def to_binary(self):
10326
        packet = []
10327
        packet.append(self.Status.to_binary())
10328
        packet.append(self.DiagnosticInfo.to_binary())
10329
        return b''.join(packet)
10330
        
10331 1
    @staticmethod
10332
    def from_binary(data):
10333
        obj = StatusChangeNotification()
10334
        obj.Status = StatusCode.from_binary(data)
10335
        obj.DiagnosticInfo = DiagnosticInfo.from_binary(data)
10336
        return obj
10337
    
10338 1
    def __str__(self):
10339
        return 'StatusChangeNotification(' + 'Status:' + str(self.Status) + ', '  + \
10340
             'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
10341
    
10342 1
    __repr__ = __str__
10343
    
10344 1
class SubscriptionAcknowledgement(FrozenClass):
10345
    '''
10346
    :ivar SubscriptionId: 
10347
    :vartype SubscriptionId: UInt32 
10348
    :ivar SequenceNumber: 
10349
    :vartype SequenceNumber: UInt32 
10350
    '''
10351 1
    def __init__(self):
10352 1
        self.SubscriptionId = 0
10353 1
        self.SequenceNumber = 0
10354 1
        self._freeze()
10355
    
10356 1
    def to_binary(self):
10357 1
        packet = []
10358 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10359 1
        packet.append(pack_uatype('UInt32', self.SequenceNumber))
10360 1
        return b''.join(packet)
10361
        
10362 1
    @staticmethod
10363
    def from_binary(data):
10364 1
        obj = SubscriptionAcknowledgement()
10365 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10366 1
        obj.SequenceNumber = unpack_uatype('UInt32', data)
10367 1
        return obj
10368
    
10369 1
    def __str__(self):
10370
        return 'SubscriptionAcknowledgement(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
10371
             'SequenceNumber:' + str(self.SequenceNumber) + ')'
10372
    
10373 1
    __repr__ = __str__
10374
    
10375 1
class PublishParameters(FrozenClass):
10376
    '''
10377
    :ivar SubscriptionAcknowledgements: 
10378
    :vartype SubscriptionAcknowledgements: SubscriptionAcknowledgement 
10379
    '''
10380 1
    def __init__(self):
10381 1
        self.SubscriptionAcknowledgements = []
10382 1
        self._freeze()
10383
    
10384 1
    def to_binary(self):
10385 1
        packet = []
10386 1
        packet.append(struct.pack('<i', len(self.SubscriptionAcknowledgements)))
10387 1
        for fieldname in self.SubscriptionAcknowledgements:
10388 1
            packet.append(fieldname.to_binary())
10389 1
        return b''.join(packet)
10390
        
10391 1
    @staticmethod
10392
    def from_binary(data):
10393 1
        obj = PublishParameters()
10394 1
        length = struct.unpack('<i', data.read(4))[0]
10395 1
        if length != -1:
10396 1
            for _ in range(0, length):
10397 1
                obj.SubscriptionAcknowledgements.append(SubscriptionAcknowledgement.from_binary(data))
10398 1
        return obj
10399
    
10400 1
    def __str__(self):
10401
        return 'PublishParameters(' + 'SubscriptionAcknowledgements:' + str(self.SubscriptionAcknowledgements) + ')'
10402
    
10403 1
    __repr__ = __str__
10404
    
10405 1
class PublishRequest(FrozenClass):
10406
    '''
10407
    :ivar TypeId: 
10408
    :vartype TypeId: NodeId 
10409
    :ivar RequestHeader: 
10410
    :vartype RequestHeader: RequestHeader 
10411
    :ivar Parameters: 
10412
    :vartype Parameters: PublishParameters 
10413
    '''
10414 1
    def __init__(self):
10415 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishRequest_Encoding_DefaultBinary)
10416 1
        self.RequestHeader = RequestHeader()
10417 1
        self.Parameters = PublishParameters()
10418 1
        self._freeze()
10419
    
10420 1
    def to_binary(self):
10421 1
        packet = []
10422 1
        packet.append(self.TypeId.to_binary())
10423 1
        packet.append(self.RequestHeader.to_binary())
10424 1
        packet.append(self.Parameters.to_binary())
10425 1
        return b''.join(packet)
10426
        
10427 1
    @staticmethod
10428
    def from_binary(data):
10429
        obj = PublishRequest()
10430
        obj.TypeId = NodeId.from_binary(data)
10431
        obj.RequestHeader = RequestHeader.from_binary(data)
10432
        obj.Parameters = PublishParameters.from_binary(data)
10433
        return obj
10434
    
10435 1
    def __str__(self):
10436
        return 'PublishRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10437
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10438
             'Parameters:' + str(self.Parameters) + ')'
10439
    
10440 1
    __repr__ = __str__
10441
    
10442 1
class PublishResult(FrozenClass):
10443
    '''
10444
    :ivar SubscriptionId: 
10445
    :vartype SubscriptionId: UInt32 
10446
    :ivar AvailableSequenceNumbers: 
10447
    :vartype AvailableSequenceNumbers: UInt32 
10448
    :ivar MoreNotifications: 
10449
    :vartype MoreNotifications: Boolean 
10450
    :ivar NotificationMessage: 
10451
    :vartype NotificationMessage: NotificationMessage 
10452
    :ivar Results: 
10453
    :vartype Results: StatusCode 
10454
    :ivar DiagnosticInfos: 
10455
    :vartype DiagnosticInfos: DiagnosticInfo 
10456
    '''
10457 1
    def __init__(self):
10458 1
        self.SubscriptionId = 0
10459 1
        self.AvailableSequenceNumbers = []
10460 1
        self.MoreNotifications = True
10461 1
        self.NotificationMessage = NotificationMessage()
10462 1
        self.Results = []
10463 1
        self.DiagnosticInfos = []
10464 1
        self._freeze()
10465
    
10466 1
    def to_binary(self):
10467 1
        packet = []
10468 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10469 1
        packet.append(struct.pack('<i', len(self.AvailableSequenceNumbers)))
10470 1
        for fieldname in self.AvailableSequenceNumbers:
10471 1
            packet.append(pack_uatype('UInt32', fieldname))
10472 1
        packet.append(pack_uatype('Boolean', self.MoreNotifications))
10473 1
        packet.append(self.NotificationMessage.to_binary())
10474 1
        packet.append(struct.pack('<i', len(self.Results)))
10475 1
        for fieldname in self.Results:
10476
            packet.append(fieldname.to_binary())
10477 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10478 1
        for fieldname in self.DiagnosticInfos:
10479
            packet.append(fieldname.to_binary())
10480 1
        return b''.join(packet)
10481
        
10482 1
    @staticmethod
10483
    def from_binary(data):
10484 1
        obj = PublishResult()
10485 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10486 1
        obj.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
10487 1
        obj.MoreNotifications = unpack_uatype('Boolean', data)
10488 1
        obj.NotificationMessage = NotificationMessage.from_binary(data)
10489 1
        length = struct.unpack('<i', data.read(4))[0]
10490 1
        if length != -1:
10491 1
            for _ in range(0, length):
10492
                obj.Results.append(StatusCode.from_binary(data))
10493 1
        length = struct.unpack('<i', data.read(4))[0]
10494 1
        if length != -1:
10495 1
            for _ in range(0, length):
10496
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10497 1
        return obj
10498
    
10499 1
    def __str__(self):
10500
        return 'PublishResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
10501
             'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ', '  + \
10502
             'MoreNotifications:' + str(self.MoreNotifications) + ', '  + \
10503
             'NotificationMessage:' + str(self.NotificationMessage) + ', '  + \
10504
             'Results:' + str(self.Results) + ', '  + \
10505
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10506
    
10507 1
    __repr__ = __str__
10508
    
10509 1
class PublishResponse(FrozenClass):
10510
    '''
10511
    :ivar TypeId: 
10512
    :vartype TypeId: NodeId 
10513
    :ivar ResponseHeader: 
10514
    :vartype ResponseHeader: ResponseHeader 
10515
    :ivar Parameters: 
10516
    :vartype Parameters: PublishResult 
10517
    '''
10518 1
    def __init__(self):
10519 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishResponse_Encoding_DefaultBinary)
10520 1
        self.ResponseHeader = ResponseHeader()
10521 1
        self.Parameters = PublishResult()
10522 1
        self._freeze()
10523
    
10524 1
    def to_binary(self):
10525 1
        packet = []
10526 1
        packet.append(self.TypeId.to_binary())
10527 1
        packet.append(self.ResponseHeader.to_binary())
10528 1
        packet.append(self.Parameters.to_binary())
10529 1
        return b''.join(packet)
10530
        
10531 1
    @staticmethod
10532
    def from_binary(data):
10533 1
        obj = PublishResponse()
10534 1
        obj.TypeId = NodeId.from_binary(data)
10535 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10536 1
        obj.Parameters = PublishResult.from_binary(data)
10537 1
        return obj
10538
    
10539 1
    def __str__(self):
10540
        return 'PublishResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10541
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10542
             'Parameters:' + str(self.Parameters) + ')'
10543
    
10544 1
    __repr__ = __str__
10545
    
10546 1
class RepublishParameters(FrozenClass):
10547
    '''
10548
    :ivar SubscriptionId: 
10549
    :vartype SubscriptionId: UInt32 
10550
    :ivar RetransmitSequenceNumber: 
10551
    :vartype RetransmitSequenceNumber: UInt32 
10552
    '''
10553 1
    def __init__(self):
10554
        self.SubscriptionId = 0
10555
        self.RetransmitSequenceNumber = 0
10556
        self._freeze()
10557
    
10558 1
    def to_binary(self):
10559
        packet = []
10560
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10561
        packet.append(pack_uatype('UInt32', self.RetransmitSequenceNumber))
10562
        return b''.join(packet)
10563
        
10564 1
    @staticmethod
10565
    def from_binary(data):
10566
        obj = RepublishParameters()
10567
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10568
        obj.RetransmitSequenceNumber = unpack_uatype('UInt32', data)
10569
        return obj
10570
    
10571 1
    def __str__(self):
10572
        return 'RepublishParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
10573
             'RetransmitSequenceNumber:' + str(self.RetransmitSequenceNumber) + ')'
10574
    
10575 1
    __repr__ = __str__
10576
    
10577 1
class RepublishRequest(FrozenClass):
10578
    '''
10579
    :ivar TypeId: 
10580
    :vartype TypeId: NodeId 
10581
    :ivar RequestHeader: 
10582
    :vartype RequestHeader: RequestHeader 
10583
    :ivar Parameters: 
10584
    :vartype Parameters: RepublishParameters 
10585
    '''
10586 1
    def __init__(self):
10587
        self.TypeId = FourByteNodeId(ObjectIds.RepublishRequest_Encoding_DefaultBinary)
10588
        self.RequestHeader = RequestHeader()
10589
        self.Parameters = RepublishParameters()
10590
        self._freeze()
10591
    
10592 1
    def to_binary(self):
10593
        packet = []
10594
        packet.append(self.TypeId.to_binary())
10595
        packet.append(self.RequestHeader.to_binary())
10596
        packet.append(self.Parameters.to_binary())
10597
        return b''.join(packet)
10598
        
10599 1
    @staticmethod
10600
    def from_binary(data):
10601
        obj = RepublishRequest()
10602
        obj.TypeId = NodeId.from_binary(data)
10603
        obj.RequestHeader = RequestHeader.from_binary(data)
10604
        obj.Parameters = RepublishParameters.from_binary(data)
10605
        return obj
10606
    
10607 1
    def __str__(self):
10608
        return 'RepublishRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10609
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10610
             'Parameters:' + str(self.Parameters) + ')'
10611
    
10612 1
    __repr__ = __str__
10613
    
10614 1
class RepublishResponse(FrozenClass):
10615
    '''
10616
    :ivar TypeId: 
10617
    :vartype TypeId: NodeId 
10618
    :ivar ResponseHeader: 
10619
    :vartype ResponseHeader: ResponseHeader 
10620
    :ivar NotificationMessage: 
10621
    :vartype NotificationMessage: NotificationMessage 
10622
    '''
10623 1
    def __init__(self):
10624
        self.TypeId = FourByteNodeId(ObjectIds.RepublishResponse_Encoding_DefaultBinary)
10625
        self.ResponseHeader = ResponseHeader()
10626
        self.NotificationMessage = NotificationMessage()
10627
        self._freeze()
10628
    
10629 1
    def to_binary(self):
10630
        packet = []
10631
        packet.append(self.TypeId.to_binary())
10632
        packet.append(self.ResponseHeader.to_binary())
10633
        packet.append(self.NotificationMessage.to_binary())
10634
        return b''.join(packet)
10635
        
10636 1
    @staticmethod
10637
    def from_binary(data):
10638
        obj = RepublishResponse()
10639
        obj.TypeId = NodeId.from_binary(data)
10640
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10641
        obj.NotificationMessage = NotificationMessage.from_binary(data)
10642
        return obj
10643
    
10644 1
    def __str__(self):
10645
        return 'RepublishResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10646
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10647
             'NotificationMessage:' + str(self.NotificationMessage) + ')'
10648
    
10649 1
    __repr__ = __str__
10650
    
10651 1
class TransferResult(FrozenClass):
10652
    '''
10653
    :ivar StatusCode: 
10654
    :vartype StatusCode: StatusCode 
10655
    :ivar AvailableSequenceNumbers: 
10656
    :vartype AvailableSequenceNumbers: UInt32 
10657
    '''
10658 1
    def __init__(self):
10659
        self.StatusCode = StatusCode()
10660
        self.AvailableSequenceNumbers = []
10661
        self._freeze()
10662
    
10663 1
    def to_binary(self):
10664
        packet = []
10665
        packet.append(self.StatusCode.to_binary())
10666
        packet.append(struct.pack('<i', len(self.AvailableSequenceNumbers)))
10667
        for fieldname in self.AvailableSequenceNumbers:
10668
            packet.append(pack_uatype('UInt32', fieldname))
10669
        return b''.join(packet)
10670
        
10671 1
    @staticmethod
10672
    def from_binary(data):
10673
        obj = TransferResult()
10674
        obj.StatusCode = StatusCode.from_binary(data)
10675
        obj.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
10676
        return obj
10677
    
10678 1
    def __str__(self):
10679
        return 'TransferResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
10680
             'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ')'
10681
    
10682 1
    __repr__ = __str__
10683
    
10684 1
class TransferSubscriptionsParameters(FrozenClass):
10685
    '''
10686
    :ivar SubscriptionIds: 
10687
    :vartype SubscriptionIds: UInt32 
10688
    :ivar SendInitialValues: 
10689
    :vartype SendInitialValues: Boolean 
10690
    '''
10691 1
    def __init__(self):
10692
        self.SubscriptionIds = []
10693
        self.SendInitialValues = True
10694
        self._freeze()
10695
    
10696 1
    def to_binary(self):
10697
        packet = []
10698
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
10699
        for fieldname in self.SubscriptionIds:
10700
            packet.append(pack_uatype('UInt32', fieldname))
10701
        packet.append(pack_uatype('Boolean', self.SendInitialValues))
10702
        return b''.join(packet)
10703
        
10704 1
    @staticmethod
10705
    def from_binary(data):
10706
        obj = TransferSubscriptionsParameters()
10707
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
10708
        obj.SendInitialValues = unpack_uatype('Boolean', data)
10709
        return obj
10710
    
10711 1
    def __str__(self):
10712
        return 'TransferSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ', '  + \
10713
             'SendInitialValues:' + str(self.SendInitialValues) + ')'
10714
    
10715 1
    __repr__ = __str__
10716
    
10717 1
class TransferSubscriptionsRequest(FrozenClass):
10718
    '''
10719
    :ivar TypeId: 
10720
    :vartype TypeId: NodeId 
10721
    :ivar RequestHeader: 
10722
    :vartype RequestHeader: RequestHeader 
10723
    :ivar Parameters: 
10724
    :vartype Parameters: TransferSubscriptionsParameters 
10725
    '''
10726 1
    def __init__(self):
10727
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary)
10728
        self.RequestHeader = RequestHeader()
10729
        self.Parameters = TransferSubscriptionsParameters()
10730
        self._freeze()
10731
    
10732 1
    def to_binary(self):
10733
        packet = []
10734
        packet.append(self.TypeId.to_binary())
10735
        packet.append(self.RequestHeader.to_binary())
10736
        packet.append(self.Parameters.to_binary())
10737
        return b''.join(packet)
10738
        
10739 1
    @staticmethod
10740
    def from_binary(data):
10741
        obj = TransferSubscriptionsRequest()
10742
        obj.TypeId = NodeId.from_binary(data)
10743
        obj.RequestHeader = RequestHeader.from_binary(data)
10744
        obj.Parameters = TransferSubscriptionsParameters.from_binary(data)
10745
        return obj
10746
    
10747 1
    def __str__(self):
10748
        return 'TransferSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10749
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10750
             'Parameters:' + str(self.Parameters) + ')'
10751
    
10752 1
    __repr__ = __str__
10753
    
10754 1
class TransferSubscriptionsResult(FrozenClass):
10755
    '''
10756
    :ivar Results: 
10757
    :vartype Results: TransferResult 
10758
    :ivar DiagnosticInfos: 
10759
    :vartype DiagnosticInfos: DiagnosticInfo 
10760
    '''
10761 1
    def __init__(self):
10762
        self.Results = []
10763
        self.DiagnosticInfos = []
10764
        self._freeze()
10765
    
10766 1
    def to_binary(self):
10767
        packet = []
10768
        packet.append(struct.pack('<i', len(self.Results)))
10769
        for fieldname in self.Results:
10770
            packet.append(fieldname.to_binary())
10771
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10772
        for fieldname in self.DiagnosticInfos:
10773
            packet.append(fieldname.to_binary())
10774
        return b''.join(packet)
10775
        
10776 1
    @staticmethod
10777
    def from_binary(data):
10778
        obj = TransferSubscriptionsResult()
10779
        length = struct.unpack('<i', data.read(4))[0]
10780
        if length != -1:
10781
            for _ in range(0, length):
10782
                obj.Results.append(TransferResult.from_binary(data))
10783
        length = struct.unpack('<i', data.read(4))[0]
10784
        if length != -1:
10785
            for _ in range(0, length):
10786
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10787
        return obj
10788
    
10789 1
    def __str__(self):
10790
        return 'TransferSubscriptionsResult(' + 'Results:' + str(self.Results) + ', '  + \
10791
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10792
    
10793 1
    __repr__ = __str__
10794
    
10795 1
class TransferSubscriptionsResponse(FrozenClass):
10796
    '''
10797
    :ivar TypeId: 
10798
    :vartype TypeId: NodeId 
10799
    :ivar ResponseHeader: 
10800
    :vartype ResponseHeader: ResponseHeader 
10801
    :ivar Parameters: 
10802
    :vartype Parameters: TransferSubscriptionsResult 
10803
    '''
10804 1
    def __init__(self):
10805
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary)
10806
        self.ResponseHeader = ResponseHeader()
10807
        self.Parameters = TransferSubscriptionsResult()
10808
        self._freeze()
10809
    
10810 1
    def to_binary(self):
10811
        packet = []
10812
        packet.append(self.TypeId.to_binary())
10813
        packet.append(self.ResponseHeader.to_binary())
10814
        packet.append(self.Parameters.to_binary())
10815
        return b''.join(packet)
10816
        
10817 1
    @staticmethod
10818
    def from_binary(data):
10819
        obj = TransferSubscriptionsResponse()
10820
        obj.TypeId = NodeId.from_binary(data)
10821
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10822
        obj.Parameters = TransferSubscriptionsResult.from_binary(data)
10823
        return obj
10824
    
10825 1
    def __str__(self):
10826
        return 'TransferSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10827
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10828
             'Parameters:' + str(self.Parameters) + ')'
10829
    
10830 1
    __repr__ = __str__
10831
    
10832 1
class DeleteSubscriptionsParameters(FrozenClass):
10833
    '''
10834
    :ivar SubscriptionIds: 
10835
    :vartype SubscriptionIds: UInt32 
10836
    '''
10837 1
    def __init__(self):
10838 1
        self.SubscriptionIds = []
10839 1
        self._freeze()
10840
    
10841 1
    def to_binary(self):
10842 1
        packet = []
10843 1
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
10844 1
        for fieldname in self.SubscriptionIds:
10845 1
            packet.append(pack_uatype('UInt32', fieldname))
10846 1
        return b''.join(packet)
10847
        
10848 1
    @staticmethod
10849
    def from_binary(data):
10850 1
        obj = DeleteSubscriptionsParameters()
10851 1
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
10852 1
        return obj
10853
    
10854 1
    def __str__(self):
10855
        return 'DeleteSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
10856
    
10857 1
    __repr__ = __str__
10858
    
10859 1
class DeleteSubscriptionsRequest(FrozenClass):
10860
    '''
10861
    :ivar TypeId: 
10862
    :vartype TypeId: NodeId 
10863
    :ivar RequestHeader: 
10864
    :vartype RequestHeader: RequestHeader 
10865
    :ivar Parameters: 
10866
    :vartype Parameters: DeleteSubscriptionsParameters 
10867
    '''
10868 1
    def __init__(self):
10869 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary)
10870 1
        self.RequestHeader = RequestHeader()
10871 1
        self.Parameters = DeleteSubscriptionsParameters()
10872 1
        self._freeze()
10873
    
10874 1
    def to_binary(self):
10875 1
        packet = []
10876 1
        packet.append(self.TypeId.to_binary())
10877 1
        packet.append(self.RequestHeader.to_binary())
10878 1
        packet.append(self.Parameters.to_binary())
10879 1
        return b''.join(packet)
10880
        
10881 1
    @staticmethod
10882
    def from_binary(data):
10883
        obj = DeleteSubscriptionsRequest()
10884
        obj.TypeId = NodeId.from_binary(data)
10885
        obj.RequestHeader = RequestHeader.from_binary(data)
10886
        obj.Parameters = DeleteSubscriptionsParameters.from_binary(data)
10887
        return obj
10888
    
10889 1
    def __str__(self):
10890
        return 'DeleteSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10891
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10892
             'Parameters:' + str(self.Parameters) + ')'
10893
    
10894 1
    __repr__ = __str__
10895
    
10896 1
class DeleteSubscriptionsResponse(FrozenClass):
10897
    '''
10898
    :ivar TypeId: 
10899
    :vartype TypeId: NodeId 
10900
    :ivar ResponseHeader: 
10901
    :vartype ResponseHeader: ResponseHeader 
10902
    :ivar Results: 
10903
    :vartype Results: StatusCode 
10904
    :ivar DiagnosticInfos: 
10905
    :vartype DiagnosticInfos: DiagnosticInfo 
10906
    '''
10907 1
    def __init__(self):
10908 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary)
10909 1
        self.ResponseHeader = ResponseHeader()
10910 1
        self.Results = []
10911 1
        self.DiagnosticInfos = []
10912 1
        self._freeze()
10913
    
10914 1
    def to_binary(self):
10915 1
        packet = []
10916 1
        packet.append(self.TypeId.to_binary())
10917 1
        packet.append(self.ResponseHeader.to_binary())
10918 1
        packet.append(struct.pack('<i', len(self.Results)))
10919 1
        for fieldname in self.Results:
10920 1
            packet.append(fieldname.to_binary())
10921 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10922 1
        for fieldname in self.DiagnosticInfos:
10923
            packet.append(fieldname.to_binary())
10924 1
        return b''.join(packet)
10925
        
10926 1
    @staticmethod
10927
    def from_binary(data):
10928 1
        obj = DeleteSubscriptionsResponse()
10929 1
        obj.TypeId = NodeId.from_binary(data)
10930 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10931 1
        length = struct.unpack('<i', data.read(4))[0]
10932 1
        if length != -1:
10933 1
            for _ in range(0, length):
10934 1
                obj.Results.append(StatusCode.from_binary(data))
10935 1
        length = struct.unpack('<i', data.read(4))[0]
10936 1
        if length != -1:
10937 1
            for _ in range(0, length):
10938
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10939 1
        return obj
10940
    
10941 1
    def __str__(self):
10942
        return 'DeleteSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10943
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10944
             'Results:' + str(self.Results) + ', '  + \
10945
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10946
    
10947 1
    __repr__ = __str__
10948
    
10949 1
class BuildInfo(FrozenClass):
10950
    '''
10951
    :ivar ProductUri: 
10952
    :vartype ProductUri: String 
10953
    :ivar ManufacturerName: 
10954
    :vartype ManufacturerName: String 
10955
    :ivar ProductName: 
10956
    :vartype ProductName: String 
10957
    :ivar SoftwareVersion: 
10958
    :vartype SoftwareVersion: String 
10959
    :ivar BuildNumber: 
10960
    :vartype BuildNumber: String 
10961
    :ivar BuildDate: 
10962
    :vartype BuildDate: DateTime 
10963
    '''
10964 1
    def __init__(self):
10965
        self.ProductUri = ''
10966
        self.ManufacturerName = ''
10967
        self.ProductName = ''
10968
        self.SoftwareVersion = ''
10969
        self.BuildNumber = ''
10970
        self.BuildDate = datetime.now()
10971
        self._freeze()
10972
    
10973 1
    def to_binary(self):
10974
        packet = []
10975
        packet.append(pack_uatype('String', self.ProductUri))
10976
        packet.append(pack_uatype('String', self.ManufacturerName))
10977
        packet.append(pack_uatype('String', self.ProductName))
10978
        packet.append(pack_uatype('String', self.SoftwareVersion))
10979
        packet.append(pack_uatype('String', self.BuildNumber))
10980
        packet.append(pack_uatype('DateTime', self.BuildDate))
10981
        return b''.join(packet)
10982
        
10983 1
    @staticmethod
10984
    def from_binary(data):
10985
        obj = BuildInfo()
10986
        obj.ProductUri = unpack_uatype('String', data)
10987
        obj.ManufacturerName = unpack_uatype('String', data)
10988
        obj.ProductName = unpack_uatype('String', data)
10989
        obj.SoftwareVersion = unpack_uatype('String', data)
10990
        obj.BuildNumber = unpack_uatype('String', data)
10991
        obj.BuildDate = unpack_uatype('DateTime', data)
10992
        return obj
10993
    
10994 1
    def __str__(self):
10995
        return 'BuildInfo(' + 'ProductUri:' + str(self.ProductUri) + ', '  + \
10996
             'ManufacturerName:' + str(self.ManufacturerName) + ', '  + \
10997
             'ProductName:' + str(self.ProductName) + ', '  + \
10998
             'SoftwareVersion:' + str(self.SoftwareVersion) + ', '  + \
10999
             'BuildNumber:' + str(self.BuildNumber) + ', '  + \
11000
             'BuildDate:' + str(self.BuildDate) + ')'
11001
    
11002 1
    __repr__ = __str__
11003
    
11004 1
class RedundantServerDataType(FrozenClass):
11005
    '''
11006
    :ivar ServerId: 
11007
    :vartype ServerId: String 
11008
    :ivar ServiceLevel: 
11009
    :vartype ServiceLevel: Byte 
11010
    :ivar ServerState: 
11011
    :vartype ServerState: ServerState 
11012
    '''
11013 1
    def __init__(self):
11014
        self.ServerId = ''
11015
        self.ServiceLevel = 0
11016
        self.ServerState = 0
11017
        self._freeze()
11018
    
11019 1
    def to_binary(self):
11020
        packet = []
11021
        packet.append(pack_uatype('String', self.ServerId))
11022
        packet.append(pack_uatype('Byte', self.ServiceLevel))
11023
        packet.append(pack_uatype('UInt32', self.ServerState))
11024
        return b''.join(packet)
11025
        
11026 1
    @staticmethod
11027
    def from_binary(data):
11028
        obj = RedundantServerDataType()
11029
        obj.ServerId = unpack_uatype('String', data)
11030
        obj.ServiceLevel = unpack_uatype('Byte', data)
11031
        obj.ServerState = unpack_uatype('UInt32', data)
11032
        return obj
11033
    
11034 1
    def __str__(self):
11035
        return 'RedundantServerDataType(' + 'ServerId:' + str(self.ServerId) + ', '  + \
11036
             'ServiceLevel:' + str(self.ServiceLevel) + ', '  + \
11037
             'ServerState:' + str(self.ServerState) + ')'
11038
    
11039 1
    __repr__ = __str__
11040
    
11041 1
class EndpointUrlListDataType(FrozenClass):
11042
    '''
11043
    :ivar EndpointUrlList: 
11044
    :vartype EndpointUrlList: String 
11045
    '''
11046 1
    def __init__(self):
11047
        self.EndpointUrlList = []
11048
        self._freeze()
11049
    
11050 1
    def to_binary(self):
11051
        packet = []
11052
        packet.append(struct.pack('<i', len(self.EndpointUrlList)))
11053
        for fieldname in self.EndpointUrlList:
11054
            packet.append(pack_uatype('String', fieldname))
11055
        return b''.join(packet)
11056
        
11057 1
    @staticmethod
11058
    def from_binary(data):
11059
        obj = EndpointUrlListDataType()
11060
        obj.EndpointUrlList = unpack_uatype_array('String', data)
11061
        return obj
11062
    
11063 1
    def __str__(self):
11064
        return 'EndpointUrlListDataType(' + 'EndpointUrlList:' + str(self.EndpointUrlList) + ')'
11065
    
11066 1
    __repr__ = __str__
11067
    
11068 1
class NetworkGroupDataType(FrozenClass):
11069
    '''
11070
    :ivar ServerUri: 
11071
    :vartype ServerUri: String 
11072
    :ivar NetworkPaths: 
11073
    :vartype NetworkPaths: EndpointUrlListDataType 
11074
    '''
11075 1
    def __init__(self):
11076
        self.ServerUri = ''
11077
        self.NetworkPaths = []
11078
        self._freeze()
11079
    
11080 1
    def to_binary(self):
11081
        packet = []
11082
        packet.append(pack_uatype('String', self.ServerUri))
11083
        packet.append(struct.pack('<i', len(self.NetworkPaths)))
11084
        for fieldname in self.NetworkPaths:
11085
            packet.append(fieldname.to_binary())
11086
        return b''.join(packet)
11087
        
11088 1
    @staticmethod
11089
    def from_binary(data):
11090
        obj = NetworkGroupDataType()
11091
        obj.ServerUri = unpack_uatype('String', data)
11092
        length = struct.unpack('<i', data.read(4))[0]
11093
        if length != -1:
11094
            for _ in range(0, length):
11095
                obj.NetworkPaths.append(EndpointUrlListDataType.from_binary(data))
11096
        return obj
11097
    
11098 1
    def __str__(self):
11099
        return 'NetworkGroupDataType(' + 'ServerUri:' + str(self.ServerUri) + ', '  + \
11100
             'NetworkPaths:' + str(self.NetworkPaths) + ')'
11101
    
11102 1
    __repr__ = __str__
11103
    
11104 1
class SamplingIntervalDiagnosticsDataType(FrozenClass):
11105
    '''
11106
    :ivar SamplingInterval: 
11107
    :vartype SamplingInterval: Double 
11108
    :ivar MonitoredItemCount: 
11109
    :vartype MonitoredItemCount: UInt32 
11110
    :ivar MaxMonitoredItemCount: 
11111
    :vartype MaxMonitoredItemCount: UInt32 
11112
    :ivar DisabledMonitoredItemCount: 
11113
    :vartype DisabledMonitoredItemCount: UInt32 
11114
    '''
11115 1
    def __init__(self):
11116
        self.SamplingInterval = 0
11117
        self.MonitoredItemCount = 0
11118
        self.MaxMonitoredItemCount = 0
11119
        self.DisabledMonitoredItemCount = 0
11120
        self._freeze()
11121
    
11122 1
    def to_binary(self):
11123
        packet = []
11124
        packet.append(pack_uatype('Double', self.SamplingInterval))
11125
        packet.append(pack_uatype('UInt32', self.MonitoredItemCount))
11126
        packet.append(pack_uatype('UInt32', self.MaxMonitoredItemCount))
11127
        packet.append(pack_uatype('UInt32', self.DisabledMonitoredItemCount))
11128
        return b''.join(packet)
11129
        
11130 1
    @staticmethod
11131
    def from_binary(data):
11132
        obj = SamplingIntervalDiagnosticsDataType()
11133
        obj.SamplingInterval = unpack_uatype('Double', data)
11134
        obj.MonitoredItemCount = unpack_uatype('UInt32', data)
11135
        obj.MaxMonitoredItemCount = unpack_uatype('UInt32', data)
11136
        obj.DisabledMonitoredItemCount = unpack_uatype('UInt32', data)
11137
        return obj
11138
    
11139 1
    def __str__(self):
11140
        return 'SamplingIntervalDiagnosticsDataType(' + 'SamplingInterval:' + str(self.SamplingInterval) + ', '  + \
11141
             'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', '  + \
11142
             'MaxMonitoredItemCount:' + str(self.MaxMonitoredItemCount) + ', '  + \
11143
             'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ')'
11144
    
11145 1
    __repr__ = __str__
11146
    
11147 1
class ServerDiagnosticsSummaryDataType(FrozenClass):
11148
    '''
11149
    :ivar ServerViewCount: 
11150
    :vartype ServerViewCount: UInt32 
11151
    :ivar CurrentSessionCount: 
11152
    :vartype CurrentSessionCount: UInt32 
11153
    :ivar CumulatedSessionCount: 
11154
    :vartype CumulatedSessionCount: UInt32 
11155
    :ivar SecurityRejectedSessionCount: 
11156
    :vartype SecurityRejectedSessionCount: UInt32 
11157
    :ivar RejectedSessionCount: 
11158
    :vartype RejectedSessionCount: UInt32 
11159
    :ivar SessionTimeoutCount: 
11160
    :vartype SessionTimeoutCount: UInt32 
11161
    :ivar SessionAbortCount: 
11162
    :vartype SessionAbortCount: UInt32 
11163
    :ivar CurrentSubscriptionCount: 
11164
    :vartype CurrentSubscriptionCount: UInt32 
11165
    :ivar CumulatedSubscriptionCount: 
11166
    :vartype CumulatedSubscriptionCount: UInt32 
11167
    :ivar PublishingIntervalCount: 
11168
    :vartype PublishingIntervalCount: UInt32 
11169
    :ivar SecurityRejectedRequestsCount: 
11170
    :vartype SecurityRejectedRequestsCount: UInt32 
11171
    :ivar RejectedRequestsCount: 
11172
    :vartype RejectedRequestsCount: UInt32 
11173
    '''
11174 1
    def __init__(self):
11175
        self.ServerViewCount = 0
11176
        self.CurrentSessionCount = 0
11177
        self.CumulatedSessionCount = 0
11178
        self.SecurityRejectedSessionCount = 0
11179
        self.RejectedSessionCount = 0
11180
        self.SessionTimeoutCount = 0
11181
        self.SessionAbortCount = 0
11182
        self.CurrentSubscriptionCount = 0
11183
        self.CumulatedSubscriptionCount = 0
11184
        self.PublishingIntervalCount = 0
11185
        self.SecurityRejectedRequestsCount = 0
11186
        self.RejectedRequestsCount = 0
11187
        self._freeze()
11188
    
11189 1
    def to_binary(self):
11190
        packet = []
11191
        packet.append(pack_uatype('UInt32', self.ServerViewCount))
11192
        packet.append(pack_uatype('UInt32', self.CurrentSessionCount))
11193
        packet.append(pack_uatype('UInt32', self.CumulatedSessionCount))
11194
        packet.append(pack_uatype('UInt32', self.SecurityRejectedSessionCount))
11195
        packet.append(pack_uatype('UInt32', self.RejectedSessionCount))
11196
        packet.append(pack_uatype('UInt32', self.SessionTimeoutCount))
11197
        packet.append(pack_uatype('UInt32', self.SessionAbortCount))
11198
        packet.append(pack_uatype('UInt32', self.CurrentSubscriptionCount))
11199
        packet.append(pack_uatype('UInt32', self.CumulatedSubscriptionCount))
11200
        packet.append(pack_uatype('UInt32', self.PublishingIntervalCount))
11201
        packet.append(pack_uatype('UInt32', self.SecurityRejectedRequestsCount))
11202
        packet.append(pack_uatype('UInt32', self.RejectedRequestsCount))
11203
        return b''.join(packet)
11204
        
11205 1
    @staticmethod
11206
    def from_binary(data):
11207
        obj = ServerDiagnosticsSummaryDataType()
11208
        obj.ServerViewCount = unpack_uatype('UInt32', data)
11209
        obj.CurrentSessionCount = unpack_uatype('UInt32', data)
11210
        obj.CumulatedSessionCount = unpack_uatype('UInt32', data)
11211
        obj.SecurityRejectedSessionCount = unpack_uatype('UInt32', data)
11212
        obj.RejectedSessionCount = unpack_uatype('UInt32', data)
11213
        obj.SessionTimeoutCount = unpack_uatype('UInt32', data)
11214
        obj.SessionAbortCount = unpack_uatype('UInt32', data)
11215
        obj.CurrentSubscriptionCount = unpack_uatype('UInt32', data)
11216
        obj.CumulatedSubscriptionCount = unpack_uatype('UInt32', data)
11217
        obj.PublishingIntervalCount = unpack_uatype('UInt32', data)
11218
        obj.SecurityRejectedRequestsCount = unpack_uatype('UInt32', data)
11219
        obj.RejectedRequestsCount = unpack_uatype('UInt32', data)
11220
        return obj
11221
    
11222 1
    def __str__(self):
11223
        return 'ServerDiagnosticsSummaryDataType(' + 'ServerViewCount:' + str(self.ServerViewCount) + ', '  + \
11224
             'CurrentSessionCount:' + str(self.CurrentSessionCount) + ', '  + \
11225
             'CumulatedSessionCount:' + str(self.CumulatedSessionCount) + ', '  + \
11226
             'SecurityRejectedSessionCount:' + str(self.SecurityRejectedSessionCount) + ', '  + \
11227
             'RejectedSessionCount:' + str(self.RejectedSessionCount) + ', '  + \
11228
             'SessionTimeoutCount:' + str(self.SessionTimeoutCount) + ', '  + \
11229
             'SessionAbortCount:' + str(self.SessionAbortCount) + ', '  + \
11230
             'CurrentSubscriptionCount:' + str(self.CurrentSubscriptionCount) + ', '  + \
11231
             'CumulatedSubscriptionCount:' + str(self.CumulatedSubscriptionCount) + ', '  + \
11232
             'PublishingIntervalCount:' + str(self.PublishingIntervalCount) + ', '  + \
11233
             'SecurityRejectedRequestsCount:' + str(self.SecurityRejectedRequestsCount) + ', '  + \
11234
             'RejectedRequestsCount:' + str(self.RejectedRequestsCount) + ')'
11235
    
11236 1
    __repr__ = __str__
11237
    
11238 1
class ServerStatusDataType(FrozenClass):
11239
    '''
11240
    :ivar StartTime: 
11241
    :vartype StartTime: DateTime 
11242
    :ivar CurrentTime: 
11243
    :vartype CurrentTime: DateTime 
11244
    :ivar State: 
11245
    :vartype State: ServerState 
11246
    :ivar BuildInfo: 
11247
    :vartype BuildInfo: BuildInfo 
11248
    :ivar SecondsTillShutdown: 
11249
    :vartype SecondsTillShutdown: UInt32 
11250
    :ivar ShutdownReason: 
11251
    :vartype ShutdownReason: LocalizedText 
11252
    '''
11253 1
    def __init__(self):
11254
        self.StartTime = datetime.now()
11255
        self.CurrentTime = datetime.now()
11256
        self.State = 0
11257
        self.BuildInfo = BuildInfo()
11258
        self.SecondsTillShutdown = 0
11259
        self.ShutdownReason = LocalizedText()
11260
        self._freeze()
11261
    
11262 1
    def to_binary(self):
11263
        packet = []
11264
        packet.append(pack_uatype('DateTime', self.StartTime))
11265
        packet.append(pack_uatype('DateTime', self.CurrentTime))
11266
        packet.append(pack_uatype('UInt32', self.State))
11267
        packet.append(self.BuildInfo.to_binary())
11268
        packet.append(pack_uatype('UInt32', self.SecondsTillShutdown))
11269
        packet.append(self.ShutdownReason.to_binary())
11270
        return b''.join(packet)
11271
        
11272 1
    @staticmethod
11273
    def from_binary(data):
11274
        obj = ServerStatusDataType()
11275
        obj.StartTime = unpack_uatype('DateTime', data)
11276
        obj.CurrentTime = unpack_uatype('DateTime', data)
11277
        obj.State = unpack_uatype('UInt32', data)
11278
        obj.BuildInfo = BuildInfo.from_binary(data)
11279
        obj.SecondsTillShutdown = unpack_uatype('UInt32', data)
11280
        obj.ShutdownReason = LocalizedText.from_binary(data)
11281
        return obj
11282
    
11283 1
    def __str__(self):
11284
        return 'ServerStatusDataType(' + 'StartTime:' + str(self.StartTime) + ', '  + \
11285
             'CurrentTime:' + str(self.CurrentTime) + ', '  + \
11286
             'State:' + str(self.State) + ', '  + \
11287
             'BuildInfo:' + str(self.BuildInfo) + ', '  + \
11288
             'SecondsTillShutdown:' + str(self.SecondsTillShutdown) + ', '  + \
11289
             'ShutdownReason:' + str(self.ShutdownReason) + ')'
11290
    
11291 1
    __repr__ = __str__
11292
    
11293 1
class SessionDiagnosticsDataType(FrozenClass):
11294
    '''
11295
    :ivar SessionId: 
11296
    :vartype SessionId: NodeId 
11297
    :ivar SessionName: 
11298
    :vartype SessionName: String 
11299
    :ivar ClientDescription: 
11300
    :vartype ClientDescription: ApplicationDescription 
11301
    :ivar ServerUri: 
11302
    :vartype ServerUri: String 
11303
    :ivar EndpointUrl: 
11304
    :vartype EndpointUrl: String 
11305
    :ivar LocaleIds: 
11306
    :vartype LocaleIds: String 
11307
    :ivar ActualSessionTimeout: 
11308
    :vartype ActualSessionTimeout: Double 
11309
    :ivar MaxResponseMessageSize: 
11310
    :vartype MaxResponseMessageSize: UInt32 
11311
    :ivar ClientConnectionTime: 
11312
    :vartype ClientConnectionTime: DateTime 
11313
    :ivar ClientLastContactTime: 
11314
    :vartype ClientLastContactTime: DateTime 
11315
    :ivar CurrentSubscriptionsCount: 
11316
    :vartype CurrentSubscriptionsCount: UInt32 
11317
    :ivar CurrentMonitoredItemsCount: 
11318
    :vartype CurrentMonitoredItemsCount: UInt32 
11319
    :ivar CurrentPublishRequestsInQueue: 
11320
    :vartype CurrentPublishRequestsInQueue: UInt32 
11321
    :ivar TotalRequestCount: 
11322
    :vartype TotalRequestCount: ServiceCounterDataType 
11323
    :ivar UnauthorizedRequestCount: 
11324
    :vartype UnauthorizedRequestCount: UInt32 
11325
    :ivar ReadCount: 
11326
    :vartype ReadCount: ServiceCounterDataType 
11327
    :ivar HistoryReadCount: 
11328
    :vartype HistoryReadCount: ServiceCounterDataType 
11329
    :ivar WriteCount: 
11330
    :vartype WriteCount: ServiceCounterDataType 
11331
    :ivar HistoryUpdateCount: 
11332
    :vartype HistoryUpdateCount: ServiceCounterDataType 
11333
    :ivar CallCount: 
11334
    :vartype CallCount: ServiceCounterDataType 
11335
    :ivar CreateMonitoredItemsCount: 
11336
    :vartype CreateMonitoredItemsCount: ServiceCounterDataType 
11337
    :ivar ModifyMonitoredItemsCount: 
11338
    :vartype ModifyMonitoredItemsCount: ServiceCounterDataType 
11339
    :ivar SetMonitoringModeCount: 
11340
    :vartype SetMonitoringModeCount: ServiceCounterDataType 
11341
    :ivar SetTriggeringCount: 
11342
    :vartype SetTriggeringCount: ServiceCounterDataType 
11343
    :ivar DeleteMonitoredItemsCount: 
11344
    :vartype DeleteMonitoredItemsCount: ServiceCounterDataType 
11345
    :ivar CreateSubscriptionCount: 
11346
    :vartype CreateSubscriptionCount: ServiceCounterDataType 
11347
    :ivar ModifySubscriptionCount: 
11348
    :vartype ModifySubscriptionCount: ServiceCounterDataType 
11349
    :ivar SetPublishingModeCount: 
11350
    :vartype SetPublishingModeCount: ServiceCounterDataType 
11351
    :ivar PublishCount: 
11352
    :vartype PublishCount: ServiceCounterDataType 
11353
    :ivar RepublishCount: 
11354
    :vartype RepublishCount: ServiceCounterDataType 
11355
    :ivar TransferSubscriptionsCount: 
11356
    :vartype TransferSubscriptionsCount: ServiceCounterDataType 
11357
    :ivar DeleteSubscriptionsCount: 
11358
    :vartype DeleteSubscriptionsCount: ServiceCounterDataType 
11359
    :ivar AddNodesCount: 
11360
    :vartype AddNodesCount: ServiceCounterDataType 
11361
    :ivar AddReferencesCount: 
11362
    :vartype AddReferencesCount: ServiceCounterDataType 
11363
    :ivar DeleteNodesCount: 
11364
    :vartype DeleteNodesCount: ServiceCounterDataType 
11365
    :ivar DeleteReferencesCount: 
11366
    :vartype DeleteReferencesCount: ServiceCounterDataType 
11367
    :ivar BrowseCount: 
11368
    :vartype BrowseCount: ServiceCounterDataType 
11369
    :ivar BrowseNextCount: 
11370
    :vartype BrowseNextCount: ServiceCounterDataType 
11371
    :ivar TranslateBrowsePathsToNodeIdsCount: 
11372
    :vartype TranslateBrowsePathsToNodeIdsCount: ServiceCounterDataType 
11373
    :ivar QueryFirstCount: 
11374
    :vartype QueryFirstCount: ServiceCounterDataType 
11375
    :ivar QueryNextCount: 
11376
    :vartype QueryNextCount: ServiceCounterDataType 
11377
    :ivar RegisterNodesCount: 
11378
    :vartype RegisterNodesCount: ServiceCounterDataType 
11379
    :ivar UnregisterNodesCount: 
11380
    :vartype UnregisterNodesCount: ServiceCounterDataType 
11381
    '''
11382 1
    def __init__(self):
11383
        self.SessionId = NodeId()
11384
        self.SessionName = ''
11385
        self.ClientDescription = ApplicationDescription()
11386
        self.ServerUri = ''
11387
        self.EndpointUrl = ''
11388
        self.LocaleIds = []
11389
        self.ActualSessionTimeout = 0
11390
        self.MaxResponseMessageSize = 0
11391
        self.ClientConnectionTime = datetime.now()
11392
        self.ClientLastContactTime = datetime.now()
11393
        self.CurrentSubscriptionsCount = 0
11394
        self.CurrentMonitoredItemsCount = 0
11395
        self.CurrentPublishRequestsInQueue = 0
11396
        self.TotalRequestCount = ServiceCounterDataType()
11397
        self.UnauthorizedRequestCount = 0
11398
        self.ReadCount = ServiceCounterDataType()
11399
        self.HistoryReadCount = ServiceCounterDataType()
11400
        self.WriteCount = ServiceCounterDataType()
11401
        self.HistoryUpdateCount = ServiceCounterDataType()
11402
        self.CallCount = ServiceCounterDataType()
11403
        self.CreateMonitoredItemsCount = ServiceCounterDataType()
11404
        self.ModifyMonitoredItemsCount = ServiceCounterDataType()
11405
        self.SetMonitoringModeCount = ServiceCounterDataType()
11406
        self.SetTriggeringCount = ServiceCounterDataType()
11407
        self.DeleteMonitoredItemsCount = ServiceCounterDataType()
11408
        self.CreateSubscriptionCount = ServiceCounterDataType()
11409
        self.ModifySubscriptionCount = ServiceCounterDataType()
11410
        self.SetPublishingModeCount = ServiceCounterDataType()
11411
        self.PublishCount = ServiceCounterDataType()
11412
        self.RepublishCount = ServiceCounterDataType()
11413
        self.TransferSubscriptionsCount = ServiceCounterDataType()
11414
        self.DeleteSubscriptionsCount = ServiceCounterDataType()
11415
        self.AddNodesCount = ServiceCounterDataType()
11416
        self.AddReferencesCount = ServiceCounterDataType()
11417
        self.DeleteNodesCount = ServiceCounterDataType()
11418
        self.DeleteReferencesCount = ServiceCounterDataType()
11419
        self.BrowseCount = ServiceCounterDataType()
11420
        self.BrowseNextCount = ServiceCounterDataType()
11421
        self.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType()
11422
        self.QueryFirstCount = ServiceCounterDataType()
11423
        self.QueryNextCount = ServiceCounterDataType()
11424
        self.RegisterNodesCount = ServiceCounterDataType()
11425
        self.UnregisterNodesCount = ServiceCounterDataType()
11426
        self._freeze()
11427
    
11428 1
    def to_binary(self):
11429
        packet = []
11430
        packet.append(self.SessionId.to_binary())
11431
        packet.append(pack_uatype('String', self.SessionName))
11432
        packet.append(self.ClientDescription.to_binary())
11433
        packet.append(pack_uatype('String', self.ServerUri))
11434
        packet.append(pack_uatype('String', self.EndpointUrl))
11435
        packet.append(struct.pack('<i', len(self.LocaleIds)))
11436
        for fieldname in self.LocaleIds:
11437
            packet.append(pack_uatype('String', fieldname))
11438
        packet.append(pack_uatype('Double', self.ActualSessionTimeout))
11439
        packet.append(pack_uatype('UInt32', self.MaxResponseMessageSize))
11440
        packet.append(pack_uatype('DateTime', self.ClientConnectionTime))
11441
        packet.append(pack_uatype('DateTime', self.ClientLastContactTime))
11442
        packet.append(pack_uatype('UInt32', self.CurrentSubscriptionsCount))
11443
        packet.append(pack_uatype('UInt32', self.CurrentMonitoredItemsCount))
11444
        packet.append(pack_uatype('UInt32', self.CurrentPublishRequestsInQueue))
11445
        packet.append(self.TotalRequestCount.to_binary())
11446
        packet.append(pack_uatype('UInt32', self.UnauthorizedRequestCount))
11447
        packet.append(self.ReadCount.to_binary())
11448
        packet.append(self.HistoryReadCount.to_binary())
11449
        packet.append(self.WriteCount.to_binary())
11450
        packet.append(self.HistoryUpdateCount.to_binary())
11451
        packet.append(self.CallCount.to_binary())
11452
        packet.append(self.CreateMonitoredItemsCount.to_binary())
11453
        packet.append(self.ModifyMonitoredItemsCount.to_binary())
11454
        packet.append(self.SetMonitoringModeCount.to_binary())
11455
        packet.append(self.SetTriggeringCount.to_binary())
11456
        packet.append(self.DeleteMonitoredItemsCount.to_binary())
11457
        packet.append(self.CreateSubscriptionCount.to_binary())
11458
        packet.append(self.ModifySubscriptionCount.to_binary())
11459
        packet.append(self.SetPublishingModeCount.to_binary())
11460
        packet.append(self.PublishCount.to_binary())
11461
        packet.append(self.RepublishCount.to_binary())
11462
        packet.append(self.TransferSubscriptionsCount.to_binary())
11463
        packet.append(self.DeleteSubscriptionsCount.to_binary())
11464
        packet.append(self.AddNodesCount.to_binary())
11465
        packet.append(self.AddReferencesCount.to_binary())
11466
        packet.append(self.DeleteNodesCount.to_binary())
11467
        packet.append(self.DeleteReferencesCount.to_binary())
11468
        packet.append(self.BrowseCount.to_binary())
11469
        packet.append(self.BrowseNextCount.to_binary())
11470
        packet.append(self.TranslateBrowsePathsToNodeIdsCount.to_binary())
11471
        packet.append(self.QueryFirstCount.to_binary())
11472
        packet.append(self.QueryNextCount.to_binary())
11473
        packet.append(self.RegisterNodesCount.to_binary())
11474
        packet.append(self.UnregisterNodesCount.to_binary())
11475
        return b''.join(packet)
11476
        
11477 1
    @staticmethod
11478
    def from_binary(data):
11479
        obj = SessionDiagnosticsDataType()
11480
        obj.SessionId = NodeId.from_binary(data)
11481
        obj.SessionName = unpack_uatype('String', data)
11482
        obj.ClientDescription = ApplicationDescription.from_binary(data)
11483
        obj.ServerUri = unpack_uatype('String', data)
11484
        obj.EndpointUrl = unpack_uatype('String', data)
11485
        obj.LocaleIds = unpack_uatype_array('String', data)
11486
        obj.ActualSessionTimeout = unpack_uatype('Double', data)
11487
        obj.MaxResponseMessageSize = unpack_uatype('UInt32', data)
11488
        obj.ClientConnectionTime = unpack_uatype('DateTime', data)
11489
        obj.ClientLastContactTime = unpack_uatype('DateTime', data)
11490
        obj.CurrentSubscriptionsCount = unpack_uatype('UInt32', data)
11491
        obj.CurrentMonitoredItemsCount = unpack_uatype('UInt32', data)
11492
        obj.CurrentPublishRequestsInQueue = unpack_uatype('UInt32', data)
11493
        obj.TotalRequestCount = ServiceCounterDataType.from_binary(data)
11494
        obj.UnauthorizedRequestCount = unpack_uatype('UInt32', data)
11495
        obj.ReadCount = ServiceCounterDataType.from_binary(data)
11496
        obj.HistoryReadCount = ServiceCounterDataType.from_binary(data)
11497
        obj.WriteCount = ServiceCounterDataType.from_binary(data)
11498
        obj.HistoryUpdateCount = ServiceCounterDataType.from_binary(data)
11499
        obj.CallCount = ServiceCounterDataType.from_binary(data)
11500
        obj.CreateMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11501
        obj.ModifyMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11502
        obj.SetMonitoringModeCount = ServiceCounterDataType.from_binary(data)
11503
        obj.SetTriggeringCount = ServiceCounterDataType.from_binary(data)
11504
        obj.DeleteMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11505
        obj.CreateSubscriptionCount = ServiceCounterDataType.from_binary(data)
11506
        obj.ModifySubscriptionCount = ServiceCounterDataType.from_binary(data)
11507
        obj.SetPublishingModeCount = ServiceCounterDataType.from_binary(data)
11508
        obj.PublishCount = ServiceCounterDataType.from_binary(data)
11509
        obj.RepublishCount = ServiceCounterDataType.from_binary(data)
11510
        obj.TransferSubscriptionsCount = ServiceCounterDataType.from_binary(data)
11511
        obj.DeleteSubscriptionsCount = ServiceCounterDataType.from_binary(data)
11512
        obj.AddNodesCount = ServiceCounterDataType.from_binary(data)
11513
        obj.AddReferencesCount = ServiceCounterDataType.from_binary(data)
11514
        obj.DeleteNodesCount = ServiceCounterDataType.from_binary(data)
11515
        obj.DeleteReferencesCount = ServiceCounterDataType.from_binary(data)
11516
        obj.BrowseCount = ServiceCounterDataType.from_binary(data)
11517
        obj.BrowseNextCount = ServiceCounterDataType.from_binary(data)
11518
        obj.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType.from_binary(data)
11519
        obj.QueryFirstCount = ServiceCounterDataType.from_binary(data)
11520
        obj.QueryNextCount = ServiceCounterDataType.from_binary(data)
11521
        obj.RegisterNodesCount = ServiceCounterDataType.from_binary(data)
11522
        obj.UnregisterNodesCount = ServiceCounterDataType.from_binary(data)
11523
        return obj
11524
    
11525 1
    def __str__(self):
11526
        return 'SessionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', '  + \
11527
             'SessionName:' + str(self.SessionName) + ', '  + \
11528
             'ClientDescription:' + str(self.ClientDescription) + ', '  + \
11529
             'ServerUri:' + str(self.ServerUri) + ', '  + \
11530
             'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
11531
             'LocaleIds:' + str(self.LocaleIds) + ', '  + \
11532
             'ActualSessionTimeout:' + str(self.ActualSessionTimeout) + ', '  + \
11533
             'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ', '  + \
11534
             'ClientConnectionTime:' + str(self.ClientConnectionTime) + ', '  + \
11535
             'ClientLastContactTime:' + str(self.ClientLastContactTime) + ', '  + \
11536
             'CurrentSubscriptionsCount:' + str(self.CurrentSubscriptionsCount) + ', '  + \
11537
             'CurrentMonitoredItemsCount:' + str(self.CurrentMonitoredItemsCount) + ', '  + \
11538
             'CurrentPublishRequestsInQueue:' + str(self.CurrentPublishRequestsInQueue) + ', '  + \
11539
             'TotalRequestCount:' + str(self.TotalRequestCount) + ', '  + \
11540
             'UnauthorizedRequestCount:' + str(self.UnauthorizedRequestCount) + ', '  + \
11541
             'ReadCount:' + str(self.ReadCount) + ', '  + \
11542
             'HistoryReadCount:' + str(self.HistoryReadCount) + ', '  + \
11543
             'WriteCount:' + str(self.WriteCount) + ', '  + \
11544
             'HistoryUpdateCount:' + str(self.HistoryUpdateCount) + ', '  + \
11545
             'CallCount:' + str(self.CallCount) + ', '  + \
11546
             'CreateMonitoredItemsCount:' + str(self.CreateMonitoredItemsCount) + ', '  + \
11547
             'ModifyMonitoredItemsCount:' + str(self.ModifyMonitoredItemsCount) + ', '  + \
11548
             'SetMonitoringModeCount:' + str(self.SetMonitoringModeCount) + ', '  + \
11549
             'SetTriggeringCount:' + str(self.SetTriggeringCount) + ', '  + \
11550
             'DeleteMonitoredItemsCount:' + str(self.DeleteMonitoredItemsCount) + ', '  + \
11551
             'CreateSubscriptionCount:' + str(self.CreateSubscriptionCount) + ', '  + \
11552
             'ModifySubscriptionCount:' + str(self.ModifySubscriptionCount) + ', '  + \
11553
             'SetPublishingModeCount:' + str(self.SetPublishingModeCount) + ', '  + \
11554
             'PublishCount:' + str(self.PublishCount) + ', '  + \
11555
             'RepublishCount:' + str(self.RepublishCount) + ', '  + \
11556
             'TransferSubscriptionsCount:' + str(self.TransferSubscriptionsCount) + ', '  + \
11557
             'DeleteSubscriptionsCount:' + str(self.DeleteSubscriptionsCount) + ', '  + \
11558
             'AddNodesCount:' + str(self.AddNodesCount) + ', '  + \
11559
             'AddReferencesCount:' + str(self.AddReferencesCount) + ', '  + \
11560
             'DeleteNodesCount:' + str(self.DeleteNodesCount) + ', '  + \
11561
             'DeleteReferencesCount:' + str(self.DeleteReferencesCount) + ', '  + \
11562
             'BrowseCount:' + str(self.BrowseCount) + ', '  + \
11563
             'BrowseNextCount:' + str(self.BrowseNextCount) + ', '  + \
11564
             'TranslateBrowsePathsToNodeIdsCount:' + str(self.TranslateBrowsePathsToNodeIdsCount) + ', '  + \
11565
             'QueryFirstCount:' + str(self.QueryFirstCount) + ', '  + \
11566
             'QueryNextCount:' + str(self.QueryNextCount) + ', '  + \
11567
             'RegisterNodesCount:' + str(self.RegisterNodesCount) + ', '  + \
11568
             'UnregisterNodesCount:' + str(self.UnregisterNodesCount) + ')'
11569
    
11570 1
    __repr__ = __str__
11571
    
11572 1
class SessionSecurityDiagnosticsDataType(FrozenClass):
11573
    '''
11574
    :ivar SessionId: 
11575
    :vartype SessionId: NodeId 
11576
    :ivar ClientUserIdOfSession: 
11577
    :vartype ClientUserIdOfSession: String 
11578
    :ivar ClientUserIdHistory: 
11579
    :vartype ClientUserIdHistory: String 
11580
    :ivar AuthenticationMechanism: 
11581
    :vartype AuthenticationMechanism: String 
11582
    :ivar Encoding: 
11583
    :vartype Encoding: String 
11584
    :ivar TransportProtocol: 
11585
    :vartype TransportProtocol: String 
11586
    :ivar SecurityMode: 
11587
    :vartype SecurityMode: MessageSecurityMode 
11588
    :ivar SecurityPolicyUri: 
11589
    :vartype SecurityPolicyUri: String 
11590
    :ivar ClientCertificate: 
11591
    :vartype ClientCertificate: ByteString 
11592
    '''
11593 1
    def __init__(self):
11594
        self.SessionId = NodeId()
11595
        self.ClientUserIdOfSession = ''
11596
        self.ClientUserIdHistory = []
11597
        self.AuthenticationMechanism = ''
11598
        self.Encoding = ''
11599
        self.TransportProtocol = ''
11600
        self.SecurityMode = 0
11601
        self.SecurityPolicyUri = ''
11602
        self.ClientCertificate = b''
11603
        self._freeze()
11604
    
11605 1
    def to_binary(self):
11606
        packet = []
11607
        packet.append(self.SessionId.to_binary())
11608
        packet.append(pack_uatype('String', self.ClientUserIdOfSession))
11609
        packet.append(struct.pack('<i', len(self.ClientUserIdHistory)))
11610
        for fieldname in self.ClientUserIdHistory:
11611
            packet.append(pack_uatype('String', fieldname))
11612
        packet.append(pack_uatype('String', self.AuthenticationMechanism))
11613
        packet.append(pack_uatype('String', self.Encoding))
11614
        packet.append(pack_uatype('String', self.TransportProtocol))
11615
        packet.append(pack_uatype('UInt32', self.SecurityMode))
11616
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
11617
        packet.append(pack_uatype('ByteString', self.ClientCertificate))
11618
        return b''.join(packet)
11619
        
11620 1
    @staticmethod
11621
    def from_binary(data):
11622
        obj = SessionSecurityDiagnosticsDataType()
11623
        obj.SessionId = NodeId.from_binary(data)
11624
        obj.ClientUserIdOfSession = unpack_uatype('String', data)
11625
        obj.ClientUserIdHistory = unpack_uatype_array('String', data)
11626
        obj.AuthenticationMechanism = unpack_uatype('String', data)
11627
        obj.Encoding = unpack_uatype('String', data)
11628
        obj.TransportProtocol = unpack_uatype('String', data)
11629
        obj.SecurityMode = unpack_uatype('UInt32', data)
11630
        obj.SecurityPolicyUri = unpack_uatype('String', data)
11631
        obj.ClientCertificate = unpack_uatype('ByteString', data)
11632
        return obj
11633
    
11634 1
    def __str__(self):
11635
        return 'SessionSecurityDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', '  + \
11636
             'ClientUserIdOfSession:' + str(self.ClientUserIdOfSession) + ', '  + \
11637
             'ClientUserIdHistory:' + str(self.ClientUserIdHistory) + ', '  + \
11638
             'AuthenticationMechanism:' + str(self.AuthenticationMechanism) + ', '  + \
11639
             'Encoding:' + str(self.Encoding) + ', '  + \
11640
             'TransportProtocol:' + str(self.TransportProtocol) + ', '  + \
11641
             'SecurityMode:' + str(self.SecurityMode) + ', '  + \
11642
             'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', '  + \
11643
             'ClientCertificate:' + str(self.ClientCertificate) + ')'
11644
    
11645 1
    __repr__ = __str__
11646
    
11647 1
class ServiceCounterDataType(FrozenClass):
11648
    '''
11649
    :ivar TotalCount: 
11650
    :vartype TotalCount: UInt32 
11651
    :ivar ErrorCount: 
11652
    :vartype ErrorCount: UInt32 
11653
    '''
11654 1
    def __init__(self):
11655
        self.TotalCount = 0
11656
        self.ErrorCount = 0
11657
        self._freeze()
11658
    
11659 1
    def to_binary(self):
11660
        packet = []
11661
        packet.append(pack_uatype('UInt32', self.TotalCount))
11662
        packet.append(pack_uatype('UInt32', self.ErrorCount))
11663
        return b''.join(packet)
11664
        
11665 1
    @staticmethod
11666
    def from_binary(data):
11667
        obj = ServiceCounterDataType()
11668
        obj.TotalCount = unpack_uatype('UInt32', data)
11669
        obj.ErrorCount = unpack_uatype('UInt32', data)
11670
        return obj
11671
    
11672 1
    def __str__(self):
11673
        return 'ServiceCounterDataType(' + 'TotalCount:' + str(self.TotalCount) + ', '  + \
11674
             'ErrorCount:' + str(self.ErrorCount) + ')'
11675
    
11676 1
    __repr__ = __str__
11677
    
11678 1
class StatusResult(FrozenClass):
11679
    '''
11680
    :ivar StatusCode: 
11681
    :vartype StatusCode: StatusCode 
11682
    :ivar DiagnosticInfo: 
11683
    :vartype DiagnosticInfo: DiagnosticInfo 
11684
    '''
11685 1
    def __init__(self):
11686
        self.StatusCode = StatusCode()
11687
        self.DiagnosticInfo = DiagnosticInfo()
11688
        self._freeze()
11689
    
11690 1
    def to_binary(self):
11691
        packet = []
11692
        packet.append(self.StatusCode.to_binary())
11693
        packet.append(self.DiagnosticInfo.to_binary())
11694
        return b''.join(packet)
11695
        
11696 1
    @staticmethod
11697
    def from_binary(data):
11698
        obj = StatusResult()
11699
        obj.StatusCode = StatusCode.from_binary(data)
11700
        obj.DiagnosticInfo = DiagnosticInfo.from_binary(data)
11701
        return obj
11702
    
11703 1
    def __str__(self):
11704
        return 'StatusResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
11705
             'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
11706
    
11707 1
    __repr__ = __str__
11708
    
11709 1
class SubscriptionDiagnosticsDataType(FrozenClass):
11710
    '''
11711
    :ivar SessionId: 
11712
    :vartype SessionId: NodeId 
11713
    :ivar SubscriptionId: 
11714
    :vartype SubscriptionId: UInt32 
11715
    :ivar Priority: 
11716
    :vartype Priority: Byte 
11717
    :ivar PublishingInterval: 
11718
    :vartype PublishingInterval: Double 
11719
    :ivar MaxKeepAliveCount: 
11720
    :vartype MaxKeepAliveCount: UInt32 
11721
    :ivar MaxLifetimeCount: 
11722
    :vartype MaxLifetimeCount: UInt32 
11723
    :ivar MaxNotificationsPerPublish: 
11724
    :vartype MaxNotificationsPerPublish: UInt32 
11725
    :ivar PublishingEnabled: 
11726
    :vartype PublishingEnabled: Boolean 
11727
    :ivar ModifyCount: 
11728
    :vartype ModifyCount: UInt32 
11729
    :ivar EnableCount: 
11730
    :vartype EnableCount: UInt32 
11731
    :ivar DisableCount: 
11732
    :vartype DisableCount: UInt32 
11733
    :ivar RepublishRequestCount: 
11734
    :vartype RepublishRequestCount: UInt32 
11735
    :ivar RepublishMessageRequestCount: 
11736
    :vartype RepublishMessageRequestCount: UInt32 
11737
    :ivar RepublishMessageCount: 
11738
    :vartype RepublishMessageCount: UInt32 
11739
    :ivar TransferRequestCount: 
11740
    :vartype TransferRequestCount: UInt32 
11741
    :ivar TransferredToAltClientCount: 
11742
    :vartype TransferredToAltClientCount: UInt32 
11743
    :ivar TransferredToSameClientCount: 
11744
    :vartype TransferredToSameClientCount: UInt32 
11745
    :ivar PublishRequestCount: 
11746
    :vartype PublishRequestCount: UInt32 
11747
    :ivar DataChangeNotificationsCount: 
11748
    :vartype DataChangeNotificationsCount: UInt32 
11749
    :ivar EventNotificationsCount: 
11750
    :vartype EventNotificationsCount: UInt32 
11751
    :ivar NotificationsCount: 
11752
    :vartype NotificationsCount: UInt32 
11753
    :ivar LatePublishRequestCount: 
11754
    :vartype LatePublishRequestCount: UInt32 
11755
    :ivar CurrentKeepAliveCount: 
11756
    :vartype CurrentKeepAliveCount: UInt32 
11757
    :ivar CurrentLifetimeCount: 
11758
    :vartype CurrentLifetimeCount: UInt32 
11759
    :ivar UnacknowledgedMessageCount: 
11760
    :vartype UnacknowledgedMessageCount: UInt32 
11761
    :ivar DiscardedMessageCount: 
11762
    :vartype DiscardedMessageCount: UInt32 
11763
    :ivar MonitoredItemCount: 
11764
    :vartype MonitoredItemCount: UInt32 
11765
    :ivar DisabledMonitoredItemCount: 
11766
    :vartype DisabledMonitoredItemCount: UInt32 
11767
    :ivar MonitoringQueueOverflowCount: 
11768
    :vartype MonitoringQueueOverflowCount: UInt32 
11769
    :ivar NextSequenceNumber: 
11770
    :vartype NextSequenceNumber: UInt32 
11771
    :ivar EventQueueOverFlowCount: 
11772
    :vartype EventQueueOverFlowCount: UInt32 
11773
    '''
11774 1
    def __init__(self):
11775
        self.SessionId = NodeId()
11776
        self.SubscriptionId = 0
11777
        self.Priority = 0
11778
        self.PublishingInterval = 0
11779
        self.MaxKeepAliveCount = 0
11780
        self.MaxLifetimeCount = 0
11781
        self.MaxNotificationsPerPublish = 0
11782
        self.PublishingEnabled = True
11783
        self.ModifyCount = 0
11784
        self.EnableCount = 0
11785
        self.DisableCount = 0
11786
        self.RepublishRequestCount = 0
11787
        self.RepublishMessageRequestCount = 0
11788
        self.RepublishMessageCount = 0
11789
        self.TransferRequestCount = 0
11790
        self.TransferredToAltClientCount = 0
11791
        self.TransferredToSameClientCount = 0
11792
        self.PublishRequestCount = 0
11793
        self.DataChangeNotificationsCount = 0
11794
        self.EventNotificationsCount = 0
11795
        self.NotificationsCount = 0
11796
        self.LatePublishRequestCount = 0
11797
        self.CurrentKeepAliveCount = 0
11798
        self.CurrentLifetimeCount = 0
11799
        self.UnacknowledgedMessageCount = 0
11800
        self.DiscardedMessageCount = 0
11801
        self.MonitoredItemCount = 0
11802
        self.DisabledMonitoredItemCount = 0
11803
        self.MonitoringQueueOverflowCount = 0
11804
        self.NextSequenceNumber = 0
11805
        self.EventQueueOverFlowCount = 0
11806
        self._freeze()
11807
    
11808 1
    def to_binary(self):
11809
        packet = []
11810
        packet.append(self.SessionId.to_binary())
11811
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
11812
        packet.append(pack_uatype('Byte', self.Priority))
11813
        packet.append(pack_uatype('Double', self.PublishingInterval))
11814
        packet.append(pack_uatype('UInt32', self.MaxKeepAliveCount))
11815
        packet.append(pack_uatype('UInt32', self.MaxLifetimeCount))
11816
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
11817
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
11818
        packet.append(pack_uatype('UInt32', self.ModifyCount))
11819
        packet.append(pack_uatype('UInt32', self.EnableCount))
11820
        packet.append(pack_uatype('UInt32', self.DisableCount))
11821
        packet.append(pack_uatype('UInt32', self.RepublishRequestCount))
11822
        packet.append(pack_uatype('UInt32', self.RepublishMessageRequestCount))
11823
        packet.append(pack_uatype('UInt32', self.RepublishMessageCount))
11824
        packet.append(pack_uatype('UInt32', self.TransferRequestCount))
11825
        packet.append(pack_uatype('UInt32', self.TransferredToAltClientCount))
11826
        packet.append(pack_uatype('UInt32', self.TransferredToSameClientCount))
11827
        packet.append(pack_uatype('UInt32', self.PublishRequestCount))
11828
        packet.append(pack_uatype('UInt32', self.DataChangeNotificationsCount))
11829
        packet.append(pack_uatype('UInt32', self.EventNotificationsCount))
11830
        packet.append(pack_uatype('UInt32', self.NotificationsCount))
11831
        packet.append(pack_uatype('UInt32', self.LatePublishRequestCount))
11832
        packet.append(pack_uatype('UInt32', self.CurrentKeepAliveCount))
11833
        packet.append(pack_uatype('UInt32', self.CurrentLifetimeCount))
11834
        packet.append(pack_uatype('UInt32', self.UnacknowledgedMessageCount))
11835
        packet.append(pack_uatype('UInt32', self.DiscardedMessageCount))
11836
        packet.append(pack_uatype('UInt32', self.MonitoredItemCount))
11837
        packet.append(pack_uatype('UInt32', self.DisabledMonitoredItemCount))
11838
        packet.append(pack_uatype('UInt32', self.MonitoringQueueOverflowCount))
11839
        packet.append(pack_uatype('UInt32', self.NextSequenceNumber))
11840
        packet.append(pack_uatype('UInt32', self.EventQueueOverFlowCount))
11841
        return b''.join(packet)
11842
        
11843 1
    @staticmethod
11844
    def from_binary(data):
11845
        obj = SubscriptionDiagnosticsDataType()
11846
        obj.SessionId = NodeId.from_binary(data)
11847
        obj.SubscriptionId = unpack_uatype('UInt32', data)
11848
        obj.Priority = unpack_uatype('Byte', data)
11849
        obj.PublishingInterval = unpack_uatype('Double', data)
11850
        obj.MaxKeepAliveCount = unpack_uatype('UInt32', data)
11851
        obj.MaxLifetimeCount = unpack_uatype('UInt32', data)
11852
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
11853
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
11854
        obj.ModifyCount = unpack_uatype('UInt32', data)
11855
        obj.EnableCount = unpack_uatype('UInt32', data)
11856
        obj.DisableCount = unpack_uatype('UInt32', data)
11857
        obj.RepublishRequestCount = unpack_uatype('UInt32', data)
11858
        obj.RepublishMessageRequestCount = unpack_uatype('UInt32', data)
11859
        obj.RepublishMessageCount = unpack_uatype('UInt32', data)
11860
        obj.TransferRequestCount = unpack_uatype('UInt32', data)
11861
        obj.TransferredToAltClientCount = unpack_uatype('UInt32', data)
11862
        obj.TransferredToSameClientCount = unpack_uatype('UInt32', data)
11863
        obj.PublishRequestCount = unpack_uatype('UInt32', data)
11864
        obj.DataChangeNotificationsCount = unpack_uatype('UInt32', data)
11865
        obj.EventNotificationsCount = unpack_uatype('UInt32', data)
11866
        obj.NotificationsCount = unpack_uatype('UInt32', data)
11867
        obj.LatePublishRequestCount = unpack_uatype('UInt32', data)
11868
        obj.CurrentKeepAliveCount = unpack_uatype('UInt32', data)
11869
        obj.CurrentLifetimeCount = unpack_uatype('UInt32', data)
11870
        obj.UnacknowledgedMessageCount = unpack_uatype('UInt32', data)
11871
        obj.DiscardedMessageCount = unpack_uatype('UInt32', data)
11872
        obj.MonitoredItemCount = unpack_uatype('UInt32', data)
11873
        obj.DisabledMonitoredItemCount = unpack_uatype('UInt32', data)
11874
        obj.MonitoringQueueOverflowCount = unpack_uatype('UInt32', data)
11875
        obj.NextSequenceNumber = unpack_uatype('UInt32', data)
11876
        obj.EventQueueOverFlowCount = unpack_uatype('UInt32', data)
11877
        return obj
11878
    
11879 1
    def __str__(self):
11880
        return 'SubscriptionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', '  + \
11881
             'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
11882
             'Priority:' + str(self.Priority) + ', '  + \
11883
             'PublishingInterval:' + str(self.PublishingInterval) + ', '  + \
11884
             'MaxKeepAliveCount:' + str(self.MaxKeepAliveCount) + ', '  + \
11885
             'MaxLifetimeCount:' + str(self.MaxLifetimeCount) + ', '  + \
11886
             'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', '  + \
11887
             'PublishingEnabled:' + str(self.PublishingEnabled) + ', '  + \
11888
             'ModifyCount:' + str(self.ModifyCount) + ', '  + \
11889
             'EnableCount:' + str(self.EnableCount) + ', '  + \
11890
             'DisableCount:' + str(self.DisableCount) + ', '  + \
11891
             'RepublishRequestCount:' + str(self.RepublishRequestCount) + ', '  + \
11892
             'RepublishMessageRequestCount:' + str(self.RepublishMessageRequestCount) + ', '  + \
11893
             'RepublishMessageCount:' + str(self.RepublishMessageCount) + ', '  + \
11894
             'TransferRequestCount:' + str(self.TransferRequestCount) + ', '  + \
11895
             'TransferredToAltClientCount:' + str(self.TransferredToAltClientCount) + ', '  + \
11896
             'TransferredToSameClientCount:' + str(self.TransferredToSameClientCount) + ', '  + \
11897
             'PublishRequestCount:' + str(self.PublishRequestCount) + ', '  + \
11898
             'DataChangeNotificationsCount:' + str(self.DataChangeNotificationsCount) + ', '  + \
11899
             'EventNotificationsCount:' + str(self.EventNotificationsCount) + ', '  + \
11900
             'NotificationsCount:' + str(self.NotificationsCount) + ', '  + \
11901
             'LatePublishRequestCount:' + str(self.LatePublishRequestCount) + ', '  + \
11902
             'CurrentKeepAliveCount:' + str(self.CurrentKeepAliveCount) + ', '  + \
11903
             'CurrentLifetimeCount:' + str(self.CurrentLifetimeCount) + ', '  + \
11904
             'UnacknowledgedMessageCount:' + str(self.UnacknowledgedMessageCount) + ', '  + \
11905
             'DiscardedMessageCount:' + str(self.DiscardedMessageCount) + ', '  + \
11906
             'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', '  + \
11907
             'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ', '  + \
11908
             'MonitoringQueueOverflowCount:' + str(self.MonitoringQueueOverflowCount) + ', '  + \
11909
             'NextSequenceNumber:' + str(self.NextSequenceNumber) + ', '  + \
11910
             'EventQueueOverFlowCount:' + str(self.EventQueueOverFlowCount) + ')'
11911
    
11912 1
    __repr__ = __str__
11913
    
11914 1
class ModelChangeStructureDataType(FrozenClass):
11915
    '''
11916
    :ivar Affected: 
11917
    :vartype Affected: NodeId 
11918
    :ivar AffectedType: 
11919
    :vartype AffectedType: NodeId 
11920
    :ivar Verb: 
11921
    :vartype Verb: Byte 
11922
    '''
11923 1
    def __init__(self):
11924
        self.Affected = NodeId()
11925
        self.AffectedType = NodeId()
11926
        self.Verb = 0
11927
        self._freeze()
11928
    
11929 1
    def to_binary(self):
11930
        packet = []
11931
        packet.append(self.Affected.to_binary())
11932
        packet.append(self.AffectedType.to_binary())
11933
        packet.append(pack_uatype('Byte', self.Verb))
11934
        return b''.join(packet)
11935
        
11936 1
    @staticmethod
11937
    def from_binary(data):
11938
        obj = ModelChangeStructureDataType()
11939
        obj.Affected = NodeId.from_binary(data)
11940
        obj.AffectedType = NodeId.from_binary(data)
11941
        obj.Verb = unpack_uatype('Byte', data)
11942
        return obj
11943
    
11944 1
    def __str__(self):
11945
        return 'ModelChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', '  + \
11946
             'AffectedType:' + str(self.AffectedType) + ', '  + \
11947
             'Verb:' + str(self.Verb) + ')'
11948
    
11949 1
    __repr__ = __str__
11950
    
11951 1
class SemanticChangeStructureDataType(FrozenClass):
11952
    '''
11953
    :ivar Affected: 
11954
    :vartype Affected: NodeId 
11955
    :ivar AffectedType: 
11956
    :vartype AffectedType: NodeId 
11957
    '''
11958 1
    def __init__(self):
11959
        self.Affected = NodeId()
11960
        self.AffectedType = NodeId()
11961
        self._freeze()
11962
    
11963 1
    def to_binary(self):
11964
        packet = []
11965
        packet.append(self.Affected.to_binary())
11966
        packet.append(self.AffectedType.to_binary())
11967
        return b''.join(packet)
11968
        
11969 1
    @staticmethod
11970
    def from_binary(data):
11971
        obj = SemanticChangeStructureDataType()
11972
        obj.Affected = NodeId.from_binary(data)
11973
        obj.AffectedType = NodeId.from_binary(data)
11974
        return obj
11975
    
11976 1
    def __str__(self):
11977
        return 'SemanticChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', '  + \
11978
             'AffectedType:' + str(self.AffectedType) + ')'
11979
    
11980 1
    __repr__ = __str__
11981
    
11982 1
class Range(FrozenClass):
11983
    '''
11984
    :ivar Low: 
11985
    :vartype Low: Double 
11986
    :ivar High: 
11987
    :vartype High: Double 
11988
    '''
11989 1
    def __init__(self):
11990
        self.Low = 0
11991
        self.High = 0
11992
        self._freeze()
11993
    
11994 1
    def to_binary(self):
11995
        packet = []
11996
        packet.append(pack_uatype('Double', self.Low))
11997
        packet.append(pack_uatype('Double', self.High))
11998
        return b''.join(packet)
11999
        
12000 1
    @staticmethod
12001
    def from_binary(data):
12002
        obj = Range()
12003
        obj.Low = unpack_uatype('Double', data)
12004
        obj.High = unpack_uatype('Double', data)
12005
        return obj
12006
    
12007 1
    def __str__(self):
12008
        return 'Range(' + 'Low:' + str(self.Low) + ', '  + \
12009
             'High:' + str(self.High) + ')'
12010
    
12011 1
    __repr__ = __str__
12012
    
12013 1
class EUInformation(FrozenClass):
12014
    '''
12015
    :ivar NamespaceUri: 
12016
    :vartype NamespaceUri: String 
12017
    :ivar UnitId: 
12018
    :vartype UnitId: Int32 
12019
    :ivar DisplayName: 
12020
    :vartype DisplayName: LocalizedText 
12021
    :ivar Description: 
12022
    :vartype Description: LocalizedText 
12023
    '''
12024 1
    def __init__(self):
12025
        self.NamespaceUri = ''
12026
        self.UnitId = 0
12027
        self.DisplayName = LocalizedText()
12028
        self.Description = LocalizedText()
12029
        self._freeze()
12030
    
12031 1
    def to_binary(self):
12032
        packet = []
12033
        packet.append(pack_uatype('String', self.NamespaceUri))
12034
        packet.append(pack_uatype('Int32', self.UnitId))
12035
        packet.append(self.DisplayName.to_binary())
12036
        packet.append(self.Description.to_binary())
12037
        return b''.join(packet)
12038
        
12039 1
    @staticmethod
12040
    def from_binary(data):
12041
        obj = EUInformation()
12042
        obj.NamespaceUri = unpack_uatype('String', data)
12043
        obj.UnitId = unpack_uatype('Int32', data)
12044
        obj.DisplayName = LocalizedText.from_binary(data)
12045
        obj.Description = LocalizedText.from_binary(data)
12046
        return obj
12047
    
12048 1
    def __str__(self):
12049
        return 'EUInformation(' + 'NamespaceUri:' + str(self.NamespaceUri) + ', '  + \
12050
             'UnitId:' + str(self.UnitId) + ', '  + \
12051
             'DisplayName:' + str(self.DisplayName) + ', '  + \
12052
             'Description:' + str(self.Description) + ')'
12053
    
12054 1
    __repr__ = __str__
12055
    
12056 1
class ComplexNumberType(FrozenClass):
12057
    '''
12058
    :ivar Real: 
12059
    :vartype Real: Float 
12060
    :ivar Imaginary: 
12061
    :vartype Imaginary: Float 
12062
    '''
12063 1
    def __init__(self):
12064
        self.Real = 0
12065
        self.Imaginary = 0
12066
        self._freeze()
12067
    
12068 1
    def to_binary(self):
12069
        packet = []
12070
        packet.append(pack_uatype('Float', self.Real))
12071
        packet.append(pack_uatype('Float', self.Imaginary))
12072
        return b''.join(packet)
12073
        
12074 1
    @staticmethod
12075
    def from_binary(data):
12076
        obj = ComplexNumberType()
12077
        obj.Real = unpack_uatype('Float', data)
12078
        obj.Imaginary = unpack_uatype('Float', data)
12079
        return obj
12080
    
12081 1
    def __str__(self):
12082
        return 'ComplexNumberType(' + 'Real:' + str(self.Real) + ', '  + \
12083
             'Imaginary:' + str(self.Imaginary) + ')'
12084
    
12085 1
    __repr__ = __str__
12086
    
12087 1
class DoubleComplexNumberType(FrozenClass):
12088
    '''
12089
    :ivar Real: 
12090
    :vartype Real: Double 
12091
    :ivar Imaginary: 
12092
    :vartype Imaginary: Double 
12093
    '''
12094 1
    def __init__(self):
12095
        self.Real = 0
12096
        self.Imaginary = 0
12097
        self._freeze()
12098
    
12099 1
    def to_binary(self):
12100
        packet = []
12101
        packet.append(pack_uatype('Double', self.Real))
12102
        packet.append(pack_uatype('Double', self.Imaginary))
12103
        return b''.join(packet)
12104
        
12105 1
    @staticmethod
12106
    def from_binary(data):
12107
        obj = DoubleComplexNumberType()
12108
        obj.Real = unpack_uatype('Double', data)
12109
        obj.Imaginary = unpack_uatype('Double', data)
12110
        return obj
12111
    
12112 1
    def __str__(self):
12113
        return 'DoubleComplexNumberType(' + 'Real:' + str(self.Real) + ', '  + \
12114
             'Imaginary:' + str(self.Imaginary) + ')'
12115
    
12116 1
    __repr__ = __str__
12117
    
12118 1
class AxisInformation(FrozenClass):
12119
    '''
12120
    :ivar EngineeringUnits: 
12121
    :vartype EngineeringUnits: EUInformation 
12122
    :ivar EURange: 
12123
    :vartype EURange: Range 
12124
    :ivar Title: 
12125
    :vartype Title: LocalizedText 
12126
    :ivar AxisScaleType: 
12127
    :vartype AxisScaleType: AxisScaleEnumeration 
12128
    :ivar AxisSteps: 
12129
    :vartype AxisSteps: Double 
12130
    '''
12131 1
    def __init__(self):
12132
        self.EngineeringUnits = EUInformation()
12133
        self.EURange = Range()
12134
        self.Title = LocalizedText()
12135
        self.AxisScaleType = 0
12136
        self.AxisSteps = []
12137
        self._freeze()
12138
    
12139 1
    def to_binary(self):
12140
        packet = []
12141
        packet.append(self.EngineeringUnits.to_binary())
12142
        packet.append(self.EURange.to_binary())
12143
        packet.append(self.Title.to_binary())
12144
        packet.append(pack_uatype('UInt32', self.AxisScaleType))
12145
        packet.append(struct.pack('<i', len(self.AxisSteps)))
12146
        for fieldname in self.AxisSteps:
12147
            packet.append(pack_uatype('Double', fieldname))
12148
        return b''.join(packet)
12149
        
12150 1
    @staticmethod
12151
    def from_binary(data):
12152
        obj = AxisInformation()
12153
        obj.EngineeringUnits = EUInformation.from_binary(data)
12154
        obj.EURange = Range.from_binary(data)
12155
        obj.Title = LocalizedText.from_binary(data)
12156
        obj.AxisScaleType = unpack_uatype('UInt32', data)
12157
        obj.AxisSteps = unpack_uatype_array('Double', data)
12158
        return obj
12159
    
12160 1
    def __str__(self):
12161
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', '  + \
12162
             'EURange:' + str(self.EURange) + ', '  + \
12163
             'Title:' + str(self.Title) + ', '  + \
12164
             'AxisScaleType:' + str(self.AxisScaleType) + ', '  + \
12165
             'AxisSteps:' + str(self.AxisSteps) + ')'
12166
    
12167 1
    __repr__ = __str__
12168
    
12169 1
class XVType(FrozenClass):
12170
    '''
12171
    :ivar X: 
12172
    :vartype X: Double 
12173
    :ivar Value: 
12174
    :vartype Value: Float 
12175
    '''
12176 1
    def __init__(self):
12177
        self.X = 0
12178
        self.Value = 0
12179
        self._freeze()
12180
    
12181 1
    def to_binary(self):
12182
        packet = []
12183
        packet.append(pack_uatype('Double', self.X))
12184
        packet.append(pack_uatype('Float', self.Value))
12185
        return b''.join(packet)
12186
        
12187 1
    @staticmethod
12188
    def from_binary(data):
12189
        obj = XVType()
12190
        obj.X = unpack_uatype('Double', data)
12191
        obj.Value = unpack_uatype('Float', data)
12192
        return obj
12193
    
12194 1
    def __str__(self):
12195
        return 'XVType(' + 'X:' + str(self.X) + ', '  + \
12196
             'Value:' + str(self.Value) + ')'
12197
    
12198 1
    __repr__ = __str__
12199
    
12200 1
class ProgramDiagnosticDataType(FrozenClass):
12201
    '''
12202
    :ivar CreateSessionId: 
12203
    :vartype CreateSessionId: NodeId 
12204
    :ivar CreateClientName: 
12205
    :vartype CreateClientName: String 
12206
    :ivar InvocationCreationTime: 
12207
    :vartype InvocationCreationTime: DateTime 
12208
    :ivar LastTransitionTime: 
12209
    :vartype LastTransitionTime: DateTime 
12210
    :ivar LastMethodCall: 
12211
    :vartype LastMethodCall: String 
12212
    :ivar LastMethodSessionId: 
12213
    :vartype LastMethodSessionId: NodeId 
12214
    :ivar LastMethodInputArguments: 
12215
    :vartype LastMethodInputArguments: Argument 
12216
    :ivar LastMethodOutputArguments: 
12217
    :vartype LastMethodOutputArguments: Argument 
12218
    :ivar LastMethodCallTime: 
12219
    :vartype LastMethodCallTime: DateTime 
12220
    :ivar LastMethodReturnStatus: 
12221
    :vartype LastMethodReturnStatus: StatusResult 
12222
    '''
12223 1
    def __init__(self):
12224
        self.CreateSessionId = NodeId()
12225
        self.CreateClientName = ''
12226
        self.InvocationCreationTime = datetime.now()
12227
        self.LastTransitionTime = datetime.now()
12228
        self.LastMethodCall = ''
12229
        self.LastMethodSessionId = NodeId()
12230
        self.LastMethodInputArguments = []
12231
        self.LastMethodOutputArguments = []
12232
        self.LastMethodCallTime = datetime.now()
12233
        self.LastMethodReturnStatus = StatusResult()
12234
        self._freeze()
12235
    
12236 1
    def to_binary(self):
12237
        packet = []
12238
        packet.append(self.CreateSessionId.to_binary())
12239
        packet.append(pack_uatype('String', self.CreateClientName))
12240
        packet.append(pack_uatype('DateTime', self.InvocationCreationTime))
12241
        packet.append(pack_uatype('DateTime', self.LastTransitionTime))
12242
        packet.append(pack_uatype('String', self.LastMethodCall))
12243
        packet.append(self.LastMethodSessionId.to_binary())
12244
        packet.append(struct.pack('<i', len(self.LastMethodInputArguments)))
12245
        for fieldname in self.LastMethodInputArguments:
12246
            packet.append(fieldname.to_binary())
12247
        packet.append(struct.pack('<i', len(self.LastMethodOutputArguments)))
12248
        for fieldname in self.LastMethodOutputArguments:
12249
            packet.append(fieldname.to_binary())
12250
        packet.append(pack_uatype('DateTime', self.LastMethodCallTime))
12251
        packet.append(self.LastMethodReturnStatus.to_binary())
12252
        return b''.join(packet)
12253
        
12254 1
    @staticmethod
12255
    def from_binary(data):
12256
        obj = ProgramDiagnosticDataType()
12257
        obj.CreateSessionId = NodeId.from_binary(data)
12258
        obj.CreateClientName = unpack_uatype('String', data)
12259
        obj.InvocationCreationTime = unpack_uatype('DateTime', data)
12260
        obj.LastTransitionTime = unpack_uatype('DateTime', data)
12261
        obj.LastMethodCall = unpack_uatype('String', data)
12262
        obj.LastMethodSessionId = NodeId.from_binary(data)
12263
        length = struct.unpack('<i', data.read(4))[0]
12264
        if length != -1:
12265
            for _ in range(0, length):
12266
                obj.LastMethodInputArguments.append(Argument.from_binary(data))
12267
        length = struct.unpack('<i', data.read(4))[0]
12268
        if length != -1:
12269
            for _ in range(0, length):
12270
                obj.LastMethodOutputArguments.append(Argument.from_binary(data))
12271
        obj.LastMethodCallTime = unpack_uatype('DateTime', data)
12272
        obj.LastMethodReturnStatus = StatusResult.from_binary(data)
12273
        return obj
12274
    
12275 1
    def __str__(self):
12276
        return 'ProgramDiagnosticDataType(' + 'CreateSessionId:' + str(self.CreateSessionId) + ', '  + \
12277
             'CreateClientName:' + str(self.CreateClientName) + ', '  + \
12278
             'InvocationCreationTime:' + str(self.InvocationCreationTime) + ', '  + \
12279
             'LastTransitionTime:' + str(self.LastTransitionTime) + ', '  + \
12280
             'LastMethodCall:' + str(self.LastMethodCall) + ', '  + \
12281
             'LastMethodSessionId:' + str(self.LastMethodSessionId) + ', '  + \
12282
             'LastMethodInputArguments:' + str(self.LastMethodInputArguments) + ', '  + \
12283
             'LastMethodOutputArguments:' + str(self.LastMethodOutputArguments) + ', '  + \
12284
             'LastMethodCallTime:' + str(self.LastMethodCallTime) + ', '  + \
12285
             'LastMethodReturnStatus:' + str(self.LastMethodReturnStatus) + ')'
12286
    
12287 1
    __repr__ = __str__
12288
    
12289 1
class Annotation(FrozenClass):
12290
    '''
12291
    :ivar Message: 
12292
    :vartype Message: String 
12293
    :ivar UserName: 
12294
    :vartype UserName: String 
12295
    :ivar AnnotationTime: 
12296
    :vartype AnnotationTime: DateTime 
12297
    '''
12298 1
    def __init__(self):
12299
        self.Message = ''
12300
        self.UserName = ''
12301
        self.AnnotationTime = datetime.now()
12302
        self._freeze()
12303
    
12304 1
    def to_binary(self):
12305
        packet = []
12306
        packet.append(pack_uatype('String', self.Message))
12307
        packet.append(pack_uatype('String', self.UserName))
12308
        packet.append(pack_uatype('DateTime', self.AnnotationTime))
12309
        return b''.join(packet)
12310
        
12311 1
    @staticmethod
12312
    def from_binary(data):
12313
        obj = Annotation()
12314
        obj.Message = unpack_uatype('String', data)
12315
        obj.UserName = unpack_uatype('String', data)
12316
        obj.AnnotationTime = unpack_uatype('DateTime', data)
12317
        return obj
12318
    
12319 1
    def __str__(self):
12320
        return 'Annotation(' + 'Message:' + str(self.Message) + ', '  + \
12321
             'UserName:' + str(self.UserName) + ', '  + \
12322
             'AnnotationTime:' + str(self.AnnotationTime) + ')'
12323
    
12324 1
    __repr__ = __str__
12325
12326 1
ExtensionClasses = {
12327
    ObjectIds.TrustListDataType_Encoding_DefaultBinary : TrustListDataType,
12328
    ObjectIds.Argument_Encoding_DefaultBinary : Argument,
12329
    ObjectIds.EnumValueType_Encoding_DefaultBinary : EnumValueType,
12330
    ObjectIds.OptionSet_Encoding_DefaultBinary : OptionSet,
12331
    ObjectIds.Union_Encoding_DefaultBinary : Union,
12332
    ObjectIds.TimeZoneDataType_Encoding_DefaultBinary : TimeZoneDataType,
12333
    ObjectIds.ApplicationDescription_Encoding_DefaultBinary : ApplicationDescription,
12334
    ObjectIds.RequestHeader_Encoding_DefaultBinary : RequestHeader,
12335
    ObjectIds.ResponseHeader_Encoding_DefaultBinary : ResponseHeader,
12336
    ObjectIds.ServiceFault_Encoding_DefaultBinary : ServiceFault,
12337
    ObjectIds.FindServersRequest_Encoding_DefaultBinary : FindServersRequest,
12338
    ObjectIds.FindServersResponse_Encoding_DefaultBinary : FindServersResponse,
12339
    ObjectIds.ServerOnNetwork_Encoding_DefaultBinary : ServerOnNetwork,
12340
    ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary : FindServersOnNetworkRequest,
12341
    ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary : FindServersOnNetworkResponse,
12342
    ObjectIds.UserTokenPolicy_Encoding_DefaultBinary : UserTokenPolicy,
12343
    ObjectIds.EndpointDescription_Encoding_DefaultBinary : EndpointDescription,
12344
    ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary : GetEndpointsRequest,
12345
    ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary : GetEndpointsResponse,
12346
    ObjectIds.RegisteredServer_Encoding_DefaultBinary : RegisteredServer,
12347
    ObjectIds.RegisterServerRequest_Encoding_DefaultBinary : RegisterServerRequest,
12348
    ObjectIds.RegisterServerResponse_Encoding_DefaultBinary : RegisterServerResponse,
12349
    ObjectIds.DiscoveryConfiguration_Encoding_DefaultBinary : DiscoveryConfiguration,
12350
    ObjectIds.MdnsDiscoveryConfiguration_Encoding_DefaultBinary : MdnsDiscoveryConfiguration,
12351
    ObjectIds.RegisterServer2Request_Encoding_DefaultBinary : RegisterServer2Request,
12352
    ObjectIds.RegisterServer2Response_Encoding_DefaultBinary : RegisterServer2Response,
12353
    ObjectIds.ChannelSecurityToken_Encoding_DefaultBinary : ChannelSecurityToken,
12354
    ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary : OpenSecureChannelRequest,
12355
    ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary : OpenSecureChannelResponse,
12356
    ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary : CloseSecureChannelRequest,
12357
    ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary : CloseSecureChannelResponse,
12358
    ObjectIds.SignedSoftwareCertificate_Encoding_DefaultBinary : SignedSoftwareCertificate,
12359
    ObjectIds.SignatureData_Encoding_DefaultBinary : SignatureData,
12360
    ObjectIds.CreateSessionRequest_Encoding_DefaultBinary : CreateSessionRequest,
12361
    ObjectIds.CreateSessionResponse_Encoding_DefaultBinary : CreateSessionResponse,
12362
    ObjectIds.UserIdentityToken_Encoding_DefaultBinary : UserIdentityToken,
12363
    ObjectIds.AnonymousIdentityToken_Encoding_DefaultBinary : AnonymousIdentityToken,
12364
    ObjectIds.UserNameIdentityToken_Encoding_DefaultBinary : UserNameIdentityToken,
12365
    ObjectIds.X509IdentityToken_Encoding_DefaultBinary : X509IdentityToken,
12366
    ObjectIds.KerberosIdentityToken_Encoding_DefaultBinary : KerberosIdentityToken,
12367
    ObjectIds.IssuedIdentityToken_Encoding_DefaultBinary : IssuedIdentityToken,
12368
    ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary : ActivateSessionRequest,
12369
    ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary : ActivateSessionResponse,
12370
    ObjectIds.CloseSessionRequest_Encoding_DefaultBinary : CloseSessionRequest,
12371
    ObjectIds.CloseSessionResponse_Encoding_DefaultBinary : CloseSessionResponse,
12372
    ObjectIds.CancelRequest_Encoding_DefaultBinary : CancelRequest,
12373
    ObjectIds.CancelResponse_Encoding_DefaultBinary : CancelResponse,
12374
    ObjectIds.NodeAttributes_Encoding_DefaultBinary : NodeAttributes,
12375
    ObjectIds.ObjectAttributes_Encoding_DefaultBinary : ObjectAttributes,
12376
    ObjectIds.VariableAttributes_Encoding_DefaultBinary : VariableAttributes,
12377
    ObjectIds.MethodAttributes_Encoding_DefaultBinary : MethodAttributes,
12378
    ObjectIds.ObjectTypeAttributes_Encoding_DefaultBinary : ObjectTypeAttributes,
12379
    ObjectIds.VariableTypeAttributes_Encoding_DefaultBinary : VariableTypeAttributes,
12380
    ObjectIds.ReferenceTypeAttributes_Encoding_DefaultBinary : ReferenceTypeAttributes,
12381
    ObjectIds.DataTypeAttributes_Encoding_DefaultBinary : DataTypeAttributes,
12382
    ObjectIds.ViewAttributes_Encoding_DefaultBinary : ViewAttributes,
12383
    ObjectIds.AddNodesItem_Encoding_DefaultBinary : AddNodesItem,
12384
    ObjectIds.AddNodesResult_Encoding_DefaultBinary : AddNodesResult,
12385
    ObjectIds.AddNodesRequest_Encoding_DefaultBinary : AddNodesRequest,
12386
    ObjectIds.AddNodesResponse_Encoding_DefaultBinary : AddNodesResponse,
12387
    ObjectIds.AddReferencesItem_Encoding_DefaultBinary : AddReferencesItem,
12388
    ObjectIds.AddReferencesRequest_Encoding_DefaultBinary : AddReferencesRequest,
12389
    ObjectIds.AddReferencesResponse_Encoding_DefaultBinary : AddReferencesResponse,
12390
    ObjectIds.DeleteNodesItem_Encoding_DefaultBinary : DeleteNodesItem,
12391
    ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary : DeleteNodesRequest,
12392
    ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary : DeleteNodesResponse,
12393
    ObjectIds.DeleteReferencesItem_Encoding_DefaultBinary : DeleteReferencesItem,
12394
    ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary : DeleteReferencesRequest,
12395
    ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary : DeleteReferencesResponse,
12396
    ObjectIds.ViewDescription_Encoding_DefaultBinary : ViewDescription,
12397
    ObjectIds.BrowseDescription_Encoding_DefaultBinary : BrowseDescription,
12398
    ObjectIds.ReferenceDescription_Encoding_DefaultBinary : ReferenceDescription,
12399
    ObjectIds.BrowseResult_Encoding_DefaultBinary : BrowseResult,
12400
    ObjectIds.BrowseRequest_Encoding_DefaultBinary : BrowseRequest,
12401
    ObjectIds.BrowseResponse_Encoding_DefaultBinary : BrowseResponse,
12402
    ObjectIds.BrowseNextRequest_Encoding_DefaultBinary : BrowseNextRequest,
12403
    ObjectIds.BrowseNextResponse_Encoding_DefaultBinary : BrowseNextResponse,
12404
    ObjectIds.RelativePathElement_Encoding_DefaultBinary : RelativePathElement,
12405
    ObjectIds.RelativePath_Encoding_DefaultBinary : RelativePath,
12406
    ObjectIds.BrowsePath_Encoding_DefaultBinary : BrowsePath,
12407
    ObjectIds.BrowsePathTarget_Encoding_DefaultBinary : BrowsePathTarget,
12408
    ObjectIds.BrowsePathResult_Encoding_DefaultBinary : BrowsePathResult,
12409
    ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary : TranslateBrowsePathsToNodeIdsRequest,
12410
    ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary : TranslateBrowsePathsToNodeIdsResponse,
12411
    ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary : RegisterNodesRequest,
12412
    ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary : RegisterNodesResponse,
12413
    ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary : UnregisterNodesRequest,
12414
    ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary : UnregisterNodesResponse,
12415
    ObjectIds.EndpointConfiguration_Encoding_DefaultBinary : EndpointConfiguration,
12416
    ObjectIds.SupportedProfile_Encoding_DefaultBinary : SupportedProfile,
12417
    ObjectIds.SoftwareCertificate_Encoding_DefaultBinary : SoftwareCertificate,
12418
    ObjectIds.QueryDataDescription_Encoding_DefaultBinary : QueryDataDescription,
12419
    ObjectIds.NodeTypeDescription_Encoding_DefaultBinary : NodeTypeDescription,
12420
    ObjectIds.QueryDataSet_Encoding_DefaultBinary : QueryDataSet,
12421
    ObjectIds.NodeReference_Encoding_DefaultBinary : NodeReference,
12422
    ObjectIds.ContentFilterElement_Encoding_DefaultBinary : ContentFilterElement,
12423
    ObjectIds.ContentFilter_Encoding_DefaultBinary : ContentFilter,
12424
    ObjectIds.ElementOperand_Encoding_DefaultBinary : ElementOperand,
12425
    ObjectIds.LiteralOperand_Encoding_DefaultBinary : LiteralOperand,
12426
    ObjectIds.AttributeOperand_Encoding_DefaultBinary : AttributeOperand,
12427
    ObjectIds.SimpleAttributeOperand_Encoding_DefaultBinary : SimpleAttributeOperand,
12428
    ObjectIds.ContentFilterElementResult_Encoding_DefaultBinary : ContentFilterElementResult,
12429
    ObjectIds.ContentFilterResult_Encoding_DefaultBinary : ContentFilterResult,
12430
    ObjectIds.ParsingResult_Encoding_DefaultBinary : ParsingResult,
12431
    ObjectIds.QueryFirstRequest_Encoding_DefaultBinary : QueryFirstRequest,
12432
    ObjectIds.QueryFirstResponse_Encoding_DefaultBinary : QueryFirstResponse,
12433
    ObjectIds.QueryNextRequest_Encoding_DefaultBinary : QueryNextRequest,
12434
    ObjectIds.QueryNextResponse_Encoding_DefaultBinary : QueryNextResponse,
12435
    ObjectIds.ReadValueId_Encoding_DefaultBinary : ReadValueId,
12436
    ObjectIds.ReadRequest_Encoding_DefaultBinary : ReadRequest,
12437
    ObjectIds.ReadResponse_Encoding_DefaultBinary : ReadResponse,
12438
    ObjectIds.HistoryReadValueId_Encoding_DefaultBinary : HistoryReadValueId,
12439
    ObjectIds.HistoryReadResult_Encoding_DefaultBinary : HistoryReadResult,
12440
    ObjectIds.HistoryReadDetails_Encoding_DefaultBinary : HistoryReadDetails,
12441
    ObjectIds.ReadEventDetails_Encoding_DefaultBinary : ReadEventDetails,
12442
    ObjectIds.ReadRawModifiedDetails_Encoding_DefaultBinary : ReadRawModifiedDetails,
12443
    ObjectIds.ReadProcessedDetails_Encoding_DefaultBinary : ReadProcessedDetails,
12444
    ObjectIds.ReadAtTimeDetails_Encoding_DefaultBinary : ReadAtTimeDetails,
12445
    ObjectIds.HistoryData_Encoding_DefaultBinary : HistoryData,
12446
    ObjectIds.ModificationInfo_Encoding_DefaultBinary : ModificationInfo,
12447
    ObjectIds.HistoryModifiedData_Encoding_DefaultBinary : HistoryModifiedData,
12448
    ObjectIds.HistoryEvent_Encoding_DefaultBinary : HistoryEvent,
12449
    ObjectIds.HistoryReadRequest_Encoding_DefaultBinary : HistoryReadRequest,
12450
    ObjectIds.HistoryReadResponse_Encoding_DefaultBinary : HistoryReadResponse,
12451
    ObjectIds.WriteValue_Encoding_DefaultBinary : WriteValue,
12452
    ObjectIds.WriteRequest_Encoding_DefaultBinary : WriteRequest,
12453
    ObjectIds.WriteResponse_Encoding_DefaultBinary : WriteResponse,
12454
    ObjectIds.HistoryUpdateDetails_Encoding_DefaultBinary : HistoryUpdateDetails,
12455
    ObjectIds.UpdateDataDetails_Encoding_DefaultBinary : UpdateDataDetails,
12456
    ObjectIds.UpdateStructureDataDetails_Encoding_DefaultBinary : UpdateStructureDataDetails,
12457
    ObjectIds.UpdateEventDetails_Encoding_DefaultBinary : UpdateEventDetails,
12458
    ObjectIds.DeleteRawModifiedDetails_Encoding_DefaultBinary : DeleteRawModifiedDetails,
12459
    ObjectIds.DeleteAtTimeDetails_Encoding_DefaultBinary : DeleteAtTimeDetails,
12460
    ObjectIds.DeleteEventDetails_Encoding_DefaultBinary : DeleteEventDetails,
12461
    ObjectIds.HistoryUpdateResult_Encoding_DefaultBinary : HistoryUpdateResult,
12462
    ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary : HistoryUpdateRequest,
12463
    ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary : HistoryUpdateResponse,
12464
    ObjectIds.CallMethodRequest_Encoding_DefaultBinary : CallMethodRequest,
12465
    ObjectIds.CallMethodResult_Encoding_DefaultBinary : CallMethodResult,
12466
    ObjectIds.CallRequest_Encoding_DefaultBinary : CallRequest,
12467
    ObjectIds.CallResponse_Encoding_DefaultBinary : CallResponse,
12468
    ObjectIds.MonitoringFilter_Encoding_DefaultBinary : MonitoringFilter,
12469
    ObjectIds.DataChangeFilter_Encoding_DefaultBinary : DataChangeFilter,
12470
    ObjectIds.EventFilter_Encoding_DefaultBinary : EventFilter,
12471
    ObjectIds.AggregateConfiguration_Encoding_DefaultBinary : AggregateConfiguration,
12472
    ObjectIds.AggregateFilter_Encoding_DefaultBinary : AggregateFilter,
12473
    ObjectIds.MonitoringFilterResult_Encoding_DefaultBinary : MonitoringFilterResult,
12474
    ObjectIds.EventFilterResult_Encoding_DefaultBinary : EventFilterResult,
12475
    ObjectIds.AggregateFilterResult_Encoding_DefaultBinary : AggregateFilterResult,
12476
    ObjectIds.MonitoringParameters_Encoding_DefaultBinary : MonitoringParameters,
12477
    ObjectIds.MonitoredItemCreateRequest_Encoding_DefaultBinary : MonitoredItemCreateRequest,
12478
    ObjectIds.MonitoredItemCreateResult_Encoding_DefaultBinary : MonitoredItemCreateResult,
12479
    ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary : CreateMonitoredItemsRequest,
12480
    ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary : CreateMonitoredItemsResponse,
12481
    ObjectIds.MonitoredItemModifyRequest_Encoding_DefaultBinary : MonitoredItemModifyRequest,
12482
    ObjectIds.MonitoredItemModifyResult_Encoding_DefaultBinary : MonitoredItemModifyResult,
12483
    ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary : ModifyMonitoredItemsRequest,
12484
    ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary : ModifyMonitoredItemsResponse,
12485
    ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary : SetMonitoringModeRequest,
12486
    ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary : SetMonitoringModeResponse,
12487
    ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary : SetTriggeringRequest,
12488
    ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary : SetTriggeringResponse,
12489
    ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary : DeleteMonitoredItemsRequest,
12490
    ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary : DeleteMonitoredItemsResponse,
12491
    ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary : CreateSubscriptionRequest,
12492
    ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary : CreateSubscriptionResponse,
12493
    ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary : ModifySubscriptionRequest,
12494
    ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary : ModifySubscriptionResponse,
12495
    ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary : SetPublishingModeRequest,
12496
    ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary : SetPublishingModeResponse,
12497
    ObjectIds.NotificationMessage_Encoding_DefaultBinary : NotificationMessage,
12498
    ObjectIds.NotificationData_Encoding_DefaultBinary : NotificationData,
12499
    ObjectIds.DataChangeNotification_Encoding_DefaultBinary : DataChangeNotification,
12500
    ObjectIds.MonitoredItemNotification_Encoding_DefaultBinary : MonitoredItemNotification,
12501
    ObjectIds.EventNotificationList_Encoding_DefaultBinary : EventNotificationList,
12502
    ObjectIds.EventFieldList_Encoding_DefaultBinary : EventFieldList,
12503
    ObjectIds.HistoryEventFieldList_Encoding_DefaultBinary : HistoryEventFieldList,
12504
    ObjectIds.StatusChangeNotification_Encoding_DefaultBinary : StatusChangeNotification,
12505
    ObjectIds.SubscriptionAcknowledgement_Encoding_DefaultBinary : SubscriptionAcknowledgement,
12506
    ObjectIds.PublishRequest_Encoding_DefaultBinary : PublishRequest,
12507
    ObjectIds.PublishResponse_Encoding_DefaultBinary : PublishResponse,
12508
    ObjectIds.RepublishRequest_Encoding_DefaultBinary : RepublishRequest,
12509
    ObjectIds.RepublishResponse_Encoding_DefaultBinary : RepublishResponse,
12510
    ObjectIds.TransferResult_Encoding_DefaultBinary : TransferResult,
12511
    ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary : TransferSubscriptionsRequest,
12512
    ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary : TransferSubscriptionsResponse,
12513
    ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary : DeleteSubscriptionsRequest,
12514
    ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary : DeleteSubscriptionsResponse,
12515
    ObjectIds.BuildInfo_Encoding_DefaultBinary : BuildInfo,
12516
    ObjectIds.RedundantServerDataType_Encoding_DefaultBinary : RedundantServerDataType,
12517
    ObjectIds.EndpointUrlListDataType_Encoding_DefaultBinary : EndpointUrlListDataType,
12518
    ObjectIds.NetworkGroupDataType_Encoding_DefaultBinary : NetworkGroupDataType,
12519
    ObjectIds.SamplingIntervalDiagnosticsDataType_Encoding_DefaultBinary : SamplingIntervalDiagnosticsDataType,
12520
    ObjectIds.ServerDiagnosticsSummaryDataType_Encoding_DefaultBinary : ServerDiagnosticsSummaryDataType,
12521
    ObjectIds.ServerStatusDataType_Encoding_DefaultBinary : ServerStatusDataType,
12522
    ObjectIds.SessionDiagnosticsDataType_Encoding_DefaultBinary : SessionDiagnosticsDataType,
12523
    ObjectIds.SessionSecurityDiagnosticsDataType_Encoding_DefaultBinary : SessionSecurityDiagnosticsDataType,
12524
    ObjectIds.ServiceCounterDataType_Encoding_DefaultBinary : ServiceCounterDataType,
12525
    ObjectIds.StatusResult_Encoding_DefaultBinary : StatusResult,
12526
    ObjectIds.SubscriptionDiagnosticsDataType_Encoding_DefaultBinary : SubscriptionDiagnosticsDataType,
12527
    ObjectIds.ModelChangeStructureDataType_Encoding_DefaultBinary : ModelChangeStructureDataType,
12528
    ObjectIds.SemanticChangeStructureDataType_Encoding_DefaultBinary : SemanticChangeStructureDataType,
12529
    ObjectIds.Range_Encoding_DefaultBinary : Range,
12530
    ObjectIds.EUInformation_Encoding_DefaultBinary : EUInformation,
12531
    ObjectIds.ComplexNumberType_Encoding_DefaultBinary : ComplexNumberType,
12532
    ObjectIds.DoubleComplexNumberType_Encoding_DefaultBinary : DoubleComplexNumberType,
12533
    ObjectIds.AxisInformation_Encoding_DefaultBinary : AxisInformation,
12534
    ObjectIds.XVType_Encoding_DefaultBinary : XVType,
12535
    ObjectIds.ProgramDiagnosticDataType_Encoding_DefaultBinary : ProgramDiagnosticDataType,
12536
    ObjectIds.Annotation_Encoding_DefaultBinary : Annotation,
12537
}
12538
12539 1
def extensionobject_from_binary(data):
12540
    """
12541
    Convert binary-coded ExtensionObject to a Python object.
12542
    Returns an object, or None if TypeId is zero
12543
    """
12544 1
    TypeId = NodeId.from_binary(data)
12545 1
    Encoding = unpack_uatype('UInt8', data)
12546 1
    if Encoding & (1 << 0):
12547 1
        Body = unpack_uatype('ByteString', data)
12548 1
    if TypeId.Identifier == 0:
12549 1
        return None
12550 1
    klass = ExtensionClasses[TypeId.Identifier]
12551 1
    return klass.from_binary(Buffer(Body))
12552
12553 1
def extensionobject_to_binary(obj):
12554
    """
12555
    Convert Python object to binary-coded ExtensionObject.
12556
    If obj is None, convert to empty ExtensionObject (TypeId = 0, no Body).
12557
    Returns a binary string
12558
    """
12559 1
    TypeId = NodeId()
12560 1
    Encoding = 0
12561 1
    Body = None
12562 1
    if obj is not None:
12563 1
        TypeId = FourByteNodeId(getattr(ObjectIds, "{}_Encoding_DefaultBinary".format(obj.__class__.__name__)))
12564 1
        Encoding |= (1 << 0)
12565 1
        Body = obj.to_binary()
12566 1
    packet = []
12567 1
    packet.append(TypeId.to_binary())
12568 1
    packet.append(pack_uatype('UInt8', Encoding))
12569 1
    if Body:
12570 1
        packet.append(pack_uatype('ByteString', Body))
12571
    return b''.join(packet)
12572