8000 Bugfix MCS2 drivers: removed separate import MoveMode by ErikMaris · Pull Request #235 · LabExT/LabExT · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Bugfix MCS2 drivers: removed separate import MoveMode #235

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: dev
Choose a base branch
from
Open
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
21 changes: 11 additions & 10 deletions LabExT/Movement/Stages/ChannelMCS2.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
try:
import smaract.ctl as ctl
import smaract.ctl.MoveMode as MoveMode
MCS_LOADED = True
except (ImportError, OSError):
ctl = None
MoveMode = None
MCS_LOADED = False

class ChannelMCS2:
Expand All @@ -24,7 +22,7 @@ class ChannelMCS2:
Speed setting of channel in micrometers/seconds
_acceleration : float
Acceleration setting of channel in micrometers/seconds^2
movement_mode : MoveMode
movement_mode
Movement type of the channel

Methods
Expand Down Expand Up @@ -62,7 +60,10 @@ def __init__(self, stage, index, name='Channel') -> None:
self._stage = stage
self._handle = index
self._status = None
self._movement_mode = MoveMode.CL_RELATIVE
if MCS_LOADED:
self._movement_mode = ctl.MoveMode.CL_RELATIVE
else:
self._movement_mode = None
self._position = None
self._sensor = None
self._speed = 0
Expand Down Expand Up @@ -133,14 +134,14 @@ def acceleration(self, umps2: float) -> None:
self._acceleration = umps2

@property
def movement_mode(self) -> MoveMode:
def movement_mode(self):
"""Returns movement mode of channel as MoveMode enum."""
return self._movement_mode

@movement_mode.setter
def movement_mode(self, mode: MoveMode) -> None:
def movement_mode(self, mode) -> None:
"""Sets the movement mode of channel as MoveMode enum."""
if not isinstance(mode, MoveMode):
if not isinstance(mode, ctl.MoveMode):
raise ValueError(f'Invalid movement mode {mode}')
ctl.SetProperty_i32(self._stage.handle, self._handle, ctl.Property.MOVE_MODE, mode)
self._movement_mode = mode
Expand All @@ -153,14 +154,14 @@ def stop(self) -> None:

# Movement

def move(self, value: float, mode: MoveMode) -> None:
def move(self, value: float, mode) -> None:
"""Moves the channel with the specified movement type by the value 'value'.
Parameters
----------
value : float
Channel movement measured in micrometers
mode : MoveMode
Channel movement type (e.g. MoveMode.CL_ABSOLUTE)
mode : ctl.MoveMode
Channel movement type (e.g. ctl.MoveMode.CL_ABSOLUTE)
"""
self.movement_mode = mode
ctl.Move(self._stage.handle, self._handle, self._to_picometer(value))
Expand Down
0