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