# dock_log **Repository Path**: kunker/dock_log ## Basic Information - **Project Name**: dock_log - **Description**: 机场导出日志 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 机场日志导出工具 基于 Tauri 的桌面应用程序,用于通过 MQTT 和 MinIO 导出机场日志。 ## 功能特性 - ✅ MQTT 连接配置和管理 - ✅ MinIO 存储配置 - ✅ 机场无人机信息管理 - ✅ 通过 MQTT 获取日志文件列表 - ✅ 启动日志文件上传到 MinIO - ✅ 从 MinIO 下载日志文件 ## 技术栈 - **前端**: React + TypeScript + Vite - **后端**: Rust + Tauri - **MQTT**: rumqttc - **MinIO**: reqwest (HTTP 客户端) ## 开发环境要求 - Node.js 18+ - Rust 1.70+ - 系统依赖(根据平台): - macOS: Xcode Command Line Tools - Linux: libwebkit2gtk, libssl-dev, etc. - Windows: Microsoft Visual C++ Build Tools ## 安装和运行 ### 1. 安装依赖 ```bash npm install ``` ### 2. 开发模式运行 ```bash npm run tauri:dev ``` ### 3. 构建生产版本 ```bash npm run tauri:build ``` 构建产物将位于 `src-tauri/target/release/` 目录。 ## 使用说明 ### 配置 MQTT 1. 打开应用,进入"配置"标签页 2. 在"MQTT 配置"中填写: - Broker 地址 - 端口(默认 1883) - 用户名和密码(如果需要) - 客户端 ID 3. 点击"保存配置",然后点击"连接 MQTT" ### 配置 MinIO 1. 在"配置"标签页选择"MinIO 配置" 2. 填写: - Endpoint(例如:http://localhost:9000) - Access Key - Secret Key - Bucket 名称 - Region - 是否使用 SSL 3. 点击"保存配置" ### 添加无人机信息 1. 在"配置"标签页选择"机场无人机信息" 2. 填写: - 网关序列号 (Gateway SN) - 无人机序列号 (Drone SN) - 名称 3. 点击"添加" 4. 可以编辑或删除已添加的无人机 ### 导出日志 1. 进入"日志导出"标签页 2. 选择要操作的无人机 3. 选择模块(飞行器/机场) 4. 点击"获取文件列表"(需要先连接 MQTT) 5. 选择要上传的日志文件 6. 点击"开始上传到MinIO" 7. 上传完成后,可以使用"下载文件"功能从 MinIO 下载文件 ## MQTT 协议说明 应用遵循以下 MQTT 主题和消息格式: - **获取文件列表**: `thing/product/{gateway_sn}/services` (method: `fileupload_list`) - **文件列表回复**: `thing/product/{gateway_sn}/services_reply` (method: `fileupload_list`) - **启动上传**: `thing/product/{gateway_sn}/services` (method: `fileupload_start`) - **上传进度**: `thing/product/{gateway_sn}/events` (method: `fileupload_progress`) 详细协议说明请参考 `log.md` 文件。 ## 配置文件 应用配置保存在用户目录下的 `.dock_tool/config.json` 文件中。 ## 许可证 MIT