# MiniGreat-Sender **Repository Path**: FasterEdge/MiniGreat-Sender ## Basic Information - **Project Name**: MiniGreat-Sender - **Description**: 各种协议请求调试发送工具 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-31 - **Last Updated**: 2026-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
MiniGreat-Sender

MiniGreat-Sender

全方面多协议请求调试发送工具

### 一、项目简介 - 一个**全方面多协议请求调试发送工具**,支持各种模态请求协议与请求方式,有线无线全覆盖,纯 Go 实现。 - 配套接收端为 **[MiniGreat-Receiver](../MiniGreat-Receiver/)**,本工具负责「发」,另一端负责「收」,成对使用可完成完整的链路调试。 - 提供 **CLI 命令行** 与 **本地 Web 调试面板** 两种使用形态:CLI 适合脚本化、批量与自动化场景;Web 面板适合交互式可视化调试。 - 所有协议驱动通过统一抽象(`Request/Response/Driver`)注册,协议可插拔、易扩展。 - Web 静态资源通过 `go:embed` 嵌入二进制,单文件即可部署,无需额外静态目录。 ### 二、主要特性 | 类别 | 协议 | 说明 | |------|------|------| | 有线网络 | TCP / UDP | 连接发送并读取响应,支持超时 | | 有线网络 | HTTP / HTTPS | 全部请求方法 + 自定义头 + 任意载荷,TLS 可跳过校验 | | 有线网络 | WebSocket | `ws://` `wss://` 文本 / 二进制消息 | | 工控 | MQTT | 连接 broker 发布消息,QoS 0/1/2、Retain、鉴权 | | 工控 | Modbus | RTU + TCP,功能码 01/02/03/04/05/06/0F/10 | | 串口 | UART/RS232/RS485 | 波特率 / 数据位 / 校验 / 停止位全可配 | | 无线射频 | RF-AT 透传 | LoRa / 433MHz / Zigbee / BLE-SPP 等经串口 AT 指令 | | 无线 BLE | 蓝牙 | BlueZ 扫描 / 连接 / GATT 特征读写与读回 | | 总线 | CAN | SocketCAN 标准 / 扩展 / 远程帧 | | 总线 | SPI | `/dev/spidevX.Y` 模式 / 频率 / 位宽可配,全双工 | | 总线 | I2C | `/dev/i2c-N` 指定从机,支持寄存器寻址读写 | - 载荷格式三选一:`--hex`(十六进制,可含空格)、`--txt`(文本)、`--b64`(base64),也可 `--json file.json` 传入完整请求参数。 - 跨平台:网络 / 工控 / 串口 / 射频类在 Linux/macOS/Windows 均可运行;CAN / SPI / I2C / BLE 需 Linux(树莓派 / Jetson 等),非 Linux 平台给出明确提示。 ### 三、快速开始 > **环境要求**:Go 1.21+。 ```bash make build # 或 go build -o minigreat-sender . ./minigreat-sender list # 查看全部支持的协议 ./minigreat-sender help # 查看全部选项 ``` **网络类:** ```bash ./minigreat-sender send --proto tcp --remote 192.168.1.100:9000 --txt "hello" ./minigreat-sender send --proto udp --remote 192.168.1.100:5005 --hex "AABB CC" ./minigreat-sender send --proto http --url http://192.168.1.100:8080/api --method POST \ --header 'Content-Type: application/json' --txt '{"cmd":"ping"}' ./minigreat-sender send --proto ws --url ws://192.168.1.100:9002 --txt "hello" ``` **工控类:** ```bash ./minigreat-sender send --proto mqtt --broker tcp://127.0.0.1:1883 --topic test --txt "hi" --qos 1 ./minigreat-sender send --proto modbus --remote 192.168.1.100:502 --func 03 --addr 0 --qty 10 ./minigreat-sender send --proto modbus --remote 192.168.1.100:502 --func 06 --addr 100 --values 1234 ``` **串口 / 射频:** ```bash ./minigreat-sender send --proto serial --device /dev/ttyUSB0 --baud 115200 --txt "AT+GMR" ./minigreat-sender send --proto rf --device /dev/ttyUSB0 --baud 9600 --txt "AT+LORA=1" ``` **总线类(Linux):** ```bash ./minigreat-sender send --proto can --iface vcan0 --id 0x123 --hex "01020304" ./minigreat-sender send --proto spi --device /dev/spidev0.0 --mode 0 --hex "AA" ./minigreat-sender send --proto i2c --bus 1 --addr 0x48 --reg 0x00 --qty 4 ``` **蓝牙(Linux, BlueZ):** ```bash ./minigreat-sender send --proto ble --addr AA:BB:CC:DD:EE:FF \ --service 0000ffe0-0000-1000-8000-00805f9b34fb \ --char 0000ffe1-0000-1000-8000-00805f9b34fb --txt "hi" --readresp ``` ### 四、Web 调试面板 ```bash ./minigreat-sender web --addr 127.0.0.1:8080 --open ``` 打开浏览器即得可视化面板: - 左侧选择协议 → 填写连接参数与载荷 → 点「🚀 发送」。 - 右侧「实时日志」经 WebSocket 推送每次收发记录;「最近响应」展示完整 JSON 响应(状态码 / 耗时 / HEX / 元信息)。 - 载荷格式(Hex / Text / Base64)与超时均可在面板内切换。 ### 五、Docker 部署 ```bash # 构建(amd64 默认;树莓派 / Jetson 用 arm64) make docker # 或 make docker TARGETARCH=arm64 # 运行 CLI(硬件协议需 --privileged --network host) docker run --rm -it --privileged --network host minigreat-sender:latest \ send --proto serial --device /dev/ttyUSB0 ... # 运行 Web 面板(已配置硬件透传示例) docker compose up -d sender-web ``` > 串口 / SPI / I2C / CAN / BLE 需要容器以 `--privileged --network host` 运行,并通过 `devices` / `volumes` 透传宿主设备与 D-Bus(见 `docker-compose.yml`)。镜像为 Alpine 静态二进制,任意 Linux 主机一键部署(含跨架构)。 ### 六、目录结构 ``` MiniGreat-Sender/ ├─ main.go # 入口 ├─ internal/ │ ├─ cli/ # 命令行子命令(send / web / list) │ ├─ core/ # 核心抽象:Request / Response / Driver / 载荷解析 │ ├─ driver/ # 各协议发送驱动 │ │ ├─ netdrv/ # TCP / UDP │ │ ├─ httpdrv/ # HTTP / HTTPS │ │ ├─ wsdrv/ # WebSocket │ │ ├─ mqttdrv/ # MQTT │ │ ├─ modbusdrv/ # Modbus RTU / TCP │ │ ├─ serialdrv/ # 串口 UART/RS232/RS485 │ │ ├─ rfdrv/ # 射频 AT 透传 │ │ ├─ candrv/ spidrv/ i2cdrv/ bledrv/ # Linux 硬件协议(+非 Linux 桩) │ └─ web/ # Web 调试面板(go:embed 内嵌静态资源) ├─ Dockerfile ├─ docker-compose.yml ├─ Makefile ├─ go.mod / go.sum ├─ Logo.png └─ README.md / README_en.md ``` ### 七、平台支持 | 类别 | Linux | macOS / Windows | |------|:-----:|:---------------:| | TCP / UDP / HTTP / WS / MQTT / Modbus | ✅ | ✅ | | 串口 / RF-AT | ✅ | ✅ | | CAN / SPI / I2C / BLE | ✅ | ❌(提示改用 Linux) | | Docker | ✅(amd64 / arm64) | — | ### 八、License Apache License 2.0