Files
Feeding_control_system/test_overflow_state_change.py
2025-12-12 18:00:14 +08:00

60 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()