Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #1579 from reszelaz/stop_motion_only_once_in_scans
Browse files Browse the repository at this point in the history
Stop motion only once in scans
  • Loading branch information
reszelaz authored Jul 14, 2021
2 parents 2f1d02b + 339e051 commit 8bfd1a3
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 22 deletions.
22 changes: 0 additions & 22 deletions src/sardana/macroserver/msmacromanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -1068,11 +1068,6 @@ def __init__(self, door):
self._door = door
self._macro_counter = 0

# dict<PoolElement, set<Macro>>
# key PoolElement - reserved object
# value set<Macro> macros that reserved the object
self._reserved_objs = {}

# dict<Macro, seq<PoolElement>>
# key Macro - macro object
# value - sequence of reserverd objects by the macro
Expand Down Expand Up @@ -1579,11 +1574,6 @@ def run(self, params, asynch=True):
macro script
:return: (lxml.etree.Element) the xml representation of the running macro
"""
# dict<PoolElement, set<Macro>>
# key PoolElement - reserved object
# value set<Macro> macros that reserved the object
self._reserved_objs = {}

# dict<Macro, seq<PoolElement>>
# key Macro - macro object
# value - sequence of reserved objects by the macro
Expand Down Expand Up @@ -1847,10 +1837,6 @@ def reserveObj(self, obj, macro_obj, priority=0):
else:
objs.append(obj)

# Fill _reserved_objs
macros = self._reserved_objs[obj] = self._reserved_objs.get(obj, set())
macros.add(macro_obj)

# Tell the object that it is reserved by a new macro
if hasattr(obj, 'reserve'):
obj.reserve(macro_obj)
Expand Down Expand Up @@ -1882,11 +1868,3 @@ def returnObj(self, obj, macro_obj):
objs.remove(obj)
if len(objs) == 0:
del self._reserved_macro_objs[macro_obj]

try:
macros = self._reserved_objs[obj]
macros.remove(macro_obj)
if not len(macros):
del self._reserved_objs[obj]
except KeyError:
self.debug("Unexpected KeyError trying to remove reserved object")
8 changes: 8 additions & 0 deletions src/sardana/taurus/core/tango/sardana/motion.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,13 @@ def __init__(self, elements, moveable_srcs, allow_repeat=False,
def __str__(self):
return self.__class__.__name__ + "(" + str(self.names) + ")"

def __eq__(self, other):
if not hasattr(other, "_moveable_full_name_list"):
return False
else:
return set(self._moveable_full_name_list) \
== set(other._moveable_full_name_list)

def init_by_movables(self, elements, moveable_srcs, allow_repeat, allow_unknown):
# TODO: Optimize this. Dont call init_by_names. It its possible to do it
# manually with some performance gain
Expand Down Expand Up @@ -299,6 +306,7 @@ def init_by_names(self, names, moveable_srcs, allow_repeat, allow_unknown):

# list<Moveable>
self.moveable_list = moveable_list
self._moveable_full_name_list = [m.full_name for m in moveable_list]

# list<tuple(int moveable_index, int position_index)>
# the list index itself is the position index for this motion
Expand Down

0 comments on commit 8bfd1a3

Please sign in to comment.