# 充电策略配置说明

## 功能概述

充电策略配置界面用于管理和配置充电系统的各项参数，包括 SOC 阈值、时间参数、任务参数和开关参数。配置保存在 JSON 文件中，系统启动时自动加载。

## 打开配置界面

在**充电桩管理界面**点击 **"策略配置"** 按钮（绿色按钮）即可打开配置界面。

## 配置参数说明

### 1. SOC 参数（电量百分比）

| 参数名称 | 默认值 | 说明 | 取值范围 |
|---------|-------|------|---------|
| 必充电量 | 20% | 低于此电量必须充电 | 0-100% |
| 空闲充电电量 | 90% | 车辆空闲时开始充电的电量阈值 | 0-100% |
| 任务可用电量 | 60% | 可以执行任务的最低电量 | 0-100% |
| 满电电量 | 90% | 充电目标电量 | 0-100% |
| 允许中断电量 | 45% | 允许中断充电任务的最低电量 | 0-100% |

**逻辑关系**：
- 必充电量 < 空闲充电电量
- 任务可用电量 > 必充电量
- 满电电量 ≥ 空闲充电电量
- 允许中断电量 > 必充电量

### 2. 时间参数

| 参数名称 | 默认值 | 说明 | 单位 |
|---------|-------|------|-----|
| 空闲充电时间 | 30 | 车辆空闲多久后开始充电 | 秒 (sec) |
| 空闲时间 | 5 | 判断车辆空闲的时间阈值 | 秒 (sec) |
| 必充时间 | 60 | 必须充电的持续时间 | 秒 (sec) |
| 补电时间 | 5 | 补电操作的持续时间 | 分钟 (min) |

### 3. 任务参数

| 参数名称 | 默认值 | 说明 |
|---------|-------|------|
| 允许空闲车充电的最小任务数 | 0 | 当任务数量大于此值时，允许空闲车辆充电 |

### 4. 开关参数

| 参数名称 | 默认值 | 说明 |
|---------|-------|------|
| 允许中断充电任务 | 否 | 是否允许中断正在进行的充电任务 |
| 优先使用低电量车辆充电 | 是 | 优先选择电量较低的车辆进行充电 |
| 启用充电错误检测 | 否 | 是否启用充电过程中的错误检测 |
| 使用充电站点筛选 | 否 | 是否根据站点筛选充电桩 |

## 操作说明

### 保存配置

1. 修改所需参数
2. 点击 **"保存"** 按钮
3. 系统会验证参数的有效性
4. 验证通过后保存到配置文件

配置文件位置：`Config/ChargeStrategyConfig.json`

### 应用配置

点击 **"应用"** 按钮可以保存配置但不关闭窗口，方便继续调整参数。

### 恢复默认配置

1. 点击 **"恢复默认"** 按钮
2. 确认恢复操作
3. 所有参数恢复为默认值
4. **注意**：恢复后需要点击"保存"才会生效

### 取消修改

点击 **"取消"** 按钮关闭窗口，不保存任何修改。

## 配置文件格式

配置以 JSON 格式保存，示例：

```json
{
  "MustChargeSoc": 20.0,
  "IdleChargeSoc": 90.0,
  "TaskAvailableSoc": 60.0,
  "FullChargeSoc": 90.0,
  "AllowInterruptSoc": 45.0,
  "IdleChargeSeconds": 30.0,
  "IdleSeconds": 5.0,
  "MustChargeSeconds": 60.0,
  "TopUpMinutes": 5.0,
  "MinAllowFreeCarToChargeTaskCnt": 0,
  "AllowInterruptTask": false,
  "UseLowerSocForCharge": true,
  "EnableErrorChargeDetection": false,
  "UseChargeSiteFilter": false
}
```

## 参数验证规则

系统会在保存时自动验证配置的有效性：

### SOC 参数验证
- ✅ 所有 SOC 值必须在 0-100 之间
- ✅ 必充电量 < 空闲充电电量
- ✅ 任务可用电量 > 必充电量
- ✅ 满电电量 ≥ 空闲充电电量
- ✅ 允许中断电量 > 必充电量

### 时间参数验证
- ✅ 所有时间值必须 ≥ 0

### 任务参数验证
- ✅ 最小任务数必须 ≥ 0

## 使用场景示例

