XplorePlane 服务层
概述
本目录包含 XplorePlane 应用程序的服务层实现。服务层负责封装业务逻辑和硬件交互。
日志服务
XplorePlane 使用 XplorePlane.Common.dll 库中封装的日志功能,无需在本项目中重复实现。
使用方式
1. 通过依赖注入使用 Serilog ILogger
using Serilog;
public class MyViewModel
{
private readonly ILogger _logger;
public MyViewModel(ILogger logger)
{
_logger = logger;
}
public void DoSomething()
{
_logger.Information("执行某个操作");
_logger.Warning("警告信息");
_logger.Error("错误信息");
}
}
2. 使用静态 Log 类
using Serilog;
public class MyService
{
public void DoWork()
{
Log.Information("开始工作");
Log.Debug("调试信息: {Value}", someValue);
Log.Error(exception, "发生错误");
}
}
3. 为特定模块创建日志器
using Serilog;
public class RaySourceService
{
private readonly ILogger _logger;
public RaySourceService()
{
// 为当前类创建带上下文的日志器
_logger = Log.ForContext<RaySourceService>();
}
public void Initialize()
{
_logger.Information("初始化射线源");
}
}
日志配置
日志配置通过 App.config 文件进行管理:
<appSettings>
<!-- 日志配置 -->
<add key="Serilog:LogPath" value="logs"/>
<add key="Serilog:MinimumLevel" value="Information"/>
<add key="Serilog:EnableConsole" value="true"/>
<add key="Serilog:RollingInterval" value="Day"/>
<add key="Serilog:FileSizeLimitMB" value="100"/>
<add key="Serilog:RetainedFileCountLimit" value="30"/>
</appSettings>
日志级别
- Verbose: 最详细的日志,用于开发调试
- Debug: 调试信息
- Information: 一般信息(默认)
- Warning: 警告信息
- Error: 错误信息
- Fatal: 致命错误
日志输出
日志会输出到以下位置:
- 文件:
logs/xploreplane-{Date}.log - 控制台: 开发时可见
- 调试输出: Debug 模式下可见
硬件服务
硬件服务将在后续实现,用于封装与硬件库的交互。
计划实现的服务
IHardwareService: 硬件服务总接口RaySourceService: 射线源控制服务DetectorService: 探测器控制服务PLCService: PLC 通讯服务
依赖库
- XplorePlane.Common.dll: 通用基础设施库(包含日志功能)
- XplorePlane.Hardware.RaySource.dll: 射线源控制库
- XplorePlane.Hardware.Detector.dll: 探测器控制库
- XplorePlane.Hardware.PLC.dll: PLC 通讯库
所有 DLL 文件位于 Libs/Hardware/ 目录下。