change to a deque for monitor

This commit is contained in:
Stalberg Jonathan
2023-04-18 13:43:30 +02:00
parent a07fad5cb7
commit a9abbb227c
2 changed files with 23 additions and 21 deletions

View File

@ -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(

View File

@ -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})