Skip to content
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

fix has-transformed-position #22

Merged
merged 11 commits into from
Jul 12, 2022
1 change: 1 addition & 0 deletions yaqd-core/yaqd_core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
from ._is_homeable import *
from ._is_discrete import *
from ._has_limits import *
from ._has_transformed_position import *
from ._has_mapping import *
from ._legacy import *

Expand Down
6 changes: 3 additions & 3 deletions yaqd-core/yaqd_core/_has_transformed_position.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def to_native(self, transformed_position):

def to_transformed(self, native_position):
relative = native_position - self._state["native_reference_position"]
return self._relative_to_transformed(self, relative)
return self._relative_to_transformed(relative)

def _relative_to_transformed(self, relative_position):
"""convert a relative coordinate to a transformed coordinate.
Expand Down Expand Up @@ -58,10 +58,10 @@ def set_position(self, position: float) -> None:
super().set_position(self.to_native(position))

def get_position(self) -> float:
return self.to_transformed(self._state["position"])
return self.to_transformed(super().get_position())

def get_destination(self) -> float:
return self.to_transformed(self._state["destination"])
return self.to_transformed(super().get_destination())

def in_limits(self, position: float) -> bool:
return super().in_limits(self.to_native(position))
Expand Down
7 changes: 6 additions & 1 deletion yaqd-core/yaqd_core/_mro.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ def assert_mro(cls, avpr):
mro = list(cls.__mro__)
while mro:
cls = mro.pop(0)
if cls == yaqd_core.HasLimits:
if cls == yaqd_core.HasTransformedPosition:
assert traits.pop(traits.index("has-transformed-position"))
assert yaqd_core.HasLimits in mro
assert yaqd_core.HasPosition in mro
assert yaqd_core.IsDaemon in mro
elif cls == yaqd_core.HasLimits:
assert traits.pop(traits.index("has-limits"))
assert yaqd_core.HasPosition in mro
assert yaqd_core.IsDaemon in mro
Expand Down