60 lines
2.0 KiB
Python
60 lines
2.0 KiB
Python
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()
|