﻿============================================================
  ASM 耗材芯片测试包 —— 一页速查（现场打印用）
  版本 2026-09-29b（Win7 兼容版 · 含环境自检）
============================================================

【目标】墨盒不贴芯片，让软件认为耗材在位，判断"不贴芯片能不能用"，
        并验证手里那组抓包数据是否有效。

【一句话原理】在电脑上假装成"读头"，替芯片应答软件。
              全程不改卡、不改配置、不写注册表。

【本包已内置虚拟串口驱动，解压即用，不用上网找】
【本包已针对 Win7 重做测试端，不需要浏览器】


============================================================
 本版修了什么（2026-09-29c）
============================================================
 如果你在 C# 版里看到过这两样：打印「打开失败：路径中具有非法字符。」
（而且每个端口都报同一句）、最后还弹「TestEnd.exe 已停止工作」——
 那不是端口的问题，是启动器传日志目录时结尾多带了一个双引号：
   %~dp0 自带结尾反斜杠，写成 -LogDir "%HERE%" 时那个 \" 被当成转义引号，
   程序收到的路径末尾就多出一个 " ，写日志的 Path.Combine 一次次抛异常。
 已修（三层）：
   1) 启动器去掉结尾反斜杠再传；
   2) 程序侧仍会自动去掉引号并重建目录（双保险）；
   3) 写日志整个包在 try 里，失败只提示一次，绝不拖垮程序；并加了全局兜底，
      再出未预料异常也会打印原因 + 写「崩溃记录.txt」，不再无声崩溃。
 另外：脚本版（菜单 [4]/[5]）本来就没有这个问题。


============================================================
 第 0 步：出错了先跑这个（最重要的新增）
============================================================

 双击：1_测试端_Win7版\检查环境.cmd

 它会查五项，并把结果整份写成《环境自检报告_日期时间.txt》：
   1) 系统版本与位数  —— 决定装 x64 还是 i386 驱动
   2) 本机串口列表    —— 机器上到底有哪几个口
   3) 端口占用探测    —— 哪些口打不开（很可能就是软件正在用的）
   4) com0com 驱动    —— 装没装、有没有建配对
   5) 软件进程        —— MainForm / RFReader 在不在跑

 报告就在同目录里，把它整份发回来即可。


============================================================
 报错对照表
============================================================

 提示「端口 "COM12" 不存在」
   -> 虚拟串口对还没建。做第 1 步的第 1、2 小步。
      这跟软件、跟抓包数据都无关。

 提示「打开失败：路径中具有非法字符。」
   -> 这是上一版启动器的缺陷（日志目录多带了一个双引号），本版已修。

 提示「打开失败：拒绝访问 / 已被占用」
   -> 端口存在但被别的东西占着：喷码机软件没关 / 真实读头占着 /
      上一次的工具没退出。

 工具一条命令都没收到（嗅探时）
   -> 软件用的端口号 != 虚拟对的那一端，或软件没重启。

 不报"无法通讯"、直接报"空"
   -> 通讯通了，卡在编码校验。用菜单 [5]（编码区全非零）。

 改完设置没变化
   -> 软件没重启。软件只在启动时读一次串口配置。


============================================================
 第 1 步：装驱动 + 建一对虚拟串口（只做一次）
============================================================

 1) 管理员身份运行（本包已内置，已验签）：
      2_虚拟串口驱动\com0com-3.0.0.0-Win-x64_Setup-Signed.exe
      签署者 CyberCircuits，状态 Valid，大小 261,544 字节
    32 位系统装不上就用备用包：
      2_虚拟串口驱动\com0com-3.0.0.0-Win-x86_x64_ManualInstall-Signed.zip
      解压后走 i386 那一套，按里面的 ReadMe.txt 手动装

 2) 建两对端口（管理员身份双击，会问你要端口名）：
      2_虚拟串口驱动\一键建虚拟串口.cmd
    默认建：软件端 COM2 <--> 工具端 COM12
            软件端 COM3 <--> 工具端 COM13
    建完它会自动再列一次，看到 COM12 / COM13 就算成功。

    ※ 更省事的做法：先看环境自检第 3 项里"打不开"的那两个口，
      它们通常就是软件 RFID 正在用的号。直接把那两个号给虚拟对用，
      软件「串口设置」一个字都不用改（前提：那个号得先空出来）。

 3) 核实：双击 3_备用_脚本版读头\CheckPairs.cmd
      应看到 COM2 <---> COM12 与 COM3 <---> COM13

  ※ 端口号可以换，只要"成对"且空闲。改完软件必须重启！
  ※ 不想装驱动也行：两个 USB 转 TTL 模块交叉对接（TX接RX、RX接TX、GND接GND）


