using XP.Common.Localization.Interfaces; namespace XP.Hardware.RaySource.Services { /// /// 设备状态码多语言映射工具 | Device status code localization mapper /// 将 Comet.Host 传递的原始 code 码映射为多语言显示文本 /// public static class StatusCodeMapper { /// /// 暖机状态码映射 | Warm-up status code mapping /// public static string MapWarmUpStatus(string code, ILocalizationService loc) { return code switch { "0" => loc.GetString("RaySource_Status_WarmUp_0") ?? "初始状态", "1" => loc.GetString("RaySource_Status_WarmUp_1") ?? "暖机中", "2" => loc.GetString("RaySource_Status_WarmUp_2") ?? "暖机完成", "3" => loc.GetString("RaySource_Status_WarmUp_3") ?? "暖机失败", "33" => loc.GetString("RaySource_Status_WarmUp_33") ?? "需要暖机", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } /// /// 真空状态码映射 | Vacuum status code mapping /// public static string MapVacuumStatus(string code, ILocalizationService loc) { return code switch { "0" => loc.GetString("RaySource_Status_Vacuum_0") ?? "初始状态", "1" => loc.GetString("RaySource_Status_Vacuum_1") ?? "抽真空中", "2" => loc.GetString("RaySource_Status_Vacuum_2") ?? "真空准备好", "22" => loc.GetString("RaySource_Status_Vacuum_22") ?? "真空值<1e-5mbar", "30" => loc.GetString("RaySource_Status_Vacuum_30") ?? "真空泵未使能", "40" => loc.GetString("RaySource_Status_Vacuum_40") ?? "真空泵通风", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } /// /// 训机状态码映射 | Training status code mapping /// public static string MapStartUpStatus(string code, ILocalizationService loc) { return code switch { "0" => loc.GetString("RaySource_Status_StartUp_0") ?? "初始状态", "1" => loc.GetString("RaySource_Status_StartUp_1") ?? "训机中", "2" => loc.GetString("RaySource_Status_StartUp_2") ?? "训机完成", "3" => loc.GetString("RaySource_Status_StartUp_3") ?? "训机失败", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } /// /// 自动定心状态码映射 | Auto-center status code mapping /// public static string MapAutoCenterStatus(string code, ILocalizationService loc) { return code switch { "0" => loc.GetString("RaySource_Status_AutoCenter_0") ?? "初始状态", "1" => loc.GetString("RaySource_Status_AutoCenter_1") ?? "自动定心中", "2" => loc.GetString("RaySource_Status_AutoCenter_2") ?? "自动定心完成", "3" => loc.GetString("RaySource_Status_AutoCenter_3") ?? "定心失败", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } /// /// 灯丝调整状态码映射 | Filament adjust status code mapping /// public static string MapFilamentAdjustStatus(string code, ILocalizationService loc) { return code switch { "0" => loc.GetString("RaySource_Status_Filament_0") ?? "初始状态", "1" => loc.GetString("RaySource_Status_Filament_1") ?? "灯丝校准中", "2" => loc.GetString("RaySource_Status_Filament_2") ?? "灯丝校准完成", "3" => loc.GetString("RaySource_Status_Filament_3") ?? "灯丝校准失败", "33" => loc.GetString("RaySource_Status_Filament_33") ?? "需要灯丝校准", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } /// /// 功率模式码映射 | Power mode code mapping /// public static string MapPowerMode(string code, ILocalizationService loc) { var trimmed = (code ?? "").Trim(); if (int.TryParse(trimmed, out var intVal)) { return intVal switch { 1 => loc.GetString("RaySource_Status_PowerMode_1") ?? "Micro Focus", 2 => loc.GetString("RaySource_Status_PowerMode_2") ?? "High Power", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } if (string.IsNullOrEmpty(trimmed)) return "--"; return loc.GetString("RaySource_Status_Unknown") ?? "未知状态"; } /// /// TXI 状态码映射 | TXI status code mapping /// public static string MapTxiStatus(string code, ILocalizationService loc) { return code switch { "True" => loc.GetString("RaySource_Status_TXI_On") ?? "TXI 开启", "False" => loc.GetString("RaySource_Status_TXI_Off") ?? "TXI 关闭", _ => loc.GetString("RaySource_Status_Unknown") ?? "未知状态" }; } } }