SMS Forwarder v4.0.2
v4.0.2 — 长短信拼接修复 + 短号显示修复
Bug 修复
- 长短信被截断为多条推送: UDH 拼接 4 处 bug (commit abab923)
parse_udh8-bit 分支误读 spec, ref/total/seq 偏移错位stash_udh_part8-bit udhSkip 14→12 (6 字节 UDH)stash_udh_partstrstr 锚点 body+1→body+2 (UDHL 占 2 hex)clear_udh_ref修 slot 复用死锁 (60s 超时后只清 received 不清 refId)
- phone 短号显示乱码 (commit e482811)
decodePhoneField纯数字短号 (如 "10086910") 被误判 UCS2 hex 解出 ဈ椐- 改 ASCII-safe 优先 (含数字/+/-/空格/字母 → 直接返回 raw)
新增
AT+CSDH=1显式声明 (实测 no-op, ML307 默认已是 1)
实测
- 2 段长短信 (ref 0x11/0x12/0x13, 泰文) → 1 条推送, body 干净
- 短号 "10086910" (2 段, 中文 body) → phone=10086910 正确显示
已知风险
- IRAM 100% 满 (15,356/16,384), 加 IRAM_ATTR 函数会链接失败
AT+CSCS="UCS2"启动时仍超时 (实测 UCS2 数据仍正常输出, ML307 行为降级)- RNDIS 仍禁用 (v4.0 沿用)
升级说明
直接 pio run -t upload 烧录, NVS 配置不需重置, 启动次数/历史保留。
详细改动见 CHANGELOG。