diff --git a/DebugVarEdit.exe b/DebugVarEdit.exe index 6b17952..844e757 100644 Binary files a/DebugVarEdit.exe and b/DebugVarEdit.exe differ diff --git a/Src/pythonInstaller/python-3.13.3-amd64.exe b/Src/pythonInstaller/python-3.9.0-amd64.exe similarity index 72% rename from Src/pythonInstaller/python-3.13.3-amd64.exe rename to Src/pythonInstaller/python-3.9.0-amd64.exe index 6516d0a..f3b6667 100644 Binary files a/Src/pythonInstaller/python-3.13.3-amd64.exe and b/Src/pythonInstaller/python-3.9.0-amd64.exe differ diff --git a/Src/setupVars.py b/Src/setupVars.py index de5180f..6cff6ad 100644 --- a/Src/setupVars.py +++ b/Src/setupVars.py @@ -567,20 +567,53 @@ def split_vars_by_show_flag(expanded_vars): for child in var.get('children', []): nodes.extend(collect_selected_nodes(child)) return nodes + + def exists_by_path(tree, full_name): + """ + Проверяет, существует ли переменная в дереве, следуя по частям пути (например: project → adc → status). + Каждая часть ('project', 'project.adc', ...) должна иметь точное совпадение с 'name' в узле. + """ + path_parts = split_path(full_name) + full_names = build_full_names(path_parts, full_name) + + current_level = tree + for name in full_names: + found = False + for var in current_level: + if var.get('name') == name: + current_level = var.get('children', []) + found = True + break + if not found: + return False + return True selected_nodes = [] for var in expanded_vars: + full_name = var['name'] + # Проверка: если имя содержит вложенность, но целиком есть в корне — пропускаем + if ('.' in full_name or '[' in full_name or '->' in full_name): + path_parts = split_path(full_name) + if exists_by_path(expanded_vars, full_name): + # Удалим лишнюю копию из корня unselected_vars + find_and_remove(unselected_vars, full_name) + else: + add_to_nested_tree(unselected_vars, var, path_parts, source_tree=expanded_vars) + find_and_remove(unselected_vars, full_name) selected_nodes.extend(collect_selected_nodes(var)) for node in selected_nodes: - path_parts = split_path(node['name']) + full_name = node['name'] + + + path_parts = split_path(full_name) # Вырезать из unselected_vars - removed = find_and_remove(unselected_vars, node['name']) + removed = find_and_remove(unselected_vars, full_name) if removed: - add_to_nested_tree(selected_vars, removed, path_parts) + add_to_nested_tree(selected_vars, removed, path_parts, source_tree=expanded_vars) else: # вдруг удалённый родитель — создаём вручную - add_to_nested_tree(selected_vars, node, path_parts) + add_to_nested_tree(selected_vars, node, path_parts, source_tree=expanded_vars) - return selected_vars, unselected_vars + return selected_vars, unselected_vars \ No newline at end of file diff --git a/debug_vars.c b/debug_vars.c index bcb640c..5535f04 100644 --- a/debug_vars.c +++ b/debug_vars.c @@ -314,33 +314,24 @@ extern int zero_ADC[20]; // -int DebugVar_Qnt = 26; +int DebugVar_Qnt = 17; #pragma DATA_SECTION(dbg_vars,".dbgvar_info") DebugVar_t dbg_vars[] = {\ {(char *)&ADC0finishAddr, pt_int16, t_iq_none, t_iq_none, "ADC0finish" }, \ -{(char *)&ADC_f[0][11], pt_int32, t_iq_none, t_iq_none, "ADC_f[0][1" }, \ -{(char *)&ADC_f[0][12], pt_int16, t_iq_none, t_iq_none, "ADC_f[0][1" }, \ -{(char *)&ADC_f[0][13], pt_int32, t_iq_none, t_iq_none, "ADC_f[0][1" }, \ -{(char *)&ADC_f[0][14], pt_int16, t_iq_none, t_iq_none, "ADC_f[0][1" }, \ -{(char *)&ADC_f[0][15], pt_int16, t_iq_none, t_iq_none, "ADC_f[0][1" }, \ -{(char *)&ADC_f[1][0], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][0" }, \ -{(char *)&ADC_f[1][1], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&ADC_f[1][2], pt_int64, t_iq_none, t_iq_none, "ADC_f[1][2" }, \ -{(char *)&ADC_f[1][3], pt_int32, t_iq_none, t_iq_none, "ADC_f[1][3" }, \ -{(char *)&ADC_f[1][4], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][4" }, \ -{(char *)&ADC_f[1][5], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][5" }, \ -{(char *)&ADC_f[1][6], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][6" }, \ -{(char *)&ADC_f[1][7], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][7" }, \ -{(char *)&ADC_f[1][8], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][8" }, \ -{(char *)&ADC_f[1][9], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][9" }, \ -{(char *)&ADC_f[1][10], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&ADC_f[1][11], pt_int16, t_iq1, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&ADC_f[1][12], pt_int32, t_iq_none, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&ADC_f[1][13], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&ADC_f[1][14], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&ADC_f[1][15], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \ -{(char *)&project.cds_in[0].plane_address, pt_uint16, t_iq_none, t_iq_none, "project.cd" }, \ -{(char *)&Bender[0].KOhms, pt_uint16, t_iq_none, t_iq_none, "Bender[0]." }, \ -{(char *)&Bender[0].Times, pt_uint16, t_iq_none, t_iq_none, "Bender[0]." }, \ -{(char *)&Bender[0].Error.all, pt_uint16, t_iq_none, t_iq_none, "Bender[0]." }, \ +{(char *)&ADC_sf[0][0], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][1], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][2], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][3], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][4], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][5], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][6], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][7], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][8], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][9], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][10], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][11], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][12], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][13], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][14], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ +{(char *)&ADC_sf[0][15], pt_int16, t_iq_none, t_iq_none, "ADC_sf[0][" }, \ }; diff --git a/vars.xml b/vars.xml index 6090252..f5e81f1 100644 --- a/vars.xml +++ b/vars.xml @@ -1,5 +1,5 @@ - + true @@ -73,30 +73,6 @@ false false - - false - false - ADC_f - pt_arr_int16 - t_iq_none - int - int[2][16] - Src/main/adc_tools.c - false - false - - - false - false - ADC_sf - pt_arr_int16 - t_iq_none - int - int[2][16] - Src/main/adc_tools.c - false - false - false false @@ -1163,7 +1139,7 @@ char Src/myLibs/bender.c false - True + true false @@ -1175,7 +1151,7 @@ char Src/myLibs/bender.c false - True + true false @@ -1283,7 +1259,7 @@ unsigned int Src/myXilinx/x_serial_bus.c false - True + true false @@ -1319,7 +1295,7 @@ int Src/myLibs/message_modbus.c false - True + true false @@ -1343,7 +1319,7 @@ int Src/myLibs/message_modbus.c false - True + true false @@ -1367,7 +1343,7 @@ int Src/main/init_protect_levels.c false - True + true false @@ -1379,7 +1355,7 @@ int Src/main/init_protect_levels.c false - True + true false @@ -1391,7 +1367,7 @@ int Src/main/init_protect_levels.c false - True + true false @@ -1403,7 +1379,7 @@ int Src/main/init_protect_levels.c false - True + true false @@ -2039,7 +2015,7 @@ int Src/myLibs/bender.c false - True + true false @@ -2279,7 +2255,7 @@ int Src/myLibs/bender.c false - True + true false @@ -2375,7 +2351,7 @@ int Src/main/PWMTMSHandle.c false - True + true false @@ -2387,7 +2363,7 @@ int Src/main/PWMTMSHandle.c false - True + true false @@ -2531,7 +2507,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2543,7 +2519,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2555,7 +2531,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2567,7 +2543,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2579,7 +2555,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2591,7 +2567,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2603,7 +2579,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2615,7 +2591,7 @@ int Src/myLibs/modbus_read_table.c false - True + true false @@ -2869,18 +2845,6 @@ false false - - false - false - project - pt_struct - t_iq_none - int - T_project - Src/myXilinx/xp_project.c - false - false - false false @@ -3311,7 +3275,7 @@ unsigned int Src/main/main22220.c false - True + true false @@ -3323,7 +3287,7 @@ unsigned int Src/main/main22220.c false - True + true false @@ -3577,468 +3541,264 @@ false false - + + true + true + ADC_sf[0][0] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][1] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][2] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][3] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][4] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][5] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][6] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][7] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][8] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][9] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][10] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][11] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][12] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][13] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][14] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + + true + true + ADC_sf[0][15] + pt_int16 + t_iq_none + t_iq_none + int + Src/main/adc_tools.c + false + false + + false - true - ADC_f[0][0] - pt_int16 + false + ADC_f + pt_arr_int16 t_iq_none - t_iq_none - int + int + int[2][16] Src/main/adc_tools.c false false - + false - true - ADC_f[0][1] - pt_int16 + false + ADC_sf + pt_arr_int16 t_iq_none - t_iq_none - int + int + int[2][16] Src/main/adc_tools.c false false - + false - true - ADC_f[0][2] - pt_int16 + false + project + pt_struct t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][3] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][4] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][5] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][6] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][7] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][8] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][9] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - false - true - ADC_f[0][10] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[0][11] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[0][12] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[0][13] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[0][14] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[0][15] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][0] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][1] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][2] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][3] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][4] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][5] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][6] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][7] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][8] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][9] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][10] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][11] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][12] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][13] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][14] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - ADC_f[1][15] - pt_int16 - t_iq_none - t_iq_none - int - Src/main/adc_tools.c - false - false - - - true - true - project.cds_in[0].plane_address - pt_uint16 - t_iq_none - t_iq_none - UInt16 + int + T_project Src/myXilinx/xp_project.c false false - - true - true - Bender[0].KOhms - pt_uint16 - t_iq_none - t_iq_none - unsigned int - Src/myLibs/bender.c - false - false - - - true - true - Bender[0].Times - pt_uint16 - t_iq_none - t_iq_none - unsigned int - Src/myLibs/bender.c - false - false - - - true - true - Bender[0].Error.all - pt_uint16 - t_iq_none - t_iq_none - unsigned int - Src/myLibs/bender.c - false - false - - Src/main/v_pwm24.h - Src/main/f281xpwm.h Src/myXilinx/xp_project.h Src/myXilinx/RS_Functions_modbus.h - Src/VectorControl/pwm_vector_regul.h + Src/main/adc_tools.h Src/main/errors.h + Src/VectorControl/pwm_vector_regul.h + Src/main/vector.h + Src/main/f281xpwm.h + Src/myLibs/log_can.h + Src/main/v_pwm24.h + Src/myXilinx/xp_write_xpwm_time.h Src/main/rotation_speed.h Src/VectorControl/teta_calc.h - Src/main/vector.h - Src/main/adc_tools.h - Src/myLibs/log_can.h - Src/myXilinx/xp_write_xpwm_time.h Src/VectorControl/dq_to_alphabeta_cos.h - Src/myLibs/svgen_dq.h + Src/myXilinx/xp_controller.h Src/myXilinx/x_parallel_bus.h - Src/myXilinx/x_serial_bus.h Src/myXilinx/xPeriphSP6_loader.h Src/myXilinx/Spartan2E_Functions.h - Src/myXilinx/xp_controller.h + Src/myXilinx/x_serial_bus.h Src/myXilinx/xp_rotation_sensor.h Src/myXilinx/RS_Functions.h Src/myLibs/detect_phase_break2.h - Src/myLibs/pid_reg3.h - Src/myLibs/log_params.h - Src/myXilinx/CRC_Functions.h - Src/main/global_time.h - Src/myLibs/CAN_Setup.h Src/myLibs/log_to_memory.h + Src/myXilinx/CRC_Functions.h + Src/myLibs/CAN_Setup.h + Src/myLibs/log_params.h + Src/main/global_time.h + Src/myLibs/svgen_dq.h + Src/myLibs/pid_reg3.h Src/myLibs/IQmathLib.h Src/main/doors_control.h Src/main/isolation.h