|
@@ 442-457 (lines=16) @@
|
| 439 |
|
event_res.append(events.Event.from_event_fields(evfilter.SelectClauses, res.EventFields)) |
| 440 |
|
return event_res |
| 441 |
|
|
| 442 |
|
def history_read_events(self, details): |
| 443 |
|
""" |
| 444 |
|
Read event history of a node, low-level function |
| 445 |
|
result code from server is checked and an exception is raised in case of error |
| 446 |
|
""" |
| 447 |
|
valueid = ua.HistoryReadValueId() |
| 448 |
|
valueid.NodeId = self.nodeid |
| 449 |
|
valueid.IndexRange = '' |
| 450 |
|
|
| 451 |
|
params = ua.HistoryReadParameters() |
| 452 |
|
params.HistoryReadDetails = details |
| 453 |
|
params.TimestampsToReturn = ua.TimestampsToReturn.Both |
| 454 |
|
params.ReleaseContinuationPoints = False |
| 455 |
|
params.NodesToRead.append(valueid) |
| 456 |
|
result = self.server.history_read(params)[0] |
| 457 |
|
return result |
| 458 |
|
|
| 459 |
|
# Hack for convenience methods |
| 460 |
|
# local import is ugly but necessary for python2 support |
|
@@ 392-407 (lines=16) @@
|
| 389 |
|
result = self.history_read(details) |
| 390 |
|
return result.HistoryData.DataValues |
| 391 |
|
|
| 392 |
|
def history_read(self, details): |
| 393 |
|
""" |
| 394 |
|
Read raw history of a node, low-level function |
| 395 |
|
result code from server is checked and an exception is raised in case of error |
| 396 |
|
""" |
| 397 |
|
valueid = ua.HistoryReadValueId() |
| 398 |
|
valueid.NodeId = self.nodeid |
| 399 |
|
valueid.IndexRange = '' |
| 400 |
|
|
| 401 |
|
params = ua.HistoryReadParameters() |
| 402 |
|
params.HistoryReadDetails = details |
| 403 |
|
params.TimestampsToReturn = ua.TimestampsToReturn.Both |
| 404 |
|
params.ReleaseContinuationPoints = False |
| 405 |
|
params.NodesToRead.append(valueid) |
| 406 |
|
result = self.server.history_read(params)[0] |
| 407 |
|
return result |
| 408 |
|
|
| 409 |
|
def read_event_history(self, starttime=None, endtime=None, numvalues=0, evtypes=ua.ObjectIds.BaseEventType): |
| 410 |
|
""" |