Files
menu/tool/menu_config.yaml
2025-12-22 16:51:27 +08:00

1794 lines
44 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 电磁启动器(电机保护型)菜单与参数配置文件(优化版)
# 适配场景:低压三相异步电机的启动、控制与综合保护
# 核心特性支持C代码自动生成、枚举复用、多语言、权限控制、硬件存储映射
config:
# 多语言配置
languages:
- code: en
name: English
alias: LANG_EN
- code: cn
name: Chinese
alias: LANG_CN
# 菜单全局属性
default_language: cn # 默认中文
menu_max_depth: 4 # 菜单最大嵌套深度
default_permission_level: 0 # 0-操作员1-管理员2-厂家
show_back_item: true # 显示返回项
show_home_item: true # 显示主页项
save_params_on_change: true # 参数修改后自动保存
param_apply_delay: 1000 # 参数生效延时ms
# C代码自动生成配置核心工程化配置
c_code_gen:
enable: true
output_dir: ../output
header_prefix: menu_
source_prefix: menu_
type_mapping:
FLOAT: float
INT: int
ENUM: uint8_t
STRING: char
param_storage:
type: struct
struct_name: MenuParams
array_name: g_menu_params
eeprom_base_addr: 0
function_naming:
prefix: menu_
enter_suffix: _enter
exit_suffix: _exit
action_suffix: _action
display_suffix: _display
visible_suffix: _visible
constant_defs:
header_file: menu_constants.h
enum_prefix: ENUM_
param_id_prefix: PARAM_
menu_id_prefix: MENU_
code_style:
indent: 4
braces: k&r
line_length: 120
comment_style: c99
features:
generate_param_accessors: true
generate_menu_navigation: true
generate_action_functions: true
generate_display_functions: true
generate_enum_definitions: true
generate_constant_defines: true
generate_init_function: true
generate_save_load_functions: true
generate_visible_callbacks: true
# 全局枚举模板支持C代码生成可复用
enum_templates:
- template_id: SWITCH_TEMPLATE
name:
en: Switch
cn: 开关
description:
en: Basic on/off switch template
cn: 基础开关模板
enum_options:
0:
alias: SWITCH_OFF
label:
en: 'Off'
cn: 关闭
value: 0
1:
alias: SWITCH_ON
label:
en: 'On'
cn: 开启
value: 1
c_code:
typedef_name: SwitchType
enum_name: SwitchEnum
header_file: menu_enums.h
c_comment: 基础开关枚举类型0=关闭1=开启)
use_typedef: true
generate_constants: true
- template_id: PROTECT_ENABLE_TEMPLATE
name:
en: Protection Enable
cn: 保护投退
description:
en: Protection enable/disable template
cn: 保护功能投退模板
enum_options:
0:
alias: PROT_DISABLE
label:
en: Disable
cn: 退出
value: 0
1:
alias: PROT_ENABLE
label:
en: Enable
cn: 投入
value: 1
c_code:
typedef_name: ProtectEnableType
enum_name: ProtectEnableEnum
header_file: menu_enums.h
c_comment: 保护功能投退枚举类型0=退出1=投入)
use_typedef: true
generate_constants: true
- template_id: START_MODE_TEMPLATE
name:
en: Start Mode
cn: 启动方式
description:
en: Motor start mode template
cn: 电机启动方式模板
enum_options:
0:
alias: START_DIRECT
label:
en: Direct Start
cn: 直接启动
value: 0
1:
alias: START_STAR_DELTA
label:
en: Star-Delta Start
cn: 星三角启动
value: 1
2:
alias: START_SOFT
label:
en: Soft Start
cn: 软启动
value: 2
c_code:
typedef_name: StartModeType
enum_name: StartModeEnum
header_file: menu_enums.h
c_comment: 电机启动方式枚举类型0=直接启动1=星三角启动2=软启动)
use_typedef: true
generate_constants: true
- template_id: OVERLOAD_CURVE_TEMPLATE
name:
en: Overload Curve
cn: 过载曲线
description:
en: Motor overload protection curve template
cn: 电机过载保护曲线模板
enum_options:
0:
alias: CURVE_10A
label:
en: 10A Curve (General)
cn: 10A曲线通用
value: 0
1:
alias: CURVE_20A
label:
en: 20A Curve (Motor)
cn: 20A曲线电机
value: 1
2:
alias: CURVE_30A
label:
en: 30A Curve (Heavy Load)
cn: 30A曲线重载
value: 2
c_code:
typedef_name: OverloadCurveType
enum_name: OverloadCurveEnum
header_file: menu_enums.h
c_comment: 电机过载保护曲线枚举类型0=10A通用1=20A电机2=30A重载
use_typedef: true
generate_constants: true
# 核心参数项电磁启动器实际参数含完整C代码配置
params:
# -------------------- 1. 电机基本参数 --------------------
- id: 1001
name:
en: "Motor Rated Voltage"
cn: "电机额定电压"
id_name: MOTOR_RATED_VOLT
type: FLOAT
variable_name: motor_rated_volt
default: 380.0
min: 220.0
max: 660.0
step: 10.0
unit: V
read_only: false
comm_addr: 4097
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 0
accessor_name: motor_rated_volt
init_value: 380.0
validation_func: validate_motor_rated_volt
validation_params:
min: 220.0
max: 660.0
format_string: '%.1f'
display_precision: 1
display_unit: V
storage_type: RAM
eeprom_offset: 0
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 1002
name:
en: "Motor Rated Current"
cn: "电机额定电流"
id_name: MOTOR_RATED_CURR
type: FLOAT
variable_name: motor_rated_curr
default: 10.0
min: 0.1
max: 100.0
step: 0.1
unit: A
read_only: false
comm_addr: 4098
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 1
accessor_name: motor_rated_curr
init_value: 10.0
validation_func: validate_motor_rated_curr
validation_params:
min: 0.1
max: 100.0
format_string: '%.1f'
display_precision: 1
display_unit: A
storage_type: RAM
eeprom_offset: 4
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 1003
name:
en: "Motor Rated Power"
cn: "电机额定功率"
id_name: MOTOR_RATED_POWER
type: FLOAT
variable_name: motor_rated_power
default: 5.5
min: 0.1
max: 55.0
step: 0.1
unit: kW
read_only: false
comm_addr: 4099
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 2
accessor_name: motor_rated_power
init_value: 5.5
validation_func: validate_motor_rated_power
validation_params:
min: 0.1
max: 55.0
format_string: '%.1f'
display_precision: 1
display_unit: kW
storage_type: RAM
eeprom_offset: 8
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 1004
name:
en: "Motor Pole Number"
cn: "电机极数"
id_name: MOTOR_POLE_NUM
type: INT
variable_name: motor_pole_num
default: 4
min: 2
max: 8
step: 2
unit:
read_only: false
comm_addr: 4100
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 3
accessor_name: motor_pole_num
init_value: 4
validation_func: validate_motor_pole_num
validation_params:
min: 2
max: 8
format_string: '%d'
display_precision: 0
display_unit:
storage_type: RAM
eeprom_offset: 12
bit_width: 16
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
# -------------------- 2. 保护功能参数 --------------------
- id: 2001
name:
en: "Overload Protection Enable"
cn: "过载保护投退"
id_name: PROT_OVERLOAD_ENABLE
type: ENUM
variable_name: prot_overload_enable
default: 1
default_alias: PROT_ENABLE
enum_template: PROTECT_ENABLE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8193
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 4
accessor_name: prot_overload_enable
init_value: 1
validation_func: validate_prot_overload_enable
validation_params:
min: 0 # 修正匹配枚举实际范围0=退出1=投入)
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 16
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2002
name:
en: "Overload Current Threshold"
cn: "过载电流阈值"
id_name: PROT_OVERLOAD_THRESH
type: FLOAT
variable_name: prot_overload_thresh
default: 1.2
min: 1.0
max: 2.0
step: 0.05
unit: Ie
read_only: false
comm_addr: 8194
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 5
accessor_name: prot_overload_thresh
init_value: 1.2
validation_func: validate_prot_overload_thresh
validation_params:
min: 1.0
max: 2.0
format_string: '%.1f'
display_precision: 1
display_unit: Ie
storage_type: RAM
eeprom_offset: 20
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2003
name:
en: "Overload Curve Type"
cn: "过载保护曲线"
id_name: PROT_OVERLOAD_CURVE
type: ENUM
variable_name: prot_overload_curve
default: 1
default_alias: CURVE_20A
enum_template: OVERLOAD_CURVE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8195
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 6
accessor_name: prot_overload_curve
init_value: 1
validation_func: validate_prot_overload_curve
validation_params:
min: 0 # 修正匹配枚举实际范围0-2
max: 2
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 24
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2004
name:
en: "Phase Loss Protection Enable"
cn: "缺相保护投退"
id_name: PROT_PHASE_LOSS_ENABLE
type: ENUM
variable_name: prot_phase_loss_enable
default: 1
default_alias: PROT_ENABLE
enum_template: PROTECT_ENABLE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8196
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 7
accessor_name: prot_phase_loss_enable
init_value: 1
validation_func: validate_prot_phase_loss_enable
validation_params:
min: 0 # 修正:匹配枚举实际范围
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 28
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2005
name:
en: "Phase Loss Delay Time"
cn: "缺相保护延时"
id_name: PROT_PHASE_LOSS_DELAY
type: FLOAT
variable_name: prot_phase_loss_delay
default: 0.5
min: 0.0
max: 5.0
step: 0.1
unit: s
read_only: false
comm_addr: 8197
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 8
accessor_name: prot_phase_loss_delay
init_value: 0.5
validation_func: validate_prot_phase_loss_delay
validation_params:
min: 0.0
max: 5.0
format_string: '%.1f'
display_precision: 1
display_unit: s
storage_type: RAM
eeprom_offset: 32
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2006
name:
en: "Lock Rotor Protection Enable"
cn: "堵转保护投退"
id_name: PROT_LOCK_ROTOR_ENABLE
type: ENUM
variable_name: prot_lock_rotor_enable
default: 1
default_alias: PROT_ENABLE
enum_template: PROTECT_ENABLE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8198
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 9
accessor_name: prot_lock_rotor_enable
init_value: 1
validation_func: validate_prot_lock_rotor_enable
validation_params:
min: 0 # 修正:匹配枚举实际范围
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 36
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2007
name:
en: "Lock Rotor Current Threshold"
cn: "堵转电流阈值"
id_name: PROT_LOCK_ROTOR_THRESH
type: FLOAT
variable_name: prot_lock_rotor_thresh
default: 5.0
min: 3.0
max: 10.0
step: 0.1
unit: Ie
read_only: false
comm_addr: 8199
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 10
accessor_name: prot_lock_rotor_thresh
init_value: 5.0
validation_func: validate_prot_lock_rotor_thresh
validation_params:
min: 3.0
max: 10.0
format_string: '%.1f'
display_precision: 1
display_unit: Ie
storage_type: RAM
eeprom_offset: 40
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2008
name:
en: "Phase Unbalance Protection Enable"
cn: "相不平衡保护投退"
id_name: PROT_PHASE_UNBALANCE_ENABLE
type: ENUM
variable_name: prot_phase_unbalance_enable
default: 1
default_alias: PROT_ENABLE
enum_template: PROTECT_ENABLE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8200
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 11
accessor_name: prot_phase_unbalance_enable
init_value: 1
validation_func: validate_prot_phase_unbalance_enable
validation_params:
min: 0 # 修正:匹配枚举实际范围
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 44
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2009
name:
en: "Phase Unbalance Threshold"
cn: "相不平衡阈值"
id_name: PROT_PHASE_UNBALANCE_THRESH
type: FLOAT
variable_name: prot_phase_unbalance_thresh
default: 20.0
min: 5.0
max: 50.0
step: 1.0
unit: '%'
read_only: false
comm_addr: 8201
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 12
accessor_name: prot_phase_unbalance_thresh
init_value: 20.0
validation_func: validate_prot_phase_unbalance_thresh
validation_params:
min: 5.0
max: 50.0
format_string: '%.1f'
display_precision: 1
display_unit: '%'
storage_type: RAM
eeprom_offset: 48
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2010
name:
en: "Under Voltage Protection Enable"
cn: "欠压保护投退"
id_name: PROT_UNDERVOLT_ENABLE
type: ENUM
variable_name: prot_undervolt_enable
default: 1
default_alias: PROT_ENABLE
enum_template: PROTECT_ENABLE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8208
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 13
accessor_name: prot_undervolt_enable
init_value: 1
validation_func: validate_prot_undervolt_enable
validation_params:
min: 0 # 修正:匹配枚举实际范围
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 52
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2011
name:
en: "Under Voltage Threshold"
cn: "欠压保护阈值"
id_name: PROT_UNDERVOLT_THRESH
type: FLOAT
variable_name: prot_undervolt_thresh
default: 85.0
min: 70.0
max: 90.0
step: 1.0
unit: '%Ue'
read_only: false
comm_addr: 8209
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 14
accessor_name: prot_undervolt_thresh
init_value: 85.0
validation_func: validate_prot_undervolt_thresh
validation_params:
min: 70.0
max: 90.0
format_string: '%.1f'
display_precision: 1
display_unit: '%Ue'
storage_type: RAM
eeprom_offset: 56
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2012
name:
en: "Over Voltage Protection Enable"
cn: "过压保护投退"
id_name: PROT_OVERVOLT_ENABLE
type: ENUM
variable_name: prot_overvolt_enable
default: 1
default_alias: PROT_ENABLE
enum_template: PROTECT_ENABLE_TEMPLATE
unit: ''
read_only: false
comm_addr: 8210
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 15
accessor_name: prot_overvolt_enable
init_value: 1
validation_func: validate_prot_overvolt_enable
validation_params:
min: 0 # 修正:匹配枚举实际范围
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 60
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 2013
name:
en: "Over Voltage Threshold"
cn: "过压保护阈值"
id_name: PROT_OVERVOLT_THRESH
type: FLOAT
variable_name: prot_overvolt_thresh
default: 110.0
min: 105.0
max: 120.0
step: 1.0
unit: '%Ue'
read_only: false
comm_addr: 8211
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 16
accessor_name: prot_overvolt_thresh
init_value: 110.0
validation_func: validate_prot_overvolt_thresh
validation_params:
min: 105.0
max: 120.0
format_string: '%.1f'
display_precision: 1
display_unit: '%Ue'
storage_type: RAM
eeprom_offset: 64
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
# -------------------- 3. 控制功能参数 --------------------
- id: 3001
name:
en: "Start Mode"
cn: "启动方式"
id_name: CONTROL_START_MODE
type: ENUM
variable_name: control_start_mode
default: 0
default_alias: START_DIRECT
enum_template: START_MODE_TEMPLATE
unit: ''
read_only: false
comm_addr: 12289
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 17
accessor_name: control_start_mode
init_value: 0
validation_func: validate_control_start_mode
validation_params:
min: 0 # 修正匹配枚举实际范围0-2
max: 2
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 68
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 3002
name:
en: "Star-Delta Switch Delay"
cn: "星三角切换延时"
id_name: CONTROL_STAR_DELTA_DELAY
type: FLOAT
variable_name: control_star_delta_delay
default: 5.0
min: 1.0
max: 30.0
step: 0.1
unit: s
read_only: false
comm_addr: 12290
comm_rw: 1
permission_level: 1
visible_cb: check_star_delta_mode
c_code:
struct_member: true
array_index: 18
accessor_name: control_star_delta_delay
init_value: 5.0
validation_func: validate_control_star_delta_delay
validation_params:
min: 1.0
max: 30.0
format_string: '%.1f'
display_precision: 1
display_unit: s
storage_type: RAM
eeprom_offset: 72
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 3003
name:
en: "Soft Start Time"
cn: "软启动时间"
id_name: CONTROL_SOFT_START_TIME
type: FLOAT
variable_name: control_soft_start_time
default: 10.0
min: 1.0
max: 60.0
step: 1.0
unit: s
read_only: false
comm_addr: 12291
comm_rw: 1
permission_level: 1
visible_cb: check_soft_start_mode
c_code:
struct_member: true
array_index: 19
accessor_name: control_soft_start_time
init_value: 10.0
validation_func: validate_control_soft_start_time
validation_params:
min: 1.0
max: 60.0
format_string: '%.1f'
display_precision: 1
display_unit: s
storage_type: RAM
eeprom_offset: 76
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 3004
name:
en: "Stop Delay Time"
cn: "停止延时时间"
id_name: CONTROL_STOP_DELAY
type: FLOAT
variable_name: control_stop_delay
default: 0.0
min: 0.0
max: 60.0
step: 0.1
unit: s
read_only: false
comm_addr: 12292
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 20
accessor_name: control_stop_delay
init_value: 0.0
validation_func: validate_control_stop_delay
validation_params:
min: 0.0
max: 60.0
format_string: '%.1f'
display_precision: 1
display_unit: s
storage_type: RAM
eeprom_offset: 80
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 3005
name:
en: "Remote Control Enable"
cn: "远程控制投退"
id_name: CONTROL_REMOTE_ENABLE
type: ENUM
variable_name: control_remote_enable
default: 0
default_alias: SWITCH_OFF
enum_template: SWITCH_TEMPLATE
unit: ''
read_only: false
comm_addr: 12293
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 21
accessor_name: control_remote_enable
init_value: 0
validation_func: validate_control_remote_enable
validation_params:
min: 0 # 修正匹配枚举实际范围0=关闭1=开启)
max: 1
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 84
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
# -------------------- 4. 系统配置参数 --------------------
- id: 4001
name:
en: "Communication Address"
cn: "通讯地址"
id_name: SYS_COMM_ADDR
type: INT
variable_name: sys_comm_addr
default: 1
min: 1
max: 247
step: 1
unit: ''
read_only: false
comm_addr: 16385
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 22
accessor_name: sys_comm_addr
init_value: 1
validation_func: validate_sys_comm_addr
validation_params:
min: 1
max: 247
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 88
bit_width: 16
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 4002
name:
en: "Baud Rate"
cn: "波特率"
id_name: SYS_BAUDRATE
type: ENUM
variable_name: sys_baudrate
default: 9600
default_alias: BAUD_9600
enum_options:
2400:
alias: BAUD_2400
label:
en: 2400 bps
cn: 2400 波特
value: 2400
4800:
alias: BAUD_4800
label:
en: 4800 bps
cn: 4800 波特
value: 4800
9600:
alias: BAUD_9600
label:
en: 9600 bps
cn: 9600 波特
value: 9600
19200:
alias: BAUD_19200
label:
en: 19200 bps
cn: 19200 波特
value: 19200
unit: bps
read_only: false
comm_addr: 16386
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 23
accessor_name: sys_baudrate
init_value: 9600
validation_func: validate_sys_baudrate
validation_params:
min: 2400 # 修正:匹配波特率实际范围
max: 19200
format_string: '%d'
display_precision: 0
display_unit: bps
storage_type: RAM
eeprom_offset: 92
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
# 新增波特率枚举C代码配置
typedef_name: BaudRateType
enum_name: BaudRateEnum
header_file: menu_enums.h
c_comment: 通讯波特率枚举类型
use_typedef: true
generate_constants: true
- id: 4003
name:
en: "Admin Password"
cn: "管理员密码"
id_name: SYS_ADMIN_PWD
type: INT
variable_name: sys_admin_pwd
default: 123456
min: 0
max: 999999
step: 1
unit: ''
read_only: false
comm_addr: 16387
comm_rw: 1
permission_level: 2
c_code:
struct_member: true
array_index: 24
accessor_name: sys_admin_pwd
init_value: 123456
validation_func: validate_sys_admin_pwd
validation_params:
min: 0
max: 999999
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 96
bit_width: 16
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
- id: 4004
name:
en: "System Time"
cn: "系统时间"
id_name: SYS_TIME
type: STRING
variable_name: sys_time
default: '2025-01-01 00:00:00'
unit: ''
read_only: false
comm_addr: 16388
comm_rw: 1
permission_level: 1
c_code:
struct_member: true
array_index: 25
accessor_name: sys_time
init_value: '2025-01-01 00:00:00'
validation_func: validate_sys_time
validation_params:
min: 0
max: 1000
format_string: '%s'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 100
bit_width: 8
string_length: 20 # 新增:字符串长度(适配"YYYY-MM-DD HH:MM:SS"格式)
scaling_factor: 1.0
generate_getter: true
generate_setter: true
generate_validator: true
# -------------------- 5. 状态采集参数(只读) --------------------
- id: 5001
name:
en: "Phase Current A"
cn: "A相电流"
id_name: STATUS_CURR_A
type: FLOAT
variable_name: status_curr_a
unit: A
read_only: true
comm_addr: 20481
comm_rw: 0
c_code:
struct_member: true
array_index: 26
accessor_name: status_curr_a
init_value: 0.0
validation_func: validate_status_curr_a
validation_params:
min: 0.0
max: 200.0 # 修正:合理的电流测量范围
format_string: '%.1f'
display_precision: 1
display_unit: A
storage_type: RAM
eeprom_offset: 104
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: false # 修正只读参数不生成setter
generate_validator: true
- id: 5002
name:
en: "Phase Current B"
cn: "B相电流"
id_name: STATUS_CURR_B
type: FLOAT
variable_name: status_curr_b
unit: A
read_only: true
comm_addr: 20482
comm_rw: 0
c_code:
struct_member: true
array_index: 27
accessor_name: status_curr_b
init_value: 0.0
validation_func: validate_status_curr_b
validation_params:
min: 0.0
max: 200.0
format_string: '%.1f'
display_precision: 1
display_unit: A
storage_type: RAM
eeprom_offset: 108
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: false # 修正只读参数不生成setter
generate_validator: true
- id: 5003
name:
en: "Phase Current C"
cn: "C相电流"
id_name: STATUS_CURR_C
type: FLOAT
variable_name: status_curr_c
unit: A
read_only: true
comm_addr: 20483
comm_rw: 0
c_code:
struct_member: true
array_index: 28
accessor_name: status_curr_c
init_value: 0.0
validation_func: validate_status_curr_c
validation_params:
min: 0.0
max: 200.0
format_string: '%.1f'
display_precision: 1
display_unit: A
storage_type: RAM
eeprom_offset: 112
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: false # 修正只读参数不生成setter
generate_validator: true
- id: 5004
name:
en: "Line Voltage AB"
cn: "AB线电压"
id_name: STATUS_VOLT_AB
type: FLOAT
variable_name: status_volt_ab
unit: V
read_only: true
comm_addr: 20484
comm_rw: 0
c_code:
struct_member: true
array_index: 29
accessor_name: status_volt_ab
init_value: 0.0
validation_func: validate_status_volt_ab
validation_params:
min: 0.0
max: 800.0 # 修正:合理的电压测量范围
format_string: '%.1f'
display_precision: 1
display_unit: V
storage_type: RAM
eeprom_offset: 116
bit_width: 32
scaling_factor: 1.0
generate_getter: true
generate_setter: false # 修正只读参数不生成setter
generate_validator: true
- id: 5005
name:
en: "Motor Running Status"
cn: "电机运行状态"
id_name: STATUS_MOTOR_RUN
type: ENUM
variable_name: status_motor_run
default: 0
default_alias: STATUS_STOP
enum_options:
0:
alias: STATUS_STOP
label:
en: Stop
cn: 停止
value: 0
1:
alias: STATUS_RUN
label:
en: Run
cn: 运行
value: 1
2:
alias: STATUS_FAULT
label:
en: Fault
cn: 故障
value: 2
unit: ''
read_only: true
comm_addr: 20485
comm_rw: 0
c_code:
struct_member: true
array_index: 30
accessor_name: status_motor_run
init_value: 0
validation_func: validate_status_motor_run
validation_params:
min: 0 # 修正匹配枚举实际范围0-2
max: 2
format_string: '%d'
display_precision: 0
display_unit: ''
storage_type: RAM
eeprom_offset: 120
bit_width: 8
scaling_factor: 1.0
generate_getter: true
generate_setter: false # 修正只读参数不生成setter
generate_validator: true
# 新增电机状态枚举C代码配置
typedef_name: MotorStatusType
enum_name: MotorStatusEnum
header_file: menu_enums.h
c_comment: 电机运行状态枚举类型0=停止1=运行2=故障)
use_typedef: true
generate_constants: true
# 菜单层级结构语义化类型适配C代码生成
nodes:
- id: 1
parent_id: 0
name:
en: "Main Menu"
cn: "主菜单"
id_name: MAIN_MENU
enter_cb: menu_enter_main
c_code:
struct_member: true
menu_item_type: MAIN_MENU # 语义化:主菜单
function_name: menu_enter_main
header_file: menu_nodes.h
# -------------------- 一级菜单:实时数据 --------------------
- id: 10
parent_id: 1
name:
en: "Real-Time Data"
cn: "实时数据"
id_name: MENU_REAL_TIME_DATA
enter_cb: menu_enter_real_time_data
c_code:
struct_member: true
menu_item_type: SUB_MENU # 语义化:子菜单
function_name: menu_enter_real_time_data
header_file: menu_nodes.h
- id: 1001
parent_id: 10
name:
en: "Current Data"
cn: "电流数据"
id_name: MENU_CURRENT_DATA
display_cb: show_phase_current
c_code:
struct_member: true
menu_item_type: DISPLAY_ITEM # 语义化:显示项(无编辑)
function_name: show_phase_current
header_file: menu_nodes.h
- id: 1002
parent_id: 10
name:
en: "Voltage Data"
cn: "电压数据"
id_name: MENU_VOLTAGE_DATA
display_cb: show_line_voltage
c_code:
struct_member: true
menu_item_type: DISPLAY_ITEM
function_name: show_line_voltage
header_file: menu_nodes.h
- id: 1003
parent_id: 10
name:
en: "Motor Status"
cn: "电机状态"
id_name: MENU_MOTOR_STATUS
display_cb: show_motor_status
c_code:
struct_member: true
menu_item_type: DISPLAY_ITEM
function_name: show_motor_status
header_file: menu_nodes.h
# -------------------- 一级菜单:参数设置 --------------------
- id: 20
parent_id: 1
name:
en: "Parameter Settings"
cn: "参数设置"
id_name: MENU_PARAM_SETTINGS
enter_cb: menu_enter_param_settings
permission_level: 1
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_param_settings
header_file: menu_nodes.h
- id: 2001
parent_id: 20
name:
en: "Motor Basic Params"
cn: "电机基本参数"
id_name: MENU_MOTOR_BASIC_PARAMS
enter_cb: menu_enter_motor_basic_params
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_motor_basic_params
header_file: menu_nodes.h
- id: 200101
parent_id: 2001
name:
en: "Motor Rated Voltage"
cn: "电机额定电压"
id_name: MENU_MOTOR_RATED_VOLT
bind_param_id: 1001
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM # 语义化:参数编辑项
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 200102
parent_id: 2001
name:
en: "Motor Rated Current"
cn: "电机额定电流"
id_name: MENU_MOTOR_RATED_CURR
bind_param_id: 1002
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 200103
parent_id: 2001
name:
en: "Motor Rated Power"
cn: "电机额定功率"
id_name: MENU_MOTOR_RATED_POWER
bind_param_id: 1003
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 2002
parent_id: 20
name:
en: "Protection Params"
cn: "保护功能参数"
id_name: MENU_PROTECTION_PARAMS
enter_cb: menu_enter_protection_params
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_protection_params
header_file: menu_nodes.h
- id: 200201
parent_id: 2002
name:
en: "Overload Protection"
cn: "过载保护"
id_name: MENU_OVERLOAD_PROT
enter_cb: menu_enter_overload_prot
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_overload_prot
header_file: menu_nodes.h
- id: 20020101
parent_id: 200201
name:
en: "Overload Protect Enable"
cn: "过载保护投退"
id_name: MENU_OVERLOAD_PROT_ENABLE
bind_param_id: 2001
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 20020102
parent_id: 200201
name:
en: "Overload Current Threshold"
cn: "过载电流阈值"
id_name: MENU_OVERLOAD_PROT_THRESH
bind_param_id: 2002
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 200202
parent_id: 2002
name:
en: "Phase Loss Protection"
cn: "缺相保护"
id_name: MENU_PHASE_LOSS_PROT
enter_cb: menu_enter_phase_loss_prot
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_phase_loss_prot
header_file: menu_nodes.h
- id: 2003
parent_id: 20
name:
en: "Control Function Params"
cn: "控制功能参数"
id_name: MENU_CONTROL_PARAMS
enter_cb: menu_enter_control_params
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_control_params
header_file: menu_nodes.h
- id: 200301
parent_id: 2003
name:
en: "Start Mode"
cn: "启动方式"
id_name: MENU_START_MODE
bind_param_id: 3001
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 200302
parent_id: 2003
name:
en: "Star-Delta Switch Delay"
cn: "星三角切换延时"
id_name: MENU_STAR_DELTA_DELAY
bind_param_id: 3002
enter_cb: menu_enter_param_edit
visible_cb: check_star_delta_mode
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 2004
parent_id: 20
name:
en: "System Config Params"
cn: "系统配置参数"
id_name: MENU_SYSTEM_PARAMS
enter_cb: menu_enter_system_params
permission_level: 1
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_system_params
header_file: menu_nodes.h
# -------------------- 一级菜单:保护投退 --------------------
- id: 30
parent_id: 1
name:
en: "Protection Enable/Disable"
cn: "保护投退"
id_name: MENU_PROTECT_ENABLE
enter_cb: menu_enter_protect_enable
permission_level: 1
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_protect_enable
header_file: menu_nodes.h
- id: 3001
parent_id: 30
name:
en: "Overload Protect Enable"
cn: "过载保护投退"
id_name: MENU_OVERLOAD_PROT_ENABLE
bind_param_id: 2001
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
- id: 3002
parent_id: 30
name:
en: "Phase Loss Protect Enable"
cn: "缺相保护投退"
id_name: MENU_PHASE_LOSS_PROT_ENABLE
bind_param_id: 2004
enter_cb: menu_enter_param_edit
c_code:
struct_member: true
menu_item_type: PARAM_EDIT_ITEM
function_name: menu_enter_param_edit
header_file: menu_nodes.h
# -------------------- 一级菜单:控制操作 --------------------
- id: 40
parent_id: 1
name:
en: "Control Operation"
cn: "控制操作"
id_name: MENU_CONTROL_OP
enter_cb: menu_enter_control_op
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_control_op
header_file: menu_nodes.h
- id: 4001
parent_id: 40
name:
en: "Motor Start"
cn: "电机启动"
id_name: MENU_MOTOR_START
action_cb: action_motor_start
confirm_required: true
visible_cb: check_motor_stop
c_code:
struct_member: true
menu_item_type: ACTION_ITEM # 语义化:操作项(执行动作)
function_name: action_motor_start
header_file: menu_nodes.h
- id: 4002
parent_id: 40
name:
en: "Motor Stop"
cn: "电机停止"
id_name: MENU_MOTOR_STOP
action_cb: action_motor_stop
confirm_required: true
visible_cb: check_motor_run
c_code:
struct_member: true
menu_item_type: ACTION_ITEM
function_name: action_motor_stop
header_file: menu_nodes.h
- id: 4003
parent_id: 40
name:
en: "Fault Reset"
cn: "故障复位"
id_name: MENU_FAULT_RESET
action_cb: action_fault_reset
confirm_required: true
visible_cb: check_motor_fault
c_code:
struct_member: true
menu_item_type: ACTION_ITEM
function_name: action_fault_reset
header_file: menu_nodes.h
# -------------------- 一级菜单:故障记录 --------------------
- id: 50
parent_id: 1
name:
en: "Fault Record"
cn: "故障记录"
id_name: MENU_FAULT_RECORD
enter_cb: menu_enter_fault_record
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_fault_record
header_file: menu_nodes.h
- id: 5001
parent_id: 50
name:
en: "Current Fault"
cn: "当前故障"
id_name: MENU_CURRENT_FAULT
display_cb: show_current_fault
c_code:
struct_member: true
menu_item_type: DISPLAY_ITEM
function_name: show_current_fault
header_file: menu_nodes.h
- id: 5002
parent_id: 50
name:
en: "History Fault"
cn: "历史故障"
id_name: MENU_HISTORY_FAULT
enter_cb: menu_enter_history_fault
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_history_fault
header_file: menu_nodes.h
- id: 5003
parent_id: 50
name:
en: "Clear History Fault"
cn: "清除历史故障"
id_name: MENU_CLEAR_HISTORY_FAULT
action_cb: action_clear_history_fault
confirm_required: true
permission_level: 1
c_code:
struct_member: true
menu_item_type: ACTION_ITEM
function_name: action_clear_history_fault
header_file: menu_nodes.h
# -------------------- 一级菜单:系统信息 --------------------
- id: 60
parent_id: 1
name:
en: "System Info"
cn: "系统信息"
id_name: MENU_SYSTEM_INFO
enter_cb: menu_enter_system_info
c_code:
struct_member: true
menu_item_type: SUB_MENU
function_name: menu_enter_system_info
header_file: menu_nodes.h
- id: 6001
parent_id: 60
name:
en: "Device Version"
cn: "设备版本"
id_name: MENU_DEVICE_VERSION
display_cb: show_device_version
c_code:
struct_member: true
menu_item_type: DISPLAY_ITEM
function_name: show_device_version
header_file: menu_nodes.h
- id: 6002
parent_id: 60
name:
en: "Run Time"
cn: "运行时间"
id_name: MENU_RUN_TIME
display_cb: show_run_time
c_code:
struct_member: true
menu_item_type: DISPLAY_ITEM
function_name: show_run_time
header_file: menu_nodes.h