Skip to content

Commit ac058ff

Browse files
Moved function get_viewport_info to SampleView component
1 parent 4e96adf commit ac058ff

File tree

4 files changed

+47
-61
lines changed

4 files changed

+47
-61
lines changed

mxcubeweb/app.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
)
2626

2727
from mxcubeweb.core.adapter.adapter_manager import HardwareObjectAdapterManager
28-
from mxcubeweb.core.components.beamline import Beamline
2928
from mxcubeweb.core.components.chat import Chat
3029
from mxcubeweb.core.components.component_base import import_component
3130
from mxcubeweb.core.components.harvester import Harvester
@@ -166,7 +165,6 @@ def init(
166165
)
167166
MXCUBEApplication.chat = Chat(MXCUBEApplication, {})
168167
MXCUBEApplication.sample_changer = SampleChanger(MXCUBEApplication, {})
169-
MXCUBEApplication.beamline = Beamline(MXCUBEApplication, {})
170168
MXCUBEApplication.sample_view = SampleView(MXCUBEApplication, {})
171169
MXCUBEApplication.workflow = Workflow(MXCUBEApplication, {})
172170
MXCUBEApplication.harvester = Harvester(MXCUBEApplication, {})
@@ -203,7 +201,6 @@ def init_signal_handlers():
203201
MXCUBEApplication.queue.init_signals(HWR.beamline.queue_model)
204202
MXCUBEApplication.sample_view.init_signals()
205203
MXCUBEApplication.sample_changer.init_signals()
206-
MXCUBEApplication.beamline.init_signals()
207204
MXCUBEApplication.harvester.init_signals()
208205

209206
@staticmethod

mxcubeweb/core/components/beamline.py

Lines changed: 0 additions & 56 deletions
This file was deleted.

mxcubeweb/core/components/sampleview.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ def init_signals(self):
146146

147147
def set_image_size(self, width, height):
148148
HWR.beamline.sample_view.camera.restart_streaming((width, height))
149-
return self.app.beamline.get_viewport_info()
149+
return self.get_viewport_info()
150150

151151
def move_to_centred_position(self, point_id):
152152
point = HWR.beamline.sample_view.get_shape(point_id)
@@ -368,3 +368,48 @@ def set_centring_method(self, method):
368368
HWR.beamline.queue_manager.centring_method = CENTRING_METHOD.MANUAL
369369

370370
logging.getLogger("user_level_log").info(msg)
371+
372+
def get_viewport_info(self):
373+
"""
374+
Get information about current "view port" video dimension, beam position,
375+
pixels per mm, returns a dictionary with the format:
376+
377+
data = {"pixelsPerMm": pixelsPerMm,
378+
"imageWidth": width,
379+
"imageHeight": height,
380+
"format": fmt,
381+
"sourceIsScalable": source_is_scalable,
382+
"scale": scale,
383+
"videoSizes": video_sizes,
384+
"position": position,
385+
"shape": shape,
386+
"size_x": sx, "size_y": sy}
387+
388+
:returns: Dictionary with view port data, with format described above
389+
:rtype: dict
390+
"""
391+
fmt, source_is_scalable = "MJPEG", False
392+
393+
if self.app.CONFIG.app.VIDEO_FORMAT == "MPEG1":
394+
fmt, source_is_scalable = "MPEG1", True
395+
video_sizes = HWR.beamline.sample_view.camera.get_available_stream_sizes()
396+
(width, height, scale) = HWR.beamline.sample_view.camera.get_stream_size()
397+
else:
398+
scale = 1
399+
width = HWR.beamline.sample_view.camera.get_width()
400+
height = HWR.beamline.sample_view.camera.get_height()
401+
video_sizes = [(width, height)]
402+
403+
pixels_per_mm = HWR.beamline.diffractometer.get_pixels_per_mm()
404+
405+
return {
406+
"pixelsPerMm": pixels_per_mm,
407+
"imageWidth": width,
408+
"imageHeight": height,
409+
"format": fmt,
410+
"sourceIsScalable": source_is_scalable,
411+
"scale": scale,
412+
"videoSizes": video_sizes,
413+
"videoHash": HWR.beamline.sample_view.camera.stream_hash,
414+
"videoURL": self.app.CONFIG.app.VIDEO_STREAM_URL,
415+
}

mxcubeweb/routes/samplecentring.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def get_image_data():
6464
:statuscode: 200: no error
6565
:statuscode: 409: error
6666
"""
67-
data = app.beamline.get_viewport_info()
67+
data = app.sample_view.get_viewport_info()
6868

6969
resp = jsonify(data)
7070
resp.status_code = 200

0 commit comments

Comments
 (0)