I'm trying to add the following plan to the queueserver:
{
'item_type': 'plan',
'name': 'grid_scan',
'args': [
['Ipreslit_v1', 'I0', 'ge_13element', 'Ipreslit_v2', 'Ipreslit_h2', 'Ipreslit_h1', 'Iref', 'It'],
'aerotech.vertical', 40475.0, 40725.0, 51,
'aerotech.horizontal', 23636.0, 23886.0, 51
],
'kwargs': {
'snake_axes': ['aerotech.horizontal'],
'md': {
'sample_name': 'Calibration target',
'scan_name': 'test fly grid scan',
'purpose': 'commissioning',
'notes': 'Check if we can launch fly scans from Firefly'
}
}
}
According to the docstring for this plan:
snake_axes: boolean or iterable, optional
which axes should be snaked, either False (do not snake any axes),
True (snake all axes) or a list of axes to snake. "Snaking" an axis
is defined as following snake-like, winding trajectory instead of a
simple left-to-right trajectory. The elements of the list are motors
that are listed in args. The list must not contain the slowest
(first) motor, since it can't be snaked.
Since "aerotech.horizontal" is listed in args, I would expect that the plan I listed above would snake along that axis. However, I when I try to run this plan, I get the following:
If I do the equivalent scan directly in a REPL where snake_axes is a list of the actual motors, then the scan proceeds as expected. If I replace ['aerotech.horizontal'] with True on the queueserver, it also works correctly.
I suspect the snake_axes argument is not being transformed back into the device object by the queueserver?
I'm trying to add the following plan to the queueserver:
{ 'item_type': 'plan', 'name': 'grid_scan', 'args': [ ['Ipreslit_v1', 'I0', 'ge_13element', 'Ipreslit_v2', 'Ipreslit_h2', 'Ipreslit_h1', 'Iref', 'It'], 'aerotech.vertical', 40475.0, 40725.0, 51, 'aerotech.horizontal', 23636.0, 23886.0, 51 ], 'kwargs': { 'snake_axes': ['aerotech.horizontal'], 'md': { 'sample_name': 'Calibration target', 'scan_name': 'test fly grid scan', 'purpose': 'commissioning', 'notes': 'Check if we can launch fly scans from Firefly' } } }According to the docstring for this plan:
Since
"aerotech.horizontal"is listed inargs, I would expect that the plan I listed above would snake along that axis. However, I when I try to run this plan, I get the following:If I do the equivalent scan directly in a REPL where snake_axes is a list of the actual motors, then the scan proceeds as expected. If I replace
['aerotech.horizontal']withTrueon the queueserver, it also works correctly.I suspect the snake_axes argument is not being transformed back into the device object by the queueserver?