将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。

This commit is contained in:
QI Mingxuan
2026-04-16 17:31:13 +08:00
parent 6ec4c3ddaa
commit 2bd6e566c3
581 changed files with 74600 additions and 222 deletions
@@ -0,0 +1,148 @@
using System;
using XP.Hardware.RaySource.Abstractions;
using XP.Hardware.RaySource.Abstractions.Enums;
namespace XP.Hardware.RaySource.Services
{
/// <summary>
/// 射线源业务服务接口 | X-Ray Source Business Service Interface
/// 封装初始化、操作调度、状态管理和业务规则校验 | Encapsulates initialization, operation dispatch, status management, and business rule validation
/// </summary>
public interface IRaySourceService : IDisposable
{
/// <summary>
/// 当前射线源实例 | Current X-ray source instance
/// </summary>
IXRaySource CurrentSource { get; }
/// <summary>
/// 是否已初始化 | Is initialized
/// </summary>
bool IsInitialized { get; }
/// <summary>
/// PVI 变量是否已连接 | Whether PVI variables are connected
/// </summary>
bool IsConnected { get; }
/// <summary>
/// 是否射线开启 | Is X-ray on
/// </summary>
bool IsXRayOn { get; }
/// <summary>
/// 当前射线源状态 | Current X-ray source status
/// </summary>
RaySourceStatus CurrentStatus { get; }
/// <summary>
/// 初始化射线源(射线源类型从配置文件读取)| Initialize X-ray source (source type read from configuration)
/// </summary>
XRayResult Initialize();
/// <summary>
/// 连接变量并启动实时状态通讯 | Connect variables and start real-time status communication
/// </summary>
XRayResult ConnectVariables();
/// <summary>
/// 断开射线源连接 | Disconnect X-ray source
/// </summary>
XRayResult Disconnect();
/// <summary>
/// 开启射线 | Turn on X-ray
/// </summary>
XRayResult TurnOn();
/// <summary>
/// 关闭射线 | Turn off X-ray
/// </summary>
XRayResult TurnOff();
/// <summary>
/// 紧急关闭(最高优先级)| Emergency shutdown (highest priority)
/// </summary>
XRayResult EmergencyShutdown();
/// <summary>
/// 设置电压 | Set voltage
/// </summary>
/// <param name="voltage">电压值(kV| Voltage value (kV)</param>
XRayResult SetVoltage(float voltage);
/// <summary>
/// 设置电流 | Set current
/// </summary>
/// <param name="current">电流值(μA| Current value (μA)</param>
XRayResult SetCurrent(float current);
/// <summary>
/// 读取实际电压 | Read actual voltage
/// </summary>
XRayResult ReadVoltage();
/// <summary>
/// 读取实际电流 | Read actual current
/// </summary>
XRayResult ReadCurrent();
/// <summary>
/// 读取系统状态 | Read system status
/// </summary>
XRayResult ReadSystemStatus();
/// <summary>
/// 检查错误 | Check errors
/// </summary>
XRayResult CheckErrors();
/// <summary>
/// 清除错误 | Clear errors
/// </summary>
XRayResult ClearErrors();
/// <summary>
/// TXI 开启 | TXI On
/// </summary>
XRayResult TxiOn();
/// <summary>
/// TXI 关闭 | TXI Off
/// </summary>
XRayResult TxiOff();
/// <summary>
/// 暖机设置 | Warm-up setting
/// </summary>
XRayResult WarmUp();
/// <summary>
/// 训机设置 | Training setting
/// </summary>
XRayResult Training();
/// <summary>
/// 灯丝校准 | Filament calibration
/// </summary>
XRayResult FilamentCalibration();
/// <summary>
/// 全部电压自动定心 | Auto-center all voltages
/// </summary>
XRayResult AutoCenter();
/// <summary>
/// 设置功率模式 | Set power mode
/// </summary>
/// <param name="mode">功率模式值:1=Micro Focus2=High Power</param>
XRayResult SetPowerMode(int mode);
/// <summary>
/// 异步执行初始化 + 连接变量的完整流程 | Async full sequence: Initialize + ConnectVariables
/// 供 ViewModel 在界面加载时调用,避免阻塞 UI 线程 | For ViewModel to call on view loaded without blocking UI
/// </summary>
/// <returns>最终操作结果 | Final operation result</returns>
System.Threading.Tasks.Task<XRayResult> InitializeAndConnectAsync();
}
}