async def read_raw_history(self, starttime=None, endtime=None, numvalues=0, return_bounds=True): """ Read raw history of a node result code from server is checked and an exception is raised in case of error If numvalues is > 0 and number of events in period is > numvalues then result will be truncated """ details = ua.ReadRawModifiedDetails() details.IsReadModified = False if starttime: details.StartTime = starttime else: details.StartTime = ua.get_win_epoch() if endtime: details.EndTime = endtime else: details.EndTime = ua.get_win_epoch() details.NumValuesPerNode = numvalues details.ReturnBounds = return_bounds history = [] continuation_point = None while True: result = await self.history_read(details, continuation_point) result.StatusCode.check() continuation_point = result.ContinuationPoint history.extend(result.HistoryData.DataValues) # No more data available if continuation_point is None: break return history
async def read_raw_history(self, starttime=None, endtime=None, numvalues=0): """ Read raw history of a node result code from server is checked and an exception is raised in case of error If numvalues is > 0 and number of events in period is > numvalues then result will be truncated """ details = ua.ReadRawModifiedDetails() details.IsReadModified = False if starttime: details.StartTime = starttime else: details.StartTime = ua.get_win_epoch() if endtime: details.EndTime = endtime else: details.EndTime = ua.get_win_epoch() details.NumValuesPerNode = numvalues details.ReturnBounds = True result = await self.history_read(details) result.StatusCode.check() return result.HistoryData.DataValues