preview.py: Fix from DECTRIS to improve stability of preview

This commit is contained in:
2023-04-13 21:47:35 +02:00
parent 96a1b6e50c
commit 9c300ca451

View File

@@ -4,6 +4,7 @@ import numpy
import sys
import signal
import base64
import time
sys.path.insert(0, "/opt/dectris/albula/4.1/bin")
sys.path.insert(0, "/opt/dectris/albula/4.1/python")
@@ -11,7 +12,6 @@ sys.path.insert(0, "/opt/dectris/albula/4.1/python")
import dectris.albula as albula
from dectris.albula import DNoObject, DDrawingEllipse, DDrawingString, DDrawingLine
TERMINATE = False
@@ -24,7 +24,7 @@ signal.signal(signal.SIGINT, signal_handler)
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.RCVTIMEO = 1000 # in milliseconds
socket.RCVTIMEO = 1000 # in milliseconds
socket.connect("tcp://xbl-daq-38:5400")
socket.setsockopt(zmq.SUBSCRIBE, b"")
@@ -35,11 +35,15 @@ OPTIONAL_DATA.set_y_pixel_size(0.000075)
albulaMain = albula.openMainFrame()
albulaSubFrame = albulaMain.openSubFrame()
startTime = time.time()
def read_message():
while not TERMINATE:
try:
msg = socket.recv_json()
if round(time.time() - startTime) >= 60 * 60:
albulaSubFrame.close()
albulaSubFrame = albulaMain.openSubFrame()
startTime = time.time()
OPTIONAL_DATA.set_wavelength(msg["wavelength_A"])
OPTIONAL_DATA.set_beam_center_x(msg["beam_x_pxl"])
OPTIONAL_DATA.set_beam_center_y(msg["beam_y_pxl"])
@@ -53,7 +57,7 @@ def read_message():
width = int(msg["width"])
image_number = int(msg["image_number"])
image_array = numpy.reshape(image_array, (height, width))
print("Received image %d %d %d %d"%(image_number, height, width, len(image_array)))
print("Received image %d %d %d %d" % (image_number, height, width, len(image_array)))
dimage = albula.DImage(image_array)
if image_number >= 0:
dimage.setOptionalData(OPTIONAL_DATA)
@@ -63,6 +67,3 @@ def read_message():
OPTIONAL_DATA.set_pixel_mask(dimage)
except:
pass
while not TERMINATE:
read_message()