# 参数缺省值重构方案 **原则**:缺省值只存在于 `param.xml`,运行时不再存储。 ## 改动清单 ### T1: 移除 `stru_signal.vec_p_default_data` **文件**: `dc_signal.h` - 删除 `std::vector vec_p_default_data;` 字段 ### T2: 移除 API 中的默认值参数及返回值 **文件**: `myDatacenter.h`, `dc_signal.cpp` - `dc_signal_ao()` — 删除 `void *p_default_data` 参数 - `dc_signal_param()` — 删除 `void **p_default_data` 参数 - `dc_get_ao_signal_info()` — 删除 `void **p_default_data` 输出参数 - `dc_get_param_signal_info()` — 删除 `std::vector *p_vec_p_default_data` 输出参数 - 删除 `dc_signal_ao_add_check()` / `dc_signal_param_add_check()`(不复存在) ### T3: `dc_param.cpp` 不创建默认值 **文件**: `dc_param.cpp` - `dc_param_register_signals()` 中删除 `p_default_data` 创建和传参 - 值优先级:self_param.xml value > param.xml value > param.xml default(逻辑不变,只是不再单独创建 default 指针) ### T4: `self_ptl` 不再创建/传递默认值 **文件**: `self_ptl.cpp`, `self_ptl.h` - `stru_self_ptl_cfg_param_data` 删除 `vec_p_default_data` - `self_ptl_cfg_init()` 删除 `p_default_data`/`p_default_val_data` 创建 - `self_ptl_do_signal_out()` 删除默认值传参 - `method.cpp` CLI 展示不再读取 `vec_p_default_data` ### T5: `ws_method` 去掉默认值 **文件**: `ws_method.cpp`, `ws_method.h` - `stru_ws_signal` 删除 `vec_p_default_data` - 删除所有默认值读写 ### T6: `iec61850m` 不再创建默认值 **文件**: `iec61850m.cpp` - 删除 `dc_create_data_ptr_by_type` 调用 + `p_default` 赋值 ### T7: `dc_param_cfg_check()` 不写 default 字段 **文件**: `dc_signal.cpp` - `self_param.xml` 只写 `value`,不写 `default` ## 验证 ```bash ./release/build.sh ```