0209整理
This commit is contained in:
163
tests/rfid_app.py
Normal file
163
tests/rfid_app.py
Normal file
@ -0,0 +1,163 @@
|
||||
"""
|
||||
RFID
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
import time
|
||||
from hardware.RFID.rfid_service import rfid_service
|
||||
from busisness.blls import ArtifactBll
|
||||
from busisness.models import ArtifactInfoModel
|
||||
|
||||
|
||||
rfid=None
|
||||
rfid_before_mould=''
|
||||
artifact_bll=ArtifactBll()
|
||||
def test_data_callback(status,data):
|
||||
"""
|
||||
测试用的数据接收回调函数
|
||||
"""
|
||||
global rfid_before_mould
|
||||
try:
|
||||
if status==1:
|
||||
#成功读取到RFID标签
|
||||
#检查标识是否符号要求
|
||||
if data:
|
||||
loc_array=data.strip(',').split(',')
|
||||
if len(loc_array)==4:
|
||||
if rfid_before_mould!=loc_array[0]:
|
||||
model={
|
||||
'MouldCode':loc_array[0],
|
||||
'BlockNumber':loc_array[1],
|
||||
'SizeSpecification':loc_array[2],
|
||||
'BetonVolume':loc_array[3]
|
||||
}
|
||||
artifact_bll.insert_artifact_bycode(model)
|
||||
rfid_before_mould=loc_array[0]
|
||||
print(f"RFID-生产模具车号:{loc_array[0]}")
|
||||
else:
|
||||
print(f"RFID-重复生产模具车号:{loc_array[0]}")
|
||||
|
||||
else:
|
||||
print("RFID标签格式错误")
|
||||
print(f"成功读取到RFID标签:{data}")
|
||||
else:
|
||||
self.rfid_flag_succ=False
|
||||
print("读取RFID标签失败")
|
||||
except Exception as e:
|
||||
print(f"RFID回调处理异常: {e}")
|
||||
|
||||
|
||||
def test_rfid_functions():
|
||||
"""
|
||||
测试RFIDHardware的主要功能
|
||||
"""
|
||||
global rfid
|
||||
# 初始化RFID控制器
|
||||
rfid = rfid_service(host='192.168.250.77', 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
|
||||
# })
|
||||
|
||||
# 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})")
|
||||
|
||||
# # 测试读取读写器信息
|
||||
# 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=26)
|
||||
# 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)
|
||||
while True:
|
||||
rfid._pause_receive = False
|
||||
time.sleep(10)
|
||||
|
||||
|
||||
# print("接收线程已启动,等待接收数据...")
|
||||
# 等待5秒模拟接收过程1111111111111
|
||||
time.sleep(60*60)
|
||||
finally:
|
||||
# 确保停止接收线程
|
||||
rfid.stop_receiver()
|
||||
|
||||
# print("\n=== RFID硬件测试结束 ===")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
# model={
|
||||
# 'ArtifactID':0,
|
||||
# 'MouldCode':'SHR2B1-4',
|
||||
# 'BlockNumber':'B2',
|
||||
# 'SizeSpecification':'6600*1500',
|
||||
# 'BetonVolume':1.910
|
||||
# }
|
||||
# artifact_bll.insert_artifact_bycode(model)
|
||||
test_rfid_functions()
|
||||
except KeyboardInterrupt:
|
||||
if rfid is not None:
|
||||
rfid.stop_receiver()
|
||||
print("\n测试被用户中断")
|
||||
except Exception as e:
|
||||
if rfid is not None:
|
||||
rfid.stop_receiver()
|
||||
print(f"测试过程中发生错误: {e}")
|
||||
Reference in New Issue
Block a user