переструктурирвоаны исходники проекта

This commit is contained in:
Razvalyaev 2025-07-15 13:31:18 +03:00
parent abfc507e4e
commit c32dc161f8
11 changed files with 43 additions and 43 deletions

Binary file not shown.

View File

@ -86,15 +86,15 @@
```bash
Src
├── DebugVarEdit_GUI.py # Главное окно
├── VariableTable.py # Таблица выбранных переменных
├── VariableSelector.py # Окно выбора переменных
├── selectTable.py # Таблица переменных в окне выбора переменных
├── scanVarGUI.py # Отображение процесса сканирования переменных
├── scanVar.py # Сканирование переменных среди .c/.h файлов
├── generateVars.py # Генерация debug_vars.c
├── var_table.py # Таблица выбранных переменных
├── var_selector_window.py # Окно выбора переменных
├── var_selector_table.py # Таблица переменных в окне выбора переменных
├── scan_progress_gui.py # Отображение процесса сканирования переменных
├── scan_vars.py # Сканирование переменных среди .c/.h файлов
├── generate_debug_vars.py # Генерация debug_vars.c
├── myXML.py # Утилиты для XML
├── parseMakefile.py # Парсинг makefile на .c/.h файлы
├── setupVars.py # Подготовка переменных для окна выбора переменных
├── makefile_parser.py # Парсинг makefile на .c/.h файлы
├── var_setup.py # Подготовка переменных для окна выбора переменных
├── libclang.dll # Бибилиотека clang
├── icon.ico # Иконка
build

View File

@ -1,19 +1,19 @@
# build command
# pyinstaller --onefile --name DebugVarEdit --add-binary "build/libclang.dll;build" --distpath ./ --workpath ./build_temp --specpath ./build_temp setupVars_GUI.py
# pyinstaller --onefile --name DebugVarEdit --add-binary "build/libclang.dll;build" --distpath ./ --workpath ./build_temp --specpath ./build_temp var_setup_GUI.py
import sys
import os
import subprocess
import lxml.etree as ET
from generateVars import type_map
from generate_debug_vars import type_map
from enum import IntEnum
import threading
from generateVars import run_generate
import setupVars
from VariableSelector import VariableSelectorDialog
from VariableTable import VariableTableWidget, rows
from scanVarGUI import ProcessOutputWindow
import scanVars
from generate_debug_vars import run_generate
import var_setup
from var_selector_window import var_selector_windowDialog
from var_table import var_tableWidget, rows
from scan_progress_gui import ProcessOutputWindow
import scan_vars
import myXML
import time
@ -63,7 +63,7 @@ class VarEditor(QWidget):
def initUI(self):
self.setWindowTitle(var_edit_title)
base_path = scanVars.get_base_path()
base_path = scan_vars.get_base_path()
icon_path = os.path.join(base_path, "icon.ico")
if os.path.exists(icon_path):
self.setWindowIcon(QIcon(icon_path))
@ -134,7 +134,7 @@ class VarEditor(QWidget):
btn_open_output = QPushButton(open_output_title)
btn_open_output.clicked.connect(self.__open_output_file_with_program)
# Таблица
self.table = VariableTableWidget()
self.table = var_tableWidget()
# Основной layout
layout = QVBoxLayout()
layout.addLayout(xml_layout)
@ -208,7 +208,7 @@ class VarEditor(QWidget):
# Создаём окно с кнопкой "Готово"
self.proc_win = ProcessOutputWindow(self.proj_path, self.makefile_path, self.xml_path,
on_done_callback=self.__after_scanvars_finished)
on_done_callback=self.__after_scan_vars_finished)
self.proc_win.start_scan()
@ -302,11 +302,11 @@ class VarEditor(QWidget):
structs_path_full = myXML.make_absolute_path(structs_path, self.proj_path)
if structs_path_full and os.path.isfile(structs_path_full):
self.structs_path = structs_path_full
self.structs, self.typedef_map = setupVars.parse_structs(structs_path_full)
self.structs, self.typedef_map = var_setup.parse_structs(structs_path_full)
else:
self.structs_path = None
self.vars_list = setupVars.parse_vars(self.xml_path, self.typedef_map)
self.vars_list = var_setup.parse_vars(self.xml_path, self.typedef_map)
self.table.populate(self.vars_list, self.structs, self.write_to_xml)
except Exception as e:
QMessageBox.warning(self, "Ошибка", f"Ошибка при чтении XML:\n{e}")
@ -404,7 +404,7 @@ class VarEditor(QWidget):
self.update()
def __after_scanvars_finished(self):
def __after_scan_vars_finished(self):
if not os.path.isfile(self.xml_path):
self.makefile_path = None
self.structs_path = None
@ -443,7 +443,7 @@ class VarEditor(QWidget):
QMessageBox.warning(self, "Нет переменных", f"Сначала загрузите переменные ({scan_title}).")
return
dlg = VariableSelectorDialog(self.table, self.vars_list, self.structs, self.typedef_map, self.xml_path, self)
dlg = var_selector_windowDialog(self.table, self.vars_list, self.structs, self.typedef_map, self.xml_path, self)
if dlg.exec_():
self.write_to_xml()
self.update()

View File

@ -1,7 +1,7 @@
# build command
# pyinstaller --onefile --distpath . --workpath ./build --specpath ./build generateVars.py
# pyinstaller --onefile --distpath . --workpath ./build --specpath ./build generate_debug_vars.py
# start script
# generateVars.exe F:\Work\Projects\TMS\TMS_new_bus\ Src/DebugTools/vars.xml Src/DebugTools
# generate_debug_vars.exe F:\Work\Projects\TMS\TMS_new_bus\ Src/DebugTools/vars.xml Src/DebugTools
import sys
import os

View File

@ -6,8 +6,8 @@ import sys
import contextlib
import io
import json
from scanVars import run_scan
from VariableTable import VariableTableWidget, rows
from scan_vars import run_scan
from var_table import var_tableWidget, rows
from PySide2.QtWidgets import (
QApplication, QWidget, QTableWidget, QTableWidgetItem,

View File

@ -1,7 +1,7 @@
# build command
# pyinstaller --onefile scanVars.py --add-binary "F:\Work\Projects\TMS\TMS_new_bus\Src\DebugTools/build/libclang.dll;." --distpath . --workpath ./build --specpath ./build
# pyinstaller --onefile scan_vars.py --add-binary "F:\Work\Projects\TMS\TMS_new_bus\Src\DebugTools/build/libclang.dll;." --distpath . --workpath ./build --specpath ./build
# start script
# scanVars.exe F:\Work\Projects\TMS\TMS_new_bus\ F:\Work\Projects\TMS\TMS_new_bus\Debug\makefile
# scan_vars.exe F:\Work\Projects\TMS\TMS_new_bus\ F:\Work\Projects\TMS\TMS_new_bus\Debug\makefile
import os
import sys
@ -11,7 +11,7 @@ from clang import cindex
from clang.cindex import Config
import lxml.etree as ET
from xml.dom import minidom
from parseMakefile import parse_makefile
from makefile_parser import parse_makefile
from collections import deque
import argparse
import myXML

View File

@ -6,16 +6,16 @@ from PySide2.QtWidgets import (
)
from PySide2.QtGui import QKeySequence, QKeyEvent
from PySide2.QtCore import Qt, QStringListModel, QSettings
import VariableTable
import setupVars
import var_table
import var_setup
import myXML
import time
import selectTable
import var_selector_table
array_re = re.compile(r'^(\w+)\[(\d+)\]$')
class VariableSelectorDialog(QDialog):
class var_selector_windowDialog(QDialog):
def __init__(self, table, all_vars, structs, typedefs, xml_path=None, parent=None):
super().__init__(parent)
self.setWindowTitle("Выбор переменных")
@ -55,10 +55,10 @@ class VariableSelectorDialog(QDialog):
self.btn_accept = QPushButton("Применить")
# Создаем экземпляр вашего готового виджета
self.vars_widget = selectTable.VariableSelectWidget(self)
self.vars_widget = var_selector_table.VariableSelectWidget(self)
self.vars_widget.tree.itemDoubleClicked.connect(self.on_left_tree_double_click)
self.vars_widget.setObjectName("LeftTable")
self.selected_vars_widget = selectTable.VariableSelectWidget(self)
self.selected_vars_widget = var_selector_table.VariableSelectWidget(self)
self.selected_vars_widget.tree.itemDoubleClicked.connect(self.on_rigth_tree_double_click)
self.selected_vars_widget.setObjectName("RightTable")
@ -107,7 +107,7 @@ class VariableSelectorDialog(QDialog):
self.selected_vars_widget.set_autocomplete(self.autocomplete_checkbox.isChecked())
# --- Код в конце __init__ ---
self.expanded_vars = setupVars.expand_vars(self.all_vars, self.structs, self.typedefs)
self.expanded_vars = var_setup.expand_vars(self.all_vars, self.structs, self.typedefs)
self.update_vars_widget()
def on_move_right(self):
@ -147,7 +147,7 @@ class VariableSelectorDialog(QDialog):
t_start = time.perf_counter()
t1 = time.perf_counter()
self.selected_vars, self.unselected_vars = setupVars.split_vars_by_show_flag(self.expanded_vars)
self.selected_vars, self.unselected_vars = var_setup.split_vars_by_show_flag(self.expanded_vars)
t2 = time.perf_counter()
self.vars_widget.set_data(self.unselected_vars)

View File

@ -2,9 +2,9 @@ import sys
import os
import re
import lxml.etree as ET
from generateVars import map_type_to_pt, get_iq_define, type_map
from generate_debug_vars import map_type_to_pt, get_iq_define, type_map
from enum import IntEnum
import scanVars
import scan_vars
import myXML
import pickle
@ -291,7 +291,7 @@ def expand_struct_recursively(prefix, type_str, structs, typedefs, var_attrs, de
return process_array(prefix, type_str, structs, typedefs, var_attrs, depth)
# Ищем структуру по имени типа
base_type = scanVars.strip_ptr_and_array(type_str)
base_type = scan_vars.strip_ptr_and_array(type_str)
fields = structs.get(base_type)
if not isinstance(fields, dict):
# Не структура и не массив — просто возвращаем пустой список

View File

@ -6,7 +6,7 @@ from PySide2.QtWidgets import (
from PySide2.QtGui import QColor, QBrush, QPalette
from PySide2.QtCore import Qt
from enum import IntEnum
from generateVars import type_map
from generate_debug_vars import type_map
import time
from typing import Dict, List
@ -61,7 +61,7 @@ class FilterDialog(QDialog):
class VariableTableWidget(QTableWidget):
class var_tableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(0, 8, parent)
# Таблица переменных