Move the X, Y and Z-axis by a position within the limits with move_by and check if the returned position is correct
Move the X, Y and Z-axis to a position within the limits with move_to and check if the returned position is correct
Move the X, Y and Z-axis by a position outside the limits with move_by and check if an assertion error is raised
Move the X, Y and Z-axis to a position outside the limits with move_to and check if an assertion error is raised
List of tests done on the ASIStageAxis class
Set the X-axis acceleration to a value within the valid range and check if _get_acceleration returns the correct value
Set the X-axis acceleration to a valid outside the valid range and check if an assertion error is raised
Set the Y-axis acceleration to a value within the valid range and check if _get_acceleration returns the correct value
Set the Y-axis acceleration to a valid outside the valid range and check if an assertion error is raised
Set the X-axis velocity to a value within the valid range and check if _get_velocity returns the correct value
Set the X-axis velocity to a valid outside the valid range and check if an assertion error is raised
Set the Y-axis velocity to a value within the valid range and check if _get_velocity returns the correct value
Set the Y-axis velocity to a valid outside the valid range and check if an assertion error is raised
Set the X-axis settle-time to a value within the valid range and check if _get_settle_time returns the correct value
Set the X-axis settle-time to a valid outside the valid range and check if an assertion error is raised
Set the Y-axis settle-time to a value within the valid range and check if _get_settle_time returns the correct value
Set the Y-axis settle-time to a valid outside the valid range and check if an assertion error is raised
Set the X-axis precision to a value within the valid range and check if _get_precision returns the correct value
Set the X-axis precision to a valid outside the valid range and check if an assertion error is raised
Set the Y-axis precision to a value within the valid range and check if _get_precision returns the correct value
Set the Y-axis precision to a valid outside the valid range and check if an assertion error is raised
List of acceptance tests done on Cockpit
As a Cockpit user, I want to be able to move the x, y and z-axis with the keypad.
Normal flow: Move the axes within the limits
Moves X-Axis first then moves Y-Axis. The stage positioning is updated real-time on the joystick.
When moving is done, it updates the stage positioning (red dot) on the keypad, and shows the movement vector in the form of a blue arrow.
Moves Z-Axis, and updates the view as well as the joystick.
Rounded X, Y and Z positioning is updated below the keypad.
Error flow: Move the axes outside the limits
Considering XY-Axis, if only Y-Axis out of bounds, it first moves X-Axis, then updates the stage positioning (red dot) on the macro stage window before showing the runtime error message. For the part that moved, the stage positioning is updated real-time on the controller.
Considering XY-Axis, if X-Axis or both out of bounds, then it only shows the runtime error message.
Considering Z-Axis, if Z-Axis out of bounds, then it only shows the runtime error message.
Raised runtime error message example would be "Tried to move %s " % (self.name) + RuntimeError: Tried to move 1 XYZ stage outside soft motion limits (target -2575.00, limits [-2300.00, 2300.00])".
As a Cockpit user, I want to be able to move the x, y and z-axis by inputting positions in micrometers.
Normal flow: Move the axes within the limits
Moves X-Axis first then moves Y-Axis. The stage positioning is updated real-time on the joystick.
When moving is done, it updates the stage positioning (red dot) on the keypad, and shows the movement vector in the form of a blue arrow.
Rounded X, Y and Z positioning is updated below the keypad.
Error flow: Move the axes outside the limits
Nothing happens if X or Y-Axis are trying to be moved out of bounds.
An assertion error such as "raise data # if you see this in your traceback, you should probably inspect the remote traceback as well AssertionError" will be raised - And trying to move Z-Axis will not be possible anymore except if using the rotary dial on the controller.
As a Cockpit user, I want to be able to move the z-axis with the top, center and bottom controls.
Normal flow: Move the axes within the limits
By setting the top within the limits and then clicking on "Go to top", the Z-Axis will directly move to that position. This is the same for the bottom.
By clicking on "Go to centre", it will calculate the average between the set top and bottom and go there.
Macro stage view as well as the controller positions will then be updated.
Error flow: Set the top outside the limit
A "Move too large for any Z mover." message will appear in the Standard out of the Logging panels.
If the average (i.e. the "Go to centre") is within bounds, the Z-Axis will be updated. Else, the same "Move too large for any Z mover." error message will be raised.
Error flow: Set the bottom outside the limit
A "Move too large for any Z mover." message will appear in the Standard out of the Logging panels.
If the average (i.e. the "Go to centre") is within bounds, the Z-Axis will be updated. Else, the same "Move too large for any Z mover." error message will be raised.