fix mechanism to strip overlapping data for live update
fix bug when when there was no last value yet
This commit is contained in:
@ -201,21 +201,15 @@ class InfluxGraph:
|
||||
now, = self.get_abs_time([0])
|
||||
|
||||
result = self.influx_data_getter.poll_last_values(list(self.variables.keys()), self.lastvalues, now)
|
||||
for variable in self.lastvalues.keys():
|
||||
if variable in result.keys():
|
||||
|
||||
for variable, values in list(result.items()):
|
||||
tlast = self.lastvalues.get(variable, (0,))[0]
|
||||
# removes points older than the last known point (queries are in seconds and might return points already displayed)
|
||||
while len(result[variable]) > 0:
|
||||
if result[variable][0][0] <= self.lastvalues[variable][0]:
|
||||
result[variable].pop(0)
|
||||
else:
|
||||
break
|
||||
|
||||
if len(result[variable]) > 0 and result[variable][-1][0] > self.lastvalues[variable][0]:
|
||||
self.lastvalues[variable] = (result[variable][-1][0], result[variable][-1][1])
|
||||
while values and values[0][0] <= tlast:
|
||||
values.pop(0)
|
||||
if values and values[-1][0] > tlast:
|
||||
self.lastvalues[variable] = values[-1]
|
||||
else:
|
||||
del result[variable]
|
||||
|
||||
if int(now / 60) != int(self.end_query / 60):
|
||||
# Update unchanged values every plain minute
|
||||
for var, (_, lastx) in self.lastvalues.items():
|
||||
|
Reference in New Issue
Block a user