Appearance
device-agent(C#,可选插件)
路径:packages/device-agent
包名:@xichen-full-stack/device-agent
可选能力:仅当 Desktop 需要本地仪器设备控制时启用。默认 Desktop 构建与运行 不依赖 本包。
| 场景 | 是否必需 |
|---|---|
| Desktop 桌面业务系统(管理后台等) | 否 |
| Desktop + 串口/SDK 仪器设备控制 | 是 |
架构
text
Electron 渲染进程 (Vue)
→ @xichen-full-stack/instrument (TS Client)
→ http://127.0.0.1:19721
→ DeviceAgent.Host (ASP.NET Core)
→ DeviceManager → IDeviceDriver (Mock / 串口 / 厂商 SDK…)Java 后端仍负责 RBAC、实验数据;实时设备控制走本地 Agent。
环境
命令
bash
pnpm device-agent:dev
pnpm device-agent:build
# 或
pnpm --filter @xichen-full-stack/device-agent dev
pnpm --filter @xichen-full-stack/device-agent buildHTTP API(与 @xichen-full-stack/instrument 对齐)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /health | Agent 健康检查 |
| GET | /api/v1/devices | 已注册设备列表 |
| GET | /api/v1/devices/{id}/status | 设备状态 |
| POST | /api/v1/devices/{id}/connect | 连接 |
| POST | /api/v1/devices/{id}/disconnect | 断开 |
| POST | /api/v1/devices/{id}/commands | 执行命令 |
响应格式:{ "code": 0, "message": "ok", "data": ... }(与 RBAC API 一致)。
Mock 设备命令
设备 ID:mock-pump-1
| command | params | 说明 |
|---|---|---|
| ping | — | 连通性测试 |
| read | — | 读取 speed / running |
| start | — | 启动 |
| stop | — | 停止 |
| set-speed | { "speed": 100 } | 设置转速 |
与 Desktop 联调
bash
pnpm --filter @xichen-full-stack/instrument build
pnpm device-agent:dev
$env:DEVICE_AGENT_AUTO_START="true"
pnpm --filter desktop dev登录后访问 http://localhost:5174/#/instrument。
生产打包(打入 Desktop 安装包)
bash
pnpm device-agent:build
pnpm --filter desktop build:instrument
# 或
pnpm desktop:build:instrument使用 electron-builder.instrument.json5,将 dist/win-x64/ 打入 resources/device-agent/。
扩展新仪器
- 在
src/DeviceAgent.Drivers.YourDevice/实现IDeviceDriver - 在
DeviceAgent.Host/Program.cs注册AddSingleton<IDeviceDriver, YourDriver>() - 若需厂商 SDK,放在驱动项目内引用