Skip to content

Commit

Permalink
Fixed regression with previous commit where it didn't work for long scan
Browse files Browse the repository at this point in the history
  • Loading branch information
peteleicester committed Mar 3, 2017
1 parent d547504 commit 66e2dc0
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions malcolm/parts/pmac/pmactrajectorypart.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ def configure(self, task, completed_steps, steps_to_do, part_info, params):
task.put(self.child["cs"], cs_port)
futures = self.move_to_start(task, completed_steps)
self.steps_up_to = completed_steps + steps_to_do
self.completed_steps_lookup = []
profile = self.build_generator_profile(completed_steps, do_run_up=True)
task.wait_all(futures)
self.write_profile_points(task, **profile)
Expand Down Expand Up @@ -460,10 +461,6 @@ def write_profile_points(self, task, time_array, velocity_mode, trajectory,
completed_steps_lookup (list): If given, when we get to this index,
how many completed steps have we done?
"""
# If not given, make a completed_steps_lookup
if completed_steps_lookup is None:
completed_steps_lookup = [0] * len(time_array)

# Work out which axes should be used and set their resolutions and
# offsets
use = []
Expand All @@ -488,18 +485,21 @@ def write_profile_points(self, task, time_array, velocity_mode, trajectory,
new_time_array = time_array[:i]
new_velocity_mode = velocity_mode[:i]
new_user_programs = user_programs[:i]
new_completed_steps_lookup = completed_steps_lookup[:i]
if completed_steps_lookup is not None:
new_completed_steps_lookup = completed_steps_lookup[:i]
for _ in range(nsplit):
new_time_array.append(t / nsplit)
new_velocity_mode.append(PREV_TO_NEXT)
new_user_programs.append(NO_PROGRAM)
new_completed_steps_lookup.append(
new_completed_steps_lookup[-1])
if completed_steps_lookup is not None:
new_completed_steps_lookup.append(
new_completed_steps_lookup[-1])
time_array = new_time_array + time_array[i+1:]
user_programs = new_user_programs[:-1] + user_programs[i:]
velocity_mode = new_velocity_mode[:-1] + velocity_mode[i:]
completed_steps_lookup = new_completed_steps_lookup[:-1] + \
completed_steps_lookup[i:]
if completed_steps_lookup is not None:
completed_steps_lookup = new_completed_steps_lookup[:-1] + \
completed_steps_lookup[i:]

for k, traj in trajectory.items():
new_traj = traj[:i]
Expand Down Expand Up @@ -538,7 +538,8 @@ def write_profile_points(self, task, time_array, velocity_mode, trajectory,
task.put_many(self.child, attr_dict)

# Set completed_steps
self.completed_steps_lookup = completed_steps_lookup
if completed_steps_lookup is not None:
self.completed_steps_lookup += completed_steps_lookup

def reset_triggers(self, task):
"""Just call a Move to the run up position ready to start the scan"""
Expand Down

0 comments on commit 66e2dc0

Please sign in to comment.