Windows serial / Modbus debug tool (WPF, .NET Framework 4.8). Main project SerialTool2, exe cccom.exe. No args → WPF; --tui → console TUI (Serial tab); --ssh / --adb wrap ssh / adb from PATH.
Version 1.0.1
| Area | Description |
|---|---|
| Serial | COM (device name, auto-refresh), TCP client (Modbus TCP / MBAP), or NPort TCP (MOXA NPort TCP Server as a raw serial pipe, RTU/CRC16); last port restored; HEX/text (GB2312/UTF-8); timestamp, delay, search; timed / HEX send; protocol-preset sidebar (Ctrl+1~9); export TXT/CSV/HTML |
| Port monitor / sniff | List which process holds each COM; inject a hook into the occupant and capture its RX/TX without opening the port yourself |
| TUI | cccom.exe --tui (Terminal.Gui); Serial tab only; themes (light / snow / dark / …); language switch; GitHub update check |
CLI --ssh |
Forwards args to ssh.exe; target COMx opens a raw serial terminal (Linux getty); quit with Ctrl-A then X |
CLI --list-ports |
Lists COM ports and device names (-l) |
CLI --adb |
Forwards args to adb.exe; no extra args → interactive shell; --ssh adb is the same |
| Modbus master | Driven by devices/*.toml (not in git); groups, types, bitfields, enums; Excel import/export; read/write group or all; optional auto-read; slave-ID scan in Tools (range, address, timeout, retries, gap) |
| Data blocks | Poll FC03 + write-back FC16; per-block serial/TCP; grid edit; watch changes → monitor window |
| Slave simulator | Separate RTU or TCP server; multiple station tabs; coils/discrete/input/holding; FC 01–06/0F/10; persist data.bin |
| Data monitor | Points from blocks or slave; table + chart; optional FC16 auto-increment write |
| Tools | Checksum (Sum/XOR/CRC); slave-ID scan; connection dialog; View messages; update check (GitHub Releases, interval in hours, 0 = manual) |
- Windows
- .NET Framework 4.8 Developer Pack
- Build: Visual Studio 2022+ or
dotnet/ MSBuild - NuGet: EasyHook 2.7.7097, Terminal.Gui 1.17.1, EPPlus 4.5.3.3, Tommy 3.1.2
- Pack: Node.js + 7-Zip (
node pack.js)
SerialTool/
├── SerialTool.sln
├── pack.js # node pack.js → release/cccom_x.y.z.7z
├── SerialTool2/ # WPF app (cccom.exe)
│ ├── Tui/ # --tui
│ ├── Services/ # serial, Modbus, slave, update check
│ └── tomlfiles/
│ ├── protocol/ # sample default.toml
│ ├── lang/ # UI languages
│ └── devices/ # user maps (not in git)
└── SerialTool.SniffHook/ # serial occupancy helper
dotnet restore
dotnet build SerialTool.sln -c ReleaseOutput: SerialTool2/bin/Release/net48/cccom.exe
node pack.jsWrites release/cccom_1.0.1.7z (no config.txt, data/, or user device maps). release/ is gitignored.
cccom.exe # WPF
cccom.exe --tui # console UI (≥ 100×30)
cccom.exe --list-ports # COM ports and device names (`-l`)
cccom.exe --ssh user@host
cccom.exe --ssh COM3 115200
cccom.exe --adb # adb shell
cccom.exe --ssh --helpNo open-source license is specified; confirm with the maintainer. Do not commit config.txt, device maps, or secrets.
See also: CHANGELOG.md · README.zh.md

