105 lines
3.2 KiB
Python
105 lines
3.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
调试UI状态显示问题
|
|
"""
|
|
|
|
import sqlite3
|
|
from pathlib import Path
|
|
|
|
def check_experiment_status():
|
|
"""检查实验状态"""
|
|
print("检查实验状态")
|
|
print("=" * 40)
|
|
|
|
try:
|
|
db_path = Path(__file__).parent / "experiments.db"
|
|
db = sqlite3.connect(str(db_path))
|
|
cur = db.cursor()
|
|
|
|
# 查询工单 11223345 的实验记录
|
|
cur.execute("""
|
|
SELECT id, work_order_no, start_ts, end_ts, created_at
|
|
FROM experiments
|
|
WHERE work_order_no = '11223345'
|
|
ORDER BY id DESC
|
|
LIMIT 5
|
|
""")
|
|
|
|
results = cur.fetchall()
|
|
|
|
if results:
|
|
print("工单 11223345 的实验记录:")
|
|
for row in results:
|
|
exp_id, work_order, start_ts, end_ts, created_at = row
|
|
|
|
# 判断状态
|
|
if start_ts and end_ts:
|
|
status = "已完成"
|
|
elif start_ts:
|
|
status = "进行中"
|
|
else:
|
|
status = "等待开始"
|
|
|
|
print(f" ID: {exp_id}")
|
|
print(f" 工单: {work_order}")
|
|
print(f" 创建: {created_at}")
|
|
print(f" 开始: {start_ts or '未开始'}")
|
|
print(f" 结束: {end_ts or '未结束'}")
|
|
print(f" 状态: {status}")
|
|
print("-" * 30)
|
|
else:
|
|
print("没有找到工单 11223345 的记录")
|
|
|
|
# 查询所有等待开始的实验
|
|
cur.execute("""
|
|
SELECT id, work_order_no, created_at
|
|
FROM experiments
|
|
WHERE start_ts IS NULL
|
|
ORDER BY id DESC
|
|
LIMIT 10
|
|
""")
|
|
|
|
waiting_results = cur.fetchall()
|
|
|
|
print(f"\n当前等待开始的实验 ({len(waiting_results)} 个):")
|
|
if waiting_results:
|
|
for row in waiting_results:
|
|
exp_id, work_order, created_at = row
|
|
print(f" ID: {exp_id} - 工单: {work_order} - 创建: {created_at}")
|
|
else:
|
|
print(" 没有等待开始的实验")
|
|
|
|
db.close()
|
|
|
|
except Exception as e:
|
|
print(f"ERROR 检查失败: {e}")
|
|
|
|
def main():
|
|
print("UI状态显示问题调试")
|
|
print("=" * 50)
|
|
print("问题: 实验已完成但UI仍显示'等待实验开始'")
|
|
print("=" * 50)
|
|
|
|
check_experiment_status()
|
|
|
|
print("\n" + "=" * 50)
|
|
print("问题分析:")
|
|
print("1. 监控器正常工作 ✅ - 数据库已更新开始和结束时间")
|
|
print("2. 状态变化检测正常 ✅ - load_status_int 1->0 变化被检测")
|
|
print("3. UI状态显示异常 ❌ - 界面仍显示'等待实验开始'")
|
|
|
|
print("\n可能原因:")
|
|
print("1. UI没有检测到实验完成")
|
|
print("2. UI刷新逻辑有问题")
|
|
print("3. UI显示的是错误的实验记录")
|
|
print("4. 等待状态没有正确退出")
|
|
|
|
print("\n解决方案:")
|
|
print("1. 手动刷新UI界面")
|
|
print("2. 检查UI的等待状态逻辑")
|
|
print("3. 确保监控器回调正确触发UI刷新")
|
|
print("4. 重启程序重新测试")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|