1
1
from typing import ClassVar
2
2
3
- from mxcubecore .HardwareObjects import (
4
- GenericDiffractometer ,
5
- MiniDiff ,
6
- )
3
+ from mxcubecore .HardwareObjects import GenericDiffractometer , MiniDiff
7
4
8
5
from mxcubeweb .core .adapter .adapter_base import AdapterBase
6
+ from mxcubeweb .core .models .configmodels import ResourceHandlerConfigModel
7
+
8
+ resource_handler_config = ResourceHandlerConfigModel (
9
+ commands = ["set_chip_layout" , "set_phase" ],
10
+ attributes = ["data" , "get_value" , "head_configuration" ],
11
+ )
9
12
10
13
11
14
class DiffractometerAdapter (AdapterBase ):
@@ -17,12 +20,12 @@ class DiffractometerAdapter(AdapterBase):
17
20
GenericDiffractometer .GenericDiffractometer ,
18
21
]
19
22
20
- def __init__ (self , ho , * args ):
23
+ def __init__ (self , ho , role , app ):
21
24
"""
22
25
Args:
23
26
(object): Hardware object.
24
27
"""
25
- super ().__init__ (ho , * args )
28
+ super ().__init__ (ho , role , app , resource_handler_config )
26
29
ho .connect ("stateChanged" , self ._state_change )
27
30
ho .connect ("valueChanged" , self ._state_change )
28
31
ho .connect ("phaseChanged" , self ._diffractometer_phase_changed )
@@ -37,6 +40,12 @@ def _diffractometer_phase_changed(self, phase):
37
40
def _state_change (self , * args , ** kwargs ):
38
41
self .state_change (* args , ** kwargs )
39
42
43
+ def get_value (self ) -> dict :
44
+ return {
45
+ "currentPhase" : self ._ho .get_current_phase (),
46
+ "phaseList" : self ._ho .get_phase_list (),
47
+ }
48
+
40
49
def stop (self ):
41
50
pass
42
51
@@ -53,3 +62,7 @@ def set_chip_layout(
53
62
) -> bool :
54
63
self ._ho .set_chip_layout (layout_name )
55
64
return True
65
+
66
+ def set_phase (self , phase : str ) -> bool :
67
+ self ._ho .set_phase (phase )
68
+ return True
0 commit comments