Files
Feeding_control_system/tests/test_rfid.py
2025-10-24 14:55:58 +08:00

110 lines
4.1 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.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
RFID
"""
import sys
import os
import time
# 添加项目根目录到Python路径
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from hardware.RFID.rfid_service import rfid_service
def test_data_callback(raw_data):
"""
测试用的数据接收回调函数
"""
print(f"[回调] 收到RFID数据: {raw_data}")
def test_rfid_functions():
"""
测试RFIDHardware的主要功能
"""
# 初始化RFID控制器
rfid = rfid_service(host='192.168.1.190', port=6000)
# 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("读取到工作模式参数:")
# for key, value in mode_data.items():
# print(f" {key}: {value:02X} ({value})")
# rfid.set_working_mode(address=0x00, mode_params={
# 'word_num': 0x1E
# })
# # 测试读取读写器信息
# 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("读取读写器信息失败")
# 测试设置功率 (仅演示,实际使用时根据需要调整)
# print("\n3. 测试设置功率 (演示,不实际执行):")
# power_success = rfid.set_power(address=0x00, power_value=6)
# 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:
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)
# print("接收线程已启动,等待接收数据...")
# 等待5秒模拟接收过程
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}")