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])
|
now, = self.get_abs_time([0])
|
||||||
|
|
||||||
result = self.influx_data_getter.poll_last_values(list(self.variables.keys()), self.lastvalues, now)
|
result = self.influx_data_getter.poll_last_values(list(self.variables.keys()), self.lastvalues, now)
|
||||||
for variable in self.lastvalues.keys():
|
for variable, values in list(result.items()):
|
||||||
if variable in result.keys():
|
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)
|
# removes points older than the last known point (queries are in seconds and might return points already displayed)
|
||||||
while len(result[variable]) > 0:
|
while values and values[0][0] <= tlast:
|
||||||
if result[variable][0][0] <= self.lastvalues[variable][0]:
|
values.pop(0)
|
||||||
result[variable].pop(0)
|
if values and values[-1][0] > tlast:
|
||||||
else:
|
self.lastvalues[variable] = values[-1]
|
||||||
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])
|
|
||||||
else:
|
else:
|
||||||
del result[variable]
|
del result[variable]
|
||||||
|
|
||||||
if int(now / 60) != int(self.end_query / 60):
|
if int(now / 60) != int(self.end_query / 60):
|
||||||
# Update unchanged values every plain minute
|
# Update unchanged values every plain minute
|
||||||
for var, (_, lastx) in self.lastvalues.items():
|
for var, (_, lastx) in self.lastvalues.items():
|
||||||
|
Reference in New Issue
Block a user