@@ -74,16 +74,17 @@ async def set_filter(self, filter_name: str, **kwargs: Any) -> None:
74
74
"""
75
75
76
76
# get filter pos and set it
77
- for wheel in range (len (self ._filter_names )):
78
- if filter_name in self ._filter_names [wheel ]:
79
- pos = self ._filter_names [wheel ].index (filter_name )
80
- break
77
+ if filter_name in self ._filter_names [0 ]:
78
+ p = self ._filter_names [0 ].index (filter_name )
79
+ pos = 0 if p == 0 else 7 - p
80
+ elif filter_name in self ._filter_names [1 ]:
81
+ p = self ._filter_names [1 ].index (filter_name )
82
+ pos = 7 * p
81
83
else :
82
84
raise exc .ModuleError ("Filter not found" )
83
85
84
86
# move filter
85
87
await self ._change_motion_status (MotionStatus .SLEWING )
86
- self ._driver .set_active_filter_wheel (wheel )
87
88
self ._driver .set_filter_pos (pos )
88
89
await self ._change_motion_status (MotionStatus .POSITIONED )
89
90
@@ -95,9 +96,11 @@ async def get_filter(self, **kwargs: Any) -> str:
95
96
"""
96
97
97
98
# get filter pos and return filter name
98
- wheel = self ._driver .get_active_filter_wheel ()
99
- pos = self ._driver .get_filter_pos ()
100
- return self ._filter_names [wheel ][pos ]
99
+ div , mod = divmod (self ._driver .get_filter_pos (), 7 )
100
+ if mod == 0 :
101
+ return self ._filter_names [1 ][div ]
102
+ else :
103
+ return self ._filter_names [0 ][0 if mod == 0 else 7 - mod ]
101
104
102
105
async def init (self , ** kwargs : Any ) -> None :
103
106
"""Initialize device.
0 commit comments