Skip to content

imaxu/serialfox-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serialfox-c

终端交互式串口调试工具

开发语言

首个版本采用 C 语言(C11)实现:

  • 更适合系统级 API 串口编程和跨平台移植。
  • 更低的运行时开销,更容易控制内存和 I/O 行为。
  • 符合项目命名规范和嵌入式风格约束。

支持的平台

  • Windows
  • Linux
  • 其他支持 C11 标准库和串口 API 的平台(如 macOS)

v0.2 功能特性

  • 仅支持交互模式(无单次执行模式)。
  • Ctrl+A 进入命令模式。
  • 在监控模式输入 / 可直接进入命令模式。(Ctrl+A 的便捷入口)。
  • 命令模式下支持 HEX 与 ASCII 两种数据收发模式。
  • Q 键退出命令模式返回监控模式。
  • 左/右箭头键在当前命令行内移动光标。
  • 上/下箭头键浏览最近 100 条已发送命令历史。
  • 根据当前模式显示接收数据(HEX 或 ASCII)。
  • TX/RX/SYS/ERR 输出包含毫秒级时间戳。
  • 通过 -o 选项支持日志文件输出。
  • 通过 --crc 选项支持自动附加校验和(xorsum8crc8crc16-modbuscrc16-ccittcrc32)。
  • 通过 --mode 指定初始模式(hexascii)。
  • 命令模式支持 /help/hex/ascii
  • 命令模式支持 /version 查看版本号。
  • 命令模式支持 /crc <mode> 动态切换校验模式(HEX 模式生效)。
  • ASCII 模式下 CRC 自动禁用(启动参数与运行时切换均生效)。
  • 无效的控制台输入字节会被忽略,因此输入法或意外的非十六进制输入不会阻塞命令输入。

构建

cmake -S . -B build
cmake --build build --config Debug

Windows 下写入 exe 文件信息/版本信息/企业信息:

CMakeLists.txtif (WIN32) 区域修改以下字段:

  • SERIALFOX_COMPANY_NAME
  • SERIALFOX_PRODUCT_NAME
  • SERIALFOX_FILE_DESCRIPTION
  • SERIALFOX_LEGAL_COPYRIGHT
  • project(serialfox_c VERSION x.y.z ...) 中的版本号

构建时会自动生成 4 段版本号:x.y.z.r(跨平台一致)。 其中 r 为 UTC 1970-01-01 起累计天数(作为版本修订号),用于 --version/version 输出。

cmake -S . -B build
cmake --build build --config Release

生成后在 serialfox.exe -> 属性 -> 详细信息 可查看上述字段。

运行

./build/Release/serialfox -p COM3 -b 115200 -d 8 -s 1 -c N -o serial.log

Linux 示例:

./build/serialfox -p /dev/ttyUSB0 -b 115200 -d 8 -s 1 -c N -o serial.log

ASCII 初始模式:

./build/serialfox -p /dev/ttyUSB0 -b 115200 --mode ascii

带校验的发送:

# 使用 CRC16-Modbus 校验
./serialfox -p /dev/ttyUSB0 -b 115200 --crc crc16-modbus

# 使用 XOR 校验
./serialfox -p COM3 -b 9600 --crc xor

选项

  • -p 串口路径(必填)
  • -b 波特率(默认:115200)
  • -d 数据位(默认:8,允许:5..8)
  • -s 停止位(默认:1,允许:1 或 2)
  • -c 校验位(默认:N,允许:N/E/O)
  • -o 日志文件路径(可选)
  • --version 输出程序版本号并退出(若与其他参数同时出现,优先输出版本并忽略其他参数)
  • --mode 数据模式(可选,默认:hex):
    • hex - 十六进制收发显示(发送支持 CRC)
    • ascii - ASCII 收发显示(CRC 自动禁用)
  • --crc 发送数据的校验和模式(可选),支持以下算法:
    • xor - 简单异或校验
    • sum8 - 8位累加和
    • crc8 - 8位CRC校验
    • crc16-modbus - Modbus协议CRC16
    • crc16-ccitt - CCITT标准CRC16
    • crc32 - 32位CRC校验

命令模式命令

  • /help 显示命令帮助。
  • /version 显示程序版本号。
  • /hex 切换到 HEX 模式。
  • /ascii 切换到 ASCII 模式(自动禁用 CRC)。
  • /crc <mode> 在命令模式下切换发送 CRC(支持 nonexorsum8crc8crc16-modbuscrc16-ccittcrc32)。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors