You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.
This feature request has the goal of solving inconsistencies between user position limits and dial position limits
A Sardana motor has two types of limits:
User position limits
Dial position limits
Only one pair of limits with persistence should exist: the dial limits. The user would interact with the limits (set and get) at the user layer: the user limits. The user limits set by the user, would change automatically the dial limits.
User and dial limits are totally independent at the moment. Instead of being independent between them, they should be linked following the formulas(*).
When the user limits are changed (by using set_lim for example), dial limits should be set automatically by taking into account sign, offset and user limits. This is not currently the case.
When changing the offset and/or the sign, user limits should be changed taking as reference the offset, sign and dial limits. Dial limits will remain the same.
User should not be able to set the dial limits (macro set_lm should be removed).
When setting a new value for steps_per_unit attribute, the dial position change. Dial limits have to change as well taking into account the new steps_per_unit, following the formulas(**). As a consequence of the dial limits change, user limits will change as well.
This feature request has the goal of solving inconsistencies between user position limits and dial position limits
A Sardana motor has two types of limits:
Only one pair of limits with persistence should exist: the dial limits. The user would interact with the limits (set and get) at the user layer: the user limits. The user limits set by the user, would change automatically the dial limits.
User and dial limits are totally independent at the moment. Instead of being independent between them, they should be linked following the formulas(*).
Formulas (*):
user_lower_limit = sign * dial_lower_limit + offset
user_upper_limit = sign * dial_upper_limit + offset
When the user limits are changed (by using set_lim for example), dial limits should be set automatically by taking into account sign, offset and user limits. This is not currently the case.
When changing the offset and/or the sign, user limits should be changed taking as reference the offset, sign and dial limits. Dial limits will remain the same.
User should not be able to set the dial limits (macro set_lm should be removed).
When setting a new value for steps_per_unit attribute, the dial position change. Dial limits have to change as well taking into account the new steps_per_unit, following the formulas(**). As a consequence of the dial limits change, user limits will change as well.
Formulas (**):
new_dial_lower_limit = old_dial_lower_limit * steps_per_unit_old / steps_per_unit_new
new_dial_upper_limit = old_dial_upper_limit * steps_per_unit_old / steps_per_unit_new
Reported by: sagiss ( http://sf.net/u/mrosanes )
Original Ticket: sardana/tickets/286
The text was updated successfully, but these errors were encountered: