Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion mxcubeweb/core/adapter/adapter_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import traceback

from mxcubecore import (
HardwareRepository as HWR, # noqa: N814 (should be disabled globaly)
HardwareRepository as HWR,
)
from mxcubecore.utils.conversion import make_table

Expand Down
27 changes: 24 additions & 3 deletions mxcubeweb/core/adapter/detector_adapter.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
from typing import ClassVar

from mxcubecore import HardwareRepository as HWR
from mxcubecore.HardwareObjects.abstract import AbstractDetector

from mxcubeweb.core.adapter.adapter_base import AdapterBase
from mxcubeweb.core.models.configmodels import ResourceHandlerConfigModel

resource_handler_config = ResourceHandlerConfigModel(
name="detector_test",
url_prefix="/mxcube/api/v0.1/detectortest",
attributes=["data"],
commands=["display_image"],
attributes=["data", "get_value"],
)


Expand All @@ -23,8 +23,29 @@ def __init__(self, ho, role, app):
super().__init__(ho, role, app, resource_handler_config)
ho.connect("stateChanged", self._state_change)

def get_value(self) -> dict:
"""
Get the file suffix of the data files.
"""
return {"fileSuffix": HWR.beamline.detector.get_property("file_suffix", "?")}

def _state_change(self, *args, **kwargs):
self.state_change(*args, **kwargs)

def state(self):
return self._ho.get_state().name.upper()

def display_image(self, path: str, img_num) -> dict:
"""
Notify ADXV and/or Braggy of the image to display.
"""
res = {"path": "", "img": 0}

if path:
fpath, img = HWR.beamline.detector.get_actual_file_path(path, img_num)
HWR.beamline.collect.adxv_notify(fpath, img)
fpath = HWR.beamline.session.get_path_with_proposal_as_root(fpath)

res = {"path": fpath, "img_num": img_num}

return res
28 changes: 0 additions & 28 deletions mxcubeweb/core/components/beamline.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import logging

from mxcubecore import HardwareRepository as HWR

from mxcubeweb.core.adapter.beamline_adapter import BeamlineAdapter
Expand Down Expand Up @@ -100,29 +98,3 @@ def beamline_get_all_attributes(self):
def prepare_beamline_for_sample(self):
if hasattr(HWR.beamline.collect, "prepare_for_new_sample"):
HWR.beamline.collect.prepare_for_new_sample()

def get_detector_info(self):
try:
filetype = HWR.beamline.detector.get_property("file_suffix")
except Exception:
filetype = None

if filetype is None:
filetype = "cbf"
logging.getLogger("MX3.HWR").warning(
"Detector file format not specified. Using cbf."
)

return filetype

def display_image(self, path, img_num):
res = {"path": "", "img": 0}

if path:
fpath, img = HWR.beamline.detector.get_actual_file_path(path, img_num)
HWR.beamline.collect.adxv_notify(fpath, img)
fpath = HWR.beamline.session.get_path_with_proposal_as_root(fpath)

res = {"path": fpath, "img_num": img_num}

return res
45 changes: 0 additions & 45 deletions mxcubeweb/routes/detector.py

This file was deleted.

5 changes: 0 additions & 5 deletions mxcubeweb/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ def register_routes(mxcube):

from mxcubeweb.routes.beamline import init_route as init_beamline_route
from mxcubeweb.routes.csp_report import init_route as init_csp_route
from mxcubeweb.routes.detector import init_route as init_detector_route
from mxcubeweb.routes.harvester import init_route as init_harvester_route
from mxcubeweb.routes.lims import init_route as init_lims_route
from mxcubeweb.routes.login import init_route as init_login_route
Expand All @@ -139,10 +138,6 @@ def register_routes(mxcube):
)
Server._register_route(init_csp_route, mxcube, f"{url_root_prefix}/csp")

Server._register_route(
init_detector_route, mxcube, f"{url_root_prefix}/detector"
)

Server._register_route(init_lims_route, mxcube, f"{url_root_prefix}/lims")

Server._register_route(init_login_route, mxcube, f"{url_root_prefix}/login")
Expand Down
3 changes: 3 additions & 0 deletions ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ select = [
"ALL",
]

[lint.pep8-naming]
extend-ignore-names = ["HWR"] # To avoid "N814": Camelcase `HardwareRepository` imported as constant `HWR`


[lint.per-file-ignores]
"docs/conf.py" = [
Expand Down
16 changes: 11 additions & 5 deletions ui/src/actions/general.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { fetchDisplayImage } from '../api/detector';
import { sendExecuteCommand } from '../api/hardware-object';

export function addUserMessage(records, target) {
return {
Expand Down Expand Up @@ -54,9 +54,15 @@ export function showConfirmClearQueueDialog(show = true) {

export function displayImage(path, imgNum) {
return async () => {
const data = await fetchDisplayImage(path, imgNum);
if (data && data.image_url) {
window.open(data.image_url, 'braggy');
}
const data = await sendExecuteCommand(
'detector',
'detector',
'display_image',
{ path, imgNum },
);
window.open(
`https://braggy.mxcube3.esrf.fr/?file=${data.path}/image_${data.img_num}.h5.dataset`,
'braggy',
);
};
}
3 changes: 1 addition & 2 deletions ui/src/actions/login.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/* eslint-disable promise/prefer-await-to-then */
import { fetchBeamlineSetup } from '../api/beamline';
import { fetchDetectorInfo } from '../api/detector';
import { fetchValue } from '../api/hardware-object';
import { fetchHarvesterInitialState } from '../api/harvester';
import { sendSelectProposal } from '../api/lims';
Expand Down Expand Up @@ -112,7 +111,7 @@ export function getInitialState() {
fetchValue('diffractometer', 'diffractometer')
.then((diffractometer) => ({ diffractometer }))
.catch(notify),
fetchDetectorInfo()
fetchValue('detector', 'detector')
.then((detector) => ({ detector }))
.catch(notify),
fetchAvailableTasks()
Expand Down
13 changes: 0 additions & 13 deletions ui/src/api/detector.js

This file was deleted.