Files
Feeding_control_system/test_overflow_state_change.py

60 lines
2.0 KiB
Python
Raw Normal View History

2025-12-12 18:00:14 +08:00
import time
from vision.visual_callback_1203 import VisualCallback
# 测试堆料状态变化处理
def test_overflow_state_change():
print("=== 测试堆料状态变化处理 ===")
# 获取单例实例
callback = VisualCallback()
# VisualCallback初始化时会自动启动线程
time.sleep(1) # 等待线程初始化
try:
# 1. 初始状态:非堆料,应该立即处理
print("\n1. 初始状态 - 非堆料")
callback.angle_visual_callback(30, "未堆料")
time.sleep(0.5)
# 2. 变为堆料状态,应该立即处理(不受间隔限制)
print("\n2. 变为堆料状态")
callback.angle_visual_callback(30, "小堆料")
time.sleep(0.5)
# 3. 保持堆料状态,应该立即处理(堆料优先)
print("\n3. 保持堆料状态")
callback.angle_visual_callback(30, "小堆料")
time.sleep(0.5)
# 4. 从堆料变为非堆料,应该立即处理(状态变化)
print("\n4. 从堆料变为非堆料(状态变化)")
callback.angle_visual_callback(30, "未堆料")
time.sleep(0.5)
# 5. 再次非堆料应该受2秒间隔限制
print("\n5. 再次非堆料(无状态变化)")
callback.angle_visual_callback(30, "未堆料")
time.sleep(0.5)
# 6. 等待2秒后再次非堆料应该处理
print("\n6. 等待2秒后再次非堆料")
time.sleep(2)
callback.angle_visual_callback(30, "未堆料")
time.sleep(0.5)
# 7. 从非堆料变为大堆料,应该立即处理
print("\n7. 从非堆料变为大堆料")
callback.angle_visual_callback(30, "大堆料")
time.sleep(0.5)
finally:
# 关闭线程
callback.shutdown()
time.sleep(1)
print("\n=== 测试完成 ===")
if __name__ == "__main__":
test_overflow_state_change()