stage_one
This commit is contained in:
52
vision/test_safe_close.py
Normal file
52
vision/test_safe_close.py
Normal file
@ -0,0 +1,52 @@
|
||||
import time
|
||||
import threading
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加项目根目录到sys.path
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
from visual_callback import VisualCallback
|
||||
|
||||
# 创建VisualCallback实例
|
||||
visual_callback = VisualCallback()
|
||||
|
||||
# 模拟safe_control_lower_close执行
|
||||
def simulate_safe_close():
|
||||
"""模拟safe_control_lower_close执行"""
|
||||
print("\n=== 开始模拟safe_control_lower_close执行 ===")
|
||||
# 直接调用safe_control_lower_close函数
|
||||
# 注意:这里需要访问_run_feed方法中的内部函数,所以我们需要一个间接的方式来测试
|
||||
# 我们可以通过修改标志位来模拟这个过程
|
||||
|
||||
# 1. 首先,让线程循环运行一段时间,观察正常情况下的行为
|
||||
print("\n1. 正常运行阶段 (5秒):")
|
||||
time.sleep(5)
|
||||
|
||||
# 2. 模拟safe_control_lower_close开始执行
|
||||
print("\n2. 模拟safe_control_lower_close开始执行:")
|
||||
visual_callback._is_safe_closing = True
|
||||
|
||||
# 3. 让线程循环运行一段时间,观察是否会跳过relay操作
|
||||
print("\n3. safe_control_lower_close执行中 (5秒):")
|
||||
time.sleep(5)
|
||||
|
||||
# 4. 模拟safe_control_lower_close执行完毕
|
||||
print("\n4. 模拟safe_control_lower_close执行完毕:")
|
||||
visual_callback._is_safe_closing = False
|
||||
|
||||
# 5. 再次观察正常运行
|
||||
print("\n5. 恢复正常运行 (5秒):")
|
||||
time.sleep(5)
|
||||
|
||||
print("\n=== 测试结束 ===")
|
||||
|
||||
# 创建测试线程
|
||||
test_thread = threading.Thread(target=simulate_safe_close)
|
||||
test_thread.start()
|
||||
|
||||
# 主线程等待测试线程结束
|
||||
test_thread.join()
|
||||
|
||||
# 关闭视觉回调实例
|
||||
visual_callback.shutdown()
|
||||
Reference in New Issue
Block a user