Blue Archive Auto Script中Nemu模拟器截图冲突问题分析与解决

Blue Archive Auto Script中Nemu模拟器截图冲突问题分析与解决

事件背景

在Blue Archive Auto Script自动化脚本项目中,当用户同时选择Nemu模拟器作为截屏方式和操作方式时,在执行咖啡厅相关功能时会出现脚本异常终止的问题。该问题表现为在执行特定操作序列后,程序抛出"RuntimeError: This event loop is already running"错误。

问题现象

错误发生时,脚本正在执行咖啡厅奖励收集流程,具体表现为:

  1. 成功完成咖啡厅收益收集
  2. 成功使用邀请券邀请学生
  3. 在尝试进入礼物界面时发生崩溃
  4. 错误日志显示事件循环已运行的冲突

技术分析

根本原因

该问题的根本原因在于Nemu客户端实现中使用了Python的asyncio异步编程模型。asyncio的事件循环设计为单线程运行,而BAAS框架中的picture.co_detect方法会创建新线程执行点击操作,导致:

  1. 主线程已运行事件循环
  2. 新线程尝试再次启动事件循环
  3. 系统检测到事件循环冲突
  4. 抛出RuntimeError异常

相关技术细节

  1. asyncio事件循环机制:Python的异步IO框架核心,每个线程只能有一个运行中的事件循环
  2. 多线程冲突:当多个线程尝试操作同一事件循环时会产生冲突
  3. Nemu客户端实现:通过ADB协议与模拟器通信,使用异步方式提高效率
  4. BAAS框架设计:采用多线程模型处理并发操作

解决方案

经过分析,我们采取了以下改进措施:

  1. 统一执行线程:确保所有涉及事件循环的操作都在主线程中执行
  2. 移除冲突的多线程设计:将picture.co_detect中的点击操作改为同步执行
  3. 保持功能完整性:在简化线程模型的同时不影响原有功能

实施效果

修改后:

  • 解决了事件循环冲突问题
  • 咖啡厅功能可以完整执行
  • 系统稳定性得到提升
  • 保持了原有的操作效率

经验总结

这个案例为我们提供了以下宝贵经验:

  1. 异步编程注意事项:在使用asyncio时需特别注意线程安全问题
  2. 框架设计考量:混合使用多线程和异步IO时需要谨慎设计
  3. 错误处理机制:对于可能出现的线程冲突应有预防措施
  4. 测试覆盖范围:需要针对不同配置组合进行充分测试

后续优化方向

基于此次问题的经验,我们计划:

  1. 完善线程安全文档
  2. 增加异常情况下的恢复机制
  3. 优化异步操作的处理流程
  4. 加强不同运行环境下的兼容性测试

通过这次问题的解决,不仅修复了特定场景下的bug,也为项目后续的稳定性改进提供了重要参考。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 电流互感模块主要用于测量交流电路中的电流,并将其转换为原电流成一定比例的低电压信号,便于远距离监测控制。它常用于电力系统电流检测,尤其适合需要安全隔离的场景。本说明书重点介绍了电流互感模块和电压互感器模块的技术参数、使用方法及注意事项。 电流互感模块采用ZMCT103B/C型号电流互感器,具有体积小、精度高、一致性好的特点,对电力测量和保护的准确性和可靠性至关重要。其在高精度电力设备中应用,需具备高稳定性和重复性,隔离耐压达3000V,可承受高工作电压,保障高压环境下正常运行。 电流互感模块技术参数包括:额定输入电流0~10A(100Ω),输出电流5mA,精确度0.2%,输出信号为交流电压,变化0.2级,线性范围1000:1,相位差≤20分(100Ω负载),工作温度范围-40°C至+70°C。5A交流电流互感模块可测量5A以内交流电流,有对应模拟量输出。使用时,需将被测信号导线穿过互感器圆孔,输出信号接口为S和G(G为信号地),输出为交流电压信号,满足测量监控需求。单相交流电流互感带OP模块除板载精密微型电流互感器外,还集成高精度运放电路,能精确采样和适当补偿信号,适合测量5A以内交流电流,输出模拟量可调节。理想状态下,输入电压VCC为3-35V,调节电位器可改变放大倍数,但输出电压不超过1/2VCC,输出信号电压最大值也不超1/2VCC。 电压互感器模块型号为ZMPT101B,适用于电压和功率精确测量。其板载精密微型电压互感器和高精度运放电路,能精确采样并适当补偿信号。使用时,左侧接线柱可接入250V以内交流电压,右侧VCC工作电压为DC3-35V,通过电位器可调节放大比例,最大不超过1/2VCC。 使用互感模块时,需注意工作电压和环境温度,这两者会影响互感器性能。电流互感模块和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缪杰山Holly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值