@@ 472-487 (lines=16) @@ | ||
469 | event_res.append(events.Event.from_event_fields(evfilter.SelectClauses, res.EventFields)) |
|
470 | return event_res |
|
471 | ||
472 | def history_read_events(self, details): |
|
473 | """ |
|
474 | Read event history of a node, low-level function |
|
475 | result code from server is checked and an exception is raised in case of error |
|
476 | """ |
|
477 | valueid = ua.HistoryReadValueId() |
|
478 | valueid.NodeId = self.nodeid |
|
479 | valueid.IndexRange = '' |
|
480 | ||
481 | params = ua.HistoryReadParameters() |
|
482 | params.HistoryReadDetails = details |
|
483 | params.TimestampsToReturn = ua.TimestampsToReturn.Both |
|
484 | params.ReleaseContinuationPoints = False |
|
485 | params.NodesToRead.append(valueid) |
|
486 | result = self.server.history_read(params)[0] |
|
487 | return result |
|
488 | ||
489 | # Hack for convenience methods |
|
490 | # local import is ugly but necessary for python2 support |
|
@@ 422-437 (lines=16) @@ | ||
419 | result = self.history_read(details) |
|
420 | return result.HistoryData.DataValues |
|
421 | ||
422 | def history_read(self, details): |
|
423 | """ |
|
424 | Read raw history of a node, low-level function |
|
425 | result code from server is checked and an exception is raised in case of error |
|
426 | """ |
|
427 | valueid = ua.HistoryReadValueId() |
|
428 | valueid.NodeId = self.nodeid |
|
429 | valueid.IndexRange = '' |
|
430 | ||
431 | params = ua.HistoryReadParameters() |
|
432 | params.HistoryReadDetails = details |
|
433 | params.TimestampsToReturn = ua.TimestampsToReturn.Both |
|
434 | params.ReleaseContinuationPoints = False |
|
435 | params.NodesToRead.append(valueid) |
|
436 | result = self.server.history_read(params)[0] |
|
437 | return result |
|
438 | ||
439 | def read_event_history(self, starttime=None, endtime=None, numvalues=0, evtypes=ua.ObjectIds.BaseEventType): |
|
440 | """ |