Skip to content

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 build

HTTP API(与 @xichen-full-stack/instrument 对齐)

方法路径说明
GET/healthAgent 健康检查
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

commandparams说明
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/

扩展新仪器

  1. src/DeviceAgent.Drivers.YourDevice/ 实现 IDeviceDriver
  2. DeviceAgent.Host/Program.cs 注册 AddSingleton<IDeviceDriver, YourDriver>()
  3. 若需厂商 SDK,放在驱动项目内引用

相关文档

Xichen Full Stack 内部文档