diff --git a/grum/BECAdapter.py b/grum/BECAdapter.py index ca10c2f..f0d90b4 100644 --- a/grum/BECAdapter.py +++ b/grum/BECAdapter.py @@ -31,7 +31,7 @@ class BECAdapter: self.recon = recon if self.monitor: - self.grum_client_monitor.new_plot( "monitor",{'xlabel':'time', 'ylabel':"sls_ring_current", "format": "time" }) + self.grum_client_monitor.new_plot( "monitor",{'xlabel':'time', 'ylabel':"sls_ring_current", "frmt": "time" }) if self.motor_pos: self.grum_client_motor_pos.new_plot("Motor position", {'xlabel':'average_x_st_fzp', 'ylabel':"average_y_st_fzp" }) @@ -48,21 +48,23 @@ class BECAdapter: def scan_status_update(self, segment): # whenever a new scan starts or ends, for now changes scan nr both in start and end - segment = BECMessage.ScanStatusMessage.loads(segment.value) - self.scan_nr = segment.content["info"]["scan_number"] - self.positions = segment.content["info"]["positions"] - xpos = [x for x,y in self.positions] - ypos = [y for x,y in self.positions] - if len(segment.content["info"]["primary"]) == 2: - self.scan_running = True - # print("Plotting new positions") - if self.motor_pos: - self.grum_client_motor_pos.new_plot( "Motor position", {"xs": xpos, "ys":ypos, 'xlabel':'average_x_st_fzp', 'ylabel':"average_y_st_fzp", "format": "Dots"}) - else: - self.scan_running = False + if segment.content["status"] == "open": + segment = BECMessage.ScanStatusMessage.loads(segment.value) + print(segment.content) + self.scan_nr = segment.content["info"]["scan_number"] + self.positions = segment.content["info"]["positions"] + xpos = [x for x,y in self.positions] + ypos = [y for x,y in self.positions] + if len(segment.content["info"]["primary"]) == 2: + self.scan_running = True + # print("Plotting new positions") + if self.motor_pos: + self.grum_client_motor_pos.new_plot( "Motor position", {"xs": xpos, "ys":ypos, 'xlabel':'average_x_st_fzp', 'ylabel':"average_y_st_fzp", "frmt": "Dots"}) + else: + self.scan_running = False - if len(segment.content["info"]["primary"]) == 1: - print("umv") + if len(segment.content["info"]["primary"]) == 1: + print("umv") def start_scan_segment_sub(self): self._scan_segment_sub = self.redis_connector.consumer( diff --git a/grum/plotdesc.py b/grum/plotdesc.py index 3050c8f..b7be666 100644 --- a/grum/plotdesc.py +++ b/grum/plotdesc.py @@ -1,16 +1,16 @@ from pyqtgraph import DateAxisItem +from collections import deque class PlotDescription: - def __init__(self, name, title=None, xlabel=None, ylabel=None, xs=None, ys=None, format=None): + def __init__(self, name, title=None, xlabel=None, ylabel=None, xs=None, ys=None, frmt=None): self.name = name self.title = title self.xlabel = xlabel self.ylabel = ylabel - self.xs = [] if xs is None else list(xs) - self.ys = [] if ys is None else list(ys) - self.format = format - + self.xs = deque(maxlen = 5000) if xs is None else deque(xs, maxlen = 5000) + self.ys = deque(maxlen = 5000) if ys is None else deque(ys, maxlen = 5000) + self.format = frmt @property def data(self): @@ -42,7 +42,7 @@ class PlotDescription: # res = plotwidget.plot(self.xs, self.ys, name=self.name, **style) res = plotwidget.plot(self.xs, self.ys, name=self.name, **style) - if format == "time": + if self.format == "time": axis = DateAxisItem() plotwidget.setAxisItems({'bottom':axis})