力神能源 BMS 电池管理系统上位机   V1.3.0 / 2026-09-15（全屏版）
================================================================

一、运行方式
  1. 双击 BMSHost.exe 启动。
     首次运行 Windows 防火墙若弹窗，选“允许”或“取消”均可：程序只在本机
     127.0.0.1:8080 提供页面服务，不访问外网。
  2. 支持 RS485（串口）、BLE（蓝牙）、CAN 三种连接方式。
  3. 快捷键：Esc 退出全屏，F11 切换全屏。
  4. 左上角/状态栏显示的版本号即为本版：V1.3.0。

二、本版更新（相对 V1.2.9_20260828）
  1. 【修复】RS485 HEX OTA 选择固件后报错：
        “HEX 第 N 行地址 0x08008000 超出识别到的 RS485 Boot APP 范围
          0x08010000-0x08027fff”
     · 原因：OTA 解析器的 APP 地址窗口被写死为早期 64 KiB Boot 的布局，
             而本板已改为 32 KiB Boot + APP 起始 0x08008000。
     · 处理：改为按 HEX 首个数据记录地址自动识别分区布局，同时支持：
              - 32 KiB Boot → APP 106 KiB：0x08008000-0x080227FF（招商局轮足 BMS 保护板）
              - 64 KiB Boot → APP  96 KiB：0x08010000-0x08027FFF（早期板卡，保持兼容）
              - HC32 平台 Boot：0x00003000-0x0000FFFF
            越界保护保留：HEX 若写穿 APP 区（侵入备份区）仍会被拒绝并给出提示。
  2. 【修复】OTA 卡在“第 1/688 包等待 ACK 超时”。
     · 原因：上位机进入 Boot 成功后固定只等 800ms 就发第一包，而 BOOT 复位后
             要重新初始化 GPIO/USART 才能收包；这一包比 BOOT 就绪更早到达时
             会被直接丢掉。旧 BOOT 更要 1.5s 才起 485，必然丢包；等 20s 再重发
             时 BOOT 已经超时跳回 APP，于是三次全部失败。
     · 处理：第一包改为 3s 超时、最多重试 10 次，能等到 BOOT 就绪那一刻；
             配合新 BOOT（复位到能收包约 0.2s）即可一次成功。
  3. 【新增】主页面原「莱克机器人协议」入口改为「四足机器人协议」，页面按
     《电池BMS数据协议（自研轮足）》实现：
       · 功能测试按钮：0x01 开机 / 0x02 关机 / 0x03 允许充电 /
         0x04 禁止充电 / 0x05 允许放电 / 0x06 禁用放电；
       · 0x02 读电池包信息，支持 1 秒自动轮询或单次读取；
       · 解析结果显示电池状态位（bit0~bit15）、电压、电流、SOC、SOH、温度，
         并给出每个字段的原始值；
       · 右侧列出完整原始数据交互过程（TX/RX 帧、长度、逐字节含义），
         帧结构 AA 55 + 帧来源 + 功能码 + 数据长度 + 数据 + CRC16(MODBUS)。
  4. 【保留】原「莱克机器人协议」独立成一个入口按钮，与「四足机器人协议」
     并存：设备管理卡片里两个按钮分别进入各自页面，互不影响
     （莱克页沿用原 CAN 定制帧解析，四足页走 RS485 的 AA 55 协议）。
  5. 界面版本号更新为 V1.3.0，静态资源缓存标识统一刷新，避免旧脚本残留。

三、兼容性说明
  - 早期板卡固件（APP 起始 0x08010000）仍可正常升级，本版不影响既有 BMS 板卡。
  - RS485 / BLE / CAN 通信协议、实时页面、参数配置、历史记录功能均未改动。

四、固件升级（OTA）注意事项
  - RS485 OTA 请选择 APP 的 .hex 文件，例如 VerLSNY14S2P10AH-YYYYMMDD.hex。
  - 不要选择 BOOT 的 .hex（地址从 0x08000000 起），解析器会判定为不在 APP 布局内。
  - 选择文件后界面会显示识别到的地址范围，例如 0x08008000 - 0x08017443，
    可据此确认选对了固件。
