1
|
|
|
''' |
2
|
|
|
Example auto_generated file with UA Types |
3
|
|
|
|
4
|
|
|
For now only events! |
5
|
|
|
''' |
6
|
|
|
|
7
|
|
|
from opcua.ua import * |
8
|
|
|
|
9
|
|
|
|
10
|
|
|
# TODO: This should be autogeneratd form XML description of EventTypes |
11
|
|
|
class BaseEvent(FrozenClass): |
12
|
|
|
''' |
13
|
|
|
BaseEvent implements BaseEventType from which inherit all other events and it is used per default. |
14
|
|
|
''' |
15
|
|
|
def __init__(self, sourcenode=None, message=None, severity=1, extended=False): |
16
|
|
|
self.EventId = bytes() |
17
|
|
|
self.EventType = NodeId(ObjectIds.BaseEventType) |
18
|
|
|
self.SourceNode = sourcenode |
19
|
|
|
self.SourceName = None |
20
|
|
|
self.Time = None |
21
|
|
|
self.RecieveTime = None |
22
|
|
|
self.LocalTime = None |
23
|
|
|
self.Message = LocalizedText(message) |
24
|
|
|
self.Severity = Variant(severity, VariantType.UInt16) |
25
|
|
|
if not extended: |
26
|
|
|
self._freeze = True |
27
|
|
|
|
28
|
|
|
def __str__(self): |
29
|
|
|
return "{}({})".format(type(self).__name__, [str(k) + ":" + str(v) for k, v in self.__dict__.items()]) |
30
|
|
|
__repr__ = __str__ |
31
|
|
|
|
32
|
|
|
|
33
|
|
|
class AuditEvent(BaseEvent): |
34
|
|
|
''' |
35
|
|
|
Audit implements AuditEventType from which inherit all other Audit events. |
36
|
|
|
''' |
37
|
|
|
def __init__(self, sourcenode=None, message=None, severity=1, extended=False): |
38
|
|
|
super(AuditEvent, self).__init__(sourcenode, message, severity, True) |
39
|
|
|
self.EventType = NodeId(ObjectIds.AuditEventType) |
40
|
|
|
|
41
|
|
|
self.ActionTimeStamp = None |
42
|
|
|
self.Status = False |
43
|
|
|
self.ServerId = None |
44
|
|
|
self.ClientAuditEntryId = None |
45
|
|
|
self.ClientUserId = None |
46
|
|
|
if not extended: |
47
|
|
|
self._freeze = True |
48
|
|
|
|
49
|
|
|
|
50
|
|
|
IMPLEMENTED_EVENTS = { |
51
|
|
|
ObjectIds.BaseEventType: BaseEvent, |
52
|
|
|
ObjectIds.AuditEventType: AuditEvent, |
53
|
|
|
} |
54
|
|
|
|