### 场景 1：紧急任务模式
适用于任务紧急，需要快速周转车辆的情况。

```
必充电量: 15%
空闲充电电量: 80%
任务可用电量: 50%
满电电量: 85%
允许中断充电任务: 是
```

### 场景 2：节能模式
适用于任务不紧急，优先保证电池寿命的情况。

```
必充电量: 25%
空闲充电电量: 95%
任务可用电量: 70%
满电电量: 95%
允许中断充电任务: 否
```

### 场景 3：平衡模式（默认）
平衡任务效率和电池寿命。

```
必充电量: 20%
空闲充电电量: 90%
任务可用电量: 60%
满电电量: 90%
允许中断充电任务: 否
```

## 配置生效时机

- **立即生效**：保存配置后立即生效
- **自动加载**：系统启动时自动加载配置
- **实时更新**：充电逻辑会实时读取最新配置

## 常见问题

### Q1: 修改配置后没有生效？

**检查项**：
1. 确认已点击"保存"按钮
2. 检查状态栏是否显示"配置保存成功"
3. 查看配置文件是否已更新

### Q2: 配置文件丢失怎么办？

系统会自动创建默认配置文件，无需担心。

### Q3: 如何备份配置？

配置文件位于 `Config/ChargeStrategyConfig.json`，直接复制此文件即可备份。

### Q4: 参数验证失败怎么办？

根据错误提示调整参数，确保满足所有验证规则。

### Q5: 可以手动编辑配置文件吗？

可以，但建议使用配置界面，因为界面会自动验证参数有效性。

## 技术细节

### 配置服务（单例模式）

```csharp
var configService = ChargeStrategyConfigService.Instance;
var config = configService.LoadConfig();
configService.SaveConfig(config);
```

### 配置模型

```csharp
public class ChargeStrategyConfig
{
    // SOC 参数
    public double MustChargeSoc { get; set; }
    public double IdleChargeSoc { get; set; }
    // ... 其他参数
    
    // 验证方法
    public bool Validate(out string errorMessage);
}
```

### 配置文件路径

- **Windows**: `应用程序目录\Config\ChargeStrategyConfig.json`
- **自动创建**: 首次运行时自动创建配置目录和默认配置文件

## 界面布局

```
┌─────────────────────────────────────────────────────────┐
│                    充电策略配置                          │
├─────────────────────────────────────────────────────────┤
│ ┌─ SOC 参数 ─────────────────────────────────────────┐ │
│ │ 必充电量: [20.0] %    空闲充电电量: [90.0] %       │ │
│ │ 任务可用电量: [60.0] %  满电电量: [90.0] %        │ │
│ │ 允许中断电量: [45.0] %                            │ │
│ └───────────────────────────────────────────────────┘ │
│                                                         │
│ ┌─ 时间参数 ─────────────────────────────────────────┐ │
│ │ 空闲充电时间: [30.0] 秒  空闲时间: [5.0] 秒       │ │
│ │ 必充时间: [60.0] 秒  补电时间: [5.0] 分钟         │ │
│ └───────────────────────────────────────────────────┘ │
│                                                         │
│ ┌─ 任务参数 ─────────────────────────────────────────┐ │
│ │ 允许空闲车充电的最小任务数: [0]                   │ │
│ └───────────────────────────────────────────────────┘ │
│                                                         │
│ ┌─ 开关参数 ─────────────────────────────────────────┐ │
│ │ ☐ 允许中断充电任务    ☑ 优先使用低电量车辆充电    │ │
│ │ ☐ 启用充电错误检测    ☐ 使用充电站点筛选          │ │
│ └───────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ 就绪...          [恢复默认] [保存] [应用] [取消]      │
└─────────────────────────────────────────────────────────┘
```

## 注意事项

⚠️ **参数调整建议**：
1. 不建议频繁修改配置
2. 修改前建议备份当前配置
3. 修改后观察系统运行情况
4. 根据实际情况逐步调整参数

⚠️ **安全提示**：
1. 必充电量不宜设置过低（建议 ≥ 15%）
2. 满电电量不宜设置过高（建议 ≤ 95%）
3. 允许中断任务需谨慎开启

## 版本历史

- **v1.0** (2026-01-25): 初始版本，支持所有充电策略参数配置

---

**提示**：配置界面提供了完整的参数验证和默认值恢复功能，建议通过界面进行配置管理。

