Handle the non-AbsoluteEncoder motor

This commit is contained in:
Douglas Clowes
2013-06-27 15:52:52 +10:00
parent 66f67c1c0d
commit 1c6a2abdcc

View File

@@ -89,11 +89,20 @@ class GalilMotor(object):
def getPosition(self): def getPosition(self):
'''Calculate the unit position''' '''Calculate the unit position'''
value = self.unitsHome + self.currentSteps / self.stepsPerX if self.hasAbsEnc and self.cntsPerX != 0:
# absolute encoder case
value = self.getEncoder() - self.absEncHome value = self.getEncoder() - self.absEncHome
value /= self.cntsPerX value /= self.cntsPerX
value += self.unitsHome value += self.unitsHome
return value return value
elif self.stepsPerX != 0:
# handle non-AbsEncoder case
value = self.currentSteps - self.motorHome
value /= self.stepsPerX
return value
else:
# not-configured case
return -123.456
def doIteration(self, now): def doIteration(self, now):
'''If moving then update speed and position using '''If moving then update speed and position using