added set_data; refactored sync_item_and_plots

This commit is contained in:
2023-02-10 10:10:12 +01:00
parent 831b03a744
commit c781601246

View File

@ -86,6 +86,7 @@ class MainWindow(QMainWindow):
rst.start() rst.start()
rst.server.register_function(self.new_plot) rst.server.register_function(self.new_plot)
rst.server.register_function(self.append_data) rst.server.register_function(self.append_data)
rst.server.register_function(self.set_data)
self.sig_make_new_plot.connect(self.on_make_new_plot) self.sig_make_new_plot.connect(self.on_make_new_plot)
@ -116,14 +117,17 @@ class MainWindow(QMainWindow):
item = self.lst.get(name) item = self.lst.get(name)
desc = item.value desc = item.value
desc.append(point) desc.append(point)
alarm = True self.sync_item_and_plots(item)
for sub in self.mdi.subWindowList():
if name in sub.plots: def set_data(self, name, data):
plot = sub.plots[name] """
plot.setData(*desc.data) Set <data> as the data of the (existing) plot <name>.
alarm = False The data is assigned to the data attribute of PlotDescription.
item.timestamps.modification.update() """
item.set_alarm(alarm) item = self.lst.get(name)
desc = item.value
desc.data = data
self.sync_item_and_plots(item)
# Signal callbacks # Signal callbacks
@ -196,6 +200,17 @@ class MainWindow(QMainWindow):
self.lst.set(name, desc) self.lst.set(name, desc)
return desc return desc
def sync_item_and_plots(self, item):
name, desc = item.key, item.value
alarm = True
for sub in self.mdi.subWindowList():
if name in sub.plots:
plot = sub.plots[name]
plot.setData(*desc.data)
alarm = False
item.timestamps.modification.update()
item.set_alarm(alarm)
def plot_single_item(self, item): def plot_single_item(self, item):
item.timestamps.access.update() item.timestamps.access.update()
item.set_alarm(False) item.set_alarm(False)