Completed
Pull Request — master (#70)
by Olivier
02:19
created

opcua.MethodAttributes.from_binary()   A

Complexity

Conditions 1

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1.729
Metric Value
dl 0
loc 11
ccs 1
cts 10
cp 0.1
rs 9.4286
cc 1
crap 1.729
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 1
        self.EndpointUrl = ''
1280 1
        self.LocaleIds = []
1281 1
        self.ServerUris = []
1282 1
        self._freeze()
1283
    
1284 1
    def to_binary(self):
1285 1
        packet = []
1286 1
        packet.append(pack_uatype('String', self.EndpointUrl))
1287 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
1288 1
        for fieldname in self.LocaleIds:
1289
            packet.append(pack_uatype('String', fieldname))
1290 1
        packet.append(struct.pack('<i', len(self.ServerUris)))
1291 1
        for fieldname in self.ServerUris:
1292
            packet.append(pack_uatype('String', fieldname))
1293 1
        return b''.join(packet)
1294
        
1295 1
    @staticmethod
1296
    def from_binary(data):
1297 1
        obj = FindServersParameters()
1298 1
        obj.EndpointUrl = unpack_uatype('String', data)
1299 1
        obj.LocaleIds = unpack_uatype_array('String', data)
1300 1
        obj.ServerUris = unpack_uatype_array('String', data)
1301 1
        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 1
        self.TypeId = FourByteNodeId(ObjectIds.FindServersRequest_Encoding_DefaultBinary)
1323 1
        self.RequestHeader = RequestHeader()
1324 1
        self.Parameters = FindServersParameters()
1325 1
        self._freeze()
1326
    
1327 1
    def to_binary(self):
1328 1
        packet = []
1329 1
        packet.append(self.TypeId.to_binary())
1330 1
        packet.append(self.RequestHeader.to_binary())
1331 1
        packet.append(self.Parameters.to_binary())
1332 1
        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 1
        self.TypeId = FourByteNodeId(ObjectIds.FindServersResponse_Encoding_DefaultBinary)
1362 1
        self.ResponseHeader = ResponseHeader()
1363 1
        self.Servers = []
1364 1
        self._freeze()
1365
    
1366 1
    def to_binary(self):
1367 1
        packet = []
1368 1
        packet.append(self.TypeId.to_binary())
1369 1
        packet.append(self.ResponseHeader.to_binary())
1370 1
        packet.append(struct.pack('<i', len(self.Servers)))
1371 1
        for fieldname in self.Servers:
1372 1
            packet.append(fieldname.to_binary())
1373 1
        return b''.join(packet)
1374
        
1375 1
    @staticmethod
1376
    def from_binary(data):
1377 1
        obj = FindServersResponse()
1378 1
        obj.TypeId = NodeId.from_binary(data)
1379 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1380 1
        length = struct.unpack('<i', data.read(4))[0]
1381 1
        if length != -1:
1382 1
            for _ in range(0, length):
1383 1
                obj.Servers.append(ApplicationDescription.from_binary(data))
1384 1
        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 1
        self.ServerUri = ''
1859 1
        self.ProductUri = ''
1860 1
        self.ServerNames = []
1861 1
        self.ServerType = 0
1862 1
        self.GatewayServerUri = ''
1863 1
        self.DiscoveryUrls = []
1864 1
        self.SemaphoreFilePath = ''
1865 1
        self.IsOnline = True
1866 1
        self._freeze()
1867
    
1868 1
    def to_binary(self):
1869 1
        packet = []
1870 1
        packet.append(pack_uatype('String', self.ServerUri))
1871 1
        packet.append(pack_uatype('String', self.ProductUri))
1872 1
        packet.append(struct.pack('<i', len(self.ServerNames)))
1873 1
        for fieldname in self.ServerNames:
1874 1
            packet.append(fieldname.to_binary())
1875 1
        packet.append(pack_uatype('UInt32', self.ServerType))
1876 1
        packet.append(pack_uatype('String', self.GatewayServerUri))
1877 1
        packet.append(struct.pack('<i', len(self.DiscoveryUrls)))
1878 1
        for fieldname in self.DiscoveryUrls:
1879 1
            packet.append(pack_uatype('String', fieldname))
1880 1
        packet.append(pack_uatype('String', self.SemaphoreFilePath))
1881 1
        packet.append(pack_uatype('Boolean', self.IsOnline))
1882 1
        return b''.join(packet)
1883
        
1884 1
    @staticmethod
1885
    def from_binary(data):
1886 1
        obj = RegisteredServer()
1887 1
        obj.ServerUri = unpack_uatype('String', data)
1888 1
        obj.ProductUri = unpack_uatype('String', data)
1889 1
        length = struct.unpack('<i', data.read(4))[0]
1890 1
        if length != -1:
1891 1
            for _ in range(0, length):
1892 1
                obj.ServerNames.append(LocalizedText.from_binary(data))
1893 1
        obj.ServerType = unpack_uatype('UInt32', data)
1894 1
        obj.GatewayServerUri = unpack_uatype('String', data)
1895 1
        obj.DiscoveryUrls = unpack_uatype_array('String', data)
1896 1
        obj.SemaphoreFilePath = unpack_uatype('String', data)
1897 1
        obj.IsOnline = unpack_uatype('Boolean', data)
1898 1
        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 RegisterServerRequest(FrozenClass):
1913
    '''
1914
    Registers a server with the discovery server.
1915
    
1916
    :ivar TypeId: 
1917
    :vartype TypeId: NodeId 
1918
    :ivar RequestHeader: 
1919
    :vartype RequestHeader: RequestHeader 
1920
    :ivar Server: 
1921
    :vartype Server: RegisteredServer 
1922
    '''
1923 1
    def __init__(self):
1924 1
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerRequest_Encoding_DefaultBinary)
1925 1
        self.RequestHeader = RequestHeader()
1926 1
        self.Server = RegisteredServer()
1927 1
        self._freeze()
1928
    
1929 1
    def to_binary(self):
1930 1
        packet = []
1931 1
        packet.append(self.TypeId.to_binary())
1932 1
        packet.append(self.RequestHeader.to_binary())
1933 1
        packet.append(self.Server.to_binary())
1934 1
        return b''.join(packet)
1935
        
1936 1
    @staticmethod
1937
    def from_binary(data):
1938
        obj = RegisterServerRequest()
1939
        obj.TypeId = NodeId.from_binary(data)
1940
        obj.RequestHeader = RequestHeader.from_binary(data)
1941
        obj.Server = RegisteredServer.from_binary(data)
1942
        return obj
1943
    
1944 1
    def __str__(self):
1945
        return 'RegisterServerRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1946
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
1947
             'Server:' + str(self.Server) + ')'
1948
    
1949 1
    __repr__ = __str__
1950
    
1951 1
class RegisterServerResponse(FrozenClass):
1952
    '''
1953
    Registers a server with the discovery server.
1954
    
1955
    :ivar TypeId: 
1956
    :vartype TypeId: NodeId 
1957
    :ivar ResponseHeader: 
1958
    :vartype ResponseHeader: ResponseHeader 
1959
    '''
1960 1
    def __init__(self):
1961 1
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServerResponse_Encoding_DefaultBinary)
1962 1
        self.ResponseHeader = ResponseHeader()
1963 1
        self._freeze()
1964
    
1965 1
    def to_binary(self):
1966 1
        packet = []
1967 1
        packet.append(self.TypeId.to_binary())
1968 1
        packet.append(self.ResponseHeader.to_binary())
1969 1
        return b''.join(packet)
1970
        
1971 1
    @staticmethod
1972
    def from_binary(data):
1973 1
        obj = RegisterServerResponse()
1974 1
        obj.TypeId = NodeId.from_binary(data)
1975 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
1976 1
        return obj
1977
    
1978 1
    def __str__(self):
1979
        return 'RegisterServerResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
1980
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
1981
    
1982 1
    __repr__ = __str__
1983
    
1984 1
class DiscoveryConfiguration(FrozenClass):
1985
    '''
1986
    A base type for discovery configuration information.
1987
    
1988
    '''
1989 1
    def __init__(self):
1990
        self._freeze()
1991
    
1992 1
    def to_binary(self):
1993
        packet = []
1994
        return b''.join(packet)
1995
        
1996 1
    @staticmethod
1997
    def from_binary(data):
1998
        obj = DiscoveryConfiguration()
1999
        return obj
2000
    
2001 1
    def __str__(self):
2002
        return 'DiscoveryConfiguration(' +  + ')'
2003
    
2004 1
    __repr__ = __str__
2005
    
2006 1
class MdnsDiscoveryConfiguration(FrozenClass):
2007
    '''
2008
    The discovery information needed for mDNS registration.
2009
    
2010
    :ivar MdnsServerName: 
2011
    :vartype MdnsServerName: String 
2012
    :ivar ServerCapabilities: 
2013
    :vartype ServerCapabilities: String 
2014
    '''
2015 1
    def __init__(self):
2016
        self.MdnsServerName = ''
2017
        self.ServerCapabilities = []
2018
        self._freeze()
2019
    
2020 1
    def to_binary(self):
2021
        packet = []
2022
        packet.append(pack_uatype('String', self.MdnsServerName))
2023
        packet.append(struct.pack('<i', len(self.ServerCapabilities)))
2024
        for fieldname in self.ServerCapabilities:
2025
            packet.append(pack_uatype('String', fieldname))
2026
        return b''.join(packet)
2027
        
2028 1
    @staticmethod
2029
    def from_binary(data):
2030
        obj = MdnsDiscoveryConfiguration()
2031
        obj.MdnsServerName = unpack_uatype('String', data)
2032
        obj.ServerCapabilities = unpack_uatype_array('String', data)
2033
        return obj
2034
    
2035 1
    def __str__(self):
2036
        return 'MdnsDiscoveryConfiguration(' + 'MdnsServerName:' + str(self.MdnsServerName) + ', '  + \
2037
             'ServerCapabilities:' + str(self.ServerCapabilities) + ')'
2038
    
2039 1
    __repr__ = __str__
2040
    
2041 1
class RegisterServer2Parameters(FrozenClass):
2042
    '''
2043
    :ivar Server: 
2044
    :vartype Server: RegisteredServer 
2045
    :ivar DiscoveryConfiguration: 
2046
    :vartype DiscoveryConfiguration: ExtensionObject 
2047
    '''
2048 1
    def __init__(self):
2049
        self.Server = RegisteredServer()
2050
        self.DiscoveryConfiguration = []
2051
        self._freeze()
2052
    
2053 1
    def to_binary(self):
2054
        packet = []
2055
        packet.append(self.Server.to_binary())
2056
        packet.append(struct.pack('<i', len(self.DiscoveryConfiguration)))
2057
        for fieldname in self.DiscoveryConfiguration:
2058
            packet.append(extensionobject_to_binary(fieldname))
2059
        return b''.join(packet)
2060
        
2061 1
    @staticmethod
2062
    def from_binary(data):
2063
        obj = RegisterServer2Parameters()
2064
        obj.Server = RegisteredServer.from_binary(data)
2065
        length = struct.unpack('<i', data.read(4))[0]
2066
        if length != -1:
2067
            for _ in range(0, length):
2068
                obj.DiscoveryConfiguration.append(extensionobject_from_binary(data))
2069
        return obj
2070
    
2071 1
    def __str__(self):
2072
        return 'RegisterServer2Parameters(' + 'Server:' + str(self.Server) + ', '  + \
2073
             'DiscoveryConfiguration:' + str(self.DiscoveryConfiguration) + ')'
2074
    
2075 1
    __repr__ = __str__
2076
    
2077 1
class RegisterServer2Request(FrozenClass):
2078
    '''
2079
    :ivar TypeId: 
2080
    :vartype TypeId: NodeId 
2081
    :ivar RequestHeader: 
2082
    :vartype RequestHeader: RequestHeader 
2083
    :ivar Parameters: 
2084
    :vartype Parameters: RegisterServer2Parameters 
2085
    '''
2086 1
    def __init__(self):
2087
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Request_Encoding_DefaultBinary)
2088
        self.RequestHeader = RequestHeader()
2089
        self.Parameters = RegisterServer2Parameters()
2090
        self._freeze()
2091
    
2092 1
    def to_binary(self):
2093
        packet = []
2094
        packet.append(self.TypeId.to_binary())
2095
        packet.append(self.RequestHeader.to_binary())
2096
        packet.append(self.Parameters.to_binary())
2097
        return b''.join(packet)
2098
        
2099 1
    @staticmethod
2100
    def from_binary(data):
2101
        obj = RegisterServer2Request()
2102
        obj.TypeId = NodeId.from_binary(data)
2103
        obj.RequestHeader = RequestHeader.from_binary(data)
2104
        obj.Parameters = RegisterServer2Parameters.from_binary(data)
2105
        return obj
2106
    
2107 1
    def __str__(self):
2108
        return 'RegisterServer2Request(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2109
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
2110
             'Parameters:' + str(self.Parameters) + ')'
2111
    
2112 1
    __repr__ = __str__
2113
    
2114 1
class RegisterServer2Response(FrozenClass):
2115
    '''
2116
    :ivar TypeId: 
2117
    :vartype TypeId: NodeId 
2118
    :ivar ResponseHeader: 
2119
    :vartype ResponseHeader: ResponseHeader 
2120
    :ivar ConfigurationResults: 
2121
    :vartype ConfigurationResults: StatusCode 
2122
    :ivar DiagnosticInfos: 
2123
    :vartype DiagnosticInfos: DiagnosticInfo 
2124
    '''
2125 1
    def __init__(self):
2126
        self.TypeId = FourByteNodeId(ObjectIds.RegisterServer2Response_Encoding_DefaultBinary)
2127
        self.ResponseHeader = ResponseHeader()
2128
        self.ConfigurationResults = []
2129
        self.DiagnosticInfos = []
2130
        self._freeze()
2131
    
2132 1
    def to_binary(self):
2133
        packet = []
2134
        packet.append(self.TypeId.to_binary())
2135
        packet.append(self.ResponseHeader.to_binary())
2136
        packet.append(struct.pack('<i', len(self.ConfigurationResults)))
2137
        for fieldname in self.ConfigurationResults:
2138
            packet.append(fieldname.to_binary())
2139
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
2140
        for fieldname in self.DiagnosticInfos:
2141
            packet.append(fieldname.to_binary())
2142
        return b''.join(packet)
2143
        
2144 1
    @staticmethod
2145
    def from_binary(data):
2146
        obj = RegisterServer2Response()
2147
        obj.TypeId = NodeId.from_binary(data)
2148
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2149
        length = struct.unpack('<i', data.read(4))[0]
2150
        if length != -1:
2151
            for _ in range(0, length):
2152
                obj.ConfigurationResults.append(StatusCode.from_binary(data))
2153
        length = struct.unpack('<i', data.read(4))[0]
2154
        if length != -1:
2155
            for _ in range(0, length):
2156
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
2157
        return obj
2158
    
2159 1
    def __str__(self):
2160
        return 'RegisterServer2Response(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2161
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
2162
             'ConfigurationResults:' + str(self.ConfigurationResults) + ', '  + \
2163
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
2164
    
2165 1
    __repr__ = __str__
2166
    
2167 1
class ChannelSecurityToken(FrozenClass):
2168
    '''
2169
    The token that identifies a set of keys for an active secure channel.
2170
    
2171
    :ivar ChannelId: 
2172
    :vartype ChannelId: UInt32 
2173
    :ivar TokenId: 
2174
    :vartype TokenId: UInt32 
2175
    :ivar CreatedAt: 
2176
    :vartype CreatedAt: DateTime 
2177
    :ivar RevisedLifetime: 
2178
    :vartype RevisedLifetime: UInt32 
2179
    '''
2180 1
    def __init__(self):
2181 1
        self.ChannelId = 0
2182 1
        self.TokenId = 0
2183 1
        self.CreatedAt = datetime.now()
2184 1
        self.RevisedLifetime = 0
2185 1
        self._freeze()
2186
    
2187 1
    def to_binary(self):
2188 1
        packet = []
2189 1
        packet.append(pack_uatype('UInt32', self.ChannelId))
2190 1
        packet.append(pack_uatype('UInt32', self.TokenId))
2191 1
        packet.append(pack_uatype('DateTime', self.CreatedAt))
2192 1
        packet.append(pack_uatype('UInt32', self.RevisedLifetime))
2193 1
        return b''.join(packet)
2194
        
2195 1
    @staticmethod
2196
    def from_binary(data):
2197 1
        obj = ChannelSecurityToken()
2198 1
        obj.ChannelId = unpack_uatype('UInt32', data)
2199 1
        obj.TokenId = unpack_uatype('UInt32', data)
2200 1
        obj.CreatedAt = unpack_uatype('DateTime', data)
2201 1
        obj.RevisedLifetime = unpack_uatype('UInt32', data)
2202 1
        return obj
2203
    
2204 1
    def __str__(self):
2205
        return 'ChannelSecurityToken(' + 'ChannelId:' + str(self.ChannelId) + ', '  + \
2206
             'TokenId:' + str(self.TokenId) + ', '  + \
2207
             'CreatedAt:' + str(self.CreatedAt) + ', '  + \
2208
             'RevisedLifetime:' + str(self.RevisedLifetime) + ')'
2209
    
2210 1
    __repr__ = __str__
2211
    
2212 1
class OpenSecureChannelParameters(FrozenClass):
2213
    '''
2214
    :ivar ClientProtocolVersion: 
2215
    :vartype ClientProtocolVersion: UInt32 
2216
    :ivar RequestType: 
2217
    :vartype RequestType: SecurityTokenRequestType 
2218
    :ivar SecurityMode: 
2219
    :vartype SecurityMode: MessageSecurityMode 
2220
    :ivar ClientNonce: 
2221
    :vartype ClientNonce: ByteString 
2222
    :ivar RequestedLifetime: 
2223
    :vartype RequestedLifetime: UInt32 
2224
    '''
2225 1
    def __init__(self):
2226 1
        self.ClientProtocolVersion = 0
2227 1
        self.RequestType = 0
2228 1
        self.SecurityMode = 0
2229 1
        self.ClientNonce = b''
2230 1
        self.RequestedLifetime = 0
2231 1
        self._freeze()
2232
    
2233 1
    def to_binary(self):
2234 1
        packet = []
2235 1
        packet.append(pack_uatype('UInt32', self.ClientProtocolVersion))
2236 1
        packet.append(pack_uatype('UInt32', self.RequestType))
2237 1
        packet.append(pack_uatype('UInt32', self.SecurityMode))
2238 1
        packet.append(pack_uatype('ByteString', self.ClientNonce))
2239 1
        packet.append(pack_uatype('UInt32', self.RequestedLifetime))
2240 1
        return b''.join(packet)
2241
        
2242 1
    @staticmethod
2243
    def from_binary(data):
2244 1
        obj = OpenSecureChannelParameters()
2245 1
        obj.ClientProtocolVersion = unpack_uatype('UInt32', data)
2246 1
        obj.RequestType = unpack_uatype('UInt32', data)
2247 1
        obj.SecurityMode = unpack_uatype('UInt32', data)
2248 1
        obj.ClientNonce = unpack_uatype('ByteString', data)
2249 1
        obj.RequestedLifetime = unpack_uatype('UInt32', data)
2250 1
        return obj
2251
    
2252 1
    def __str__(self):
2253
        return 'OpenSecureChannelParameters(' + 'ClientProtocolVersion:' + str(self.ClientProtocolVersion) + ', '  + \
2254
             'RequestType:' + str(self.RequestType) + ', '  + \
2255
             'SecurityMode:' + str(self.SecurityMode) + ', '  + \
2256
             'ClientNonce:' + str(self.ClientNonce) + ', '  + \
2257
             'RequestedLifetime:' + str(self.RequestedLifetime) + ')'
2258
    
2259 1
    __repr__ = __str__
2260
    
2261 1
class OpenSecureChannelRequest(FrozenClass):
2262
    '''
2263
    Creates a secure channel with a server.
2264
    
2265
    :ivar TypeId: 
2266
    :vartype TypeId: NodeId 
2267
    :ivar RequestHeader: 
2268
    :vartype RequestHeader: RequestHeader 
2269
    :ivar Parameters: 
2270
    :vartype Parameters: OpenSecureChannelParameters 
2271
    '''
2272 1
    def __init__(self):
2273 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary)
2274 1
        self.RequestHeader = RequestHeader()
2275 1
        self.Parameters = OpenSecureChannelParameters()
2276 1
        self._freeze()
2277
    
2278 1
    def to_binary(self):
2279 1
        packet = []
2280 1
        packet.append(self.TypeId.to_binary())
2281 1
        packet.append(self.RequestHeader.to_binary())
2282 1
        packet.append(self.Parameters.to_binary())
2283 1
        return b''.join(packet)
2284
        
2285 1
    @staticmethod
2286
    def from_binary(data):
2287 1
        obj = OpenSecureChannelRequest()
2288 1
        obj.TypeId = NodeId.from_binary(data)
2289 1
        obj.RequestHeader = RequestHeader.from_binary(data)
2290 1
        obj.Parameters = OpenSecureChannelParameters.from_binary(data)
2291 1
        return obj
2292
    
2293 1
    def __str__(self):
2294
        return 'OpenSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2295
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
2296
             'Parameters:' + str(self.Parameters) + ')'
2297
    
2298 1
    __repr__ = __str__
2299
    
2300 1
class OpenSecureChannelResult(FrozenClass):
2301
    '''
2302
    :ivar ServerProtocolVersion: 
2303
    :vartype ServerProtocolVersion: UInt32 
2304
    :ivar SecurityToken: 
2305
    :vartype SecurityToken: ChannelSecurityToken 
2306
    :ivar ServerNonce: 
2307
    :vartype ServerNonce: ByteString 
2308
    '''
2309 1
    def __init__(self):
2310 1
        self.ServerProtocolVersion = 0
2311 1
        self.SecurityToken = ChannelSecurityToken()
2312 1
        self.ServerNonce = b''
2313 1
        self._freeze()
2314
    
2315 1
    def to_binary(self):
2316 1
        packet = []
2317 1
        packet.append(pack_uatype('UInt32', self.ServerProtocolVersion))
2318 1
        packet.append(self.SecurityToken.to_binary())
2319 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
2320 1
        return b''.join(packet)
2321
        
2322 1
    @staticmethod
2323
    def from_binary(data):
2324 1
        obj = OpenSecureChannelResult()
2325 1
        obj.ServerProtocolVersion = unpack_uatype('UInt32', data)
2326 1
        obj.SecurityToken = ChannelSecurityToken.from_binary(data)
2327 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
2328 1
        return obj
2329
    
2330 1
    def __str__(self):
2331
        return 'OpenSecureChannelResult(' + 'ServerProtocolVersion:' + str(self.ServerProtocolVersion) + ', '  + \
2332
             'SecurityToken:' + str(self.SecurityToken) + ', '  + \
2333
             'ServerNonce:' + str(self.ServerNonce) + ')'
2334
    
2335 1
    __repr__ = __str__
2336
    
2337 1
class OpenSecureChannelResponse(FrozenClass):
2338
    '''
2339
    Creates a secure channel with a server.
2340
    
2341
    :ivar TypeId: 
2342
    :vartype TypeId: NodeId 
2343
    :ivar ResponseHeader: 
2344
    :vartype ResponseHeader: ResponseHeader 
2345
    :ivar Parameters: 
2346
    :vartype Parameters: OpenSecureChannelResult 
2347
    '''
2348 1
    def __init__(self):
2349 1
        self.TypeId = FourByteNodeId(ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary)
2350 1
        self.ResponseHeader = ResponseHeader()
2351 1
        self.Parameters = OpenSecureChannelResult()
2352 1
        self._freeze()
2353
    
2354 1
    def to_binary(self):
2355 1
        packet = []
2356 1
        packet.append(self.TypeId.to_binary())
2357 1
        packet.append(self.ResponseHeader.to_binary())
2358 1
        packet.append(self.Parameters.to_binary())
2359 1
        return b''.join(packet)
2360
        
2361 1
    @staticmethod
2362
    def from_binary(data):
2363 1
        obj = OpenSecureChannelResponse()
2364 1
        obj.TypeId = NodeId.from_binary(data)
2365 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2366 1
        obj.Parameters = OpenSecureChannelResult.from_binary(data)
2367 1
        return obj
2368
    
2369 1
    def __str__(self):
2370
        return 'OpenSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2371
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
2372
             'Parameters:' + str(self.Parameters) + ')'
2373
    
2374 1
    __repr__ = __str__
2375
    
2376 1
class CloseSecureChannelRequest(FrozenClass):
2377
    '''
2378
    Closes a secure channel.
2379
    
2380
    :ivar TypeId: 
2381
    :vartype TypeId: NodeId 
2382
    :ivar RequestHeader: 
2383
    :vartype RequestHeader: RequestHeader 
2384
    '''
2385 1
    def __init__(self):
2386 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary)
2387 1
        self.RequestHeader = RequestHeader()
2388 1
        self._freeze()
2389
    
2390 1
    def to_binary(self):
2391 1
        packet = []
2392 1
        packet.append(self.TypeId.to_binary())
2393 1
        packet.append(self.RequestHeader.to_binary())
2394 1
        return b''.join(packet)
2395
        
2396 1
    @staticmethod
2397
    def from_binary(data):
2398
        obj = CloseSecureChannelRequest()
2399
        obj.TypeId = NodeId.from_binary(data)
2400
        obj.RequestHeader = RequestHeader.from_binary(data)
2401
        return obj
2402
    
2403 1
    def __str__(self):
2404
        return 'CloseSecureChannelRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2405
             'RequestHeader:' + str(self.RequestHeader) + ')'
2406
    
2407 1
    __repr__ = __str__
2408
    
2409 1
class CloseSecureChannelResponse(FrozenClass):
2410
    '''
2411
    Closes a secure channel.
2412
    
2413
    :ivar TypeId: 
2414
    :vartype TypeId: NodeId 
2415
    :ivar ResponseHeader: 
2416
    :vartype ResponseHeader: ResponseHeader 
2417
    '''
2418 1
    def __init__(self):
2419
        self.TypeId = FourByteNodeId(ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary)
2420
        self.ResponseHeader = ResponseHeader()
2421
        self._freeze()
2422
    
2423 1
    def to_binary(self):
2424
        packet = []
2425
        packet.append(self.TypeId.to_binary())
2426
        packet.append(self.ResponseHeader.to_binary())
2427
        return b''.join(packet)
2428
        
2429 1
    @staticmethod
2430
    def from_binary(data):
2431
        obj = CloseSecureChannelResponse()
2432
        obj.TypeId = NodeId.from_binary(data)
2433
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2434
        return obj
2435
    
2436 1
    def __str__(self):
2437
        return 'CloseSecureChannelResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2438
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
2439
    
2440 1
    __repr__ = __str__
2441
    
2442 1
class SignedSoftwareCertificate(FrozenClass):
2443
    '''
2444
    A software certificate with a digital signature.
2445
    
2446
    :ivar CertificateData: 
2447
    :vartype CertificateData: ByteString 
2448
    :ivar Signature: 
2449
    :vartype Signature: ByteString 
2450
    '''
2451 1
    def __init__(self):
2452
        self.CertificateData = b''
2453
        self.Signature = b''
2454
        self._freeze()
2455
    
2456 1
    def to_binary(self):
2457
        packet = []
2458
        packet.append(pack_uatype('ByteString', self.CertificateData))
2459
        packet.append(pack_uatype('ByteString', self.Signature))
2460
        return b''.join(packet)
2461
        
2462 1
    @staticmethod
2463
    def from_binary(data):
2464
        obj = SignedSoftwareCertificate()
2465
        obj.CertificateData = unpack_uatype('ByteString', data)
2466
        obj.Signature = unpack_uatype('ByteString', data)
2467
        return obj
2468
    
2469 1
    def __str__(self):
2470
        return 'SignedSoftwareCertificate(' + 'CertificateData:' + str(self.CertificateData) + ', '  + \
2471
             'Signature:' + str(self.Signature) + ')'
2472
    
2473 1
    __repr__ = __str__
2474
    
2475 1
class SignatureData(FrozenClass):
2476
    '''
2477
    A digital signature.
2478
    
2479
    :ivar Algorithm: 
2480
    :vartype Algorithm: String 
2481
    :ivar Signature: 
2482
    :vartype Signature: ByteString 
2483
    '''
2484 1
    def __init__(self):
2485 1
        self.Algorithm = ''
2486 1
        self.Signature = b''
2487 1
        self._freeze()
2488
    
2489 1
    def to_binary(self):
2490 1
        packet = []
2491 1
        packet.append(pack_uatype('String', self.Algorithm))
2492 1
        packet.append(pack_uatype('ByteString', self.Signature))
2493 1
        return b''.join(packet)
2494
        
2495 1
    @staticmethod
2496
    def from_binary(data):
2497 1
        obj = SignatureData()
2498 1
        obj.Algorithm = unpack_uatype('String', data)
2499 1
        obj.Signature = unpack_uatype('ByteString', data)
2500 1
        return obj
2501
    
2502 1
    def __str__(self):
2503
        return 'SignatureData(' + 'Algorithm:' + str(self.Algorithm) + ', '  + \
2504
             'Signature:' + str(self.Signature) + ')'
2505
    
2506 1
    __repr__ = __str__
2507
    
2508 1
class CreateSessionParameters(FrozenClass):
2509
    '''
2510
    :ivar ClientDescription: 
2511
    :vartype ClientDescription: ApplicationDescription 
2512
    :ivar ServerUri: 
2513
    :vartype ServerUri: String 
2514
    :ivar EndpointUrl: 
2515
    :vartype EndpointUrl: String 
2516
    :ivar SessionName: 
2517
    :vartype SessionName: String 
2518
    :ivar ClientNonce: 
2519
    :vartype ClientNonce: ByteString 
2520
    :ivar ClientCertificate: 
2521
    :vartype ClientCertificate: ByteString 
2522
    :ivar RequestedSessionTimeout: 
2523
    :vartype RequestedSessionTimeout: Double 
2524
    :ivar MaxResponseMessageSize: 
2525
    :vartype MaxResponseMessageSize: UInt32 
2526
    '''
2527 1
    def __init__(self):
2528 1
        self.ClientDescription = ApplicationDescription()
2529 1
        self.ServerUri = ''
2530 1
        self.EndpointUrl = ''
2531 1
        self.SessionName = ''
2532 1
        self.ClientNonce = b''
2533 1
        self.ClientCertificate = b''
2534 1
        self.RequestedSessionTimeout = 0
2535 1
        self.MaxResponseMessageSize = 0
2536 1
        self._freeze()
2537
    
2538 1
    def to_binary(self):
2539 1
        packet = []
2540 1
        packet.append(self.ClientDescription.to_binary())
2541 1
        packet.append(pack_uatype('String', self.ServerUri))
2542 1
        packet.append(pack_uatype('String', self.EndpointUrl))
2543 1
        packet.append(pack_uatype('String', self.SessionName))
2544 1
        packet.append(pack_uatype('ByteString', self.ClientNonce))
2545 1
        packet.append(pack_uatype('ByteString', self.ClientCertificate))
2546 1
        packet.append(pack_uatype('Double', self.RequestedSessionTimeout))
2547 1
        packet.append(pack_uatype('UInt32', self.MaxResponseMessageSize))
2548 1
        return b''.join(packet)
2549
        
2550 1
    @staticmethod
2551
    def from_binary(data):
2552 1
        obj = CreateSessionParameters()
2553 1
        obj.ClientDescription = ApplicationDescription.from_binary(data)
2554 1
        obj.ServerUri = unpack_uatype('String', data)
2555 1
        obj.EndpointUrl = unpack_uatype('String', data)
2556 1
        obj.SessionName = unpack_uatype('String', data)
2557 1
        obj.ClientNonce = unpack_uatype('ByteString', data)
2558 1
        obj.ClientCertificate = unpack_uatype('ByteString', data)
2559 1
        obj.RequestedSessionTimeout = unpack_uatype('Double', data)
2560 1
        obj.MaxResponseMessageSize = unpack_uatype('UInt32', data)
2561 1
        return obj
2562
    
2563 1
    def __str__(self):
2564
        return 'CreateSessionParameters(' + 'ClientDescription:' + str(self.ClientDescription) + ', '  + \
2565
             'ServerUri:' + str(self.ServerUri) + ', '  + \
2566
             'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
2567
             'SessionName:' + str(self.SessionName) + ', '  + \
2568
             'ClientNonce:' + str(self.ClientNonce) + ', '  + \
2569
             'ClientCertificate:' + str(self.ClientCertificate) + ', '  + \
2570
             'RequestedSessionTimeout:' + str(self.RequestedSessionTimeout) + ', '  + \
2571
             'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ')'
2572
    
2573 1
    __repr__ = __str__
2574
    
2575 1
class CreateSessionRequest(FrozenClass):
2576
    '''
2577
    Creates a new session with the server.
2578
    
2579
    :ivar TypeId: 
2580
    :vartype TypeId: NodeId 
2581
    :ivar RequestHeader: 
2582
    :vartype RequestHeader: RequestHeader 
2583
    :ivar Parameters: 
2584
    :vartype Parameters: CreateSessionParameters 
2585
    '''
2586 1
    def __init__(self):
2587 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionRequest_Encoding_DefaultBinary)
2588 1
        self.RequestHeader = RequestHeader()
2589 1
        self.Parameters = CreateSessionParameters()
2590 1
        self._freeze()
2591
    
2592 1
    def to_binary(self):
2593 1
        packet = []
2594 1
        packet.append(self.TypeId.to_binary())
2595 1
        packet.append(self.RequestHeader.to_binary())
2596 1
        packet.append(self.Parameters.to_binary())
2597 1
        return b''.join(packet)
2598
        
2599 1
    @staticmethod
2600
    def from_binary(data):
2601
        obj = CreateSessionRequest()
2602
        obj.TypeId = NodeId.from_binary(data)
2603
        obj.RequestHeader = RequestHeader.from_binary(data)
2604
        obj.Parameters = CreateSessionParameters.from_binary(data)
2605
        return obj
2606
    
2607 1
    def __str__(self):
2608
        return 'CreateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2609
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
2610
             'Parameters:' + str(self.Parameters) + ')'
2611
    
2612 1
    __repr__ = __str__
2613
    
2614 1
class CreateSessionResult(FrozenClass):
2615
    '''
2616
    :ivar SessionId: 
2617
    :vartype SessionId: NodeId 
2618
    :ivar AuthenticationToken: 
2619
    :vartype AuthenticationToken: NodeId 
2620
    :ivar RevisedSessionTimeout: 
2621
    :vartype RevisedSessionTimeout: Double 
2622
    :ivar ServerNonce: 
2623
    :vartype ServerNonce: ByteString 
2624
    :ivar ServerCertificate: 
2625
    :vartype ServerCertificate: ByteString 
2626
    :ivar ServerEndpoints: 
2627
    :vartype ServerEndpoints: EndpointDescription 
2628
    :ivar ServerSoftwareCertificates: 
2629
    :vartype ServerSoftwareCertificates: SignedSoftwareCertificate 
2630
    :ivar ServerSignature: 
2631
    :vartype ServerSignature: SignatureData 
2632
    :ivar MaxRequestMessageSize: 
2633
    :vartype MaxRequestMessageSize: UInt32 
2634
    '''
2635 1
    def __init__(self):
2636 1
        self.SessionId = NodeId()
2637 1
        self.AuthenticationToken = NodeId()
2638 1
        self.RevisedSessionTimeout = 0
2639 1
        self.ServerNonce = b''
2640 1
        self.ServerCertificate = b''
2641 1
        self.ServerEndpoints = []
2642 1
        self.ServerSoftwareCertificates = []
2643 1
        self.ServerSignature = SignatureData()
2644 1
        self.MaxRequestMessageSize = 0
2645 1
        self._freeze()
2646
    
2647 1
    def to_binary(self):
2648 1
        packet = []
2649 1
        packet.append(self.SessionId.to_binary())
2650 1
        packet.append(self.AuthenticationToken.to_binary())
2651 1
        packet.append(pack_uatype('Double', self.RevisedSessionTimeout))
2652 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
2653 1
        packet.append(pack_uatype('ByteString', self.ServerCertificate))
2654 1
        packet.append(struct.pack('<i', len(self.ServerEndpoints)))
2655 1
        for fieldname in self.ServerEndpoints:
2656 1
            packet.append(fieldname.to_binary())
2657 1
        packet.append(struct.pack('<i', len(self.ServerSoftwareCertificates)))
2658 1
        for fieldname in self.ServerSoftwareCertificates:
2659
            packet.append(fieldname.to_binary())
2660 1
        packet.append(self.ServerSignature.to_binary())
2661 1
        packet.append(pack_uatype('UInt32', self.MaxRequestMessageSize))
2662 1
        return b''.join(packet)
2663
        
2664 1
    @staticmethod
2665
    def from_binary(data):
2666 1
        obj = CreateSessionResult()
2667 1
        obj.SessionId = NodeId.from_binary(data)
2668 1
        obj.AuthenticationToken = NodeId.from_binary(data)
2669 1
        obj.RevisedSessionTimeout = unpack_uatype('Double', data)
2670 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
2671 1
        obj.ServerCertificate = unpack_uatype('ByteString', data)
2672 1
        length = struct.unpack('<i', data.read(4))[0]
2673 1
        if length != -1:
2674 1
            for _ in range(0, length):
2675 1
                obj.ServerEndpoints.append(EndpointDescription.from_binary(data))
2676 1
        length = struct.unpack('<i', data.read(4))[0]
2677 1
        if length != -1:
2678 1
            for _ in range(0, length):
2679
                obj.ServerSoftwareCertificates.append(SignedSoftwareCertificate.from_binary(data))
2680 1
        obj.ServerSignature = SignatureData.from_binary(data)
2681 1
        obj.MaxRequestMessageSize = unpack_uatype('UInt32', data)
2682 1
        return obj
2683
    
2684 1
    def __str__(self):
2685
        return 'CreateSessionResult(' + 'SessionId:' + str(self.SessionId) + ', '  + \
2686
             'AuthenticationToken:' + str(self.AuthenticationToken) + ', '  + \
2687
             'RevisedSessionTimeout:' + str(self.RevisedSessionTimeout) + ', '  + \
2688
             'ServerNonce:' + str(self.ServerNonce) + ', '  + \
2689
             'ServerCertificate:' + str(self.ServerCertificate) + ', '  + \
2690
             'ServerEndpoints:' + str(self.ServerEndpoints) + ', '  + \
2691
             'ServerSoftwareCertificates:' + str(self.ServerSoftwareCertificates) + ', '  + \
2692
             'ServerSignature:' + str(self.ServerSignature) + ', '  + \
2693
             'MaxRequestMessageSize:' + str(self.MaxRequestMessageSize) + ')'
2694
    
2695 1
    __repr__ = __str__
2696
    
2697 1
class CreateSessionResponse(FrozenClass):
2698
    '''
2699
    Creates a new session with the server.
2700
    
2701
    :ivar TypeId: 
2702
    :vartype TypeId: NodeId 
2703
    :ivar ResponseHeader: 
2704
    :vartype ResponseHeader: ResponseHeader 
2705
    :ivar Parameters: 
2706
    :vartype Parameters: CreateSessionResult 
2707
    '''
2708 1
    def __init__(self):
2709 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSessionResponse_Encoding_DefaultBinary)
2710 1
        self.ResponseHeader = ResponseHeader()
2711 1
        self.Parameters = CreateSessionResult()
2712 1
        self._freeze()
2713
    
2714 1
    def to_binary(self):
2715 1
        packet = []
2716 1
        packet.append(self.TypeId.to_binary())
2717 1
        packet.append(self.ResponseHeader.to_binary())
2718 1
        packet.append(self.Parameters.to_binary())
2719 1
        return b''.join(packet)
2720
        
2721 1
    @staticmethod
2722
    def from_binary(data):
2723 1
        obj = CreateSessionResponse()
2724 1
        obj.TypeId = NodeId.from_binary(data)
2725 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
2726 1
        obj.Parameters = CreateSessionResult.from_binary(data)
2727 1
        return obj
2728
    
2729 1
    def __str__(self):
2730
        return 'CreateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
2731
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
2732
             'Parameters:' + str(self.Parameters) + ')'
2733
    
2734 1
    __repr__ = __str__
2735
    
2736 1
class UserIdentityToken(FrozenClass):
2737
    '''
2738
    A base type for a user identity token.
2739
    
2740
    :ivar PolicyId: 
2741
    :vartype PolicyId: String 
2742
    '''
2743 1
    def __init__(self):
2744
        self.PolicyId = ''
2745
        self._freeze()
2746
    
2747 1
    def to_binary(self):
2748
        packet = []
2749
        packet.append(pack_uatype('String', self.PolicyId))
2750
        return b''.join(packet)
2751
        
2752 1
    @staticmethod
2753
    def from_binary(data):
2754
        obj = UserIdentityToken()
2755
        obj.PolicyId = unpack_uatype('String', data)
2756
        return obj
2757
    
2758 1
    def __str__(self):
2759
        return 'UserIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
2760
    
2761 1
    __repr__ = __str__
2762
    
2763 1
class AnonymousIdentityToken(FrozenClass):
2764
    '''
2765
    A token representing an anonymous user.
2766
    
2767
    :ivar PolicyId: 
2768
    :vartype PolicyId: String 
2769
    '''
2770 1
    def __init__(self):
2771 1
        self.PolicyId = ''
2772 1
        self._freeze()
2773
    
2774 1
    def to_binary(self):
2775 1
        packet = []
2776 1
        packet.append(pack_uatype('String', self.PolicyId))
2777 1
        return b''.join(packet)
2778
        
2779 1
    @staticmethod
2780
    def from_binary(data):
2781 1
        obj = AnonymousIdentityToken()
2782 1
        obj.PolicyId = unpack_uatype('String', data)
2783 1
        return obj
2784
    
2785 1
    def __str__(self):
2786
        return 'AnonymousIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ')'
2787
    
2788 1
    __repr__ = __str__
2789
    
2790 1
class UserNameIdentityToken(FrozenClass):
2791
    '''
2792
    A token representing a user identified by a user name and password.
2793
    
2794
    :ivar PolicyId: 
2795
    :vartype PolicyId: String 
2796
    :ivar UserName: 
2797
    :vartype UserName: String 
2798
    :ivar Password: 
2799
    :vartype Password: ByteString 
2800
    :ivar EncryptionAlgorithm: 
2801
    :vartype EncryptionAlgorithm: String 
2802
    '''
2803 1
    def __init__(self):
2804 1
        self.PolicyId = ''
2805 1
        self.UserName = ''
2806 1
        self.Password = b''
2807 1
        self.EncryptionAlgorithm = ''
2808 1
        self._freeze()
2809
    
2810 1
    def to_binary(self):
2811 1
        packet = []
2812 1
        packet.append(pack_uatype('String', self.PolicyId))
2813 1
        packet.append(pack_uatype('String', self.UserName))
2814 1
        packet.append(pack_uatype('ByteString', self.Password))
2815 1
        packet.append(pack_uatype('String', self.EncryptionAlgorithm))
2816 1
        return b''.join(packet)
2817
        
2818 1
    @staticmethod
2819
    def from_binary(data):
2820 1
        obj = UserNameIdentityToken()
2821 1
        obj.PolicyId = unpack_uatype('String', data)
2822 1
        obj.UserName = unpack_uatype('String', data)
2823 1
        obj.Password = unpack_uatype('ByteString', data)
2824 1
        obj.EncryptionAlgorithm = unpack_uatype('String', data)
2825 1
        return obj
2826
    
2827 1
    def __str__(self):
2828
        return 'UserNameIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2829
             'UserName:' + str(self.UserName) + ', '  + \
2830
             'Password:' + str(self.Password) + ', '  + \
2831
             'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
2832
    
2833 1
    __repr__ = __str__
2834
    
2835 1
class X509IdentityToken(FrozenClass):
2836
    '''
2837
    A token representing a user identified by an X509 certificate.
2838
    
2839
    :ivar PolicyId: 
2840
    :vartype PolicyId: String 
2841
    :ivar CertificateData: 
2842
    :vartype CertificateData: ByteString 
2843
    '''
2844 1
    def __init__(self):
2845
        self.PolicyId = ''
2846
        self.CertificateData = b''
2847
        self._freeze()
2848
    
2849 1
    def to_binary(self):
2850
        packet = []
2851
        packet.append(pack_uatype('String', self.PolicyId))
2852
        packet.append(pack_uatype('ByteString', self.CertificateData))
2853
        return b''.join(packet)
2854
        
2855 1
    @staticmethod
2856
    def from_binary(data):
2857
        obj = X509IdentityToken()
2858
        obj.PolicyId = unpack_uatype('String', data)
2859
        obj.CertificateData = unpack_uatype('ByteString', data)
2860
        return obj
2861
    
2862 1
    def __str__(self):
2863
        return 'X509IdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2864
             'CertificateData:' + str(self.CertificateData) + ')'
2865
    
2866 1
    __repr__ = __str__
2867
    
2868 1
class KerberosIdentityToken(FrozenClass):
2869
    '''
2870
    :ivar PolicyId: 
2871
    :vartype PolicyId: String 
2872
    :ivar TicketData: 
2873
    :vartype TicketData: ByteString 
2874
    '''
2875 1
    def __init__(self):
2876
        self.PolicyId = ''
2877
        self.TicketData = b''
2878
        self._freeze()
2879
    
2880 1
    def to_binary(self):
2881
        packet = []
2882
        packet.append(pack_uatype('String', self.PolicyId))
2883
        packet.append(pack_uatype('ByteString', self.TicketData))
2884
        return b''.join(packet)
2885
        
2886 1
    @staticmethod
2887
    def from_binary(data):
2888
        obj = KerberosIdentityToken()
2889
        obj.PolicyId = unpack_uatype('String', data)
2890
        obj.TicketData = unpack_uatype('ByteString', data)
2891
        return obj
2892
    
2893 1
    def __str__(self):
2894
        return 'KerberosIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2895
             'TicketData:' + str(self.TicketData) + ')'
2896
    
2897 1
    __repr__ = __str__
2898
    
2899 1
class IssuedIdentityToken(FrozenClass):
2900
    '''
2901
    A token representing a user identified by a WS-Security XML token.
2902
    
2903
    :ivar PolicyId: 
2904
    :vartype PolicyId: String 
2905
    :ivar TokenData: 
2906
    :vartype TokenData: ByteString 
2907
    :ivar EncryptionAlgorithm: 
2908
    :vartype EncryptionAlgorithm: String 
2909
    '''
2910 1
    def __init__(self):
2911
        self.PolicyId = ''
2912
        self.TokenData = b''
2913
        self.EncryptionAlgorithm = ''
2914
        self._freeze()
2915
    
2916 1
    def to_binary(self):
2917
        packet = []
2918
        packet.append(pack_uatype('String', self.PolicyId))
2919
        packet.append(pack_uatype('ByteString', self.TokenData))
2920
        packet.append(pack_uatype('String', self.EncryptionAlgorithm))
2921
        return b''.join(packet)
2922
        
2923 1
    @staticmethod
2924
    def from_binary(data):
2925
        obj = IssuedIdentityToken()
2926
        obj.PolicyId = unpack_uatype('String', data)
2927
        obj.TokenData = unpack_uatype('ByteString', data)
2928
        obj.EncryptionAlgorithm = unpack_uatype('String', data)
2929
        return obj
2930
    
2931 1
    def __str__(self):
2932
        return 'IssuedIdentityToken(' + 'PolicyId:' + str(self.PolicyId) + ', '  + \
2933
             'TokenData:' + str(self.TokenData) + ', '  + \
2934
             'EncryptionAlgorithm:' + str(self.EncryptionAlgorithm) + ')'
2935
    
2936 1
    __repr__ = __str__
2937
    
2938 1
class ActivateSessionParameters(FrozenClass):
2939
    '''
2940
    :ivar ClientSignature: 
2941
    :vartype ClientSignature: SignatureData 
2942
    :ivar ClientSoftwareCertificates: 
2943
    :vartype ClientSoftwareCertificates: SignedSoftwareCertificate 
2944
    :ivar LocaleIds: 
2945
    :vartype LocaleIds: String 
2946
    :ivar UserIdentityToken: 
2947
    :vartype UserIdentityToken: ExtensionObject 
2948
    :ivar UserTokenSignature: 
2949
    :vartype UserTokenSignature: SignatureData 
2950
    '''
2951 1
    def __init__(self):
2952 1
        self.ClientSignature = SignatureData()
2953 1
        self.ClientSoftwareCertificates = []
2954 1
        self.LocaleIds = []
2955 1
        self.UserIdentityToken = None
2956 1
        self.UserTokenSignature = SignatureData()
2957 1
        self._freeze()
2958
    
2959 1
    def to_binary(self):
2960 1
        packet = []
2961 1
        packet.append(self.ClientSignature.to_binary())
2962 1
        packet.append(struct.pack('<i', len(self.ClientSoftwareCertificates)))
2963 1
        for fieldname in self.ClientSoftwareCertificates:
2964
            packet.append(fieldname.to_binary())
2965 1
        packet.append(struct.pack('<i', len(self.LocaleIds)))
2966 1
        for fieldname in self.LocaleIds:
2967 1
            packet.append(pack_uatype('String', fieldname))
2968 1
        packet.append(extensionobject_to_binary(self.UserIdentityToken))
2969 1
        packet.append(self.UserTokenSignature.to_binary())
2970 1
        return b''.join(packet)
2971
        
2972 1
    @staticmethod
2973
    def from_binary(data):
2974 1
        obj = ActivateSessionParameters()
2975 1
        obj.ClientSignature = SignatureData.from_binary(data)
2976 1
        length = struct.unpack('<i', data.read(4))[0]
2977 1
        if length != -1:
2978 1
            for _ in range(0, length):
2979
                obj.ClientSoftwareCertificates.append(SignedSoftwareCertificate.from_binary(data))
2980 1
        obj.LocaleIds = unpack_uatype_array('String', data)
2981 1
        obj.UserIdentityToken = extensionobject_from_binary(data)
2982 1
        obj.UserTokenSignature = SignatureData.from_binary(data)
2983 1
        return obj
2984
    
2985 1
    def __str__(self):
2986
        return 'ActivateSessionParameters(' + 'ClientSignature:' + str(self.ClientSignature) + ', '  + \
2987
             'ClientSoftwareCertificates:' + str(self.ClientSoftwareCertificates) + ', '  + \
2988
             'LocaleIds:' + str(self.LocaleIds) + ', '  + \
2989
             'UserIdentityToken:' + str(self.UserIdentityToken) + ', '  + \
2990
             'UserTokenSignature:' + str(self.UserTokenSignature) + ')'
2991
    
2992 1
    __repr__ = __str__
2993
    
2994 1
class ActivateSessionRequest(FrozenClass):
2995
    '''
2996
    Activates a session with the server.
2997
    
2998
    :ivar TypeId: 
2999
    :vartype TypeId: NodeId 
3000
    :ivar RequestHeader: 
3001
    :vartype RequestHeader: RequestHeader 
3002
    :ivar Parameters: 
3003
    :vartype Parameters: ActivateSessionParameters 
3004
    '''
3005 1
    def __init__(self):
3006 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary)
3007 1
        self.RequestHeader = RequestHeader()
3008 1
        self.Parameters = ActivateSessionParameters()
3009 1
        self._freeze()
3010
    
3011 1
    def to_binary(self):
3012 1
        packet = []
3013 1
        packet.append(self.TypeId.to_binary())
3014 1
        packet.append(self.RequestHeader.to_binary())
3015 1
        packet.append(self.Parameters.to_binary())
3016 1
        return b''.join(packet)
3017
        
3018 1
    @staticmethod
3019
    def from_binary(data):
3020
        obj = ActivateSessionRequest()
3021
        obj.TypeId = NodeId.from_binary(data)
3022
        obj.RequestHeader = RequestHeader.from_binary(data)
3023
        obj.Parameters = ActivateSessionParameters.from_binary(data)
3024
        return obj
3025
    
3026 1
    def __str__(self):
3027
        return 'ActivateSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3028
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
3029
             'Parameters:' + str(self.Parameters) + ')'
3030
    
3031 1
    __repr__ = __str__
3032
    
3033 1
class ActivateSessionResult(FrozenClass):
3034
    '''
3035
    :ivar ServerNonce: 
3036
    :vartype ServerNonce: ByteString 
3037
    :ivar Results: 
3038
    :vartype Results: StatusCode 
3039
    :ivar DiagnosticInfos: 
3040
    :vartype DiagnosticInfos: DiagnosticInfo 
3041
    '''
3042 1
    def __init__(self):
3043 1
        self.ServerNonce = b''
3044 1
        self.Results = []
3045 1
        self.DiagnosticInfos = []
3046 1
        self._freeze()
3047
    
3048 1
    def to_binary(self):
3049 1
        packet = []
3050 1
        packet.append(pack_uatype('ByteString', self.ServerNonce))
3051 1
        packet.append(struct.pack('<i', len(self.Results)))
3052 1
        for fieldname in self.Results:
3053
            packet.append(fieldname.to_binary())
3054 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
3055 1
        for fieldname in self.DiagnosticInfos:
3056
            packet.append(fieldname.to_binary())
3057 1
        return b''.join(packet)
3058
        
3059 1
    @staticmethod
3060
    def from_binary(data):
3061 1
        obj = ActivateSessionResult()
3062 1
        obj.ServerNonce = unpack_uatype('ByteString', data)
3063 1
        length = struct.unpack('<i', data.read(4))[0]
3064 1
        if length != -1:
3065 1
            for _ in range(0, length):
3066
                obj.Results.append(StatusCode.from_binary(data))
3067 1
        length = struct.unpack('<i', data.read(4))[0]
3068 1
        if length != -1:
3069 1
            for _ in range(0, length):
3070
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
3071 1
        return obj
3072
    
3073 1
    def __str__(self):
3074
        return 'ActivateSessionResult(' + 'ServerNonce:' + str(self.ServerNonce) + ', '  + \
3075
             'Results:' + str(self.Results) + ', '  + \
3076
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
3077
    
3078 1
    __repr__ = __str__
3079
    
3080 1
class ActivateSessionResponse(FrozenClass):
3081
    '''
3082
    Activates a session with the server.
3083
    
3084
    :ivar TypeId: 
3085
    :vartype TypeId: NodeId 
3086
    :ivar ResponseHeader: 
3087
    :vartype ResponseHeader: ResponseHeader 
3088
    :ivar Parameters: 
3089
    :vartype Parameters: ActivateSessionResult 
3090
    '''
3091 1
    def __init__(self):
3092 1
        self.TypeId = FourByteNodeId(ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary)
3093 1
        self.ResponseHeader = ResponseHeader()
3094 1
        self.Parameters = ActivateSessionResult()
3095 1
        self._freeze()
3096
    
3097 1
    def to_binary(self):
3098 1
        packet = []
3099 1
        packet.append(self.TypeId.to_binary())
3100 1
        packet.append(self.ResponseHeader.to_binary())
3101 1
        packet.append(self.Parameters.to_binary())
3102 1
        return b''.join(packet)
3103
        
3104 1
    @staticmethod
3105
    def from_binary(data):
3106 1
        obj = ActivateSessionResponse()
3107 1
        obj.TypeId = NodeId.from_binary(data)
3108 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3109 1
        obj.Parameters = ActivateSessionResult.from_binary(data)
3110 1
        return obj
3111
    
3112 1
    def __str__(self):
3113
        return 'ActivateSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3114
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
3115
             'Parameters:' + str(self.Parameters) + ')'
3116
    
3117 1
    __repr__ = __str__
3118
    
3119 1
class CloseSessionRequest(FrozenClass):
3120
    '''
3121
    Closes a session with the server.
3122
    
3123
    :ivar TypeId: 
3124
    :vartype TypeId: NodeId 
3125
    :ivar RequestHeader: 
3126
    :vartype RequestHeader: RequestHeader 
3127
    :ivar DeleteSubscriptions: 
3128
    :vartype DeleteSubscriptions: Boolean 
3129
    '''
3130 1
    def __init__(self):
3131 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionRequest_Encoding_DefaultBinary)
3132 1
        self.RequestHeader = RequestHeader()
3133 1
        self.DeleteSubscriptions = True
3134 1
        self._freeze()
3135
    
3136 1
    def to_binary(self):
3137 1
        packet = []
3138 1
        packet.append(self.TypeId.to_binary())
3139 1
        packet.append(self.RequestHeader.to_binary())
3140 1
        packet.append(pack_uatype('Boolean', self.DeleteSubscriptions))
3141 1
        return b''.join(packet)
3142
        
3143 1
    @staticmethod
3144
    def from_binary(data):
3145
        obj = CloseSessionRequest()
3146
        obj.TypeId = NodeId.from_binary(data)
3147
        obj.RequestHeader = RequestHeader.from_binary(data)
3148
        obj.DeleteSubscriptions = unpack_uatype('Boolean', data)
3149
        return obj
3150
    
3151 1
    def __str__(self):
3152
        return 'CloseSessionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3153
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
3154
             'DeleteSubscriptions:' + str(self.DeleteSubscriptions) + ')'
3155
    
3156 1
    __repr__ = __str__
3157
    
3158 1
class CloseSessionResponse(FrozenClass):
3159
    '''
3160
    Closes a session with the server.
3161
    
3162
    :ivar TypeId: 
3163
    :vartype TypeId: NodeId 
3164
    :ivar ResponseHeader: 
3165
    :vartype ResponseHeader: ResponseHeader 
3166
    '''
3167 1
    def __init__(self):
3168 1
        self.TypeId = FourByteNodeId(ObjectIds.CloseSessionResponse_Encoding_DefaultBinary)
3169 1
        self.ResponseHeader = ResponseHeader()
3170 1
        self._freeze()
3171
    
3172 1
    def to_binary(self):
3173 1
        packet = []
3174 1
        packet.append(self.TypeId.to_binary())
3175 1
        packet.append(self.ResponseHeader.to_binary())
3176 1
        return b''.join(packet)
3177
        
3178 1
    @staticmethod
3179
    def from_binary(data):
3180 1
        obj = CloseSessionResponse()
3181 1
        obj.TypeId = NodeId.from_binary(data)
3182 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3183 1
        return obj
3184
    
3185 1
    def __str__(self):
3186
        return 'CloseSessionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3187
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
3188
    
3189 1
    __repr__ = __str__
3190
    
3191 1
class CancelParameters(FrozenClass):
3192
    '''
3193
    :ivar RequestHandle: 
3194
    :vartype RequestHandle: UInt32 
3195
    '''
3196 1
    def __init__(self):
3197
        self.RequestHandle = 0
3198
        self._freeze()
3199
    
3200 1
    def to_binary(self):
3201
        packet = []
3202
        packet.append(pack_uatype('UInt32', self.RequestHandle))
3203
        return b''.join(packet)
3204
        
3205 1
    @staticmethod
3206
    def from_binary(data):
3207
        obj = CancelParameters()
3208
        obj.RequestHandle = unpack_uatype('UInt32', data)
3209
        return obj
3210
    
3211 1
    def __str__(self):
3212
        return 'CancelParameters(' + 'RequestHandle:' + str(self.RequestHandle) + ')'
3213
    
3214 1
    __repr__ = __str__
3215
    
3216 1
class CancelRequest(FrozenClass):
3217
    '''
3218
    Cancels an outstanding request.
3219
    
3220
    :ivar TypeId: 
3221
    :vartype TypeId: NodeId 
3222
    :ivar RequestHeader: 
3223
    :vartype RequestHeader: RequestHeader 
3224
    :ivar Parameters: 
3225
    :vartype Parameters: CancelParameters 
3226
    '''
3227 1
    def __init__(self):
3228
        self.TypeId = FourByteNodeId(ObjectIds.CancelRequest_Encoding_DefaultBinary)
3229
        self.RequestHeader = RequestHeader()
3230
        self.Parameters = CancelParameters()
3231
        self._freeze()
3232
    
3233 1
    def to_binary(self):
3234
        packet = []
3235
        packet.append(self.TypeId.to_binary())
3236
        packet.append(self.RequestHeader.to_binary())
3237
        packet.append(self.Parameters.to_binary())
3238
        return b''.join(packet)
3239
        
3240 1
    @staticmethod
3241
    def from_binary(data):
3242
        obj = CancelRequest()
3243
        obj.TypeId = NodeId.from_binary(data)
3244
        obj.RequestHeader = RequestHeader.from_binary(data)
3245
        obj.Parameters = CancelParameters.from_binary(data)
3246
        return obj
3247
    
3248 1
    def __str__(self):
3249
        return 'CancelRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3250
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
3251
             'Parameters:' + str(self.Parameters) + ')'
3252
    
3253 1
    __repr__ = __str__
3254
    
3255 1
class CancelResult(FrozenClass):
3256
    '''
3257
    :ivar CancelCount: 
3258
    :vartype CancelCount: UInt32 
3259
    '''
3260 1
    def __init__(self):
3261
        self.CancelCount = 0
3262
        self._freeze()
3263
    
3264 1
    def to_binary(self):
3265
        packet = []
3266
        packet.append(pack_uatype('UInt32', self.CancelCount))
3267
        return b''.join(packet)
3268
        
3269 1
    @staticmethod
3270
    def from_binary(data):
3271
        obj = CancelResult()
3272
        obj.CancelCount = unpack_uatype('UInt32', data)
3273
        return obj
3274
    
3275 1
    def __str__(self):
3276
        return 'CancelResult(' + 'CancelCount:' + str(self.CancelCount) + ')'
3277
    
3278 1
    __repr__ = __str__
3279
    
3280 1
class CancelResponse(FrozenClass):
3281
    '''
3282
    Cancels an outstanding request.
3283
    
3284
    :ivar TypeId: 
3285
    :vartype TypeId: NodeId 
3286
    :ivar ResponseHeader: 
3287
    :vartype ResponseHeader: ResponseHeader 
3288
    :ivar Parameters: 
3289
    :vartype Parameters: CancelResult 
3290
    '''
3291 1
    def __init__(self):
3292
        self.TypeId = FourByteNodeId(ObjectIds.CancelResponse_Encoding_DefaultBinary)
3293
        self.ResponseHeader = ResponseHeader()
3294
        self.Parameters = CancelResult()
3295
        self._freeze()
3296
    
3297 1
    def to_binary(self):
3298
        packet = []
3299
        packet.append(self.TypeId.to_binary())
3300
        packet.append(self.ResponseHeader.to_binary())
3301
        packet.append(self.Parameters.to_binary())
3302
        return b''.join(packet)
3303
        
3304 1
    @staticmethod
3305
    def from_binary(data):
3306
        obj = CancelResponse()
3307
        obj.TypeId = NodeId.from_binary(data)
3308
        obj.ResponseHeader = ResponseHeader.from_binary(data)
3309
        obj.Parameters = CancelResult.from_binary(data)
3310
        return obj
3311
    
3312 1
    def __str__(self):
3313
        return 'CancelResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
3314
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
3315
             'Parameters:' + str(self.Parameters) + ')'
3316
    
3317 1
    __repr__ = __str__
3318
    
3319 1
class NodeAttributes(FrozenClass):
3320
    '''
3321
    The base attributes for all nodes.
3322
    
3323
    :ivar SpecifiedAttributes: 
3324
    :vartype SpecifiedAttributes: UInt32 
3325
    :ivar DisplayName: 
3326
    :vartype DisplayName: LocalizedText 
3327
    :ivar Description: 
3328
    :vartype Description: LocalizedText 
3329
    :ivar WriteMask: 
3330
    :vartype WriteMask: UInt32 
3331
    :ivar UserWriteMask: 
3332
    :vartype UserWriteMask: UInt32 
3333
    '''
3334 1
    def __init__(self):
3335
        self.SpecifiedAttributes = 0
3336
        self.DisplayName = LocalizedText()
3337
        self.Description = LocalizedText()
3338
        self.WriteMask = 0
3339
        self.UserWriteMask = 0
3340
        self._freeze()
3341
    
3342 1
    def to_binary(self):
3343
        packet = []
3344
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3345
        packet.append(self.DisplayName.to_binary())
3346
        packet.append(self.Description.to_binary())
3347
        packet.append(pack_uatype('UInt32', self.WriteMask))
3348
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3349
        return b''.join(packet)
3350
        
3351 1
    @staticmethod
3352
    def from_binary(data):
3353
        obj = NodeAttributes()
3354
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3355
        obj.DisplayName = LocalizedText.from_binary(data)
3356
        obj.Description = LocalizedText.from_binary(data)
3357
        obj.WriteMask = unpack_uatype('UInt32', data)
3358
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3359
        return obj
3360
    
3361 1
    def __str__(self):
3362
        return 'NodeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3363
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3364
             'Description:' + str(self.Description) + ', '  + \
3365
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3366
             'UserWriteMask:' + str(self.UserWriteMask) + ')'
3367
    
3368 1
    __repr__ = __str__
3369
    
3370 1
class ObjectAttributes(FrozenClass):
3371
    '''
3372
    The attributes for an object node.
3373
    
3374
    :ivar SpecifiedAttributes: 
3375
    :vartype SpecifiedAttributes: UInt32 
3376
    :ivar DisplayName: 
3377
    :vartype DisplayName: LocalizedText 
3378
    :ivar Description: 
3379
    :vartype Description: LocalizedText 
3380
    :ivar WriteMask: 
3381
    :vartype WriteMask: UInt32 
3382
    :ivar UserWriteMask: 
3383
    :vartype UserWriteMask: UInt32 
3384
    :ivar EventNotifier: 
3385
    :vartype EventNotifier: Byte 
3386
    '''
3387 1
    def __init__(self):
3388 1
        self.SpecifiedAttributes = 0
3389 1
        self.DisplayName = LocalizedText()
3390 1
        self.Description = LocalizedText()
3391 1
        self.WriteMask = 0
3392 1
        self.UserWriteMask = 0
3393 1
        self.EventNotifier = 0
3394 1
        self._freeze()
3395
    
3396 1
    def to_binary(self):
3397 1
        packet = []
3398 1
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3399 1
        packet.append(self.DisplayName.to_binary())
3400 1
        packet.append(self.Description.to_binary())
3401 1
        packet.append(pack_uatype('UInt32', self.WriteMask))
3402 1
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3403 1
        packet.append(pack_uatype('Byte', self.EventNotifier))
3404 1
        return b''.join(packet)
3405
        
3406 1
    @staticmethod
3407
    def from_binary(data):
3408 1
        obj = ObjectAttributes()
3409 1
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3410 1
        obj.DisplayName = LocalizedText.from_binary(data)
3411 1
        obj.Description = LocalizedText.from_binary(data)
3412 1
        obj.WriteMask = unpack_uatype('UInt32', data)
3413 1
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3414 1
        obj.EventNotifier = unpack_uatype('Byte', data)
3415 1
        return obj
3416
    
3417 1
    def __str__(self):
3418
        return 'ObjectAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3419
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3420
             'Description:' + str(self.Description) + ', '  + \
3421
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3422
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3423
             'EventNotifier:' + str(self.EventNotifier) + ')'
3424
    
3425 1
    __repr__ = __str__
3426
    
3427 1
class VariableAttributes(FrozenClass):
3428
    '''
3429
    The attributes for a variable node.
3430
    
3431
    :ivar SpecifiedAttributes: 
3432
    :vartype SpecifiedAttributes: UInt32 
3433
    :ivar DisplayName: 
3434
    :vartype DisplayName: LocalizedText 
3435
    :ivar Description: 
3436
    :vartype Description: LocalizedText 
3437
    :ivar WriteMask: 
3438
    :vartype WriteMask: UInt32 
3439
    :ivar UserWriteMask: 
3440
    :vartype UserWriteMask: UInt32 
3441
    :ivar Value: 
3442
    :vartype Value: Variant 
3443
    :ivar DataType: 
3444
    :vartype DataType: NodeId 
3445
    :ivar ValueRank: 
3446
    :vartype ValueRank: Int32 
3447
    :ivar ArrayDimensions: 
3448
    :vartype ArrayDimensions: UInt32 
3449
    :ivar AccessLevel: 
3450
    :vartype AccessLevel: Byte 
3451
    :ivar UserAccessLevel: 
3452
    :vartype UserAccessLevel: Byte 
3453
    :ivar MinimumSamplingInterval: 
3454
    :vartype MinimumSamplingInterval: Double 
3455
    :ivar Historizing: 
3456
    :vartype Historizing: Boolean 
3457
    '''
3458 1
    def __init__(self):
3459 1
        self.SpecifiedAttributes = 0
3460 1
        self.DisplayName = LocalizedText()
3461 1
        self.Description = LocalizedText()
3462 1
        self.WriteMask = 0
3463 1
        self.UserWriteMask = 0
3464 1
        self.Value = Variant()
3465 1
        self.DataType = NodeId()
3466 1
        self.ValueRank = 0
3467 1
        self.ArrayDimensions = []
3468 1
        self.AccessLevel = 0
3469 1
        self.UserAccessLevel = 0
3470 1
        self.MinimumSamplingInterval = 0
3471 1
        self.Historizing = True
3472 1
        self._freeze()
3473
    
3474 1
    def to_binary(self):
3475 1
        packet = []
3476 1
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3477 1
        packet.append(self.DisplayName.to_binary())
3478 1
        packet.append(self.Description.to_binary())
3479 1
        packet.append(pack_uatype('UInt32', self.WriteMask))
3480 1
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3481 1
        packet.append(self.Value.to_binary())
3482 1
        packet.append(self.DataType.to_binary())
3483 1
        packet.append(pack_uatype('Int32', self.ValueRank))
3484 1
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
3485 1
        for fieldname in self.ArrayDimensions:
3486
            packet.append(pack_uatype('UInt32', fieldname))
3487 1
        packet.append(pack_uatype('Byte', self.AccessLevel))
3488 1
        packet.append(pack_uatype('Byte', self.UserAccessLevel))
3489 1
        packet.append(pack_uatype('Double', self.MinimumSamplingInterval))
3490 1
        packet.append(pack_uatype('Boolean', self.Historizing))
3491 1
        return b''.join(packet)
3492
        
3493 1
    @staticmethod
3494
    def from_binary(data):
3495 1
        obj = VariableAttributes()
3496 1
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3497 1
        obj.DisplayName = LocalizedText.from_binary(data)
3498 1
        obj.Description = LocalizedText.from_binary(data)
3499 1
        obj.WriteMask = unpack_uatype('UInt32', data)
3500 1
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3501 1
        obj.Value = Variant.from_binary(data)
3502 1
        obj.DataType = NodeId.from_binary(data)
3503 1
        obj.ValueRank = unpack_uatype('Int32', data)
3504 1
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
3505 1
        obj.AccessLevel = unpack_uatype('Byte', data)
3506 1
        obj.UserAccessLevel = unpack_uatype('Byte', data)
3507 1
        obj.MinimumSamplingInterval = unpack_uatype('Double', data)
3508 1
        obj.Historizing = unpack_uatype('Boolean', data)
3509 1
        return obj
3510
    
3511 1
    def __str__(self):
3512
        return 'VariableAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3513
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3514
             'Description:' + str(self.Description) + ', '  + \
3515
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3516
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3517
             'Value:' + str(self.Value) + ', '  + \
3518
             'DataType:' + str(self.DataType) + ', '  + \
3519
             'ValueRank:' + str(self.ValueRank) + ', '  + \
3520
             'ArrayDimensions:' + str(self.ArrayDimensions) + ', '  + \
3521
             'AccessLevel:' + str(self.AccessLevel) + ', '  + \
3522
             'UserAccessLevel:' + str(self.UserAccessLevel) + ', '  + \
3523
             'MinimumSamplingInterval:' + str(self.MinimumSamplingInterval) + ', '  + \
3524
             'Historizing:' + str(self.Historizing) + ')'
3525
    
3526 1
    __repr__ = __str__
3527
    
3528 1
class MethodAttributes(FrozenClass):
3529
    '''
3530
    The attributes for a method node.
3531
    
3532
    :ivar SpecifiedAttributes: 
3533
    :vartype SpecifiedAttributes: UInt32 
3534
    :ivar DisplayName: 
3535
    :vartype DisplayName: LocalizedText 
3536
    :ivar Description: 
3537
    :vartype Description: LocalizedText 
3538
    :ivar WriteMask: 
3539
    :vartype WriteMask: UInt32 
3540
    :ivar UserWriteMask: 
3541
    :vartype UserWriteMask: UInt32 
3542
    :ivar Executable: 
3543
    :vartype Executable: Boolean 
3544
    :ivar UserExecutable: 
3545
    :vartype UserExecutable: Boolean 
3546
    '''
3547 1
    def __init__(self):
3548 1
        self.SpecifiedAttributes = 0
3549 1
        self.DisplayName = LocalizedText()
3550 1
        self.Description = LocalizedText()
3551 1
        self.WriteMask = 0
3552 1
        self.UserWriteMask = 0
3553 1
        self.Executable = True
3554 1
        self.UserExecutable = True
3555 1
        self._freeze()
3556
    
3557 1
    def to_binary(self):
3558
        packet = []
3559
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3560
        packet.append(self.DisplayName.to_binary())
3561
        packet.append(self.Description.to_binary())
3562
        packet.append(pack_uatype('UInt32', self.WriteMask))
3563
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3564
        packet.append(pack_uatype('Boolean', self.Executable))
3565
        packet.append(pack_uatype('Boolean', self.UserExecutable))
3566
        return b''.join(packet)
3567
        
3568 1
    @staticmethod
3569
    def from_binary(data):
3570
        obj = MethodAttributes()
3571
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3572
        obj.DisplayName = LocalizedText.from_binary(data)
3573
        obj.Description = LocalizedText.from_binary(data)
3574
        obj.WriteMask = unpack_uatype('UInt32', data)
3575
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3576
        obj.Executable = unpack_uatype('Boolean', data)
3577
        obj.UserExecutable = unpack_uatype('Boolean', data)
3578
        return obj
3579
    
3580 1
    def __str__(self):
3581
        return 'MethodAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3582
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3583
             'Description:' + str(self.Description) + ', '  + \
3584
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3585
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3586
             'Executable:' + str(self.Executable) + ', '  + \
3587
             'UserExecutable:' + str(self.UserExecutable) + ')'
3588
    
3589 1
    __repr__ = __str__
3590
    
3591 1
class ObjectTypeAttributes(FrozenClass):
3592
    '''
3593
    The attributes for an object type node.
3594
    
3595
    :ivar SpecifiedAttributes: 
3596
    :vartype SpecifiedAttributes: UInt32 
3597
    :ivar DisplayName: 
3598
    :vartype DisplayName: LocalizedText 
3599
    :ivar Description: 
3600
    :vartype Description: LocalizedText 
3601
    :ivar WriteMask: 
3602
    :vartype WriteMask: UInt32 
3603
    :ivar UserWriteMask: 
3604
    :vartype UserWriteMask: UInt32 
3605
    :ivar IsAbstract: 
3606
    :vartype IsAbstract: Boolean 
3607
    '''
3608 1
    def __init__(self):
3609 1
        self.SpecifiedAttributes = 0
3610 1
        self.DisplayName = LocalizedText()
3611 1
        self.Description = LocalizedText()
3612 1
        self.WriteMask = 0
3613 1
        self.UserWriteMask = 0
3614 1
        self.IsAbstract = True
3615 1
        self._freeze()
3616
    
3617 1
    def to_binary(self):
3618
        packet = []
3619
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3620
        packet.append(self.DisplayName.to_binary())
3621
        packet.append(self.Description.to_binary())
3622
        packet.append(pack_uatype('UInt32', self.WriteMask))
3623
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3624
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3625
        return b''.join(packet)
3626
        
3627 1
    @staticmethod
3628
    def from_binary(data):
3629
        obj = ObjectTypeAttributes()
3630
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3631
        obj.DisplayName = LocalizedText.from_binary(data)
3632
        obj.Description = LocalizedText.from_binary(data)
3633
        obj.WriteMask = unpack_uatype('UInt32', data)
3634
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3635
        obj.IsAbstract = unpack_uatype('Boolean', data)
3636
        return obj
3637
    
3638 1
    def __str__(self):
3639
        return 'ObjectTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3640
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3641
             'Description:' + str(self.Description) + ', '  + \
3642
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3643
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3644
             'IsAbstract:' + str(self.IsAbstract) + ')'
3645
    
3646 1
    __repr__ = __str__
3647
    
3648 1
class VariableTypeAttributes(FrozenClass):
3649
    '''
3650
    The attributes for a variable type node.
3651
    
3652
    :ivar SpecifiedAttributes: 
3653
    :vartype SpecifiedAttributes: UInt32 
3654
    :ivar DisplayName: 
3655
    :vartype DisplayName: LocalizedText 
3656
    :ivar Description: 
3657
    :vartype Description: LocalizedText 
3658
    :ivar WriteMask: 
3659
    :vartype WriteMask: UInt32 
3660
    :ivar UserWriteMask: 
3661
    :vartype UserWriteMask: UInt32 
3662
    :ivar Value: 
3663
    :vartype Value: Variant 
3664
    :ivar DataType: 
3665
    :vartype DataType: NodeId 
3666
    :ivar ValueRank: 
3667
    :vartype ValueRank: Int32 
3668
    :ivar ArrayDimensions: 
3669
    :vartype ArrayDimensions: UInt32 
3670
    :ivar IsAbstract: 
3671
    :vartype IsAbstract: Boolean 
3672
    '''
3673 1
    def __init__(self):
3674 1
        self.SpecifiedAttributes = 0
3675 1
        self.DisplayName = LocalizedText()
3676 1
        self.Description = LocalizedText()
3677 1
        self.WriteMask = 0
3678 1
        self.UserWriteMask = 0
3679 1
        self.Value = Variant()
3680 1
        self.DataType = NodeId()
3681 1
        self.ValueRank = 0
3682 1
        self.ArrayDimensions = []
3683 1
        self.IsAbstract = True
3684 1
        self._freeze()
3685
    
3686 1
    def to_binary(self):
3687
        packet = []
3688
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3689
        packet.append(self.DisplayName.to_binary())
3690
        packet.append(self.Description.to_binary())
3691
        packet.append(pack_uatype('UInt32', self.WriteMask))
3692
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3693
        packet.append(self.Value.to_binary())
3694
        packet.append(self.DataType.to_binary())
3695
        packet.append(pack_uatype('Int32', self.ValueRank))
3696
        packet.append(struct.pack('<i', len(self.ArrayDimensions)))
3697
        for fieldname in self.ArrayDimensions:
3698
            packet.append(pack_uatype('UInt32', fieldname))
3699
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3700
        return b''.join(packet)
3701
        
3702 1
    @staticmethod
3703
    def from_binary(data):
3704
        obj = VariableTypeAttributes()
3705
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3706
        obj.DisplayName = LocalizedText.from_binary(data)
3707
        obj.Description = LocalizedText.from_binary(data)
3708
        obj.WriteMask = unpack_uatype('UInt32', data)
3709
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3710
        obj.Value = Variant.from_binary(data)
3711
        obj.DataType = NodeId.from_binary(data)
3712
        obj.ValueRank = unpack_uatype('Int32', data)
3713
        obj.ArrayDimensions = unpack_uatype_array('UInt32', data)
3714
        obj.IsAbstract = unpack_uatype('Boolean', data)
3715
        return obj
3716
    
3717 1
    def __str__(self):
3718
        return 'VariableTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3719
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3720
             'Description:' + str(self.Description) + ', '  + \
3721
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3722
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3723
             'Value:' + str(self.Value) + ', '  + \
3724
             'DataType:' + str(self.DataType) + ', '  + \
3725
             'ValueRank:' + str(self.ValueRank) + ', '  + \
3726
             'ArrayDimensions:' + str(self.ArrayDimensions) + ', '  + \
3727
             'IsAbstract:' + str(self.IsAbstract) + ')'
3728
    
3729 1
    __repr__ = __str__
3730
    
3731 1
class ReferenceTypeAttributes(FrozenClass):
3732
    '''
3733
    The attributes for a reference type node.
3734
    
3735
    :ivar SpecifiedAttributes: 
3736
    :vartype SpecifiedAttributes: UInt32 
3737
    :ivar DisplayName: 
3738
    :vartype DisplayName: LocalizedText 
3739
    :ivar Description: 
3740
    :vartype Description: LocalizedText 
3741
    :ivar WriteMask: 
3742
    :vartype WriteMask: UInt32 
3743
    :ivar UserWriteMask: 
3744
    :vartype UserWriteMask: UInt32 
3745
    :ivar IsAbstract: 
3746
    :vartype IsAbstract: Boolean 
3747
    :ivar Symmetric: 
3748
    :vartype Symmetric: Boolean 
3749
    :ivar InverseName: 
3750
    :vartype InverseName: LocalizedText 
3751
    '''
3752 1
    def __init__(self):
3753 1
        self.SpecifiedAttributes = 0
3754 1
        self.DisplayName = LocalizedText()
3755 1
        self.Description = LocalizedText()
3756 1
        self.WriteMask = 0
3757 1
        self.UserWriteMask = 0
3758 1
        self.IsAbstract = True
3759 1
        self.Symmetric = True
3760 1
        self.InverseName = LocalizedText()
3761 1
        self._freeze()
3762
    
3763 1
    def to_binary(self):
3764
        packet = []
3765
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3766
        packet.append(self.DisplayName.to_binary())
3767
        packet.append(self.Description.to_binary())
3768
        packet.append(pack_uatype('UInt32', self.WriteMask))
3769
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3770
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3771
        packet.append(pack_uatype('Boolean', self.Symmetric))
3772
        packet.append(self.InverseName.to_binary())
3773
        return b''.join(packet)
3774
        
3775 1
    @staticmethod
3776
    def from_binary(data):
3777
        obj = ReferenceTypeAttributes()
3778
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3779
        obj.DisplayName = LocalizedText.from_binary(data)
3780
        obj.Description = LocalizedText.from_binary(data)
3781
        obj.WriteMask = unpack_uatype('UInt32', data)
3782
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3783
        obj.IsAbstract = unpack_uatype('Boolean', data)
3784
        obj.Symmetric = unpack_uatype('Boolean', data)
3785
        obj.InverseName = LocalizedText.from_binary(data)
3786
        return obj
3787
    
3788 1
    def __str__(self):
3789
        return 'ReferenceTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3790
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3791
             'Description:' + str(self.Description) + ', '  + \
3792
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3793
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3794
             'IsAbstract:' + str(self.IsAbstract) + ', '  + \
3795
             'Symmetric:' + str(self.Symmetric) + ', '  + \
3796
             'InverseName:' + str(self.InverseName) + ')'
3797
    
3798 1
    __repr__ = __str__
3799
    
3800 1
class DataTypeAttributes(FrozenClass):
3801
    '''
3802
    The attributes for a data type node.
3803
    
3804
    :ivar SpecifiedAttributes: 
3805
    :vartype SpecifiedAttributes: UInt32 
3806
    :ivar DisplayName: 
3807
    :vartype DisplayName: LocalizedText 
3808
    :ivar Description: 
3809
    :vartype Description: LocalizedText 
3810
    :ivar WriteMask: 
3811
    :vartype WriteMask: UInt32 
3812
    :ivar UserWriteMask: 
3813
    :vartype UserWriteMask: UInt32 
3814
    :ivar IsAbstract: 
3815
    :vartype IsAbstract: Boolean 
3816
    '''
3817 1
    def __init__(self):
3818 1
        self.SpecifiedAttributes = 0
3819 1
        self.DisplayName = LocalizedText()
3820 1
        self.Description = LocalizedText()
3821 1
        self.WriteMask = 0
3822 1
        self.UserWriteMask = 0
3823 1
        self.IsAbstract = True
3824 1
        self._freeze()
3825
    
3826 1
    def to_binary(self):
3827
        packet = []
3828
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3829
        packet.append(self.DisplayName.to_binary())
3830
        packet.append(self.Description.to_binary())
3831
        packet.append(pack_uatype('UInt32', self.WriteMask))
3832
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3833
        packet.append(pack_uatype('Boolean', self.IsAbstract))
3834
        return b''.join(packet)
3835
        
3836 1
    @staticmethod
3837
    def from_binary(data):
3838
        obj = DataTypeAttributes()
3839
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3840
        obj.DisplayName = LocalizedText.from_binary(data)
3841
        obj.Description = LocalizedText.from_binary(data)
3842
        obj.WriteMask = unpack_uatype('UInt32', data)
3843
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3844
        obj.IsAbstract = unpack_uatype('Boolean', data)
3845
        return obj
3846
    
3847 1
    def __str__(self):
3848
        return 'DataTypeAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3849
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3850
             'Description:' + str(self.Description) + ', '  + \
3851
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3852
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3853
             'IsAbstract:' + str(self.IsAbstract) + ')'
3854
    
3855 1
    __repr__ = __str__
3856
    
3857 1
class ViewAttributes(FrozenClass):
3858
    '''
3859
    The attributes for a view node.
3860
    
3861
    :ivar SpecifiedAttributes: 
3862
    :vartype SpecifiedAttributes: UInt32 
3863
    :ivar DisplayName: 
3864
    :vartype DisplayName: LocalizedText 
3865
    :ivar Description: 
3866
    :vartype Description: LocalizedText 
3867
    :ivar WriteMask: 
3868
    :vartype WriteMask: UInt32 
3869
    :ivar UserWriteMask: 
3870
    :vartype UserWriteMask: UInt32 
3871
    :ivar ContainsNoLoops: 
3872
    :vartype ContainsNoLoops: Boolean 
3873
    :ivar EventNotifier: 
3874
    :vartype EventNotifier: Byte 
3875
    '''
3876 1
    def __init__(self):
3877
        self.SpecifiedAttributes = 0
3878
        self.DisplayName = LocalizedText()
3879
        self.Description = LocalizedText()
3880
        self.WriteMask = 0
3881
        self.UserWriteMask = 0
3882
        self.ContainsNoLoops = True
3883
        self.EventNotifier = 0
3884
        self._freeze()
3885
    
3886 1
    def to_binary(self):
3887
        packet = []
3888
        packet.append(pack_uatype('UInt32', self.SpecifiedAttributes))
3889
        packet.append(self.DisplayName.to_binary())
3890
        packet.append(self.Description.to_binary())
3891
        packet.append(pack_uatype('UInt32', self.WriteMask))
3892
        packet.append(pack_uatype('UInt32', self.UserWriteMask))
3893
        packet.append(pack_uatype('Boolean', self.ContainsNoLoops))
3894
        packet.append(pack_uatype('Byte', self.EventNotifier))
3895
        return b''.join(packet)
3896
        
3897 1
    @staticmethod
3898
    def from_binary(data):
3899
        obj = ViewAttributes()
3900
        obj.SpecifiedAttributes = unpack_uatype('UInt32', data)
3901
        obj.DisplayName = LocalizedText.from_binary(data)
3902
        obj.Description = LocalizedText.from_binary(data)
3903
        obj.WriteMask = unpack_uatype('UInt32', data)
3904
        obj.UserWriteMask = unpack_uatype('UInt32', data)
3905
        obj.ContainsNoLoops = unpack_uatype('Boolean', data)
3906
        obj.EventNotifier = unpack_uatype('Byte', data)
3907
        return obj
3908
    
3909 1
    def __str__(self):
3910
        return 'ViewAttributes(' + 'SpecifiedAttributes:' + str(self.SpecifiedAttributes) + ', '  + \
3911
             'DisplayName:' + str(self.DisplayName) + ', '  + \
3912
             'Description:' + str(self.Description) + ', '  + \
3913
             'WriteMask:' + str(self.WriteMask) + ', '  + \
3914
             'UserWriteMask:' + str(self.UserWriteMask) + ', '  + \
3915
             'ContainsNoLoops:' + str(self.ContainsNoLoops) + ', '  + \
3916
             'EventNotifier:' + str(self.EventNotifier) + ')'
3917
    
3918 1
    __repr__ = __str__
3919
    
3920 1
class AddNodesItem(FrozenClass):
3921
    '''
3922
    A request to add a node to the server address space.
3923
    
3924
    :ivar ParentNodeId: 
3925
    :vartype ParentNodeId: ExpandedNodeId 
3926
    :ivar ReferenceTypeId: 
3927
    :vartype ReferenceTypeId: NodeId 
3928
    :ivar RequestedNewNodeId: 
3929
    :vartype RequestedNewNodeId: ExpandedNodeId 
3930
    :ivar BrowseName: 
3931
    :vartype BrowseName: QualifiedName 
3932
    :ivar NodeClass: 
3933
    :vartype NodeClass: NodeClass 
3934
    :ivar NodeAttributes: 
3935
    :vartype NodeAttributes: ExtensionObject 
3936
    :ivar TypeDefinition: 
3937
    :vartype TypeDefinition: ExpandedNodeId 
3938
    '''
3939 1
    def __init__(self):
3940 1
        self.ParentNodeId = ExpandedNodeId()
3941 1
        self.ReferenceTypeId = NodeId()
3942 1
        self.RequestedNewNodeId = ExpandedNodeId()
3943 1
        self.BrowseName = QualifiedName()
3944 1
        self.NodeClass = 0
3945 1
        self.NodeAttributes = None
3946 1
        self.TypeDefinition = ExpandedNodeId()
3947 1
        self._freeze()
3948
    
3949 1
    def to_binary(self):
3950 1
        packet = []
3951 1
        packet.append(self.ParentNodeId.to_binary())
3952 1
        packet.append(self.ReferenceTypeId.to_binary())
3953 1
        packet.append(self.RequestedNewNodeId.to_binary())
3954 1
        packet.append(self.BrowseName.to_binary())
3955 1
        packet.append(pack_uatype('UInt32', self.NodeClass))
3956 1
        packet.append(extensionobject_to_binary(self.NodeAttributes))
3957 1
        packet.append(self.TypeDefinition.to_binary())
3958 1
        return b''.join(packet)
3959
        
3960 1
    @staticmethod
3961
    def from_binary(data):
3962 1
        obj = AddNodesItem()
3963 1
        obj.ParentNodeId = ExpandedNodeId.from_binary(data)
3964 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
3965 1
        obj.RequestedNewNodeId = ExpandedNodeId.from_binary(data)
3966 1
        obj.BrowseName = QualifiedName.from_binary(data)
3967 1
        obj.NodeClass = unpack_uatype('UInt32', data)
3968 1
        obj.NodeAttributes = extensionobject_from_binary(data)
3969 1
        obj.TypeDefinition = ExpandedNodeId.from_binary(data)
3970 1
        return obj
3971
    
3972 1
    def __str__(self):
3973
        return 'AddNodesItem(' + 'ParentNodeId:' + str(self.ParentNodeId) + ', '  + \
3974
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
3975
             'RequestedNewNodeId:' + str(self.RequestedNewNodeId) + ', '  + \
3976
             'BrowseName:' + str(self.BrowseName) + ', '  + \
3977
             'NodeClass:' + str(self.NodeClass) + ', '  + \
3978
             'NodeAttributes:' + str(self.NodeAttributes) + ', '  + \
3979
             'TypeDefinition:' + str(self.TypeDefinition) + ')'
3980
    
3981 1
    __repr__ = __str__
3982
    
3983 1
class AddNodesResult(FrozenClass):
3984
    '''
3985
    A result of an add node operation.
3986
    
3987
    :ivar StatusCode: 
3988
    :vartype StatusCode: StatusCode 
3989
    :ivar AddedNodeId: 
3990
    :vartype AddedNodeId: NodeId 
3991
    '''
3992 1
    def __init__(self):
3993 1
        self.StatusCode = StatusCode()
3994 1
        self.AddedNodeId = NodeId()
3995 1
        self._freeze()
3996
    
3997 1
    def to_binary(self):
3998 1
        packet = []
3999 1
        packet.append(self.StatusCode.to_binary())
4000 1
        packet.append(self.AddedNodeId.to_binary())
4001 1
        return b''.join(packet)
4002
        
4003 1
    @staticmethod
4004
    def from_binary(data):
4005 1
        obj = AddNodesResult()
4006 1
        obj.StatusCode = StatusCode.from_binary(data)
4007 1
        obj.AddedNodeId = NodeId.from_binary(data)
4008 1
        return obj
4009
    
4010 1
    def __str__(self):
4011
        return 'AddNodesResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
4012
             'AddedNodeId:' + str(self.AddedNodeId) + ')'
4013
    
4014 1
    __repr__ = __str__
4015
    
4016 1
class AddNodesParameters(FrozenClass):
4017
    '''
4018
    :ivar NodesToAdd: 
4019
    :vartype NodesToAdd: AddNodesItem 
4020
    '''
4021 1
    def __init__(self):
4022 1
        self.NodesToAdd = []
4023 1
        self._freeze()
4024
    
4025 1
    def to_binary(self):
4026 1
        packet = []
4027 1
        packet.append(struct.pack('<i', len(self.NodesToAdd)))
4028 1
        for fieldname in self.NodesToAdd:
4029 1
            packet.append(fieldname.to_binary())
4030 1
        return b''.join(packet)
4031
        
4032 1
    @staticmethod
4033
    def from_binary(data):
4034 1
        obj = AddNodesParameters()
4035 1
        length = struct.unpack('<i', data.read(4))[0]
4036 1
        if length != -1:
4037 1
            for _ in range(0, length):
4038 1
                obj.NodesToAdd.append(AddNodesItem.from_binary(data))
4039 1
        return obj
4040
    
4041 1
    def __str__(self):
4042
        return 'AddNodesParameters(' + 'NodesToAdd:' + str(self.NodesToAdd) + ')'
4043
    
4044 1
    __repr__ = __str__
4045
    
4046 1
class AddNodesRequest(FrozenClass):
4047
    '''
4048
    Adds one or more nodes to the server address space.
4049
    
4050
    :ivar TypeId: 
4051
    :vartype TypeId: NodeId 
4052
    :ivar RequestHeader: 
4053
    :vartype RequestHeader: RequestHeader 
4054
    :ivar Parameters: 
4055
    :vartype Parameters: AddNodesParameters 
4056
    '''
4057 1
    def __init__(self):
4058 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesRequest_Encoding_DefaultBinary)
4059 1
        self.RequestHeader = RequestHeader()
4060 1
        self.Parameters = AddNodesParameters()
4061 1
        self._freeze()
4062
    
4063 1
    def to_binary(self):
4064 1
        packet = []
4065 1
        packet.append(self.TypeId.to_binary())
4066 1
        packet.append(self.RequestHeader.to_binary())
4067 1
        packet.append(self.Parameters.to_binary())
4068 1
        return b''.join(packet)
4069
        
4070 1
    @staticmethod
4071
    def from_binary(data):
4072
        obj = AddNodesRequest()
4073
        obj.TypeId = NodeId.from_binary(data)
4074
        obj.RequestHeader = RequestHeader.from_binary(data)
4075
        obj.Parameters = AddNodesParameters.from_binary(data)
4076
        return obj
4077
    
4078 1
    def __str__(self):
4079
        return 'AddNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4080
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4081
             'Parameters:' + str(self.Parameters) + ')'
4082
    
4083 1
    __repr__ = __str__
4084
    
4085 1
class AddNodesResponse(FrozenClass):
4086
    '''
4087
    Adds one or more nodes to the server address space.
4088
    
4089
    :ivar TypeId: 
4090
    :vartype TypeId: NodeId 
4091
    :ivar ResponseHeader: 
4092
    :vartype ResponseHeader: ResponseHeader 
4093
    :ivar Results: 
4094
    :vartype Results: AddNodesResult 
4095
    :ivar DiagnosticInfos: 
4096
    :vartype DiagnosticInfos: DiagnosticInfo 
4097
    '''
4098 1
    def __init__(self):
4099 1
        self.TypeId = FourByteNodeId(ObjectIds.AddNodesResponse_Encoding_DefaultBinary)
4100 1
        self.ResponseHeader = ResponseHeader()
4101 1
        self.Results = []
4102 1
        self.DiagnosticInfos = []
4103 1
        self._freeze()
4104
    
4105 1
    def to_binary(self):
4106 1
        packet = []
4107 1
        packet.append(self.TypeId.to_binary())
4108 1
        packet.append(self.ResponseHeader.to_binary())
4109 1
        packet.append(struct.pack('<i', len(self.Results)))
4110 1
        for fieldname in self.Results:
4111 1
            packet.append(fieldname.to_binary())
4112 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4113 1
        for fieldname in self.DiagnosticInfos:
4114
            packet.append(fieldname.to_binary())
4115 1
        return b''.join(packet)
4116
        
4117 1
    @staticmethod
4118
    def from_binary(data):
4119 1
        obj = AddNodesResponse()
4120 1
        obj.TypeId = NodeId.from_binary(data)
4121 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4122 1
        length = struct.unpack('<i', data.read(4))[0]
4123 1
        if length != -1:
4124 1
            for _ in range(0, length):
4125 1
                obj.Results.append(AddNodesResult.from_binary(data))
4126 1
        length = struct.unpack('<i', data.read(4))[0]
4127 1
        if length != -1:
4128 1
            for _ in range(0, length):
4129
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4130 1
        return obj
4131
    
4132 1
    def __str__(self):
4133
        return 'AddNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4134
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4135
             'Results:' + str(self.Results) + ', '  + \
4136
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4137
    
4138 1
    __repr__ = __str__
4139
    
4140 1
class AddReferencesItem(FrozenClass):
4141
    '''
4142
    A request to add a reference to the server address space.
4143
    
4144
    :ivar SourceNodeId: 
4145
    :vartype SourceNodeId: NodeId 
4146
    :ivar ReferenceTypeId: 
4147
    :vartype ReferenceTypeId: NodeId 
4148
    :ivar IsForward: 
4149
    :vartype IsForward: Boolean 
4150
    :ivar TargetServerUri: 
4151
    :vartype TargetServerUri: String 
4152
    :ivar TargetNodeId: 
4153
    :vartype TargetNodeId: ExpandedNodeId 
4154
    :ivar TargetNodeClass: 
4155
    :vartype TargetNodeClass: NodeClass 
4156
    '''
4157 1
    def __init__(self):
4158 1
        self.SourceNodeId = NodeId()
4159 1
        self.ReferenceTypeId = NodeId()
4160 1
        self.IsForward = True
4161 1
        self.TargetServerUri = ''
4162 1
        self.TargetNodeId = ExpandedNodeId()
4163 1
        self.TargetNodeClass = 0
4164 1
        self._freeze()
4165
    
4166 1
    def to_binary(self):
4167
        packet = []
4168
        packet.append(self.SourceNodeId.to_binary())
4169
        packet.append(self.ReferenceTypeId.to_binary())
4170
        packet.append(pack_uatype('Boolean', self.IsForward))
4171
        packet.append(pack_uatype('String', self.TargetServerUri))
4172
        packet.append(self.TargetNodeId.to_binary())
4173
        packet.append(pack_uatype('UInt32', self.TargetNodeClass))
4174
        return b''.join(packet)
4175
        
4176 1
    @staticmethod
4177
    def from_binary(data):
4178
        obj = AddReferencesItem()
4179
        obj.SourceNodeId = NodeId.from_binary(data)
4180
        obj.ReferenceTypeId = NodeId.from_binary(data)
4181
        obj.IsForward = unpack_uatype('Boolean', data)
4182
        obj.TargetServerUri = unpack_uatype('String', data)
4183
        obj.TargetNodeId = ExpandedNodeId.from_binary(data)
4184
        obj.TargetNodeClass = unpack_uatype('UInt32', data)
4185
        return obj
4186
    
4187 1
    def __str__(self):
4188
        return 'AddReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', '  + \
4189
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4190
             'IsForward:' + str(self.IsForward) + ', '  + \
4191
             'TargetServerUri:' + str(self.TargetServerUri) + ', '  + \
4192
             'TargetNodeId:' + str(self.TargetNodeId) + ', '  + \
4193
             'TargetNodeClass:' + str(self.TargetNodeClass) + ')'
4194
    
4195 1
    __repr__ = __str__
4196
    
4197 1
class AddReferencesRequest(FrozenClass):
4198
    '''
4199
    Adds one or more references to the server address space.
4200
    
4201
    :ivar TypeId: 
4202
    :vartype TypeId: NodeId 
4203
    :ivar RequestHeader: 
4204
    :vartype RequestHeader: RequestHeader 
4205
    :ivar ReferencesToAdd: 
4206
    :vartype ReferencesToAdd: AddReferencesItem 
4207
    '''
4208 1
    def __init__(self):
4209
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesRequest_Encoding_DefaultBinary)
4210
        self.RequestHeader = RequestHeader()
4211
        self.ReferencesToAdd = []
4212
        self._freeze()
4213
    
4214 1
    def to_binary(self):
4215
        packet = []
4216
        packet.append(self.TypeId.to_binary())
4217
        packet.append(self.RequestHeader.to_binary())
4218
        packet.append(struct.pack('<i', len(self.ReferencesToAdd)))
4219
        for fieldname in self.ReferencesToAdd:
4220
            packet.append(fieldname.to_binary())
4221
        return b''.join(packet)
4222
        
4223 1
    @staticmethod
4224
    def from_binary(data):
4225
        obj = AddReferencesRequest()
4226
        obj.TypeId = NodeId.from_binary(data)
4227
        obj.RequestHeader = RequestHeader.from_binary(data)
4228
        length = struct.unpack('<i', data.read(4))[0]
4229
        if length != -1:
4230
            for _ in range(0, length):
4231
                obj.ReferencesToAdd.append(AddReferencesItem.from_binary(data))
4232
        return obj
4233
    
4234 1
    def __str__(self):
4235
        return 'AddReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4236
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4237
             'ReferencesToAdd:' + str(self.ReferencesToAdd) + ')'
4238
    
4239 1
    __repr__ = __str__
4240
    
4241 1
class AddReferencesResponse(FrozenClass):
4242
    '''
4243
    Adds one or more references to the server address space.
4244
    
4245
    :ivar TypeId: 
4246
    :vartype TypeId: NodeId 
4247
    :ivar ResponseHeader: 
4248
    :vartype ResponseHeader: ResponseHeader 
4249
    :ivar Results: 
4250
    :vartype Results: StatusCode 
4251
    :ivar DiagnosticInfos: 
4252
    :vartype DiagnosticInfos: DiagnosticInfo 
4253
    '''
4254 1
    def __init__(self):
4255
        self.TypeId = FourByteNodeId(ObjectIds.AddReferencesResponse_Encoding_DefaultBinary)
4256
        self.ResponseHeader = ResponseHeader()
4257
        self.Results = []
4258
        self.DiagnosticInfos = []
4259
        self._freeze()
4260
    
4261 1
    def to_binary(self):
4262
        packet = []
4263
        packet.append(self.TypeId.to_binary())
4264
        packet.append(self.ResponseHeader.to_binary())
4265
        packet.append(struct.pack('<i', len(self.Results)))
4266
        for fieldname in self.Results:
4267
            packet.append(fieldname.to_binary())
4268
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4269
        for fieldname in self.DiagnosticInfos:
4270
            packet.append(fieldname.to_binary())
4271
        return b''.join(packet)
4272
        
4273 1
    @staticmethod
4274
    def from_binary(data):
4275
        obj = AddReferencesResponse()
4276
        obj.TypeId = NodeId.from_binary(data)
4277
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4278
        length = struct.unpack('<i', data.read(4))[0]
4279
        if length != -1:
4280
            for _ in range(0, length):
4281
                obj.Results.append(StatusCode.from_binary(data))
4282
        length = struct.unpack('<i', data.read(4))[0]
4283
        if length != -1:
4284
            for _ in range(0, length):
4285
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4286
        return obj
4287
    
4288 1
    def __str__(self):
4289
        return 'AddReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4290
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4291
             'Results:' + str(self.Results) + ', '  + \
4292
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4293
    
4294 1
    __repr__ = __str__
4295
    
4296 1
class DeleteNodesItem(FrozenClass):
4297
    '''
4298
    A request to delete a node to the server address space.
4299
    
4300
    :ivar NodeId: 
4301
    :vartype NodeId: NodeId 
4302
    :ivar DeleteTargetReferences: 
4303
    :vartype DeleteTargetReferences: Boolean 
4304
    '''
4305 1
    def __init__(self):
4306
        self.NodeId = NodeId()
4307
        self.DeleteTargetReferences = True
4308
        self._freeze()
4309
    
4310 1
    def to_binary(self):
4311
        packet = []
4312
        packet.append(self.NodeId.to_binary())
4313
        packet.append(pack_uatype('Boolean', self.DeleteTargetReferences))
4314
        return b''.join(packet)
4315
        
4316 1
    @staticmethod
4317
    def from_binary(data):
4318
        obj = DeleteNodesItem()
4319
        obj.NodeId = NodeId.from_binary(data)
4320
        obj.DeleteTargetReferences = unpack_uatype('Boolean', data)
4321
        return obj
4322
    
4323 1
    def __str__(self):
4324
        return 'DeleteNodesItem(' + 'NodeId:' + str(self.NodeId) + ', '  + \
4325
             'DeleteTargetReferences:' + str(self.DeleteTargetReferences) + ')'
4326
    
4327 1
    __repr__ = __str__
4328
    
4329 1
class DeleteNodesParameters(FrozenClass):
4330
    '''
4331
    :ivar NodesToDelete: 
4332
    :vartype NodesToDelete: DeleteNodesItem 
4333
    '''
4334 1
    def __init__(self):
4335
        self.NodesToDelete = []
4336
        self._freeze()
4337
    
4338 1
    def to_binary(self):
4339
        packet = []
4340
        packet.append(struct.pack('<i', len(self.NodesToDelete)))
4341
        for fieldname in self.NodesToDelete:
4342
            packet.append(fieldname.to_binary())
4343
        return b''.join(packet)
4344
        
4345 1
    @staticmethod
4346
    def from_binary(data):
4347
        obj = DeleteNodesParameters()
4348
        length = struct.unpack('<i', data.read(4))[0]
4349
        if length != -1:
4350
            for _ in range(0, length):
4351
                obj.NodesToDelete.append(DeleteNodesItem.from_binary(data))
4352
        return obj
4353
    
4354 1
    def __str__(self):
4355
        return 'DeleteNodesParameters(' + 'NodesToDelete:' + str(self.NodesToDelete) + ')'
4356
    
4357 1
    __repr__ = __str__
4358
    
4359 1
class DeleteNodesRequest(FrozenClass):
4360
    '''
4361
    Delete one or more nodes from the server address space.
4362
    
4363
    :ivar TypeId: 
4364
    :vartype TypeId: NodeId 
4365
    :ivar RequestHeader: 
4366
    :vartype RequestHeader: RequestHeader 
4367
    :ivar Parameters: 
4368
    :vartype Parameters: DeleteNodesParameters 
4369
    '''
4370 1
    def __init__(self):
4371
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary)
4372
        self.RequestHeader = RequestHeader()
4373
        self.Parameters = DeleteNodesParameters()
4374
        self._freeze()
4375
    
4376 1
    def to_binary(self):
4377
        packet = []
4378
        packet.append(self.TypeId.to_binary())
4379
        packet.append(self.RequestHeader.to_binary())
4380
        packet.append(self.Parameters.to_binary())
4381
        return b''.join(packet)
4382
        
4383 1
    @staticmethod
4384
    def from_binary(data):
4385
        obj = DeleteNodesRequest()
4386
        obj.TypeId = NodeId.from_binary(data)
4387
        obj.RequestHeader = RequestHeader.from_binary(data)
4388
        obj.Parameters = DeleteNodesParameters.from_binary(data)
4389
        return obj
4390
    
4391 1
    def __str__(self):
4392
        return 'DeleteNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4393
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4394
             'Parameters:' + str(self.Parameters) + ')'
4395
    
4396 1
    __repr__ = __str__
4397
    
4398 1
class DeleteNodesResult(FrozenClass):
4399
    '''
4400
    :ivar Results: 
4401
    :vartype Results: StatusCode 
4402
    :ivar DiagnosticInfos: 
4403
    :vartype DiagnosticInfos: DiagnosticInfo 
4404
    '''
4405 1
    def __init__(self):
4406
        self.Results = []
4407
        self.DiagnosticInfos = []
4408
        self._freeze()
4409
    
4410 1
    def to_binary(self):
4411
        packet = []
4412
        packet.append(struct.pack('<i', len(self.Results)))
4413
        for fieldname in self.Results:
4414
            packet.append(fieldname.to_binary())
4415
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4416
        for fieldname in self.DiagnosticInfos:
4417
            packet.append(fieldname.to_binary())
4418
        return b''.join(packet)
4419
        
4420 1
    @staticmethod
4421
    def from_binary(data):
4422
        obj = DeleteNodesResult()
4423
        length = struct.unpack('<i', data.read(4))[0]
4424
        if length != -1:
4425
            for _ in range(0, length):
4426
                obj.Results.append(StatusCode.from_binary(data))
4427
        length = struct.unpack('<i', data.read(4))[0]
4428
        if length != -1:
4429
            for _ in range(0, length):
4430
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4431
        return obj
4432
    
4433 1
    def __str__(self):
4434
        return 'DeleteNodesResult(' + 'Results:' + str(self.Results) + ', '  + \
4435
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4436
    
4437 1
    __repr__ = __str__
4438
    
4439 1
class DeleteNodesResponse(FrozenClass):
4440
    '''
4441
    Delete one or more nodes from the server address space.
4442
    
4443
    :ivar TypeId: 
4444
    :vartype TypeId: NodeId 
4445
    :ivar ResponseHeader: 
4446
    :vartype ResponseHeader: ResponseHeader 
4447
    :ivar Parameters: 
4448
    :vartype Parameters: DeleteNodesResult 
4449
    '''
4450 1
    def __init__(self):
4451
        self.TypeId = FourByteNodeId(ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary)
4452
        self.ResponseHeader = ResponseHeader()
4453
        self.Parameters = DeleteNodesResult()
4454
        self._freeze()
4455
    
4456 1
    def to_binary(self):
4457
        packet = []
4458
        packet.append(self.TypeId.to_binary())
4459
        packet.append(self.ResponseHeader.to_binary())
4460
        packet.append(self.Parameters.to_binary())
4461
        return b''.join(packet)
4462
        
4463 1
    @staticmethod
4464
    def from_binary(data):
4465
        obj = DeleteNodesResponse()
4466
        obj.TypeId = NodeId.from_binary(data)
4467
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4468
        obj.Parameters = DeleteNodesResult.from_binary(data)
4469
        return obj
4470
    
4471 1
    def __str__(self):
4472
        return 'DeleteNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4473
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4474
             'Parameters:' + str(self.Parameters) + ')'
4475
    
4476 1
    __repr__ = __str__
4477
    
4478 1
class DeleteReferencesItem(FrozenClass):
4479
    '''
4480
    A request to delete a node from the server address space.
4481
    
4482
    :ivar SourceNodeId: 
4483
    :vartype SourceNodeId: NodeId 
4484
    :ivar ReferenceTypeId: 
4485
    :vartype ReferenceTypeId: NodeId 
4486
    :ivar IsForward: 
4487
    :vartype IsForward: Boolean 
4488
    :ivar TargetNodeId: 
4489
    :vartype TargetNodeId: ExpandedNodeId 
4490
    :ivar DeleteBidirectional: 
4491
    :vartype DeleteBidirectional: Boolean 
4492
    '''
4493 1
    def __init__(self):
4494
        self.SourceNodeId = NodeId()
4495
        self.ReferenceTypeId = NodeId()
4496
        self.IsForward = True
4497
        self.TargetNodeId = ExpandedNodeId()
4498
        self.DeleteBidirectional = True
4499
        self._freeze()
4500
    
4501 1
    def to_binary(self):
4502
        packet = []
4503
        packet.append(self.SourceNodeId.to_binary())
4504
        packet.append(self.ReferenceTypeId.to_binary())
4505
        packet.append(pack_uatype('Boolean', self.IsForward))
4506
        packet.append(self.TargetNodeId.to_binary())
4507
        packet.append(pack_uatype('Boolean', self.DeleteBidirectional))
4508
        return b''.join(packet)
4509
        
4510 1
    @staticmethod
4511
    def from_binary(data):
4512
        obj = DeleteReferencesItem()
4513
        obj.SourceNodeId = NodeId.from_binary(data)
4514
        obj.ReferenceTypeId = NodeId.from_binary(data)
4515
        obj.IsForward = unpack_uatype('Boolean', data)
4516
        obj.TargetNodeId = ExpandedNodeId.from_binary(data)
4517
        obj.DeleteBidirectional = unpack_uatype('Boolean', data)
4518
        return obj
4519
    
4520 1
    def __str__(self):
4521
        return 'DeleteReferencesItem(' + 'SourceNodeId:' + str(self.SourceNodeId) + ', '  + \
4522
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4523
             'IsForward:' + str(self.IsForward) + ', '  + \
4524
             'TargetNodeId:' + str(self.TargetNodeId) + ', '  + \
4525
             'DeleteBidirectional:' + str(self.DeleteBidirectional) + ')'
4526
    
4527 1
    __repr__ = __str__
4528
    
4529 1
class DeleteReferencesParameters(FrozenClass):
4530
    '''
4531
    :ivar ReferencesToDelete: 
4532
    :vartype ReferencesToDelete: DeleteReferencesItem 
4533
    '''
4534 1
    def __init__(self):
4535
        self.ReferencesToDelete = []
4536
        self._freeze()
4537
    
4538 1
    def to_binary(self):
4539
        packet = []
4540
        packet.append(struct.pack('<i', len(self.ReferencesToDelete)))
4541
        for fieldname in self.ReferencesToDelete:
4542
            packet.append(fieldname.to_binary())
4543
        return b''.join(packet)
4544
        
4545 1
    @staticmethod
4546
    def from_binary(data):
4547
        obj = DeleteReferencesParameters()
4548
        length = struct.unpack('<i', data.read(4))[0]
4549
        if length != -1:
4550
            for _ in range(0, length):
4551
                obj.ReferencesToDelete.append(DeleteReferencesItem.from_binary(data))
4552
        return obj
4553
    
4554 1
    def __str__(self):
4555
        return 'DeleteReferencesParameters(' + 'ReferencesToDelete:' + str(self.ReferencesToDelete) + ')'
4556
    
4557 1
    __repr__ = __str__
4558
    
4559 1
class DeleteReferencesRequest(FrozenClass):
4560
    '''
4561
    Delete one or more references from the server address space.
4562
    
4563
    :ivar TypeId: 
4564
    :vartype TypeId: NodeId 
4565
    :ivar RequestHeader: 
4566
    :vartype RequestHeader: RequestHeader 
4567
    :ivar Parameters: 
4568
    :vartype Parameters: DeleteReferencesParameters 
4569
    '''
4570 1
    def __init__(self):
4571
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary)
4572
        self.RequestHeader = RequestHeader()
4573
        self.Parameters = DeleteReferencesParameters()
4574
        self._freeze()
4575
    
4576 1
    def to_binary(self):
4577
        packet = []
4578
        packet.append(self.TypeId.to_binary())
4579
        packet.append(self.RequestHeader.to_binary())
4580
        packet.append(self.Parameters.to_binary())
4581
        return b''.join(packet)
4582
        
4583 1
    @staticmethod
4584
    def from_binary(data):
4585
        obj = DeleteReferencesRequest()
4586
        obj.TypeId = NodeId.from_binary(data)
4587
        obj.RequestHeader = RequestHeader.from_binary(data)
4588
        obj.Parameters = DeleteReferencesParameters.from_binary(data)
4589
        return obj
4590
    
4591 1
    def __str__(self):
4592
        return 'DeleteReferencesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4593
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4594
             'Parameters:' + str(self.Parameters) + ')'
4595
    
4596 1
    __repr__ = __str__
4597
    
4598 1
class DeleteReferencesResult(FrozenClass):
4599
    '''
4600
    :ivar Results: 
4601
    :vartype Results: StatusCode 
4602
    :ivar DiagnosticInfos: 
4603
    :vartype DiagnosticInfos: DiagnosticInfo 
4604
    '''
4605 1
    def __init__(self):
4606
        self.Results = []
4607
        self.DiagnosticInfos = []
4608
        self._freeze()
4609
    
4610 1
    def to_binary(self):
4611
        packet = []
4612
        packet.append(struct.pack('<i', len(self.Results)))
4613
        for fieldname in self.Results:
4614
            packet.append(fieldname.to_binary())
4615
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4616
        for fieldname in self.DiagnosticInfos:
4617
            packet.append(fieldname.to_binary())
4618
        return b''.join(packet)
4619
        
4620 1
    @staticmethod
4621
    def from_binary(data):
4622
        obj = DeleteReferencesResult()
4623
        length = struct.unpack('<i', data.read(4))[0]
4624
        if length != -1:
4625
            for _ in range(0, length):
4626
                obj.Results.append(StatusCode.from_binary(data))
4627
        length = struct.unpack('<i', data.read(4))[0]
4628
        if length != -1:
4629
            for _ in range(0, length):
4630
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
4631
        return obj
4632
    
4633 1
    def __str__(self):
4634
        return 'DeleteReferencesResult(' + 'Results:' + str(self.Results) + ', '  + \
4635
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
4636
    
4637 1
    __repr__ = __str__
4638
    
4639 1
class DeleteReferencesResponse(FrozenClass):
4640
    '''
4641
    Delete one or more references from the server address space.
4642
    
4643
    :ivar TypeId: 
4644
    :vartype TypeId: NodeId 
4645
    :ivar ResponseHeader: 
4646
    :vartype ResponseHeader: ResponseHeader 
4647
    :ivar Parameters: 
4648
    :vartype Parameters: DeleteReferencesResult 
4649
    '''
4650 1
    def __init__(self):
4651
        self.TypeId = FourByteNodeId(ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary)
4652
        self.ResponseHeader = ResponseHeader()
4653
        self.Parameters = DeleteReferencesResult()
4654
        self._freeze()
4655
    
4656 1
    def to_binary(self):
4657
        packet = []
4658
        packet.append(self.TypeId.to_binary())
4659
        packet.append(self.ResponseHeader.to_binary())
4660
        packet.append(self.Parameters.to_binary())
4661
        return b''.join(packet)
4662
        
4663 1
    @staticmethod
4664
    def from_binary(data):
4665
        obj = DeleteReferencesResponse()
4666
        obj.TypeId = NodeId.from_binary(data)
4667
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4668
        obj.Parameters = DeleteReferencesResult.from_binary(data)
4669
        return obj
4670
    
4671 1
    def __str__(self):
4672
        return 'DeleteReferencesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4673
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
4674
             'Parameters:' + str(self.Parameters) + ')'
4675
    
4676 1
    __repr__ = __str__
4677
    
4678 1
class ViewDescription(FrozenClass):
4679
    '''
4680
    The view to browse.
4681
    
4682
    :ivar ViewId: 
4683
    :vartype ViewId: NodeId 
4684
    :ivar Timestamp: 
4685
    :vartype Timestamp: DateTime 
4686
    :ivar ViewVersion: 
4687
    :vartype ViewVersion: UInt32 
4688
    '''
4689 1
    def __init__(self):
4690 1
        self.ViewId = NodeId()
4691 1
        self.Timestamp = datetime.now()
4692 1
        self.ViewVersion = 0
4693 1
        self._freeze()
4694
    
4695 1
    def to_binary(self):
4696 1
        packet = []
4697 1
        packet.append(self.ViewId.to_binary())
4698 1
        packet.append(pack_uatype('DateTime', self.Timestamp))
4699 1
        packet.append(pack_uatype('UInt32', self.ViewVersion))
4700 1
        return b''.join(packet)
4701
        
4702 1
    @staticmethod
4703
    def from_binary(data):
4704 1
        obj = ViewDescription()
4705 1
        obj.ViewId = NodeId.from_binary(data)
4706 1
        obj.Timestamp = unpack_uatype('DateTime', data)
4707 1
        obj.ViewVersion = unpack_uatype('UInt32', data)
4708 1
        return obj
4709
    
4710 1
    def __str__(self):
4711
        return 'ViewDescription(' + 'ViewId:' + str(self.ViewId) + ', '  + \
4712
             'Timestamp:' + str(self.Timestamp) + ', '  + \
4713
             'ViewVersion:' + str(self.ViewVersion) + ')'
4714
    
4715 1
    __repr__ = __str__
4716
    
4717 1
class BrowseDescription(FrozenClass):
4718
    '''
4719
    A request to browse the the references from a node.
4720
    
4721
    :ivar NodeId: 
4722
    :vartype NodeId: NodeId 
4723
    :ivar BrowseDirection: 
4724
    :vartype BrowseDirection: BrowseDirection 
4725
    :ivar ReferenceTypeId: 
4726
    :vartype ReferenceTypeId: NodeId 
4727
    :ivar IncludeSubtypes: 
4728
    :vartype IncludeSubtypes: Boolean 
4729
    :ivar NodeClassMask: 
4730
    :vartype NodeClassMask: UInt32 
4731
    :ivar ResultMask: 
4732
    :vartype ResultMask: UInt32 
4733
    '''
4734 1
    def __init__(self):
4735 1
        self.NodeId = NodeId()
4736 1
        self.BrowseDirection = 0
4737 1
        self.ReferenceTypeId = NodeId()
4738 1
        self.IncludeSubtypes = True
4739 1
        self.NodeClassMask = 0
4740 1
        self.ResultMask = 0
4741 1
        self._freeze()
4742
    
4743 1
    def to_binary(self):
4744 1
        packet = []
4745 1
        packet.append(self.NodeId.to_binary())
4746 1
        packet.append(pack_uatype('UInt32', self.BrowseDirection))
4747 1
        packet.append(self.ReferenceTypeId.to_binary())
4748 1
        packet.append(pack_uatype('Boolean', self.IncludeSubtypes))
4749 1
        packet.append(pack_uatype('UInt32', self.NodeClassMask))
4750 1
        packet.append(pack_uatype('UInt32', self.ResultMask))
4751 1
        return b''.join(packet)
4752
        
4753 1
    @staticmethod
4754
    def from_binary(data):
4755 1
        obj = BrowseDescription()
4756 1
        obj.NodeId = NodeId.from_binary(data)
4757 1
        obj.BrowseDirection = unpack_uatype('UInt32', data)
4758 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4759 1
        obj.IncludeSubtypes = unpack_uatype('Boolean', data)
4760 1
        obj.NodeClassMask = unpack_uatype('UInt32', data)
4761 1
        obj.ResultMask = unpack_uatype('UInt32', data)
4762 1
        return obj
4763
    
4764 1
    def __str__(self):
4765
        return 'BrowseDescription(' + 'NodeId:' + str(self.NodeId) + ', '  + \
4766
             'BrowseDirection:' + str(self.BrowseDirection) + ', '  + \
4767
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4768
             'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', '  + \
4769
             'NodeClassMask:' + str(self.NodeClassMask) + ', '  + \
4770
             'ResultMask:' + str(self.ResultMask) + ')'
4771
    
4772 1
    __repr__ = __str__
4773
    
4774 1
class ReferenceDescription(FrozenClass):
4775
    '''
4776
    The description of a reference.
4777
    
4778
    :ivar ReferenceTypeId: 
4779
    :vartype ReferenceTypeId: NodeId 
4780
    :ivar IsForward: 
4781
    :vartype IsForward: Boolean 
4782
    :ivar NodeId: 
4783
    :vartype NodeId: ExpandedNodeId 
4784
    :ivar BrowseName: 
4785
    :vartype BrowseName: QualifiedName 
4786
    :ivar DisplayName: 
4787
    :vartype DisplayName: LocalizedText 
4788
    :ivar NodeClass: 
4789
    :vartype NodeClass: NodeClass 
4790
    :ivar TypeDefinition: 
4791
    :vartype TypeDefinition: ExpandedNodeId 
4792
    '''
4793 1
    def __init__(self):
4794 1
        self.ReferenceTypeId = NodeId()
4795 1
        self.IsForward = True
4796 1
        self.NodeId = ExpandedNodeId()
4797 1
        self.BrowseName = QualifiedName()
4798 1
        self.DisplayName = LocalizedText()
4799 1
        self.NodeClass = 0
4800 1
        self.TypeDefinition = ExpandedNodeId()
4801 1
        self._freeze()
4802
    
4803 1
    def to_binary(self):
4804 1
        packet = []
4805 1
        packet.append(self.ReferenceTypeId.to_binary())
4806 1
        packet.append(pack_uatype('Boolean', self.IsForward))
4807 1
        packet.append(self.NodeId.to_binary())
4808 1
        packet.append(self.BrowseName.to_binary())
4809 1
        packet.append(self.DisplayName.to_binary())
4810 1
        packet.append(pack_uatype('UInt32', self.NodeClass))
4811 1
        packet.append(self.TypeDefinition.to_binary())
4812 1
        return b''.join(packet)
4813
        
4814 1
    @staticmethod
4815
    def from_binary(data):
4816 1
        obj = ReferenceDescription()
4817 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
4818 1
        obj.IsForward = unpack_uatype('Boolean', data)
4819 1
        obj.NodeId = ExpandedNodeId.from_binary(data)
4820 1
        obj.BrowseName = QualifiedName.from_binary(data)
4821 1
        obj.DisplayName = LocalizedText.from_binary(data)
4822 1
        obj.NodeClass = unpack_uatype('UInt32', data)
4823 1
        obj.TypeDefinition = ExpandedNodeId.from_binary(data)
4824 1
        return obj
4825
    
4826 1
    def __str__(self):
4827
        return 'ReferenceDescription(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
4828
             'IsForward:' + str(self.IsForward) + ', '  + \
4829
             'NodeId:' + str(self.NodeId) + ', '  + \
4830
             'BrowseName:' + str(self.BrowseName) + ', '  + \
4831
             'DisplayName:' + str(self.DisplayName) + ', '  + \
4832
             'NodeClass:' + str(self.NodeClass) + ', '  + \
4833
             'TypeDefinition:' + str(self.TypeDefinition) + ')'
4834
    
4835 1
    __repr__ = __str__
4836
    
4837 1
class BrowseResult(FrozenClass):
4838
    '''
4839
    The result of a browse operation.
4840
    
4841
    :ivar StatusCode: 
4842
    :vartype StatusCode: StatusCode 
4843
    :ivar ContinuationPoint: 
4844
    :vartype ContinuationPoint: ByteString 
4845
    :ivar References: 
4846
    :vartype References: ReferenceDescription 
4847
    '''
4848 1
    def __init__(self):
4849 1
        self.StatusCode = StatusCode()
4850 1
        self.ContinuationPoint = b''
4851 1
        self.References = []
4852 1
        self._freeze()
4853
    
4854 1
    def to_binary(self):
4855 1
        packet = []
4856 1
        packet.append(self.StatusCode.to_binary())
4857 1
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
4858 1
        packet.append(struct.pack('<i', len(self.References)))
4859 1
        for fieldname in self.References:
4860 1
            packet.append(fieldname.to_binary())
4861 1
        return b''.join(packet)
4862
        
4863 1
    @staticmethod
4864
    def from_binary(data):
4865 1
        obj = BrowseResult()
4866 1
        obj.StatusCode = StatusCode.from_binary(data)
4867 1
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
4868 1
        length = struct.unpack('<i', data.read(4))[0]
4869 1
        if length != -1:
4870 1
            for _ in range(0, length):
4871 1
                obj.References.append(ReferenceDescription.from_binary(data))
4872 1
        return obj
4873
    
4874 1
    def __str__(self):
4875
        return 'BrowseResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
4876
             'ContinuationPoint:' + str(self.ContinuationPoint) + ', '  + \
4877
             'References:' + str(self.References) + ')'
4878
    
4879 1
    __repr__ = __str__
4880
    
4881 1
class BrowseParameters(FrozenClass):
4882
    '''
4883
    :ivar View: 
4884
    :vartype View: ViewDescription 
4885
    :ivar RequestedMaxReferencesPerNode: 
4886
    :vartype RequestedMaxReferencesPerNode: UInt32 
4887
    :ivar NodesToBrowse: 
4888
    :vartype NodesToBrowse: BrowseDescription 
4889
    '''
4890 1
    def __init__(self):
4891 1
        self.View = ViewDescription()
4892 1
        self.RequestedMaxReferencesPerNode = 0
4893 1
        self.NodesToBrowse = []
4894 1
        self._freeze()
4895
    
4896 1
    def to_binary(self):
4897 1
        packet = []
4898 1
        packet.append(self.View.to_binary())
4899 1
        packet.append(pack_uatype('UInt32', self.RequestedMaxReferencesPerNode))
4900 1
        packet.append(struct.pack('<i', len(self.NodesToBrowse)))
4901 1
        for fieldname in self.NodesToBrowse:
4902 1
            packet.append(fieldname.to_binary())
4903 1
        return b''.join(packet)
4904
        
4905 1
    @staticmethod
4906
    def from_binary(data):
4907 1
        obj = BrowseParameters()
4908 1
        obj.View = ViewDescription.from_binary(data)
4909 1
        obj.RequestedMaxReferencesPerNode = unpack_uatype('UInt32', data)
4910 1
        length = struct.unpack('<i', data.read(4))[0]
4911 1
        if length != -1:
4912 1
            for _ in range(0, length):
4913 1
                obj.NodesToBrowse.append(BrowseDescription.from_binary(data))
4914 1
        return obj
4915
    
4916 1
    def __str__(self):
4917
        return 'BrowseParameters(' + 'View:' + str(self.View) + ', '  + \
4918
             'RequestedMaxReferencesPerNode:' + str(self.RequestedMaxReferencesPerNode) + ', '  + \
4919
             'NodesToBrowse:' + str(self.NodesToBrowse) + ')'
4920
    
4921 1
    __repr__ = __str__
4922
    
4923 1
class BrowseRequest(FrozenClass):
4924
    '''
4925
    Browse the references for one or more nodes from the server address space.
4926
    
4927
    :ivar TypeId: 
4928
    :vartype TypeId: NodeId 
4929
    :ivar RequestHeader: 
4930
    :vartype RequestHeader: RequestHeader 
4931
    :ivar Parameters: 
4932
    :vartype Parameters: BrowseParameters 
4933
    '''
4934 1
    def __init__(self):
4935 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseRequest_Encoding_DefaultBinary)
4936 1
        self.RequestHeader = RequestHeader()
4937 1
        self.Parameters = BrowseParameters()
4938 1
        self._freeze()
4939
    
4940 1
    def to_binary(self):
4941 1
        packet = []
4942 1
        packet.append(self.TypeId.to_binary())
4943 1
        packet.append(self.RequestHeader.to_binary())
4944 1
        packet.append(self.Parameters.to_binary())
4945 1
        return b''.join(packet)
4946
        
4947 1
    @staticmethod
4948
    def from_binary(data):
4949
        obj = BrowseRequest()
4950
        obj.TypeId = NodeId.from_binary(data)
4951
        obj.RequestHeader = RequestHeader.from_binary(data)
4952
        obj.Parameters = BrowseParameters.from_binary(data)
4953
        return obj
4954
    
4955 1
    def __str__(self):
4956
        return 'BrowseRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
4957
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
4958
             'Parameters:' + str(self.Parameters) + ')'
4959
    
4960 1
    __repr__ = __str__
4961
    
4962 1
class BrowseResponse(FrozenClass):
4963
    '''
4964
    Browse the references for one or more nodes from the server address space.
4965
    
4966
    :ivar TypeId: 
4967
    :vartype TypeId: NodeId 
4968
    :ivar ResponseHeader: 
4969
    :vartype ResponseHeader: ResponseHeader 
4970
    :ivar Results: 
4971
    :vartype Results: BrowseResult 
4972
    :ivar DiagnosticInfos: 
4973
    :vartype DiagnosticInfos: DiagnosticInfo 
4974
    '''
4975 1
    def __init__(self):
4976 1
        self.TypeId = FourByteNodeId(ObjectIds.BrowseResponse_Encoding_DefaultBinary)
4977 1
        self.ResponseHeader = ResponseHeader()
4978 1
        self.Results = []
4979 1
        self.DiagnosticInfos = []
4980 1
        self._freeze()
4981
    
4982 1
    def to_binary(self):
4983 1
        packet = []
4984 1
        packet.append(self.TypeId.to_binary())
4985 1
        packet.append(self.ResponseHeader.to_binary())
4986 1
        packet.append(struct.pack('<i', len(self.Results)))
4987 1
        for fieldname in self.Results:
4988 1
            packet.append(fieldname.to_binary())
4989 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
4990 1
        for fieldname in self.DiagnosticInfos:
4991
            packet.append(fieldname.to_binary())
4992 1
        return b''.join(packet)
4993
        
4994 1
    @staticmethod
4995
    def from_binary(data):
4996 1
        obj = BrowseResponse()
4997 1
        obj.TypeId = NodeId.from_binary(data)
4998 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
4999 1
        length = struct.unpack('<i', data.read(4))[0]
5000 1
        if length != -1:
5001 1
            for _ in range(0, length):
5002 1
                obj.Results.append(BrowseResult.from_binary(data))
5003 1
        length = struct.unpack('<i', data.read(4))[0]
5004 1
        if length != -1:
5005 1
            for _ in range(0, length):
5006
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5007 1
        return obj
5008
    
5009 1
    def __str__(self):
5010
        return 'BrowseResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5011
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5012
             'Results:' + str(self.Results) + ', '  + \
5013
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5014
    
5015 1
    __repr__ = __str__
5016
    
5017 1
class BrowseNextParameters(FrozenClass):
5018
    '''
5019
    :ivar ReleaseContinuationPoints: 
5020
    :vartype ReleaseContinuationPoints: Boolean 
5021
    :ivar ContinuationPoints: 
5022
    :vartype ContinuationPoints: ByteString 
5023
    '''
5024 1
    def __init__(self):
5025
        self.ReleaseContinuationPoints = True
5026
        self.ContinuationPoints = []
5027
        self._freeze()
5028
    
5029 1
    def to_binary(self):
5030
        packet = []
5031
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoints))
5032
        packet.append(struct.pack('<i', len(self.ContinuationPoints)))
5033
        for fieldname in self.ContinuationPoints:
5034
            packet.append(pack_uatype('ByteString', fieldname))
5035
        return b''.join(packet)
5036
        
5037 1
    @staticmethod
5038
    def from_binary(data):
5039
        obj = BrowseNextParameters()
5040
        obj.ReleaseContinuationPoints = unpack_uatype('Boolean', data)
5041
        obj.ContinuationPoints = unpack_uatype_array('ByteString', data)
5042
        return obj
5043
    
5044 1
    def __str__(self):
5045
        return 'BrowseNextParameters(' + 'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', '  + \
5046
             'ContinuationPoints:' + str(self.ContinuationPoints) + ')'
5047
    
5048 1
    __repr__ = __str__
5049
    
5050 1
class BrowseNextRequest(FrozenClass):
5051
    '''
5052
    Continues one or more browse operations.
5053
    
5054
    :ivar TypeId: 
5055
    :vartype TypeId: NodeId 
5056
    :ivar RequestHeader: 
5057
    :vartype RequestHeader: RequestHeader 
5058
    :ivar Parameters: 
5059
    :vartype Parameters: BrowseNextParameters 
5060
    '''
5061 1
    def __init__(self):
5062
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextRequest_Encoding_DefaultBinary)
5063
        self.RequestHeader = RequestHeader()
5064
        self.Parameters = BrowseNextParameters()
5065
        self._freeze()
5066
    
5067 1
    def to_binary(self):
5068
        packet = []
5069
        packet.append(self.TypeId.to_binary())
5070
        packet.append(self.RequestHeader.to_binary())
5071
        packet.append(self.Parameters.to_binary())
5072
        return b''.join(packet)
5073
        
5074 1
    @staticmethod
5075
    def from_binary(data):
5076
        obj = BrowseNextRequest()
5077
        obj.TypeId = NodeId.from_binary(data)
5078
        obj.RequestHeader = RequestHeader.from_binary(data)
5079
        obj.Parameters = BrowseNextParameters.from_binary(data)
5080
        return obj
5081
    
5082 1
    def __str__(self):
5083
        return 'BrowseNextRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5084
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5085
             'Parameters:' + str(self.Parameters) + ')'
5086
    
5087 1
    __repr__ = __str__
5088
    
5089 1
class BrowseNextResult(FrozenClass):
5090
    '''
5091
    :ivar Results: 
5092
    :vartype Results: BrowseResult 
5093
    :ivar DiagnosticInfos: 
5094
    :vartype DiagnosticInfos: DiagnosticInfo 
5095
    '''
5096 1
    def __init__(self):
5097
        self.Results = []
5098
        self.DiagnosticInfos = []
5099
        self._freeze()
5100
    
5101 1
    def to_binary(self):
5102
        packet = []
5103
        packet.append(struct.pack('<i', len(self.Results)))
5104
        for fieldname in self.Results:
5105
            packet.append(fieldname.to_binary())
5106
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5107
        for fieldname in self.DiagnosticInfos:
5108
            packet.append(fieldname.to_binary())
5109
        return b''.join(packet)
5110
        
5111 1
    @staticmethod
5112
    def from_binary(data):
5113
        obj = BrowseNextResult()
5114
        length = struct.unpack('<i', data.read(4))[0]
5115
        if length != -1:
5116
            for _ in range(0, length):
5117
                obj.Results.append(BrowseResult.from_binary(data))
5118
        length = struct.unpack('<i', data.read(4))[0]
5119
        if length != -1:
5120
            for _ in range(0, length):
5121
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5122
        return obj
5123
    
5124 1
    def __str__(self):
5125
        return 'BrowseNextResult(' + 'Results:' + str(self.Results) + ', '  + \
5126
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5127
    
5128 1
    __repr__ = __str__
5129
    
5130 1
class BrowseNextResponse(FrozenClass):
5131
    '''
5132
    Continues one or more browse operations.
5133
    
5134
    :ivar TypeId: 
5135
    :vartype TypeId: NodeId 
5136
    :ivar ResponseHeader: 
5137
    :vartype ResponseHeader: ResponseHeader 
5138
    :ivar Parameters: 
5139
    :vartype Parameters: BrowseNextResult 
5140
    '''
5141 1
    def __init__(self):
5142
        self.TypeId = FourByteNodeId(ObjectIds.BrowseNextResponse_Encoding_DefaultBinary)
5143
        self.ResponseHeader = ResponseHeader()
5144
        self.Parameters = BrowseNextResult()
5145
        self._freeze()
5146
    
5147 1
    def to_binary(self):
5148
        packet = []
5149
        packet.append(self.TypeId.to_binary())
5150
        packet.append(self.ResponseHeader.to_binary())
5151
        packet.append(self.Parameters.to_binary())
5152
        return b''.join(packet)
5153
        
5154 1
    @staticmethod
5155
    def from_binary(data):
5156
        obj = BrowseNextResponse()
5157
        obj.TypeId = NodeId.from_binary(data)
5158
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5159
        obj.Parameters = BrowseNextResult.from_binary(data)
5160
        return obj
5161
    
5162 1
    def __str__(self):
5163
        return 'BrowseNextResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5164
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5165
             'Parameters:' + str(self.Parameters) + ')'
5166
    
5167 1
    __repr__ = __str__
5168
    
5169 1
class RelativePathElement(FrozenClass):
5170
    '''
5171
    An element in a relative path.
5172
    
5173
    :ivar ReferenceTypeId: 
5174
    :vartype ReferenceTypeId: NodeId 
5175
    :ivar IsInverse: 
5176
    :vartype IsInverse: Boolean 
5177
    :ivar IncludeSubtypes: 
5178
    :vartype IncludeSubtypes: Boolean 
5179
    :ivar TargetName: 
5180
    :vartype TargetName: QualifiedName 
5181
    '''
5182 1
    def __init__(self):
5183 1
        self.ReferenceTypeId = NodeId()
5184 1
        self.IsInverse = True
5185 1
        self.IncludeSubtypes = True
5186 1
        self.TargetName = QualifiedName()
5187 1
        self._freeze()
5188
    
5189 1
    def to_binary(self):
5190 1
        packet = []
5191 1
        packet.append(self.ReferenceTypeId.to_binary())
5192 1
        packet.append(pack_uatype('Boolean', self.IsInverse))
5193 1
        packet.append(pack_uatype('Boolean', self.IncludeSubtypes))
5194 1
        packet.append(self.TargetName.to_binary())
5195 1
        return b''.join(packet)
5196
        
5197 1
    @staticmethod
5198
    def from_binary(data):
5199 1
        obj = RelativePathElement()
5200 1
        obj.ReferenceTypeId = NodeId.from_binary(data)
5201 1
        obj.IsInverse = unpack_uatype('Boolean', data)
5202 1
        obj.IncludeSubtypes = unpack_uatype('Boolean', data)
5203 1
        obj.TargetName = QualifiedName.from_binary(data)
5204 1
        return obj
5205
    
5206 1
    def __str__(self):
5207
        return 'RelativePathElement(' + 'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
5208
             'IsInverse:' + str(self.IsInverse) + ', '  + \
5209
             'IncludeSubtypes:' + str(self.IncludeSubtypes) + ', '  + \
5210
             'TargetName:' + str(self.TargetName) + ')'
5211
    
5212 1
    __repr__ = __str__
5213
    
5214 1
class RelativePath(FrozenClass):
5215
    '''
5216
    A relative path constructed from reference types and browse names.
5217
    
5218
    :ivar Elements: 
5219
    :vartype Elements: RelativePathElement 
5220
    '''
5221 1
    def __init__(self):
5222 1
        self.Elements = []
5223 1
        self._freeze()
5224
    
5225 1
    def to_binary(self):
5226 1
        packet = []
5227 1
        packet.append(struct.pack('<i', len(self.Elements)))
5228 1
        for fieldname in self.Elements:
5229 1
            packet.append(fieldname.to_binary())
5230 1
        return b''.join(packet)
5231
        
5232 1
    @staticmethod
5233
    def from_binary(data):
5234 1
        obj = RelativePath()
5235 1
        length = struct.unpack('<i', data.read(4))[0]
5236 1
        if length != -1:
5237 1
            for _ in range(0, length):
5238 1
                obj.Elements.append(RelativePathElement.from_binary(data))
5239 1
        return obj
5240
    
5241 1
    def __str__(self):
5242
        return 'RelativePath(' + 'Elements:' + str(self.Elements) + ')'
5243
    
5244 1
    __repr__ = __str__
5245
    
5246 1
class BrowsePath(FrozenClass):
5247
    '''
5248
    A request to translate a path into a node id.
5249
    
5250
    :ivar StartingNode: 
5251
    :vartype StartingNode: NodeId 
5252
    :ivar RelativePath: 
5253
    :vartype RelativePath: RelativePath 
5254
    '''
5255 1
    def __init__(self):
5256 1
        self.StartingNode = NodeId()
5257 1
        self.RelativePath = RelativePath()
5258 1
        self._freeze()
5259
    
5260 1
    def to_binary(self):
5261 1
        packet = []
5262 1
        packet.append(self.StartingNode.to_binary())
5263 1
        packet.append(self.RelativePath.to_binary())
5264 1
        return b''.join(packet)
5265
        
5266 1
    @staticmethod
5267
    def from_binary(data):
5268 1
        obj = BrowsePath()
5269 1
        obj.StartingNode = NodeId.from_binary(data)
5270 1
        obj.RelativePath = RelativePath.from_binary(data)
5271 1
        return obj
5272
    
5273 1
    def __str__(self):
5274
        return 'BrowsePath(' + 'StartingNode:' + str(self.StartingNode) + ', '  + \
5275
             'RelativePath:' + str(self.RelativePath) + ')'
5276
    
5277 1
    __repr__ = __str__
5278
    
5279 1
class BrowsePathTarget(FrozenClass):
5280
    '''
5281
    The target of the translated path.
5282
    
5283
    :ivar TargetId: 
5284
    :vartype TargetId: ExpandedNodeId 
5285
    :ivar RemainingPathIndex: 
5286
    :vartype RemainingPathIndex: UInt32 
5287
    '''
5288 1
    def __init__(self):
5289 1
        self.TargetId = ExpandedNodeId()
5290 1
        self.RemainingPathIndex = 0
5291 1
        self._freeze()
5292
    
5293 1
    def to_binary(self):
5294 1
        packet = []
5295 1
        packet.append(self.TargetId.to_binary())
5296 1
        packet.append(pack_uatype('UInt32', self.RemainingPathIndex))
5297 1
        return b''.join(packet)
5298
        
5299 1
    @staticmethod
5300
    def from_binary(data):
5301 1
        obj = BrowsePathTarget()
5302 1
        obj.TargetId = ExpandedNodeId.from_binary(data)
5303 1
        obj.RemainingPathIndex = unpack_uatype('UInt32', data)
5304 1
        return obj
5305
    
5306 1
    def __str__(self):
5307
        return 'BrowsePathTarget(' + 'TargetId:' + str(self.TargetId) + ', '  + \
5308
             'RemainingPathIndex:' + str(self.RemainingPathIndex) + ')'
5309
    
5310 1
    __repr__ = __str__
5311
    
5312 1
class BrowsePathResult(FrozenClass):
5313
    '''
5314
    The result of a translate opearation.
5315
    
5316
    :ivar StatusCode: 
5317
    :vartype StatusCode: StatusCode 
5318
    :ivar Targets: 
5319
    :vartype Targets: BrowsePathTarget 
5320
    '''
5321 1
    def __init__(self):
5322 1
        self.StatusCode = StatusCode()
5323 1
        self.Targets = []
5324 1
        self._freeze()
5325
    
5326 1
    def to_binary(self):
5327 1
        packet = []
5328 1
        packet.append(self.StatusCode.to_binary())
5329 1
        packet.append(struct.pack('<i', len(self.Targets)))
5330 1
        for fieldname in self.Targets:
5331 1
            packet.append(fieldname.to_binary())
5332 1
        return b''.join(packet)
5333
        
5334 1
    @staticmethod
5335
    def from_binary(data):
5336 1
        obj = BrowsePathResult()
5337 1
        obj.StatusCode = StatusCode.from_binary(data)
5338 1
        length = struct.unpack('<i', data.read(4))[0]
5339 1
        if length != -1:
5340 1
            for _ in range(0, length):
5341 1
                obj.Targets.append(BrowsePathTarget.from_binary(data))
5342 1
        return obj
5343
    
5344 1
    def __str__(self):
5345
        return 'BrowsePathResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
5346
             'Targets:' + str(self.Targets) + ')'
5347
    
5348 1
    __repr__ = __str__
5349
    
5350 1
class TranslateBrowsePathsToNodeIdsParameters(FrozenClass):
5351
    '''
5352
    :ivar BrowsePaths: 
5353
    :vartype BrowsePaths: BrowsePath 
5354
    '''
5355 1
    def __init__(self):
5356 1
        self.BrowsePaths = []
5357 1
        self._freeze()
5358
    
5359 1
    def to_binary(self):
5360 1
        packet = []
5361 1
        packet.append(struct.pack('<i', len(self.BrowsePaths)))
5362 1
        for fieldname in self.BrowsePaths:
5363 1
            packet.append(fieldname.to_binary())
5364 1
        return b''.join(packet)
5365
        
5366 1
    @staticmethod
5367
    def from_binary(data):
5368 1
        obj = TranslateBrowsePathsToNodeIdsParameters()
5369 1
        length = struct.unpack('<i', data.read(4))[0]
5370 1
        if length != -1:
5371 1
            for _ in range(0, length):
5372 1
                obj.BrowsePaths.append(BrowsePath.from_binary(data))
5373 1
        return obj
5374
    
5375 1
    def __str__(self):
5376
        return 'TranslateBrowsePathsToNodeIdsParameters(' + 'BrowsePaths:' + str(self.BrowsePaths) + ')'
5377
    
5378 1
    __repr__ = __str__
5379
    
5380 1
class TranslateBrowsePathsToNodeIdsRequest(FrozenClass):
5381
    '''
5382
    Translates one or more paths in the server address space.
5383
    
5384
    :ivar TypeId: 
5385
    :vartype TypeId: NodeId 
5386
    :ivar RequestHeader: 
5387
    :vartype RequestHeader: RequestHeader 
5388
    :ivar Parameters: 
5389
    :vartype Parameters: TranslateBrowsePathsToNodeIdsParameters 
5390
    '''
5391 1
    def __init__(self):
5392 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary)
5393 1
        self.RequestHeader = RequestHeader()
5394 1
        self.Parameters = TranslateBrowsePathsToNodeIdsParameters()
5395 1
        self._freeze()
5396
    
5397 1
    def to_binary(self):
5398 1
        packet = []
5399 1
        packet.append(self.TypeId.to_binary())
5400 1
        packet.append(self.RequestHeader.to_binary())
5401 1
        packet.append(self.Parameters.to_binary())
5402 1
        return b''.join(packet)
5403
        
5404 1
    @staticmethod
5405
    def from_binary(data):
5406
        obj = TranslateBrowsePathsToNodeIdsRequest()
5407
        obj.TypeId = NodeId.from_binary(data)
5408
        obj.RequestHeader = RequestHeader.from_binary(data)
5409
        obj.Parameters = TranslateBrowsePathsToNodeIdsParameters.from_binary(data)
5410
        return obj
5411
    
5412 1
    def __str__(self):
5413
        return 'TranslateBrowsePathsToNodeIdsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5414
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5415
             'Parameters:' + str(self.Parameters) + ')'
5416
    
5417 1
    __repr__ = __str__
5418
    
5419 1
class TranslateBrowsePathsToNodeIdsResponse(FrozenClass):
5420
    '''
5421
    Translates one or more paths in the server address space.
5422
    
5423
    :ivar TypeId: 
5424
    :vartype TypeId: NodeId 
5425
    :ivar ResponseHeader: 
5426
    :vartype ResponseHeader: ResponseHeader 
5427
    :ivar Results: 
5428
    :vartype Results: BrowsePathResult 
5429
    :ivar DiagnosticInfos: 
5430
    :vartype DiagnosticInfos: DiagnosticInfo 
5431
    '''
5432 1
    def __init__(self):
5433 1
        self.TypeId = FourByteNodeId(ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary)
5434 1
        self.ResponseHeader = ResponseHeader()
5435 1
        self.Results = []
5436 1
        self.DiagnosticInfos = []
5437 1
        self._freeze()
5438
    
5439 1
    def to_binary(self):
5440 1
        packet = []
5441 1
        packet.append(self.TypeId.to_binary())
5442 1
        packet.append(self.ResponseHeader.to_binary())
5443 1
        packet.append(struct.pack('<i', len(self.Results)))
5444 1
        for fieldname in self.Results:
5445 1
            packet.append(fieldname.to_binary())
5446 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
5447 1
        for fieldname in self.DiagnosticInfos:
5448
            packet.append(fieldname.to_binary())
5449 1
        return b''.join(packet)
5450
        
5451 1
    @staticmethod
5452
    def from_binary(data):
5453 1
        obj = TranslateBrowsePathsToNodeIdsResponse()
5454 1
        obj.TypeId = NodeId.from_binary(data)
5455 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5456 1
        length = struct.unpack('<i', data.read(4))[0]
5457 1
        if length != -1:
5458 1
            for _ in range(0, length):
5459 1
                obj.Results.append(BrowsePathResult.from_binary(data))
5460 1
        length = struct.unpack('<i', data.read(4))[0]
5461 1
        if length != -1:
5462 1
            for _ in range(0, length):
5463
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
5464 1
        return obj
5465
    
5466 1
    def __str__(self):
5467
        return 'TranslateBrowsePathsToNodeIdsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5468
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5469
             'Results:' + str(self.Results) + ', '  + \
5470
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
5471
    
5472 1
    __repr__ = __str__
5473
    
5474 1
class RegisterNodesParameters(FrozenClass):
5475
    '''
5476
    :ivar NodesToRegister: 
5477
    :vartype NodesToRegister: NodeId 
5478
    '''
5479 1
    def __init__(self):
5480
        self.NodesToRegister = []
5481
        self._freeze()
5482
    
5483 1
    def to_binary(self):
5484
        packet = []
5485
        packet.append(struct.pack('<i', len(self.NodesToRegister)))
5486
        for fieldname in self.NodesToRegister:
5487
            packet.append(fieldname.to_binary())
5488
        return b''.join(packet)
5489
        
5490 1
    @staticmethod
5491
    def from_binary(data):
5492
        obj = RegisterNodesParameters()
5493
        length = struct.unpack('<i', data.read(4))[0]
5494
        if length != -1:
5495
            for _ in range(0, length):
5496
                obj.NodesToRegister.append(NodeId.from_binary(data))
5497
        return obj
5498
    
5499 1
    def __str__(self):
5500
        return 'RegisterNodesParameters(' + 'NodesToRegister:' + str(self.NodesToRegister) + ')'
5501
    
5502 1
    __repr__ = __str__
5503
    
5504 1
class RegisterNodesRequest(FrozenClass):
5505
    '''
5506
    Registers one or more nodes for repeated use within a session.
5507
    
5508
    :ivar TypeId: 
5509
    :vartype TypeId: NodeId 
5510
    :ivar RequestHeader: 
5511
    :vartype RequestHeader: RequestHeader 
5512
    :ivar Parameters: 
5513
    :vartype Parameters: RegisterNodesParameters 
5514
    '''
5515 1
    def __init__(self):
5516
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary)
5517
        self.RequestHeader = RequestHeader()
5518
        self.Parameters = RegisterNodesParameters()
5519
        self._freeze()
5520
    
5521 1
    def to_binary(self):
5522
        packet = []
5523
        packet.append(self.TypeId.to_binary())
5524
        packet.append(self.RequestHeader.to_binary())
5525
        packet.append(self.Parameters.to_binary())
5526
        return b''.join(packet)
5527
        
5528 1
    @staticmethod
5529
    def from_binary(data):
5530
        obj = RegisterNodesRequest()
5531
        obj.TypeId = NodeId.from_binary(data)
5532
        obj.RequestHeader = RequestHeader.from_binary(data)
5533
        obj.Parameters = RegisterNodesParameters.from_binary(data)
5534
        return obj
5535
    
5536 1
    def __str__(self):
5537
        return 'RegisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5538
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5539
             'Parameters:' + str(self.Parameters) + ')'
5540
    
5541 1
    __repr__ = __str__
5542
    
5543 1
class RegisterNodesResult(FrozenClass):
5544
    '''
5545
    :ivar RegisteredNodeIds: 
5546
    :vartype RegisteredNodeIds: NodeId 
5547
    '''
5548 1
    def __init__(self):
5549
        self.RegisteredNodeIds = []
5550
        self._freeze()
5551
    
5552 1
    def to_binary(self):
5553
        packet = []
5554
        packet.append(struct.pack('<i', len(self.RegisteredNodeIds)))
5555
        for fieldname in self.RegisteredNodeIds:
5556
            packet.append(fieldname.to_binary())
5557
        return b''.join(packet)
5558
        
5559 1
    @staticmethod
5560
    def from_binary(data):
5561
        obj = RegisterNodesResult()
5562
        length = struct.unpack('<i', data.read(4))[0]
5563
        if length != -1:
5564
            for _ in range(0, length):
5565
                obj.RegisteredNodeIds.append(NodeId.from_binary(data))
5566
        return obj
5567
    
5568 1
    def __str__(self):
5569
        return 'RegisterNodesResult(' + 'RegisteredNodeIds:' + str(self.RegisteredNodeIds) + ')'
5570
    
5571 1
    __repr__ = __str__
5572
    
5573 1
class RegisterNodesResponse(FrozenClass):
5574
    '''
5575
    Registers one or more nodes for repeated use within a session.
5576
    
5577
    :ivar TypeId: 
5578
    :vartype TypeId: NodeId 
5579
    :ivar ResponseHeader: 
5580
    :vartype ResponseHeader: ResponseHeader 
5581
    :ivar Parameters: 
5582
    :vartype Parameters: RegisterNodesResult 
5583
    '''
5584 1
    def __init__(self):
5585
        self.TypeId = FourByteNodeId(ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary)
5586
        self.ResponseHeader = ResponseHeader()
5587
        self.Parameters = RegisterNodesResult()
5588
        self._freeze()
5589
    
5590 1
    def to_binary(self):
5591
        packet = []
5592
        packet.append(self.TypeId.to_binary())
5593
        packet.append(self.ResponseHeader.to_binary())
5594
        packet.append(self.Parameters.to_binary())
5595
        return b''.join(packet)
5596
        
5597 1
    @staticmethod
5598
    def from_binary(data):
5599
        obj = RegisterNodesResponse()
5600
        obj.TypeId = NodeId.from_binary(data)
5601
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5602
        obj.Parameters = RegisterNodesResult.from_binary(data)
5603
        return obj
5604
    
5605 1
    def __str__(self):
5606
        return 'RegisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5607
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
5608
             'Parameters:' + str(self.Parameters) + ')'
5609
    
5610 1
    __repr__ = __str__
5611
    
5612 1
class UnregisterNodesParameters(FrozenClass):
5613
    '''
5614
    :ivar NodesToUnregister: 
5615
    :vartype NodesToUnregister: NodeId 
5616
    '''
5617 1
    def __init__(self):
5618
        self.NodesToUnregister = []
5619
        self._freeze()
5620
    
5621 1
    def to_binary(self):
5622
        packet = []
5623
        packet.append(struct.pack('<i', len(self.NodesToUnregister)))
5624
        for fieldname in self.NodesToUnregister:
5625
            packet.append(fieldname.to_binary())
5626
        return b''.join(packet)
5627
        
5628 1
    @staticmethod
5629
    def from_binary(data):
5630
        obj = UnregisterNodesParameters()
5631
        length = struct.unpack('<i', data.read(4))[0]
5632
        if length != -1:
5633
            for _ in range(0, length):
5634
                obj.NodesToUnregister.append(NodeId.from_binary(data))
5635
        return obj
5636
    
5637 1
    def __str__(self):
5638
        return 'UnregisterNodesParameters(' + 'NodesToUnregister:' + str(self.NodesToUnregister) + ')'
5639
    
5640 1
    __repr__ = __str__
5641
    
5642 1
class UnregisterNodesRequest(FrozenClass):
5643
    '''
5644
    Unregisters one or more previously registered nodes.
5645
    
5646
    :ivar TypeId: 
5647
    :vartype TypeId: NodeId 
5648
    :ivar RequestHeader: 
5649
    :vartype RequestHeader: RequestHeader 
5650
    :ivar Parameters: 
5651
    :vartype Parameters: UnregisterNodesParameters 
5652
    '''
5653 1
    def __init__(self):
5654
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary)
5655
        self.RequestHeader = RequestHeader()
5656
        self.Parameters = UnregisterNodesParameters()
5657
        self._freeze()
5658
    
5659 1
    def to_binary(self):
5660
        packet = []
5661
        packet.append(self.TypeId.to_binary())
5662
        packet.append(self.RequestHeader.to_binary())
5663
        packet.append(self.Parameters.to_binary())
5664
        return b''.join(packet)
5665
        
5666 1
    @staticmethod
5667
    def from_binary(data):
5668
        obj = UnregisterNodesRequest()
5669
        obj.TypeId = NodeId.from_binary(data)
5670
        obj.RequestHeader = RequestHeader.from_binary(data)
5671
        obj.Parameters = UnregisterNodesParameters.from_binary(data)
5672
        return obj
5673
    
5674 1
    def __str__(self):
5675
        return 'UnregisterNodesRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5676
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
5677
             'Parameters:' + str(self.Parameters) + ')'
5678
    
5679 1
    __repr__ = __str__
5680
    
5681 1
class UnregisterNodesResponse(FrozenClass):
5682
    '''
5683
    Unregisters one or more previously registered nodes.
5684
    
5685
    :ivar TypeId: 
5686
    :vartype TypeId: NodeId 
5687
    :ivar ResponseHeader: 
5688
    :vartype ResponseHeader: ResponseHeader 
5689
    '''
5690 1
    def __init__(self):
5691
        self.TypeId = FourByteNodeId(ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary)
5692
        self.ResponseHeader = ResponseHeader()
5693
        self._freeze()
5694
    
5695 1
    def to_binary(self):
5696
        packet = []
5697
        packet.append(self.TypeId.to_binary())
5698
        packet.append(self.ResponseHeader.to_binary())
5699
        return b''.join(packet)
5700
        
5701 1
    @staticmethod
5702
    def from_binary(data):
5703
        obj = UnregisterNodesResponse()
5704
        obj.TypeId = NodeId.from_binary(data)
5705
        obj.ResponseHeader = ResponseHeader.from_binary(data)
5706
        return obj
5707
    
5708 1
    def __str__(self):
5709
        return 'UnregisterNodesResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
5710
             'ResponseHeader:' + str(self.ResponseHeader) + ')'
5711
    
5712 1
    __repr__ = __str__
5713
    
5714 1
class EndpointConfiguration(FrozenClass):
5715
    '''
5716
    :ivar OperationTimeout: 
5717
    :vartype OperationTimeout: Int32 
5718
    :ivar UseBinaryEncoding: 
5719
    :vartype UseBinaryEncoding: Boolean 
5720
    :ivar MaxStringLength: 
5721
    :vartype MaxStringLength: Int32 
5722
    :ivar MaxByteStringLength: 
5723
    :vartype MaxByteStringLength: Int32 
5724
    :ivar MaxArrayLength: 
5725
    :vartype MaxArrayLength: Int32 
5726
    :ivar MaxMessageSize: 
5727
    :vartype MaxMessageSize: Int32 
5728
    :ivar MaxBufferSize: 
5729
    :vartype MaxBufferSize: Int32 
5730
    :ivar ChannelLifetime: 
5731
    :vartype ChannelLifetime: Int32 
5732
    :ivar SecurityTokenLifetime: 
5733
    :vartype SecurityTokenLifetime: Int32 
5734
    '''
5735 1
    def __init__(self):
5736
        self.OperationTimeout = 0
5737
        self.UseBinaryEncoding = True
5738
        self.MaxStringLength = 0
5739
        self.MaxByteStringLength = 0
5740
        self.MaxArrayLength = 0
5741
        self.MaxMessageSize = 0
5742
        self.MaxBufferSize = 0
5743
        self.ChannelLifetime = 0
5744
        self.SecurityTokenLifetime = 0
5745
        self._freeze()
5746
    
5747 1
    def to_binary(self):
5748
        packet = []
5749
        packet.append(pack_uatype('Int32', self.OperationTimeout))
5750
        packet.append(pack_uatype('Boolean', self.UseBinaryEncoding))
5751
        packet.append(pack_uatype('Int32', self.MaxStringLength))
5752
        packet.append(pack_uatype('Int32', self.MaxByteStringLength))
5753
        packet.append(pack_uatype('Int32', self.MaxArrayLength))
5754
        packet.append(pack_uatype('Int32', self.MaxMessageSize))
5755
        packet.append(pack_uatype('Int32', self.MaxBufferSize))
5756
        packet.append(pack_uatype('Int32', self.ChannelLifetime))
5757
        packet.append(pack_uatype('Int32', self.SecurityTokenLifetime))
5758
        return b''.join(packet)
5759
        
5760 1
    @staticmethod
5761
    def from_binary(data):
5762
        obj = EndpointConfiguration()
5763
        obj.OperationTimeout = unpack_uatype('Int32', data)
5764
        obj.UseBinaryEncoding = unpack_uatype('Boolean', data)
5765
        obj.MaxStringLength = unpack_uatype('Int32', data)
5766
        obj.MaxByteStringLength = unpack_uatype('Int32', data)
5767
        obj.MaxArrayLength = unpack_uatype('Int32', data)
5768
        obj.MaxMessageSize = unpack_uatype('Int32', data)
5769
        obj.MaxBufferSize = unpack_uatype('Int32', data)
5770
        obj.ChannelLifetime = unpack_uatype('Int32', data)
5771
        obj.SecurityTokenLifetime = unpack_uatype('Int32', data)
5772
        return obj
5773
    
5774 1
    def __str__(self):
5775
        return 'EndpointConfiguration(' + 'OperationTimeout:' + str(self.OperationTimeout) + ', '  + \
5776
             'UseBinaryEncoding:' + str(self.UseBinaryEncoding) + ', '  + \
5777
             'MaxStringLength:' + str(self.MaxStringLength) + ', '  + \
5778
             'MaxByteStringLength:' + str(self.MaxByteStringLength) + ', '  + \
5779
             'MaxArrayLength:' + str(self.MaxArrayLength) + ', '  + \
5780
             'MaxMessageSize:' + str(self.MaxMessageSize) + ', '  + \
5781
             'MaxBufferSize:' + str(self.MaxBufferSize) + ', '  + \
5782
             'ChannelLifetime:' + str(self.ChannelLifetime) + ', '  + \
5783
             'SecurityTokenLifetime:' + str(self.SecurityTokenLifetime) + ')'
5784
    
5785 1
    __repr__ = __str__
5786
    
5787 1
class SupportedProfile(FrozenClass):
5788
    '''
5789
    :ivar OrganizationUri: 
5790
    :vartype OrganizationUri: String 
5791
    :ivar ProfileId: 
5792
    :vartype ProfileId: String 
5793
    :ivar ComplianceTool: 
5794
    :vartype ComplianceTool: String 
5795
    :ivar ComplianceDate: 
5796
    :vartype ComplianceDate: DateTime 
5797
    :ivar ComplianceLevel: 
5798
    :vartype ComplianceLevel: ComplianceLevel 
5799
    :ivar UnsupportedUnitIds: 
5800
    :vartype UnsupportedUnitIds: String 
5801
    '''
5802 1
    def __init__(self):
5803
        self.OrganizationUri = ''
5804
        self.ProfileId = ''
5805
        self.ComplianceTool = ''
5806
        self.ComplianceDate = datetime.now()
5807
        self.ComplianceLevel = 0
5808
        self.UnsupportedUnitIds = []
5809
        self._freeze()
5810
    
5811 1
    def to_binary(self):
5812
        packet = []
5813
        packet.append(pack_uatype('String', self.OrganizationUri))
5814
        packet.append(pack_uatype('String', self.ProfileId))
5815
        packet.append(pack_uatype('String', self.ComplianceTool))
5816
        packet.append(pack_uatype('DateTime', self.ComplianceDate))
5817
        packet.append(pack_uatype('UInt32', self.ComplianceLevel))
5818
        packet.append(struct.pack('<i', len(self.UnsupportedUnitIds)))
5819
        for fieldname in self.UnsupportedUnitIds:
5820
            packet.append(pack_uatype('String', fieldname))
5821
        return b''.join(packet)
5822
        
5823 1
    @staticmethod
5824
    def from_binary(data):
5825
        obj = SupportedProfile()
5826
        obj.OrganizationUri = unpack_uatype('String', data)
5827
        obj.ProfileId = unpack_uatype('String', data)
5828
        obj.ComplianceTool = unpack_uatype('String', data)
5829
        obj.ComplianceDate = unpack_uatype('DateTime', data)
5830
        obj.ComplianceLevel = unpack_uatype('UInt32', data)
5831
        obj.UnsupportedUnitIds = unpack_uatype_array('String', data)
5832
        return obj
5833
    
5834 1
    def __str__(self):
5835
        return 'SupportedProfile(' + 'OrganizationUri:' + str(self.OrganizationUri) + ', '  + \
5836
             'ProfileId:' + str(self.ProfileId) + ', '  + \
5837
             'ComplianceTool:' + str(self.ComplianceTool) + ', '  + \
5838
             'ComplianceDate:' + str(self.ComplianceDate) + ', '  + \
5839
             'ComplianceLevel:' + str(self.ComplianceLevel) + ', '  + \
5840
             'UnsupportedUnitIds:' + str(self.UnsupportedUnitIds) + ')'
5841
    
5842 1
    __repr__ = __str__
5843
    
5844 1
class SoftwareCertificate(FrozenClass):
5845
    '''
5846
    :ivar ProductName: 
5847
    :vartype ProductName: String 
5848
    :ivar ProductUri: 
5849
    :vartype ProductUri: String 
5850
    :ivar VendorName: 
5851
    :vartype VendorName: String 
5852
    :ivar VendorProductCertificate: 
5853
    :vartype VendorProductCertificate: ByteString 
5854
    :ivar SoftwareVersion: 
5855
    :vartype SoftwareVersion: String 
5856
    :ivar BuildNumber: 
5857
    :vartype BuildNumber: String 
5858
    :ivar BuildDate: 
5859
    :vartype BuildDate: DateTime 
5860
    :ivar IssuedBy: 
5861
    :vartype IssuedBy: String 
5862
    :ivar IssueDate: 
5863
    :vartype IssueDate: DateTime 
5864
    :ivar SupportedProfiles: 
5865
    :vartype SupportedProfiles: SupportedProfile 
5866
    '''
5867 1
    def __init__(self):
5868
        self.ProductName = ''
5869
        self.ProductUri = ''
5870
        self.VendorName = ''
5871
        self.VendorProductCertificate = b''
5872
        self.SoftwareVersion = ''
5873
        self.BuildNumber = ''
5874
        self.BuildDate = datetime.now()
5875
        self.IssuedBy = ''
5876
        self.IssueDate = datetime.now()
5877
        self.SupportedProfiles = []
5878
        self._freeze()
5879
    
5880 1
    def to_binary(self):
5881
        packet = []
5882
        packet.append(pack_uatype('String', self.ProductName))
5883
        packet.append(pack_uatype('String', self.ProductUri))
5884
        packet.append(pack_uatype('String', self.VendorName))
5885
        packet.append(pack_uatype('ByteString', self.VendorProductCertificate))
5886
        packet.append(pack_uatype('String', self.SoftwareVersion))
5887
        packet.append(pack_uatype('String', self.BuildNumber))
5888
        packet.append(pack_uatype('DateTime', self.BuildDate))
5889
        packet.append(pack_uatype('String', self.IssuedBy))
5890
        packet.append(pack_uatype('DateTime', self.IssueDate))
5891
        packet.append(struct.pack('<i', len(self.SupportedProfiles)))
5892
        for fieldname in self.SupportedProfiles:
5893
            packet.append(fieldname.to_binary())
5894
        return b''.join(packet)
5895
        
5896 1
    @staticmethod
5897
    def from_binary(data):
5898
        obj = SoftwareCertificate()
5899
        obj.ProductName = unpack_uatype('String', data)
5900
        obj.ProductUri = unpack_uatype('String', data)
5901
        obj.VendorName = unpack_uatype('String', data)
5902
        obj.VendorProductCertificate = unpack_uatype('ByteString', data)
5903
        obj.SoftwareVersion = unpack_uatype('String', data)
5904
        obj.BuildNumber = unpack_uatype('String', data)
5905
        obj.BuildDate = unpack_uatype('DateTime', data)
5906
        obj.IssuedBy = unpack_uatype('String', data)
5907
        obj.IssueDate = unpack_uatype('DateTime', data)
5908
        length = struct.unpack('<i', data.read(4))[0]
5909
        if length != -1:
5910
            for _ in range(0, length):
5911
                obj.SupportedProfiles.append(SupportedProfile.from_binary(data))
5912
        return obj
5913
    
5914 1
    def __str__(self):
5915
        return 'SoftwareCertificate(' + 'ProductName:' + str(self.ProductName) + ', '  + \
5916
             'ProductUri:' + str(self.ProductUri) + ', '  + \
5917
             'VendorName:' + str(self.VendorName) + ', '  + \
5918
             'VendorProductCertificate:' + str(self.VendorProductCertificate) + ', '  + \
5919
             'SoftwareVersion:' + str(self.SoftwareVersion) + ', '  + \
5920
             'BuildNumber:' + str(self.BuildNumber) + ', '  + \
5921
             'BuildDate:' + str(self.BuildDate) + ', '  + \
5922
             'IssuedBy:' + str(self.IssuedBy) + ', '  + \
5923
             'IssueDate:' + str(self.IssueDate) + ', '  + \
5924
             'SupportedProfiles:' + str(self.SupportedProfiles) + ')'
5925
    
5926 1
    __repr__ = __str__
5927
    
5928 1
class QueryDataDescription(FrozenClass):
5929
    '''
5930
    :ivar RelativePath: 
5931
    :vartype RelativePath: RelativePath 
5932
    :ivar AttributeId: 
5933
    :vartype AttributeId: UInt32 
5934
    :ivar IndexRange: 
5935
    :vartype IndexRange: String 
5936
    '''
5937 1
    def __init__(self):
5938
        self.RelativePath = RelativePath()
5939
        self.AttributeId = 0
5940
        self.IndexRange = ''
5941
        self._freeze()
5942
    
5943 1
    def to_binary(self):
5944
        packet = []
5945
        packet.append(self.RelativePath.to_binary())
5946
        packet.append(pack_uatype('UInt32', self.AttributeId))
5947
        packet.append(pack_uatype('String', self.IndexRange))
5948
        return b''.join(packet)
5949
        
5950 1
    @staticmethod
5951
    def from_binary(data):
5952
        obj = QueryDataDescription()
5953
        obj.RelativePath = RelativePath.from_binary(data)
5954
        obj.AttributeId = unpack_uatype('UInt32', data)
5955
        obj.IndexRange = unpack_uatype('String', data)
5956
        return obj
5957
    
5958 1
    def __str__(self):
5959
        return 'QueryDataDescription(' + 'RelativePath:' + str(self.RelativePath) + ', '  + \
5960
             'AttributeId:' + str(self.AttributeId) + ', '  + \
5961
             'IndexRange:' + str(self.IndexRange) + ')'
5962
    
5963 1
    __repr__ = __str__
5964
    
5965 1
class NodeTypeDescription(FrozenClass):
5966
    '''
5967
    :ivar TypeDefinitionNode: 
5968
    :vartype TypeDefinitionNode: ExpandedNodeId 
5969
    :ivar IncludeSubTypes: 
5970
    :vartype IncludeSubTypes: Boolean 
5971
    :ivar DataToReturn: 
5972
    :vartype DataToReturn: QueryDataDescription 
5973
    '''
5974 1
    def __init__(self):
5975
        self.TypeDefinitionNode = ExpandedNodeId()
5976
        self.IncludeSubTypes = True
5977
        self.DataToReturn = []
5978
        self._freeze()
5979
    
5980 1
    def to_binary(self):
5981
        packet = []
5982
        packet.append(self.TypeDefinitionNode.to_binary())
5983
        packet.append(pack_uatype('Boolean', self.IncludeSubTypes))
5984
        packet.append(struct.pack('<i', len(self.DataToReturn)))
5985
        for fieldname in self.DataToReturn:
5986
            packet.append(fieldname.to_binary())
5987
        return b''.join(packet)
5988
        
5989 1
    @staticmethod
5990
    def from_binary(data):
5991
        obj = NodeTypeDescription()
5992
        obj.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
5993
        obj.IncludeSubTypes = unpack_uatype('Boolean', data)
5994
        length = struct.unpack('<i', data.read(4))[0]
5995
        if length != -1:
5996
            for _ in range(0, length):
5997
                obj.DataToReturn.append(QueryDataDescription.from_binary(data))
5998
        return obj
5999
    
6000 1
    def __str__(self):
6001
        return 'NodeTypeDescription(' + 'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', '  + \
6002
             'IncludeSubTypes:' + str(self.IncludeSubTypes) + ', '  + \
6003
             'DataToReturn:' + str(self.DataToReturn) + ')'
6004
    
6005 1
    __repr__ = __str__
6006
    
6007 1
class QueryDataSet(FrozenClass):
6008
    '''
6009
    :ivar NodeId: 
6010
    :vartype NodeId: ExpandedNodeId 
6011
    :ivar TypeDefinitionNode: 
6012
    :vartype TypeDefinitionNode: ExpandedNodeId 
6013
    :ivar Values: 
6014
    :vartype Values: Variant 
6015
    '''
6016 1
    def __init__(self):
6017
        self.NodeId = ExpandedNodeId()
6018
        self.TypeDefinitionNode = ExpandedNodeId()
6019
        self.Values = []
6020
        self._freeze()
6021
    
6022 1
    def to_binary(self):
6023
        packet = []
6024
        packet.append(self.NodeId.to_binary())
6025
        packet.append(self.TypeDefinitionNode.to_binary())
6026
        packet.append(struct.pack('<i', len(self.Values)))
6027
        for fieldname in self.Values:
6028
            packet.append(fieldname.to_binary())
6029
        return b''.join(packet)
6030
        
6031 1
    @staticmethod
6032
    def from_binary(data):
6033
        obj = QueryDataSet()
6034
        obj.NodeId = ExpandedNodeId.from_binary(data)
6035
        obj.TypeDefinitionNode = ExpandedNodeId.from_binary(data)
6036
        length = struct.unpack('<i', data.read(4))[0]
6037
        if length != -1:
6038
            for _ in range(0, length):
6039
                obj.Values.append(Variant.from_binary(data))
6040
        return obj
6041
    
6042 1
    def __str__(self):
6043
        return 'QueryDataSet(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6044
             'TypeDefinitionNode:' + str(self.TypeDefinitionNode) + ', '  + \
6045
             'Values:' + str(self.Values) + ')'
6046
    
6047 1
    __repr__ = __str__
6048
    
6049 1
class NodeReference(FrozenClass):
6050
    '''
6051
    :ivar NodeId: 
6052
    :vartype NodeId: NodeId 
6053
    :ivar ReferenceTypeId: 
6054
    :vartype ReferenceTypeId: NodeId 
6055
    :ivar IsForward: 
6056
    :vartype IsForward: Boolean 
6057
    :ivar ReferencedNodeIds: 
6058
    :vartype ReferencedNodeIds: NodeId 
6059
    '''
6060 1
    def __init__(self):
6061
        self.NodeId = NodeId()
6062
        self.ReferenceTypeId = NodeId()
6063
        self.IsForward = True
6064
        self.ReferencedNodeIds = []
6065
        self._freeze()
6066
    
6067 1
    def to_binary(self):
6068
        packet = []
6069
        packet.append(self.NodeId.to_binary())
6070
        packet.append(self.ReferenceTypeId.to_binary())
6071
        packet.append(pack_uatype('Boolean', self.IsForward))
6072
        packet.append(struct.pack('<i', len(self.ReferencedNodeIds)))
6073
        for fieldname in self.ReferencedNodeIds:
6074
            packet.append(fieldname.to_binary())
6075
        return b''.join(packet)
6076
        
6077 1
    @staticmethod
6078
    def from_binary(data):
6079
        obj = NodeReference()
6080
        obj.NodeId = NodeId.from_binary(data)
6081
        obj.ReferenceTypeId = NodeId.from_binary(data)
6082
        obj.IsForward = unpack_uatype('Boolean', data)
6083
        length = struct.unpack('<i', data.read(4))[0]
6084
        if length != -1:
6085
            for _ in range(0, length):
6086
                obj.ReferencedNodeIds.append(NodeId.from_binary(data))
6087
        return obj
6088
    
6089 1
    def __str__(self):
6090
        return 'NodeReference(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6091
             'ReferenceTypeId:' + str(self.ReferenceTypeId) + ', '  + \
6092
             'IsForward:' + str(self.IsForward) + ', '  + \
6093
             'ReferencedNodeIds:' + str(self.ReferencedNodeIds) + ')'
6094
    
6095 1
    __repr__ = __str__
6096
    
6097 1
class ContentFilterElement(FrozenClass):
6098
    '''
6099
    :ivar FilterOperator: 
6100
    :vartype FilterOperator: FilterOperator 
6101
    :ivar FilterOperands: 
6102
    :vartype FilterOperands: ExtensionObject 
6103
    '''
6104 1
    def __init__(self):
6105
        self.FilterOperator = 0
6106
        self.FilterOperands = []
6107
        self._freeze()
6108
    
6109 1
    def to_binary(self):
6110
        packet = []
6111
        packet.append(pack_uatype('UInt32', self.FilterOperator))
6112
        packet.append(struct.pack('<i', len(self.FilterOperands)))
6113
        for fieldname in self.FilterOperands:
6114
            packet.append(extensionobject_to_binary(fieldname))
6115
        return b''.join(packet)
6116
        
6117 1
    @staticmethod
6118
    def from_binary(data):
6119
        obj = ContentFilterElement()
6120
        obj.FilterOperator = unpack_uatype('UInt32', data)
6121
        length = struct.unpack('<i', data.read(4))[0]
6122
        if length != -1:
6123
            for _ in range(0, length):
6124
                obj.FilterOperands.append(extensionobject_from_binary(data))
6125
        return obj
6126
    
6127 1
    def __str__(self):
6128
        return 'ContentFilterElement(' + 'FilterOperator:' + str(self.FilterOperator) + ', '  + \
6129
             'FilterOperands:' + str(self.FilterOperands) + ')'
6130
    
6131 1
    __repr__ = __str__
6132
    
6133 1
class ContentFilter(FrozenClass):
6134
    '''
6135
    :ivar Elements: 
6136
    :vartype Elements: ContentFilterElement 
6137
    '''
6138 1
    def __init__(self):
6139 1
        self.Elements = []
6140 1
        self._freeze()
6141
    
6142 1
    def to_binary(self):
6143 1
        packet = []
6144 1
        packet.append(struct.pack('<i', len(self.Elements)))
6145 1
        for fieldname in self.Elements:
6146
            packet.append(fieldname.to_binary())
6147 1
        return b''.join(packet)
6148
        
6149 1
    @staticmethod
6150
    def from_binary(data):
6151 1
        obj = ContentFilter()
6152 1
        length = struct.unpack('<i', data.read(4))[0]
6153 1
        if length != -1:
6154 1
            for _ in range(0, length):
6155
                obj.Elements.append(ContentFilterElement.from_binary(data))
6156 1
        return obj
6157
    
6158 1
    def __str__(self):
6159
        return 'ContentFilter(' + 'Elements:' + str(self.Elements) + ')'
6160
    
6161 1
    __repr__ = __str__
6162
    
6163 1
class ElementOperand(FrozenClass):
6164
    '''
6165
    :ivar Index: 
6166
    :vartype Index: UInt32 
6167
    '''
6168 1
    def __init__(self):
6169
        self.Index = 0
6170
        self._freeze()
6171
    
6172 1
    def to_binary(self):
6173
        packet = []
6174
        packet.append(pack_uatype('UInt32', self.Index))
6175
        return b''.join(packet)
6176
        
6177 1
    @staticmethod
6178
    def from_binary(data):
6179
        obj = ElementOperand()
6180
        obj.Index = unpack_uatype('UInt32', data)
6181
        return obj
6182
    
6183 1
    def __str__(self):
6184
        return 'ElementOperand(' + 'Index:' + str(self.Index) + ')'
6185
    
6186 1
    __repr__ = __str__
6187
    
6188 1
class LiteralOperand(FrozenClass):
6189
    '''
6190
    :ivar Value: 
6191
    :vartype Value: Variant 
6192
    '''
6193 1
    def __init__(self):
6194
        self.Value = Variant()
6195
        self._freeze()
6196
    
6197 1
    def to_binary(self):
6198
        packet = []
6199
        packet.append(self.Value.to_binary())
6200
        return b''.join(packet)
6201
        
6202 1
    @staticmethod
6203
    def from_binary(data):
6204
        obj = LiteralOperand()
6205
        obj.Value = Variant.from_binary(data)
6206
        return obj
6207
    
6208 1
    def __str__(self):
6209
        return 'LiteralOperand(' + 'Value:' + str(self.Value) + ')'
6210
    
6211 1
    __repr__ = __str__
6212
    
6213 1
class AttributeOperand(FrozenClass):
6214
    '''
6215
    :ivar NodeId: 
6216
    :vartype NodeId: NodeId 
6217
    :ivar Alias: 
6218
    :vartype Alias: String 
6219
    :ivar BrowsePath: 
6220
    :vartype BrowsePath: RelativePath 
6221
    :ivar AttributeId: 
6222
    :vartype AttributeId: UInt32 
6223
    :ivar IndexRange: 
6224
    :vartype IndexRange: String 
6225
    '''
6226 1
    def __init__(self):
6227
        self.NodeId = NodeId()
6228
        self.Alias = ''
6229
        self.BrowsePath = RelativePath()
6230
        self.AttributeId = 0
6231
        self.IndexRange = ''
6232
        self._freeze()
6233
    
6234 1
    def to_binary(self):
6235
        packet = []
6236
        packet.append(self.NodeId.to_binary())
6237
        packet.append(pack_uatype('String', self.Alias))
6238
        packet.append(self.BrowsePath.to_binary())
6239
        packet.append(pack_uatype('UInt32', self.AttributeId))
6240
        packet.append(pack_uatype('String', self.IndexRange))
6241
        return b''.join(packet)
6242
        
6243 1
    @staticmethod
6244
    def from_binary(data):
6245
        obj = AttributeOperand()
6246
        obj.NodeId = NodeId.from_binary(data)
6247
        obj.Alias = unpack_uatype('String', data)
6248
        obj.BrowsePath = RelativePath.from_binary(data)
6249
        obj.AttributeId = unpack_uatype('UInt32', data)
6250
        obj.IndexRange = unpack_uatype('String', data)
6251
        return obj
6252
    
6253 1
    def __str__(self):
6254
        return 'AttributeOperand(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6255
             'Alias:' + str(self.Alias) + ', '  + \
6256
             'BrowsePath:' + str(self.BrowsePath) + ', '  + \
6257
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6258
             'IndexRange:' + str(self.IndexRange) + ')'
6259
    
6260 1
    __repr__ = __str__
6261
    
6262 1
class SimpleAttributeOperand(FrozenClass):
6263
    '''
6264
    :ivar TypeDefinitionId: 
6265
    :vartype TypeDefinitionId: NodeId 
6266
    :ivar BrowsePath: 
6267
    :vartype BrowsePath: QualifiedName 
6268
    :ivar AttributeId: 
6269
    :vartype AttributeId: UInt32 
6270
    :ivar IndexRange: 
6271
    :vartype IndexRange: String 
6272
    '''
6273 1
    def __init__(self):
6274 1
        self.TypeDefinitionId = NodeId()
6275 1
        self.BrowsePath = []
6276 1
        self.AttributeId = 0
6277 1
        self.IndexRange = ''
6278 1
        self._freeze()
6279
    
6280 1
    def to_binary(self):
6281 1
        packet = []
6282 1
        packet.append(self.TypeDefinitionId.to_binary())
6283 1
        packet.append(struct.pack('<i', len(self.BrowsePath)))
6284 1
        for fieldname in self.BrowsePath:
6285 1
            packet.append(fieldname.to_binary())
6286 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
6287 1
        packet.append(pack_uatype('String', self.IndexRange))
6288 1
        return b''.join(packet)
6289
        
6290 1
    @staticmethod
6291
    def from_binary(data):
6292 1
        obj = SimpleAttributeOperand()
6293 1
        obj.TypeDefinitionId = NodeId.from_binary(data)
6294 1
        length = struct.unpack('<i', data.read(4))[0]
6295 1
        if length != -1:
6296 1
            for _ in range(0, length):
6297 1
                obj.BrowsePath.append(QualifiedName.from_binary(data))
6298 1
        obj.AttributeId = unpack_uatype('UInt32', data)
6299 1
        obj.IndexRange = unpack_uatype('String', data)
6300 1
        return obj
6301
    
6302 1
    def __str__(self):
6303
        return 'SimpleAttributeOperand(' + 'TypeDefinitionId:' + str(self.TypeDefinitionId) + ', '  + \
6304
             'BrowsePath:' + str(self.BrowsePath) + ', '  + \
6305
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6306
             'IndexRange:' + str(self.IndexRange) + ')'
6307
    
6308 1
    __repr__ = __str__
6309
    
6310 1
class ContentFilterElementResult(FrozenClass):
6311
    '''
6312
    :ivar StatusCode: 
6313
    :vartype StatusCode: StatusCode 
6314
    :ivar OperandStatusCodes: 
6315
    :vartype OperandStatusCodes: StatusCode 
6316
    :ivar OperandDiagnosticInfos: 
6317
    :vartype OperandDiagnosticInfos: DiagnosticInfo 
6318
    '''
6319 1
    def __init__(self):
6320
        self.StatusCode = StatusCode()
6321
        self.OperandStatusCodes = []
6322
        self.OperandDiagnosticInfos = []
6323
        self._freeze()
6324
    
6325 1
    def to_binary(self):
6326
        packet = []
6327
        packet.append(self.StatusCode.to_binary())
6328
        packet.append(struct.pack('<i', len(self.OperandStatusCodes)))
6329
        for fieldname in self.OperandStatusCodes:
6330
            packet.append(fieldname.to_binary())
6331
        packet.append(struct.pack('<i', len(self.OperandDiagnosticInfos)))
6332
        for fieldname in self.OperandDiagnosticInfos:
6333
            packet.append(fieldname.to_binary())
6334
        return b''.join(packet)
6335
        
6336 1
    @staticmethod
6337
    def from_binary(data):
6338
        obj = ContentFilterElementResult()
6339
        obj.StatusCode = StatusCode.from_binary(data)
6340
        length = struct.unpack('<i', data.read(4))[0]
6341
        if length != -1:
6342
            for _ in range(0, length):
6343
                obj.OperandStatusCodes.append(StatusCode.from_binary(data))
6344
        length = struct.unpack('<i', data.read(4))[0]
6345
        if length != -1:
6346
            for _ in range(0, length):
6347
                obj.OperandDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6348
        return obj
6349
    
6350 1
    def __str__(self):
6351
        return 'ContentFilterElementResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
6352
             'OperandStatusCodes:' + str(self.OperandStatusCodes) + ', '  + \
6353
             'OperandDiagnosticInfos:' + str(self.OperandDiagnosticInfos) + ')'
6354
    
6355 1
    __repr__ = __str__
6356
    
6357 1
class ContentFilterResult(FrozenClass):
6358
    '''
6359
    :ivar ElementResults: 
6360
    :vartype ElementResults: ContentFilterElementResult 
6361
    :ivar ElementDiagnosticInfos: 
6362
    :vartype ElementDiagnosticInfos: DiagnosticInfo 
6363
    '''
6364 1
    def __init__(self):
6365
        self.ElementResults = []
6366
        self.ElementDiagnosticInfos = []
6367
        self._freeze()
6368
    
6369 1
    def to_binary(self):
6370
        packet = []
6371
        packet.append(struct.pack('<i', len(self.ElementResults)))
6372
        for fieldname in self.ElementResults:
6373
            packet.append(fieldname.to_binary())
6374
        packet.append(struct.pack('<i', len(self.ElementDiagnosticInfos)))
6375
        for fieldname in self.ElementDiagnosticInfos:
6376
            packet.append(fieldname.to_binary())
6377
        return b''.join(packet)
6378
        
6379 1
    @staticmethod
6380
    def from_binary(data):
6381
        obj = ContentFilterResult()
6382
        length = struct.unpack('<i', data.read(4))[0]
6383
        if length != -1:
6384
            for _ in range(0, length):
6385
                obj.ElementResults.append(ContentFilterElementResult.from_binary(data))
6386
        length = struct.unpack('<i', data.read(4))[0]
6387
        if length != -1:
6388
            for _ in range(0, length):
6389
                obj.ElementDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6390
        return obj
6391
    
6392 1
    def __str__(self):
6393
        return 'ContentFilterResult(' + 'ElementResults:' + str(self.ElementResults) + ', '  + \
6394
             'ElementDiagnosticInfos:' + str(self.ElementDiagnosticInfos) + ')'
6395
    
6396 1
    __repr__ = __str__
6397
    
6398 1
class ParsingResult(FrozenClass):
6399
    '''
6400
    :ivar StatusCode: 
6401
    :vartype StatusCode: StatusCode 
6402
    :ivar DataStatusCodes: 
6403
    :vartype DataStatusCodes: StatusCode 
6404
    :ivar DataDiagnosticInfos: 
6405
    :vartype DataDiagnosticInfos: DiagnosticInfo 
6406
    '''
6407 1
    def __init__(self):
6408
        self.StatusCode = StatusCode()
6409
        self.DataStatusCodes = []
6410
        self.DataDiagnosticInfos = []
6411
        self._freeze()
6412
    
6413 1
    def to_binary(self):
6414
        packet = []
6415
        packet.append(self.StatusCode.to_binary())
6416
        packet.append(struct.pack('<i', len(self.DataStatusCodes)))
6417
        for fieldname in self.DataStatusCodes:
6418
            packet.append(fieldname.to_binary())
6419
        packet.append(struct.pack('<i', len(self.DataDiagnosticInfos)))
6420
        for fieldname in self.DataDiagnosticInfos:
6421
            packet.append(fieldname.to_binary())
6422
        return b''.join(packet)
6423
        
6424 1
    @staticmethod
6425
    def from_binary(data):
6426
        obj = ParsingResult()
6427
        obj.StatusCode = StatusCode.from_binary(data)
6428
        length = struct.unpack('<i', data.read(4))[0]
6429
        if length != -1:
6430
            for _ in range(0, length):
6431
                obj.DataStatusCodes.append(StatusCode.from_binary(data))
6432
        length = struct.unpack('<i', data.read(4))[0]
6433
        if length != -1:
6434
            for _ in range(0, length):
6435
                obj.DataDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6436
        return obj
6437
    
6438 1
    def __str__(self):
6439
        return 'ParsingResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
6440
             'DataStatusCodes:' + str(self.DataStatusCodes) + ', '  + \
6441
             'DataDiagnosticInfos:' + str(self.DataDiagnosticInfos) + ')'
6442
    
6443 1
    __repr__ = __str__
6444
    
6445 1
class QueryFirstParameters(FrozenClass):
6446
    '''
6447
    :ivar View: 
6448
    :vartype View: ViewDescription 
6449
    :ivar NodeTypes: 
6450
    :vartype NodeTypes: NodeTypeDescription 
6451
    :ivar Filter: 
6452
    :vartype Filter: ContentFilter 
6453
    :ivar MaxDataSetsToReturn: 
6454
    :vartype MaxDataSetsToReturn: UInt32 
6455
    :ivar MaxReferencesToReturn: 
6456
    :vartype MaxReferencesToReturn: UInt32 
6457
    '''
6458 1
    def __init__(self):
6459
        self.View = ViewDescription()
6460
        self.NodeTypes = []
6461
        self.Filter = ContentFilter()
6462
        self.MaxDataSetsToReturn = 0
6463
        self.MaxReferencesToReturn = 0
6464
        self._freeze()
6465
    
6466 1
    def to_binary(self):
6467
        packet = []
6468
        packet.append(self.View.to_binary())
6469
        packet.append(struct.pack('<i', len(self.NodeTypes)))
6470
        for fieldname in self.NodeTypes:
6471
            packet.append(fieldname.to_binary())
6472
        packet.append(self.Filter.to_binary())
6473
        packet.append(pack_uatype('UInt32', self.MaxDataSetsToReturn))
6474
        packet.append(pack_uatype('UInt32', self.MaxReferencesToReturn))
6475
        return b''.join(packet)
6476
        
6477 1
    @staticmethod
6478
    def from_binary(data):
6479
        obj = QueryFirstParameters()
6480
        obj.View = ViewDescription.from_binary(data)
6481
        length = struct.unpack('<i', data.read(4))[0]
6482
        if length != -1:
6483
            for _ in range(0, length):
6484
                obj.NodeTypes.append(NodeTypeDescription.from_binary(data))
6485
        obj.Filter = ContentFilter.from_binary(data)
6486
        obj.MaxDataSetsToReturn = unpack_uatype('UInt32', data)
6487
        obj.MaxReferencesToReturn = unpack_uatype('UInt32', data)
6488
        return obj
6489
    
6490 1
    def __str__(self):
6491
        return 'QueryFirstParameters(' + 'View:' + str(self.View) + ', '  + \
6492
             'NodeTypes:' + str(self.NodeTypes) + ', '  + \
6493
             'Filter:' + str(self.Filter) + ', '  + \
6494
             'MaxDataSetsToReturn:' + str(self.MaxDataSetsToReturn) + ', '  + \
6495
             'MaxReferencesToReturn:' + str(self.MaxReferencesToReturn) + ')'
6496
    
6497 1
    __repr__ = __str__
6498
    
6499 1
class QueryFirstRequest(FrozenClass):
6500
    '''
6501
    :ivar TypeId: 
6502
    :vartype TypeId: NodeId 
6503
    :ivar RequestHeader: 
6504
    :vartype RequestHeader: RequestHeader 
6505
    :ivar Parameters: 
6506
    :vartype Parameters: QueryFirstParameters 
6507
    '''
6508 1
    def __init__(self):
6509
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstRequest_Encoding_DefaultBinary)
6510
        self.RequestHeader = RequestHeader()
6511
        self.Parameters = QueryFirstParameters()
6512
        self._freeze()
6513
    
6514 1
    def to_binary(self):
6515
        packet = []
6516
        packet.append(self.TypeId.to_binary())
6517
        packet.append(self.RequestHeader.to_binary())
6518
        packet.append(self.Parameters.to_binary())
6519
        return b''.join(packet)
6520
        
6521 1
    @staticmethod
6522
    def from_binary(data):
6523
        obj = QueryFirstRequest()
6524
        obj.TypeId = NodeId.from_binary(data)
6525
        obj.RequestHeader = RequestHeader.from_binary(data)
6526
        obj.Parameters = QueryFirstParameters.from_binary(data)
6527
        return obj
6528
    
6529 1
    def __str__(self):
6530
        return 'QueryFirstRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6531
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
6532
             'Parameters:' + str(self.Parameters) + ')'
6533
    
6534 1
    __repr__ = __str__
6535
    
6536 1
class QueryFirstResult(FrozenClass):
6537
    '''
6538
    :ivar QueryDataSets: 
6539
    :vartype QueryDataSets: QueryDataSet 
6540
    :ivar ContinuationPoint: 
6541
    :vartype ContinuationPoint: ByteString 
6542
    :ivar ParsingResults: 
6543
    :vartype ParsingResults: ParsingResult 
6544
    :ivar DiagnosticInfos: 
6545
    :vartype DiagnosticInfos: DiagnosticInfo 
6546
    :ivar FilterResult: 
6547
    :vartype FilterResult: ContentFilterResult 
6548
    '''
6549 1
    def __init__(self):
6550
        self.QueryDataSets = []
6551
        self.ContinuationPoint = b''
6552
        self.ParsingResults = []
6553
        self.DiagnosticInfos = []
6554
        self.FilterResult = ContentFilterResult()
6555
        self._freeze()
6556
    
6557 1
    def to_binary(self):
6558
        packet = []
6559
        packet.append(struct.pack('<i', len(self.QueryDataSets)))
6560
        for fieldname in self.QueryDataSets:
6561
            packet.append(fieldname.to_binary())
6562
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6563
        packet.append(struct.pack('<i', len(self.ParsingResults)))
6564
        for fieldname in self.ParsingResults:
6565
            packet.append(fieldname.to_binary())
6566
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
6567
        for fieldname in self.DiagnosticInfos:
6568
            packet.append(fieldname.to_binary())
6569
        packet.append(self.FilterResult.to_binary())
6570
        return b''.join(packet)
6571
        
6572 1
    @staticmethod
6573
    def from_binary(data):
6574
        obj = QueryFirstResult()
6575
        length = struct.unpack('<i', data.read(4))[0]
6576
        if length != -1:
6577
            for _ in range(0, length):
6578
                obj.QueryDataSets.append(QueryDataSet.from_binary(data))
6579
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6580
        length = struct.unpack('<i', data.read(4))[0]
6581
        if length != -1:
6582
            for _ in range(0, length):
6583
                obj.ParsingResults.append(ParsingResult.from_binary(data))
6584
        length = struct.unpack('<i', data.read(4))[0]
6585
        if length != -1:
6586
            for _ in range(0, length):
6587
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6588
        obj.FilterResult = ContentFilterResult.from_binary(data)
6589
        return obj
6590
    
6591 1
    def __str__(self):
6592
        return 'QueryFirstResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', '  + \
6593
             'ContinuationPoint:' + str(self.ContinuationPoint) + ', '  + \
6594
             'ParsingResults:' + str(self.ParsingResults) + ', '  + \
6595
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ', '  + \
6596
             'FilterResult:' + str(self.FilterResult) + ')'
6597
    
6598 1
    __repr__ = __str__
6599
    
6600 1
class QueryFirstResponse(FrozenClass):
6601
    '''
6602
    :ivar TypeId: 
6603
    :vartype TypeId: NodeId 
6604
    :ivar ResponseHeader: 
6605
    :vartype ResponseHeader: ResponseHeader 
6606
    :ivar Parameters: 
6607
    :vartype Parameters: QueryFirstResult 
6608
    '''
6609 1
    def __init__(self):
6610
        self.TypeId = FourByteNodeId(ObjectIds.QueryFirstResponse_Encoding_DefaultBinary)
6611
        self.ResponseHeader = ResponseHeader()
6612
        self.Parameters = QueryFirstResult()
6613
        self._freeze()
6614
    
6615 1
    def to_binary(self):
6616
        packet = []
6617
        packet.append(self.TypeId.to_binary())
6618
        packet.append(self.ResponseHeader.to_binary())
6619
        packet.append(self.Parameters.to_binary())
6620
        return b''.join(packet)
6621
        
6622 1
    @staticmethod
6623
    def from_binary(data):
6624
        obj = QueryFirstResponse()
6625
        obj.TypeId = NodeId.from_binary(data)
6626
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6627
        obj.Parameters = QueryFirstResult.from_binary(data)
6628
        return obj
6629
    
6630 1
    def __str__(self):
6631
        return 'QueryFirstResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6632
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
6633
             'Parameters:' + str(self.Parameters) + ')'
6634
    
6635 1
    __repr__ = __str__
6636
    
6637 1
class QueryNextParameters(FrozenClass):
6638
    '''
6639
    :ivar ReleaseContinuationPoint: 
6640
    :vartype ReleaseContinuationPoint: Boolean 
6641
    :ivar ContinuationPoint: 
6642
    :vartype ContinuationPoint: ByteString 
6643
    '''
6644 1
    def __init__(self):
6645
        self.ReleaseContinuationPoint = True
6646
        self.ContinuationPoint = b''
6647
        self._freeze()
6648
    
6649 1
    def to_binary(self):
6650
        packet = []
6651
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoint))
6652
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6653
        return b''.join(packet)
6654
        
6655 1
    @staticmethod
6656
    def from_binary(data):
6657
        obj = QueryNextParameters()
6658
        obj.ReleaseContinuationPoint = unpack_uatype('Boolean', data)
6659
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6660
        return obj
6661
    
6662 1
    def __str__(self):
6663
        return 'QueryNextParameters(' + 'ReleaseContinuationPoint:' + str(self.ReleaseContinuationPoint) + ', '  + \
6664
             'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
6665
    
6666 1
    __repr__ = __str__
6667
    
6668 1
class QueryNextRequest(FrozenClass):
6669
    '''
6670
    :ivar TypeId: 
6671
    :vartype TypeId: NodeId 
6672
    :ivar RequestHeader: 
6673
    :vartype RequestHeader: RequestHeader 
6674
    :ivar Parameters: 
6675
    :vartype Parameters: QueryNextParameters 
6676
    '''
6677 1
    def __init__(self):
6678
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextRequest_Encoding_DefaultBinary)
6679
        self.RequestHeader = RequestHeader()
6680
        self.Parameters = QueryNextParameters()
6681
        self._freeze()
6682
    
6683 1
    def to_binary(self):
6684
        packet = []
6685
        packet.append(self.TypeId.to_binary())
6686
        packet.append(self.RequestHeader.to_binary())
6687
        packet.append(self.Parameters.to_binary())
6688
        return b''.join(packet)
6689
        
6690 1
    @staticmethod
6691
    def from_binary(data):
6692
        obj = QueryNextRequest()
6693
        obj.TypeId = NodeId.from_binary(data)
6694
        obj.RequestHeader = RequestHeader.from_binary(data)
6695
        obj.Parameters = QueryNextParameters.from_binary(data)
6696
        return obj
6697
    
6698 1
    def __str__(self):
6699
        return 'QueryNextRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6700
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
6701
             'Parameters:' + str(self.Parameters) + ')'
6702
    
6703 1
    __repr__ = __str__
6704
    
6705 1
class QueryNextResult(FrozenClass):
6706
    '''
6707
    :ivar QueryDataSets: 
6708
    :vartype QueryDataSets: QueryDataSet 
6709
    :ivar RevisedContinuationPoint: 
6710
    :vartype RevisedContinuationPoint: ByteString 
6711
    '''
6712 1
    def __init__(self):
6713
        self.QueryDataSets = []
6714
        self.RevisedContinuationPoint = b''
6715
        self._freeze()
6716
    
6717 1
    def to_binary(self):
6718
        packet = []
6719
        packet.append(struct.pack('<i', len(self.QueryDataSets)))
6720
        for fieldname in self.QueryDataSets:
6721
            packet.append(fieldname.to_binary())
6722
        packet.append(pack_uatype('ByteString', self.RevisedContinuationPoint))
6723
        return b''.join(packet)
6724
        
6725 1
    @staticmethod
6726
    def from_binary(data):
6727
        obj = QueryNextResult()
6728
        length = struct.unpack('<i', data.read(4))[0]
6729
        if length != -1:
6730
            for _ in range(0, length):
6731
                obj.QueryDataSets.append(QueryDataSet.from_binary(data))
6732
        obj.RevisedContinuationPoint = unpack_uatype('ByteString', data)
6733
        return obj
6734
    
6735 1
    def __str__(self):
6736
        return 'QueryNextResult(' + 'QueryDataSets:' + str(self.QueryDataSets) + ', '  + \
6737
             'RevisedContinuationPoint:' + str(self.RevisedContinuationPoint) + ')'
6738
    
6739 1
    __repr__ = __str__
6740
    
6741 1
class QueryNextResponse(FrozenClass):
6742
    '''
6743
    :ivar TypeId: 
6744
    :vartype TypeId: NodeId 
6745
    :ivar ResponseHeader: 
6746
    :vartype ResponseHeader: ResponseHeader 
6747
    :ivar Parameters: 
6748
    :vartype Parameters: QueryNextResult 
6749
    '''
6750 1
    def __init__(self):
6751
        self.TypeId = FourByteNodeId(ObjectIds.QueryNextResponse_Encoding_DefaultBinary)
6752
        self.ResponseHeader = ResponseHeader()
6753
        self.Parameters = QueryNextResult()
6754
        self._freeze()
6755
    
6756 1
    def to_binary(self):
6757
        packet = []
6758
        packet.append(self.TypeId.to_binary())
6759
        packet.append(self.ResponseHeader.to_binary())
6760
        packet.append(self.Parameters.to_binary())
6761
        return b''.join(packet)
6762
        
6763 1
    @staticmethod
6764
    def from_binary(data):
6765
        obj = QueryNextResponse()
6766
        obj.TypeId = NodeId.from_binary(data)
6767
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6768
        obj.Parameters = QueryNextResult.from_binary(data)
6769
        return obj
6770
    
6771 1
    def __str__(self):
6772
        return 'QueryNextResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6773
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
6774
             'Parameters:' + str(self.Parameters) + ')'
6775
    
6776 1
    __repr__ = __str__
6777
    
6778 1
class ReadValueId(FrozenClass):
6779
    '''
6780
    :ivar NodeId: 
6781
    :vartype NodeId: NodeId 
6782
    :ivar AttributeId: 
6783
    :vartype AttributeId: UInt32 
6784
    :ivar IndexRange: 
6785
    :vartype IndexRange: String 
6786
    :ivar DataEncoding: 
6787
    :vartype DataEncoding: QualifiedName 
6788
    '''
6789 1
    def __init__(self):
6790 1
        self.NodeId = NodeId()
6791 1
        self.AttributeId = 0
6792 1
        self.IndexRange = ''
6793 1
        self.DataEncoding = QualifiedName()
6794 1
        self._freeze()
6795
    
6796 1
    def to_binary(self):
6797 1
        packet = []
6798 1
        packet.append(self.NodeId.to_binary())
6799 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
6800 1
        packet.append(pack_uatype('String', self.IndexRange))
6801 1
        packet.append(self.DataEncoding.to_binary())
6802 1
        return b''.join(packet)
6803
        
6804 1
    @staticmethod
6805
    def from_binary(data):
6806 1
        obj = ReadValueId()
6807 1
        obj.NodeId = NodeId.from_binary(data)
6808 1
        obj.AttributeId = unpack_uatype('UInt32', data)
6809 1
        obj.IndexRange = unpack_uatype('String', data)
6810 1
        obj.DataEncoding = QualifiedName.from_binary(data)
6811 1
        return obj
6812
    
6813 1
    def __str__(self):
6814
        return 'ReadValueId(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6815
             'AttributeId:' + str(self.AttributeId) + ', '  + \
6816
             'IndexRange:' + str(self.IndexRange) + ', '  + \
6817
             'DataEncoding:' + str(self.DataEncoding) + ')'
6818
    
6819 1
    __repr__ = __str__
6820
    
6821 1
class ReadParameters(FrozenClass):
6822
    '''
6823
    :ivar MaxAge: 
6824
    :vartype MaxAge: Double 
6825
    :ivar TimestampsToReturn: 
6826
    :vartype TimestampsToReturn: TimestampsToReturn 
6827
    :ivar NodesToRead: 
6828
    :vartype NodesToRead: ReadValueId 
6829
    '''
6830 1
    def __init__(self):
6831 1
        self.MaxAge = 0
6832 1
        self.TimestampsToReturn = 0
6833 1
        self.NodesToRead = []
6834 1
        self._freeze()
6835
    
6836 1
    def to_binary(self):
6837 1
        packet = []
6838 1
        packet.append(pack_uatype('Double', self.MaxAge))
6839 1
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
6840 1
        packet.append(struct.pack('<i', len(self.NodesToRead)))
6841 1
        for fieldname in self.NodesToRead:
6842 1
            packet.append(fieldname.to_binary())
6843 1
        return b''.join(packet)
6844
        
6845 1
    @staticmethod
6846
    def from_binary(data):
6847 1
        obj = ReadParameters()
6848 1
        obj.MaxAge = unpack_uatype('Double', data)
6849 1
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
6850 1
        length = struct.unpack('<i', data.read(4))[0]
6851 1
        if length != -1:
6852 1
            for _ in range(0, length):
6853 1
                obj.NodesToRead.append(ReadValueId.from_binary(data))
6854 1
        return obj
6855
    
6856 1
    def __str__(self):
6857
        return 'ReadParameters(' + 'MaxAge:' + str(self.MaxAge) + ', '  + \
6858
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
6859
             'NodesToRead:' + str(self.NodesToRead) + ')'
6860
    
6861 1
    __repr__ = __str__
6862
    
6863 1
class ReadRequest(FrozenClass):
6864
    '''
6865
    :ivar TypeId: 
6866
    :vartype TypeId: NodeId 
6867
    :ivar RequestHeader: 
6868
    :vartype RequestHeader: RequestHeader 
6869
    :ivar Parameters: 
6870
    :vartype Parameters: ReadParameters 
6871
    '''
6872 1
    def __init__(self):
6873 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadRequest_Encoding_DefaultBinary)
6874 1
        self.RequestHeader = RequestHeader()
6875 1
        self.Parameters = ReadParameters()
6876 1
        self._freeze()
6877
    
6878 1
    def to_binary(self):
6879 1
        packet = []
6880 1
        packet.append(self.TypeId.to_binary())
6881 1
        packet.append(self.RequestHeader.to_binary())
6882 1
        packet.append(self.Parameters.to_binary())
6883 1
        return b''.join(packet)
6884
        
6885 1
    @staticmethod
6886
    def from_binary(data):
6887
        obj = ReadRequest()
6888
        obj.TypeId = NodeId.from_binary(data)
6889
        obj.RequestHeader = RequestHeader.from_binary(data)
6890
        obj.Parameters = ReadParameters.from_binary(data)
6891
        return obj
6892
    
6893 1
    def __str__(self):
6894
        return 'ReadRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6895
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
6896
             'Parameters:' + str(self.Parameters) + ')'
6897
    
6898 1
    __repr__ = __str__
6899
    
6900 1
class ReadResponse(FrozenClass):
6901
    '''
6902
    :ivar TypeId: 
6903
    :vartype TypeId: NodeId 
6904
    :ivar ResponseHeader: 
6905
    :vartype ResponseHeader: ResponseHeader 
6906
    :ivar Results: 
6907
    :vartype Results: DataValue 
6908
    :ivar DiagnosticInfos: 
6909
    :vartype DiagnosticInfos: DiagnosticInfo 
6910
    '''
6911 1
    def __init__(self):
6912 1
        self.TypeId = FourByteNodeId(ObjectIds.ReadResponse_Encoding_DefaultBinary)
6913 1
        self.ResponseHeader = ResponseHeader()
6914 1
        self.Results = []
6915 1
        self.DiagnosticInfos = []
6916 1
        self._freeze()
6917
    
6918 1
    def to_binary(self):
6919 1
        packet = []
6920 1
        packet.append(self.TypeId.to_binary())
6921 1
        packet.append(self.ResponseHeader.to_binary())
6922 1
        packet.append(struct.pack('<i', len(self.Results)))
6923 1
        for fieldname in self.Results:
6924 1
            packet.append(fieldname.to_binary())
6925 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
6926 1
        for fieldname in self.DiagnosticInfos:
6927
            packet.append(fieldname.to_binary())
6928 1
        return b''.join(packet)
6929
        
6930 1
    @staticmethod
6931
    def from_binary(data):
6932 1
        obj = ReadResponse()
6933 1
        obj.TypeId = NodeId.from_binary(data)
6934 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
6935 1
        length = struct.unpack('<i', data.read(4))[0]
6936 1
        if length != -1:
6937 1
            for _ in range(0, length):
6938 1
                obj.Results.append(DataValue.from_binary(data))
6939 1
        length = struct.unpack('<i', data.read(4))[0]
6940 1
        if length != -1:
6941 1
            for _ in range(0, length):
6942
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
6943 1
        return obj
6944
    
6945 1
    def __str__(self):
6946
        return 'ReadResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
6947
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
6948
             'Results:' + str(self.Results) + ', '  + \
6949
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
6950
    
6951 1
    __repr__ = __str__
6952
    
6953 1
class HistoryReadValueId(FrozenClass):
6954
    '''
6955
    :ivar NodeId: 
6956
    :vartype NodeId: NodeId 
6957
    :ivar IndexRange: 
6958
    :vartype IndexRange: String 
6959
    :ivar DataEncoding: 
6960
    :vartype DataEncoding: QualifiedName 
6961
    :ivar ContinuationPoint: 
6962
    :vartype ContinuationPoint: ByteString 
6963
    '''
6964 1
    def __init__(self):
6965
        self.NodeId = NodeId()
6966
        self.IndexRange = ''
6967
        self.DataEncoding = QualifiedName()
6968
        self.ContinuationPoint = b''
6969
        self._freeze()
6970
    
6971 1
    def to_binary(self):
6972
        packet = []
6973
        packet.append(self.NodeId.to_binary())
6974
        packet.append(pack_uatype('String', self.IndexRange))
6975
        packet.append(self.DataEncoding.to_binary())
6976
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
6977
        return b''.join(packet)
6978
        
6979 1
    @staticmethod
6980
    def from_binary(data):
6981
        obj = HistoryReadValueId()
6982
        obj.NodeId = NodeId.from_binary(data)
6983
        obj.IndexRange = unpack_uatype('String', data)
6984
        obj.DataEncoding = QualifiedName.from_binary(data)
6985
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
6986
        return obj
6987
    
6988 1
    def __str__(self):
6989
        return 'HistoryReadValueId(' + 'NodeId:' + str(self.NodeId) + ', '  + \
6990
             'IndexRange:' + str(self.IndexRange) + ', '  + \
6991
             'DataEncoding:' + str(self.DataEncoding) + ', '  + \
6992
             'ContinuationPoint:' + str(self.ContinuationPoint) + ')'
6993
    
6994 1
    __repr__ = __str__
6995
    
6996 1
class HistoryReadResult(FrozenClass):
6997
    '''
6998
    :ivar StatusCode: 
6999
    :vartype StatusCode: StatusCode 
7000
    :ivar ContinuationPoint: 
7001
    :vartype ContinuationPoint: ByteString 
7002
    :ivar HistoryData: 
7003
    :vartype HistoryData: ExtensionObject 
7004
    '''
7005 1
    def __init__(self):
7006
        self.StatusCode = StatusCode()
7007
        self.ContinuationPoint = b''
7008
        self.HistoryData = None
7009
        self._freeze()
7010
    
7011 1
    def to_binary(self):
7012
        packet = []
7013
        packet.append(self.StatusCode.to_binary())
7014
        packet.append(pack_uatype('ByteString', self.ContinuationPoint))
7015
        packet.append(extensionobject_to_binary(self.HistoryData))
7016
        return b''.join(packet)
7017
        
7018 1
    @staticmethod
7019
    def from_binary(data):
7020
        obj = HistoryReadResult()
7021
        obj.StatusCode = StatusCode.from_binary(data)
7022
        obj.ContinuationPoint = unpack_uatype('ByteString', data)
7023
        obj.HistoryData = extensionobject_from_binary(data)
7024
        return obj
7025
    
7026 1
    def __str__(self):
7027
        return 'HistoryReadResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
7028
             'ContinuationPoint:' + str(self.ContinuationPoint) + ', '  + \
7029
             'HistoryData:' + str(self.HistoryData) + ')'
7030
    
7031 1
    __repr__ = __str__
7032
    
7033 1
class HistoryReadDetails(FrozenClass):
7034
    '''
7035
    '''
7036 1
    def __init__(self):
7037
        self._freeze()
7038
    
7039 1
    def to_binary(self):
7040
        packet = []
7041
        return b''.join(packet)
7042
        
7043 1
    @staticmethod
7044
    def from_binary(data):
7045
        obj = HistoryReadDetails()
7046
        return obj
7047
    
7048 1
    def __str__(self):
7049
        return 'HistoryReadDetails(' +  + ')'
7050
    
7051 1
    __repr__ = __str__
7052
    
7053 1
class ReadEventDetails(FrozenClass):
7054
    '''
7055
    :ivar NumValuesPerNode: 
7056
    :vartype NumValuesPerNode: UInt32 
7057
    :ivar StartTime: 
7058
    :vartype StartTime: DateTime 
7059
    :ivar EndTime: 
7060
    :vartype EndTime: DateTime 
7061
    :ivar Filter: 
7062
    :vartype Filter: EventFilter 
7063
    '''
7064 1
    def __init__(self):
7065
        self.NumValuesPerNode = 0
7066
        self.StartTime = datetime.now()
7067
        self.EndTime = datetime.now()
7068
        self.Filter = EventFilter()
7069
        self._freeze()
7070
    
7071 1
    def to_binary(self):
7072
        packet = []
7073
        packet.append(pack_uatype('UInt32', self.NumValuesPerNode))
7074
        packet.append(pack_uatype('DateTime', self.StartTime))
7075
        packet.append(pack_uatype('DateTime', self.EndTime))
7076
        packet.append(self.Filter.to_binary())
7077
        return b''.join(packet)
7078
        
7079 1
    @staticmethod
7080
    def from_binary(data):
7081
        obj = ReadEventDetails()
7082
        obj.NumValuesPerNode = unpack_uatype('UInt32', data)
7083
        obj.StartTime = unpack_uatype('DateTime', data)
7084
        obj.EndTime = unpack_uatype('DateTime', data)
7085
        obj.Filter = EventFilter.from_binary(data)
7086
        return obj
7087
    
7088 1
    def __str__(self):
7089
        return 'ReadEventDetails(' + 'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', '  + \
7090
             'StartTime:' + str(self.StartTime) + ', '  + \
7091
             'EndTime:' + str(self.EndTime) + ', '  + \
7092
             'Filter:' + str(self.Filter) + ')'
7093
    
7094 1
    __repr__ = __str__
7095
    
7096 1
class ReadRawModifiedDetails(FrozenClass):
7097
    '''
7098
    :ivar IsReadModified: 
7099
    :vartype IsReadModified: Boolean 
7100
    :ivar StartTime: 
7101
    :vartype StartTime: DateTime 
7102
    :ivar EndTime: 
7103
    :vartype EndTime: DateTime 
7104
    :ivar NumValuesPerNode: 
7105
    :vartype NumValuesPerNode: UInt32 
7106
    :ivar ReturnBounds: 
7107
    :vartype ReturnBounds: Boolean 
7108
    '''
7109 1
    def __init__(self):
7110
        self.IsReadModified = True
7111
        self.StartTime = datetime.now()
7112
        self.EndTime = datetime.now()
7113
        self.NumValuesPerNode = 0
7114
        self.ReturnBounds = True
7115
        self._freeze()
7116
    
7117 1
    def to_binary(self):
7118
        packet = []
7119
        packet.append(pack_uatype('Boolean', self.IsReadModified))
7120
        packet.append(pack_uatype('DateTime', self.StartTime))
7121
        packet.append(pack_uatype('DateTime', self.EndTime))
7122
        packet.append(pack_uatype('UInt32', self.NumValuesPerNode))
7123
        packet.append(pack_uatype('Boolean', self.ReturnBounds))
7124
        return b''.join(packet)
7125
        
7126 1
    @staticmethod
7127
    def from_binary(data):
7128
        obj = ReadRawModifiedDetails()
7129
        obj.IsReadModified = unpack_uatype('Boolean', data)
7130
        obj.StartTime = unpack_uatype('DateTime', data)
7131
        obj.EndTime = unpack_uatype('DateTime', data)
7132
        obj.NumValuesPerNode = unpack_uatype('UInt32', data)
7133
        obj.ReturnBounds = unpack_uatype('Boolean', data)
7134
        return obj
7135
    
7136 1
    def __str__(self):
7137
        return 'ReadRawModifiedDetails(' + 'IsReadModified:' + str(self.IsReadModified) + ', '  + \
7138
             'StartTime:' + str(self.StartTime) + ', '  + \
7139
             'EndTime:' + str(self.EndTime) + ', '  + \
7140
             'NumValuesPerNode:' + str(self.NumValuesPerNode) + ', '  + \
7141
             'ReturnBounds:' + str(self.ReturnBounds) + ')'
7142
    
7143 1
    __repr__ = __str__
7144
    
7145 1
class ReadProcessedDetails(FrozenClass):
7146
    '''
7147
    :ivar StartTime: 
7148
    :vartype StartTime: DateTime 
7149
    :ivar EndTime: 
7150
    :vartype EndTime: DateTime 
7151
    :ivar ProcessingInterval: 
7152
    :vartype ProcessingInterval: Double 
7153
    :ivar AggregateType: 
7154
    :vartype AggregateType: NodeId 
7155
    :ivar AggregateConfiguration: 
7156
    :vartype AggregateConfiguration: AggregateConfiguration 
7157
    '''
7158 1
    def __init__(self):
7159
        self.StartTime = datetime.now()
7160
        self.EndTime = datetime.now()
7161
        self.ProcessingInterval = 0
7162
        self.AggregateType = []
7163
        self.AggregateConfiguration = AggregateConfiguration()
7164
        self._freeze()
7165
    
7166 1
    def to_binary(self):
7167
        packet = []
7168
        packet.append(pack_uatype('DateTime', self.StartTime))
7169
        packet.append(pack_uatype('DateTime', self.EndTime))
7170
        packet.append(pack_uatype('Double', self.ProcessingInterval))
7171
        packet.append(struct.pack('<i', len(self.AggregateType)))
7172
        for fieldname in self.AggregateType:
7173
            packet.append(fieldname.to_binary())
7174
        packet.append(self.AggregateConfiguration.to_binary())
7175
        return b''.join(packet)
7176
        
7177 1
    @staticmethod
7178
    def from_binary(data):
7179
        obj = ReadProcessedDetails()
7180
        obj.StartTime = unpack_uatype('DateTime', data)
7181
        obj.EndTime = unpack_uatype('DateTime', data)
7182
        obj.ProcessingInterval = unpack_uatype('Double', data)
7183
        length = struct.unpack('<i', data.read(4))[0]
7184
        if length != -1:
7185
            for _ in range(0, length):
7186
                obj.AggregateType.append(NodeId.from_binary(data))
7187
        obj.AggregateConfiguration = AggregateConfiguration.from_binary(data)
7188
        return obj
7189
    
7190 1
    def __str__(self):
7191
        return 'ReadProcessedDetails(' + 'StartTime:' + str(self.StartTime) + ', '  + \
7192
             'EndTime:' + str(self.EndTime) + ', '  + \
7193
             'ProcessingInterval:' + str(self.ProcessingInterval) + ', '  + \
7194
             'AggregateType:' + str(self.AggregateType) + ', '  + \
7195
             'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
7196
    
7197 1
    __repr__ = __str__
7198
    
7199 1
class ReadAtTimeDetails(FrozenClass):
7200
    '''
7201
    :ivar ReqTimes: 
7202
    :vartype ReqTimes: DateTime 
7203
    :ivar UseSimpleBounds: 
7204
    :vartype UseSimpleBounds: Boolean 
7205
    '''
7206 1
    def __init__(self):
7207
        self.ReqTimes = []
7208
        self.UseSimpleBounds = True
7209
        self._freeze()
7210
    
7211 1
    def to_binary(self):
7212
        packet = []
7213
        packet.append(struct.pack('<i', len(self.ReqTimes)))
7214
        for fieldname in self.ReqTimes:
7215
            packet.append(pack_uatype('DateTime', fieldname))
7216
        packet.append(pack_uatype('Boolean', self.UseSimpleBounds))
7217
        return b''.join(packet)
7218
        
7219 1
    @staticmethod
7220
    def from_binary(data):
7221
        obj = ReadAtTimeDetails()
7222
        obj.ReqTimes = unpack_uatype_array('DateTime', data)
7223
        obj.UseSimpleBounds = unpack_uatype('Boolean', data)
7224
        return obj
7225
    
7226 1
    def __str__(self):
7227
        return 'ReadAtTimeDetails(' + 'ReqTimes:' + str(self.ReqTimes) + ', '  + \
7228
             'UseSimpleBounds:' + str(self.UseSimpleBounds) + ')'
7229
    
7230 1
    __repr__ = __str__
7231
    
7232 1
class HistoryData(FrozenClass):
7233
    '''
7234
    :ivar DataValues: 
7235
    :vartype DataValues: DataValue 
7236
    '''
7237 1
    def __init__(self):
7238
        self.DataValues = []
7239
        self._freeze()
7240
    
7241 1
    def to_binary(self):
7242
        packet = []
7243
        packet.append(struct.pack('<i', len(self.DataValues)))
7244
        for fieldname in self.DataValues:
7245
            packet.append(fieldname.to_binary())
7246
        return b''.join(packet)
7247
        
7248 1
    @staticmethod
7249
    def from_binary(data):
7250
        obj = HistoryData()
7251
        length = struct.unpack('<i', data.read(4))[0]
7252
        if length != -1:
7253
            for _ in range(0, length):
7254
                obj.DataValues.append(DataValue.from_binary(data))
7255
        return obj
7256
    
7257 1
    def __str__(self):
7258
        return 'HistoryData(' + 'DataValues:' + str(self.DataValues) + ')'
7259
    
7260 1
    __repr__ = __str__
7261
    
7262 1
class ModificationInfo(FrozenClass):
7263
    '''
7264
    :ivar ModificationTime: 
7265
    :vartype ModificationTime: DateTime 
7266
    :ivar UpdateType: 
7267
    :vartype UpdateType: HistoryUpdateType 
7268
    :ivar UserName: 
7269
    :vartype UserName: String 
7270
    '''
7271 1
    def __init__(self):
7272
        self.ModificationTime = datetime.now()
7273
        self.UpdateType = 0
7274
        self.UserName = ''
7275
        self._freeze()
7276
    
7277 1
    def to_binary(self):
7278
        packet = []
7279
        packet.append(pack_uatype('DateTime', self.ModificationTime))
7280
        packet.append(pack_uatype('UInt32', self.UpdateType))
7281
        packet.append(pack_uatype('String', self.UserName))
7282
        return b''.join(packet)
7283
        
7284 1
    @staticmethod
7285
    def from_binary(data):
7286
        obj = ModificationInfo()
7287
        obj.ModificationTime = unpack_uatype('DateTime', data)
7288
        obj.UpdateType = unpack_uatype('UInt32', data)
7289
        obj.UserName = unpack_uatype('String', data)
7290
        return obj
7291
    
7292 1
    def __str__(self):
7293
        return 'ModificationInfo(' + 'ModificationTime:' + str(self.ModificationTime) + ', '  + \
7294
             'UpdateType:' + str(self.UpdateType) + ', '  + \
7295
             'UserName:' + str(self.UserName) + ')'
7296
    
7297 1
    __repr__ = __str__
7298
    
7299 1
class HistoryModifiedData(FrozenClass):
7300
    '''
7301
    :ivar DataValues: 
7302
    :vartype DataValues: DataValue 
7303
    :ivar ModificationInfos: 
7304
    :vartype ModificationInfos: ModificationInfo 
7305
    '''
7306 1
    def __init__(self):
7307
        self.DataValues = []
7308
        self.ModificationInfos = []
7309
        self._freeze()
7310
    
7311 1
    def to_binary(self):
7312
        packet = []
7313
        packet.append(struct.pack('<i', len(self.DataValues)))
7314
        for fieldname in self.DataValues:
7315
            packet.append(fieldname.to_binary())
7316
        packet.append(struct.pack('<i', len(self.ModificationInfos)))
7317
        for fieldname in self.ModificationInfos:
7318
            packet.append(fieldname.to_binary())
7319
        return b''.join(packet)
7320
        
7321 1
    @staticmethod
7322
    def from_binary(data):
7323
        obj = HistoryModifiedData()
7324
        length = struct.unpack('<i', data.read(4))[0]
7325
        if length != -1:
7326
            for _ in range(0, length):
7327
                obj.DataValues.append(DataValue.from_binary(data))
7328
        length = struct.unpack('<i', data.read(4))[0]
7329
        if length != -1:
7330
            for _ in range(0, length):
7331
                obj.ModificationInfos.append(ModificationInfo.from_binary(data))
7332
        return obj
7333
    
7334 1
    def __str__(self):
7335
        return 'HistoryModifiedData(' + 'DataValues:' + str(self.DataValues) + ', '  + \
7336
             'ModificationInfos:' + str(self.ModificationInfos) + ')'
7337
    
7338 1
    __repr__ = __str__
7339
    
7340 1
class HistoryEvent(FrozenClass):
7341
    '''
7342
    :ivar Events: 
7343
    :vartype Events: HistoryEventFieldList 
7344
    '''
7345 1
    def __init__(self):
7346
        self.Events = []
7347
        self._freeze()
7348
    
7349 1
    def to_binary(self):
7350
        packet = []
7351
        packet.append(struct.pack('<i', len(self.Events)))
7352
        for fieldname in self.Events:
7353
            packet.append(fieldname.to_binary())
7354
        return b''.join(packet)
7355
        
7356 1
    @staticmethod
7357
    def from_binary(data):
7358
        obj = HistoryEvent()
7359
        length = struct.unpack('<i', data.read(4))[0]
7360
        if length != -1:
7361
            for _ in range(0, length):
7362
                obj.Events.append(HistoryEventFieldList.from_binary(data))
7363
        return obj
7364
    
7365 1
    def __str__(self):
7366
        return 'HistoryEvent(' + 'Events:' + str(self.Events) + ')'
7367
    
7368 1
    __repr__ = __str__
7369
    
7370 1
class HistoryReadParameters(FrozenClass):
7371
    '''
7372
    :ivar HistoryReadDetails: 
7373
    :vartype HistoryReadDetails: ExtensionObject 
7374
    :ivar TimestampsToReturn: 
7375
    :vartype TimestampsToReturn: TimestampsToReturn 
7376
    :ivar ReleaseContinuationPoints: 
7377
    :vartype ReleaseContinuationPoints: Boolean 
7378
    :ivar NodesToRead: 
7379
    :vartype NodesToRead: HistoryReadValueId 
7380
    '''
7381 1
    def __init__(self):
7382
        self.HistoryReadDetails = None
7383
        self.TimestampsToReturn = 0
7384
        self.ReleaseContinuationPoints = True
7385
        self.NodesToRead = []
7386
        self._freeze()
7387
    
7388 1
    def to_binary(self):
7389
        packet = []
7390
        packet.append(extensionobject_to_binary(self.HistoryReadDetails))
7391
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
7392
        packet.append(pack_uatype('Boolean', self.ReleaseContinuationPoints))
7393
        packet.append(struct.pack('<i', len(self.NodesToRead)))
7394
        for fieldname in self.NodesToRead:
7395
            packet.append(fieldname.to_binary())
7396
        return b''.join(packet)
7397
        
7398 1
    @staticmethod
7399
    def from_binary(data):
7400
        obj = HistoryReadParameters()
7401
        obj.HistoryReadDetails = extensionobject_from_binary(data)
7402
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
7403
        obj.ReleaseContinuationPoints = unpack_uatype('Boolean', data)
7404
        length = struct.unpack('<i', data.read(4))[0]
7405
        if length != -1:
7406
            for _ in range(0, length):
7407
                obj.NodesToRead.append(HistoryReadValueId.from_binary(data))
7408
        return obj
7409
    
7410 1
    def __str__(self):
7411
        return 'HistoryReadParameters(' + 'HistoryReadDetails:' + str(self.HistoryReadDetails) + ', '  + \
7412
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
7413
             'ReleaseContinuationPoints:' + str(self.ReleaseContinuationPoints) + ', '  + \
7414
             'NodesToRead:' + str(self.NodesToRead) + ')'
7415
    
7416 1
    __repr__ = __str__
7417
    
7418 1
class HistoryReadRequest(FrozenClass):
7419
    '''
7420
    :ivar TypeId: 
7421
    :vartype TypeId: NodeId 
7422
    :ivar RequestHeader: 
7423
    :vartype RequestHeader: RequestHeader 
7424
    :ivar Parameters: 
7425
    :vartype Parameters: HistoryReadParameters 
7426
    '''
7427 1
    def __init__(self):
7428
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadRequest_Encoding_DefaultBinary)
7429
        self.RequestHeader = RequestHeader()
7430
        self.Parameters = HistoryReadParameters()
7431
        self._freeze()
7432
    
7433 1
    def to_binary(self):
7434
        packet = []
7435
        packet.append(self.TypeId.to_binary())
7436
        packet.append(self.RequestHeader.to_binary())
7437
        packet.append(self.Parameters.to_binary())
7438
        return b''.join(packet)
7439
        
7440 1
    @staticmethod
7441
    def from_binary(data):
7442
        obj = HistoryReadRequest()
7443
        obj.TypeId = NodeId.from_binary(data)
7444
        obj.RequestHeader = RequestHeader.from_binary(data)
7445
        obj.Parameters = HistoryReadParameters.from_binary(data)
7446
        return obj
7447
    
7448 1
    def __str__(self):
7449
        return 'HistoryReadRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7450
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
7451
             'Parameters:' + str(self.Parameters) + ')'
7452
    
7453 1
    __repr__ = __str__
7454
    
7455 1
class HistoryReadResponse(FrozenClass):
7456
    '''
7457
    :ivar TypeId: 
7458
    :vartype TypeId: NodeId 
7459
    :ivar ResponseHeader: 
7460
    :vartype ResponseHeader: ResponseHeader 
7461
    :ivar Results: 
7462
    :vartype Results: HistoryReadResult 
7463
    :ivar DiagnosticInfos: 
7464
    :vartype DiagnosticInfos: DiagnosticInfo 
7465
    '''
7466 1
    def __init__(self):
7467
        self.TypeId = FourByteNodeId(ObjectIds.HistoryReadResponse_Encoding_DefaultBinary)
7468
        self.ResponseHeader = ResponseHeader()
7469
        self.Results = []
7470
        self.DiagnosticInfos = []
7471
        self._freeze()
7472
    
7473 1
    def to_binary(self):
7474
        packet = []
7475
        packet.append(self.TypeId.to_binary())
7476
        packet.append(self.ResponseHeader.to_binary())
7477
        packet.append(struct.pack('<i', len(self.Results)))
7478
        for fieldname in self.Results:
7479
            packet.append(fieldname.to_binary())
7480
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7481
        for fieldname in self.DiagnosticInfos:
7482
            packet.append(fieldname.to_binary())
7483
        return b''.join(packet)
7484
        
7485 1
    @staticmethod
7486
    def from_binary(data):
7487
        obj = HistoryReadResponse()
7488
        obj.TypeId = NodeId.from_binary(data)
7489
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7490
        length = struct.unpack('<i', data.read(4))[0]
7491
        if length != -1:
7492
            for _ in range(0, length):
7493
                obj.Results.append(HistoryReadResult.from_binary(data))
7494
        length = struct.unpack('<i', data.read(4))[0]
7495
        if length != -1:
7496
            for _ in range(0, length):
7497
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7498
        return obj
7499
    
7500 1
    def __str__(self):
7501
        return 'HistoryReadResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7502
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
7503
             'Results:' + str(self.Results) + ', '  + \
7504
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7505
    
7506 1
    __repr__ = __str__
7507
    
7508 1
class WriteValue(FrozenClass):
7509
    '''
7510
    :ivar NodeId: 
7511
    :vartype NodeId: NodeId 
7512
    :ivar AttributeId: 
7513
    :vartype AttributeId: UInt32 
7514
    :ivar IndexRange: 
7515
    :vartype IndexRange: String 
7516
    :ivar Value: 
7517
    :vartype Value: DataValue 
7518
    '''
7519 1
    def __init__(self):
7520 1
        self.NodeId = NodeId()
7521 1
        self.AttributeId = 0
7522 1
        self.IndexRange = ''
7523 1
        self.Value = DataValue()
7524 1
        self._freeze()
7525
    
7526 1
    def to_binary(self):
7527 1
        packet = []
7528 1
        packet.append(self.NodeId.to_binary())
7529 1
        packet.append(pack_uatype('UInt32', self.AttributeId))
7530 1
        packet.append(pack_uatype('String', self.IndexRange))
7531 1
        packet.append(self.Value.to_binary())
7532 1
        return b''.join(packet)
7533
        
7534 1
    @staticmethod
7535
    def from_binary(data):
7536 1
        obj = WriteValue()
7537 1
        obj.NodeId = NodeId.from_binary(data)
7538 1
        obj.AttributeId = unpack_uatype('UInt32', data)
7539 1
        obj.IndexRange = unpack_uatype('String', data)
7540 1
        obj.Value = DataValue.from_binary(data)
7541 1
        return obj
7542
    
7543 1
    def __str__(self):
7544
        return 'WriteValue(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7545
             'AttributeId:' + str(self.AttributeId) + ', '  + \
7546
             'IndexRange:' + str(self.IndexRange) + ', '  + \
7547
             'Value:' + str(self.Value) + ')'
7548
    
7549 1
    __repr__ = __str__
7550
    
7551 1
class WriteParameters(FrozenClass):
7552
    '''
7553
    :ivar NodesToWrite: 
7554
    :vartype NodesToWrite: WriteValue 
7555
    '''
7556 1
    def __init__(self):
7557 1
        self.NodesToWrite = []
7558 1
        self._freeze()
7559
    
7560 1
    def to_binary(self):
7561 1
        packet = []
7562 1
        packet.append(struct.pack('<i', len(self.NodesToWrite)))
7563 1
        for fieldname in self.NodesToWrite:
7564 1
            packet.append(fieldname.to_binary())
7565 1
        return b''.join(packet)
7566
        
7567 1
    @staticmethod
7568
    def from_binary(data):
7569 1
        obj = WriteParameters()
7570 1
        length = struct.unpack('<i', data.read(4))[0]
7571 1
        if length != -1:
7572 1
            for _ in range(0, length):
7573 1
                obj.NodesToWrite.append(WriteValue.from_binary(data))
7574 1
        return obj
7575
    
7576 1
    def __str__(self):
7577
        return 'WriteParameters(' + 'NodesToWrite:' + str(self.NodesToWrite) + ')'
7578
    
7579 1
    __repr__ = __str__
7580
    
7581 1
class WriteRequest(FrozenClass):
7582
    '''
7583
    :ivar TypeId: 
7584
    :vartype TypeId: NodeId 
7585
    :ivar RequestHeader: 
7586
    :vartype RequestHeader: RequestHeader 
7587
    :ivar Parameters: 
7588
    :vartype Parameters: WriteParameters 
7589
    '''
7590 1
    def __init__(self):
7591 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteRequest_Encoding_DefaultBinary)
7592 1
        self.RequestHeader = RequestHeader()
7593 1
        self.Parameters = WriteParameters()
7594 1
        self._freeze()
7595
    
7596 1
    def to_binary(self):
7597 1
        packet = []
7598 1
        packet.append(self.TypeId.to_binary())
7599 1
        packet.append(self.RequestHeader.to_binary())
7600 1
        packet.append(self.Parameters.to_binary())
7601 1
        return b''.join(packet)
7602
        
7603 1
    @staticmethod
7604
    def from_binary(data):
7605
        obj = WriteRequest()
7606
        obj.TypeId = NodeId.from_binary(data)
7607
        obj.RequestHeader = RequestHeader.from_binary(data)
7608
        obj.Parameters = WriteParameters.from_binary(data)
7609
        return obj
7610
    
7611 1
    def __str__(self):
7612
        return 'WriteRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7613
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
7614
             'Parameters:' + str(self.Parameters) + ')'
7615
    
7616 1
    __repr__ = __str__
7617
    
7618 1
class WriteResponse(FrozenClass):
7619
    '''
7620
    :ivar TypeId: 
7621
    :vartype TypeId: NodeId 
7622
    :ivar ResponseHeader: 
7623
    :vartype ResponseHeader: ResponseHeader 
7624
    :ivar Results: 
7625
    :vartype Results: StatusCode 
7626
    :ivar DiagnosticInfos: 
7627
    :vartype DiagnosticInfos: DiagnosticInfo 
7628
    '''
7629 1
    def __init__(self):
7630 1
        self.TypeId = FourByteNodeId(ObjectIds.WriteResponse_Encoding_DefaultBinary)
7631 1
        self.ResponseHeader = ResponseHeader()
7632 1
        self.Results = []
7633 1
        self.DiagnosticInfos = []
7634 1
        self._freeze()
7635
    
7636 1
    def to_binary(self):
7637 1
        packet = []
7638 1
        packet.append(self.TypeId.to_binary())
7639 1
        packet.append(self.ResponseHeader.to_binary())
7640 1
        packet.append(struct.pack('<i', len(self.Results)))
7641 1
        for fieldname in self.Results:
7642 1
            packet.append(fieldname.to_binary())
7643 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7644 1
        for fieldname in self.DiagnosticInfos:
7645
            packet.append(fieldname.to_binary())
7646 1
        return b''.join(packet)
7647
        
7648 1
    @staticmethod
7649
    def from_binary(data):
7650 1
        obj = WriteResponse()
7651 1
        obj.TypeId = NodeId.from_binary(data)
7652 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
7653 1
        length = struct.unpack('<i', data.read(4))[0]
7654 1
        if length != -1:
7655 1
            for _ in range(0, length):
7656 1
                obj.Results.append(StatusCode.from_binary(data))
7657 1
        length = struct.unpack('<i', data.read(4))[0]
7658 1
        if length != -1:
7659 1
            for _ in range(0, length):
7660
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7661 1
        return obj
7662
    
7663 1
    def __str__(self):
7664
        return 'WriteResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
7665
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
7666
             'Results:' + str(self.Results) + ', '  + \
7667
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7668
    
7669 1
    __repr__ = __str__
7670
    
7671 1
class HistoryUpdateDetails(FrozenClass):
7672
    '''
7673
    :ivar NodeId: 
7674
    :vartype NodeId: NodeId 
7675
    '''
7676 1
    def __init__(self):
7677
        self.NodeId = NodeId()
7678
        self._freeze()
7679
    
7680 1
    def to_binary(self):
7681
        packet = []
7682
        packet.append(self.NodeId.to_binary())
7683
        return b''.join(packet)
7684
        
7685 1
    @staticmethod
7686
    def from_binary(data):
7687
        obj = HistoryUpdateDetails()
7688
        obj.NodeId = NodeId.from_binary(data)
7689
        return obj
7690
    
7691 1
    def __str__(self):
7692
        return 'HistoryUpdateDetails(' + 'NodeId:' + str(self.NodeId) + ')'
7693
    
7694 1
    __repr__ = __str__
7695
    
7696 1
class UpdateDataDetails(FrozenClass):
7697
    '''
7698
    :ivar NodeId: 
7699
    :vartype NodeId: NodeId 
7700
    :ivar PerformInsertReplace: 
7701
    :vartype PerformInsertReplace: PerformUpdateType 
7702
    :ivar UpdateValues: 
7703
    :vartype UpdateValues: DataValue 
7704
    '''
7705 1
    def __init__(self):
7706
        self.NodeId = NodeId()
7707
        self.PerformInsertReplace = 0
7708
        self.UpdateValues = []
7709
        self._freeze()
7710
    
7711 1
    def to_binary(self):
7712
        packet = []
7713
        packet.append(self.NodeId.to_binary())
7714
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7715
        packet.append(struct.pack('<i', len(self.UpdateValues)))
7716
        for fieldname in self.UpdateValues:
7717
            packet.append(fieldname.to_binary())
7718
        return b''.join(packet)
7719
        
7720 1
    @staticmethod
7721
    def from_binary(data):
7722
        obj = UpdateDataDetails()
7723
        obj.NodeId = NodeId.from_binary(data)
7724
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7725
        length = struct.unpack('<i', data.read(4))[0]
7726
        if length != -1:
7727
            for _ in range(0, length):
7728
                obj.UpdateValues.append(DataValue.from_binary(data))
7729
        return obj
7730
    
7731 1
    def __str__(self):
7732
        return 'UpdateDataDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7733
             'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', '  + \
7734
             'UpdateValues:' + str(self.UpdateValues) + ')'
7735
    
7736 1
    __repr__ = __str__
7737
    
7738 1
class UpdateStructureDataDetails(FrozenClass):
7739
    '''
7740
    :ivar NodeId: 
7741
    :vartype NodeId: NodeId 
7742
    :ivar PerformInsertReplace: 
7743
    :vartype PerformInsertReplace: PerformUpdateType 
7744
    :ivar UpdateValues: 
7745
    :vartype UpdateValues: DataValue 
7746
    '''
7747 1
    def __init__(self):
7748
        self.NodeId = NodeId()
7749
        self.PerformInsertReplace = 0
7750
        self.UpdateValues = []
7751
        self._freeze()
7752
    
7753 1
    def to_binary(self):
7754
        packet = []
7755
        packet.append(self.NodeId.to_binary())
7756
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7757
        packet.append(struct.pack('<i', len(self.UpdateValues)))
7758
        for fieldname in self.UpdateValues:
7759
            packet.append(fieldname.to_binary())
7760
        return b''.join(packet)
7761
        
7762 1
    @staticmethod
7763
    def from_binary(data):
7764
        obj = UpdateStructureDataDetails()
7765
        obj.NodeId = NodeId.from_binary(data)
7766
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7767
        length = struct.unpack('<i', data.read(4))[0]
7768
        if length != -1:
7769
            for _ in range(0, length):
7770
                obj.UpdateValues.append(DataValue.from_binary(data))
7771
        return obj
7772
    
7773 1
    def __str__(self):
7774
        return 'UpdateStructureDataDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7775
             'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', '  + \
7776
             'UpdateValues:' + str(self.UpdateValues) + ')'
7777
    
7778 1
    __repr__ = __str__
7779
    
7780 1
class UpdateEventDetails(FrozenClass):
7781
    '''
7782
    :ivar NodeId: 
7783
    :vartype NodeId: NodeId 
7784
    :ivar PerformInsertReplace: 
7785
    :vartype PerformInsertReplace: PerformUpdateType 
7786
    :ivar Filter: 
7787
    :vartype Filter: EventFilter 
7788
    :ivar EventData: 
7789
    :vartype EventData: HistoryEventFieldList 
7790
    '''
7791 1
    def __init__(self):
7792
        self.NodeId = NodeId()
7793
        self.PerformInsertReplace = 0
7794
        self.Filter = EventFilter()
7795
        self.EventData = []
7796
        self._freeze()
7797
    
7798 1
    def to_binary(self):
7799
        packet = []
7800
        packet.append(self.NodeId.to_binary())
7801
        packet.append(pack_uatype('UInt32', self.PerformInsertReplace))
7802
        packet.append(self.Filter.to_binary())
7803
        packet.append(struct.pack('<i', len(self.EventData)))
7804
        for fieldname in self.EventData:
7805
            packet.append(fieldname.to_binary())
7806
        return b''.join(packet)
7807
        
7808 1
    @staticmethod
7809
    def from_binary(data):
7810
        obj = UpdateEventDetails()
7811
        obj.NodeId = NodeId.from_binary(data)
7812
        obj.PerformInsertReplace = unpack_uatype('UInt32', data)
7813
        obj.Filter = EventFilter.from_binary(data)
7814
        length = struct.unpack('<i', data.read(4))[0]
7815
        if length != -1:
7816
            for _ in range(0, length):
7817
                obj.EventData.append(HistoryEventFieldList.from_binary(data))
7818
        return obj
7819
    
7820 1
    def __str__(self):
7821
        return 'UpdateEventDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7822
             'PerformInsertReplace:' + str(self.PerformInsertReplace) + ', '  + \
7823
             'Filter:' + str(self.Filter) + ', '  + \
7824
             'EventData:' + str(self.EventData) + ')'
7825
    
7826 1
    __repr__ = __str__
7827
    
7828 1
class DeleteRawModifiedDetails(FrozenClass):
7829
    '''
7830
    :ivar NodeId: 
7831
    :vartype NodeId: NodeId 
7832
    :ivar IsDeleteModified: 
7833
    :vartype IsDeleteModified: Boolean 
7834
    :ivar StartTime: 
7835
    :vartype StartTime: DateTime 
7836
    :ivar EndTime: 
7837
    :vartype EndTime: DateTime 
7838
    '''
7839 1
    def __init__(self):
7840
        self.NodeId = NodeId()
7841
        self.IsDeleteModified = True
7842
        self.StartTime = datetime.now()
7843
        self.EndTime = datetime.now()
7844
        self._freeze()
7845
    
7846 1
    def to_binary(self):
7847
        packet = []
7848
        packet.append(self.NodeId.to_binary())
7849
        packet.append(pack_uatype('Boolean', self.IsDeleteModified))
7850
        packet.append(pack_uatype('DateTime', self.StartTime))
7851
        packet.append(pack_uatype('DateTime', self.EndTime))
7852
        return b''.join(packet)
7853
        
7854 1
    @staticmethod
7855
    def from_binary(data):
7856
        obj = DeleteRawModifiedDetails()
7857
        obj.NodeId = NodeId.from_binary(data)
7858
        obj.IsDeleteModified = unpack_uatype('Boolean', data)
7859
        obj.StartTime = unpack_uatype('DateTime', data)
7860
        obj.EndTime = unpack_uatype('DateTime', data)
7861
        return obj
7862
    
7863 1
    def __str__(self):
7864
        return 'DeleteRawModifiedDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7865
             'IsDeleteModified:' + str(self.IsDeleteModified) + ', '  + \
7866
             'StartTime:' + str(self.StartTime) + ', '  + \
7867
             'EndTime:' + str(self.EndTime) + ')'
7868
    
7869 1
    __repr__ = __str__
7870
    
7871 1
class DeleteAtTimeDetails(FrozenClass):
7872
    '''
7873
    :ivar NodeId: 
7874
    :vartype NodeId: NodeId 
7875
    :ivar ReqTimes: 
7876
    :vartype ReqTimes: DateTime 
7877
    '''
7878 1
    def __init__(self):
7879
        self.NodeId = NodeId()
7880
        self.ReqTimes = []
7881
        self._freeze()
7882
    
7883 1
    def to_binary(self):
7884
        packet = []
7885
        packet.append(self.NodeId.to_binary())
7886
        packet.append(struct.pack('<i', len(self.ReqTimes)))
7887
        for fieldname in self.ReqTimes:
7888
            packet.append(pack_uatype('DateTime', fieldname))
7889
        return b''.join(packet)
7890
        
7891 1
    @staticmethod
7892
    def from_binary(data):
7893
        obj = DeleteAtTimeDetails()
7894
        obj.NodeId = NodeId.from_binary(data)
7895
        obj.ReqTimes = unpack_uatype_array('DateTime', data)
7896
        return obj
7897
    
7898 1
    def __str__(self):
7899
        return 'DeleteAtTimeDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7900
             'ReqTimes:' + str(self.ReqTimes) + ')'
7901
    
7902 1
    __repr__ = __str__
7903
    
7904 1
class DeleteEventDetails(FrozenClass):
7905
    '''
7906
    :ivar NodeId: 
7907
    :vartype NodeId: NodeId 
7908
    :ivar EventIds: 
7909
    :vartype EventIds: ByteString 
7910
    '''
7911 1
    def __init__(self):
7912
        self.NodeId = NodeId()
7913
        self.EventIds = []
7914
        self._freeze()
7915
    
7916 1
    def to_binary(self):
7917
        packet = []
7918
        packet.append(self.NodeId.to_binary())
7919
        packet.append(struct.pack('<i', len(self.EventIds)))
7920
        for fieldname in self.EventIds:
7921
            packet.append(pack_uatype('ByteString', fieldname))
7922
        return b''.join(packet)
7923
        
7924 1
    @staticmethod
7925
    def from_binary(data):
7926
        obj = DeleteEventDetails()
7927
        obj.NodeId = NodeId.from_binary(data)
7928
        obj.EventIds = unpack_uatype_array('ByteString', data)
7929
        return obj
7930
    
7931 1
    def __str__(self):
7932
        return 'DeleteEventDetails(' + 'NodeId:' + str(self.NodeId) + ', '  + \
7933
             'EventIds:' + str(self.EventIds) + ')'
7934
    
7935 1
    __repr__ = __str__
7936
    
7937 1
class HistoryUpdateResult(FrozenClass):
7938
    '''
7939
    :ivar StatusCode: 
7940
    :vartype StatusCode: StatusCode 
7941
    :ivar OperationResults: 
7942
    :vartype OperationResults: StatusCode 
7943
    :ivar DiagnosticInfos: 
7944
    :vartype DiagnosticInfos: DiagnosticInfo 
7945
    '''
7946 1
    def __init__(self):
7947
        self.StatusCode = StatusCode()
7948
        self.OperationResults = []
7949
        self.DiagnosticInfos = []
7950
        self._freeze()
7951
    
7952 1
    def to_binary(self):
7953
        packet = []
7954
        packet.append(self.StatusCode.to_binary())
7955
        packet.append(struct.pack('<i', len(self.OperationResults)))
7956
        for fieldname in self.OperationResults:
7957
            packet.append(fieldname.to_binary())
7958
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
7959
        for fieldname in self.DiagnosticInfos:
7960
            packet.append(fieldname.to_binary())
7961
        return b''.join(packet)
7962
        
7963 1
    @staticmethod
7964
    def from_binary(data):
7965
        obj = HistoryUpdateResult()
7966
        obj.StatusCode = StatusCode.from_binary(data)
7967
        length = struct.unpack('<i', data.read(4))[0]
7968
        if length != -1:
7969
            for _ in range(0, length):
7970
                obj.OperationResults.append(StatusCode.from_binary(data))
7971
        length = struct.unpack('<i', data.read(4))[0]
7972
        if length != -1:
7973
            for _ in range(0, length):
7974
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
7975
        return obj
7976
    
7977 1
    def __str__(self):
7978
        return 'HistoryUpdateResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
7979
             'OperationResults:' + str(self.OperationResults) + ', '  + \
7980
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
7981
    
7982 1
    __repr__ = __str__
7983
    
7984 1
class HistoryUpdateParameters(FrozenClass):
7985
    '''
7986
    :ivar HistoryUpdateDetails: 
7987
    :vartype HistoryUpdateDetails: ExtensionObject 
7988
    '''
7989 1
    def __init__(self):
7990
        self.HistoryUpdateDetails = []
7991
        self._freeze()
7992
    
7993 1
    def to_binary(self):
7994
        packet = []
7995
        packet.append(struct.pack('<i', len(self.HistoryUpdateDetails)))
7996
        for fieldname in self.HistoryUpdateDetails:
7997
            packet.append(extensionobject_to_binary(fieldname))
7998
        return b''.join(packet)
7999
        
8000 1
    @staticmethod
8001
    def from_binary(data):
8002
        obj = HistoryUpdateParameters()
8003
        length = struct.unpack('<i', data.read(4))[0]
8004
        if length != -1:
8005
            for _ in range(0, length):
8006
                obj.HistoryUpdateDetails.append(extensionobject_from_binary(data))
8007
        return obj
8008
    
8009 1
    def __str__(self):
8010
        return 'HistoryUpdateParameters(' + 'HistoryUpdateDetails:' + str(self.HistoryUpdateDetails) + ')'
8011
    
8012 1
    __repr__ = __str__
8013
    
8014 1
class HistoryUpdateRequest(FrozenClass):
8015
    '''
8016
    :ivar TypeId: 
8017
    :vartype TypeId: NodeId 
8018
    :ivar RequestHeader: 
8019
    :vartype RequestHeader: RequestHeader 
8020
    :ivar Parameters: 
8021
    :vartype Parameters: HistoryUpdateParameters 
8022
    '''
8023 1
    def __init__(self):
8024
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary)
8025
        self.RequestHeader = RequestHeader()
8026
        self.Parameters = HistoryUpdateParameters()
8027
        self._freeze()
8028
    
8029 1
    def to_binary(self):
8030
        packet = []
8031
        packet.append(self.TypeId.to_binary())
8032
        packet.append(self.RequestHeader.to_binary())
8033
        packet.append(self.Parameters.to_binary())
8034
        return b''.join(packet)
8035
        
8036 1
    @staticmethod
8037
    def from_binary(data):
8038
        obj = HistoryUpdateRequest()
8039
        obj.TypeId = NodeId.from_binary(data)
8040
        obj.RequestHeader = RequestHeader.from_binary(data)
8041
        obj.Parameters = HistoryUpdateParameters.from_binary(data)
8042
        return obj
8043
    
8044 1
    def __str__(self):
8045
        return 'HistoryUpdateRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8046
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
8047
             'Parameters:' + str(self.Parameters) + ')'
8048
    
8049 1
    __repr__ = __str__
8050
    
8051 1
class HistoryUpdateResponse(FrozenClass):
8052
    '''
8053
    :ivar TypeId: 
8054
    :vartype TypeId: NodeId 
8055
    :ivar ResponseHeader: 
8056
    :vartype ResponseHeader: ResponseHeader 
8057
    :ivar Results: 
8058
    :vartype Results: HistoryUpdateResult 
8059
    :ivar DiagnosticInfos: 
8060
    :vartype DiagnosticInfos: DiagnosticInfo 
8061
    '''
8062 1
    def __init__(self):
8063
        self.TypeId = FourByteNodeId(ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary)
8064
        self.ResponseHeader = ResponseHeader()
8065
        self.Results = []
8066
        self.DiagnosticInfos = []
8067
        self._freeze()
8068
    
8069 1
    def to_binary(self):
8070
        packet = []
8071
        packet.append(self.TypeId.to_binary())
8072
        packet.append(self.ResponseHeader.to_binary())
8073
        packet.append(struct.pack('<i', len(self.Results)))
8074
        for fieldname in self.Results:
8075
            packet.append(fieldname.to_binary())
8076
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8077
        for fieldname in self.DiagnosticInfos:
8078
            packet.append(fieldname.to_binary())
8079
        return b''.join(packet)
8080
        
8081 1
    @staticmethod
8082
    def from_binary(data):
8083
        obj = HistoryUpdateResponse()
8084
        obj.TypeId = NodeId.from_binary(data)
8085
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8086
        length = struct.unpack('<i', data.read(4))[0]
8087
        if length != -1:
8088
            for _ in range(0, length):
8089
                obj.Results.append(HistoryUpdateResult.from_binary(data))
8090
        length = struct.unpack('<i', data.read(4))[0]
8091
        if length != -1:
8092
            for _ in range(0, length):
8093
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8094
        return obj
8095
    
8096 1
    def __str__(self):
8097
        return 'HistoryUpdateResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8098
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
8099
             'Results:' + str(self.Results) + ', '  + \
8100
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8101
    
8102 1
    __repr__ = __str__
8103
    
8104 1
class CallMethodRequest(FrozenClass):
8105
    '''
8106
    :ivar ObjectId: 
8107
    :vartype ObjectId: NodeId 
8108
    :ivar MethodId: 
8109
    :vartype MethodId: NodeId 
8110
    :ivar InputArguments: 
8111
    :vartype InputArguments: Variant 
8112
    '''
8113 1
    def __init__(self):
8114 1
        self.ObjectId = NodeId()
8115 1
        self.MethodId = NodeId()
8116 1
        self.InputArguments = []
8117 1
        self._freeze()
8118
    
8119 1
    def to_binary(self):
8120 1
        packet = []
8121 1
        packet.append(self.ObjectId.to_binary())
8122 1
        packet.append(self.MethodId.to_binary())
8123 1
        packet.append(struct.pack('<i', len(self.InputArguments)))
8124 1
        for fieldname in self.InputArguments:
8125 1
            packet.append(fieldname.to_binary())
8126 1
        return b''.join(packet)
8127
        
8128 1
    @staticmethod
8129
    def from_binary(data):
8130 1
        obj = CallMethodRequest()
8131 1
        obj.ObjectId = NodeId.from_binary(data)
8132 1
        obj.MethodId = NodeId.from_binary(data)
8133 1
        length = struct.unpack('<i', data.read(4))[0]
8134 1
        if length != -1:
8135 1
            for _ in range(0, length):
8136 1
                obj.InputArguments.append(Variant.from_binary(data))
8137 1
        return obj
8138
    
8139 1
    def __str__(self):
8140 1
        return 'CallMethodRequest(' + 'ObjectId:' + str(self.ObjectId) + ', '  + \
8141
             'MethodId:' + str(self.MethodId) + ', '  + \
8142
             'InputArguments:' + str(self.InputArguments) + ')'
8143
    
8144 1
    __repr__ = __str__
8145
    
8146 1
class CallMethodResult(FrozenClass):
8147
    '''
8148
    :ivar StatusCode: 
8149
    :vartype StatusCode: StatusCode 
8150
    :ivar InputArgumentResults: 
8151
    :vartype InputArgumentResults: StatusCode 
8152
    :ivar InputArgumentDiagnosticInfos: 
8153
    :vartype InputArgumentDiagnosticInfos: DiagnosticInfo 
8154
    :ivar OutputArguments: 
8155
    :vartype OutputArguments: Variant 
8156
    '''
8157 1
    def __init__(self):
8158 1
        self.StatusCode = StatusCode()
8159 1
        self.InputArgumentResults = []
8160 1
        self.InputArgumentDiagnosticInfos = []
8161 1
        self.OutputArguments = []
8162 1
        self._freeze()
8163
    
8164 1
    def to_binary(self):
8165 1
        packet = []
8166 1
        packet.append(self.StatusCode.to_binary())
8167 1
        packet.append(struct.pack('<i', len(self.InputArgumentResults)))
8168 1
        for fieldname in self.InputArgumentResults:
8169 1
            packet.append(fieldname.to_binary())
8170 1
        packet.append(struct.pack('<i', len(self.InputArgumentDiagnosticInfos)))
8171 1
        for fieldname in self.InputArgumentDiagnosticInfos:
8172
            packet.append(fieldname.to_binary())
8173 1
        packet.append(struct.pack('<i', len(self.OutputArguments)))
8174 1
        for fieldname in self.OutputArguments:
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 = CallMethodResult()
8181 1
        obj.StatusCode = StatusCode.from_binary(data)
8182 1
        length = struct.unpack('<i', data.read(4))[0]
8183 1
        if length != -1:
8184 1
            for _ in range(0, length):
8185 1
                obj.InputArgumentResults.append(StatusCode.from_binary(data))
8186 1
        length = struct.unpack('<i', data.read(4))[0]
8187 1
        if length != -1:
8188 1
            for _ in range(0, length):
8189
                obj.InputArgumentDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8190 1
        length = struct.unpack('<i', data.read(4))[0]
8191 1
        if length != -1:
8192 1
            for _ in range(0, length):
8193 1
                obj.OutputArguments.append(Variant.from_binary(data))
8194 1
        return obj
8195
    
8196 1
    def __str__(self):
8197
        return 'CallMethodResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8198
             'InputArgumentResults:' + str(self.InputArgumentResults) + ', '  + \
8199
             'InputArgumentDiagnosticInfos:' + str(self.InputArgumentDiagnosticInfos) + ', '  + \
8200
             'OutputArguments:' + str(self.OutputArguments) + ')'
8201
    
8202 1
    __repr__ = __str__
8203
    
8204 1
class CallParameters(FrozenClass):
8205
    '''
8206
    :ivar MethodsToCall: 
8207
    :vartype MethodsToCall: CallMethodRequest 
8208
    '''
8209 1
    def __init__(self):
8210 1
        self.MethodsToCall = []
8211 1
        self._freeze()
8212
    
8213 1
    def to_binary(self):
8214 1
        packet = []
8215 1
        packet.append(struct.pack('<i', len(self.MethodsToCall)))
8216 1
        for fieldname in self.MethodsToCall:
8217 1
            packet.append(fieldname.to_binary())
8218 1
        return b''.join(packet)
8219
        
8220 1
    @staticmethod
8221
    def from_binary(data):
8222 1
        obj = CallParameters()
8223 1
        length = struct.unpack('<i', data.read(4))[0]
8224 1
        if length != -1:
8225 1
            for _ in range(0, length):
8226 1
                obj.MethodsToCall.append(CallMethodRequest.from_binary(data))
8227 1
        return obj
8228
    
8229 1
    def __str__(self):
8230
        return 'CallParameters(' + 'MethodsToCall:' + str(self.MethodsToCall) + ')'
8231
    
8232 1
    __repr__ = __str__
8233
    
8234 1
class CallRequest(FrozenClass):
8235
    '''
8236
    :ivar TypeId: 
8237
    :vartype TypeId: NodeId 
8238
    :ivar RequestHeader: 
8239
    :vartype RequestHeader: RequestHeader 
8240
    :ivar Parameters: 
8241
    :vartype Parameters: CallParameters 
8242
    '''
8243 1
    def __init__(self):
8244 1
        self.TypeId = FourByteNodeId(ObjectIds.CallRequest_Encoding_DefaultBinary)
8245 1
        self.RequestHeader = RequestHeader()
8246 1
        self.Parameters = CallParameters()
8247 1
        self._freeze()
8248
    
8249 1
    def to_binary(self):
8250 1
        packet = []
8251 1
        packet.append(self.TypeId.to_binary())
8252 1
        packet.append(self.RequestHeader.to_binary())
8253 1
        packet.append(self.Parameters.to_binary())
8254 1
        return b''.join(packet)
8255
        
8256 1
    @staticmethod
8257
    def from_binary(data):
8258
        obj = CallRequest()
8259
        obj.TypeId = NodeId.from_binary(data)
8260
        obj.RequestHeader = RequestHeader.from_binary(data)
8261
        obj.Parameters = CallParameters.from_binary(data)
8262
        return obj
8263
    
8264 1
    def __str__(self):
8265
        return 'CallRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8266
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
8267
             'Parameters:' + str(self.Parameters) + ')'
8268
    
8269 1
    __repr__ = __str__
8270
    
8271 1
class CallResponse(FrozenClass):
8272
    '''
8273
    :ivar TypeId: 
8274
    :vartype TypeId: NodeId 
8275
    :ivar ResponseHeader: 
8276
    :vartype ResponseHeader: ResponseHeader 
8277
    :ivar Results: 
8278
    :vartype Results: CallMethodResult 
8279
    :ivar DiagnosticInfos: 
8280
    :vartype DiagnosticInfos: DiagnosticInfo 
8281
    '''
8282 1
    def __init__(self):
8283 1
        self.TypeId = FourByteNodeId(ObjectIds.CallResponse_Encoding_DefaultBinary)
8284 1
        self.ResponseHeader = ResponseHeader()
8285 1
        self.Results = []
8286 1
        self.DiagnosticInfos = []
8287 1
        self._freeze()
8288
    
8289 1
    def to_binary(self):
8290 1
        packet = []
8291 1
        packet.append(self.TypeId.to_binary())
8292 1
        packet.append(self.ResponseHeader.to_binary())
8293 1
        packet.append(struct.pack('<i', len(self.Results)))
8294 1
        for fieldname in self.Results:
8295 1
            packet.append(fieldname.to_binary())
8296 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8297 1
        for fieldname in self.DiagnosticInfos:
8298
            packet.append(fieldname.to_binary())
8299 1
        return b''.join(packet)
8300
        
8301 1
    @staticmethod
8302
    def from_binary(data):
8303 1
        obj = CallResponse()
8304 1
        obj.TypeId = NodeId.from_binary(data)
8305 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8306 1
        length = struct.unpack('<i', data.read(4))[0]
8307 1
        if length != -1:
8308 1
            for _ in range(0, length):
8309 1
                obj.Results.append(CallMethodResult.from_binary(data))
8310 1
        length = struct.unpack('<i', data.read(4))[0]
8311 1
        if length != -1:
8312 1
            for _ in range(0, length):
8313
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8314 1
        return obj
8315
    
8316 1
    def __str__(self):
8317
        return 'CallResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8318
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
8319
             'Results:' + str(self.Results) + ', '  + \
8320
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8321
    
8322 1
    __repr__ = __str__
8323
    
8324 1
class MonitoringFilter(FrozenClass):
8325
    '''
8326
    '''
8327 1
    def __init__(self):
8328
        self._freeze()
8329
    
8330 1
    def to_binary(self):
8331
        packet = []
8332
        return b''.join(packet)
8333
        
8334 1
    @staticmethod
8335
    def from_binary(data):
8336
        obj = MonitoringFilter()
8337
        return obj
8338
    
8339 1
    def __str__(self):
8340
        return 'MonitoringFilter(' +  + ')'
8341
    
8342 1
    __repr__ = __str__
8343
    
8344 1
class DataChangeFilter(FrozenClass):
8345
    '''
8346
    :ivar Trigger: 
8347
    :vartype Trigger: DataChangeTrigger 
8348
    :ivar DeadbandType: 
8349
    :vartype DeadbandType: UInt32 
8350
    :ivar DeadbandValue: 
8351
    :vartype DeadbandValue: Double 
8352
    '''
8353 1
    def __init__(self):
8354
        self.Trigger = 0
8355
        self.DeadbandType = 0
8356
        self.DeadbandValue = 0
8357
        self._freeze()
8358
    
8359 1
    def to_binary(self):
8360
        packet = []
8361
        packet.append(pack_uatype('UInt32', self.Trigger))
8362
        packet.append(pack_uatype('UInt32', self.DeadbandType))
8363
        packet.append(pack_uatype('Double', self.DeadbandValue))
8364
        return b''.join(packet)
8365
        
8366 1
    @staticmethod
8367
    def from_binary(data):
8368
        obj = DataChangeFilter()
8369
        obj.Trigger = unpack_uatype('UInt32', data)
8370
        obj.DeadbandType = unpack_uatype('UInt32', data)
8371
        obj.DeadbandValue = unpack_uatype('Double', data)
8372
        return obj
8373
    
8374 1
    def __str__(self):
8375
        return 'DataChangeFilter(' + 'Trigger:' + str(self.Trigger) + ', '  + \
8376
             'DeadbandType:' + str(self.DeadbandType) + ', '  + \
8377
             'DeadbandValue:' + str(self.DeadbandValue) + ')'
8378
    
8379 1
    __repr__ = __str__
8380
    
8381 1
class EventFilter(FrozenClass):
8382
    '''
8383
    :ivar SelectClauses: 
8384
    :vartype SelectClauses: SimpleAttributeOperand 
8385
    :ivar WhereClause: 
8386
    :vartype WhereClause: ContentFilter 
8387
    '''
8388 1
    def __init__(self):
8389 1
        self.SelectClauses = []
8390 1
        self.WhereClause = ContentFilter()
8391 1
        self._freeze()
8392
    
8393 1
    def to_binary(self):
8394 1
        packet = []
8395 1
        packet.append(struct.pack('<i', len(self.SelectClauses)))
8396 1
        for fieldname in self.SelectClauses:
8397 1
            packet.append(fieldname.to_binary())
8398 1
        packet.append(self.WhereClause.to_binary())
8399 1
        return b''.join(packet)
8400
        
8401 1
    @staticmethod
8402
    def from_binary(data):
8403 1
        obj = EventFilter()
8404 1
        length = struct.unpack('<i', data.read(4))[0]
8405 1
        if length != -1:
8406 1
            for _ in range(0, length):
8407 1
                obj.SelectClauses.append(SimpleAttributeOperand.from_binary(data))
8408 1
        obj.WhereClause = ContentFilter.from_binary(data)
8409 1
        return obj
8410
    
8411 1
    def __str__(self):
8412
        return 'EventFilter(' + 'SelectClauses:' + str(self.SelectClauses) + ', '  + \
8413
             'WhereClause:' + str(self.WhereClause) + ')'
8414
    
8415 1
    __repr__ = __str__
8416
    
8417 1
class AggregateConfiguration(FrozenClass):
8418
    '''
8419
    :ivar UseServerCapabilitiesDefaults: 
8420
    :vartype UseServerCapabilitiesDefaults: Boolean 
8421
    :ivar TreatUncertainAsBad: 
8422
    :vartype TreatUncertainAsBad: Boolean 
8423
    :ivar PercentDataBad: 
8424
    :vartype PercentDataBad: Byte 
8425
    :ivar PercentDataGood: 
8426
    :vartype PercentDataGood: Byte 
8427
    :ivar UseSlopedExtrapolation: 
8428
    :vartype UseSlopedExtrapolation: Boolean 
8429
    '''
8430 1
    def __init__(self):
8431
        self.UseServerCapabilitiesDefaults = True
8432
        self.TreatUncertainAsBad = True
8433
        self.PercentDataBad = 0
8434
        self.PercentDataGood = 0
8435
        self.UseSlopedExtrapolation = True
8436
        self._freeze()
8437
    
8438 1
    def to_binary(self):
8439
        packet = []
8440
        packet.append(pack_uatype('Boolean', self.UseServerCapabilitiesDefaults))
8441
        packet.append(pack_uatype('Boolean', self.TreatUncertainAsBad))
8442
        packet.append(pack_uatype('Byte', self.PercentDataBad))
8443
        packet.append(pack_uatype('Byte', self.PercentDataGood))
8444
        packet.append(pack_uatype('Boolean', self.UseSlopedExtrapolation))
8445
        return b''.join(packet)
8446
        
8447 1
    @staticmethod
8448
    def from_binary(data):
8449
        obj = AggregateConfiguration()
8450
        obj.UseServerCapabilitiesDefaults = unpack_uatype('Boolean', data)
8451
        obj.TreatUncertainAsBad = unpack_uatype('Boolean', data)
8452
        obj.PercentDataBad = unpack_uatype('Byte', data)
8453
        obj.PercentDataGood = unpack_uatype('Byte', data)
8454
        obj.UseSlopedExtrapolation = unpack_uatype('Boolean', data)
8455
        return obj
8456
    
8457 1
    def __str__(self):
8458
        return 'AggregateConfiguration(' + 'UseServerCapabilitiesDefaults:' + str(self.UseServerCapabilitiesDefaults) + ', '  + \
8459
             'TreatUncertainAsBad:' + str(self.TreatUncertainAsBad) + ', '  + \
8460
             'PercentDataBad:' + str(self.PercentDataBad) + ', '  + \
8461
             'PercentDataGood:' + str(self.PercentDataGood) + ', '  + \
8462
             'UseSlopedExtrapolation:' + str(self.UseSlopedExtrapolation) + ')'
8463
    
8464 1
    __repr__ = __str__
8465
    
8466 1
class AggregateFilter(FrozenClass):
8467
    '''
8468
    :ivar StartTime: 
8469
    :vartype StartTime: DateTime 
8470
    :ivar AggregateType: 
8471
    :vartype AggregateType: NodeId 
8472
    :ivar ProcessingInterval: 
8473
    :vartype ProcessingInterval: Double 
8474
    :ivar AggregateConfiguration: 
8475
    :vartype AggregateConfiguration: AggregateConfiguration 
8476
    '''
8477 1
    def __init__(self):
8478
        self.StartTime = datetime.now()
8479
        self.AggregateType = NodeId()
8480
        self.ProcessingInterval = 0
8481
        self.AggregateConfiguration = AggregateConfiguration()
8482
        self._freeze()
8483
    
8484 1
    def to_binary(self):
8485
        packet = []
8486
        packet.append(pack_uatype('DateTime', self.StartTime))
8487
        packet.append(self.AggregateType.to_binary())
8488
        packet.append(pack_uatype('Double', self.ProcessingInterval))
8489
        packet.append(self.AggregateConfiguration.to_binary())
8490
        return b''.join(packet)
8491
        
8492 1
    @staticmethod
8493
    def from_binary(data):
8494
        obj = AggregateFilter()
8495
        obj.StartTime = unpack_uatype('DateTime', data)
8496
        obj.AggregateType = NodeId.from_binary(data)
8497
        obj.ProcessingInterval = unpack_uatype('Double', data)
8498
        obj.AggregateConfiguration = AggregateConfiguration.from_binary(data)
8499
        return obj
8500
    
8501 1
    def __str__(self):
8502
        return 'AggregateFilter(' + 'StartTime:' + str(self.StartTime) + ', '  + \
8503
             'AggregateType:' + str(self.AggregateType) + ', '  + \
8504
             'ProcessingInterval:' + str(self.ProcessingInterval) + ', '  + \
8505
             'AggregateConfiguration:' + str(self.AggregateConfiguration) + ')'
8506
    
8507 1
    __repr__ = __str__
8508
    
8509 1
class MonitoringFilterResult(FrozenClass):
8510
    '''
8511
    '''
8512 1
    def __init__(self):
8513
        self._freeze()
8514
    
8515 1
    def to_binary(self):
8516
        packet = []
8517
        return b''.join(packet)
8518
        
8519 1
    @staticmethod
8520
    def from_binary(data):
8521
        obj = MonitoringFilterResult()
8522
        return obj
8523
    
8524 1
    def __str__(self):
8525
        return 'MonitoringFilterResult(' +  + ')'
8526
    
8527 1
    __repr__ = __str__
8528
    
8529 1
class EventFilterResult(FrozenClass):
8530
    '''
8531
    :ivar SelectClauseResults: 
8532
    :vartype SelectClauseResults: StatusCode 
8533
    :ivar SelectClauseDiagnosticInfos: 
8534
    :vartype SelectClauseDiagnosticInfos: DiagnosticInfo 
8535
    :ivar WhereClauseResult: 
8536
    :vartype WhereClauseResult: ContentFilterResult 
8537
    '''
8538 1
    def __init__(self):
8539
        self.SelectClauseResults = []
8540
        self.SelectClauseDiagnosticInfos = []
8541
        self.WhereClauseResult = ContentFilterResult()
8542
        self._freeze()
8543
    
8544 1
    def to_binary(self):
8545
        packet = []
8546
        packet.append(struct.pack('<i', len(self.SelectClauseResults)))
8547
        for fieldname in self.SelectClauseResults:
8548
            packet.append(fieldname.to_binary())
8549
        packet.append(struct.pack('<i', len(self.SelectClauseDiagnosticInfos)))
8550
        for fieldname in self.SelectClauseDiagnosticInfos:
8551
            packet.append(fieldname.to_binary())
8552
        packet.append(self.WhereClauseResult.to_binary())
8553
        return b''.join(packet)
8554
        
8555 1
    @staticmethod
8556
    def from_binary(data):
8557
        obj = EventFilterResult()
8558
        length = struct.unpack('<i', data.read(4))[0]
8559
        if length != -1:
8560
            for _ in range(0, length):
8561
                obj.SelectClauseResults.append(StatusCode.from_binary(data))
8562
        length = struct.unpack('<i', data.read(4))[0]
8563
        if length != -1:
8564
            for _ in range(0, length):
8565
                obj.SelectClauseDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8566
        obj.WhereClauseResult = ContentFilterResult.from_binary(data)
8567
        return obj
8568
    
8569 1
    def __str__(self):
8570
        return 'EventFilterResult(' + 'SelectClauseResults:' + str(self.SelectClauseResults) + ', '  + \
8571
             'SelectClauseDiagnosticInfos:' + str(self.SelectClauseDiagnosticInfos) + ', '  + \
8572
             'WhereClauseResult:' + str(self.WhereClauseResult) + ')'
8573
    
8574 1
    __repr__ = __str__
8575
    
8576 1
class AggregateFilterResult(FrozenClass):
8577
    '''
8578
    :ivar RevisedStartTime: 
8579
    :vartype RevisedStartTime: DateTime 
8580
    :ivar RevisedProcessingInterval: 
8581
    :vartype RevisedProcessingInterval: Double 
8582
    :ivar RevisedAggregateConfiguration: 
8583
    :vartype RevisedAggregateConfiguration: AggregateConfiguration 
8584
    '''
8585 1
    def __init__(self):
8586
        self.RevisedStartTime = datetime.now()
8587
        self.RevisedProcessingInterval = 0
8588
        self.RevisedAggregateConfiguration = AggregateConfiguration()
8589
        self._freeze()
8590
    
8591 1
    def to_binary(self):
8592
        packet = []
8593
        packet.append(pack_uatype('DateTime', self.RevisedStartTime))
8594
        packet.append(pack_uatype('Double', self.RevisedProcessingInterval))
8595
        packet.append(self.RevisedAggregateConfiguration.to_binary())
8596
        return b''.join(packet)
8597
        
8598 1
    @staticmethod
8599
    def from_binary(data):
8600
        obj = AggregateFilterResult()
8601
        obj.RevisedStartTime = unpack_uatype('DateTime', data)
8602
        obj.RevisedProcessingInterval = unpack_uatype('Double', data)
8603
        obj.RevisedAggregateConfiguration = AggregateConfiguration.from_binary(data)
8604
        return obj
8605
    
8606 1
    def __str__(self):
8607
        return 'AggregateFilterResult(' + 'RevisedStartTime:' + str(self.RevisedStartTime) + ', '  + \
8608
             'RevisedProcessingInterval:' + str(self.RevisedProcessingInterval) + ', '  + \
8609
             'RevisedAggregateConfiguration:' + str(self.RevisedAggregateConfiguration) + ')'
8610
    
8611 1
    __repr__ = __str__
8612
    
8613 1
class MonitoringParameters(FrozenClass):
8614
    '''
8615
    :ivar ClientHandle: 
8616
    :vartype ClientHandle: UInt32 
8617
    :ivar SamplingInterval: 
8618
    :vartype SamplingInterval: Double 
8619
    :ivar Filter: 
8620
    :vartype Filter: ExtensionObject 
8621
    :ivar QueueSize: 
8622
    :vartype QueueSize: UInt32 
8623
    :ivar DiscardOldest: 
8624
    :vartype DiscardOldest: Boolean 
8625
    '''
8626 1
    def __init__(self):
8627 1
        self.ClientHandle = 0
8628 1
        self.SamplingInterval = 0
8629 1
        self.Filter = None
8630 1
        self.QueueSize = 0
8631 1
        self.DiscardOldest = True
8632 1
        self._freeze()
8633
    
8634 1
    def to_binary(self):
8635 1
        packet = []
8636 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
8637 1
        packet.append(pack_uatype('Double', self.SamplingInterval))
8638 1
        packet.append(extensionobject_to_binary(self.Filter))
8639 1
        packet.append(pack_uatype('UInt32', self.QueueSize))
8640 1
        packet.append(pack_uatype('Boolean', self.DiscardOldest))
8641 1
        return b''.join(packet)
8642
        
8643 1
    @staticmethod
8644
    def from_binary(data):
8645 1
        obj = MonitoringParameters()
8646 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
8647 1
        obj.SamplingInterval = unpack_uatype('Double', data)
8648 1
        obj.Filter = extensionobject_from_binary(data)
8649 1
        obj.QueueSize = unpack_uatype('UInt32', data)
8650 1
        obj.DiscardOldest = unpack_uatype('Boolean', data)
8651 1
        return obj
8652
    
8653 1
    def __str__(self):
8654
        return 'MonitoringParameters(' + 'ClientHandle:' + str(self.ClientHandle) + ', '  + \
8655
             'SamplingInterval:' + str(self.SamplingInterval) + ', '  + \
8656
             'Filter:' + str(self.Filter) + ', '  + \
8657
             'QueueSize:' + str(self.QueueSize) + ', '  + \
8658
             'DiscardOldest:' + str(self.DiscardOldest) + ')'
8659
    
8660 1
    __repr__ = __str__
8661
    
8662 1
class MonitoredItemCreateRequest(FrozenClass):
8663
    '''
8664
    :ivar ItemToMonitor: 
8665
    :vartype ItemToMonitor: ReadValueId 
8666
    :ivar MonitoringMode: 
8667
    :vartype MonitoringMode: MonitoringMode 
8668
    :ivar RequestedParameters: 
8669
    :vartype RequestedParameters: MonitoringParameters 
8670
    '''
8671 1
    def __init__(self):
8672 1
        self.ItemToMonitor = ReadValueId()
8673 1
        self.MonitoringMode = 0
8674 1
        self.RequestedParameters = MonitoringParameters()
8675 1
        self._freeze()
8676
    
8677 1
    def to_binary(self):
8678 1
        packet = []
8679 1
        packet.append(self.ItemToMonitor.to_binary())
8680 1
        packet.append(pack_uatype('UInt32', self.MonitoringMode))
8681 1
        packet.append(self.RequestedParameters.to_binary())
8682 1
        return b''.join(packet)
8683
        
8684 1
    @staticmethod
8685
    def from_binary(data):
8686 1
        obj = MonitoredItemCreateRequest()
8687 1
        obj.ItemToMonitor = ReadValueId.from_binary(data)
8688 1
        obj.MonitoringMode = unpack_uatype('UInt32', data)
8689 1
        obj.RequestedParameters = MonitoringParameters.from_binary(data)
8690 1
        return obj
8691
    
8692 1
    def __str__(self):
8693
        return 'MonitoredItemCreateRequest(' + 'ItemToMonitor:' + str(self.ItemToMonitor) + ', '  + \
8694
             'MonitoringMode:' + str(self.MonitoringMode) + ', '  + \
8695
             'RequestedParameters:' + str(self.RequestedParameters) + ')'
8696
    
8697 1
    __repr__ = __str__
8698
    
8699 1
class MonitoredItemCreateResult(FrozenClass):
8700
    '''
8701
    :ivar StatusCode: 
8702
    :vartype StatusCode: StatusCode 
8703
    :ivar MonitoredItemId: 
8704
    :vartype MonitoredItemId: UInt32 
8705
    :ivar RevisedSamplingInterval: 
8706
    :vartype RevisedSamplingInterval: Double 
8707
    :ivar RevisedQueueSize: 
8708
    :vartype RevisedQueueSize: UInt32 
8709
    :ivar FilterResult: 
8710
    :vartype FilterResult: ExtensionObject 
8711
    '''
8712 1
    def __init__(self):
8713 1
        self.StatusCode = StatusCode()
8714 1
        self.MonitoredItemId = 0
8715 1
        self.RevisedSamplingInterval = 0
8716 1
        self.RevisedQueueSize = 0
8717 1
        self.FilterResult = None
8718 1
        self._freeze()
8719
    
8720 1
    def to_binary(self):
8721 1
        packet = []
8722 1
        packet.append(self.StatusCode.to_binary())
8723 1
        packet.append(pack_uatype('UInt32', self.MonitoredItemId))
8724 1
        packet.append(pack_uatype('Double', self.RevisedSamplingInterval))
8725 1
        packet.append(pack_uatype('UInt32', self.RevisedQueueSize))
8726 1
        packet.append(extensionobject_to_binary(self.FilterResult))
8727 1
        return b''.join(packet)
8728
        
8729 1
    @staticmethod
8730
    def from_binary(data):
8731 1
        obj = MonitoredItemCreateResult()
8732 1
        obj.StatusCode = StatusCode.from_binary(data)
8733 1
        obj.MonitoredItemId = unpack_uatype('UInt32', data)
8734 1
        obj.RevisedSamplingInterval = unpack_uatype('Double', data)
8735 1
        obj.RevisedQueueSize = unpack_uatype('UInt32', data)
8736 1
        obj.FilterResult = extensionobject_from_binary(data)
8737 1
        return obj
8738
    
8739 1
    def __str__(self):
8740
        return 'MonitoredItemCreateResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8741
             'MonitoredItemId:' + str(self.MonitoredItemId) + ', '  + \
8742
             'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', '  + \
8743
             'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', '  + \
8744
             'FilterResult:' + str(self.FilterResult) + ')'
8745
    
8746 1
    __repr__ = __str__
8747
    
8748 1
class CreateMonitoredItemsParameters(FrozenClass):
8749
    '''
8750
    :ivar SubscriptionId: 
8751
    :vartype SubscriptionId: UInt32 
8752
    :ivar TimestampsToReturn: 
8753
    :vartype TimestampsToReturn: TimestampsToReturn 
8754
    :ivar ItemsToCreate: 
8755
    :vartype ItemsToCreate: MonitoredItemCreateRequest 
8756
    '''
8757 1
    def __init__(self):
8758 1
        self.SubscriptionId = 0
8759 1
        self.TimestampsToReturn = 0
8760 1
        self.ItemsToCreate = []
8761 1
        self._freeze()
8762
    
8763 1
    def to_binary(self):
8764 1
        packet = []
8765 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
8766 1
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
8767 1
        packet.append(struct.pack('<i', len(self.ItemsToCreate)))
8768 1
        for fieldname in self.ItemsToCreate:
8769 1
            packet.append(fieldname.to_binary())
8770 1
        return b''.join(packet)
8771
        
8772 1
    @staticmethod
8773
    def from_binary(data):
8774 1
        obj = CreateMonitoredItemsParameters()
8775 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
8776 1
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
8777 1
        length = struct.unpack('<i', data.read(4))[0]
8778 1
        if length != -1:
8779 1
            for _ in range(0, length):
8780 1
                obj.ItemsToCreate.append(MonitoredItemCreateRequest.from_binary(data))
8781 1
        return obj
8782
    
8783 1
    def __str__(self):
8784
        return 'CreateMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
8785
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
8786
             'ItemsToCreate:' + str(self.ItemsToCreate) + ')'
8787
    
8788 1
    __repr__ = __str__
8789
    
8790 1
class CreateMonitoredItemsRequest(FrozenClass):
8791
    '''
8792
    :ivar TypeId: 
8793
    :vartype TypeId: NodeId 
8794
    :ivar RequestHeader: 
8795
    :vartype RequestHeader: RequestHeader 
8796
    :ivar Parameters: 
8797
    :vartype Parameters: CreateMonitoredItemsParameters 
8798
    '''
8799 1
    def __init__(self):
8800 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary)
8801 1
        self.RequestHeader = RequestHeader()
8802 1
        self.Parameters = CreateMonitoredItemsParameters()
8803 1
        self._freeze()
8804
    
8805 1
    def to_binary(self):
8806 1
        packet = []
8807 1
        packet.append(self.TypeId.to_binary())
8808 1
        packet.append(self.RequestHeader.to_binary())
8809 1
        packet.append(self.Parameters.to_binary())
8810 1
        return b''.join(packet)
8811
        
8812 1
    @staticmethod
8813
    def from_binary(data):
8814
        obj = CreateMonitoredItemsRequest()
8815
        obj.TypeId = NodeId.from_binary(data)
8816
        obj.RequestHeader = RequestHeader.from_binary(data)
8817
        obj.Parameters = CreateMonitoredItemsParameters.from_binary(data)
8818
        return obj
8819
    
8820 1
    def __str__(self):
8821
        return 'CreateMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8822
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
8823
             'Parameters:' + str(self.Parameters) + ')'
8824
    
8825 1
    __repr__ = __str__
8826
    
8827 1
class CreateMonitoredItemsResponse(FrozenClass):
8828
    '''
8829
    :ivar TypeId: 
8830
    :vartype TypeId: NodeId 
8831
    :ivar ResponseHeader: 
8832
    :vartype ResponseHeader: ResponseHeader 
8833
    :ivar Results: 
8834
    :vartype Results: MonitoredItemCreateResult 
8835
    :ivar DiagnosticInfos: 
8836
    :vartype DiagnosticInfos: DiagnosticInfo 
8837
    '''
8838 1
    def __init__(self):
8839 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary)
8840 1
        self.ResponseHeader = ResponseHeader()
8841 1
        self.Results = []
8842 1
        self.DiagnosticInfos = []
8843 1
        self._freeze()
8844
    
8845 1
    def to_binary(self):
8846 1
        packet = []
8847 1
        packet.append(self.TypeId.to_binary())
8848 1
        packet.append(self.ResponseHeader.to_binary())
8849 1
        packet.append(struct.pack('<i', len(self.Results)))
8850 1
        for fieldname in self.Results:
8851 1
            packet.append(fieldname.to_binary())
8852 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
8853 1
        for fieldname in self.DiagnosticInfos:
8854
            packet.append(fieldname.to_binary())
8855 1
        return b''.join(packet)
8856
        
8857 1
    @staticmethod
8858
    def from_binary(data):
8859 1
        obj = CreateMonitoredItemsResponse()
8860 1
        obj.TypeId = NodeId.from_binary(data)
8861 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
8862 1
        length = struct.unpack('<i', data.read(4))[0]
8863 1
        if length != -1:
8864 1
            for _ in range(0, length):
8865 1
                obj.Results.append(MonitoredItemCreateResult.from_binary(data))
8866 1
        length = struct.unpack('<i', data.read(4))[0]
8867 1
        if length != -1:
8868 1
            for _ in range(0, length):
8869
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
8870 1
        return obj
8871
    
8872 1
    def __str__(self):
8873
        return 'CreateMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
8874
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
8875
             'Results:' + str(self.Results) + ', '  + \
8876
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
8877
    
8878 1
    __repr__ = __str__
8879
    
8880 1
class MonitoredItemModifyRequest(FrozenClass):
8881
    '''
8882
    :ivar MonitoredItemId: 
8883
    :vartype MonitoredItemId: UInt32 
8884
    :ivar RequestedParameters: 
8885
    :vartype RequestedParameters: MonitoringParameters 
8886
    '''
8887 1
    def __init__(self):
8888
        self.MonitoredItemId = 0
8889
        self.RequestedParameters = MonitoringParameters()
8890
        self._freeze()
8891
    
8892 1
    def to_binary(self):
8893
        packet = []
8894
        packet.append(pack_uatype('UInt32', self.MonitoredItemId))
8895
        packet.append(self.RequestedParameters.to_binary())
8896
        return b''.join(packet)
8897
        
8898 1
    @staticmethod
8899
    def from_binary(data):
8900
        obj = MonitoredItemModifyRequest()
8901
        obj.MonitoredItemId = unpack_uatype('UInt32', data)
8902
        obj.RequestedParameters = MonitoringParameters.from_binary(data)
8903
        return obj
8904
    
8905 1
    def __str__(self):
8906
        return 'MonitoredItemModifyRequest(' + 'MonitoredItemId:' + str(self.MonitoredItemId) + ', '  + \
8907
             'RequestedParameters:' + str(self.RequestedParameters) + ')'
8908
    
8909 1
    __repr__ = __str__
8910
    
8911 1
class MonitoredItemModifyResult(FrozenClass):
8912
    '''
8913
    :ivar StatusCode: 
8914
    :vartype StatusCode: StatusCode 
8915
    :ivar RevisedSamplingInterval: 
8916
    :vartype RevisedSamplingInterval: Double 
8917
    :ivar RevisedQueueSize: 
8918
    :vartype RevisedQueueSize: UInt32 
8919
    :ivar FilterResult: 
8920
    :vartype FilterResult: ExtensionObject 
8921
    '''
8922 1
    def __init__(self):
8923
        self.StatusCode = StatusCode()
8924
        self.RevisedSamplingInterval = 0
8925
        self.RevisedQueueSize = 0
8926
        self.FilterResult = None
8927
        self._freeze()
8928
    
8929 1
    def to_binary(self):
8930
        packet = []
8931
        packet.append(self.StatusCode.to_binary())
8932
        packet.append(pack_uatype('Double', self.RevisedSamplingInterval))
8933
        packet.append(pack_uatype('UInt32', self.RevisedQueueSize))
8934
        packet.append(extensionobject_to_binary(self.FilterResult))
8935
        return b''.join(packet)
8936
        
8937 1
    @staticmethod
8938
    def from_binary(data):
8939
        obj = MonitoredItemModifyResult()
8940
        obj.StatusCode = StatusCode.from_binary(data)
8941
        obj.RevisedSamplingInterval = unpack_uatype('Double', data)
8942
        obj.RevisedQueueSize = unpack_uatype('UInt32', data)
8943
        obj.FilterResult = extensionobject_from_binary(data)
8944
        return obj
8945
    
8946 1
    def __str__(self):
8947
        return 'MonitoredItemModifyResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
8948
             'RevisedSamplingInterval:' + str(self.RevisedSamplingInterval) + ', '  + \
8949
             'RevisedQueueSize:' + str(self.RevisedQueueSize) + ', '  + \
8950
             'FilterResult:' + str(self.FilterResult) + ')'
8951
    
8952 1
    __repr__ = __str__
8953
    
8954 1
class ModifyMonitoredItemsParameters(FrozenClass):
8955
    '''
8956
    :ivar SubscriptionId: 
8957
    :vartype SubscriptionId: UInt32 
8958
    :ivar TimestampsToReturn: 
8959
    :vartype TimestampsToReturn: TimestampsToReturn 
8960
    :ivar ItemsToModify: 
8961
    :vartype ItemsToModify: MonitoredItemModifyRequest 
8962
    '''
8963 1
    def __init__(self):
8964
        self.SubscriptionId = 0
8965
        self.TimestampsToReturn = 0
8966
        self.ItemsToModify = []
8967
        self._freeze()
8968
    
8969 1
    def to_binary(self):
8970
        packet = []
8971
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
8972
        packet.append(pack_uatype('UInt32', self.TimestampsToReturn))
8973
        packet.append(struct.pack('<i', len(self.ItemsToModify)))
8974
        for fieldname in self.ItemsToModify:
8975
            packet.append(fieldname.to_binary())
8976
        return b''.join(packet)
8977
        
8978 1
    @staticmethod
8979
    def from_binary(data):
8980
        obj = ModifyMonitoredItemsParameters()
8981
        obj.SubscriptionId = unpack_uatype('UInt32', data)
8982
        obj.TimestampsToReturn = unpack_uatype('UInt32', data)
8983
        length = struct.unpack('<i', data.read(4))[0]
8984
        if length != -1:
8985
            for _ in range(0, length):
8986
                obj.ItemsToModify.append(MonitoredItemModifyRequest.from_binary(data))
8987
        return obj
8988
    
8989 1
    def __str__(self):
8990
        return 'ModifyMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
8991
             'TimestampsToReturn:' + str(self.TimestampsToReturn) + ', '  + \
8992
             'ItemsToModify:' + str(self.ItemsToModify) + ')'
8993
    
8994 1
    __repr__ = __str__
8995
    
8996 1
class ModifyMonitoredItemsRequest(FrozenClass):
8997
    '''
8998
    :ivar TypeId: 
8999
    :vartype TypeId: NodeId 
9000
    :ivar RequestHeader: 
9001
    :vartype RequestHeader: RequestHeader 
9002
    :ivar Parameters: 
9003
    :vartype Parameters: ModifyMonitoredItemsParameters 
9004
    '''
9005 1
    def __init__(self):
9006
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary)
9007
        self.RequestHeader = RequestHeader()
9008
        self.Parameters = ModifyMonitoredItemsParameters()
9009
        self._freeze()
9010
    
9011 1
    def to_binary(self):
9012
        packet = []
9013
        packet.append(self.TypeId.to_binary())
9014
        packet.append(self.RequestHeader.to_binary())
9015
        packet.append(self.Parameters.to_binary())
9016
        return b''.join(packet)
9017
        
9018 1
    @staticmethod
9019
    def from_binary(data):
9020
        obj = ModifyMonitoredItemsRequest()
9021
        obj.TypeId = NodeId.from_binary(data)
9022
        obj.RequestHeader = RequestHeader.from_binary(data)
9023
        obj.Parameters = ModifyMonitoredItemsParameters.from_binary(data)
9024
        return obj
9025
    
9026 1
    def __str__(self):
9027
        return 'ModifyMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9028
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9029
             'Parameters:' + str(self.Parameters) + ')'
9030
    
9031 1
    __repr__ = __str__
9032
    
9033 1
class ModifyMonitoredItemsResponse(FrozenClass):
9034
    '''
9035
    :ivar TypeId: 
9036
    :vartype TypeId: NodeId 
9037
    :ivar ResponseHeader: 
9038
    :vartype ResponseHeader: ResponseHeader 
9039
    :ivar Results: 
9040
    :vartype Results: MonitoredItemModifyResult 
9041
    :ivar DiagnosticInfos: 
9042
    :vartype DiagnosticInfos: DiagnosticInfo 
9043
    '''
9044 1
    def __init__(self):
9045
        self.TypeId = FourByteNodeId(ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary)
9046
        self.ResponseHeader = ResponseHeader()
9047
        self.Results = []
9048
        self.DiagnosticInfos = []
9049
        self._freeze()
9050
    
9051 1
    def to_binary(self):
9052
        packet = []
9053
        packet.append(self.TypeId.to_binary())
9054
        packet.append(self.ResponseHeader.to_binary())
9055
        packet.append(struct.pack('<i', len(self.Results)))
9056
        for fieldname in self.Results:
9057
            packet.append(fieldname.to_binary())
9058
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9059
        for fieldname in self.DiagnosticInfos:
9060
            packet.append(fieldname.to_binary())
9061
        return b''.join(packet)
9062
        
9063 1
    @staticmethod
9064
    def from_binary(data):
9065
        obj = ModifyMonitoredItemsResponse()
9066
        obj.TypeId = NodeId.from_binary(data)
9067
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9068
        length = struct.unpack('<i', data.read(4))[0]
9069
        if length != -1:
9070
            for _ in range(0, length):
9071
                obj.Results.append(MonitoredItemModifyResult.from_binary(data))
9072
        length = struct.unpack('<i', data.read(4))[0]
9073
        if length != -1:
9074
            for _ in range(0, length):
9075
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9076
        return obj
9077
    
9078 1
    def __str__(self):
9079
        return 'ModifyMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9080
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9081
             'Results:' + str(self.Results) + ', '  + \
9082
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9083
    
9084 1
    __repr__ = __str__
9085
    
9086 1
class SetMonitoringModeParameters(FrozenClass):
9087
    '''
9088
    :ivar SubscriptionId: 
9089
    :vartype SubscriptionId: UInt32 
9090
    :ivar MonitoringMode: 
9091
    :vartype MonitoringMode: MonitoringMode 
9092
    :ivar MonitoredItemIds: 
9093
    :vartype MonitoredItemIds: UInt32 
9094
    '''
9095 1
    def __init__(self):
9096
        self.SubscriptionId = 0
9097
        self.MonitoringMode = 0
9098
        self.MonitoredItemIds = []
9099
        self._freeze()
9100
    
9101 1
    def to_binary(self):
9102
        packet = []
9103
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9104
        packet.append(pack_uatype('UInt32', self.MonitoringMode))
9105
        packet.append(struct.pack('<i', len(self.MonitoredItemIds)))
9106
        for fieldname in self.MonitoredItemIds:
9107
            packet.append(pack_uatype('UInt32', fieldname))
9108
        return b''.join(packet)
9109
        
9110 1
    @staticmethod
9111
    def from_binary(data):
9112
        obj = SetMonitoringModeParameters()
9113
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9114
        obj.MonitoringMode = unpack_uatype('UInt32', data)
9115
        obj.MonitoredItemIds = unpack_uatype_array('UInt32', data)
9116
        return obj
9117
    
9118 1
    def __str__(self):
9119
        return 'SetMonitoringModeParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9120
             'MonitoringMode:' + str(self.MonitoringMode) + ', '  + \
9121
             'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
9122
    
9123 1
    __repr__ = __str__
9124
    
9125 1
class SetMonitoringModeRequest(FrozenClass):
9126
    '''
9127
    :ivar TypeId: 
9128
    :vartype TypeId: NodeId 
9129
    :ivar RequestHeader: 
9130
    :vartype RequestHeader: RequestHeader 
9131
    :ivar Parameters: 
9132
    :vartype Parameters: SetMonitoringModeParameters 
9133
    '''
9134 1
    def __init__(self):
9135
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary)
9136
        self.RequestHeader = RequestHeader()
9137
        self.Parameters = SetMonitoringModeParameters()
9138
        self._freeze()
9139
    
9140 1
    def to_binary(self):
9141
        packet = []
9142
        packet.append(self.TypeId.to_binary())
9143
        packet.append(self.RequestHeader.to_binary())
9144
        packet.append(self.Parameters.to_binary())
9145
        return b''.join(packet)
9146
        
9147 1
    @staticmethod
9148
    def from_binary(data):
9149
        obj = SetMonitoringModeRequest()
9150
        obj.TypeId = NodeId.from_binary(data)
9151
        obj.RequestHeader = RequestHeader.from_binary(data)
9152
        obj.Parameters = SetMonitoringModeParameters.from_binary(data)
9153
        return obj
9154
    
9155 1
    def __str__(self):
9156
        return 'SetMonitoringModeRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9157
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9158
             'Parameters:' + str(self.Parameters) + ')'
9159
    
9160 1
    __repr__ = __str__
9161
    
9162 1
class SetMonitoringModeResult(FrozenClass):
9163
    '''
9164
    :ivar Results: 
9165
    :vartype Results: StatusCode 
9166
    :ivar DiagnosticInfos: 
9167
    :vartype DiagnosticInfos: DiagnosticInfo 
9168
    '''
9169 1
    def __init__(self):
9170
        self.Results = []
9171
        self.DiagnosticInfos = []
9172
        self._freeze()
9173
    
9174 1
    def to_binary(self):
9175
        packet = []
9176
        packet.append(struct.pack('<i', len(self.Results)))
9177
        for fieldname in self.Results:
9178
            packet.append(fieldname.to_binary())
9179
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9180
        for fieldname in self.DiagnosticInfos:
9181
            packet.append(fieldname.to_binary())
9182
        return b''.join(packet)
9183
        
9184 1
    @staticmethod
9185
    def from_binary(data):
9186
        obj = SetMonitoringModeResult()
9187
        length = struct.unpack('<i', data.read(4))[0]
9188
        if length != -1:
9189
            for _ in range(0, length):
9190
                obj.Results.append(StatusCode.from_binary(data))
9191
        length = struct.unpack('<i', data.read(4))[0]
9192
        if length != -1:
9193
            for _ in range(0, length):
9194
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9195
        return obj
9196
    
9197 1
    def __str__(self):
9198
        return 'SetMonitoringModeResult(' + 'Results:' + str(self.Results) + ', '  + \
9199
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9200
    
9201 1
    __repr__ = __str__
9202
    
9203 1
class SetMonitoringModeResponse(FrozenClass):
9204
    '''
9205
    :ivar TypeId: 
9206
    :vartype TypeId: NodeId 
9207
    :ivar ResponseHeader: 
9208
    :vartype ResponseHeader: ResponseHeader 
9209
    :ivar Parameters: 
9210
    :vartype Parameters: SetMonitoringModeResult 
9211
    '''
9212 1
    def __init__(self):
9213
        self.TypeId = FourByteNodeId(ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary)
9214
        self.ResponseHeader = ResponseHeader()
9215
        self.Parameters = SetMonitoringModeResult()
9216
        self._freeze()
9217
    
9218 1
    def to_binary(self):
9219
        packet = []
9220
        packet.append(self.TypeId.to_binary())
9221
        packet.append(self.ResponseHeader.to_binary())
9222
        packet.append(self.Parameters.to_binary())
9223
        return b''.join(packet)
9224
        
9225 1
    @staticmethod
9226
    def from_binary(data):
9227
        obj = SetMonitoringModeResponse()
9228
        obj.TypeId = NodeId.from_binary(data)
9229
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9230
        obj.Parameters = SetMonitoringModeResult.from_binary(data)
9231
        return obj
9232
    
9233 1
    def __str__(self):
9234
        return 'SetMonitoringModeResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9235
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9236
             'Parameters:' + str(self.Parameters) + ')'
9237
    
9238 1
    __repr__ = __str__
9239
    
9240 1
class SetTriggeringParameters(FrozenClass):
9241
    '''
9242
    :ivar SubscriptionId: 
9243
    :vartype SubscriptionId: UInt32 
9244
    :ivar TriggeringItemId: 
9245
    :vartype TriggeringItemId: UInt32 
9246
    :ivar LinksToAdd: 
9247
    :vartype LinksToAdd: UInt32 
9248
    :ivar LinksToRemove: 
9249
    :vartype LinksToRemove: UInt32 
9250
    '''
9251 1
    def __init__(self):
9252
        self.SubscriptionId = 0
9253
        self.TriggeringItemId = 0
9254
        self.LinksToAdd = []
9255
        self.LinksToRemove = []
9256
        self._freeze()
9257
    
9258 1
    def to_binary(self):
9259
        packet = []
9260
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9261
        packet.append(pack_uatype('UInt32', self.TriggeringItemId))
9262
        packet.append(struct.pack('<i', len(self.LinksToAdd)))
9263
        for fieldname in self.LinksToAdd:
9264
            packet.append(pack_uatype('UInt32', fieldname))
9265
        packet.append(struct.pack('<i', len(self.LinksToRemove)))
9266
        for fieldname in self.LinksToRemove:
9267
            packet.append(pack_uatype('UInt32', fieldname))
9268
        return b''.join(packet)
9269
        
9270 1
    @staticmethod
9271
    def from_binary(data):
9272
        obj = SetTriggeringParameters()
9273
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9274
        obj.TriggeringItemId = unpack_uatype('UInt32', data)
9275
        obj.LinksToAdd = unpack_uatype_array('UInt32', data)
9276
        obj.LinksToRemove = unpack_uatype_array('UInt32', data)
9277
        return obj
9278
    
9279 1
    def __str__(self):
9280
        return 'SetTriggeringParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9281
             'TriggeringItemId:' + str(self.TriggeringItemId) + ', '  + \
9282
             'LinksToAdd:' + str(self.LinksToAdd) + ', '  + \
9283
             'LinksToRemove:' + str(self.LinksToRemove) + ')'
9284
    
9285 1
    __repr__ = __str__
9286
    
9287 1
class SetTriggeringRequest(FrozenClass):
9288
    '''
9289
    :ivar TypeId: 
9290
    :vartype TypeId: NodeId 
9291
    :ivar RequestHeader: 
9292
    :vartype RequestHeader: RequestHeader 
9293
    :ivar Parameters: 
9294
    :vartype Parameters: SetTriggeringParameters 
9295
    '''
9296 1
    def __init__(self):
9297
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary)
9298
        self.RequestHeader = RequestHeader()
9299
        self.Parameters = SetTriggeringParameters()
9300
        self._freeze()
9301
    
9302 1
    def to_binary(self):
9303
        packet = []
9304
        packet.append(self.TypeId.to_binary())
9305
        packet.append(self.RequestHeader.to_binary())
9306
        packet.append(self.Parameters.to_binary())
9307
        return b''.join(packet)
9308
        
9309 1
    @staticmethod
9310
    def from_binary(data):
9311
        obj = SetTriggeringRequest()
9312
        obj.TypeId = NodeId.from_binary(data)
9313
        obj.RequestHeader = RequestHeader.from_binary(data)
9314
        obj.Parameters = SetTriggeringParameters.from_binary(data)
9315
        return obj
9316
    
9317 1
    def __str__(self):
9318
        return 'SetTriggeringRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9319
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9320
             'Parameters:' + str(self.Parameters) + ')'
9321
    
9322 1
    __repr__ = __str__
9323
    
9324 1
class SetTriggeringResult(FrozenClass):
9325
    '''
9326
    :ivar AddResults: 
9327
    :vartype AddResults: StatusCode 
9328
    :ivar AddDiagnosticInfos: 
9329
    :vartype AddDiagnosticInfos: DiagnosticInfo 
9330
    :ivar RemoveResults: 
9331
    :vartype RemoveResults: StatusCode 
9332
    :ivar RemoveDiagnosticInfos: 
9333
    :vartype RemoveDiagnosticInfos: DiagnosticInfo 
9334
    '''
9335 1
    def __init__(self):
9336
        self.AddResults = []
9337
        self.AddDiagnosticInfos = []
9338
        self.RemoveResults = []
9339
        self.RemoveDiagnosticInfos = []
9340
        self._freeze()
9341
    
9342 1
    def to_binary(self):
9343
        packet = []
9344
        packet.append(struct.pack('<i', len(self.AddResults)))
9345
        for fieldname in self.AddResults:
9346
            packet.append(fieldname.to_binary())
9347
        packet.append(struct.pack('<i', len(self.AddDiagnosticInfos)))
9348
        for fieldname in self.AddDiagnosticInfos:
9349
            packet.append(fieldname.to_binary())
9350
        packet.append(struct.pack('<i', len(self.RemoveResults)))
9351
        for fieldname in self.RemoveResults:
9352
            packet.append(fieldname.to_binary())
9353
        packet.append(struct.pack('<i', len(self.RemoveDiagnosticInfos)))
9354
        for fieldname in self.RemoveDiagnosticInfos:
9355
            packet.append(fieldname.to_binary())
9356
        return b''.join(packet)
9357
        
9358 1
    @staticmethod
9359
    def from_binary(data):
9360
        obj = SetTriggeringResult()
9361
        length = struct.unpack('<i', data.read(4))[0]
9362
        if length != -1:
9363
            for _ in range(0, length):
9364
                obj.AddResults.append(StatusCode.from_binary(data))
9365
        length = struct.unpack('<i', data.read(4))[0]
9366
        if length != -1:
9367
            for _ in range(0, length):
9368
                obj.AddDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9369
        length = struct.unpack('<i', data.read(4))[0]
9370
        if length != -1:
9371
            for _ in range(0, length):
9372
                obj.RemoveResults.append(StatusCode.from_binary(data))
9373
        length = struct.unpack('<i', data.read(4))[0]
9374
        if length != -1:
9375
            for _ in range(0, length):
9376
                obj.RemoveDiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9377
        return obj
9378
    
9379 1
    def __str__(self):
9380
        return 'SetTriggeringResult(' + 'AddResults:' + str(self.AddResults) + ', '  + \
9381
             'AddDiagnosticInfos:' + str(self.AddDiagnosticInfos) + ', '  + \
9382
             'RemoveResults:' + str(self.RemoveResults) + ', '  + \
9383
             'RemoveDiagnosticInfos:' + str(self.RemoveDiagnosticInfos) + ')'
9384
    
9385 1
    __repr__ = __str__
9386
    
9387 1
class SetTriggeringResponse(FrozenClass):
9388
    '''
9389
    :ivar TypeId: 
9390
    :vartype TypeId: NodeId 
9391
    :ivar ResponseHeader: 
9392
    :vartype ResponseHeader: ResponseHeader 
9393
    :ivar Parameters: 
9394
    :vartype Parameters: SetTriggeringResult 
9395
    '''
9396 1
    def __init__(self):
9397
        self.TypeId = FourByteNodeId(ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary)
9398
        self.ResponseHeader = ResponseHeader()
9399
        self.Parameters = SetTriggeringResult()
9400
        self._freeze()
9401
    
9402 1
    def to_binary(self):
9403
        packet = []
9404
        packet.append(self.TypeId.to_binary())
9405
        packet.append(self.ResponseHeader.to_binary())
9406
        packet.append(self.Parameters.to_binary())
9407
        return b''.join(packet)
9408
        
9409 1
    @staticmethod
9410
    def from_binary(data):
9411
        obj = SetTriggeringResponse()
9412
        obj.TypeId = NodeId.from_binary(data)
9413
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9414
        obj.Parameters = SetTriggeringResult.from_binary(data)
9415
        return obj
9416
    
9417 1
    def __str__(self):
9418
        return 'SetTriggeringResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9419
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9420
             'Parameters:' + str(self.Parameters) + ')'
9421
    
9422 1
    __repr__ = __str__
9423
    
9424 1
class DeleteMonitoredItemsParameters(FrozenClass):
9425
    '''
9426
    :ivar SubscriptionId: 
9427
    :vartype SubscriptionId: UInt32 
9428
    :ivar MonitoredItemIds: 
9429
    :vartype MonitoredItemIds: UInt32 
9430
    '''
9431 1
    def __init__(self):
9432 1
        self.SubscriptionId = 0
9433 1
        self.MonitoredItemIds = []
9434 1
        self._freeze()
9435
    
9436 1
    def to_binary(self):
9437 1
        packet = []
9438 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9439 1
        packet.append(struct.pack('<i', len(self.MonitoredItemIds)))
9440 1
        for fieldname in self.MonitoredItemIds:
9441 1
            packet.append(pack_uatype('UInt32', fieldname))
9442 1
        return b''.join(packet)
9443
        
9444 1
    @staticmethod
9445
    def from_binary(data):
9446 1
        obj = DeleteMonitoredItemsParameters()
9447 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9448 1
        obj.MonitoredItemIds = unpack_uatype_array('UInt32', data)
9449 1
        return obj
9450
    
9451 1
    def __str__(self):
9452
        return 'DeleteMonitoredItemsParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9453
             'MonitoredItemIds:' + str(self.MonitoredItemIds) + ')'
9454
    
9455 1
    __repr__ = __str__
9456
    
9457 1
class DeleteMonitoredItemsRequest(FrozenClass):
9458
    '''
9459
    :ivar TypeId: 
9460
    :vartype TypeId: NodeId 
9461
    :ivar RequestHeader: 
9462
    :vartype RequestHeader: RequestHeader 
9463
    :ivar Parameters: 
9464
    :vartype Parameters: DeleteMonitoredItemsParameters 
9465
    '''
9466 1
    def __init__(self):
9467 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary)
9468 1
        self.RequestHeader = RequestHeader()
9469 1
        self.Parameters = DeleteMonitoredItemsParameters()
9470 1
        self._freeze()
9471
    
9472 1
    def to_binary(self):
9473 1
        packet = []
9474 1
        packet.append(self.TypeId.to_binary())
9475 1
        packet.append(self.RequestHeader.to_binary())
9476 1
        packet.append(self.Parameters.to_binary())
9477 1
        return b''.join(packet)
9478
        
9479 1
    @staticmethod
9480
    def from_binary(data):
9481
        obj = DeleteMonitoredItemsRequest()
9482
        obj.TypeId = NodeId.from_binary(data)
9483
        obj.RequestHeader = RequestHeader.from_binary(data)
9484
        obj.Parameters = DeleteMonitoredItemsParameters.from_binary(data)
9485
        return obj
9486
    
9487 1
    def __str__(self):
9488
        return 'DeleteMonitoredItemsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9489
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9490
             'Parameters:' + str(self.Parameters) + ')'
9491
    
9492 1
    __repr__ = __str__
9493
    
9494 1
class DeleteMonitoredItemsResponse(FrozenClass):
9495
    '''
9496
    :ivar TypeId: 
9497
    :vartype TypeId: NodeId 
9498
    :ivar ResponseHeader: 
9499
    :vartype ResponseHeader: ResponseHeader 
9500
    :ivar Results: 
9501
    :vartype Results: StatusCode 
9502
    :ivar DiagnosticInfos: 
9503
    :vartype DiagnosticInfos: DiagnosticInfo 
9504
    '''
9505 1
    def __init__(self):
9506 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary)
9507 1
        self.ResponseHeader = ResponseHeader()
9508 1
        self.Results = []
9509 1
        self.DiagnosticInfos = []
9510 1
        self._freeze()
9511
    
9512 1
    def to_binary(self):
9513 1
        packet = []
9514 1
        packet.append(self.TypeId.to_binary())
9515 1
        packet.append(self.ResponseHeader.to_binary())
9516 1
        packet.append(struct.pack('<i', len(self.Results)))
9517 1
        for fieldname in self.Results:
9518 1
            packet.append(fieldname.to_binary())
9519 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9520 1
        for fieldname in self.DiagnosticInfos:
9521
            packet.append(fieldname.to_binary())
9522 1
        return b''.join(packet)
9523
        
9524 1
    @staticmethod
9525
    def from_binary(data):
9526 1
        obj = DeleteMonitoredItemsResponse()
9527 1
        obj.TypeId = NodeId.from_binary(data)
9528 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9529 1
        length = struct.unpack('<i', data.read(4))[0]
9530 1
        if length != -1:
9531 1
            for _ in range(0, length):
9532 1
                obj.Results.append(StatusCode.from_binary(data))
9533 1
        length = struct.unpack('<i', data.read(4))[0]
9534 1
        if length != -1:
9535 1
            for _ in range(0, length):
9536
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9537 1
        return obj
9538
    
9539 1
    def __str__(self):
9540
        return 'DeleteMonitoredItemsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9541
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9542
             'Results:' + str(self.Results) + ', '  + \
9543
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9544
    
9545 1
    __repr__ = __str__
9546
    
9547 1
class CreateSubscriptionParameters(FrozenClass):
9548
    '''
9549
    :ivar RequestedPublishingInterval: 
9550
    :vartype RequestedPublishingInterval: Double 
9551
    :ivar RequestedLifetimeCount: 
9552
    :vartype RequestedLifetimeCount: UInt32 
9553
    :ivar RequestedMaxKeepAliveCount: 
9554
    :vartype RequestedMaxKeepAliveCount: UInt32 
9555
    :ivar MaxNotificationsPerPublish: 
9556
    :vartype MaxNotificationsPerPublish: UInt32 
9557
    :ivar PublishingEnabled: 
9558
    :vartype PublishingEnabled: Boolean 
9559
    :ivar Priority: 
9560
    :vartype Priority: Byte 
9561
    '''
9562 1
    def __init__(self):
9563 1
        self.RequestedPublishingInterval = 0
9564 1
        self.RequestedLifetimeCount = 0
9565 1
        self.RequestedMaxKeepAliveCount = 0
9566 1
        self.MaxNotificationsPerPublish = 0
9567 1
        self.PublishingEnabled = True
9568 1
        self.Priority = 0
9569 1
        self._freeze()
9570
    
9571 1
    def to_binary(self):
9572 1
        packet = []
9573 1
        packet.append(pack_uatype('Double', self.RequestedPublishingInterval))
9574 1
        packet.append(pack_uatype('UInt32', self.RequestedLifetimeCount))
9575 1
        packet.append(pack_uatype('UInt32', self.RequestedMaxKeepAliveCount))
9576 1
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
9577 1
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
9578 1
        packet.append(pack_uatype('Byte', self.Priority))
9579 1
        return b''.join(packet)
9580
        
9581 1
    @staticmethod
9582
    def from_binary(data):
9583 1
        obj = CreateSubscriptionParameters()
9584 1
        obj.RequestedPublishingInterval = unpack_uatype('Double', data)
9585 1
        obj.RequestedLifetimeCount = unpack_uatype('UInt32', data)
9586 1
        obj.RequestedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9587 1
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
9588 1
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
9589 1
        obj.Priority = unpack_uatype('Byte', data)
9590 1
        return obj
9591
    
9592 1
    def __str__(self):
9593
        return 'CreateSubscriptionParameters(' + 'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', '  + \
9594
             'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', '  + \
9595
             'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', '  + \
9596
             'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', '  + \
9597
             'PublishingEnabled:' + str(self.PublishingEnabled) + ', '  + \
9598
             'Priority:' + str(self.Priority) + ')'
9599
    
9600 1
    __repr__ = __str__
9601
    
9602 1
class CreateSubscriptionRequest(FrozenClass):
9603
    '''
9604
    :ivar TypeId: 
9605
    :vartype TypeId: NodeId 
9606
    :ivar RequestHeader: 
9607
    :vartype RequestHeader: RequestHeader 
9608
    :ivar Parameters: 
9609
    :vartype Parameters: CreateSubscriptionParameters 
9610
    '''
9611 1
    def __init__(self):
9612 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary)
9613 1
        self.RequestHeader = RequestHeader()
9614 1
        self.Parameters = CreateSubscriptionParameters()
9615 1
        self._freeze()
9616
    
9617 1
    def to_binary(self):
9618 1
        packet = []
9619 1
        packet.append(self.TypeId.to_binary())
9620 1
        packet.append(self.RequestHeader.to_binary())
9621 1
        packet.append(self.Parameters.to_binary())
9622 1
        return b''.join(packet)
9623
        
9624 1
    @staticmethod
9625
    def from_binary(data):
9626
        obj = CreateSubscriptionRequest()
9627
        obj.TypeId = NodeId.from_binary(data)
9628
        obj.RequestHeader = RequestHeader.from_binary(data)
9629
        obj.Parameters = CreateSubscriptionParameters.from_binary(data)
9630
        return obj
9631
    
9632 1
    def __str__(self):
9633
        return 'CreateSubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9634
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9635
             'Parameters:' + str(self.Parameters) + ')'
9636
    
9637 1
    __repr__ = __str__
9638
    
9639 1
class CreateSubscriptionResult(FrozenClass):
9640
    '''
9641
    :ivar SubscriptionId: 
9642
    :vartype SubscriptionId: UInt32 
9643
    :ivar RevisedPublishingInterval: 
9644
    :vartype RevisedPublishingInterval: Double 
9645
    :ivar RevisedLifetimeCount: 
9646
    :vartype RevisedLifetimeCount: UInt32 
9647
    :ivar RevisedMaxKeepAliveCount: 
9648
    :vartype RevisedMaxKeepAliveCount: UInt32 
9649
    '''
9650 1
    def __init__(self):
9651 1
        self.SubscriptionId = 0
9652 1
        self.RevisedPublishingInterval = 0
9653 1
        self.RevisedLifetimeCount = 0
9654 1
        self.RevisedMaxKeepAliveCount = 0
9655 1
        self._freeze()
9656
    
9657 1
    def to_binary(self):
9658 1
        packet = []
9659 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9660 1
        packet.append(pack_uatype('Double', self.RevisedPublishingInterval))
9661 1
        packet.append(pack_uatype('UInt32', self.RevisedLifetimeCount))
9662 1
        packet.append(pack_uatype('UInt32', self.RevisedMaxKeepAliveCount))
9663 1
        return b''.join(packet)
9664
        
9665 1
    @staticmethod
9666
    def from_binary(data):
9667 1
        obj = CreateSubscriptionResult()
9668 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9669 1
        obj.RevisedPublishingInterval = unpack_uatype('Double', data)
9670 1
        obj.RevisedLifetimeCount = unpack_uatype('UInt32', data)
9671 1
        obj.RevisedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9672 1
        return obj
9673
    
9674 1
    def __str__(self):
9675
        return 'CreateSubscriptionResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9676
             'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', '  + \
9677
             'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', '  + \
9678
             'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
9679
    
9680 1
    __repr__ = __str__
9681
    
9682 1
class CreateSubscriptionResponse(FrozenClass):
9683
    '''
9684
    :ivar TypeId: 
9685
    :vartype TypeId: NodeId 
9686
    :ivar ResponseHeader: 
9687
    :vartype ResponseHeader: ResponseHeader 
9688
    :ivar Parameters: 
9689
    :vartype Parameters: CreateSubscriptionResult 
9690
    '''
9691 1
    def __init__(self):
9692 1
        self.TypeId = FourByteNodeId(ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary)
9693 1
        self.ResponseHeader = ResponseHeader()
9694 1
        self.Parameters = CreateSubscriptionResult()
9695 1
        self._freeze()
9696
    
9697 1
    def to_binary(self):
9698 1
        packet = []
9699 1
        packet.append(self.TypeId.to_binary())
9700 1
        packet.append(self.ResponseHeader.to_binary())
9701 1
        packet.append(self.Parameters.to_binary())
9702 1
        return b''.join(packet)
9703
        
9704 1
    @staticmethod
9705
    def from_binary(data):
9706 1
        obj = CreateSubscriptionResponse()
9707 1
        obj.TypeId = NodeId.from_binary(data)
9708 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9709 1
        obj.Parameters = CreateSubscriptionResult.from_binary(data)
9710 1
        return obj
9711
    
9712 1
    def __str__(self):
9713
        return 'CreateSubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9714
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9715
             'Parameters:' + str(self.Parameters) + ')'
9716
    
9717 1
    __repr__ = __str__
9718
    
9719 1
class ModifySubscriptionParameters(FrozenClass):
9720
    '''
9721
    :ivar SubscriptionId: 
9722
    :vartype SubscriptionId: UInt32 
9723
    :ivar RequestedPublishingInterval: 
9724
    :vartype RequestedPublishingInterval: Double 
9725
    :ivar RequestedLifetimeCount: 
9726
    :vartype RequestedLifetimeCount: UInt32 
9727
    :ivar RequestedMaxKeepAliveCount: 
9728
    :vartype RequestedMaxKeepAliveCount: UInt32 
9729
    :ivar MaxNotificationsPerPublish: 
9730
    :vartype MaxNotificationsPerPublish: UInt32 
9731
    :ivar Priority: 
9732
    :vartype Priority: Byte 
9733
    '''
9734 1
    def __init__(self):
9735
        self.SubscriptionId = 0
9736
        self.RequestedPublishingInterval = 0
9737
        self.RequestedLifetimeCount = 0
9738
        self.RequestedMaxKeepAliveCount = 0
9739
        self.MaxNotificationsPerPublish = 0
9740
        self.Priority = 0
9741
        self._freeze()
9742
    
9743 1
    def to_binary(self):
9744
        packet = []
9745
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
9746
        packet.append(pack_uatype('Double', self.RequestedPublishingInterval))
9747
        packet.append(pack_uatype('UInt32', self.RequestedLifetimeCount))
9748
        packet.append(pack_uatype('UInt32', self.RequestedMaxKeepAliveCount))
9749
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
9750
        packet.append(pack_uatype('Byte', self.Priority))
9751
        return b''.join(packet)
9752
        
9753 1
    @staticmethod
9754
    def from_binary(data):
9755
        obj = ModifySubscriptionParameters()
9756
        obj.SubscriptionId = unpack_uatype('UInt32', data)
9757
        obj.RequestedPublishingInterval = unpack_uatype('Double', data)
9758
        obj.RequestedLifetimeCount = unpack_uatype('UInt32', data)
9759
        obj.RequestedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9760
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
9761
        obj.Priority = unpack_uatype('Byte', data)
9762
        return obj
9763
    
9764 1
    def __str__(self):
9765
        return 'ModifySubscriptionParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
9766
             'RequestedPublishingInterval:' + str(self.RequestedPublishingInterval) + ', '  + \
9767
             'RequestedLifetimeCount:' + str(self.RequestedLifetimeCount) + ', '  + \
9768
             'RequestedMaxKeepAliveCount:' + str(self.RequestedMaxKeepAliveCount) + ', '  + \
9769
             'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', '  + \
9770
             'Priority:' + str(self.Priority) + ')'
9771
    
9772 1
    __repr__ = __str__
9773
    
9774 1
class ModifySubscriptionRequest(FrozenClass):
9775
    '''
9776
    :ivar TypeId: 
9777
    :vartype TypeId: NodeId 
9778
    :ivar RequestHeader: 
9779
    :vartype RequestHeader: RequestHeader 
9780
    :ivar Parameters: 
9781
    :vartype Parameters: ModifySubscriptionParameters 
9782
    '''
9783 1
    def __init__(self):
9784
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary)
9785
        self.RequestHeader = RequestHeader()
9786
        self.Parameters = ModifySubscriptionParameters()
9787
        self._freeze()
9788
    
9789 1
    def to_binary(self):
9790
        packet = []
9791
        packet.append(self.TypeId.to_binary())
9792
        packet.append(self.RequestHeader.to_binary())
9793
        packet.append(self.Parameters.to_binary())
9794
        return b''.join(packet)
9795
        
9796 1
    @staticmethod
9797
    def from_binary(data):
9798
        obj = ModifySubscriptionRequest()
9799
        obj.TypeId = NodeId.from_binary(data)
9800
        obj.RequestHeader = RequestHeader.from_binary(data)
9801
        obj.Parameters = ModifySubscriptionParameters.from_binary(data)
9802
        return obj
9803
    
9804 1
    def __str__(self):
9805
        return 'ModifySubscriptionRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9806
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9807
             'Parameters:' + str(self.Parameters) + ')'
9808
    
9809 1
    __repr__ = __str__
9810
    
9811 1
class ModifySubscriptionResult(FrozenClass):
9812
    '''
9813
    :ivar RevisedPublishingInterval: 
9814
    :vartype RevisedPublishingInterval: Double 
9815
    :ivar RevisedLifetimeCount: 
9816
    :vartype RevisedLifetimeCount: UInt32 
9817
    :ivar RevisedMaxKeepAliveCount: 
9818
    :vartype RevisedMaxKeepAliveCount: UInt32 
9819
    '''
9820 1
    def __init__(self):
9821
        self.RevisedPublishingInterval = 0
9822
        self.RevisedLifetimeCount = 0
9823
        self.RevisedMaxKeepAliveCount = 0
9824
        self._freeze()
9825
    
9826 1
    def to_binary(self):
9827
        packet = []
9828
        packet.append(pack_uatype('Double', self.RevisedPublishingInterval))
9829
        packet.append(pack_uatype('UInt32', self.RevisedLifetimeCount))
9830
        packet.append(pack_uatype('UInt32', self.RevisedMaxKeepAliveCount))
9831
        return b''.join(packet)
9832
        
9833 1
    @staticmethod
9834
    def from_binary(data):
9835
        obj = ModifySubscriptionResult()
9836
        obj.RevisedPublishingInterval = unpack_uatype('Double', data)
9837
        obj.RevisedLifetimeCount = unpack_uatype('UInt32', data)
9838
        obj.RevisedMaxKeepAliveCount = unpack_uatype('UInt32', data)
9839
        return obj
9840
    
9841 1
    def __str__(self):
9842
        return 'ModifySubscriptionResult(' + 'RevisedPublishingInterval:' + str(self.RevisedPublishingInterval) + ', '  + \
9843
             'RevisedLifetimeCount:' + str(self.RevisedLifetimeCount) + ', '  + \
9844
             'RevisedMaxKeepAliveCount:' + str(self.RevisedMaxKeepAliveCount) + ')'
9845
    
9846 1
    __repr__ = __str__
9847
    
9848 1
class ModifySubscriptionResponse(FrozenClass):
9849
    '''
9850
    :ivar TypeId: 
9851
    :vartype TypeId: NodeId 
9852
    :ivar ResponseHeader: 
9853
    :vartype ResponseHeader: ResponseHeader 
9854
    :ivar Parameters: 
9855
    :vartype Parameters: ModifySubscriptionResult 
9856
    '''
9857 1
    def __init__(self):
9858
        self.TypeId = FourByteNodeId(ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary)
9859
        self.ResponseHeader = ResponseHeader()
9860
        self.Parameters = ModifySubscriptionResult()
9861
        self._freeze()
9862
    
9863 1
    def to_binary(self):
9864
        packet = []
9865
        packet.append(self.TypeId.to_binary())
9866
        packet.append(self.ResponseHeader.to_binary())
9867
        packet.append(self.Parameters.to_binary())
9868
        return b''.join(packet)
9869
        
9870 1
    @staticmethod
9871
    def from_binary(data):
9872
        obj = ModifySubscriptionResponse()
9873
        obj.TypeId = NodeId.from_binary(data)
9874
        obj.ResponseHeader = ResponseHeader.from_binary(data)
9875
        obj.Parameters = ModifySubscriptionResult.from_binary(data)
9876
        return obj
9877
    
9878 1
    def __str__(self):
9879
        return 'ModifySubscriptionResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9880
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
9881
             'Parameters:' + str(self.Parameters) + ')'
9882
    
9883 1
    __repr__ = __str__
9884
    
9885 1
class SetPublishingModeParameters(FrozenClass):
9886
    '''
9887
    :ivar PublishingEnabled: 
9888
    :vartype PublishingEnabled: Boolean 
9889
    :ivar SubscriptionIds: 
9890
    :vartype SubscriptionIds: UInt32 
9891
    '''
9892 1
    def __init__(self):
9893
        self.PublishingEnabled = True
9894
        self.SubscriptionIds = []
9895
        self._freeze()
9896
    
9897 1
    def to_binary(self):
9898
        packet = []
9899
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
9900
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
9901
        for fieldname in self.SubscriptionIds:
9902
            packet.append(pack_uatype('UInt32', fieldname))
9903
        return b''.join(packet)
9904
        
9905 1
    @staticmethod
9906
    def from_binary(data):
9907
        obj = SetPublishingModeParameters()
9908
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
9909
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
9910
        return obj
9911
    
9912 1
    def __str__(self):
9913
        return 'SetPublishingModeParameters(' + 'PublishingEnabled:' + str(self.PublishingEnabled) + ', '  + \
9914
             'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
9915
    
9916 1
    __repr__ = __str__
9917
    
9918 1
class SetPublishingModeRequest(FrozenClass):
9919
    '''
9920
    :ivar TypeId: 
9921
    :vartype TypeId: NodeId 
9922
    :ivar RequestHeader: 
9923
    :vartype RequestHeader: RequestHeader 
9924
    :ivar Parameters: 
9925
    :vartype Parameters: SetPublishingModeParameters 
9926
    '''
9927 1
    def __init__(self):
9928
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary)
9929
        self.RequestHeader = RequestHeader()
9930
        self.Parameters = SetPublishingModeParameters()
9931
        self._freeze()
9932
    
9933 1
    def to_binary(self):
9934
        packet = []
9935
        packet.append(self.TypeId.to_binary())
9936
        packet.append(self.RequestHeader.to_binary())
9937
        packet.append(self.Parameters.to_binary())
9938
        return b''.join(packet)
9939
        
9940 1
    @staticmethod
9941
    def from_binary(data):
9942
        obj = SetPublishingModeRequest()
9943
        obj.TypeId = NodeId.from_binary(data)
9944
        obj.RequestHeader = RequestHeader.from_binary(data)
9945
        obj.Parameters = SetPublishingModeParameters.from_binary(data)
9946
        return obj
9947
    
9948 1
    def __str__(self):
9949
        return 'SetPublishingModeRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
9950
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
9951
             'Parameters:' + str(self.Parameters) + ')'
9952
    
9953 1
    __repr__ = __str__
9954
    
9955 1
class SetPublishingModeResult(FrozenClass):
9956
    '''
9957
    :ivar Results: 
9958
    :vartype Results: StatusCode 
9959
    :ivar DiagnosticInfos: 
9960
    :vartype DiagnosticInfos: DiagnosticInfo 
9961
    '''
9962 1
    def __init__(self):
9963
        self.Results = []
9964
        self.DiagnosticInfos = []
9965
        self._freeze()
9966
    
9967 1
    def to_binary(self):
9968
        packet = []
9969
        packet.append(struct.pack('<i', len(self.Results)))
9970
        for fieldname in self.Results:
9971
            packet.append(fieldname.to_binary())
9972
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
9973
        for fieldname in self.DiagnosticInfos:
9974
            packet.append(fieldname.to_binary())
9975
        return b''.join(packet)
9976
        
9977 1
    @staticmethod
9978
    def from_binary(data):
9979
        obj = SetPublishingModeResult()
9980
        length = struct.unpack('<i', data.read(4))[0]
9981
        if length != -1:
9982
            for _ in range(0, length):
9983
                obj.Results.append(StatusCode.from_binary(data))
9984
        length = struct.unpack('<i', data.read(4))[0]
9985
        if length != -1:
9986
            for _ in range(0, length):
9987
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
9988
        return obj
9989
    
9990 1
    def __str__(self):
9991
        return 'SetPublishingModeResult(' + 'Results:' + str(self.Results) + ', '  + \
9992
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
9993
    
9994 1
    __repr__ = __str__
9995
    
9996 1
class SetPublishingModeResponse(FrozenClass):
9997
    '''
9998
    :ivar TypeId: 
9999
    :vartype TypeId: NodeId 
10000
    :ivar ResponseHeader: 
10001
    :vartype ResponseHeader: ResponseHeader 
10002
    :ivar Parameters: 
10003
    :vartype Parameters: SetPublishingModeResult 
10004
    '''
10005 1
    def __init__(self):
10006
        self.TypeId = FourByteNodeId(ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary)
10007
        self.ResponseHeader = ResponseHeader()
10008
        self.Parameters = SetPublishingModeResult()
10009
        self._freeze()
10010
    
10011 1
    def to_binary(self):
10012
        packet = []
10013
        packet.append(self.TypeId.to_binary())
10014
        packet.append(self.ResponseHeader.to_binary())
10015
        packet.append(self.Parameters.to_binary())
10016
        return b''.join(packet)
10017
        
10018 1
    @staticmethod
10019
    def from_binary(data):
10020
        obj = SetPublishingModeResponse()
10021
        obj.TypeId = NodeId.from_binary(data)
10022
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10023
        obj.Parameters = SetPublishingModeResult.from_binary(data)
10024
        return obj
10025
    
10026 1
    def __str__(self):
10027
        return 'SetPublishingModeResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10028
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10029
             'Parameters:' + str(self.Parameters) + ')'
10030
    
10031 1
    __repr__ = __str__
10032
    
10033 1
class NotificationMessage(FrozenClass):
10034
    '''
10035
    :ivar SequenceNumber: 
10036
    :vartype SequenceNumber: UInt32 
10037
    :ivar PublishTime: 
10038
    :vartype PublishTime: DateTime 
10039
    :ivar NotificationData: 
10040
    :vartype NotificationData: ExtensionObject 
10041
    '''
10042 1
    def __init__(self):
10043 1
        self.SequenceNumber = 0
10044 1
        self.PublishTime = datetime.now()
10045 1
        self.NotificationData = []
10046 1
        self._freeze()
10047
    
10048 1
    def to_binary(self):
10049 1
        packet = []
10050 1
        packet.append(pack_uatype('UInt32', self.SequenceNumber))
10051 1
        packet.append(pack_uatype('DateTime', self.PublishTime))
10052 1
        packet.append(struct.pack('<i', len(self.NotificationData)))
10053 1
        for fieldname in self.NotificationData:
10054 1
            packet.append(extensionobject_to_binary(fieldname))
10055 1
        return b''.join(packet)
10056
        
10057 1
    @staticmethod
10058
    def from_binary(data):
10059 1
        obj = NotificationMessage()
10060 1
        obj.SequenceNumber = unpack_uatype('UInt32', data)
10061 1
        obj.PublishTime = unpack_uatype('DateTime', data)
10062 1
        length = struct.unpack('<i', data.read(4))[0]
10063 1
        if length != -1:
10064 1
            for _ in range(0, length):
10065 1
                obj.NotificationData.append(extensionobject_from_binary(data))
10066 1
        return obj
10067
    
10068 1
    def __str__(self):
10069
        return 'NotificationMessage(' + 'SequenceNumber:' + str(self.SequenceNumber) + ', '  + \
10070
             'PublishTime:' + str(self.PublishTime) + ', '  + \
10071
             'NotificationData:' + str(self.NotificationData) + ')'
10072
    
10073 1
    __repr__ = __str__
10074
    
10075 1
class NotificationData(FrozenClass):
10076
    '''
10077
    '''
10078 1
    def __init__(self):
10079
        self._freeze()
10080
    
10081 1
    def to_binary(self):
10082
        packet = []
10083
        return b''.join(packet)
10084
        
10085 1
    @staticmethod
10086
    def from_binary(data):
10087
        obj = NotificationData()
10088
        return obj
10089
    
10090 1
    def __str__(self):
10091
        return 'NotificationData(' +  + ')'
10092
    
10093 1
    __repr__ = __str__
10094
    
10095 1
class DataChangeNotification(FrozenClass):
10096
    '''
10097
    :ivar MonitoredItems: 
10098
    :vartype MonitoredItems: MonitoredItemNotification 
10099
    :ivar DiagnosticInfos: 
10100
    :vartype DiagnosticInfos: DiagnosticInfo 
10101
    '''
10102 1
    def __init__(self):
10103 1
        self.MonitoredItems = []
10104 1
        self.DiagnosticInfos = []
10105 1
        self._freeze()
10106
    
10107 1
    def to_binary(self):
10108 1
        packet = []
10109 1
        packet.append(struct.pack('<i', len(self.MonitoredItems)))
10110 1
        for fieldname in self.MonitoredItems:
10111 1
            packet.append(fieldname.to_binary())
10112 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10113 1
        for fieldname in self.DiagnosticInfos:
10114
            packet.append(fieldname.to_binary())
10115 1
        return b''.join(packet)
10116
        
10117 1
    @staticmethod
10118
    def from_binary(data):
10119 1
        obj = DataChangeNotification()
10120 1
        length = struct.unpack('<i', data.read(4))[0]
10121 1
        if length != -1:
10122 1
            for _ in range(0, length):
10123 1
                obj.MonitoredItems.append(MonitoredItemNotification.from_binary(data))
10124 1
        length = struct.unpack('<i', data.read(4))[0]
10125 1
        if length != -1:
10126 1
            for _ in range(0, length):
10127
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10128 1
        return obj
10129
    
10130 1
    def __str__(self):
10131
        return 'DataChangeNotification(' + 'MonitoredItems:' + str(self.MonitoredItems) + ', '  + \
10132
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10133
    
10134 1
    __repr__ = __str__
10135
    
10136 1
class MonitoredItemNotification(FrozenClass):
10137
    '''
10138
    :ivar ClientHandle: 
10139
    :vartype ClientHandle: UInt32 
10140
    :ivar Value: 
10141
    :vartype Value: DataValue 
10142
    '''
10143 1
    def __init__(self):
10144 1
        self.ClientHandle = 0
10145 1
        self.Value = DataValue()
10146 1
        self._freeze()
10147
    
10148 1
    def to_binary(self):
10149 1
        packet = []
10150 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
10151 1
        packet.append(self.Value.to_binary())
10152 1
        return b''.join(packet)
10153
        
10154 1
    @staticmethod
10155
    def from_binary(data):
10156 1
        obj = MonitoredItemNotification()
10157 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
10158 1
        obj.Value = DataValue.from_binary(data)
10159 1
        return obj
10160
    
10161 1
    def __str__(self):
10162
        return 'MonitoredItemNotification(' + 'ClientHandle:' + str(self.ClientHandle) + ', '  + \
10163
             'Value:' + str(self.Value) + ')'
10164
    
10165 1
    __repr__ = __str__
10166
    
10167 1
class EventNotificationList(FrozenClass):
10168
    '''
10169
    :ivar Events: 
10170
    :vartype Events: EventFieldList 
10171
    '''
10172 1
    def __init__(self):
10173 1
        self.Events = []
10174 1
        self._freeze()
10175
    
10176 1
    def to_binary(self):
10177 1
        packet = []
10178 1
        packet.append(struct.pack('<i', len(self.Events)))
10179 1
        for fieldname in self.Events:
10180 1
            packet.append(fieldname.to_binary())
10181 1
        return b''.join(packet)
10182
        
10183 1
    @staticmethod
10184
    def from_binary(data):
10185 1
        obj = EventNotificationList()
10186 1
        length = struct.unpack('<i', data.read(4))[0]
10187 1
        if length != -1:
10188 1
            for _ in range(0, length):
10189 1
                obj.Events.append(EventFieldList.from_binary(data))
10190 1
        return obj
10191
    
10192 1
    def __str__(self):
10193
        return 'EventNotificationList(' + 'Events:' + str(self.Events) + ')'
10194
    
10195 1
    __repr__ = __str__
10196
    
10197 1
class EventFieldList(FrozenClass):
10198
    '''
10199
    :ivar ClientHandle: 
10200
    :vartype ClientHandle: UInt32 
10201
    :ivar EventFields: 
10202
    :vartype EventFields: Variant 
10203
    '''
10204 1
    def __init__(self):
10205 1
        self.ClientHandle = 0
10206 1
        self.EventFields = []
10207 1
        self._freeze()
10208
    
10209 1
    def to_binary(self):
10210 1
        packet = []
10211 1
        packet.append(pack_uatype('UInt32', self.ClientHandle))
10212 1
        packet.append(struct.pack('<i', len(self.EventFields)))
10213 1
        for fieldname in self.EventFields:
10214 1
            packet.append(fieldname.to_binary())
10215 1
        return b''.join(packet)
10216
        
10217 1
    @staticmethod
10218
    def from_binary(data):
10219 1
        obj = EventFieldList()
10220 1
        obj.ClientHandle = unpack_uatype('UInt32', data)
10221 1
        length = struct.unpack('<i', data.read(4))[0]
10222 1
        if length != -1:
10223 1
            for _ in range(0, length):
10224 1
                obj.EventFields.append(Variant.from_binary(data))
10225 1
        return obj
10226
    
10227 1
    def __str__(self):
10228
        return 'EventFieldList(' + 'ClientHandle:' + str(self.ClientHandle) + ', '  + \
10229
             'EventFields:' + str(self.EventFields) + ')'
10230
    
10231 1
    __repr__ = __str__
10232
    
10233 1
class HistoryEventFieldList(FrozenClass):
10234
    '''
10235
    :ivar EventFields: 
10236
    :vartype EventFields: Variant 
10237
    '''
10238 1
    def __init__(self):
10239
        self.EventFields = []
10240
        self._freeze()
10241
    
10242 1
    def to_binary(self):
10243
        packet = []
10244
        packet.append(struct.pack('<i', len(self.EventFields)))
10245
        for fieldname in self.EventFields:
10246
            packet.append(fieldname.to_binary())
10247
        return b''.join(packet)
10248
        
10249 1
    @staticmethod
10250
    def from_binary(data):
10251
        obj = HistoryEventFieldList()
10252
        length = struct.unpack('<i', data.read(4))[0]
10253
        if length != -1:
10254
            for _ in range(0, length):
10255
                obj.EventFields.append(Variant.from_binary(data))
10256
        return obj
10257
    
10258 1
    def __str__(self):
10259
        return 'HistoryEventFieldList(' + 'EventFields:' + str(self.EventFields) + ')'
10260
    
10261 1
    __repr__ = __str__
10262
    
10263 1
class StatusChangeNotification(FrozenClass):
10264
    '''
10265
    :ivar Status: 
10266
    :vartype Status: StatusCode 
10267
    :ivar DiagnosticInfo: 
10268
    :vartype DiagnosticInfo: DiagnosticInfo 
10269
    '''
10270 1
    def __init__(self):
10271
        self.Status = StatusCode()
10272
        self.DiagnosticInfo = DiagnosticInfo()
10273
        self._freeze()
10274
    
10275 1
    def to_binary(self):
10276
        packet = []
10277
        packet.append(self.Status.to_binary())
10278
        packet.append(self.DiagnosticInfo.to_binary())
10279
        return b''.join(packet)
10280
        
10281 1
    @staticmethod
10282
    def from_binary(data):
10283
        obj = StatusChangeNotification()
10284
        obj.Status = StatusCode.from_binary(data)
10285
        obj.DiagnosticInfo = DiagnosticInfo.from_binary(data)
10286
        return obj
10287
    
10288 1
    def __str__(self):
10289
        return 'StatusChangeNotification(' + 'Status:' + str(self.Status) + ', '  + \
10290
             'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
10291
    
10292 1
    __repr__ = __str__
10293
    
10294 1
class SubscriptionAcknowledgement(FrozenClass):
10295
    '''
10296
    :ivar SubscriptionId: 
10297
    :vartype SubscriptionId: UInt32 
10298
    :ivar SequenceNumber: 
10299
    :vartype SequenceNumber: UInt32 
10300
    '''
10301 1
    def __init__(self):
10302 1
        self.SubscriptionId = 0
10303 1
        self.SequenceNumber = 0
10304 1
        self._freeze()
10305
    
10306 1
    def to_binary(self):
10307 1
        packet = []
10308 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10309 1
        packet.append(pack_uatype('UInt32', self.SequenceNumber))
10310 1
        return b''.join(packet)
10311
        
10312 1
    @staticmethod
10313
    def from_binary(data):
10314 1
        obj = SubscriptionAcknowledgement()
10315 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10316 1
        obj.SequenceNumber = unpack_uatype('UInt32', data)
10317 1
        return obj
10318
    
10319 1
    def __str__(self):
10320
        return 'SubscriptionAcknowledgement(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
10321
             'SequenceNumber:' + str(self.SequenceNumber) + ')'
10322
    
10323 1
    __repr__ = __str__
10324
    
10325 1
class PublishParameters(FrozenClass):
10326
    '''
10327
    :ivar SubscriptionAcknowledgements: 
10328
    :vartype SubscriptionAcknowledgements: SubscriptionAcknowledgement 
10329
    '''
10330 1
    def __init__(self):
10331 1
        self.SubscriptionAcknowledgements = []
10332 1
        self._freeze()
10333
    
10334 1
    def to_binary(self):
10335 1
        packet = []
10336 1
        packet.append(struct.pack('<i', len(self.SubscriptionAcknowledgements)))
10337 1
        for fieldname in self.SubscriptionAcknowledgements:
10338 1
            packet.append(fieldname.to_binary())
10339 1
        return b''.join(packet)
10340
        
10341 1
    @staticmethod
10342
    def from_binary(data):
10343 1
        obj = PublishParameters()
10344 1
        length = struct.unpack('<i', data.read(4))[0]
10345 1
        if length != -1:
10346 1
            for _ in range(0, length):
10347 1
                obj.SubscriptionAcknowledgements.append(SubscriptionAcknowledgement.from_binary(data))
10348 1
        return obj
10349
    
10350 1
    def __str__(self):
10351
        return 'PublishParameters(' + 'SubscriptionAcknowledgements:' + str(self.SubscriptionAcknowledgements) + ')'
10352
    
10353 1
    __repr__ = __str__
10354
    
10355 1
class PublishRequest(FrozenClass):
10356
    '''
10357
    :ivar TypeId: 
10358
    :vartype TypeId: NodeId 
10359
    :ivar RequestHeader: 
10360
    :vartype RequestHeader: RequestHeader 
10361
    :ivar Parameters: 
10362
    :vartype Parameters: PublishParameters 
10363
    '''
10364 1
    def __init__(self):
10365 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishRequest_Encoding_DefaultBinary)
10366 1
        self.RequestHeader = RequestHeader()
10367 1
        self.Parameters = PublishParameters()
10368 1
        self._freeze()
10369
    
10370 1
    def to_binary(self):
10371 1
        packet = []
10372 1
        packet.append(self.TypeId.to_binary())
10373 1
        packet.append(self.RequestHeader.to_binary())
10374 1
        packet.append(self.Parameters.to_binary())
10375 1
        return b''.join(packet)
10376
        
10377 1
    @staticmethod
10378
    def from_binary(data):
10379
        obj = PublishRequest()
10380
        obj.TypeId = NodeId.from_binary(data)
10381
        obj.RequestHeader = RequestHeader.from_binary(data)
10382
        obj.Parameters = PublishParameters.from_binary(data)
10383
        return obj
10384
    
10385 1
    def __str__(self):
10386
        return 'PublishRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10387
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10388
             'Parameters:' + str(self.Parameters) + ')'
10389
    
10390 1
    __repr__ = __str__
10391
    
10392 1
class PublishResult(FrozenClass):
10393
    '''
10394
    :ivar SubscriptionId: 
10395
    :vartype SubscriptionId: UInt32 
10396
    :ivar AvailableSequenceNumbers: 
10397
    :vartype AvailableSequenceNumbers: UInt32 
10398
    :ivar MoreNotifications: 
10399
    :vartype MoreNotifications: Boolean 
10400
    :ivar NotificationMessage: 
10401
    :vartype NotificationMessage: NotificationMessage 
10402
    :ivar Results: 
10403
    :vartype Results: StatusCode 
10404
    :ivar DiagnosticInfos: 
10405
    :vartype DiagnosticInfos: DiagnosticInfo 
10406
    '''
10407 1
    def __init__(self):
10408 1
        self.SubscriptionId = 0
10409 1
        self.AvailableSequenceNumbers = []
10410 1
        self.MoreNotifications = True
10411 1
        self.NotificationMessage = NotificationMessage()
10412 1
        self.Results = []
10413 1
        self.DiagnosticInfos = []
10414 1
        self._freeze()
10415
    
10416 1
    def to_binary(self):
10417 1
        packet = []
10418 1
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10419 1
        packet.append(struct.pack('<i', len(self.AvailableSequenceNumbers)))
10420 1
        for fieldname in self.AvailableSequenceNumbers:
10421 1
            packet.append(pack_uatype('UInt32', fieldname))
10422 1
        packet.append(pack_uatype('Boolean', self.MoreNotifications))
10423 1
        packet.append(self.NotificationMessage.to_binary())
10424 1
        packet.append(struct.pack('<i', len(self.Results)))
10425 1
        for fieldname in self.Results:
10426
            packet.append(fieldname.to_binary())
10427 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10428 1
        for fieldname in self.DiagnosticInfos:
10429
            packet.append(fieldname.to_binary())
10430 1
        return b''.join(packet)
10431
        
10432 1
    @staticmethod
10433
    def from_binary(data):
10434 1
        obj = PublishResult()
10435 1
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10436 1
        obj.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
10437 1
        obj.MoreNotifications = unpack_uatype('Boolean', data)
10438 1
        obj.NotificationMessage = NotificationMessage.from_binary(data)
10439 1
        length = struct.unpack('<i', data.read(4))[0]
10440 1
        if length != -1:
10441 1
            for _ in range(0, length):
10442
                obj.Results.append(StatusCode.from_binary(data))
10443 1
        length = struct.unpack('<i', data.read(4))[0]
10444 1
        if length != -1:
10445 1
            for _ in range(0, length):
10446
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10447 1
        return obj
10448
    
10449 1
    def __str__(self):
10450
        return 'PublishResult(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
10451
             'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ', '  + \
10452
             'MoreNotifications:' + str(self.MoreNotifications) + ', '  + \
10453
             'NotificationMessage:' + str(self.NotificationMessage) + ', '  + \
10454
             'Results:' + str(self.Results) + ', '  + \
10455
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10456
    
10457 1
    __repr__ = __str__
10458
    
10459 1
class PublishResponse(FrozenClass):
10460
    '''
10461
    :ivar TypeId: 
10462
    :vartype TypeId: NodeId 
10463
    :ivar ResponseHeader: 
10464
    :vartype ResponseHeader: ResponseHeader 
10465
    :ivar Parameters: 
10466
    :vartype Parameters: PublishResult 
10467
    '''
10468 1
    def __init__(self):
10469 1
        self.TypeId = FourByteNodeId(ObjectIds.PublishResponse_Encoding_DefaultBinary)
10470 1
        self.ResponseHeader = ResponseHeader()
10471 1
        self.Parameters = PublishResult()
10472 1
        self._freeze()
10473
    
10474 1
    def to_binary(self):
10475 1
        packet = []
10476 1
        packet.append(self.TypeId.to_binary())
10477 1
        packet.append(self.ResponseHeader.to_binary())
10478 1
        packet.append(self.Parameters.to_binary())
10479 1
        return b''.join(packet)
10480
        
10481 1
    @staticmethod
10482
    def from_binary(data):
10483 1
        obj = PublishResponse()
10484 1
        obj.TypeId = NodeId.from_binary(data)
10485 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10486 1
        obj.Parameters = PublishResult.from_binary(data)
10487 1
        return obj
10488
    
10489 1
    def __str__(self):
10490
        return 'PublishResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10491
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10492
             'Parameters:' + str(self.Parameters) + ')'
10493
    
10494 1
    __repr__ = __str__
10495
    
10496 1
class RepublishParameters(FrozenClass):
10497
    '''
10498
    :ivar SubscriptionId: 
10499
    :vartype SubscriptionId: UInt32 
10500
    :ivar RetransmitSequenceNumber: 
10501
    :vartype RetransmitSequenceNumber: UInt32 
10502
    '''
10503 1
    def __init__(self):
10504
        self.SubscriptionId = 0
10505
        self.RetransmitSequenceNumber = 0
10506
        self._freeze()
10507
    
10508 1
    def to_binary(self):
10509
        packet = []
10510
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
10511
        packet.append(pack_uatype('UInt32', self.RetransmitSequenceNumber))
10512
        return b''.join(packet)
10513
        
10514 1
    @staticmethod
10515
    def from_binary(data):
10516
        obj = RepublishParameters()
10517
        obj.SubscriptionId = unpack_uatype('UInt32', data)
10518
        obj.RetransmitSequenceNumber = unpack_uatype('UInt32', data)
10519
        return obj
10520
    
10521 1
    def __str__(self):
10522
        return 'RepublishParameters(' + 'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
10523
             'RetransmitSequenceNumber:' + str(self.RetransmitSequenceNumber) + ')'
10524
    
10525 1
    __repr__ = __str__
10526
    
10527 1
class RepublishRequest(FrozenClass):
10528
    '''
10529
    :ivar TypeId: 
10530
    :vartype TypeId: NodeId 
10531
    :ivar RequestHeader: 
10532
    :vartype RequestHeader: RequestHeader 
10533
    :ivar Parameters: 
10534
    :vartype Parameters: RepublishParameters 
10535
    '''
10536 1
    def __init__(self):
10537
        self.TypeId = FourByteNodeId(ObjectIds.RepublishRequest_Encoding_DefaultBinary)
10538
        self.RequestHeader = RequestHeader()
10539
        self.Parameters = RepublishParameters()
10540
        self._freeze()
10541
    
10542 1
    def to_binary(self):
10543
        packet = []
10544
        packet.append(self.TypeId.to_binary())
10545
        packet.append(self.RequestHeader.to_binary())
10546
        packet.append(self.Parameters.to_binary())
10547
        return b''.join(packet)
10548
        
10549 1
    @staticmethod
10550
    def from_binary(data):
10551
        obj = RepublishRequest()
10552
        obj.TypeId = NodeId.from_binary(data)
10553
        obj.RequestHeader = RequestHeader.from_binary(data)
10554
        obj.Parameters = RepublishParameters.from_binary(data)
10555
        return obj
10556
    
10557 1
    def __str__(self):
10558
        return 'RepublishRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10559
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10560
             'Parameters:' + str(self.Parameters) + ')'
10561
    
10562 1
    __repr__ = __str__
10563
    
10564 1
class RepublishResponse(FrozenClass):
10565
    '''
10566
    :ivar TypeId: 
10567
    :vartype TypeId: NodeId 
10568
    :ivar ResponseHeader: 
10569
    :vartype ResponseHeader: ResponseHeader 
10570
    :ivar NotificationMessage: 
10571
    :vartype NotificationMessage: NotificationMessage 
10572
    '''
10573 1
    def __init__(self):
10574
        self.TypeId = FourByteNodeId(ObjectIds.RepublishResponse_Encoding_DefaultBinary)
10575
        self.ResponseHeader = ResponseHeader()
10576
        self.NotificationMessage = NotificationMessage()
10577
        self._freeze()
10578
    
10579 1
    def to_binary(self):
10580
        packet = []
10581
        packet.append(self.TypeId.to_binary())
10582
        packet.append(self.ResponseHeader.to_binary())
10583
        packet.append(self.NotificationMessage.to_binary())
10584
        return b''.join(packet)
10585
        
10586 1
    @staticmethod
10587
    def from_binary(data):
10588
        obj = RepublishResponse()
10589
        obj.TypeId = NodeId.from_binary(data)
10590
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10591
        obj.NotificationMessage = NotificationMessage.from_binary(data)
10592
        return obj
10593
    
10594 1
    def __str__(self):
10595
        return 'RepublishResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10596
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10597
             'NotificationMessage:' + str(self.NotificationMessage) + ')'
10598
    
10599 1
    __repr__ = __str__
10600
    
10601 1
class TransferResult(FrozenClass):
10602
    '''
10603
    :ivar StatusCode: 
10604
    :vartype StatusCode: StatusCode 
10605
    :ivar AvailableSequenceNumbers: 
10606
    :vartype AvailableSequenceNumbers: UInt32 
10607
    '''
10608 1
    def __init__(self):
10609
        self.StatusCode = StatusCode()
10610
        self.AvailableSequenceNumbers = []
10611
        self._freeze()
10612
    
10613 1
    def to_binary(self):
10614
        packet = []
10615
        packet.append(self.StatusCode.to_binary())
10616
        packet.append(struct.pack('<i', len(self.AvailableSequenceNumbers)))
10617
        for fieldname in self.AvailableSequenceNumbers:
10618
            packet.append(pack_uatype('UInt32', fieldname))
10619
        return b''.join(packet)
10620
        
10621 1
    @staticmethod
10622
    def from_binary(data):
10623
        obj = TransferResult()
10624
        obj.StatusCode = StatusCode.from_binary(data)
10625
        obj.AvailableSequenceNumbers = unpack_uatype_array('UInt32', data)
10626
        return obj
10627
    
10628 1
    def __str__(self):
10629
        return 'TransferResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
10630
             'AvailableSequenceNumbers:' + str(self.AvailableSequenceNumbers) + ')'
10631
    
10632 1
    __repr__ = __str__
10633
    
10634 1
class TransferSubscriptionsParameters(FrozenClass):
10635
    '''
10636
    :ivar SubscriptionIds: 
10637
    :vartype SubscriptionIds: UInt32 
10638
    :ivar SendInitialValues: 
10639
    :vartype SendInitialValues: Boolean 
10640
    '''
10641 1
    def __init__(self):
10642
        self.SubscriptionIds = []
10643
        self.SendInitialValues = True
10644
        self._freeze()
10645
    
10646 1
    def to_binary(self):
10647
        packet = []
10648
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
10649
        for fieldname in self.SubscriptionIds:
10650
            packet.append(pack_uatype('UInt32', fieldname))
10651
        packet.append(pack_uatype('Boolean', self.SendInitialValues))
10652
        return b''.join(packet)
10653
        
10654 1
    @staticmethod
10655
    def from_binary(data):
10656
        obj = TransferSubscriptionsParameters()
10657
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
10658
        obj.SendInitialValues = unpack_uatype('Boolean', data)
10659
        return obj
10660
    
10661 1
    def __str__(self):
10662
        return 'TransferSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ', '  + \
10663
             'SendInitialValues:' + str(self.SendInitialValues) + ')'
10664
    
10665 1
    __repr__ = __str__
10666
    
10667 1
class TransferSubscriptionsRequest(FrozenClass):
10668
    '''
10669
    :ivar TypeId: 
10670
    :vartype TypeId: NodeId 
10671
    :ivar RequestHeader: 
10672
    :vartype RequestHeader: RequestHeader 
10673
    :ivar Parameters: 
10674
    :vartype Parameters: TransferSubscriptionsParameters 
10675
    '''
10676 1
    def __init__(self):
10677
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary)
10678
        self.RequestHeader = RequestHeader()
10679
        self.Parameters = TransferSubscriptionsParameters()
10680
        self._freeze()
10681
    
10682 1
    def to_binary(self):
10683
        packet = []
10684
        packet.append(self.TypeId.to_binary())
10685
        packet.append(self.RequestHeader.to_binary())
10686
        packet.append(self.Parameters.to_binary())
10687
        return b''.join(packet)
10688
        
10689 1
    @staticmethod
10690
    def from_binary(data):
10691
        obj = TransferSubscriptionsRequest()
10692
        obj.TypeId = NodeId.from_binary(data)
10693
        obj.RequestHeader = RequestHeader.from_binary(data)
10694
        obj.Parameters = TransferSubscriptionsParameters.from_binary(data)
10695
        return obj
10696
    
10697 1
    def __str__(self):
10698
        return 'TransferSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10699
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10700
             'Parameters:' + str(self.Parameters) + ')'
10701
    
10702 1
    __repr__ = __str__
10703
    
10704 1
class TransferSubscriptionsResult(FrozenClass):
10705
    '''
10706
    :ivar Results: 
10707
    :vartype Results: TransferResult 
10708
    :ivar DiagnosticInfos: 
10709
    :vartype DiagnosticInfos: DiagnosticInfo 
10710
    '''
10711 1
    def __init__(self):
10712
        self.Results = []
10713
        self.DiagnosticInfos = []
10714
        self._freeze()
10715
    
10716 1
    def to_binary(self):
10717
        packet = []
10718
        packet.append(struct.pack('<i', len(self.Results)))
10719
        for fieldname in self.Results:
10720
            packet.append(fieldname.to_binary())
10721
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10722
        for fieldname in self.DiagnosticInfos:
10723
            packet.append(fieldname.to_binary())
10724
        return b''.join(packet)
10725
        
10726 1
    @staticmethod
10727
    def from_binary(data):
10728
        obj = TransferSubscriptionsResult()
10729
        length = struct.unpack('<i', data.read(4))[0]
10730
        if length != -1:
10731
            for _ in range(0, length):
10732
                obj.Results.append(TransferResult.from_binary(data))
10733
        length = struct.unpack('<i', data.read(4))[0]
10734
        if length != -1:
10735
            for _ in range(0, length):
10736
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10737
        return obj
10738
    
10739 1
    def __str__(self):
10740
        return 'TransferSubscriptionsResult(' + 'Results:' + str(self.Results) + ', '  + \
10741
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10742
    
10743 1
    __repr__ = __str__
10744
    
10745 1
class TransferSubscriptionsResponse(FrozenClass):
10746
    '''
10747
    :ivar TypeId: 
10748
    :vartype TypeId: NodeId 
10749
    :ivar ResponseHeader: 
10750
    :vartype ResponseHeader: ResponseHeader 
10751
    :ivar Parameters: 
10752
    :vartype Parameters: TransferSubscriptionsResult 
10753
    '''
10754 1
    def __init__(self):
10755
        self.TypeId = FourByteNodeId(ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary)
10756
        self.ResponseHeader = ResponseHeader()
10757
        self.Parameters = TransferSubscriptionsResult()
10758
        self._freeze()
10759
    
10760 1
    def to_binary(self):
10761
        packet = []
10762
        packet.append(self.TypeId.to_binary())
10763
        packet.append(self.ResponseHeader.to_binary())
10764
        packet.append(self.Parameters.to_binary())
10765
        return b''.join(packet)
10766
        
10767 1
    @staticmethod
10768
    def from_binary(data):
10769
        obj = TransferSubscriptionsResponse()
10770
        obj.TypeId = NodeId.from_binary(data)
10771
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10772
        obj.Parameters = TransferSubscriptionsResult.from_binary(data)
10773
        return obj
10774
    
10775 1
    def __str__(self):
10776
        return 'TransferSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10777
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10778
             'Parameters:' + str(self.Parameters) + ')'
10779
    
10780 1
    __repr__ = __str__
10781
    
10782 1
class DeleteSubscriptionsParameters(FrozenClass):
10783
    '''
10784
    :ivar SubscriptionIds: 
10785
    :vartype SubscriptionIds: UInt32 
10786
    '''
10787 1
    def __init__(self):
10788 1
        self.SubscriptionIds = []
10789 1
        self._freeze()
10790
    
10791 1
    def to_binary(self):
10792 1
        packet = []
10793 1
        packet.append(struct.pack('<i', len(self.SubscriptionIds)))
10794 1
        for fieldname in self.SubscriptionIds:
10795 1
            packet.append(pack_uatype('UInt32', fieldname))
10796 1
        return b''.join(packet)
10797
        
10798 1
    @staticmethod
10799
    def from_binary(data):
10800 1
        obj = DeleteSubscriptionsParameters()
10801 1
        obj.SubscriptionIds = unpack_uatype_array('UInt32', data)
10802 1
        return obj
10803
    
10804 1
    def __str__(self):
10805
        return 'DeleteSubscriptionsParameters(' + 'SubscriptionIds:' + str(self.SubscriptionIds) + ')'
10806
    
10807 1
    __repr__ = __str__
10808
    
10809 1
class DeleteSubscriptionsRequest(FrozenClass):
10810
    '''
10811
    :ivar TypeId: 
10812
    :vartype TypeId: NodeId 
10813
    :ivar RequestHeader: 
10814
    :vartype RequestHeader: RequestHeader 
10815
    :ivar Parameters: 
10816
    :vartype Parameters: DeleteSubscriptionsParameters 
10817
    '''
10818 1
    def __init__(self):
10819 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary)
10820 1
        self.RequestHeader = RequestHeader()
10821 1
        self.Parameters = DeleteSubscriptionsParameters()
10822 1
        self._freeze()
10823
    
10824 1
    def to_binary(self):
10825 1
        packet = []
10826 1
        packet.append(self.TypeId.to_binary())
10827 1
        packet.append(self.RequestHeader.to_binary())
10828 1
        packet.append(self.Parameters.to_binary())
10829 1
        return b''.join(packet)
10830
        
10831 1
    @staticmethod
10832
    def from_binary(data):
10833
        obj = DeleteSubscriptionsRequest()
10834
        obj.TypeId = NodeId.from_binary(data)
10835
        obj.RequestHeader = RequestHeader.from_binary(data)
10836
        obj.Parameters = DeleteSubscriptionsParameters.from_binary(data)
10837
        return obj
10838
    
10839 1
    def __str__(self):
10840
        return 'DeleteSubscriptionsRequest(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10841
             'RequestHeader:' + str(self.RequestHeader) + ', '  + \
10842
             'Parameters:' + str(self.Parameters) + ')'
10843
    
10844 1
    __repr__ = __str__
10845
    
10846 1
class DeleteSubscriptionsResponse(FrozenClass):
10847
    '''
10848
    :ivar TypeId: 
10849
    :vartype TypeId: NodeId 
10850
    :ivar ResponseHeader: 
10851
    :vartype ResponseHeader: ResponseHeader 
10852
    :ivar Results: 
10853
    :vartype Results: StatusCode 
10854
    :ivar DiagnosticInfos: 
10855
    :vartype DiagnosticInfos: DiagnosticInfo 
10856
    '''
10857 1
    def __init__(self):
10858 1
        self.TypeId = FourByteNodeId(ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary)
10859 1
        self.ResponseHeader = ResponseHeader()
10860 1
        self.Results = []
10861 1
        self.DiagnosticInfos = []
10862 1
        self._freeze()
10863
    
10864 1
    def to_binary(self):
10865 1
        packet = []
10866 1
        packet.append(self.TypeId.to_binary())
10867 1
        packet.append(self.ResponseHeader.to_binary())
10868 1
        packet.append(struct.pack('<i', len(self.Results)))
10869 1
        for fieldname in self.Results:
10870 1
            packet.append(fieldname.to_binary())
10871 1
        packet.append(struct.pack('<i', len(self.DiagnosticInfos)))
10872 1
        for fieldname in self.DiagnosticInfos:
10873
            packet.append(fieldname.to_binary())
10874 1
        return b''.join(packet)
10875
        
10876 1
    @staticmethod
10877
    def from_binary(data):
10878 1
        obj = DeleteSubscriptionsResponse()
10879 1
        obj.TypeId = NodeId.from_binary(data)
10880 1
        obj.ResponseHeader = ResponseHeader.from_binary(data)
10881 1
        length = struct.unpack('<i', data.read(4))[0]
10882 1
        if length != -1:
10883 1
            for _ in range(0, length):
10884 1
                obj.Results.append(StatusCode.from_binary(data))
10885 1
        length = struct.unpack('<i', data.read(4))[0]
10886 1
        if length != -1:
10887 1
            for _ in range(0, length):
10888
                obj.DiagnosticInfos.append(DiagnosticInfo.from_binary(data))
10889 1
        return obj
10890
    
10891 1
    def __str__(self):
10892
        return 'DeleteSubscriptionsResponse(' + 'TypeId:' + str(self.TypeId) + ', '  + \
10893
             'ResponseHeader:' + str(self.ResponseHeader) + ', '  + \
10894
             'Results:' + str(self.Results) + ', '  + \
10895
             'DiagnosticInfos:' + str(self.DiagnosticInfos) + ')'
10896
    
10897 1
    __repr__ = __str__
10898
    
10899 1
class BuildInfo(FrozenClass):
10900
    '''
10901
    :ivar ProductUri: 
10902
    :vartype ProductUri: String 
10903
    :ivar ManufacturerName: 
10904
    :vartype ManufacturerName: String 
10905
    :ivar ProductName: 
10906
    :vartype ProductName: String 
10907
    :ivar SoftwareVersion: 
10908
    :vartype SoftwareVersion: String 
10909
    :ivar BuildNumber: 
10910
    :vartype BuildNumber: String 
10911
    :ivar BuildDate: 
10912
    :vartype BuildDate: DateTime 
10913
    '''
10914 1
    def __init__(self):
10915
        self.ProductUri = ''
10916
        self.ManufacturerName = ''
10917
        self.ProductName = ''
10918
        self.SoftwareVersion = ''
10919
        self.BuildNumber = ''
10920
        self.BuildDate = datetime.now()
10921
        self._freeze()
10922
    
10923 1
    def to_binary(self):
10924
        packet = []
10925
        packet.append(pack_uatype('String', self.ProductUri))
10926
        packet.append(pack_uatype('String', self.ManufacturerName))
10927
        packet.append(pack_uatype('String', self.ProductName))
10928
        packet.append(pack_uatype('String', self.SoftwareVersion))
10929
        packet.append(pack_uatype('String', self.BuildNumber))
10930
        packet.append(pack_uatype('DateTime', self.BuildDate))
10931
        return b''.join(packet)
10932
        
10933 1
    @staticmethod
10934
    def from_binary(data):
10935
        obj = BuildInfo()
10936
        obj.ProductUri = unpack_uatype('String', data)
10937
        obj.ManufacturerName = unpack_uatype('String', data)
10938
        obj.ProductName = unpack_uatype('String', data)
10939
        obj.SoftwareVersion = unpack_uatype('String', data)
10940
        obj.BuildNumber = unpack_uatype('String', data)
10941
        obj.BuildDate = unpack_uatype('DateTime', data)
10942
        return obj
10943
    
10944 1
    def __str__(self):
10945
        return 'BuildInfo(' + 'ProductUri:' + str(self.ProductUri) + ', '  + \
10946
             'ManufacturerName:' + str(self.ManufacturerName) + ', '  + \
10947
             'ProductName:' + str(self.ProductName) + ', '  + \
10948
             'SoftwareVersion:' + str(self.SoftwareVersion) + ', '  + \
10949
             'BuildNumber:' + str(self.BuildNumber) + ', '  + \
10950
             'BuildDate:' + str(self.BuildDate) + ')'
10951
    
10952 1
    __repr__ = __str__
10953
    
10954 1
class RedundantServerDataType(FrozenClass):
10955
    '''
10956
    :ivar ServerId: 
10957
    :vartype ServerId: String 
10958
    :ivar ServiceLevel: 
10959
    :vartype ServiceLevel: Byte 
10960
    :ivar ServerState: 
10961
    :vartype ServerState: ServerState 
10962
    '''
10963 1
    def __init__(self):
10964
        self.ServerId = ''
10965
        self.ServiceLevel = 0
10966
        self.ServerState = 0
10967
        self._freeze()
10968
    
10969 1
    def to_binary(self):
10970
        packet = []
10971
        packet.append(pack_uatype('String', self.ServerId))
10972
        packet.append(pack_uatype('Byte', self.ServiceLevel))
10973
        packet.append(pack_uatype('UInt32', self.ServerState))
10974
        return b''.join(packet)
10975
        
10976 1
    @staticmethod
10977
    def from_binary(data):
10978
        obj = RedundantServerDataType()
10979
        obj.ServerId = unpack_uatype('String', data)
10980
        obj.ServiceLevel = unpack_uatype('Byte', data)
10981
        obj.ServerState = unpack_uatype('UInt32', data)
10982
        return obj
10983
    
10984 1
    def __str__(self):
10985
        return 'RedundantServerDataType(' + 'ServerId:' + str(self.ServerId) + ', '  + \
10986
             'ServiceLevel:' + str(self.ServiceLevel) + ', '  + \
10987
             'ServerState:' + str(self.ServerState) + ')'
10988
    
10989 1
    __repr__ = __str__
10990
    
10991 1
class EndpointUrlListDataType(FrozenClass):
10992
    '''
10993
    :ivar EndpointUrlList: 
10994
    :vartype EndpointUrlList: String 
10995
    '''
10996 1
    def __init__(self):
10997
        self.EndpointUrlList = []
10998
        self._freeze()
10999
    
11000 1
    def to_binary(self):
11001
        packet = []
11002
        packet.append(struct.pack('<i', len(self.EndpointUrlList)))
11003
        for fieldname in self.EndpointUrlList:
11004
            packet.append(pack_uatype('String', fieldname))
11005
        return b''.join(packet)
11006
        
11007 1
    @staticmethod
11008
    def from_binary(data):
11009
        obj = EndpointUrlListDataType()
11010
        obj.EndpointUrlList = unpack_uatype_array('String', data)
11011
        return obj
11012
    
11013 1
    def __str__(self):
11014
        return 'EndpointUrlListDataType(' + 'EndpointUrlList:' + str(self.EndpointUrlList) + ')'
11015
    
11016 1
    __repr__ = __str__
11017
    
11018 1
class NetworkGroupDataType(FrozenClass):
11019
    '''
11020
    :ivar ServerUri: 
11021
    :vartype ServerUri: String 
11022
    :ivar NetworkPaths: 
11023
    :vartype NetworkPaths: EndpointUrlListDataType 
11024
    '''
11025 1
    def __init__(self):
11026
        self.ServerUri = ''
11027
        self.NetworkPaths = []
11028
        self._freeze()
11029
    
11030 1
    def to_binary(self):
11031
        packet = []
11032
        packet.append(pack_uatype('String', self.ServerUri))
11033
        packet.append(struct.pack('<i', len(self.NetworkPaths)))
11034
        for fieldname in self.NetworkPaths:
11035
            packet.append(fieldname.to_binary())
11036
        return b''.join(packet)
11037
        
11038 1
    @staticmethod
11039
    def from_binary(data):
11040
        obj = NetworkGroupDataType()
11041
        obj.ServerUri = unpack_uatype('String', data)
11042
        length = struct.unpack('<i', data.read(4))[0]
11043
        if length != -1:
11044
            for _ in range(0, length):
11045
                obj.NetworkPaths.append(EndpointUrlListDataType.from_binary(data))
11046
        return obj
11047
    
11048 1
    def __str__(self):
11049
        return 'NetworkGroupDataType(' + 'ServerUri:' + str(self.ServerUri) + ', '  + \
11050
             'NetworkPaths:' + str(self.NetworkPaths) + ')'
11051
    
11052 1
    __repr__ = __str__
11053
    
11054 1
class SamplingIntervalDiagnosticsDataType(FrozenClass):
11055
    '''
11056
    :ivar SamplingInterval: 
11057
    :vartype SamplingInterval: Double 
11058
    :ivar MonitoredItemCount: 
11059
    :vartype MonitoredItemCount: UInt32 
11060
    :ivar MaxMonitoredItemCount: 
11061
    :vartype MaxMonitoredItemCount: UInt32 
11062
    :ivar DisabledMonitoredItemCount: 
11063
    :vartype DisabledMonitoredItemCount: UInt32 
11064
    '''
11065 1
    def __init__(self):
11066
        self.SamplingInterval = 0
11067
        self.MonitoredItemCount = 0
11068
        self.MaxMonitoredItemCount = 0
11069
        self.DisabledMonitoredItemCount = 0
11070
        self._freeze()
11071
    
11072 1
    def to_binary(self):
11073
        packet = []
11074
        packet.append(pack_uatype('Double', self.SamplingInterval))
11075
        packet.append(pack_uatype('UInt32', self.MonitoredItemCount))
11076
        packet.append(pack_uatype('UInt32', self.MaxMonitoredItemCount))
11077
        packet.append(pack_uatype('UInt32', self.DisabledMonitoredItemCount))
11078
        return b''.join(packet)
11079
        
11080 1
    @staticmethod
11081
    def from_binary(data):
11082
        obj = SamplingIntervalDiagnosticsDataType()
11083
        obj.SamplingInterval = unpack_uatype('Double', data)
11084
        obj.MonitoredItemCount = unpack_uatype('UInt32', data)
11085
        obj.MaxMonitoredItemCount = unpack_uatype('UInt32', data)
11086
        obj.DisabledMonitoredItemCount = unpack_uatype('UInt32', data)
11087
        return obj
11088
    
11089 1
    def __str__(self):
11090
        return 'SamplingIntervalDiagnosticsDataType(' + 'SamplingInterval:' + str(self.SamplingInterval) + ', '  + \
11091
             'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', '  + \
11092
             'MaxMonitoredItemCount:' + str(self.MaxMonitoredItemCount) + ', '  + \
11093
             'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ')'
11094
    
11095 1
    __repr__ = __str__
11096
    
11097 1
class ServerDiagnosticsSummaryDataType(FrozenClass):
11098
    '''
11099
    :ivar ServerViewCount: 
11100
    :vartype ServerViewCount: UInt32 
11101
    :ivar CurrentSessionCount: 
11102
    :vartype CurrentSessionCount: UInt32 
11103
    :ivar CumulatedSessionCount: 
11104
    :vartype CumulatedSessionCount: UInt32 
11105
    :ivar SecurityRejectedSessionCount: 
11106
    :vartype SecurityRejectedSessionCount: UInt32 
11107
    :ivar RejectedSessionCount: 
11108
    :vartype RejectedSessionCount: UInt32 
11109
    :ivar SessionTimeoutCount: 
11110
    :vartype SessionTimeoutCount: UInt32 
11111
    :ivar SessionAbortCount: 
11112
    :vartype SessionAbortCount: UInt32 
11113
    :ivar CurrentSubscriptionCount: 
11114
    :vartype CurrentSubscriptionCount: UInt32 
11115
    :ivar CumulatedSubscriptionCount: 
11116
    :vartype CumulatedSubscriptionCount: UInt32 
11117
    :ivar PublishingIntervalCount: 
11118
    :vartype PublishingIntervalCount: UInt32 
11119
    :ivar SecurityRejectedRequestsCount: 
11120
    :vartype SecurityRejectedRequestsCount: UInt32 
11121
    :ivar RejectedRequestsCount: 
11122
    :vartype RejectedRequestsCount: UInt32 
11123
    '''
11124 1
    def __init__(self):
11125
        self.ServerViewCount = 0
11126
        self.CurrentSessionCount = 0
11127
        self.CumulatedSessionCount = 0
11128
        self.SecurityRejectedSessionCount = 0
11129
        self.RejectedSessionCount = 0
11130
        self.SessionTimeoutCount = 0
11131
        self.SessionAbortCount = 0
11132
        self.CurrentSubscriptionCount = 0
11133
        self.CumulatedSubscriptionCount = 0
11134
        self.PublishingIntervalCount = 0
11135
        self.SecurityRejectedRequestsCount = 0
11136
        self.RejectedRequestsCount = 0
11137
        self._freeze()
11138
    
11139 1
    def to_binary(self):
11140
        packet = []
11141
        packet.append(pack_uatype('UInt32', self.ServerViewCount))
11142
        packet.append(pack_uatype('UInt32', self.CurrentSessionCount))
11143
        packet.append(pack_uatype('UInt32', self.CumulatedSessionCount))
11144
        packet.append(pack_uatype('UInt32', self.SecurityRejectedSessionCount))
11145
        packet.append(pack_uatype('UInt32', self.RejectedSessionCount))
11146
        packet.append(pack_uatype('UInt32', self.SessionTimeoutCount))
11147
        packet.append(pack_uatype('UInt32', self.SessionAbortCount))
11148
        packet.append(pack_uatype('UInt32', self.CurrentSubscriptionCount))
11149
        packet.append(pack_uatype('UInt32', self.CumulatedSubscriptionCount))
11150
        packet.append(pack_uatype('UInt32', self.PublishingIntervalCount))
11151
        packet.append(pack_uatype('UInt32', self.SecurityRejectedRequestsCount))
11152
        packet.append(pack_uatype('UInt32', self.RejectedRequestsCount))
11153
        return b''.join(packet)
11154
        
11155 1
    @staticmethod
11156
    def from_binary(data):
11157
        obj = ServerDiagnosticsSummaryDataType()
11158
        obj.ServerViewCount = unpack_uatype('UInt32', data)
11159
        obj.CurrentSessionCount = unpack_uatype('UInt32', data)
11160
        obj.CumulatedSessionCount = unpack_uatype('UInt32', data)
11161
        obj.SecurityRejectedSessionCount = unpack_uatype('UInt32', data)
11162
        obj.RejectedSessionCount = unpack_uatype('UInt32', data)
11163
        obj.SessionTimeoutCount = unpack_uatype('UInt32', data)
11164
        obj.SessionAbortCount = unpack_uatype('UInt32', data)
11165
        obj.CurrentSubscriptionCount = unpack_uatype('UInt32', data)
11166
        obj.CumulatedSubscriptionCount = unpack_uatype('UInt32', data)
11167
        obj.PublishingIntervalCount = unpack_uatype('UInt32', data)
11168
        obj.SecurityRejectedRequestsCount = unpack_uatype('UInt32', data)
11169
        obj.RejectedRequestsCount = unpack_uatype('UInt32', data)
11170
        return obj
11171
    
11172 1
    def __str__(self):
11173
        return 'ServerDiagnosticsSummaryDataType(' + 'ServerViewCount:' + str(self.ServerViewCount) + ', '  + \
11174
             'CurrentSessionCount:' + str(self.CurrentSessionCount) + ', '  + \
11175
             'CumulatedSessionCount:' + str(self.CumulatedSessionCount) + ', '  + \
11176
             'SecurityRejectedSessionCount:' + str(self.SecurityRejectedSessionCount) + ', '  + \
11177
             'RejectedSessionCount:' + str(self.RejectedSessionCount) + ', '  + \
11178
             'SessionTimeoutCount:' + str(self.SessionTimeoutCount) + ', '  + \
11179
             'SessionAbortCount:' + str(self.SessionAbortCount) + ', '  + \
11180
             'CurrentSubscriptionCount:' + str(self.CurrentSubscriptionCount) + ', '  + \
11181
             'CumulatedSubscriptionCount:' + str(self.CumulatedSubscriptionCount) + ', '  + \
11182
             'PublishingIntervalCount:' + str(self.PublishingIntervalCount) + ', '  + \
11183
             'SecurityRejectedRequestsCount:' + str(self.SecurityRejectedRequestsCount) + ', '  + \
11184
             'RejectedRequestsCount:' + str(self.RejectedRequestsCount) + ')'
11185
    
11186 1
    __repr__ = __str__
11187
    
11188 1
class ServerStatusDataType(FrozenClass):
11189
    '''
11190
    :ivar StartTime: 
11191
    :vartype StartTime: DateTime 
11192
    :ivar CurrentTime: 
11193
    :vartype CurrentTime: DateTime 
11194
    :ivar State: 
11195
    :vartype State: ServerState 
11196
    :ivar BuildInfo: 
11197
    :vartype BuildInfo: BuildInfo 
11198
    :ivar SecondsTillShutdown: 
11199
    :vartype SecondsTillShutdown: UInt32 
11200
    :ivar ShutdownReason: 
11201
    :vartype ShutdownReason: LocalizedText 
11202
    '''
11203 1
    def __init__(self):
11204
        self.StartTime = datetime.now()
11205
        self.CurrentTime = datetime.now()
11206
        self.State = 0
11207
        self.BuildInfo = BuildInfo()
11208
        self.SecondsTillShutdown = 0
11209
        self.ShutdownReason = LocalizedText()
11210
        self._freeze()
11211
    
11212 1
    def to_binary(self):
11213
        packet = []
11214
        packet.append(pack_uatype('DateTime', self.StartTime))
11215
        packet.append(pack_uatype('DateTime', self.CurrentTime))
11216
        packet.append(pack_uatype('UInt32', self.State))
11217
        packet.append(self.BuildInfo.to_binary())
11218
        packet.append(pack_uatype('UInt32', self.SecondsTillShutdown))
11219
        packet.append(self.ShutdownReason.to_binary())
11220
        return b''.join(packet)
11221
        
11222 1
    @staticmethod
11223
    def from_binary(data):
11224
        obj = ServerStatusDataType()
11225
        obj.StartTime = unpack_uatype('DateTime', data)
11226
        obj.CurrentTime = unpack_uatype('DateTime', data)
11227
        obj.State = unpack_uatype('UInt32', data)
11228
        obj.BuildInfo = BuildInfo.from_binary(data)
11229
        obj.SecondsTillShutdown = unpack_uatype('UInt32', data)
11230
        obj.ShutdownReason = LocalizedText.from_binary(data)
11231
        return obj
11232
    
11233 1
    def __str__(self):
11234
        return 'ServerStatusDataType(' + 'StartTime:' + str(self.StartTime) + ', '  + \
11235
             'CurrentTime:' + str(self.CurrentTime) + ', '  + \
11236
             'State:' + str(self.State) + ', '  + \
11237
             'BuildInfo:' + str(self.BuildInfo) + ', '  + \
11238
             'SecondsTillShutdown:' + str(self.SecondsTillShutdown) + ', '  + \
11239
             'ShutdownReason:' + str(self.ShutdownReason) + ')'
11240
    
11241 1
    __repr__ = __str__
11242
    
11243 1
class SessionDiagnosticsDataType(FrozenClass):
11244
    '''
11245
    :ivar SessionId: 
11246
    :vartype SessionId: NodeId 
11247
    :ivar SessionName: 
11248
    :vartype SessionName: String 
11249
    :ivar ClientDescription: 
11250
    :vartype ClientDescription: ApplicationDescription 
11251
    :ivar ServerUri: 
11252
    :vartype ServerUri: String 
11253
    :ivar EndpointUrl: 
11254
    :vartype EndpointUrl: String 
11255
    :ivar LocaleIds: 
11256
    :vartype LocaleIds: String 
11257
    :ivar ActualSessionTimeout: 
11258
    :vartype ActualSessionTimeout: Double 
11259
    :ivar MaxResponseMessageSize: 
11260
    :vartype MaxResponseMessageSize: UInt32 
11261
    :ivar ClientConnectionTime: 
11262
    :vartype ClientConnectionTime: DateTime 
11263
    :ivar ClientLastContactTime: 
11264
    :vartype ClientLastContactTime: DateTime 
11265
    :ivar CurrentSubscriptionsCount: 
11266
    :vartype CurrentSubscriptionsCount: UInt32 
11267
    :ivar CurrentMonitoredItemsCount: 
11268
    :vartype CurrentMonitoredItemsCount: UInt32 
11269
    :ivar CurrentPublishRequestsInQueue: 
11270
    :vartype CurrentPublishRequestsInQueue: UInt32 
11271
    :ivar TotalRequestCount: 
11272
    :vartype TotalRequestCount: ServiceCounterDataType 
11273
    :ivar UnauthorizedRequestCount: 
11274
    :vartype UnauthorizedRequestCount: UInt32 
11275
    :ivar ReadCount: 
11276
    :vartype ReadCount: ServiceCounterDataType 
11277
    :ivar HistoryReadCount: 
11278
    :vartype HistoryReadCount: ServiceCounterDataType 
11279
    :ivar WriteCount: 
11280
    :vartype WriteCount: ServiceCounterDataType 
11281
    :ivar HistoryUpdateCount: 
11282
    :vartype HistoryUpdateCount: ServiceCounterDataType 
11283
    :ivar CallCount: 
11284
    :vartype CallCount: ServiceCounterDataType 
11285
    :ivar CreateMonitoredItemsCount: 
11286
    :vartype CreateMonitoredItemsCount: ServiceCounterDataType 
11287
    :ivar ModifyMonitoredItemsCount: 
11288
    :vartype ModifyMonitoredItemsCount: ServiceCounterDataType 
11289
    :ivar SetMonitoringModeCount: 
11290
    :vartype SetMonitoringModeCount: ServiceCounterDataType 
11291
    :ivar SetTriggeringCount: 
11292
    :vartype SetTriggeringCount: ServiceCounterDataType 
11293
    :ivar DeleteMonitoredItemsCount: 
11294
    :vartype DeleteMonitoredItemsCount: ServiceCounterDataType 
11295
    :ivar CreateSubscriptionCount: 
11296
    :vartype CreateSubscriptionCount: ServiceCounterDataType 
11297
    :ivar ModifySubscriptionCount: 
11298
    :vartype ModifySubscriptionCount: ServiceCounterDataType 
11299
    :ivar SetPublishingModeCount: 
11300
    :vartype SetPublishingModeCount: ServiceCounterDataType 
11301
    :ivar PublishCount: 
11302
    :vartype PublishCount: ServiceCounterDataType 
11303
    :ivar RepublishCount: 
11304
    :vartype RepublishCount: ServiceCounterDataType 
11305
    :ivar TransferSubscriptionsCount: 
11306
    :vartype TransferSubscriptionsCount: ServiceCounterDataType 
11307
    :ivar DeleteSubscriptionsCount: 
11308
    :vartype DeleteSubscriptionsCount: ServiceCounterDataType 
11309
    :ivar AddNodesCount: 
11310
    :vartype AddNodesCount: ServiceCounterDataType 
11311
    :ivar AddReferencesCount: 
11312
    :vartype AddReferencesCount: ServiceCounterDataType 
11313
    :ivar DeleteNodesCount: 
11314
    :vartype DeleteNodesCount: ServiceCounterDataType 
11315
    :ivar DeleteReferencesCount: 
11316
    :vartype DeleteReferencesCount: ServiceCounterDataType 
11317
    :ivar BrowseCount: 
11318
    :vartype BrowseCount: ServiceCounterDataType 
11319
    :ivar BrowseNextCount: 
11320
    :vartype BrowseNextCount: ServiceCounterDataType 
11321
    :ivar TranslateBrowsePathsToNodeIdsCount: 
11322
    :vartype TranslateBrowsePathsToNodeIdsCount: ServiceCounterDataType 
11323
    :ivar QueryFirstCount: 
11324
    :vartype QueryFirstCount: ServiceCounterDataType 
11325
    :ivar QueryNextCount: 
11326
    :vartype QueryNextCount: ServiceCounterDataType 
11327
    :ivar RegisterNodesCount: 
11328
    :vartype RegisterNodesCount: ServiceCounterDataType 
11329
    :ivar UnregisterNodesCount: 
11330
    :vartype UnregisterNodesCount: ServiceCounterDataType 
11331
    '''
11332 1
    def __init__(self):
11333
        self.SessionId = NodeId()
11334
        self.SessionName = ''
11335
        self.ClientDescription = ApplicationDescription()
11336
        self.ServerUri = ''
11337
        self.EndpointUrl = ''
11338
        self.LocaleIds = []
11339
        self.ActualSessionTimeout = 0
11340
        self.MaxResponseMessageSize = 0
11341
        self.ClientConnectionTime = datetime.now()
11342
        self.ClientLastContactTime = datetime.now()
11343
        self.CurrentSubscriptionsCount = 0
11344
        self.CurrentMonitoredItemsCount = 0
11345
        self.CurrentPublishRequestsInQueue = 0
11346
        self.TotalRequestCount = ServiceCounterDataType()
11347
        self.UnauthorizedRequestCount = 0
11348
        self.ReadCount = ServiceCounterDataType()
11349
        self.HistoryReadCount = ServiceCounterDataType()
11350
        self.WriteCount = ServiceCounterDataType()
11351
        self.HistoryUpdateCount = ServiceCounterDataType()
11352
        self.CallCount = ServiceCounterDataType()
11353
        self.CreateMonitoredItemsCount = ServiceCounterDataType()
11354
        self.ModifyMonitoredItemsCount = ServiceCounterDataType()
11355
        self.SetMonitoringModeCount = ServiceCounterDataType()
11356
        self.SetTriggeringCount = ServiceCounterDataType()
11357
        self.DeleteMonitoredItemsCount = ServiceCounterDataType()
11358
        self.CreateSubscriptionCount = ServiceCounterDataType()
11359
        self.ModifySubscriptionCount = ServiceCounterDataType()
11360
        self.SetPublishingModeCount = ServiceCounterDataType()
11361
        self.PublishCount = ServiceCounterDataType()
11362
        self.RepublishCount = ServiceCounterDataType()
11363
        self.TransferSubscriptionsCount = ServiceCounterDataType()
11364
        self.DeleteSubscriptionsCount = ServiceCounterDataType()
11365
        self.AddNodesCount = ServiceCounterDataType()
11366
        self.AddReferencesCount = ServiceCounterDataType()
11367
        self.DeleteNodesCount = ServiceCounterDataType()
11368
        self.DeleteReferencesCount = ServiceCounterDataType()
11369
        self.BrowseCount = ServiceCounterDataType()
11370
        self.BrowseNextCount = ServiceCounterDataType()
11371
        self.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType()
11372
        self.QueryFirstCount = ServiceCounterDataType()
11373
        self.QueryNextCount = ServiceCounterDataType()
11374
        self.RegisterNodesCount = ServiceCounterDataType()
11375
        self.UnregisterNodesCount = ServiceCounterDataType()
11376
        self._freeze()
11377
    
11378 1
    def to_binary(self):
11379
        packet = []
11380
        packet.append(self.SessionId.to_binary())
11381
        packet.append(pack_uatype('String', self.SessionName))
11382
        packet.append(self.ClientDescription.to_binary())
11383
        packet.append(pack_uatype('String', self.ServerUri))
11384
        packet.append(pack_uatype('String', self.EndpointUrl))
11385
        packet.append(struct.pack('<i', len(self.LocaleIds)))
11386
        for fieldname in self.LocaleIds:
11387
            packet.append(pack_uatype('String', fieldname))
11388
        packet.append(pack_uatype('Double', self.ActualSessionTimeout))
11389
        packet.append(pack_uatype('UInt32', self.MaxResponseMessageSize))
11390
        packet.append(pack_uatype('DateTime', self.ClientConnectionTime))
11391
        packet.append(pack_uatype('DateTime', self.ClientLastContactTime))
11392
        packet.append(pack_uatype('UInt32', self.CurrentSubscriptionsCount))
11393
        packet.append(pack_uatype('UInt32', self.CurrentMonitoredItemsCount))
11394
        packet.append(pack_uatype('UInt32', self.CurrentPublishRequestsInQueue))
11395
        packet.append(self.TotalRequestCount.to_binary())
11396
        packet.append(pack_uatype('UInt32', self.UnauthorizedRequestCount))
11397
        packet.append(self.ReadCount.to_binary())
11398
        packet.append(self.HistoryReadCount.to_binary())
11399
        packet.append(self.WriteCount.to_binary())
11400
        packet.append(self.HistoryUpdateCount.to_binary())
11401
        packet.append(self.CallCount.to_binary())
11402
        packet.append(self.CreateMonitoredItemsCount.to_binary())
11403
        packet.append(self.ModifyMonitoredItemsCount.to_binary())
11404
        packet.append(self.SetMonitoringModeCount.to_binary())
11405
        packet.append(self.SetTriggeringCount.to_binary())
11406
        packet.append(self.DeleteMonitoredItemsCount.to_binary())
11407
        packet.append(self.CreateSubscriptionCount.to_binary())
11408
        packet.append(self.ModifySubscriptionCount.to_binary())
11409
        packet.append(self.SetPublishingModeCount.to_binary())
11410
        packet.append(self.PublishCount.to_binary())
11411
        packet.append(self.RepublishCount.to_binary())
11412
        packet.append(self.TransferSubscriptionsCount.to_binary())
11413
        packet.append(self.DeleteSubscriptionsCount.to_binary())
11414
        packet.append(self.AddNodesCount.to_binary())
11415
        packet.append(self.AddReferencesCount.to_binary())
11416
        packet.append(self.DeleteNodesCount.to_binary())
11417
        packet.append(self.DeleteReferencesCount.to_binary())
11418
        packet.append(self.BrowseCount.to_binary())
11419
        packet.append(self.BrowseNextCount.to_binary())
11420
        packet.append(self.TranslateBrowsePathsToNodeIdsCount.to_binary())
11421
        packet.append(self.QueryFirstCount.to_binary())
11422
        packet.append(self.QueryNextCount.to_binary())
11423
        packet.append(self.RegisterNodesCount.to_binary())
11424
        packet.append(self.UnregisterNodesCount.to_binary())
11425
        return b''.join(packet)
11426
        
11427 1
    @staticmethod
11428
    def from_binary(data):
11429
        obj = SessionDiagnosticsDataType()
11430
        obj.SessionId = NodeId.from_binary(data)
11431
        obj.SessionName = unpack_uatype('String', data)
11432
        obj.ClientDescription = ApplicationDescription.from_binary(data)
11433
        obj.ServerUri = unpack_uatype('String', data)
11434
        obj.EndpointUrl = unpack_uatype('String', data)
11435
        obj.LocaleIds = unpack_uatype_array('String', data)
11436
        obj.ActualSessionTimeout = unpack_uatype('Double', data)
11437
        obj.MaxResponseMessageSize = unpack_uatype('UInt32', data)
11438
        obj.ClientConnectionTime = unpack_uatype('DateTime', data)
11439
        obj.ClientLastContactTime = unpack_uatype('DateTime', data)
11440
        obj.CurrentSubscriptionsCount = unpack_uatype('UInt32', data)
11441
        obj.CurrentMonitoredItemsCount = unpack_uatype('UInt32', data)
11442
        obj.CurrentPublishRequestsInQueue = unpack_uatype('UInt32', data)
11443
        obj.TotalRequestCount = ServiceCounterDataType.from_binary(data)
11444
        obj.UnauthorizedRequestCount = unpack_uatype('UInt32', data)
11445
        obj.ReadCount = ServiceCounterDataType.from_binary(data)
11446
        obj.HistoryReadCount = ServiceCounterDataType.from_binary(data)
11447
        obj.WriteCount = ServiceCounterDataType.from_binary(data)
11448
        obj.HistoryUpdateCount = ServiceCounterDataType.from_binary(data)
11449
        obj.CallCount = ServiceCounterDataType.from_binary(data)
11450
        obj.CreateMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11451
        obj.ModifyMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11452
        obj.SetMonitoringModeCount = ServiceCounterDataType.from_binary(data)
11453
        obj.SetTriggeringCount = ServiceCounterDataType.from_binary(data)
11454
        obj.DeleteMonitoredItemsCount = ServiceCounterDataType.from_binary(data)
11455
        obj.CreateSubscriptionCount = ServiceCounterDataType.from_binary(data)
11456
        obj.ModifySubscriptionCount = ServiceCounterDataType.from_binary(data)
11457
        obj.SetPublishingModeCount = ServiceCounterDataType.from_binary(data)
11458
        obj.PublishCount = ServiceCounterDataType.from_binary(data)
11459
        obj.RepublishCount = ServiceCounterDataType.from_binary(data)
11460
        obj.TransferSubscriptionsCount = ServiceCounterDataType.from_binary(data)
11461
        obj.DeleteSubscriptionsCount = ServiceCounterDataType.from_binary(data)
11462
        obj.AddNodesCount = ServiceCounterDataType.from_binary(data)
11463
        obj.AddReferencesCount = ServiceCounterDataType.from_binary(data)
11464
        obj.DeleteNodesCount = ServiceCounterDataType.from_binary(data)
11465
        obj.DeleteReferencesCount = ServiceCounterDataType.from_binary(data)
11466
        obj.BrowseCount = ServiceCounterDataType.from_binary(data)
11467
        obj.BrowseNextCount = ServiceCounterDataType.from_binary(data)
11468
        obj.TranslateBrowsePathsToNodeIdsCount = ServiceCounterDataType.from_binary(data)
11469
        obj.QueryFirstCount = ServiceCounterDataType.from_binary(data)
11470
        obj.QueryNextCount = ServiceCounterDataType.from_binary(data)
11471
        obj.RegisterNodesCount = ServiceCounterDataType.from_binary(data)
11472
        obj.UnregisterNodesCount = ServiceCounterDataType.from_binary(data)
11473
        return obj
11474
    
11475 1
    def __str__(self):
11476
        return 'SessionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', '  + \
11477
             'SessionName:' + str(self.SessionName) + ', '  + \
11478
             'ClientDescription:' + str(self.ClientDescription) + ', '  + \
11479
             'ServerUri:' + str(self.ServerUri) + ', '  + \
11480
             'EndpointUrl:' + str(self.EndpointUrl) + ', '  + \
11481
             'LocaleIds:' + str(self.LocaleIds) + ', '  + \
11482
             'ActualSessionTimeout:' + str(self.ActualSessionTimeout) + ', '  + \
11483
             'MaxResponseMessageSize:' + str(self.MaxResponseMessageSize) + ', '  + \
11484
             'ClientConnectionTime:' + str(self.ClientConnectionTime) + ', '  + \
11485
             'ClientLastContactTime:' + str(self.ClientLastContactTime) + ', '  + \
11486
             'CurrentSubscriptionsCount:' + str(self.CurrentSubscriptionsCount) + ', '  + \
11487
             'CurrentMonitoredItemsCount:' + str(self.CurrentMonitoredItemsCount) + ', '  + \
11488
             'CurrentPublishRequestsInQueue:' + str(self.CurrentPublishRequestsInQueue) + ', '  + \
11489
             'TotalRequestCount:' + str(self.TotalRequestCount) + ', '  + \
11490
             'UnauthorizedRequestCount:' + str(self.UnauthorizedRequestCount) + ', '  + \
11491
             'ReadCount:' + str(self.ReadCount) + ', '  + \
11492
             'HistoryReadCount:' + str(self.HistoryReadCount) + ', '  + \
11493
             'WriteCount:' + str(self.WriteCount) + ', '  + \
11494
             'HistoryUpdateCount:' + str(self.HistoryUpdateCount) + ', '  + \
11495
             'CallCount:' + str(self.CallCount) + ', '  + \
11496
             'CreateMonitoredItemsCount:' + str(self.CreateMonitoredItemsCount) + ', '  + \
11497
             'ModifyMonitoredItemsCount:' + str(self.ModifyMonitoredItemsCount) + ', '  + \
11498
             'SetMonitoringModeCount:' + str(self.SetMonitoringModeCount) + ', '  + \
11499
             'SetTriggeringCount:' + str(self.SetTriggeringCount) + ', '  + \
11500
             'DeleteMonitoredItemsCount:' + str(self.DeleteMonitoredItemsCount) + ', '  + \
11501
             'CreateSubscriptionCount:' + str(self.CreateSubscriptionCount) + ', '  + \
11502
             'ModifySubscriptionCount:' + str(self.ModifySubscriptionCount) + ', '  + \
11503
             'SetPublishingModeCount:' + str(self.SetPublishingModeCount) + ', '  + \
11504
             'PublishCount:' + str(self.PublishCount) + ', '  + \
11505
             'RepublishCount:' + str(self.RepublishCount) + ', '  + \
11506
             'TransferSubscriptionsCount:' + str(self.TransferSubscriptionsCount) + ', '  + \
11507
             'DeleteSubscriptionsCount:' + str(self.DeleteSubscriptionsCount) + ', '  + \
11508
             'AddNodesCount:' + str(self.AddNodesCount) + ', '  + \
11509
             'AddReferencesCount:' + str(self.AddReferencesCount) + ', '  + \
11510
             'DeleteNodesCount:' + str(self.DeleteNodesCount) + ', '  + \
11511
             'DeleteReferencesCount:' + str(self.DeleteReferencesCount) + ', '  + \
11512
             'BrowseCount:' + str(self.BrowseCount) + ', '  + \
11513
             'BrowseNextCount:' + str(self.BrowseNextCount) + ', '  + \
11514
             'TranslateBrowsePathsToNodeIdsCount:' + str(self.TranslateBrowsePathsToNodeIdsCount) + ', '  + \
11515
             'QueryFirstCount:' + str(self.QueryFirstCount) + ', '  + \
11516
             'QueryNextCount:' + str(self.QueryNextCount) + ', '  + \
11517
             'RegisterNodesCount:' + str(self.RegisterNodesCount) + ', '  + \
11518
             'UnregisterNodesCount:' + str(self.UnregisterNodesCount) + ')'
11519
    
11520 1
    __repr__ = __str__
11521
    
11522 1
class SessionSecurityDiagnosticsDataType(FrozenClass):
11523
    '''
11524
    :ivar SessionId: 
11525
    :vartype SessionId: NodeId 
11526
    :ivar ClientUserIdOfSession: 
11527
    :vartype ClientUserIdOfSession: String 
11528
    :ivar ClientUserIdHistory: 
11529
    :vartype ClientUserIdHistory: String 
11530
    :ivar AuthenticationMechanism: 
11531
    :vartype AuthenticationMechanism: String 
11532
    :ivar Encoding: 
11533
    :vartype Encoding: String 
11534
    :ivar TransportProtocol: 
11535
    :vartype TransportProtocol: String 
11536
    :ivar SecurityMode: 
11537
    :vartype SecurityMode: MessageSecurityMode 
11538
    :ivar SecurityPolicyUri: 
11539
    :vartype SecurityPolicyUri: String 
11540
    :ivar ClientCertificate: 
11541
    :vartype ClientCertificate: ByteString 
11542
    '''
11543 1
    def __init__(self):
11544
        self.SessionId = NodeId()
11545
        self.ClientUserIdOfSession = ''
11546
        self.ClientUserIdHistory = []
11547
        self.AuthenticationMechanism = ''
11548
        self.Encoding = ''
11549
        self.TransportProtocol = ''
11550
        self.SecurityMode = 0
11551
        self.SecurityPolicyUri = ''
11552
        self.ClientCertificate = b''
11553
        self._freeze()
11554
    
11555 1
    def to_binary(self):
11556
        packet = []
11557
        packet.append(self.SessionId.to_binary())
11558
        packet.append(pack_uatype('String', self.ClientUserIdOfSession))
11559
        packet.append(struct.pack('<i', len(self.ClientUserIdHistory)))
11560
        for fieldname in self.ClientUserIdHistory:
11561
            packet.append(pack_uatype('String', fieldname))
11562
        packet.append(pack_uatype('String', self.AuthenticationMechanism))
11563
        packet.append(pack_uatype('String', self.Encoding))
11564
        packet.append(pack_uatype('String', self.TransportProtocol))
11565
        packet.append(pack_uatype('UInt32', self.SecurityMode))
11566
        packet.append(pack_uatype('String', self.SecurityPolicyUri))
11567
        packet.append(pack_uatype('ByteString', self.ClientCertificate))
11568
        return b''.join(packet)
11569
        
11570 1
    @staticmethod
11571
    def from_binary(data):
11572
        obj = SessionSecurityDiagnosticsDataType()
11573
        obj.SessionId = NodeId.from_binary(data)
11574
        obj.ClientUserIdOfSession = unpack_uatype('String', data)
11575
        obj.ClientUserIdHistory = unpack_uatype_array('String', data)
11576
        obj.AuthenticationMechanism = unpack_uatype('String', data)
11577
        obj.Encoding = unpack_uatype('String', data)
11578
        obj.TransportProtocol = unpack_uatype('String', data)
11579
        obj.SecurityMode = unpack_uatype('UInt32', data)
11580
        obj.SecurityPolicyUri = unpack_uatype('String', data)
11581
        obj.ClientCertificate = unpack_uatype('ByteString', data)
11582
        return obj
11583
    
11584 1
    def __str__(self):
11585
        return 'SessionSecurityDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', '  + \
11586
             'ClientUserIdOfSession:' + str(self.ClientUserIdOfSession) + ', '  + \
11587
             'ClientUserIdHistory:' + str(self.ClientUserIdHistory) + ', '  + \
11588
             'AuthenticationMechanism:' + str(self.AuthenticationMechanism) + ', '  + \
11589
             'Encoding:' + str(self.Encoding) + ', '  + \
11590
             'TransportProtocol:' + str(self.TransportProtocol) + ', '  + \
11591
             'SecurityMode:' + str(self.SecurityMode) + ', '  + \
11592
             'SecurityPolicyUri:' + str(self.SecurityPolicyUri) + ', '  + \
11593
             'ClientCertificate:' + str(self.ClientCertificate) + ')'
11594
    
11595 1
    __repr__ = __str__
11596
    
11597 1
class ServiceCounterDataType(FrozenClass):
11598
    '''
11599
    :ivar TotalCount: 
11600
    :vartype TotalCount: UInt32 
11601
    :ivar ErrorCount: 
11602
    :vartype ErrorCount: UInt32 
11603
    '''
11604 1
    def __init__(self):
11605
        self.TotalCount = 0
11606
        self.ErrorCount = 0
11607
        self._freeze()
11608
    
11609 1
    def to_binary(self):
11610
        packet = []
11611
        packet.append(pack_uatype('UInt32', self.TotalCount))
11612
        packet.append(pack_uatype('UInt32', self.ErrorCount))
11613
        return b''.join(packet)
11614
        
11615 1
    @staticmethod
11616
    def from_binary(data):
11617
        obj = ServiceCounterDataType()
11618
        obj.TotalCount = unpack_uatype('UInt32', data)
11619
        obj.ErrorCount = unpack_uatype('UInt32', data)
11620
        return obj
11621
    
11622 1
    def __str__(self):
11623
        return 'ServiceCounterDataType(' + 'TotalCount:' + str(self.TotalCount) + ', '  + \
11624
             'ErrorCount:' + str(self.ErrorCount) + ')'
11625
    
11626 1
    __repr__ = __str__
11627
    
11628 1
class StatusResult(FrozenClass):
11629
    '''
11630
    :ivar StatusCode: 
11631
    :vartype StatusCode: StatusCode 
11632
    :ivar DiagnosticInfo: 
11633
    :vartype DiagnosticInfo: DiagnosticInfo 
11634
    '''
11635 1
    def __init__(self):
11636
        self.StatusCode = StatusCode()
11637
        self.DiagnosticInfo = DiagnosticInfo()
11638
        self._freeze()
11639
    
11640 1
    def to_binary(self):
11641
        packet = []
11642
        packet.append(self.StatusCode.to_binary())
11643
        packet.append(self.DiagnosticInfo.to_binary())
11644
        return b''.join(packet)
11645
        
11646 1
    @staticmethod
11647
    def from_binary(data):
11648
        obj = StatusResult()
11649
        obj.StatusCode = StatusCode.from_binary(data)
11650
        obj.DiagnosticInfo = DiagnosticInfo.from_binary(data)
11651
        return obj
11652
    
11653 1
    def __str__(self):
11654
        return 'StatusResult(' + 'StatusCode:' + str(self.StatusCode) + ', '  + \
11655
             'DiagnosticInfo:' + str(self.DiagnosticInfo) + ')'
11656
    
11657 1
    __repr__ = __str__
11658
    
11659 1
class SubscriptionDiagnosticsDataType(FrozenClass):
11660
    '''
11661
    :ivar SessionId: 
11662
    :vartype SessionId: NodeId 
11663
    :ivar SubscriptionId: 
11664
    :vartype SubscriptionId: UInt32 
11665
    :ivar Priority: 
11666
    :vartype Priority: Byte 
11667
    :ivar PublishingInterval: 
11668
    :vartype PublishingInterval: Double 
11669
    :ivar MaxKeepAliveCount: 
11670
    :vartype MaxKeepAliveCount: UInt32 
11671
    :ivar MaxLifetimeCount: 
11672
    :vartype MaxLifetimeCount: UInt32 
11673
    :ivar MaxNotificationsPerPublish: 
11674
    :vartype MaxNotificationsPerPublish: UInt32 
11675
    :ivar PublishingEnabled: 
11676
    :vartype PublishingEnabled: Boolean 
11677
    :ivar ModifyCount: 
11678
    :vartype ModifyCount: UInt32 
11679
    :ivar EnableCount: 
11680
    :vartype EnableCount: UInt32 
11681
    :ivar DisableCount: 
11682
    :vartype DisableCount: UInt32 
11683
    :ivar RepublishRequestCount: 
11684
    :vartype RepublishRequestCount: UInt32 
11685
    :ivar RepublishMessageRequestCount: 
11686
    :vartype RepublishMessageRequestCount: UInt32 
11687
    :ivar RepublishMessageCount: 
11688
    :vartype RepublishMessageCount: UInt32 
11689
    :ivar TransferRequestCount: 
11690
    :vartype TransferRequestCount: UInt32 
11691
    :ivar TransferredToAltClientCount: 
11692
    :vartype TransferredToAltClientCount: UInt32 
11693
    :ivar TransferredToSameClientCount: 
11694
    :vartype TransferredToSameClientCount: UInt32 
11695
    :ivar PublishRequestCount: 
11696
    :vartype PublishRequestCount: UInt32 
11697
    :ivar DataChangeNotificationsCount: 
11698
    :vartype DataChangeNotificationsCount: UInt32 
11699
    :ivar EventNotificationsCount: 
11700
    :vartype EventNotificationsCount: UInt32 
11701
    :ivar NotificationsCount: 
11702
    :vartype NotificationsCount: UInt32 
11703
    :ivar LatePublishRequestCount: 
11704
    :vartype LatePublishRequestCount: UInt32 
11705
    :ivar CurrentKeepAliveCount: 
11706
    :vartype CurrentKeepAliveCount: UInt32 
11707
    :ivar CurrentLifetimeCount: 
11708
    :vartype CurrentLifetimeCount: UInt32 
11709
    :ivar UnacknowledgedMessageCount: 
11710
    :vartype UnacknowledgedMessageCount: UInt32 
11711
    :ivar DiscardedMessageCount: 
11712
    :vartype DiscardedMessageCount: UInt32 
11713
    :ivar MonitoredItemCount: 
11714
    :vartype MonitoredItemCount: UInt32 
11715
    :ivar DisabledMonitoredItemCount: 
11716
    :vartype DisabledMonitoredItemCount: UInt32 
11717
    :ivar MonitoringQueueOverflowCount: 
11718
    :vartype MonitoringQueueOverflowCount: UInt32 
11719
    :ivar NextSequenceNumber: 
11720
    :vartype NextSequenceNumber: UInt32 
11721
    :ivar EventQueueOverFlowCount: 
11722
    :vartype EventQueueOverFlowCount: UInt32 
11723
    '''
11724 1
    def __init__(self):
11725
        self.SessionId = NodeId()
11726
        self.SubscriptionId = 0
11727
        self.Priority = 0
11728
        self.PublishingInterval = 0
11729
        self.MaxKeepAliveCount = 0
11730
        self.MaxLifetimeCount = 0
11731
        self.MaxNotificationsPerPublish = 0
11732
        self.PublishingEnabled = True
11733
        self.ModifyCount = 0
11734
        self.EnableCount = 0
11735
        self.DisableCount = 0
11736
        self.RepublishRequestCount = 0
11737
        self.RepublishMessageRequestCount = 0
11738
        self.RepublishMessageCount = 0
11739
        self.TransferRequestCount = 0
11740
        self.TransferredToAltClientCount = 0
11741
        self.TransferredToSameClientCount = 0
11742
        self.PublishRequestCount = 0
11743
        self.DataChangeNotificationsCount = 0
11744
        self.EventNotificationsCount = 0
11745
        self.NotificationsCount = 0
11746
        self.LatePublishRequestCount = 0
11747
        self.CurrentKeepAliveCount = 0
11748
        self.CurrentLifetimeCount = 0
11749
        self.UnacknowledgedMessageCount = 0
11750
        self.DiscardedMessageCount = 0
11751
        self.MonitoredItemCount = 0
11752
        self.DisabledMonitoredItemCount = 0
11753
        self.MonitoringQueueOverflowCount = 0
11754
        self.NextSequenceNumber = 0
11755
        self.EventQueueOverFlowCount = 0
11756
        self._freeze()
11757
    
11758 1
    def to_binary(self):
11759
        packet = []
11760
        packet.append(self.SessionId.to_binary())
11761
        packet.append(pack_uatype('UInt32', self.SubscriptionId))
11762
        packet.append(pack_uatype('Byte', self.Priority))
11763
        packet.append(pack_uatype('Double', self.PublishingInterval))
11764
        packet.append(pack_uatype('UInt32', self.MaxKeepAliveCount))
11765
        packet.append(pack_uatype('UInt32', self.MaxLifetimeCount))
11766
        packet.append(pack_uatype('UInt32', self.MaxNotificationsPerPublish))
11767
        packet.append(pack_uatype('Boolean', self.PublishingEnabled))
11768
        packet.append(pack_uatype('UInt32', self.ModifyCount))
11769
        packet.append(pack_uatype('UInt32', self.EnableCount))
11770
        packet.append(pack_uatype('UInt32', self.DisableCount))
11771
        packet.append(pack_uatype('UInt32', self.RepublishRequestCount))
11772
        packet.append(pack_uatype('UInt32', self.RepublishMessageRequestCount))
11773
        packet.append(pack_uatype('UInt32', self.RepublishMessageCount))
11774
        packet.append(pack_uatype('UInt32', self.TransferRequestCount))
11775
        packet.append(pack_uatype('UInt32', self.TransferredToAltClientCount))
11776
        packet.append(pack_uatype('UInt32', self.TransferredToSameClientCount))
11777
        packet.append(pack_uatype('UInt32', self.PublishRequestCount))
11778
        packet.append(pack_uatype('UInt32', self.DataChangeNotificationsCount))
11779
        packet.append(pack_uatype('UInt32', self.EventNotificationsCount))
11780
        packet.append(pack_uatype('UInt32', self.NotificationsCount))
11781
        packet.append(pack_uatype('UInt32', self.LatePublishRequestCount))
11782
        packet.append(pack_uatype('UInt32', self.CurrentKeepAliveCount))
11783
        packet.append(pack_uatype('UInt32', self.CurrentLifetimeCount))
11784
        packet.append(pack_uatype('UInt32', self.UnacknowledgedMessageCount))
11785
        packet.append(pack_uatype('UInt32', self.DiscardedMessageCount))
11786
        packet.append(pack_uatype('UInt32', self.MonitoredItemCount))
11787
        packet.append(pack_uatype('UInt32', self.DisabledMonitoredItemCount))
11788
        packet.append(pack_uatype('UInt32', self.MonitoringQueueOverflowCount))
11789
        packet.append(pack_uatype('UInt32', self.NextSequenceNumber))
11790
        packet.append(pack_uatype('UInt32', self.EventQueueOverFlowCount))
11791
        return b''.join(packet)
11792
        
11793 1
    @staticmethod
11794
    def from_binary(data):
11795
        obj = SubscriptionDiagnosticsDataType()
11796
        obj.SessionId = NodeId.from_binary(data)
11797
        obj.SubscriptionId = unpack_uatype('UInt32', data)
11798
        obj.Priority = unpack_uatype('Byte', data)
11799
        obj.PublishingInterval = unpack_uatype('Double', data)
11800
        obj.MaxKeepAliveCount = unpack_uatype('UInt32', data)
11801
        obj.MaxLifetimeCount = unpack_uatype('UInt32', data)
11802
        obj.MaxNotificationsPerPublish = unpack_uatype('UInt32', data)
11803
        obj.PublishingEnabled = unpack_uatype('Boolean', data)
11804
        obj.ModifyCount = unpack_uatype('UInt32', data)
11805
        obj.EnableCount = unpack_uatype('UInt32', data)
11806
        obj.DisableCount = unpack_uatype('UInt32', data)
11807
        obj.RepublishRequestCount = unpack_uatype('UInt32', data)
11808
        obj.RepublishMessageRequestCount = unpack_uatype('UInt32', data)
11809
        obj.RepublishMessageCount = unpack_uatype('UInt32', data)
11810
        obj.TransferRequestCount = unpack_uatype('UInt32', data)
11811
        obj.TransferredToAltClientCount = unpack_uatype('UInt32', data)
11812
        obj.TransferredToSameClientCount = unpack_uatype('UInt32', data)
11813
        obj.PublishRequestCount = unpack_uatype('UInt32', data)
11814
        obj.DataChangeNotificationsCount = unpack_uatype('UInt32', data)
11815
        obj.EventNotificationsCount = unpack_uatype('UInt32', data)
11816
        obj.NotificationsCount = unpack_uatype('UInt32', data)
11817
        obj.LatePublishRequestCount = unpack_uatype('UInt32', data)
11818
        obj.CurrentKeepAliveCount = unpack_uatype('UInt32', data)
11819
        obj.CurrentLifetimeCount = unpack_uatype('UInt32', data)
11820
        obj.UnacknowledgedMessageCount = unpack_uatype('UInt32', data)
11821
        obj.DiscardedMessageCount = unpack_uatype('UInt32', data)
11822
        obj.MonitoredItemCount = unpack_uatype('UInt32', data)
11823
        obj.DisabledMonitoredItemCount = unpack_uatype('UInt32', data)
11824
        obj.MonitoringQueueOverflowCount = unpack_uatype('UInt32', data)
11825
        obj.NextSequenceNumber = unpack_uatype('UInt32', data)
11826
        obj.EventQueueOverFlowCount = unpack_uatype('UInt32', data)
11827
        return obj
11828
    
11829 1
    def __str__(self):
11830
        return 'SubscriptionDiagnosticsDataType(' + 'SessionId:' + str(self.SessionId) + ', '  + \
11831
             'SubscriptionId:' + str(self.SubscriptionId) + ', '  + \
11832
             'Priority:' + str(self.Priority) + ', '  + \
11833
             'PublishingInterval:' + str(self.PublishingInterval) + ', '  + \
11834
             'MaxKeepAliveCount:' + str(self.MaxKeepAliveCount) + ', '  + \
11835
             'MaxLifetimeCount:' + str(self.MaxLifetimeCount) + ', '  + \
11836
             'MaxNotificationsPerPublish:' + str(self.MaxNotificationsPerPublish) + ', '  + \
11837
             'PublishingEnabled:' + str(self.PublishingEnabled) + ', '  + \
11838
             'ModifyCount:' + str(self.ModifyCount) + ', '  + \
11839
             'EnableCount:' + str(self.EnableCount) + ', '  + \
11840
             'DisableCount:' + str(self.DisableCount) + ', '  + \
11841
             'RepublishRequestCount:' + str(self.RepublishRequestCount) + ', '  + \
11842
             'RepublishMessageRequestCount:' + str(self.RepublishMessageRequestCount) + ', '  + \
11843
             'RepublishMessageCount:' + str(self.RepublishMessageCount) + ', '  + \
11844
             'TransferRequestCount:' + str(self.TransferRequestCount) + ', '  + \
11845
             'TransferredToAltClientCount:' + str(self.TransferredToAltClientCount) + ', '  + \
11846
             'TransferredToSameClientCount:' + str(self.TransferredToSameClientCount) + ', '  + \
11847
             'PublishRequestCount:' + str(self.PublishRequestCount) + ', '  + \
11848
             'DataChangeNotificationsCount:' + str(self.DataChangeNotificationsCount) + ', '  + \
11849
             'EventNotificationsCount:' + str(self.EventNotificationsCount) + ', '  + \
11850
             'NotificationsCount:' + str(self.NotificationsCount) + ', '  + \
11851
             'LatePublishRequestCount:' + str(self.LatePublishRequestCount) + ', '  + \
11852
             'CurrentKeepAliveCount:' + str(self.CurrentKeepAliveCount) + ', '  + \
11853
             'CurrentLifetimeCount:' + str(self.CurrentLifetimeCount) + ', '  + \
11854
             'UnacknowledgedMessageCount:' + str(self.UnacknowledgedMessageCount) + ', '  + \
11855
             'DiscardedMessageCount:' + str(self.DiscardedMessageCount) + ', '  + \
11856
             'MonitoredItemCount:' + str(self.MonitoredItemCount) + ', '  + \
11857
             'DisabledMonitoredItemCount:' + str(self.DisabledMonitoredItemCount) + ', '  + \
11858
             'MonitoringQueueOverflowCount:' + str(self.MonitoringQueueOverflowCount) + ', '  + \
11859
             'NextSequenceNumber:' + str(self.NextSequenceNumber) + ', '  + \
11860
             'EventQueueOverFlowCount:' + str(self.EventQueueOverFlowCount) + ')'
11861
    
11862 1
    __repr__ = __str__
11863
    
11864 1
class ModelChangeStructureDataType(FrozenClass):
11865
    '''
11866
    :ivar Affected: 
11867
    :vartype Affected: NodeId 
11868
    :ivar AffectedType: 
11869
    :vartype AffectedType: NodeId 
11870
    :ivar Verb: 
11871
    :vartype Verb: Byte 
11872
    '''
11873 1
    def __init__(self):
11874
        self.Affected = NodeId()
11875
        self.AffectedType = NodeId()
11876
        self.Verb = 0
11877
        self._freeze()
11878
    
11879 1
    def to_binary(self):
11880
        packet = []
11881
        packet.append(self.Affected.to_binary())
11882
        packet.append(self.AffectedType.to_binary())
11883
        packet.append(pack_uatype('Byte', self.Verb))
11884
        return b''.join(packet)
11885
        
11886 1
    @staticmethod
11887
    def from_binary(data):
11888
        obj = ModelChangeStructureDataType()
11889
        obj.Affected = NodeId.from_binary(data)
11890
        obj.AffectedType = NodeId.from_binary(data)
11891
        obj.Verb = unpack_uatype('Byte', data)
11892
        return obj
11893
    
11894 1
    def __str__(self):
11895
        return 'ModelChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', '  + \
11896
             'AffectedType:' + str(self.AffectedType) + ', '  + \
11897
             'Verb:' + str(self.Verb) + ')'
11898
    
11899 1
    __repr__ = __str__
11900
    
11901 1
class SemanticChangeStructureDataType(FrozenClass):
11902
    '''
11903
    :ivar Affected: 
11904
    :vartype Affected: NodeId 
11905
    :ivar AffectedType: 
11906
    :vartype AffectedType: NodeId 
11907
    '''
11908 1
    def __init__(self):
11909
        self.Affected = NodeId()
11910
        self.AffectedType = NodeId()
11911
        self._freeze()
11912
    
11913 1
    def to_binary(self):
11914
        packet = []
11915
        packet.append(self.Affected.to_binary())
11916
        packet.append(self.AffectedType.to_binary())
11917
        return b''.join(packet)
11918
        
11919 1
    @staticmethod
11920
    def from_binary(data):
11921
        obj = SemanticChangeStructureDataType()
11922
        obj.Affected = NodeId.from_binary(data)
11923
        obj.AffectedType = NodeId.from_binary(data)
11924
        return obj
11925
    
11926 1
    def __str__(self):
11927
        return 'SemanticChangeStructureDataType(' + 'Affected:' + str(self.Affected) + ', '  + \
11928
             'AffectedType:' + str(self.AffectedType) + ')'
11929
    
11930 1
    __repr__ = __str__
11931
    
11932 1
class Range(FrozenClass):
11933
    '''
11934
    :ivar Low: 
11935
    :vartype Low: Double 
11936
    :ivar High: 
11937
    :vartype High: Double 
11938
    '''
11939 1
    def __init__(self):
11940
        self.Low = 0
11941
        self.High = 0
11942
        self._freeze()
11943
    
11944 1
    def to_binary(self):
11945
        packet = []
11946
        packet.append(pack_uatype('Double', self.Low))
11947
        packet.append(pack_uatype('Double', self.High))
11948
        return b''.join(packet)
11949
        
11950 1
    @staticmethod
11951
    def from_binary(data):
11952
        obj = Range()
11953
        obj.Low = unpack_uatype('Double', data)
11954
        obj.High = unpack_uatype('Double', data)
11955
        return obj
11956
    
11957 1
    def __str__(self):
11958
        return 'Range(' + 'Low:' + str(self.Low) + ', '  + \
11959
             'High:' + str(self.High) + ')'
11960
    
11961 1
    __repr__ = __str__
11962
    
11963 1
class EUInformation(FrozenClass):
11964
    '''
11965
    :ivar NamespaceUri: 
11966
    :vartype NamespaceUri: String 
11967
    :ivar UnitId: 
11968
    :vartype UnitId: Int32 
11969
    :ivar DisplayName: 
11970
    :vartype DisplayName: LocalizedText 
11971
    :ivar Description: 
11972
    :vartype Description: LocalizedText 
11973
    '''
11974 1
    def __init__(self):
11975
        self.NamespaceUri = ''
11976
        self.UnitId = 0
11977
        self.DisplayName = LocalizedText()
11978
        self.Description = LocalizedText()
11979
        self._freeze()
11980
    
11981 1
    def to_binary(self):
11982
        packet = []
11983
        packet.append(pack_uatype('String', self.NamespaceUri))
11984
        packet.append(pack_uatype('Int32', self.UnitId))
11985
        packet.append(self.DisplayName.to_binary())
11986
        packet.append(self.Description.to_binary())
11987
        return b''.join(packet)
11988
        
11989 1
    @staticmethod
11990
    def from_binary(data):
11991
        obj = EUInformation()
11992
        obj.NamespaceUri = unpack_uatype('String', data)
11993
        obj.UnitId = unpack_uatype('Int32', data)
11994
        obj.DisplayName = LocalizedText.from_binary(data)
11995
        obj.Description = LocalizedText.from_binary(data)
11996
        return obj
11997
    
11998 1
    def __str__(self):
11999
        return 'EUInformation(' + 'NamespaceUri:' + str(self.NamespaceUri) + ', '  + \
12000
             'UnitId:' + str(self.UnitId) + ', '  + \
12001
             'DisplayName:' + str(self.DisplayName) + ', '  + \
12002
             'Description:' + str(self.Description) + ')'
12003
    
12004 1
    __repr__ = __str__
12005
    
12006 1
class ComplexNumberType(FrozenClass):
12007
    '''
12008
    :ivar Real: 
12009
    :vartype Real: Float 
12010
    :ivar Imaginary: 
12011
    :vartype Imaginary: Float 
12012
    '''
12013 1
    def __init__(self):
12014
        self.Real = 0
12015
        self.Imaginary = 0
12016
        self._freeze()
12017
    
12018 1
    def to_binary(self):
12019
        packet = []
12020
        packet.append(pack_uatype('Float', self.Real))
12021
        packet.append(pack_uatype('Float', self.Imaginary))
12022
        return b''.join(packet)
12023
        
12024 1
    @staticmethod
12025
    def from_binary(data):
12026
        obj = ComplexNumberType()
12027
        obj.Real = unpack_uatype('Float', data)
12028
        obj.Imaginary = unpack_uatype('Float', data)
12029
        return obj
12030
    
12031 1
    def __str__(self):
12032
        return 'ComplexNumberType(' + 'Real:' + str(self.Real) + ', '  + \
12033
             'Imaginary:' + str(self.Imaginary) + ')'
12034
    
12035 1
    __repr__ = __str__
12036
    
12037 1
class DoubleComplexNumberType(FrozenClass):
12038
    '''
12039
    :ivar Real: 
12040
    :vartype Real: Double 
12041
    :ivar Imaginary: 
12042
    :vartype Imaginary: Double 
12043
    '''
12044 1
    def __init__(self):
12045
        self.Real = 0
12046
        self.Imaginary = 0
12047
        self._freeze()
12048
    
12049 1
    def to_binary(self):
12050
        packet = []
12051
        packet.append(pack_uatype('Double', self.Real))
12052
        packet.append(pack_uatype('Double', self.Imaginary))
12053
        return b''.join(packet)
12054
        
12055 1
    @staticmethod
12056
    def from_binary(data):
12057
        obj = DoubleComplexNumberType()
12058
        obj.Real = unpack_uatype('Double', data)
12059
        obj.Imaginary = unpack_uatype('Double', data)
12060
        return obj
12061
    
12062 1
    def __str__(self):
12063
        return 'DoubleComplexNumberType(' + 'Real:' + str(self.Real) + ', '  + \
12064
             'Imaginary:' + str(self.Imaginary) + ')'
12065
    
12066 1
    __repr__ = __str__
12067
    
12068 1
class AxisInformation(FrozenClass):
12069
    '''
12070
    :ivar EngineeringUnits: 
12071
    :vartype EngineeringUnits: EUInformation 
12072
    :ivar EURange: 
12073
    :vartype EURange: Range 
12074
    :ivar Title: 
12075
    :vartype Title: LocalizedText 
12076
    :ivar AxisScaleType: 
12077
    :vartype AxisScaleType: AxisScaleEnumeration 
12078
    :ivar AxisSteps: 
12079
    :vartype AxisSteps: Double 
12080
    '''
12081 1
    def __init__(self):
12082
        self.EngineeringUnits = EUInformation()
12083
        self.EURange = Range()
12084
        self.Title = LocalizedText()
12085
        self.AxisScaleType = 0
12086
        self.AxisSteps = []
12087
        self._freeze()
12088
    
12089 1
    def to_binary(self):
12090
        packet = []
12091
        packet.append(self.EngineeringUnits.to_binary())
12092
        packet.append(self.EURange.to_binary())
12093
        packet.append(self.Title.to_binary())
12094
        packet.append(pack_uatype('UInt32', self.AxisScaleType))
12095
        packet.append(struct.pack('<i', len(self.AxisSteps)))
12096
        for fieldname in self.AxisSteps:
12097
            packet.append(pack_uatype('Double', fieldname))
12098
        return b''.join(packet)
12099
        
12100 1
    @staticmethod
12101
    def from_binary(data):
12102
        obj = AxisInformation()
12103
        obj.EngineeringUnits = EUInformation.from_binary(data)
12104
        obj.EURange = Range.from_binary(data)
12105
        obj.Title = LocalizedText.from_binary(data)
12106
        obj.AxisScaleType = unpack_uatype('UInt32', data)
12107
        obj.AxisSteps = unpack_uatype_array('Double', data)
12108
        return obj
12109
    
12110 1
    def __str__(self):
12111
        return 'AxisInformation(' + 'EngineeringUnits:' + str(self.EngineeringUnits) + ', '  + \
12112
             'EURange:' + str(self.EURange) + ', '  + \
12113
             'Title:' + str(self.Title) + ', '  + \
12114
             'AxisScaleType:' + str(self.AxisScaleType) + ', '  + \
12115
             'AxisSteps:' + str(self.AxisSteps) + ')'
12116
    
12117 1
    __repr__ = __str__
12118
    
12119 1
class XVType(FrozenClass):
12120
    '''
12121
    :ivar X: 
12122
    :vartype X: Double 
12123
    :ivar Value: 
12124
    :vartype Value: Float 
12125
    '''
12126 1
    def __init__(self):
12127
        self.X = 0
12128
        self.Value = 0
12129
        self._freeze()
12130
    
12131 1
    def to_binary(self):
12132
        packet = []
12133
        packet.append(pack_uatype('Double', self.X))
12134
        packet.append(pack_uatype('Float', self.Value))
12135
        return b''.join(packet)
12136
        
12137 1
    @staticmethod
12138
    def from_binary(data):
12139
        obj = XVType()
12140
        obj.X = unpack_uatype('Double', data)
12141
        obj.Value = unpack_uatype('Float', data)
12142
        return obj
12143
    
12144 1
    def __str__(self):
12145
        return 'XVType(' + 'X:' + str(self.X) + ', '  + \
12146
             'Value:' + str(self.Value) + ')'
12147
    
12148 1
    __repr__ = __str__
12149
    
12150 1
class ProgramDiagnosticDataType(FrozenClass):
12151
    '''
12152
    :ivar CreateSessionId: 
12153
    :vartype CreateSessionId: NodeId 
12154
    :ivar CreateClientName: 
12155
    :vartype CreateClientName: String 
12156
    :ivar InvocationCreationTime: 
12157
    :vartype InvocationCreationTime: DateTime 
12158
    :ivar LastTransitionTime: 
12159
    :vartype LastTransitionTime: DateTime 
12160
    :ivar LastMethodCall: 
12161
    :vartype LastMethodCall: String 
12162
    :ivar LastMethodSessionId: 
12163
    :vartype LastMethodSessionId: NodeId 
12164
    :ivar LastMethodInputArguments: 
12165
    :vartype LastMethodInputArguments: Argument 
12166
    :ivar LastMethodOutputArguments: 
12167
    :vartype LastMethodOutputArguments: Argument 
12168
    :ivar LastMethodCallTime: 
12169
    :vartype LastMethodCallTime: DateTime 
12170
    :ivar LastMethodReturnStatus: 
12171
    :vartype LastMethodReturnStatus: StatusResult 
12172
    '''
12173 1
    def __init__(self):
12174
        self.CreateSessionId = NodeId()
12175
        self.CreateClientName = ''
12176
        self.InvocationCreationTime = datetime.now()
12177
        self.LastTransitionTime = datetime.now()
12178
        self.LastMethodCall = ''
12179
        self.LastMethodSessionId = NodeId()
12180
        self.LastMethodInputArguments = []
12181
        self.LastMethodOutputArguments = []
12182
        self.LastMethodCallTime = datetime.now()
12183
        self.LastMethodReturnStatus = StatusResult()
12184
        self._freeze()
12185
    
12186 1
    def to_binary(self):
12187
        packet = []
12188
        packet.append(self.CreateSessionId.to_binary())
12189
        packet.append(pack_uatype('String', self.CreateClientName))
12190
        packet.append(pack_uatype('DateTime', self.InvocationCreationTime))
12191
        packet.append(pack_uatype('DateTime', self.LastTransitionTime))
12192
        packet.append(pack_uatype('String', self.LastMethodCall))
12193
        packet.append(self.LastMethodSessionId.to_binary())
12194
        packet.append(struct.pack('<i', len(self.LastMethodInputArguments)))
12195
        for fieldname in self.LastMethodInputArguments:
12196
            packet.append(fieldname.to_binary())
12197
        packet.append(struct.pack('<i', len(self.LastMethodOutputArguments)))
12198
        for fieldname in self.LastMethodOutputArguments:
12199
            packet.append(fieldname.to_binary())
12200
        packet.append(pack_uatype('DateTime', self.LastMethodCallTime))
12201
        packet.append(self.LastMethodReturnStatus.to_binary())
12202
        return b''.join(packet)
12203
        
12204 1
    @staticmethod
12205
    def from_binary(data):
12206
        obj = ProgramDiagnosticDataType()
12207
        obj.CreateSessionId = NodeId.from_binary(data)
12208
        obj.CreateClientName = unpack_uatype('String', data)
12209
        obj.InvocationCreationTime = unpack_uatype('DateTime', data)
12210
        obj.LastTransitionTime = unpack_uatype('DateTime', data)
12211
        obj.LastMethodCall = unpack_uatype('String', data)
12212
        obj.LastMethodSessionId = NodeId.from_binary(data)
12213
        length = struct.unpack('<i', data.read(4))[0]
12214
        if length != -1:
12215
            for _ in range(0, length):
12216
                obj.LastMethodInputArguments.append(Argument.from_binary(data))
12217
        length = struct.unpack('<i', data.read(4))[0]
12218
        if length != -1:
12219
            for _ in range(0, length):
12220
                obj.LastMethodOutputArguments.append(Argument.from_binary(data))
12221
        obj.LastMethodCallTime = unpack_uatype('DateTime', data)
12222
        obj.LastMethodReturnStatus = StatusResult.from_binary(data)
12223
        return obj
12224
    
12225 1
    def __str__(self):
12226
        return 'ProgramDiagnosticDataType(' + 'CreateSessionId:' + str(self.CreateSessionId) + ', '  + \
12227
             'CreateClientName:' + str(self.CreateClientName) + ', '  + \
12228
             'InvocationCreationTime:' + str(self.InvocationCreationTime) + ', '  + \
12229
             'LastTransitionTime:' + str(self.LastTransitionTime) + ', '  + \
12230
             'LastMethodCall:' + str(self.LastMethodCall) + ', '  + \
12231
             'LastMethodSessionId:' + str(self.LastMethodSessionId) + ', '  + \
12232
             'LastMethodInputArguments:' + str(self.LastMethodInputArguments) + ', '  + \
12233
             'LastMethodOutputArguments:' + str(self.LastMethodOutputArguments) + ', '  + \
12234
             'LastMethodCallTime:' + str(self.LastMethodCallTime) + ', '  + \
12235
             'LastMethodReturnStatus:' + str(self.LastMethodReturnStatus) + ')'
12236
    
12237 1
    __repr__ = __str__
12238
    
12239 1
class Annotation(FrozenClass):
12240
    '''
12241
    :ivar Message: 
12242
    :vartype Message: String 
12243
    :ivar UserName: 
12244
    :vartype UserName: String 
12245
    :ivar AnnotationTime: 
12246
    :vartype AnnotationTime: DateTime 
12247
    '''
12248 1
    def __init__(self):
12249
        self.Message = ''
12250
        self.UserName = ''
12251
        self.AnnotationTime = datetime.now()
12252
        self._freeze()
12253
    
12254 1
    def to_binary(self):
12255
        packet = []
12256
        packet.append(pack_uatype('String', self.Message))
12257
        packet.append(pack_uatype('String', self.UserName))
12258
        packet.append(pack_uatype('DateTime', self.AnnotationTime))
12259
        return b''.join(packet)
12260
        
12261 1
    @staticmethod
12262
    def from_binary(data):
12263
        obj = Annotation()
12264
        obj.Message = unpack_uatype('String', data)
12265
        obj.UserName = unpack_uatype('String', data)
12266
        obj.AnnotationTime = unpack_uatype('DateTime', data)
12267
        return obj
12268
    
12269 1
    def __str__(self):
12270
        return 'Annotation(' + 'Message:' + str(self.Message) + ', '  + \
12271
             'UserName:' + str(self.UserName) + ', '  + \
12272
             'AnnotationTime:' + str(self.AnnotationTime) + ')'
12273
    
12274 1
    __repr__ = __str__
12275
12276 1
ExtensionClasses = {
12277
    ObjectIds.TrustListDataType_Encoding_DefaultBinary : TrustListDataType,
12278
    ObjectIds.Argument_Encoding_DefaultBinary : Argument,
12279
    ObjectIds.EnumValueType_Encoding_DefaultBinary : EnumValueType,
12280
    ObjectIds.OptionSet_Encoding_DefaultBinary : OptionSet,
12281
    ObjectIds.Union_Encoding_DefaultBinary : Union,
12282
    ObjectIds.TimeZoneDataType_Encoding_DefaultBinary : TimeZoneDataType,
12283
    ObjectIds.ApplicationDescription_Encoding_DefaultBinary : ApplicationDescription,
12284
    ObjectIds.RequestHeader_Encoding_DefaultBinary : RequestHeader,
12285
    ObjectIds.ResponseHeader_Encoding_DefaultBinary : ResponseHeader,
12286
    ObjectIds.ServiceFault_Encoding_DefaultBinary : ServiceFault,
12287
    ObjectIds.FindServersRequest_Encoding_DefaultBinary : FindServersRequest,
12288
    ObjectIds.FindServersResponse_Encoding_DefaultBinary : FindServersResponse,
12289
    ObjectIds.ServerOnNetwork_Encoding_DefaultBinary : ServerOnNetwork,
12290
    ObjectIds.FindServersOnNetworkRequest_Encoding_DefaultBinary : FindServersOnNetworkRequest,
12291
    ObjectIds.FindServersOnNetworkResponse_Encoding_DefaultBinary : FindServersOnNetworkResponse,
12292
    ObjectIds.UserTokenPolicy_Encoding_DefaultBinary : UserTokenPolicy,
12293
    ObjectIds.EndpointDescription_Encoding_DefaultBinary : EndpointDescription,
12294
    ObjectIds.GetEndpointsRequest_Encoding_DefaultBinary : GetEndpointsRequest,
12295
    ObjectIds.GetEndpointsResponse_Encoding_DefaultBinary : GetEndpointsResponse,
12296
    ObjectIds.RegisteredServer_Encoding_DefaultBinary : RegisteredServer,
12297
    ObjectIds.RegisterServerRequest_Encoding_DefaultBinary : RegisterServerRequest,
12298
    ObjectIds.RegisterServerResponse_Encoding_DefaultBinary : RegisterServerResponse,
12299
    ObjectIds.DiscoveryConfiguration_Encoding_DefaultBinary : DiscoveryConfiguration,
12300
    ObjectIds.MdnsDiscoveryConfiguration_Encoding_DefaultBinary : MdnsDiscoveryConfiguration,
12301
    ObjectIds.RegisterServer2Request_Encoding_DefaultBinary : RegisterServer2Request,
12302
    ObjectIds.RegisterServer2Response_Encoding_DefaultBinary : RegisterServer2Response,
12303
    ObjectIds.ChannelSecurityToken_Encoding_DefaultBinary : ChannelSecurityToken,
12304
    ObjectIds.OpenSecureChannelRequest_Encoding_DefaultBinary : OpenSecureChannelRequest,
12305
    ObjectIds.OpenSecureChannelResponse_Encoding_DefaultBinary : OpenSecureChannelResponse,
12306
    ObjectIds.CloseSecureChannelRequest_Encoding_DefaultBinary : CloseSecureChannelRequest,
12307
    ObjectIds.CloseSecureChannelResponse_Encoding_DefaultBinary : CloseSecureChannelResponse,
12308
    ObjectIds.SignedSoftwareCertificate_Encoding_DefaultBinary : SignedSoftwareCertificate,
12309
    ObjectIds.SignatureData_Encoding_DefaultBinary : SignatureData,
12310
    ObjectIds.CreateSessionRequest_Encoding_DefaultBinary : CreateSessionRequest,
12311
    ObjectIds.CreateSessionResponse_Encoding_DefaultBinary : CreateSessionResponse,
12312
    ObjectIds.UserIdentityToken_Encoding_DefaultBinary : UserIdentityToken,
12313
    ObjectIds.AnonymousIdentityToken_Encoding_DefaultBinary : AnonymousIdentityToken,
12314
    ObjectIds.UserNameIdentityToken_Encoding_DefaultBinary : UserNameIdentityToken,
12315
    ObjectIds.X509IdentityToken_Encoding_DefaultBinary : X509IdentityToken,
12316
    ObjectIds.KerberosIdentityToken_Encoding_DefaultBinary : KerberosIdentityToken,
12317
    ObjectIds.IssuedIdentityToken_Encoding_DefaultBinary : IssuedIdentityToken,
12318
    ObjectIds.ActivateSessionRequest_Encoding_DefaultBinary : ActivateSessionRequest,
12319
    ObjectIds.ActivateSessionResponse_Encoding_DefaultBinary : ActivateSessionResponse,
12320
    ObjectIds.CloseSessionRequest_Encoding_DefaultBinary : CloseSessionRequest,
12321
    ObjectIds.CloseSessionResponse_Encoding_DefaultBinary : CloseSessionResponse,
12322
    ObjectIds.CancelRequest_Encoding_DefaultBinary : CancelRequest,
12323
    ObjectIds.CancelResponse_Encoding_DefaultBinary : CancelResponse,
12324
    ObjectIds.NodeAttributes_Encoding_DefaultBinary : NodeAttributes,
12325
    ObjectIds.ObjectAttributes_Encoding_DefaultBinary : ObjectAttributes,
12326
    ObjectIds.VariableAttributes_Encoding_DefaultBinary : VariableAttributes,
12327
    ObjectIds.MethodAttributes_Encoding_DefaultBinary : MethodAttributes,
12328
    ObjectIds.ObjectTypeAttributes_Encoding_DefaultBinary : ObjectTypeAttributes,
12329
    ObjectIds.VariableTypeAttributes_Encoding_DefaultBinary : VariableTypeAttributes,
12330
    ObjectIds.ReferenceTypeAttributes_Encoding_DefaultBinary : ReferenceTypeAttributes,
12331
    ObjectIds.DataTypeAttributes_Encoding_DefaultBinary : DataTypeAttributes,
12332
    ObjectIds.ViewAttributes_Encoding_DefaultBinary : ViewAttributes,
12333
    ObjectIds.AddNodesItem_Encoding_DefaultBinary : AddNodesItem,
12334
    ObjectIds.AddNodesResult_Encoding_DefaultBinary : AddNodesResult,
12335
    ObjectIds.AddNodesRequest_Encoding_DefaultBinary : AddNodesRequest,
12336
    ObjectIds.AddNodesResponse_Encoding_DefaultBinary : AddNodesResponse,
12337
    ObjectIds.AddReferencesItem_Encoding_DefaultBinary : AddReferencesItem,
12338
    ObjectIds.AddReferencesRequest_Encoding_DefaultBinary : AddReferencesRequest,
12339
    ObjectIds.AddReferencesResponse_Encoding_DefaultBinary : AddReferencesResponse,
12340
    ObjectIds.DeleteNodesItem_Encoding_DefaultBinary : DeleteNodesItem,
12341
    ObjectIds.DeleteNodesRequest_Encoding_DefaultBinary : DeleteNodesRequest,
12342
    ObjectIds.DeleteNodesResponse_Encoding_DefaultBinary : DeleteNodesResponse,
12343
    ObjectIds.DeleteReferencesItem_Encoding_DefaultBinary : DeleteReferencesItem,
12344
    ObjectIds.DeleteReferencesRequest_Encoding_DefaultBinary : DeleteReferencesRequest,
12345
    ObjectIds.DeleteReferencesResponse_Encoding_DefaultBinary : DeleteReferencesResponse,
12346
    ObjectIds.ViewDescription_Encoding_DefaultBinary : ViewDescription,
12347
    ObjectIds.BrowseDescription_Encoding_DefaultBinary : BrowseDescription,
12348
    ObjectIds.ReferenceDescription_Encoding_DefaultBinary : ReferenceDescription,
12349
    ObjectIds.BrowseResult_Encoding_DefaultBinary : BrowseResult,
12350
    ObjectIds.BrowseRequest_Encoding_DefaultBinary : BrowseRequest,
12351
    ObjectIds.BrowseResponse_Encoding_DefaultBinary : BrowseResponse,
12352
    ObjectIds.BrowseNextRequest_Encoding_DefaultBinary : BrowseNextRequest,
12353
    ObjectIds.BrowseNextResponse_Encoding_DefaultBinary : BrowseNextResponse,
12354
    ObjectIds.RelativePathElement_Encoding_DefaultBinary : RelativePathElement,
12355
    ObjectIds.RelativePath_Encoding_DefaultBinary : RelativePath,
12356
    ObjectIds.BrowsePath_Encoding_DefaultBinary : BrowsePath,
12357
    ObjectIds.BrowsePathTarget_Encoding_DefaultBinary : BrowsePathTarget,
12358
    ObjectIds.BrowsePathResult_Encoding_DefaultBinary : BrowsePathResult,
12359
    ObjectIds.TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary : TranslateBrowsePathsToNodeIdsRequest,
12360
    ObjectIds.TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary : TranslateBrowsePathsToNodeIdsResponse,
12361
    ObjectIds.RegisterNodesRequest_Encoding_DefaultBinary : RegisterNodesRequest,
12362
    ObjectIds.RegisterNodesResponse_Encoding_DefaultBinary : RegisterNodesResponse,
12363
    ObjectIds.UnregisterNodesRequest_Encoding_DefaultBinary : UnregisterNodesRequest,
12364
    ObjectIds.UnregisterNodesResponse_Encoding_DefaultBinary : UnregisterNodesResponse,
12365
    ObjectIds.EndpointConfiguration_Encoding_DefaultBinary : EndpointConfiguration,
12366
    ObjectIds.SupportedProfile_Encoding_DefaultBinary : SupportedProfile,
12367
    ObjectIds.SoftwareCertificate_Encoding_DefaultBinary : SoftwareCertificate,
12368
    ObjectIds.QueryDataDescription_Encoding_DefaultBinary : QueryDataDescription,
12369
    ObjectIds.NodeTypeDescription_Encoding_DefaultBinary : NodeTypeDescription,
12370
    ObjectIds.QueryDataSet_Encoding_DefaultBinary : QueryDataSet,
12371
    ObjectIds.NodeReference_Encoding_DefaultBinary : NodeReference,
12372
    ObjectIds.ContentFilterElement_Encoding_DefaultBinary : ContentFilterElement,
12373
    ObjectIds.ContentFilter_Encoding_DefaultBinary : ContentFilter,
12374
    ObjectIds.ElementOperand_Encoding_DefaultBinary : ElementOperand,
12375
    ObjectIds.LiteralOperand_Encoding_DefaultBinary : LiteralOperand,
12376
    ObjectIds.AttributeOperand_Encoding_DefaultBinary : AttributeOperand,
12377
    ObjectIds.SimpleAttributeOperand_Encoding_DefaultBinary : SimpleAttributeOperand,
12378
    ObjectIds.ContentFilterElementResult_Encoding_DefaultBinary : ContentFilterElementResult,
12379
    ObjectIds.ContentFilterResult_Encoding_DefaultBinary : ContentFilterResult,
12380
    ObjectIds.ParsingResult_Encoding_DefaultBinary : ParsingResult,
12381
    ObjectIds.QueryFirstRequest_Encoding_DefaultBinary : QueryFirstRequest,
12382
    ObjectIds.QueryFirstResponse_Encoding_DefaultBinary : QueryFirstResponse,
12383
    ObjectIds.QueryNextRequest_Encoding_DefaultBinary : QueryNextRequest,
12384
    ObjectIds.QueryNextResponse_Encoding_DefaultBinary : QueryNextResponse,
12385
    ObjectIds.ReadValueId_Encoding_DefaultBinary : ReadValueId,
12386
    ObjectIds.ReadRequest_Encoding_DefaultBinary : ReadRequest,
12387
    ObjectIds.ReadResponse_Encoding_DefaultBinary : ReadResponse,
12388
    ObjectIds.HistoryReadValueId_Encoding_DefaultBinary : HistoryReadValueId,
12389
    ObjectIds.HistoryReadResult_Encoding_DefaultBinary : HistoryReadResult,
12390
    ObjectIds.HistoryReadDetails_Encoding_DefaultBinary : HistoryReadDetails,
12391
    ObjectIds.ReadEventDetails_Encoding_DefaultBinary : ReadEventDetails,
12392
    ObjectIds.ReadRawModifiedDetails_Encoding_DefaultBinary : ReadRawModifiedDetails,
12393
    ObjectIds.ReadProcessedDetails_Encoding_DefaultBinary : ReadProcessedDetails,
12394
    ObjectIds.ReadAtTimeDetails_Encoding_DefaultBinary : ReadAtTimeDetails,
12395
    ObjectIds.HistoryData_Encoding_DefaultBinary : HistoryData,
12396
    ObjectIds.ModificationInfo_Encoding_DefaultBinary : ModificationInfo,
12397
    ObjectIds.HistoryModifiedData_Encoding_DefaultBinary : HistoryModifiedData,
12398
    ObjectIds.HistoryEvent_Encoding_DefaultBinary : HistoryEvent,
12399
    ObjectIds.HistoryReadRequest_Encoding_DefaultBinary : HistoryReadRequest,
12400
    ObjectIds.HistoryReadResponse_Encoding_DefaultBinary : HistoryReadResponse,
12401
    ObjectIds.WriteValue_Encoding_DefaultBinary : WriteValue,
12402
    ObjectIds.WriteRequest_Encoding_DefaultBinary : WriteRequest,
12403
    ObjectIds.WriteResponse_Encoding_DefaultBinary : WriteResponse,
12404
    ObjectIds.HistoryUpdateDetails_Encoding_DefaultBinary : HistoryUpdateDetails,
12405
    ObjectIds.UpdateDataDetails_Encoding_DefaultBinary : UpdateDataDetails,
12406
    ObjectIds.UpdateStructureDataDetails_Encoding_DefaultBinary : UpdateStructureDataDetails,
12407
    ObjectIds.UpdateEventDetails_Encoding_DefaultBinary : UpdateEventDetails,
12408
    ObjectIds.DeleteRawModifiedDetails_Encoding_DefaultBinary : DeleteRawModifiedDetails,
12409
    ObjectIds.DeleteAtTimeDetails_Encoding_DefaultBinary : DeleteAtTimeDetails,
12410
    ObjectIds.DeleteEventDetails_Encoding_DefaultBinary : DeleteEventDetails,
12411
    ObjectIds.HistoryUpdateResult_Encoding_DefaultBinary : HistoryUpdateResult,
12412
    ObjectIds.HistoryUpdateRequest_Encoding_DefaultBinary : HistoryUpdateRequest,
12413
    ObjectIds.HistoryUpdateResponse_Encoding_DefaultBinary : HistoryUpdateResponse,
12414
    ObjectIds.CallMethodRequest_Encoding_DefaultBinary : CallMethodRequest,
12415
    ObjectIds.CallMethodResult_Encoding_DefaultBinary : CallMethodResult,
12416
    ObjectIds.CallRequest_Encoding_DefaultBinary : CallRequest,
12417
    ObjectIds.CallResponse_Encoding_DefaultBinary : CallResponse,
12418
    ObjectIds.MonitoringFilter_Encoding_DefaultBinary : MonitoringFilter,
12419
    ObjectIds.DataChangeFilter_Encoding_DefaultBinary : DataChangeFilter,
12420
    ObjectIds.EventFilter_Encoding_DefaultBinary : EventFilter,
12421
    ObjectIds.AggregateConfiguration_Encoding_DefaultBinary : AggregateConfiguration,
12422
    ObjectIds.AggregateFilter_Encoding_DefaultBinary : AggregateFilter,
12423
    ObjectIds.MonitoringFilterResult_Encoding_DefaultBinary : MonitoringFilterResult,
12424
    ObjectIds.EventFilterResult_Encoding_DefaultBinary : EventFilterResult,
12425
    ObjectIds.AggregateFilterResult_Encoding_DefaultBinary : AggregateFilterResult,
12426
    ObjectIds.MonitoringParameters_Encoding_DefaultBinary : MonitoringParameters,
12427
    ObjectIds.MonitoredItemCreateRequest_Encoding_DefaultBinary : MonitoredItemCreateRequest,
12428
    ObjectIds.MonitoredItemCreateResult_Encoding_DefaultBinary : MonitoredItemCreateResult,
12429
    ObjectIds.CreateMonitoredItemsRequest_Encoding_DefaultBinary : CreateMonitoredItemsRequest,
12430
    ObjectIds.CreateMonitoredItemsResponse_Encoding_DefaultBinary : CreateMonitoredItemsResponse,
12431
    ObjectIds.MonitoredItemModifyRequest_Encoding_DefaultBinary : MonitoredItemModifyRequest,
12432
    ObjectIds.MonitoredItemModifyResult_Encoding_DefaultBinary : MonitoredItemModifyResult,
12433
    ObjectIds.ModifyMonitoredItemsRequest_Encoding_DefaultBinary : ModifyMonitoredItemsRequest,
12434
    ObjectIds.ModifyMonitoredItemsResponse_Encoding_DefaultBinary : ModifyMonitoredItemsResponse,
12435
    ObjectIds.SetMonitoringModeRequest_Encoding_DefaultBinary : SetMonitoringModeRequest,
12436
    ObjectIds.SetMonitoringModeResponse_Encoding_DefaultBinary : SetMonitoringModeResponse,
12437
    ObjectIds.SetTriggeringRequest_Encoding_DefaultBinary : SetTriggeringRequest,
12438
    ObjectIds.SetTriggeringResponse_Encoding_DefaultBinary : SetTriggeringResponse,
12439
    ObjectIds.DeleteMonitoredItemsRequest_Encoding_DefaultBinary : DeleteMonitoredItemsRequest,
12440
    ObjectIds.DeleteMonitoredItemsResponse_Encoding_DefaultBinary : DeleteMonitoredItemsResponse,
12441
    ObjectIds.CreateSubscriptionRequest_Encoding_DefaultBinary : CreateSubscriptionRequest,
12442
    ObjectIds.CreateSubscriptionResponse_Encoding_DefaultBinary : CreateSubscriptionResponse,
12443
    ObjectIds.ModifySubscriptionRequest_Encoding_DefaultBinary : ModifySubscriptionRequest,
12444
    ObjectIds.ModifySubscriptionResponse_Encoding_DefaultBinary : ModifySubscriptionResponse,
12445
    ObjectIds.SetPublishingModeRequest_Encoding_DefaultBinary : SetPublishingModeRequest,
12446
    ObjectIds.SetPublishingModeResponse_Encoding_DefaultBinary : SetPublishingModeResponse,
12447
    ObjectIds.NotificationMessage_Encoding_DefaultBinary : NotificationMessage,
12448
    ObjectIds.NotificationData_Encoding_DefaultBinary : NotificationData,
12449
    ObjectIds.DataChangeNotification_Encoding_DefaultBinary : DataChangeNotification,
12450
    ObjectIds.MonitoredItemNotification_Encoding_DefaultBinary : MonitoredItemNotification,
12451
    ObjectIds.EventNotificationList_Encoding_DefaultBinary : EventNotificationList,
12452
    ObjectIds.EventFieldList_Encoding_DefaultBinary : EventFieldList,
12453
    ObjectIds.HistoryEventFieldList_Encoding_DefaultBinary : HistoryEventFieldList,
12454
    ObjectIds.StatusChangeNotification_Encoding_DefaultBinary : StatusChangeNotification,
12455
    ObjectIds.SubscriptionAcknowledgement_Encoding_DefaultBinary : SubscriptionAcknowledgement,
12456
    ObjectIds.PublishRequest_Encoding_DefaultBinary : PublishRequest,
12457
    ObjectIds.PublishResponse_Encoding_DefaultBinary : PublishResponse,
12458
    ObjectIds.RepublishRequest_Encoding_DefaultBinary : RepublishRequest,
12459
    ObjectIds.RepublishResponse_Encoding_DefaultBinary : RepublishResponse,
12460
    ObjectIds.TransferResult_Encoding_DefaultBinary : TransferResult,
12461
    ObjectIds.TransferSubscriptionsRequest_Encoding_DefaultBinary : TransferSubscriptionsRequest,
12462
    ObjectIds.TransferSubscriptionsResponse_Encoding_DefaultBinary : TransferSubscriptionsResponse,
12463
    ObjectIds.DeleteSubscriptionsRequest_Encoding_DefaultBinary : DeleteSubscriptionsRequest,
12464
    ObjectIds.DeleteSubscriptionsResponse_Encoding_DefaultBinary : DeleteSubscriptionsResponse,
12465
    ObjectIds.BuildInfo_Encoding_DefaultBinary : BuildInfo,
12466
    ObjectIds.RedundantServerDataType_Encoding_DefaultBinary : RedundantServerDataType,
12467
    ObjectIds.EndpointUrlListDataType_Encoding_DefaultBinary : EndpointUrlListDataType,
12468
    ObjectIds.NetworkGroupDataType_Encoding_DefaultBinary : NetworkGroupDataType,
12469
    ObjectIds.SamplingIntervalDiagnosticsDataType_Encoding_DefaultBinary : SamplingIntervalDiagnosticsDataType,
12470
    ObjectIds.ServerDiagnosticsSummaryDataType_Encoding_DefaultBinary : ServerDiagnosticsSummaryDataType,
12471
    ObjectIds.ServerStatusDataType_Encoding_DefaultBinary : ServerStatusDataType,
12472
    ObjectIds.SessionDiagnosticsDataType_Encoding_DefaultBinary : SessionDiagnosticsDataType,
12473
    ObjectIds.SessionSecurityDiagnosticsDataType_Encoding_DefaultBinary : SessionSecurityDiagnosticsDataType,
12474
    ObjectIds.ServiceCounterDataType_Encoding_DefaultBinary : ServiceCounterDataType,
12475
    ObjectIds.StatusResult_Encoding_DefaultBinary : StatusResult,
12476
    ObjectIds.SubscriptionDiagnosticsDataType_Encoding_DefaultBinary : SubscriptionDiagnosticsDataType,
12477
    ObjectIds.ModelChangeStructureDataType_Encoding_DefaultBinary : ModelChangeStructureDataType,
12478
    ObjectIds.SemanticChangeStructureDataType_Encoding_DefaultBinary : SemanticChangeStructureDataType,
12479
    ObjectIds.Range_Encoding_DefaultBinary : Range,
12480
    ObjectIds.EUInformation_Encoding_DefaultBinary : EUInformation,
12481
    ObjectIds.ComplexNumberType_Encoding_DefaultBinary : ComplexNumberType,
12482
    ObjectIds.DoubleComplexNumberType_Encoding_DefaultBinary : DoubleComplexNumberType,
12483
    ObjectIds.AxisInformation_Encoding_DefaultBinary : AxisInformation,
12484
    ObjectIds.XVType_Encoding_DefaultBinary : XVType,
12485
    ObjectIds.ProgramDiagnosticDataType_Encoding_DefaultBinary : ProgramDiagnosticDataType,
12486
    ObjectIds.Annotation_Encoding_DefaultBinary : Annotation,
12487
}
12488
12489 1
def extensionobject_from_binary(data):
12490
    """
12491
    Convert binary-coded ExtensionObject to a Python object.
12492
    Returns an object, or None if TypeId is zero
12493
    """
12494 1
    TypeId = NodeId.from_binary(data)
12495 1
    Encoding = unpack_uatype('UInt8', data)
12496 1
    if Encoding & (1 << 0):
12497 1
        Body = unpack_uatype('ByteString', data)
12498 1
    if TypeId.Identifier == 0:
12499 1
        return None
12500 1
    klass = ExtensionClasses[TypeId.Identifier]
12501 1
    return klass.from_binary(Buffer(Body))
12502
12503 1
def extensionobject_to_binary(obj):
12504
    """
12505
    Convert Python object to binary-coded ExtensionObject.
12506
    If obj is None, convert to empty ExtensionObject (TypeId = 0, no Body).
12507
    Returns a binary string
12508
    """
12509 1
    TypeId = NodeId()
12510 1
    Encoding = 0
12511 1
    Body = None
12512 1
    if obj is not None:
12513 1
        TypeId = FourByteNodeId(getattr(ObjectIds, "{}_Encoding_DefaultBinary".format(obj.__class__.__name__)))
12514 1
        Encoding |= (1 << 0)
12515 1
        Body = obj.to_binary()
12516 1
    packet = []
12517 1
    packet.append(TypeId.to_binary())
12518 1
    packet.append(pack_uatype('UInt8', Encoding))
12519 1
    if Body:
12520 1
        packet.append(pack_uatype('ByteString', Body))
12521
    return b''.join(packet)
12522