一个可以直接在浏览器中使用的串口助手工具
A serial port assistant that can be used directly in the browser
- 🌐 浏览器原生支持 - 基于 Web Serial API 和 Web Bluetooth API,无需安装驱动
- 📱 响应式设计 - 支持桌面端,自适应布局
- 🔌 多种连接方式 - 支持 USB 串口和蓝牙连接
- 📊 实时数据监控 - 实时显示串口数据收发记录
- 🎨 现代化界面 - 基于 Vue 3 + JavaScript +Tailwind CSS 构建的美观界面
- ⚡ 高性能 - 使用 Rolldown-Vite 构建,支持热重载和快速开发
- 🛠️ 可定制 - 支持多种数据格式显示和发送选项
- Node.js >= 22
- pnpm >= 10 (推荐使用 pnpm)
- 现代浏览器(支持 Web Serial API)
# 克隆项目
git clone <repository-url>
cd SerialAssistant
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev
# 构建生产版本
pnpm build
项目提供了Docker支持,可以使用Docker快速部署应用。
# 使用Docker构建镜像
docker build -t serial-assistant .
# 运行容器
docker run -d -p 8080:80 --name serial-assistant serial-assistant
或者使用docker-compose:
# 使用docker-compose启动服务
docker-compose up -d
构建完成后,访问 http://localhost:8080 即可使用应用。
项目支持一键部署到 Netlify,提供了完整的配置文件。
- 安装 Netlify CLI
npm install -g netlify-cli
- 登录 Netlify
netlify login
- 初始化并部署项目
# 构建项目
pnpm build
# 部署到 Netlify
pnpm deploy:netlify
- 在 Netlify 注册并登录账号
- 点击 "New site from Git"
- 选择 GitHub 并授权仓库访问权限
- 选择要部署的仓库
- 配置构建设置:
- Build command:
pnpm build
- Publish directory:
dist
- Node version:
22
- Build command:
- 点击 "Deploy site"
部署完成后,Netlify 会自动分配一个域名。你也可以在站点设置中配置自定义域名。
项目支持一键部署到 Vercel,提供了完整的配置文件。
vercel.json - 主要的 Vercel 配置文件,包含以下配置:
- 构建命令:
pnpm run build
- 输出目录:
dist
- 框架: Vite
- 路由重写: 支持 SPA 路由
- 缓存策略: 静态资源长期缓存
- Node.js 版本: 22
.vercelignore - 指定部署时需要忽略的文件和目录,减少部署包大小。
- 安装 Vercel CLI
npm i -g vercel
- 登录 Vercel
vercel login
- 部署项目
# 部署
pnpm deploy:vercel
# 或者
vercel --prod
- 访问 Vercel Dashboard
- 点击 "New Project"
- 导入你的 Git 仓库
- Vercel 会自动检测到这是一个 Vite 项目并使用相应配置
- 点击 "Deploy" 开始部署
连接 Git 仓库后,每次推送到主分支都会自动触发部署。
如果项目需要环境变量,可以在 Vercel Dashboard 的项目设置中添加,或者通过 CLI 添加:
vercel env add VITE_API_URL
部署完成后,Vercel 会自动分配一个域名。你也可以在站点设置中配置自定义域名。
pnpm dev # 启动开发服务器
pnpm build # 构建生产版本
pnpm preview # 预览构建结果
pnpm analyze # 分析构建包大小
pnpm lint # 代码检查
pnpm lint:fix # 自动修复代码问题
pnpm test # 运行单元测试
pnpm test:run # 运行单元测试(单次)
pnpm deploy:docker # 部署到Docker
pnpm deploy:netlify # 部署到Netlify
pnpm deploy:vercel # 部署到Vercel(生产环境)
- 前端框架: Vue 3 (Composition API)
- 构建工具: Vite
- 样式框架: Tailwind CSS 4.x
- UI 组件: Shadcn/Vue UI
- 状态管理: VueUse (通过 composables)
- 工具库: VueUse, Day.js
- 开发工具: ESLint, Vitest
src/
├── components/ # 组件目录
│ ├── ActivityBar/ # 活动栏组件
│ ├── ControlPanel/ # 控制面板
│ ├── RecordPanel/ # 数据记录面板
│ ├── SendPanel/ # 数据发送面板
│ ├── SettingPanel/ # 设置面板
│ ├── StatusBar/ # 状态栏
│ ├── TopBar/ # 顶部栏
│ └── ui/ # shadcn/vue UI组件
├── composables/ # 组合式函数
│ ├── useBle/ # 蓝牙功能
│ ├── useCheckDigit/ # 校验位功能
│ ├── useDataCode/ # 数据编码
│ ├── useLayout/ # 布局管理
│ ├── useNprocess/ # 进度条动画
│ └── useSerial/ # 串口功能
├── store/ # 状态管理
└── network/ # 网络监控
- 支持 Web Serial API
- 自动检测可用串口设备
- 可配置波特率、数据位、停止位等参数
- 实时数据收发
- 支持 Web Bluetooth API
- BLE 设备连接和通信
- 自定义服务和特征值配置
- 支持多种数据格式(HEX、ASCII、UTF-8等)
- 实时数据显示和记录
- 自定义数据编码和解码
功能 | Chrome | Edge | Firefox | Safari |
---|---|---|---|---|
Web Serial API | ✅ 89+ | ✅ 89+ | ❌ | ❌ |
Web Bluetooth API | ✅ 56+ | ✅ 79+ | ❌ | ❌ |
注意: 此应用需要支持 Web Serial API 的浏览器,目前主要支持基于 Chromium 的浏览器。
- 使用 Worker 重构数据处理
- SEO 优化
- 修复 RTS 拉高部分板子 boot0 的问题
- 点击时间切换时间显示格式
- 对话气泡复制按钮
-
对话记录保存功能对话记录导出文件(JSON) - 快捷输入按钮面板
-
快捷发送键绑定(如 WASD 等按键)上下键快速输入历史发送记录 - 数据曲线绘制(自定义正则表达式或 JS 脚本提取数据)
- 搜索功能
- 命令行样式的彩色显示(类似 \033[30m)
- 关键词彩色高亮
- 添加随机小贴士
- 添加缓存限制防止数据过多导致卡顿
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开 Pull Request
🎨 贡献者展示由多个开源服务提供支持:contrib.rocks
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
Powered by 波特律动