JanPNP Docs
- :material-cloud:{ .lg .middle } __Cloud API 服务__
---
WebSocket 设备网关 + RESTful HTTP API,连接管理控制台与现场贴片机。
[→ 快速开始](quickstart.md){ .md-button }
- :material-cogs:{ .lg .middle } __系统架构__
---
了解 JanPNP 云端服务的分层设计、核心模块与数据流。
[→ 查看架构](architecture.md){ .md-button }
- :material-api:{ .lg .middle } __API 参考__
---
完整的 RESTful API 文档,包括请求/响应示例与错误码。
[→ 浏览 API](api/overview.md){ .md-button }
- :material-lan:{ .lg .middle } __设备协议__
---
设备与云端 WebSocket 通信协议详细规范。
[→ 阅读协议](protocol/device-protocol.md){ .md-button }
项目概述
JanPNP 是一个智能桌面贴片机项目。Web Server 是 JanPNP 的云端服务套件,由三个独立服务组成:
| 服务 | 端口 | 职责 |
|---|---|---|
| Cloud API | 8765/8766 |
WebSocket 设备网关 + RESTful HTTP API |
| Admin Console | 8770 |
设备管理、固件发布与运维控制面 |
| Public Site | 8771 |
JanPNP 官方网站与产品展示 |
Cloud API 通过 WebSocket 与现场贴片机保持长连接,通过 REST API 向上层管理控制台暴露设备状态、任务控制、料仓管理、机器视觉、硬件调试和固件发布能力。
主要功能
- 设备网关 — WebSocket 长连接管理、设备注册与心跳保活、请求代理转发
- 设备管理 — 在线状态、设备绑定、用户权限隔离
- 贴装任务 — 创建、启动、暂停、恢复、停止全生命周期控制
- 料仓管理 — 元件库、BOM 校验、飞达槽位与物料可用性检查
- 机器视觉 — 相机状态、目标切换、模型切换与元件检测
- 硬件调试 — 实时位置、轴同步、运动控制、泵阀灯光与串口日志
- 固件发布 — 签名镜像上传、版本管理、发布激活与审计日志
- 订单管理 — 贴装工单的创建、解析、取消与历史查询
- 相机流 — 设备相机状态查询与帧获取
- 扩展市场 — 扩展安装、卸载与统计
- 用户认证 — JWT 登录、微信小程序登录与令牌刷新
- 反馈收集 — 用户反馈提交
技术栈
| 组件 | 选型 |
|---|---|
| HTTP 框架 | aiohttp |
| WebSocket | websockets |
| JWT | PyJWT (HS256) |
| 配置 | python-dotenv |
| 并发 | asyncio |
| Python | ≥ 3.11 |