============================================================
 第 2 步：打开测试端（Win7 用这个，不需要浏览器）
============================================================

 双击：1_测试端_Win7版\启动.cmd

  菜单顶部会先列出本机串口，然后按编号选：
    [1] 自检            不开串口，确认程序没问题（应"通过 6 项，失败 0 项"）
    [2] 实验指引        三步实验 + 结果判读
    [3] 嗅探            只听不应答，先确认"端口对通了"
    [4] 虚拟读头 全0     对照组
    [5] 虚拟读头 全非零  实验组   ★本次实验用这个
    [6] 列出本机串口
    [7] 环境自检        一键诊断报告   ★ 出问题先跑这个
    [8] 查看上次的运行日志
    [9] 用 C# 版运行    脚本宿主被禁用时用这个

  ※ [3][4][5] 会列出串口让你**按编号选**（会标"空闲/被占用"），
    不用手打端口号。可以填多个（例：2,3）。
      输入 A = 全部端口    **直接回车 = 取消退出**（不会误开真实端口）
    运行中按 Ctrl+C 结束；若问"是否终止批处理"，选 N 回菜单。
  ※ [7] 环境自检第 [5] 段会直接检查「本工具要用的两个口在不在、空不空闲」，
    这才是判断"该不该报端口不存在"的可靠依据。
  ※ Win7 上若提示找不到脚本宿主，改用菜单 [9] 的 C# 版。


============================================================
 第 3 步：做三步对照实验
============================================================

  第 1 步 · 基线（什么都不开）
    直接开机，看软件提示什么，记下来。

  第 2 步 · 对照组  菜单 [4]，编码区全 0
    运行后【重启喷码机软件】，看提示。预期：报"墨水空/溶剂空"。

  第 3 步 · 实验组  菜单 [5]，编码区全非零
    运行后【再重启喷码机软件】，看提示。预期：两个"空"都不再出现。

  ※ 第 2 步和第 3 步只差"编码区"一个变量，所以结论最干净。


============================================================
 第 4 步：读结论
============================================================
  第2步报"空"、第3步不报  => 抓包数据有效！软件靠"编码非零"放行，
                              不贴芯片也能用，不用向厂家买卡。
  第3步仍然报"空"          => 还有一层前置条件（由读卡程序侧设置），
                              把日志整份留档，需要继续分析。
  不开工具就正常            => 这台机器的耗材识别没启用，不需要芯片；
                              手里那组数据与这台机器无关。
  开了还报"无法通讯"        => 端口没配成一对，或软件没重启。


============================================================
 其它可用工具
============================================================
  浏览器版测试端（仅 Win10/Win11，Win7 用不了）
    双击 1_测试端\测试端.html   或 https://asm-chiptest.app.workbuddy.host/

  脚本版虚拟读头（命令行方式）
    ChipSim.cmd
    本次实验专用（编码区 15 字节全非零）：
    ChipSim.cmd -Port COM12,COM13 -Profile auto -Code "04 24 0D 1C 04 24 0D 1C 04 24 0D 1C 04 24 0D" -Seconds 0
    只嗅探：ChipSim.cmd -Port COM12 -DumpOnly

  读真实芯片 / 验通信
    ReadChip.cmd   或   ReadChip_CSharp.cmd
    串口诊断：Diag_Serial.cmd


============================================================
 安全须知
============================================================
  * 本包不含设备软件本体。原始目录里的 MainForm.exe 已被 XRed 蠕虫注入过
    （特征串 XRed / Synaptics）—— 不要运行，不要拷到干净机器或生产机。
    所有"打开软件观察"的操作，都在那台已装软件的机器上做。
  * 本包工具只做"应答"和"查看"：不写卡、不改卡、不改配置文件、不写注册表。
    环境自检只"打开端口一下马上关"，不改任何设置。
  * 内置的 com0com 驱动已验签（签署者 CyberCircuits，状态 Valid）。
    大小 261,544 字节，SHA-256 = 26486b28604b49a9008c54feb11b9ece0008a8287ee5caf0bcf2a62f4317128f
  * 安装虚拟串口驱动属系统级改动，建议先在非生产环境试。

============================================================
 详见同目录 操作手册.html
============================================================
