Skip to content

Commit

Permalink
Merge pull request #1368 from barentine/singleaxisonmulti
Browse files Browse the repository at this point in the history
Add class to wrap multiaxis controllers to mimic single-axis piezo object
  • Loading branch information
David-Baddeley committed Jun 15, 2023
2 parents 718cab0 + 5f14f31 commit 3e6e5f2
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions PYME/Acquire/Hardware/Piezos/base_piezo.py
Expand Up @@ -62,3 +62,41 @@ def GetFirmwareVersion(self):
def OnTarget(self):
raise NotImplementedError


class SingleAxisWrapper(PiezoBase):
"""
Allows use of an axis on a multiaxis stage as a single-axis
PiezoBase object for compatibility with e.g. focus-lock code.
"""
def __init__(self, multiaxis_stage, axis=1):
super().__init__()
self.multiaxis_stage = multiaxis_stage
self.units_um = self.multiaxis_stage.units_um
self.axis = axis

def MoveTo(self, iChannel, fPos, bTimeOut=True):
self.multiaxis_stage.MoveTo(self.axis, fPos, bTimeOut)

def MoveRel(self, iChannel, incr, bTimeOut=True):
self.multiaxis_stage.MoveRel(self.axis, incr, bTimeOut)

def GetPos(self, iChannel=0):
return self.multiaxis_stage.GetPos(self.axis)

def GetTargetPos(self, iChannel=0):
return self.multiaxis_stage.GetTargetPos(self.axis)

def GetMin(self, iChan=1):
return self.multiaxis_stage.GetMin(self.axis)

def GetMax(self, iChan=1):
return self.multiaxis_stage.GetMax(self.axis)

def GetFirmwareVersion(self):
return self.multiaxis_stage.GetFirmwareVersion()

def OnTarget(self):
return self.multiaxis_stage.OnTarget()

def SetServo(self, val=1):
self.multiaxis_stage.SetServo(val)

0 comments on commit 3e6e5f2

Please sign in to comment.