# DeviceService **Repository Path**: liang-cao/device-service ## Basic Information - **Project Name**: DeviceService - **Description**: 设备服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-27 - **Last Updated**: 2026-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeviceService #### 介绍 DeviceService 是一个基于 .NET 8.0 和 WPF 的设备服务应用程序,用于统一管理和调试多种工业设备。项目采用模块化设计,提供了完整的设备通信协议支持和设备控制接口。 #### 软件架构 项目采用分层架构设计: ``` DeviceService/ ├── Com/ # 通信协议层 │ ├── CanToolKit # CAN总线通信 │ ├── ModbusTcpToolKit # Modbus TCP通信 │ ├── ModbusRtuToolKit # Modbus RTU通信 │ ├── SocketToolKit # Socket通信 │ └── EtherCatToolKit # EtherCAT通信 │ ├── Device/ # 设备控制层 │ ├── RobotToolKit # 机械手控制 │ ├── GripperToolKit # 夹爪控制 │ ├── WeighingScaleToolKit # 称重设备 │ ├── ChillerToolKit # 冷水机控制 │ ├── PumpToolKit # 泵控制 │ ├── MotorToolKit # 电机控制(步进电机/伺服电机) │ ├── TcuToolkit # TCU控制 │ └── RobotModule # 机械手模块(整合Robot、Gripper、WeighingScale) │ └── DeviceService/ # 应用层 ├── Services/ # 服务层 │ ├── DeviceFactory # 设备工厂(统一管理设备实例) │ └── WebApiService # Web API服务 ├── ViewModels/ # 视图模型(MVVM模式) ├── Views/ # 视图(WPF界面) └── Controllers/ # API控制器 ``` **核心特性:** - 🏭 **设备工厂模式**:通过 `DeviceFactory` 统一管理所有设备实例,支持多实例 - 🔌 **多协议支持**:支持 CAN、Modbus TCP/RTU、Socket、EtherCAT 等通信协议 - 🎛️ **可视化调试**:提供完整的 WPF 调试界面,支持实时状态监控 - 🔄 **MVVM 架构**:使用 CommunityToolkit.Mvvm 实现 MVVM 模式 - 📡 **Web API**:提供 RESTful API 接口,支持远程控制 - ⚙️ **配置管理**:支持 JSON 配置文件,灵活配置设备参数 #### 支持的设备 | 设备类型 | 通信协议 | 说明 | |---------|---------|------| | 机械手 (Robot) | Socket | 支持位置控制、工具切换 | | 夹爪 (Gripper) | Modbus RTU | 支持开合、激活/去激活 | | 称重设备 (WeighingScale) | CAN + Modbus RTU | 支持称重、清零 | | 冷水机 (Chiller) | Modbus TCP | 支持温度控制、开关机 | | 泵 (Pump) | CAN | 支持注射、抽取、阀门切换 | | 电机 (Motor) | CAN | 支持步进电机和伺服电机 | | TCU | Modbus TCP | 温度控制单元 | | EtherCAT | EtherCAT | 支持IO控制和运动控制 | #### 安装教程 **环境要求:** - .NET 8.0 SDK - Visual Studio 2022 或更高版本(推荐) - Windows 10/11 **安装步骤:** 1. 克隆项目 ```bash git clone cd device-service ``` 2. 还原 NuGet 包 ```bash dotnet restore ``` 3. 编译项目 ```bash dotnet build ``` 4. 运行应用程序 ```bash cd DeviceService dotnet run ``` **依赖项:** - CommunityToolkit.Mvvm (8.4.0) - HandyControl (3.5.1) - Microsoft.Extensions.* (8.0.0) - Swashbuckle.AspNetCore (6.6.2) #### 使用说明 **1. 设备连接** 在应用程序界面中: - 选择对应的设备调试标签页 - 配置设备连接参数(IP地址、端口、串口号等) - 点击"连接"按钮建立连接 **2. 设备调试** 每个设备都提供了独立的调试界面,包括: - 连接状态显示 - 实时状态监控 - 控制操作(运动、开关、参数设置等) - 错误信息提示 **3. 配置文件** 设备配置存储在 `DeviceService/Config/` 目录: - `stepper_motors.json` - 步进电机配置 - `io_signals.json` - IO信号配置 - `appsettings.json` - 应用程序配置 **4. Web API 使用** 应用程序启动后,可通过 Web API 接口远程控制设备: - API 文档:`http://localhost:5000/swagger` - 默认端口可在 `appsettings.json` 中配置 **示例代码:** ```csharp // 使用 DeviceFactory 管理设备 var robotOptions = new RobotOptions { Host = "192.168.1.10", Port = 8000 }; await DeviceFactory.AddOrUpdateRobotAsync("robot1", robotOptions); // 获取设备实例 var robot = DeviceFactory.GetRobot("robot1"); var result = await robot.MoveToPointAsync(100); ``` #### 项目结构说明 - **Com/** - 通信协议工具包,提供底层通信能力 - **Device/** - 设备控制工具包,封装设备控制逻辑 - **DeviceService/** - 主应用程序,提供用户界面和API服务 - **Api/** - API客户端库 - **Doc/** - 项目文档 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request **代码规范:** - 遵循 C# 编码规范 - 使用 XML 注释 - 保持代码整洁和可维护性 #### 许可证 [待添加] #### 联系方式 [待添加]