Added reset to test procedure

This commit is contained in:
2025-07-24 14:40:04 +02:00
parent 035591e03b
commit c19589db2b
5 changed files with 32 additions and 41 deletions

View File

@@ -2,13 +2,12 @@
from tests.move import *
from tests.sinqMotor.limits import *
from tests.sinqMotor.masterMacs.common import *
from tests.sinqMotor.turboPmac.reset import reset
from tests.sinqMotor.masterMacs.reset import reset
def test_stop_reset_enable_move_sequence(motor):
stop_reset_enable_move_sequence(motor, 4)
stop_reset_enable_move_sequence(motor, 2)
def test_reset(motor):
reset(motor, 4)
reset(motor, 2)
def test_move_to_low_limit_switch(motor):

View File

@@ -0,0 +1,15 @@
def reset(motor, target):
"""
Reset the motor for the next test. This means the following things:
1) Stopping the motor
2) Resetting all errors
3) Enabling the motor
4) Moving to zero
"""
motor.write_field('stop', 1)
motor.write_field('reseterrorpv', 1)
motor.write_field('enable', 1)
motor.move_and_wait(target)
assert motor.at_target(target)
assert not motor.has_error()

View File

@@ -1,8 +0,0 @@
def stop_reset_enable_move_sequence(motor, target):
motor.write_field('stop', 1)
motor.write_field('reseterrorpv', 1)
motor.write_field('enable', 1)
motor.move_and_wait(target)
assert motor.at_target(target)
assert not motor.has_error()

View File

@@ -2,28 +2,32 @@
from tests.move import *
from tests.sinqMotor.limits import *
from tests.sinqMotor.turboPmac.common import *
from tests.sinqMotor.turboPmac.reset import reset
def test_stop_reset_enable_move_sequence(motor):
stop_reset_enable_move_sequence(motor, 5)
stop_reset_enable_move_sequence(motor, 0)
reset(motor, 5)
reset(motor, 0)
def test_move_to_low_limit_switch(motor):
reset(motor, -30)
move_to_low_limit_switch(motor)
def test_move_to_high_limit_switch(motor):
reset(motor, -30)
move_to_high_limit_switch(motor)
def test_move_while_move(motor):
reset(motor, -30)
move_while_move(motor, -60, -20)
def test_stop(motor):
reset(motor, -30)
stop(motor, -60)
#def test_reread_limits_from_hw(motor):
# def test_reread_limits_from_hw(motor):
# reread_limits_from_hw(motor)

View File

@@ -1,8 +1,4 @@
import time
import pytest
def reset(motor, initpos=0):
def reset(motor, target):
"""
Reset the motor for the next test. This means the following things:
1) Stopping the motor
@@ -12,23 +8,8 @@ def reset(motor, initpos=0):
"""
motor.write_field('stop', 1)
# Reset any errors
motor.write_field('reseterrorpv', 1)
time.sleep(2*motor.idlepoll)
if motor.read_field('enable_rbv') == 0:
motor.write_field('enable', 1)
# Wait until the motor is enabled.
now = time.time()
max_enable_time = 10
while motor.read_field('enable_rbv') == 0:
# Wait a maximum of max_enable_time seconds until enabling
if time.time() > now + max_enable_time:
pytest.fail(
f'Motor {motor.pv} could not be enabled in {max_enable_time} seconds')
time.sleep(0.1)
motor.move_and_wait(initpos)
motor.write_field('enable', 1)
motor.move_and_wait(target)
assert motor.at_target(target)
assert not motor.has_error()