# 状态监控设置弹窗实现说明

## 需求概述
将NormalTemperatureMode页面顶部状态栏中的常温/高温模式指示和阀门状态展示区域，移动到一个新的设置弹窗中展示。

## 实现方案

### 1. 新建状态设置弹窗 (StatusSettingsForm)

#### 文件结构
- `StatusSettingsForm.cs` - 窗体逻辑代码
- `StatusSettingsForm.Designer.cs` - 窗体UI设计代码

#### 主要功能
1. **温度模式显示区域**
   - 常温模式指示灯 (uiLight1_Status) - 蓝色
   - 高温模式指示灯 (uiLight2_Status) - 红色
   - 当前模式文本 (uiLabel11_Status)

2. **阀门状态显示区域** (10个阀门指示灯)
   - uiLight3_Status: 高压出阀
   - uiLight4_Status: 高压进阀
   - uiLight5_Status: 常温抽水阀
   - uiLight6_Status: 常温水箱加水阀
   - uiLight7_Status: 高温抽水阀
   - uiLight8_Status: 空气抽气阀
   - uiLight9_Status: 加热状态
   - uiLight10_Status: 常温回水阀
   - uiLight11_Status: 高温水箱加水阀
   - uiLight12_Status: 高温回水阀

3. **实时更新机制**
   - 使用Timer每500ms从父窗体获取最新状态
   - 通过父窗体的`UpdateStatusSettingsForm`方法获取控件状态
   - 支持线程安全的UI更新

### 2. 修改NormalTemperatureMode主窗体

#### 新增内容
1. **私有字段**
   ```csharp
   private StatusSettingsForm _statusSettingsForm;
   ```

2. **公共更新方法**
   ```csharp
   public void UpdateStatusSettingsForm(StatusSettingsForm form)
   ```
   - 从主窗体读取所有指示灯和标签的状态
   - 调用StatusSettingsForm的更新方法传递状态

3. **打开窗体方法**
   ```csharp
   private void OpenStatusSettingsForm()
   ```
   - 创建或激活StatusSettingsForm实例
   - 实现单例模式，避免重复创建

4. **按钮事件修改**
   - 修改uiButton14的MouseUp事件
   - 短按：打开状态设置窗体
   - 长按（1秒以上）：打开系数设置窗体

### 3. 项目文件更新

在`全自动水压检测仪.csproj`中添加新文件引用：
```xml
<Compile Include="StatusSettingsForm.cs">
  <SubType>Form</SubType>
</Compile>
<Compile Include="StatusSettingsForm.Designer.cs">
  <DependentUpon>StatusSettingsForm.cs</DependentUpon>
</Compile>
```

## 使用说明

### 打开状态设置窗体
1. 在NormalTemperatureMode主界面
2. 短按隐藏按钮（uiButton14）
3. 弹出状态设置窗体

### 窗体特性
- 窗体大小：850 x 550 像素
- 居中显示在父窗体上方
- 不显示在任务栏
- 实时更新状态（每500ms）
- 点击"关闭"按钮关闭窗体

## 技术要点

### 1. 状态同步
- 使用Timer定时器实现自动更新
- 通过父窗体公共方法获取状态
- 线程安全的UI更新（使用Invoke）

### 2. 控件状态映射
```csharp
// 温度模式
uiLight1 (主窗体) → uiLight1_Status (设置窗体)
uiLight2 (主窗体) → uiLight2_Status (设置窗体)
uiLabel11 (主窗体) → uiLabel11_Status (设置窗体)

// 阀门状态
uiLight3-12 (主窗体) → uiLight3-12_Status (设置窗体)
```

### 3. 布局设计
- 温度模式区域：顶部，高度120px
- 阀门状态区域：中部，高度280px，5列2行布局
- 关闭按钮：底部居中

## 注意事项

1. **生产环境可用性**
   - 所有代码经过空值检查
   - 异常处理完善
   - 线程安全保证

2. **性能优化**
   - 定时器间隔500ms，平衡实时性和性能
   - 窗体关闭时自动停止定时器
   - 使用单例模式避免重复创建

3. **正确取值**
   - 直接从主窗体控件读取State属性
   - 保证状态的准确性和实时性

4. **正确显示状态**
   - 指示灯颜色：绿色（开启）、灰色（关闭）
   - 温度模式：蓝色（常温）、红色（高温）
   - 文本标签清晰标注每个状态的含义

## 测试建议

1. 测试窗体打开和关闭
2. 验证状态实时更新
3. 检查所有指示灯显示正确
4. 测试长按和短按按钮功能
5. 验证多次打开窗体的稳定性
