Files
Feeding_control_system/tests/test_rfid.py

116 lines
4.4 KiB
Python
Raw Normal View History

2025-10-24 14:55:58 +08:00
"""
RFID
"""
import sys
import os
2025-12-12 18:00:14 +08:00
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
2025-10-24 14:55:58 +08:00
import time
from hardware.RFID.rfid_service import rfid_service
2025-12-12 18:00:14 +08:00
def test_data_callback(status,raw_data):
2025-10-24 14:55:58 +08:00
"""
测试用的数据接收回调函数
"""
2025-12-12 18:00:14 +08:00
if status:
print(f"[回调] 收到RFID数据: {raw_data}")
else:
print(f"[回调] 读取RFID数据为空或失败")
2025-10-24 14:55:58 +08:00
def test_rfid_functions():
"""
测试RFIDHardware的主要功能
"""
# 初始化RFID控制器
2025-12-12 18:00:14 +08:00
rfid = rfid_service(host='192.168.250.77', port=6000)
2025-10-24 14:55:58 +08:00
# print("=== RFID硬件测试开始 ===")
# # 测试连接
print("\n1. 测试连接:")
# connected = rfid.connect()
# print(f"连接状态: {'成功' if connected else '失败'}")
# 如果连接成功,继续测试其他功能
if True:
# 测试读取工作模式
print("\n2. 测试读取工作模式:")
# mode_data = rfid.read_working_mode(address=0x00)
# if mode_data:
# print("读取到工作模式参数:")
2025-12-12 18:00:14 +08:00
# for key, value in mode_data.items():.
2025-10-24 14:55:58 +08:00
# print(f" {key}: {value:02X} ({value})")
# rfid.set_working_mode(address=0x00, mode_params={
# 'word_num': 0x1E
# })
2025-11-21 14:55:52 +08:00
# mode_data = rfid.read_working_mode(address=0x00)
# if mode_data:
# print("读取到工作模式参数:")
# for key, value in mode_data.items():
# print(f" {key}: {value:02X} ({value})")
2025-10-24 14:55:58 +08:00
# # 测试读取读写器信息
# print("\n3. 测试读取读写器信息:")
# reader_info = rfid.read_reader_info(address=0x00)
# if reader_info:
# print("读取到读写器信息:")
# for key, value in reader_info.items():
# print(f" {key}: {value}")
# else:
# print("读取读写器信息失败")
# 测试设置功率 (仅演示,实际使用时根据需要调整)
2025-12-12 18:00:14 +08:00
# print("\n3. 测试设置功率:")
# power_success = rfid.set_power(address=0x00, power_value=26)
2025-10-24 14:55:58 +08:00
# print(f"功率设置{'成功' if power_success else '失败'}")
# # 测试设置读卡间隔 (仅演示)
# print("\n4. 测试设置读卡间隔:")
# interval_success = rfid.set_read_interval(address=0x00, interval_time=200)
# print(f"读卡间隔设置{'成功' if interval_success else '失败'}")
# time.sleep(2)
# interval = rfid.read_interval(address=0x00)
# print(f"当前读卡间隔: {interval}毫秒")
# 测试数据接收功能 (注意:这会启动一个后台线程)
# print("\n5. 测试数据接收功能 (启动接收线程5秒后停止):")
try:
2025-11-01 17:33:26 +08:00
# rfid._callback = test_data_callback
# rfid._data_buffer = []
# rfid._data_buffer.append('SHR2B2-12,B2,6600 * 1500,1.910')
# rfid._data_buffer.append('SHR2B2-12,B2,6600 * 1500,1.910')
# rfid._data_buffer.append('SHR2B2-12,B2,6600 * 1500,1.910')
# rfid._data_buffer.append('SHR2B2-12,B2,6600 * 1500,1.910')
# rfid._data_buffer.append('SHR2B2-12,B2,6600 * 1500,1.910')
# rfid._data_buffer.append('SHR2B2-12,B2,6600 * 1500,1.910')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._data_buffer.append('THR B1-12,B1,6600 * 1500,1.900')
# rfid._process_collected_data()
rfid.start_receiver(callback=test_data_callback)
2025-10-24 14:55:58 +08:00
# print("接收线程已启动,等待接收数据...")
2025-11-21 14:55:52 +08:00
# 等待5秒模拟接收过程1111111111111
2025-10-24 14:55:58 +08:00
time.sleep(60*60)
finally:
# 确保停止接收线程
# rfid.stop_receiver()
print("\n=== RFID硬件测试结束 ===")
if __name__ == "__main__":
try:
test_rfid_functions()
except KeyboardInterrupt:
print("\n测试被用户中断")
except Exception as e:
print(f"测试过程中发生错误: {e}")