v4.0.5 — 泰文 DCS=0 误标修复 + BOOT 15s 回归
修复
- task #37: 泰文 DCS=0 误标 — 部分运营商/网关对非 ASCII 短信使用 DCS=0(GSM 7-bit default)发送,但实际内容是 UCS-2 BE(如泰文
0E23 0E2B 0E31...)。现在 raw body sniff(高字节落在 BMP 高频区 + 至少 4 对字符 / 80% 命中)会强制走 UCS-2 解码,不再乱码ÅF8Xb!øì*…。 - 7-bit UDH 长短信 — 已用 4 段 UDH 实测:Keep this code secure ...(English, ref 0, total 4, seq 1-4) → 推送成功。
- DCS 表对齐 gammu GSM_GetMessageCoding — 0xC0/0xD0 (MWI GSM7)、0xF8-0xFB (8-bit) 修正,严格走 3GPP TS 23.040 §9.2.3.10。
- BOOT_HOLD_MS 60000 → 15000 — 长按 15s 即可清 NVS(回归原设定)。
- snprintf BUG — AP SSID 拼接格式串残留
%02X%02X%02X但只剩AP_SSID_PREFIX一个参数,导致编译警告 + 不可预期 SSID。已修。
已知问题
- 字母数字 sender(
+CMT: "True App")的 4 段以上 UDH 拼接,可能丢段。手机号 sender 稳定。 - RNDIS 4G 上网: v4.0.3 已禁用死路径,本版本不变。
重要:首次使用请 web 配网
固件默认 WiFi/token 改为占位符 YOUR_WIFI_SSID / YOUR_WIFI_PASS / YOUR_PUSHPLUS_TOKEN,首次烧录后必须走 AP 配网页面(SMS-Forwarder-XXXXXX,密码 12345678,192.168.4.1)填写真实凭据。
如 NVS 已有配置(OTA 升级场景),配置直接保留,无需重新配网。
验证
- C++ host test: 45/45 pass(
tests/host/,绑定pdu_codec.cpp生产代码) - 实机: 4G CMT (泰文 DCS=0 + 英文 7-bit UDH 4 段) + pushplus + AP 配网
资产
| 文件 | SHA-256 |
|---|---|
v4.0.5.factory.bin |
fc70ba53d995a4661ff7663a168eb8b7a26047ffbe5121bd658d865083b06c65 |
构建来源
- Commit:
38f79fada13b1a4c5f36e1504991927b40a3050e - 平台: pioarduino 55.03.39 (IDF 5.5 + Arduino-ESP32 3.x)
- Flash size: 1,131,799 bytes (28.3% of 4MB app partition)