переструктурирвоаны исходники проекта
This commit is contained in:
		
							parent
							
								
									abfc507e4e
								
							
						
					
					
						commit
						c32dc161f8
					
				
							
								
								
									
										
											BIN
										
									
								
								DebugVarEdit.exe
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DebugVarEdit.exe
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
@ -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()
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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,
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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)
 | 
			
		||||
@ -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):
 | 
			
		||||
            # Не структура и не массив — просто возвращаем пустой список
 | 
			
		||||
@ -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)
 | 
			
		||||
        # Таблица переменных
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user