кууучу всего сделано

базово разделены gui файлы и обработки xml
базово работает, надо дорабатывать и тестить
This commit is contained in:
2025-07-08 17:48:56 +03:00
parent 2e9592ffbb
commit 0ba81a5147
13 changed files with 3309 additions and 1820 deletions

168
VariableSelector.py Normal file
View File

@@ -0,0 +1,168 @@
import re
from PySide6.QtWidgets import (
QDialog, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QPushButton,
QLineEdit, QLabel, QHeaderView
)
from PySide6.QtCore import Qt
from setupVars import *
from scanVars import *
array_re = re.compile(r'^(\w+)\[(\d+)\]$')
class VariableSelectorDialog(QDialog):
def __init__(self, all_vars, structs, typedefs, parent=None):
super().__init__(parent)
self.setWindowTitle("Выбор переменных")
self.resize(600, 500)
self.selected_names = []
self.all_vars = all_vars
self.structs = structs
self.typedefs = typedefs
self.expanded_vars = []
self.var_map = {v['name']: v for v in all_vars}
self.search_input = QLineEdit()
self.search_input.setPlaceholderText("Поиск по имени переменной...")
self.search_input.textChanged.connect(self.filter_tree)
self.tree = QTreeWidget()
self.tree.setHeaderLabels(["Имя переменной", "Тип"])
self.tree.setSelectionMode(QTreeWidget.ExtendedSelection)
self.tree.setRootIsDecorated(False) # без иконки "вложенность"
self.tree.setUniformRowHeights(True)
# --- Автоматическая ширина колонок
self.tree.setStyleSheet("""
QTreeWidget::item:selected {
background-color: #87CEFA;
color: black;
}
QTreeWidget::item:hover {
background-color: #D3D3D3;
}
""")
self.btn_add = QPushButton("Добавить выбранные")
self.btn_add.clicked.connect(self.on_add_clicked)
layout = QVBoxLayout()
layout.addWidget(QLabel("Поиск:"))
layout.addWidget(self.search_input)
layout.addWidget(self.tree)
layout.addWidget(self.btn_add)
self.setLayout(layout)
self.populate_tree()
def add_tree_item_recursively(self, parent, var):
"""
Рекурсивно добавляет переменную и её дочерние поля в дерево.
Если parent == None, добавляет на верхний уровень.
"""
name = var['name']
type_str = var.get('type', '')
show_var = var.get('show_var', 'false') == 'true'
item = QTreeWidgetItem([name, type_str])
item.setData(0, Qt.UserRole, name)
for i, attr in enumerate(['file', 'extern', 'static']):
item.setData(0, Qt.UserRole + 1 + i, var.get(attr))
if show_var:
item.setForeground(0, Qt.gray)
item.setForeground(1, Qt.gray)
item.setToolTip(0, "Уже добавлена")
item.setToolTip(1, "Уже добавлена")
if parent is None:
self.tree.addTopLevelItem(item)
else:
parent.addChild(item)
for child in var.get('children', []):
self.add_tree_item_recursively(item, child)
def populate_tree(self):
self.tree.clear()
expanded_vars = expand_vars(self.all_vars, self.structs, self.typedefs)
for var in expanded_vars:
self.add_tree_item_recursively(None, var)
header = self.tree.header()
header.setSectionResizeMode(0, QHeaderView.Stretch)
header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
def filter_tree(self):
text = self.search_input.text().strip().lower()
def match_recursive(item):
matched = False
for i in range(item.childCount()):
child = item.child(i)
if match_recursive(child):
matched = True
# Проверяем текущий элемент
name = item.text(0).lower()
typ = item.text(1).lower()
if text in name or text in typ:
matched = True
item.setHidden(not matched)
# Открываем только те элементы, у которых есть совпадение в потомках или в себе
item.setExpanded(matched)
return matched
for i in range(self.tree.topLevelItemCount()):
match_recursive(self.tree.topLevelItem(i))
def on_add_clicked(self):
self.selected_names = []
for item in self.tree.selectedItems():
name = item.text(0) # имя переменной (в колонке 1)
type_str = item.text(1) # тип переменной (в колонке 2)
if not name or not type_str:
continue
self.selected_names.append((name, type_str))
if name in self.var_map:
# Если переменная уже есть, просто включаем её и показываем
var = self.var_map[name]
var['show_var'] = 'true'
var['enable'] = 'true'
else:
# Создаём новый элемент переменной
# Получаем родительские параметры
file_val = item.data(0, Qt.UserRole + 1)
extern_val = item.data(0, Qt.UserRole + 2)
static_val = item.data(0, Qt.UserRole + 3)
new_var = {
'name': name,
'type': type_str,
'show_var': 'true',
'enable': 'true',
'shortname': name,
'pt_type': '',
'iq_type': '',
'return_type': 'iq_none',
'file': file_val,
'extern': str(extern_val).lower() if extern_val else 'false',
'static': str(static_val).lower() if static_val else 'false',
}
# Добавляем в список переменных
self.all_vars.append(new_var)
self.var_map[name] = new_var # Чтобы в будущем не добавлялось повторно
self.accept()

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,35 +1,35 @@
// Ýòîò ôàéë ñãåíåðèðîâàí àâòîìàòè÷åñêè // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#include "debug_tools.h" #include "debug_tools.h"
// Èíêëþäû äëÿ äîñòóïà ê ïåðåìåííûì // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#include "RS_Functions_modbus.h"
#include "xp_project.h" #include "xp_project.h"
#include "v_pwm24.h" #include "RS_Functions_modbus.h"
#include "adc_tools.h"
#include "vector.h" #include "vector.h"
#include "errors.h" #include "errors.h"
#include "f281xpwm.h" #include "adc_tools.h"
#include "pwm_vector_regul.h" #include "pwm_vector_regul.h"
#include "log_can.h"
#include "xp_write_xpwm_time.h" #include "xp_write_xpwm_time.h"
#include "log_can.h"
#include "f281xpwm.h"
#include "v_pwm24.h"
#include "rotation_speed.h" #include "rotation_speed.h"
#include "teta_calc.h" #include "teta_calc.h"
#include "dq_to_alphabeta_cos.h" #include "dq_to_alphabeta_cos.h"
#include "RS_Functions.h"
#include "x_parallel_bus.h"
#include "x_serial_bus.h"
#include "xp_rotation_sensor.h"
#include "xp_controller.h" #include "xp_controller.h"
#include "Spartan2E_Functions.h" #include "x_parallel_bus.h"
#include "xp_rotation_sensor.h"
#include "xPeriphSP6_loader.h" #include "xPeriphSP6_loader.h"
#include "svgen_dq.h" #include "Spartan2E_Functions.h"
#include "x_serial_bus.h"
#include "RS_Functions.h"
#include "detect_phase_break2.h" #include "detect_phase_break2.h"
#include "log_to_memory.h"
#include "log_params.h" #include "log_params.h"
#include "global_time.h" #include "global_time.h"
#include "CAN_Setup.h" #include "CAN_Setup.h"
#include "CRC_Functions.h" #include "CRC_Functions.h"
#include "log_to_memory.h" #include "svgen_dq.h"
#include "pid_reg3.h" #include "pid_reg3.h"
#include "IQmathLib.h" #include "IQmathLib.h"
#include "doors_control.h" #include "doors_control.h"
@@ -44,7 +44,7 @@
#include "rmp_cntl_my1.h" #include "rmp_cntl_my1.h"
// Ýêñòåðíû äëÿ äîñòóïà ê ïåðåìåííûì // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern int ADC0finishAddr; extern int ADC0finishAddr;
extern int ADC0startAddr; extern int ADC0startAddr;
extern int ADC1finishAddr; extern int ADC1finishAddr;
@@ -313,16 +313,9 @@ extern _iq zadan_Id_min;
extern int zero_ADC[20]; extern int zero_ADC[20];
// Îïðåäåëåíèå ìàññèâà ñ óêàçàòåëÿìè íà ïåðåìåííûå äëÿ îòëàäêè // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int DebugVar_Qnt = 8; int DebugVar_Qnt = 1;
#pragma DATA_SECTION(dbg_vars,".dbgvar_info") #pragma DATA_SECTION(dbg_vars,".dbgvar_info")
DebugVar_t dbg_vars[] = {\ DebugVar_t dbg_vars[] = {\
{(char *)&ADC0finishAddr , pt_int16 , t_iq_none , "ADC0finishAddr" }, \ {(char *)&project.cds_tk.plane_address , pt_uint16 , t_iq_none , "project.cds_tk.plane_address" }, \
{(char *)&ADC0startAddr , pt_int16 , t_iq_none , "ADC0startAddr" }, \
{(char *)&ADC1finishAddr , pt_int16 , t_iq_none , "ADC1finishAddr" }, \
{(char *)&ADC1startAddr , pt_int16 , t_iq_none , "ADC1startAddr" }, \
{(char *)&ADC2finishAddr , pt_int16 , t_iq_none , "ADC2finishAddr" }, \
{(char *)&ADC2startAddr , pt_int16 , t_iq_none , "ADC2startAddr" }, \
{(char *)&ADC_f , pt_int16 , t_iq_none , "ADC_f" }, \
{(char *)&ADC_sf , pt_int16 , t_iq_none , "ADC_sf" }, \
}; };

View File

@@ -216,23 +216,36 @@ def generate_vars_file(proj_path, xml_path, output_dir):
existing_debug_vars[varname] = line.strip() existing_debug_vars[varname] = line.strip()
new_debug_vars = {} new_debug_vars = {}
def is_true(val):
# Преобразуем значение к строке, если оно не None
# и сравниваем с 'true' в нижнем регистре
return str(val).lower() == 'true'
for vname, info in vars.items(): for vname, info in vars.items():
# Проверяем, что show_var и enable включены (строки как строки 'true')
if not is_true(info.get('show_var', 'false')):
continue
if not is_true(info.get('enable', 'false')):
continue
vtype = info["type"] vtype = info["type"]
is_extern = info["extern"] is_extern = info["extern"]
is_static = info.get("static", False) is_static = info.get("static", False)
if is_static: if is_static:
continue # пропускаем static переменные continue # пропускаем static переменные
# Можно добавить проверку enable — если есть и False, пропускаем переменную
if "enable" in info and info["enable"] is False:
continue
path = info["file"] path = info["file"]
if vname in existing_debug_vars: if vname in existing_debug_vars:
continue continue
iq_type = info.get('iq_type')
if not iq_type:
iq_type = get_iq_define(vtype) iq_type = get_iq_define(vtype)
pt_type = info.get('pt_type')
if not pt_type:
pt_type = map_type_to_pt(vtype, vname) pt_type = map_type_to_pt(vtype, vname)
# Дополнительные поля, например комментарий # Дополнительные поля, например комментарий
@@ -372,3 +385,28 @@ Usage example:
if __name__ == "__main__": if __name__ == "__main__":
main() main()
def run_generate(proj_path, xml_path, output_dir):
import os
# Normalize absolute paths
proj_path = os.path.abspath(proj_path)
xml_path_abs = os.path.abspath(xml_path)
output_dir_abs = os.path.abspath(output_dir)
# Проверка валидности путей
if not os.path.isdir(proj_path):
raise FileNotFoundError(f"Project path '{proj_path}' is not a directory or does not exist.")
if not xml_path_abs.startswith(proj_path + os.sep):
raise ValueError(f"XML path '{xml_path_abs}' is not inside the project path '{proj_path}'.")
if not output_dir_abs.startswith(proj_path + os.sep):
raise ValueError(f"Output directory '{output_dir_abs}' is not inside the project path '{proj_path}'.")
# Преобразуем к относительным путям относительно проекта
xml_path_rel = os.path.relpath(xml_path_abs, proj_path)
output_dir_rel = os.path.relpath(output_dir_abs, proj_path)
# Запускаем генерацию
generate_vars_file(proj_path, xml_path_rel, output_dir_rel)

View File

@@ -23,7 +23,7 @@ if hasattr(sys, '_MEIPASS'):
dll_path = os.path.join(sys._MEIPASS, "libclang.dll") dll_path = os.path.join(sys._MEIPASS, "libclang.dll")
cindex.Config.set_library_file(dll_path) cindex.Config.set_library_file(dll_path)
else: else:
cindex.Config.set_library_file(r"..\libclang.dll") # путь для запуска без упаковки cindex.Config.set_library_file(r"build\libclang.dll") # путь для запуска без упаковки
index = cindex.Index.create() index = cindex.Index.create()
PRINT_LEVEL = 2 PRINT_LEVEL = 2
@@ -229,18 +229,8 @@ def resolve_typedef(typedefs, typename):
current = typedefs[current] current = typedefs[current]
return current return current
def analyze_typedefs_and_struct(typedefs, structs):
optional_printf(PRINT_STATUS, "Resolving typedefs and expanding struct field types...")
def simplify_type_name(typename): def strip_ptr_and_array(typename):
# Убираем ключевые слова типа "struct ", "union ", "enum " для поиска в typedefs и structs
if isinstance(typename, str):
for prefix in ("struct ", "union ", "enum "):
if typename.startswith(prefix):
return typename[len(prefix):]
return typename
def strip_ptr_and_array(typename):
""" """
Убирает указатели и массивные скобки из типа, Убирает указатели и массивные скобки из типа,
чтобы найти базовый тип (например, для typedef или struct). чтобы найти базовый тип (например, для typedef или struct).
@@ -256,6 +246,16 @@ def analyze_typedefs_and_struct(typedefs, structs):
return typename return typename
def analyze_typedefs_and_struct(typedefs, structs):
optional_printf(PRINT_STATUS, "Resolving typedefs and expanding struct field types...")
def simplify_type_name(typename):
# Убираем ключевые слова типа "struct ", "union ", "enum " для поиска в typedefs и structs
if isinstance(typename, str):
for prefix in ("struct ", "union ", "enum "):
if typename.startswith(prefix):
return typename[len(prefix):]
return typename
def resolve_typedef_rec(typename, depth=0): def resolve_typedef_rec(typename, depth=0):
if depth > 50: if depth > 50:
@@ -458,6 +458,31 @@ def analyze_typedefs_and_structs_across_files(c_files, include_dirs):
return resolved_typedefs, resolved_structs return resolved_typedefs, resolved_structs
def safe_parse_xml(xml_path):
"""
Безопасно парсит XML-файл.
Возвращает кортеж (root, tree) или (None, None) при ошибках.
"""
if not xml_path or not os.path.isfile(xml_path):
print(f"Файл '{xml_path}' не найден или путь пустой")
return None, None
try:
if os.path.getsize(xml_path) == 0:
return None, None
tree = ET.parse(xml_path)
root = tree.getroot()
return root, tree
except ET.ParseError as e:
print(f"Ошибка парсинга XML файла '{xml_path}': {e}")
return None, None
except Exception as e:
print(f"Неожиданная ошибка при чтении XML файла '{xml_path}': {e}")
return None, None
def read_vars_from_xml(xml_path): def read_vars_from_xml(xml_path):
xml_full_path = os.path.normpath(xml_path) xml_full_path = os.path.normpath(xml_path)
vars_data = {} vars_data = {}
@@ -465,8 +490,9 @@ def read_vars_from_xml(xml_path):
if not os.path.exists(xml_full_path): if not os.path.exists(xml_full_path):
return vars_data # пусто, если файла нет return vars_data # пусто, если файла нет
tree = ET.parse(xml_full_path) root, tree = safe_parse_xml(xml_full_path)
root = tree.getroot() if root is None:
return vars_data
vars_elem = root.find('variables') vars_elem = root.find('variables')
if vars_elem is None: if vars_elem is None:
@@ -477,28 +503,20 @@ def read_vars_from_xml(xml_path):
if not name: if not name:
continue continue
enable_text = var_elem.findtext('enable', 'false').lower() def get_bool(tag, default='false'):
enable = (enable_text == 'true') return var_elem.findtext(tag, default).lower() == 'true'
shortname = var_elem.findtext('shortname', name)
pt_type = var_elem.findtext('pt_type', '')
iq_type = var_elem.findtext('iq_type', '')
return_type = var_elem.findtext('return_type', 'int')
include_text = var_elem.findtext('include', 'false').lower()
include = (include_text == 'true')
extern_text = var_elem.findtext('extern', 'false').lower()
extern = (extern_text == 'true')
vars_data[name] = { vars_data[name] = {
'enable': enable, 'show_var': get_bool('show_var'),
'shortname': shortname, 'enable': get_bool('enable'),
'pt_type': pt_type, 'shortname': var_elem.findtext('shortname', name),
'iq_type': iq_type, 'pt_type': var_elem.findtext('pt_type', ''),
'return_type': return_type, 'iq_type': var_elem.findtext('iq_type', ''),
'include': include, 'return_type': var_elem.findtext('return_type', 'int'),
'extern': extern, 'type': var_elem.findtext('type', 'unknown'),
'file': var_elem.findtext('file', ''),
'extern': get_bool('extern'),
'static': get_bool('static'),
} }
return vars_data return vars_data
@@ -532,6 +550,7 @@ def generate_xml_output(proj_path, xml_path, unique_vars, h_files_needed, vars_n
for name, info in unique_vars.items(): for name, info in unique_vars.items():
if name not in combined_vars: if name not in combined_vars:
combined_vars[name] = { combined_vars[name] = {
'show_var': info.get('enable', False),
'enable': info.get('enable', False), 'enable': info.get('enable', False),
'shortname': info.get('shortname', name), 'shortname': info.get('shortname', name),
'pt_type': info.get('pt_type', ''), 'pt_type': info.get('pt_type', ''),
@@ -550,6 +569,7 @@ def generate_xml_output(proj_path, xml_path, unique_vars, h_files_needed, vars_n
# Записываем переменные с новыми полями # Записываем переменные с новыми полями
for name, info in combined_vars.items(): for name, info in combined_vars.items():
var_elem = ET.SubElement(vars_elem, "var", name=name) var_elem = ET.SubElement(vars_elem, "var", name=name)
ET.SubElement(var_elem, "show_var").text = str(info.get('show_var', False)).lower()
ET.SubElement(var_elem, "enable").text = str(info.get('enable', False)).lower() ET.SubElement(var_elem, "enable").text = str(info.get('enable', False)).lower()
ET.SubElement(var_elem, "shortname").text = info.get('shortname', name) ET.SubElement(var_elem, "shortname").text = info.get('shortname', name)
ET.SubElement(var_elem, "pt_type").text = info.get('pt_type', '') ET.SubElement(var_elem, "pt_type").text = info.get('pt_type', '')
@@ -802,14 +822,12 @@ Usage example:
externs = dict(sorted(externs.items())) externs = dict(sorted(externs.items()))
typedefs = dict(sorted(typedefs.items())) typedefs = dict(sorted(typedefs.items()))
structs = dict(sorted(structs.items())) structs = dict(sorted(structs.items()))
print('create structs')
# Определяем путь к файлу с структурами рядом с output_xml # Определяем путь к файлу с структурами рядом с output_xml
structs_xml = os.path.join(os.path.dirname(output_xml), "structs.xml") structs_xml = os.path.join(os.path.dirname(output_xml), "structs.xml")
# Записываем структуры в structs_xml # Записываем структуры в structs_xml
write_typedefs_and_structs_to_xml(proj_path, structs_xml, typedefs, structs) write_typedefs_and_structs_to_xml(proj_path, structs_xml, typedefs, structs)
print('create vars')
# Передаем путь к structs.xml относительно proj_path в vars.xml # Передаем путь к structs.xml относительно proj_path в vars.xml
# Модифицируем generate_xml_output так, чтобы принимать и путь к structs.xml (относительный) # Модифицируем generate_xml_output так, чтобы принимать и путь к structs.xml (относительный)
generate_xml_output(proj_path, output_xml, vars, includes, externs, structs_xml, makefile_path) generate_xml_output(proj_path, output_xml, vars, includes, externs, structs_xml, makefile_path)
@@ -818,3 +836,39 @@ Usage example:
if __name__ == "__main__": if __name__ == "__main__":
main() main()
def run_scan(proj_path, makefile_path, output_xml, verbose=2):
global PRINT_LEVEL
PRINT_LEVEL = verbose
proj_path = os.path.normpath(proj_path)
makefile_path = os.path.normpath(makefile_path)
output_xml = os.path.normpath(output_xml)
# Проверка абсолютности путей
for path, name in [(proj_path, "Project path"), (makefile_path, "Makefile path"), (output_xml, "Output XML path")]:
if not os.path.isabs(path):
raise ValueError(f"{name} '{path}' is not an absolute path.")
if not os.path.isdir(proj_path):
raise FileNotFoundError(f"Project path '{proj_path}' is not a directory or does not exist.")
if not os.path.isfile(makefile_path):
raise FileNotFoundError(f"Makefile path '{makefile_path}' does not exist.")
c_files, h_files, include_dirs = parse_makefile(makefile_path)
vars, includes, externs = analyze_variables_across_files(c_files, h_files, include_dirs)
typedefs, structs = analyze_typedefs_and_structs_across_files(c_files, include_dirs)
vars = dict(sorted(vars.items()))
includes = get_sorted_headers(c_files, includes, include_dirs)
externs = dict(sorted(externs.items()))
typedefs = dict(sorted(typedefs.items()))
structs = dict(sorted(structs.items()))
print("[XML] Creating structs.xml...")
structs_xml = os.path.join(os.path.dirname(output_xml), "structs.xml")
write_typedefs_and_structs_to_xml(proj_path, structs_xml, typedefs, structs)
print("[XML] Creating vars.xml...")
generate_xml_output(proj_path, output_xml, vars, includes, externs, structs_xml, makefile_path)

View File

@@ -1,50 +1,78 @@
import sys import sys
import os import os
import subprocess import re
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
from generateVars import map_type_to_pt, get_iq_define, type_map from generateVars import map_type_to_pt, get_iq_define, type_map
from enum import IntEnum from enum import IntEnum
from scanVars import *
from generateVars import *
from PySide6.QtWidgets import (
QApplication, QWidget, QTableWidget, QTableWidgetItem,
QCheckBox, QComboBox, QLineEdit, QVBoxLayout, QHBoxLayout, QPushButton,
QCompleter, QAbstractItemView, QLabel, QMessageBox, QFileDialog, QTextEdit
)
from PySide6.QtGui import QTextCursor
from PySide6.QtCore import Qt, QProcess
class rows(IntEnum):
include = 0
name = 1
type = 2
pt_type = 3
iq_type = 4
ret_type = 5
short_name = 6
# 1. Парсим vars.xml
def make_absolute_path(path, base_path): def make_absolute_path(path, base_path):
if not os.path.isabs(path): if not os.path.isabs(path) and os.path.isdir(base_path):
try:
return os.path.abspath(os.path.join(base_path, path)) return os.path.abspath(os.path.join(base_path, path))
except Exception:
pass # На случай сбоя в os.path.join или abspath
elif os.path.isabs(path):
return os.path.abspath(path) return os.path.abspath(path)
else:
return path
def parse_vars(filename):
tree = ET.parse(filename) def make_relative_path(abs_path, base_path):
root = tree.getroot() abs_path = os.path.abspath(abs_path)
base_path = os.path.abspath(base_path)
# Разбиваем на списки директорий
abs_parts = abs_path.split(os.sep)
base_parts = base_path.split(os.sep)
# Проверяем, является ли base_path настоящим префиксом пути (по папкам)
if abs_parts[:len(base_parts)] == base_parts:
rel_parts = abs_parts[len(base_parts):]
return "/".join(rel_parts)
# Иначе пробуем relpath
try:
return os.path.relpath(abs_path, base_path).replace("\\", "/")
except Exception:
return abs_path.replace("\\", "/")
def parse_vars(filename, typedef_map=None):
root, tree = safe_parse_xml(filename)
if root is None:
return []
if typedef_map is None:
typedef_map = {}
vars_list = [] vars_list = []
variables_elem = root.find('variables') variables_elem = root.find('variables')
if variables_elem is not None: if variables_elem is not None:
for var in variables_elem.findall('var'): for var in variables_elem.findall('var'):
name = var.attrib.get('name', '') name = var.attrib.get('name', '')
var_type = var.findtext('type', 'unknown').strip()
# Вычисляем pt_type и iq_type
pt_type = var.findtext('pt_type')
if not pt_type:
pt_type = map_type_to_pt(var_type, name, typedef_map)
iq_type = var.findtext('iq_type')
if not iq_type:
iq_type = get_iq_define(var_type)
vars_list.append({ vars_list.append({
'name': name, 'name': name,
'show_var': var.findtext('show_var', 'false'),
'enable': var.findtext('enable', 'false'), 'enable': var.findtext('enable', 'false'),
'shortname': var.findtext('shortname', name), 'shortname': var.findtext('shortname', name),
'pt_type': var.findtext('pt_type', 'pt_unknown'), 'pt_type': pt_type,
'iq_type': var.findtext('iq_type', 'iq_none'), 'iq_type': iq_type,
'return_type': var.findtext('return_type', 'int'), 'return_type': var.findtext('return_type', 'int'),
'type': var.findtext('type', 'unknown'), 'type': var_type,
'file': var.findtext('file', ''), 'file': var.findtext('file', ''),
'extern': var.findtext('extern', 'false') == 'true', 'extern': var.findtext('extern', 'false') == 'true',
'static': var.findtext('static', 'false') == 'true', 'static': var.findtext('static', 'false') == 'true',
@@ -52,31 +80,50 @@ def parse_vars(filename):
return vars_list return vars_list
# 2. Парсим structSup.xml # 2. Парсим structSup.xml
def parse_structs(filename): def parse_structs(filename):
tree = ET.parse(filename) root, tree = safe_parse_xml(filename)
root = tree.getroot() if root is None:
return {}, {}
structs = {} structs = {}
typedef_map = {} typedef_map = {}
# --- Считываем структуры --- def parse_struct_element(elem):
structs_elem = root.find('structs')
if structs_elem is not None:
for struct in structs_elem.findall('struct'):
name = struct.attrib['name']
fields = {} fields = {}
for field in struct.findall('field'):
fname = field.attrib.get('name') for field in elem.findall("field"):
ftype = field.attrib.get('type') fname = field.attrib.get("name")
if fname and ftype: ftype = field.attrib.get("type", "")
# Проверка на вложенную структуру
nested_struct_elem = field.find("struct")
if nested_struct_elem is not None:
# Рекурсивно парсим вложенную структуру и вставляем её как подсловарь
nested_fields = parse_struct_element(nested_struct_elem)
fields[fname] = nested_fields
else:
# Обычное поле
fields[fname] = ftype fields[fname] = ftype
return fields
structs_elem = root.find("structs")
if structs_elem is not None:
for struct in structs_elem.findall("struct"):
name = struct.attrib.get("name")
if name and name not in structs:
fields = parse_struct_element(struct)
structs[name] = fields structs[name] = fields
# --- Считываем typedef-ы --- # typedefs без изменений
typedefs_elem = root.find('typedefs') typedefs_elem = root.find("typedefs")
if typedefs_elem is not None: if typedefs_elem is not None:
for typedef in typedefs_elem.findall('typedef'): for typedef in typedefs_elem.findall("typedef"):
name = typedef.attrib.get('name') name = typedef.attrib.get('name')
target_type = typedef.attrib.get('type') target_type = typedef.attrib.get('type')
if name and target_type: if name and target_type:
@@ -85,486 +132,95 @@ def parse_structs(filename):
return structs, typedef_map return structs, typedef_map
def safe_parse_xml(xml_path):
"""
Безопасно парсит XML-файл.
class ProcessOutputWindow(QWidget): Возвращает кортеж (root, tree) или (None, None) при ошибках.
def __init__(self, command, args): """
super().__init__()
self.setWindowTitle("Поиск переменных...")
self.resize(600, 400)
self.layout = QVBoxLayout(self)
self.output_edit = QTextEdit()
self.output_edit.setReadOnly(True)
self.layout.addWidget(self.output_edit)
self.btn_close = QPushButton("Закрыть")
self.btn_close.setEnabled(False)
self.btn_close.clicked.connect(self.close)
self.layout.addWidget(self.btn_close)
self.process = QProcess(self)
self.process.setProcessChannelMode(QProcess.MergedChannels)
self.process.readyReadStandardOutput.connect(self.handle_stdout)
self.process.finished.connect(self.process_finished)
self.process.start(command, args)
def handle_stdout(self):
data = self.process.readAllStandardOutput()
text = data.data().decode('utf-8')
self.output_edit.append(text)
def process_finished(self):
self.output_edit.append("\n--- Процесс завершён ---")
self.btn_close.setEnabled(True)
# 3. UI: таблица с переменными
class VarEditor(QWidget):
def __init__(self):
super().__init__()
self.vars_list = []
self.structs = {}
self.typedef_map = {}
self.structs_xml_path = None # сюда запишем путь из <structs_xml>
self.initUI()
def initUI(self):
self.setWindowTitle("Variable Editor")
# --- Поля ввода пути проекта и XML ---
# XML Output
xml_layout = QHBoxLayout()
xml_layout.addWidget(QLabel("XML Output:"))
self.xml_output_edit = QLineEdit()
xml_layout.addWidget(self.xml_output_edit)
self.xml_output_edit.returnPressed.connect(self.read_xml_file)
btn_xml_browse = QPushButton("...")
btn_xml_browse.setFixedWidth(30)
xml_layout.addWidget(btn_xml_browse)
btn_xml_browse.clicked.connect(self.browse_xml_output)
# Project Path
proj_layout = QHBoxLayout()
proj_layout.addWidget(QLabel("Project Path:"))
self.proj_path_edit = QLineEdit()
proj_layout.addWidget(self.proj_path_edit)
btn_proj_browse = QPushButton("...")
btn_proj_browse.setFixedWidth(30)
proj_layout.addWidget(btn_proj_browse)
btn_proj_browse.clicked.connect(self.browse_proj_path)
# Makefile Path
makefile_layout = QHBoxLayout()
makefile_layout.addWidget(QLabel("Makefile Path (relative path):"))
self.makefile_edit = QLineEdit()
makefile_layout.addWidget(self.makefile_edit)
btn_makefile_browse = QPushButton("...")
btn_makefile_browse.setFixedWidth(30)
makefile_layout.addWidget(btn_makefile_browse)
btn_makefile_browse.clicked.connect(self.browse_makefile)
# Source Output File/Directory
source_output_layout = QHBoxLayout()
source_output_layout.addWidget(QLabel("Source Output File:"))
self.source_output_edit = QLineEdit()
source_output_layout.addWidget(self.source_output_edit)
btn_source_output_browse = QPushButton("...")
btn_source_output_browse.setFixedWidth(30)
source_output_layout.addWidget(btn_source_output_browse)
btn_source_output_browse.clicked.connect(self.browse_source_output)
self.btn_update_vars = QPushButton("Обновить данные о переменных")
self.btn_update_vars.clicked.connect(self.update_vars_data)
# Таблица переменных
self.table = QTableWidget(len(self.vars_list), 7)
self.table.setHorizontalHeaderLabels([
'Include',
'Name',
'Origin Type',
'Pointer Type',
'IQ Type',
'Return Type',
'Short Name'
])
self.table.setEditTriggers(QAbstractItemView.AllEditTriggers)
# Кнопка сохранения
btn_save = QPushButton("Build")
btn_save.clicked.connect(self.save_build)
# Основной layout
layout = QVBoxLayout()
layout.addLayout(xml_layout)
layout.addLayout(proj_layout)
layout.addLayout(makefile_layout)
layout.addWidget(self.btn_update_vars)
layout.addWidget(self.table)
layout.addWidget(btn_save)
layout.addLayout(source_output_layout)
self.setLayout(layout)
def update_vars_data(self):
proj_path = self.proj_path_edit.text().strip()
xml_path = self.xml_output_edit.text().strip()
proj_path = os.path.abspath(self.proj_path_edit.text().strip())
makefile_path = make_absolute_path(self.makefile_edit.text().strip(), proj_path)
if not proj_path or not xml_path:
QMessageBox.warning(self, "Ошибка", "Пожалуйста, укажите пути проекта и XML.")
return
if not os.path.isfile(makefile_path):
QMessageBox.warning(self, "Ошибка", f"Makefile не найден по пути:\n{makefile_path}")
return
scanvars_exe = "scanVars.exe"
args = [proj_path, makefile_path, xml_path]
# Создаем и показываем окно с выводом процесса
self.proc_win = ProcessOutputWindow(scanvars_exe, args)
self.proc_win.show()
# Можно подписаться на сигнал завершения процесса, если хочешь обновить UI после
self.proc_win.process.finished.connect(lambda exitCode, exitStatus: self.after_scanvars_finished(exitCode, exitStatus))
def save_build(self):
vars_out = []
for row in range(self.table.rowCount()):
include_cb = self.table.cellWidget(row, rows.include)
if not include_cb.isChecked():
continue
name_edit = self.table.cellWidget(row, rows.name)
pt_type_combo = self.table.cellWidget(row, rows.pt_type)
iq_combo = self.table.cellWidget(row, rows.iq_type)
ret_combo = self.table.cellWidget(row, rows.ret_type)
short_name_edit = self.table.cellWidget(row, rows.short_name)
var_data = {
'name': name_edit.text(),
'type': 'pt_' + pt_type_combo.currentText(),
'iq_type': iq_combo.currentText(),
'return_type': ret_combo.currentText() if ret_combo.currentText() else 'int',
'short_name': short_name_edit.text(),
}
vars_out.append(var_data)
# Здесь нужно указать абсолютные пути к проекту, xml и output (замени на свои)
proj_path = self.proj_path_edit.text().strip()
xml_path = self.xml_output_edit.text().strip()
output_dir_c_file = self.source_output_edit.text().strip()
# Путь к твоему exe, например
exe_path = r"generateVars.exe"
# Формируем список аргументов
cmd = [exe_path, proj_path, xml_path, output_dir_c_file]
try:
# Запускаем exe и ждём завершения
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
except subprocess.CalledProcessError as e:
print("Error calling script:", e)
print("stderr:", e.stderr)
def browse_proj_path(self):
dir_path = QFileDialog.getExistingDirectory(self, "Выберите папку проекта")
if dir_path:
self.proj_path_edit.setText(dir_path)
def read_xml_file(self):
file_path = self.xml_output_edit.text().strip()
if file_path and not os.path.isfile(file_path):
return
self.vars_list = parse_vars(file_path)
try:
tree = ET.parse(file_path)
root = tree.getroot()
proj_path = self.proj_path_edit.text().strip()
if not proj_path:
# Если в поле ничего нет, пробуем взять из XML
proj_path_from_xml = root.attrib.get('proj_path', '').strip()
if proj_path_from_xml and os.path.isdir(proj_path_from_xml):
proj_path = proj_path_from_xml
self.proj_path_edit.setText(proj_path_from_xml)
else:
QMessageBox.warning(
self,
"Внимание",
"Путь к проекту (proj_path) не найден или не существует.\n"
"Пожалуйста, укажите его вручную в поле 'Project Path'."
)
else:
if not os.path.isdir(proj_path):
QMessageBox.warning(
self,
"Внимание",
f"Указанный путь к проекту не существует:\n{proj_path}\n"
"Пожалуйста, исправьте путь в поле 'Project Path'."
)
# --- makefile_path из атрибута ---
makefile_path = root.attrib.get('makefile_path', '').strip()
makefile_path_full = make_absolute_path(makefile_path, proj_path)
if makefile_path_full and os.path.isfile(makefile_path_full):
self.makefile_edit.setText(makefile_path)
# --- structs_path из атрибута ---
structs_path = root.attrib.get('structs_path', '').strip()
structs_path_full = make_absolute_path(structs_path, proj_path)
if structs_path_full and os.path.isfile(structs_path_full):
self.structs_xml_path = structs_path_full
self.structs, self.typedef_map = parse_structs(structs_path_full)
else:
self.structs_xml_path = None
self.update_table()
except Exception as e:
QMessageBox.warning(self, "Ошибка", f"Ошибка при чтении XML:\n{e}")
def browse_xml_output(self):
file_path, _ = QFileDialog.getSaveFileName(
self,
"Выберите XML файл",
filter="XML files (*.xml);;All Files (*)"
)
self.xml_output_edit.setText(file_path)
self.read_xml_file()
def browse_xml_struct(self):
file_path, _ = QFileDialog.getSaveFileName(self, "Выберите XML файл", filter="XML files (*.xml);;All Files (*)")
if file_path:
self.xml_output_edit.setText(file_path)
if os.path.isfile(file_path):
self.structs, self.typedef_map = parse_structs(file_path)
def browse_makefile(self):
file_path, _ = QFileDialog.getOpenFileName(
self, "Выберите Makefile", filter="Makefile (makefile);;All Files (*)"
)
if file_path:
self.makefile_edit.setText(file_path)
def browse_source_output(self):
dir_path = QFileDialog.getExistingDirectory(self, "Выберите папку для debug_vars.c")
if dir_path:
self.source_output_edit.setText(dir_path)
def after_scanvars_finished(self, exitCode, exitStatus):
xml_path = self.xml_output_edit.text().strip()
if not os.path.isfile(xml_path):
QMessageBox.critical(self, "Ошибка", f"Файл не найден: {xml_path}")
return
try:
# Читаем структуры, если задан путь
if self.structs_xml_path and os.path.isfile(self.structs_xml_path):
try:
self.structs, self.typedef_map = parse_structs(self.structs_xml_path)
# При необходимости обновите UI или сделайте что-то с self.structs
except Exception as e:
QMessageBox.warning(self, "Внимание", f"Не удалось загрузить структуры из {self.structs_xml_path}:\n{e}")
self.vars_list = parse_vars(xml_path)
self.update_table()
except Exception as e:
QMessageBox.critical(self, "Ошибка", f"Не удалось загрузить переменные:\n{e}")
def update_table(self):
self.type_options = list(dict.fromkeys(type_map.values()))
self.display_type_options = [t.replace('pt_', '') for t in self.type_options]
iq_types = ['iq_none', 'iq'] + [f'iq{i}' for i in range(1, 31)]
self.table.setRowCount(len(self.vars_list))
for row, var in enumerate(self.vars_list):
cb = QCheckBox()
enable_str = var.get('enable', 'false')
cb.setChecked(enable_str.lower() == 'true')
self.table.setCellWidget(row, rows.include, cb)
name_edit = QLineEdit(var['name'])
if var['type'] in self.structs:
completer = QCompleter(self.structs[var['type']].keys())
completer.setCaseSensitivity(Qt.CaseInsensitive)
name_edit.setCompleter(completer)
self.table.setCellWidget(row, rows.name, name_edit)
# Type (origin)
origin_type = var.get('type', '').strip()
origin_item = QTableWidgetItem(origin_type)
origin_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) # read-only
self.table.setItem(row, rows.type, origin_item)
pt_type_combo = QComboBox()
pt_type_combo.addItems(self.display_type_options)
internal_type = map_type_to_pt(var['type'], var['name'], self.typedef_map)
display_type = internal_type.replace('pt_', '')
if display_type in self.display_type_options:
pt_type_combo.setCurrentText(display_type)
else:
pt_type_combo.addItem(display_type)
pt_type_combo.setCurrentText(display_type)
self.table.setCellWidget(row, rows.pt_type, pt_type_combo)
iq_combo = QComboBox()
iq_combo.addItems(iq_types)
iq_type = get_iq_define(var['type']) # Получаем IQ-тип, например 'iq24'
display_type = iq_type.replace('t_', '')
if iq_type in iq_types:
iq_combo.setCurrentText(display_type)
else:
iq_combo.addItem(display_type)
iq_combo.setCurrentText(display_type)
self.table.setCellWidget(row, rows.iq_type, iq_combo)
ret_combo = QComboBox()
ret_combo.addItems(iq_types)
self.table.setCellWidget(row, rows.ret_type, ret_combo)
short_name_edit = QLineEdit(var['name'])
self.table.setCellWidget(row, rows.short_name, short_name_edit)
cb.stateChanged.connect(self.save_table_to_xml)
name_edit.textChanged.connect(self.save_table_to_xml)
pt_type_combo.currentTextChanged.connect(self.save_table_to_xml)
iq_combo.currentTextChanged.connect(self.save_table_to_xml)
ret_combo.currentTextChanged.connect(self.save_table_to_xml)
short_name_edit.textChanged.connect(self.save_table_to_xml)
def save_table_to_xml(self):
def make_relative_path(abs_path, base_path):
try:
return os.path.relpath(abs_path, base_path).replace("\\", "/")
except ValueError:
return abs_path.replace("\\", "/")
xml_path = self.xml_output_edit.text().strip()
proj_path = self.proj_path_edit.text().strip()
makefile_path = self.makefile_edit.text().strip()
if not xml_path or not os.path.isfile(xml_path): if not xml_path or not os.path.isfile(xml_path):
print("XML файл не найден или путь пустой") #print(f"Файл '{xml_path}' не найден или путь пустой")
return return None, None
try: try:
if os.path.getsize(xml_path) == 0:
return None, None
tree = ET.parse(xml_path) tree = ET.parse(xml_path)
root = tree.getroot() root = tree.getroot()
return root, tree
# Обновим атрибуты с относительными путями except ET.ParseError as e:
if os.path.isdir(proj_path): print(f"Ошибка парсинга XML файла '{xml_path}': {e}")
root.set("proj_path", proj_path.replace("\\", "/")) return None, None
if os.path.isfile(makefile_path):
rel_makefile = make_relative_path(makefile_path, proj_path)
root.set("makefile_path", rel_makefile)
if self.structs_xml_path and os.path.isfile(self.structs_xml_path):
rel_struct_path = make_relative_path(self.structs_xml_path, proj_path)
root.set("structs_path", rel_struct_path)
vars_elem = root.find('variables')
if vars_elem is None:
# Если блока нет, создаём
vars_elem = ET.SubElement(root, 'variables')
original_info = {}
for var_elem in vars_elem.findall('var'):
name = var_elem.attrib.get('name')
if name:
original_info[name] = {
'type': var_elem.findtext('type', ''),
'file': var_elem.findtext('file', ''),
'extern': var_elem.findtext('extern', ''),
'static': var_elem.findtext('static', '')
}
# Собираем данные из таблицы
updated_vars = []
for row in range(self.table.rowCount()):
cb = self.table.cellWidget(row, 0)
name_edit = self.table.cellWidget(row, 1)
pt_type_combo = self.table.cellWidget(row, 3)
iq_combo = self.table.cellWidget(row, 4)
ret_combo = self.table.cellWidget(row, 5)
short_name_edit = self.table.cellWidget(row, 6)
var_name = name_edit.text()
# Берём оригинальные type и file из словаря, если есть
orig_type = original_info.get(var_name, {}).get('type', '')
orig_file = original_info.get(var_name, {}).get('file', '')
orig_extern = original_info.get(var_name, {}).get('extern', '')
orig_static = original_info.get(var_name, {}).get('static', '')
updated_vars.append({
'name': var_name,
'enable': cb.isChecked(),
'shortname': short_name_edit.text(),
'pt_type': 'pt_' + pt_type_combo.currentText(),
'iq_type': iq_combo.currentText(),
'return_type': ret_combo.currentText() or 'int',
'type': orig_type,
'file': orig_file,
'extern': orig_extern,
'static': orig_static,
})
# Обновляем или добавляем по одному var в XML
for v in updated_vars:
var_elem = None
for ve in vars_elem.findall('var'):
if ve.attrib.get('name') == v['name']:
var_elem = ve
break
if var_elem is None:
var_elem = ET.SubElement(vars_elem, 'var', {'name': v['name']})
def set_sub_elem_text(parent, tag, text):
el = parent.find(tag)
if el is None:
el = ET.SubElement(parent, tag)
el.text = str(text)
set_sub_elem_text(var_elem, 'enable', 'true' if v['enable'] else 'false')
set_sub_elem_text(var_elem, 'shortname', v['shortname'])
set_sub_elem_text(var_elem, 'pt_type', v['pt_type'])
set_sub_elem_text(var_elem, 'iq_type', v['iq_type'])
set_sub_elem_text(var_elem, 'return_type', v['return_type'])
set_sub_elem_text(var_elem, 'type', v['type'])
set_sub_elem_text(var_elem, 'file', v['file'])
set_sub_elem_text(var_elem, 'extern', v['extern'])
set_sub_elem_text(var_elem, 'static', v['static'])
# Сохраняем изменения
tree.write(xml_path, encoding='utf-8', xml_declaration=True)
except Exception as e: except Exception as e:
print(f"Ошибка при сохранении XML: {e}") print(f"Неожиданная ошибка при чтении XML файла '{xml_path}': {e}")
return None, None
def expand_struct_recursively(prefix, type_str, structs, typedefs, var_attrs, depth=0):
"""
Рекурсивно разворачивает структуру.
type_str может быть строкой (имя типа) или словарём (вложенная структура).
"""
if depth > 10:
return []
# Если тип уже является вложенной структурой
if isinstance(type_str, dict):
fields = type_str
else:
base_type = strip_ptr_and_array(type_str)
fields = structs.get(base_type)
if not isinstance(fields, dict):
return []
children = []
for field_name, field_type in fields.items():
full_name = f"{prefix}.{field_name}"
child = {
'name': full_name,
'type': field_type,
'pt_type': '',
'file': var_attrs.get('file'),
'extern': var_attrs.get('extern'),
'static': var_attrs.get('static'),
}
# Рекурсивно разворачиваем, если field_type — вложенная структура
subchildren = expand_struct_recursively(full_name, field_type, structs, typedefs, var_attrs, depth + 1)
if subchildren:
child['children'] = subchildren
children.append(child)
return children
def expand_vars(vars_list, structs, typedefs):
"""
Раскрывает структуры и массивы структур в деревья.
"""
expanded = []
if __name__ == "__main__": for var in vars_list:
app = QApplication(sys.argv) pt_type = var.get('pt_type', '')
raw_type = var.get('type', '')
base_type = strip_ptr_and_array(raw_type)
editor = VarEditor() fields = structs.get(base_type)
editor.resize(900, 600)
editor.show()
sys.exit(app.exec()) if pt_type.startswith('pt_arr_') and isinstance(fields, dict):
new_var = var.copy()
new_var['children'] = expand_struct_recursively(var['name'], raw_type, structs, typedefs, var)
expanded.append(new_var)
elif pt_type == 'pt_struct' and isinstance(fields, dict):
new_var = var.copy()
new_var['children'] = expand_struct_recursively(var['name'], raw_type, structs, typedefs, var)
expanded.append(new_var)
else:
expanded.append(var)
return expanded

666
setupVars_GUI.py Normal file
View File

@@ -0,0 +1,666 @@
import sys
import os
import subprocess
import xml.etree.ElementTree as ET
from generateVars import type_map
from enum import IntEnum
import threading
from scanVars import run_scan
from generateVars import run_generate
from setupVars import *
from VariableSelector import *
from PySide6.QtWidgets import (
QApplication, QWidget, QTableWidget, QTableWidgetItem,
QCheckBox, QComboBox, QLineEdit, QVBoxLayout, QHBoxLayout, QPushButton,
QCompleter, QAbstractItemView, QLabel, QMessageBox, QFileDialog, QTextEdit,
QDialog, QTreeWidget, QTreeWidgetItem
)
from PySide6.QtGui import QTextCursor, QKeyEvent
from PySide6.QtCore import Qt, QProcess, QObject, Signal, QTimer
class rows(IntEnum):
include = 0
name = 1
type = 2
pt_type = 3
iq_type = 4
ret_type = 5
short_name = 6
class EmittingStream(QObject):
text_written = Signal(str)
def __init__(self):
super().__init__()
self._buffer = ""
def write(self, text):
self._buffer += text
while '\n' in self._buffer:
line, self._buffer = self._buffer.split('\n', 1)
# Отправляем строку без '\n'
self.text_written.emit(line)
def flush(self):
if self._buffer:
self.text_written.emit(self._buffer)
self._buffer = ""
class ProcessOutputWindowDummy(QWidget):
def __init__(self, on_done_callback):
super().__init__()
self.setWindowTitle("Поиск переменных...")
self.resize(600, 400)
self.layout = QVBoxLayout(self)
self.output_edit = QTextEdit()
self.output_edit.setReadOnly(True)
self.layout.addWidget(self.output_edit)
self.btn_close = QPushButton("Закрыть")
self.btn_close.setEnabled(False)
self.layout.addWidget(self.btn_close)
self.btn_close.clicked.connect(self.__handle_done)
self._on_done_callback = on_done_callback
def __handle_done(self):
if self._on_done_callback:
self._on_done_callback()
self.close()
def append_text(self, text):
cursor = self.output_edit.textCursor()
cursor.movePosition(QTextCursor.End)
for line in text.splitlines():
self.output_edit.append(line)
self.output_edit.setTextCursor(cursor)
self.output_edit.ensureCursorVisible()
# 3. UI: таблица с переменными
class VarEditor(QWidget):
def __init__(self):
super().__init__()
self.vars_list = []
self.structs = {}
self.typedef_map = {}
self.proj_path = None
self.xml_path = None
self.makefile_path = None
self.structs_path = None
self.output_path = None
self.initUI()
def initUI(self):
self.setWindowTitle("Variable Editor")
# --- Поля ввода пути проекта и XML ---
# XML Output
xml_layout = QHBoxLayout()
xml_layout.addWidget(QLabel("XML Output:"))
self.xml_output_edit = QLineEdit()
self.xml_output_edit.returnPressed.connect(self.read_xml_file)
self.xml_output_edit.textChanged.connect(self.__on_xml_path_changed)
xml_layout.addWidget(self.xml_output_edit)
btn_xml_browse = QPushButton("...")
btn_xml_browse.setFixedWidth(30)
xml_layout.addWidget(btn_xml_browse)
btn_xml_browse.clicked.connect(self.__browse_xml_output)
# Project Path
proj_layout = QHBoxLayout()
proj_layout.addWidget(QLabel("Project Path:"))
self.proj_path_edit = QLineEdit()
self.proj_path_edit.textChanged.connect(self.__on_proj_path_changed)
proj_layout.addWidget(self.proj_path_edit)
btn_proj_browse = QPushButton("...")
btn_proj_browse.setFixedWidth(30)
proj_layout.addWidget(btn_proj_browse)
btn_proj_browse.clicked.connect(self.__browse_proj_path)
# Makefile Path
makefile_layout = QHBoxLayout()
makefile_layout.addWidget(QLabel("Makefile Path (relative path):"))
self.makefile_edit = QLineEdit()
self.makefile_edit.textChanged.connect(self.__on_makefile_path_changed)
makefile_layout.addWidget(self.makefile_edit)
btn_makefile_browse = QPushButton("...")
btn_makefile_browse.setFixedWidth(30)
makefile_layout.addWidget(btn_makefile_browse)
btn_makefile_browse.clicked.connect(self.__browse_makefile)
# Source Output File/Directory
source_output_layout = QHBoxLayout()
source_output_layout.addWidget(QLabel("Source Output File:"))
self.source_output_edit = QLineEdit()
source_output_layout.addWidget(self.source_output_edit)
btn_source_output_browse = QPushButton("...")
btn_source_output_browse.setFixedWidth(30)
source_output_layout.addWidget(btn_source_output_browse)
btn_source_output_browse.clicked.connect(self.__browse_source_output)
self.btn_update_vars = QPushButton("Обновить данные о переменных")
self.btn_update_vars.clicked.connect(self.update_vars_data)
# Таблица переменных
self.table = QTableWidget(len(self.vars_list), 7)
self.table.setHorizontalHeaderLabels([
'Include',
'Name',
'Origin Type',
'Pointer Type',
'IQ Type',
'Return Type',
'Short Name'
])
self.table.setEditTriggers(QAbstractItemView.AllEditTriggers)
# Кнопка сохранения
btn_save = QPushButton("Build")
btn_save.clicked.connect(self.save_build)
# Кнопка добавления переменных
self.btn_add_vars = QPushButton("Add Variables")
self.btn_add_vars.clicked.connect(self.__open_variable_selector)
# Основной layout
layout = QVBoxLayout()
layout.addLayout(xml_layout)
layout.addLayout(proj_layout)
layout.addLayout(makefile_layout)
layout.addWidget(self.btn_update_vars)
layout.addWidget(self.table)
layout.addWidget(self.btn_add_vars)
layout.addLayout(source_output_layout)
layout.addWidget(btn_save)
self.setLayout(layout)
def get_xml_path(self):
xml_path = self.xml_output_edit.text().strip()
return xml_path
def get_proj_path(self):
proj_path = self.proj_path_edit.text().strip()
return proj_path
def get_makefile_path(self):
proj_path = self.get_proj_path()
makefile_path = make_absolute_path(self.makefile_edit.text().strip(), proj_path)
return makefile_path
def get_struct_path(self):
proj_path = self.get_proj_path()
xml_path = self.get_xml_path()
root, tree = safe_parse_xml(xml_path)
if root is None:
return
# --- structs_path из атрибута ---
structs_path = root.attrib.get('structs_path', '').strip()
structs_path_full = make_absolute_path(structs_path, proj_path)
if structs_path_full and os.path.isfile(structs_path_full):
structs_path = structs_path_full
else:
structs_path = None
return structs_path
def get_output_path(self):
output_path = os.path.abspath(self.source_output_edit.text().strip())
return output_path
def update_all_paths(self):
self.proj_path = self.get_proj_path()
self.xml_path = self.get_xml_path()
self.makefile_path = self.get_makefile_path()
self.structs_path = self.get_struct_path()
self.output_path = self.get_output_path()
def update_vars_data(self):
self.update_all_paths()
if not self.proj_path or not self.xml_path:
QMessageBox.warning(self, "Ошибка", "Укажите пути проекта и XML.")
return
if not os.path.isfile(self.makefile_path):
QMessageBox.warning(self, "Ошибка", f"Makefile не найден:\n{self.makefile_path}")
return
# Создаём окно с кнопкой "Готово"
self.proc_win = ProcessOutputWindowDummy(self.__after_scanvars_finished)
self.proc_win.show()
self.emitting_stream = EmittingStream()
self.emitting_stream.text_written.connect(self.proc_win.append_text)
def run_scan_wrapper():
try:
old_stdout = sys.stdout
sys.stdout = self.emitting_stream
run_scan(self.proj_path, self.makefile_path, self.xml_path)
except Exception as e:
self.emitting_stream.text_written.emit(f"\n[ОШИБКА] {e}")
finally:
sys.stdout = old_stdout
self.emitting_stream.text_written.emit("\n--- Анализ завершён ---")
self.proc_win.btn_close.setEnabled(True)
threading.Thread(target=run_scan_wrapper, daemon=True).start()
def save_build(self):
vars_out = []
for row in range(self.table.rowCount()):
include_cb = self.table.cellWidget(row, rows.include)
if not include_cb.isChecked():
continue
name_edit = self.table.cellWidget(row, rows.name)
pt_type_combo = self.table.cellWidget(row, rows.pt_type)
iq_combo = self.table.cellWidget(row, rows.iq_type)
ret_combo = self.table.cellWidget(row, rows.ret_type)
short_name_edit = self.table.cellWidget(row, rows.short_name)
var_data = {
'name': name_edit.text(),
'type': 'pt_' + pt_type_combo.currentText(),
'iq_type': iq_combo.currentText(),
'return_type': ret_combo.currentText() if ret_combo.currentText() else 'int',
'short_name': short_name_edit.text(),
}
vars_out.append(var_data)
# Здесь нужно указать абсолютные пути к проекту, xml и output (замени на свои)
self.update_all_paths()
if not self.proj_path or not self.xml_path or not self.output_path:
QMessageBox.warning(self, "Ошибка", "Заполните все пути: проект, XML и output.")
return
try:
run_generate(self.proj_path, self.xml_path, self.output_path)
QMessageBox.information(self, "Готово", "Файл debug_vars.c успешно сгенерирован.")
except Exception as e:
QMessageBox.critical(self, "Ошибка при генерации", str(e))
def read_xml_file(self):
self.update_all_paths()
if self.xml_path and not os.path.isfile(self.xml_path):
return
try:
root, tree = safe_parse_xml(self.xml_path)
if root is None:
return
if not self.proj_path:
# Если в поле ничего нет, пробуем взять из XML
proj_path_from_xml = root.attrib.get('proj_path', '').strip()
if proj_path_from_xml and os.path.isdir(proj_path_from_xml):
self.proj_path = proj_path_from_xml
self.proj_path_edit.setText(proj_path_from_xml)
else:
QMessageBox.warning(
self,
"Внимание",
"Путь к проекту (proj_path) не найден или не существует.\n"
"Пожалуйста, укажите его вручную в поле 'Project Path'."
)
else:
if not os.path.isdir(self.proj_path):
QMessageBox.warning(
self,
"Внимание",
f"Указанный путь к проекту не существует:\n{self.proj_path}\n"
"Пожалуйста, исправьте путь в поле 'Project Path'."
)
# --- makefile_path из атрибута ---
makefile_path = root.attrib.get('makefile_path', '').strip()
makefile_path_full = make_absolute_path(makefile_path, self.proj_path)
if makefile_path_full and os.path.isfile(makefile_path_full):
self.makefile_edit.setText(makefile_path)
self.makefile_path = makefile_path_full
# --- structs_path из атрибута ---
structs_path = root.attrib.get('structs_path', '').strip()
structs_path_full = 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 = parse_structs(structs_path_full)
else:
self.structs_path = None
self.vars_list = parse_vars(self.xml_path, self.typedef_map)
self.update_table()
except Exception as e:
QMessageBox.warning(self, "Ошибка", f"Ошибка при чтении XML:\n{e}")
def __browse_proj_path(self):
dir_path = QFileDialog.getExistingDirectory(self, "Выберите папку проекта")
if dir_path:
self.proj_path_edit.setText(dir_path)
self.proj_path = dir_path
if self.makefile_path and self.proj_path:
path = make_relative_path(self.makefile_path, self.proj_path)
self.makefile_edit.setText(path)
self.makefile_path = path
def __browse_xml_output(self):
file_path, _ = QFileDialog.getSaveFileName(
self,
"Выберите XML файл",
filter="XML files (*.xml);;All Files (*)"
)
self.xml_output_edit.setText(file_path)
self.xml_path = file_path
self.read_xml_file()
def keyPressEvent(self, event: QKeyEvent):
if event.key() == Qt.Key_Delete:
self.delete_selected_rows()
else:
super().keyPressEvent(event)
def __browse_makefile(self):
file_path, _ = QFileDialog.getOpenFileName(
self, "Выберите Makefile", filter="Makefile (makefile);;All Files (*)"
)
if file_path and self.proj_path:
path = make_relative_path(file_path, self.proj_path)
else:
path = file_path
self.makefile_edit.setText(path)
self.makefile_path = path
def __browse_source_output(self):
dir_path = QFileDialog.getExistingDirectory(self, "Выберите папку для debug_vars.c")
if dir_path:
self.source_output_edit.setText(dir_path)
self.output_path = dir_path
else:
self.output_path = ''
def __on_xml_path_changed(self):
self.xml_path = self.get_xml_path()
def __on_proj_path_changed(self):
self.proj_path = self.get_proj_path()
def __on_makefile_path_changed(self):
self.makefile_path = self.get_makefile_path()
if self.makefile_path and self.proj_path:
path = make_relative_path(self.makefile_path, self.proj_path)
self.makefile_edit.setText(path)
self.makefile_path = path
def __after_scanvars_finished(self):
xml_path = self.xml_output_edit.text().strip()
if not os.path.isfile(xml_path):
QMessageBox.critical(self, "Ошибка", f"Файл не найден: {xml_path}")
return
try:
# Читаем структуры, если задан путь
if self.structs_path and os.path.isfile(self.structs_path):
try:
self.structs, self.typedef_map = parse_structs(self.structs_path)
# При необходимости обновите UI или сделайте что-то с self.structs
except Exception as e:
QMessageBox.warning(self, "Внимание", f"Не удалось загрузить структуры из {self.structs_path}:\n{e}")
self.vars_list = parse_vars(xml_path)
self.update_table()
except Exception as e:
QMessageBox.critical(self, "Ошибка", f"Не удалось загрузить переменные:\n{e}")
def delete_selected_rows(self):
selected_rows = sorted(set(index.row() for index in self.table.selectedIndexes()), reverse=True)
if not selected_rows:
return
# Удаляем из vars_list те, у кого show_var == true и имя совпадает
filtered_vars = [v for v in self.vars_list if v.get('show_var', 'false') == 'true']
for row in selected_rows:
if 0 <= row < len(filtered_vars):
var_to_remove = filtered_vars[row]
for v in self.vars_list:
if v['name'] == var_to_remove['name']:
v['show_var'] = 'false'
break
self.update_table()
def __open_variable_selector(self):
if not self.vars_list:
QMessageBox.warning(self, "Нет переменных", "Сначала загрузите или обновите переменные.")
return
dlg = VariableSelectorDialog(self.vars_list, self.structs, self.typedef_map, self)
if dlg.exec():
self.write_to_xml()
self.read_xml_file()
self.update_table()
def update_table(self):
self.type_options = list(dict.fromkeys(type_map.values()))
self.display_type_options = [t.replace('pt_', '') for t in self.type_options]
iq_types = ['iq_none', 'iq'] + [f'iq{i}' for i in range(1, 31)]
filtered_vars = [v for v in self.vars_list if v.get('show_var', 'false') == 'true']
self.table.setRowCount(len(filtered_vars))
for row, var in enumerate(filtered_vars):
cb = QCheckBox()
enable_str = var.get('enable', 'false')
cb.setChecked(enable_str.lower() == 'true')
self.table.setCellWidget(row, rows.include, cb)
name_edit = QLineEdit(var['name'])
if var['type'] in self.structs:
completer = QCompleter(self.structs[var['type']].keys())
completer.setCaseSensitivity(Qt.CaseInsensitive)
name_edit.setCompleter(completer)
self.table.setCellWidget(row, rows.name, name_edit)
# Type (origin)
origin_type = var.get('type', '').strip()
origin_item = QTableWidgetItem(origin_type)
origin_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) # read-only
self.table.setItem(row, rows.type, origin_item)
pt_type_combo = QComboBox()
pt_type_combo.addItems(self.display_type_options)
internal_type = var['pt_type'].replace('pt_', '')
if internal_type in self.display_type_options:
pt_type_combo.setCurrentText(internal_type)
else:
pt_type_combo.addItem(internal_type)
pt_type_combo.setCurrentText(internal_type)
self.table.setCellWidget(row, rows.pt_type, pt_type_combo)
iq_combo = QComboBox()
iq_combo.addItems(iq_types)
iq_type = var['iq_type'].replace('t_', '')
if iq_type in iq_types:
iq_combo.setCurrentText(iq_type)
else:
iq_combo.addItem(iq_type)
iq_combo.setCurrentText(iq_type)
self.table.setCellWidget(row, rows.iq_type, iq_combo)
ret_combo = QComboBox()
ret_combo.addItems(iq_types)
self.table.setCellWidget(row, rows.ret_type, ret_combo)
short_name_edit = QLineEdit(var['name'])
self.table.setCellWidget(row, rows.short_name, short_name_edit)
cb.stateChanged.connect(self.write_to_xml)
name_edit.textChanged.connect(self.write_to_xml)
pt_type_combo.currentTextChanged.connect(self.write_to_xml)
iq_combo.currentTextChanged.connect(self.write_to_xml)
ret_combo.currentTextChanged.connect(self.write_to_xml)
short_name_edit.textChanged.connect(self.write_to_xml)
self.write_to_xml()
def read_table(self):
vars_data = []
for row in range(self.table.rowCount()):
cb = self.table.cellWidget(row, rows.include)
name_edit = self.table.cellWidget(row, rows.name)
pt_type_combo = self.table.cellWidget(row, rows.pt_type)
iq_combo = self.table.cellWidget(row, rows.iq_type)
ret_combo = self.table.cellWidget(row, rows.ret_type)
short_name_edit = self.table.cellWidget(row, rows.short_name)
origin_item = self.table.item(row, rows.type)
vars_data.append({
'show_var': True,
'enable': cb.isChecked() if cb else False,
'name': name_edit.text() if name_edit else '',
'pt_type': 'pt_' + pt_type_combo.currentText() if pt_type_combo else '',
'iq_type': iq_combo.currentText() if iq_combo else '',
'return_type': ret_combo.currentText() if ret_combo else '',
'shortname': short_name_edit.text() if short_name_edit else '',
'type': origin_item.text() if origin_item else '',
})
return vars_data
def write_to_xml(self):
self.update_all_paths()
if not self.xml_path or not os.path.isfile(self.xml_path):
print("XML файл не найден или путь пустой")
return
if not self.proj_path or not os.path.isdir(self.proj_path):
print("Project path не найден или путь пустой")
return
if not self.makefile_path or not os.path.isfile(self.makefile_path):
print("makefile файл не найден или путь пустой")
return
try:
root, tree = safe_parse_xml(self.xml_path)
if root is None:
return
root.set("proj_path", self.proj_path.replace("\\", "/"))
if self.makefile_path and os.path.isfile(self.makefile_path):
rel_makefile = make_relative_path(self.makefile_path, self.proj_path)
root.set("makefile_path", rel_makefile)
if self.structs_path and os.path.isfile(self.structs_path):
rel_struct = make_relative_path(self.structs_path, self.proj_path)
root.set("structs_path", rel_struct)
vars_elem = root.find('variables')
if vars_elem is None:
vars_elem = ET.SubElement(root, 'variables')
original_info = {}
for var_elem in vars_elem.findall('var'):
name = var_elem.attrib.get('name')
if name:
original_info[name] = {
'file': var_elem.findtext('file', ''),
'extern': var_elem.findtext('extern', ''),
'static': var_elem.findtext('static', '')
}
# Читаем переменные из таблицы (активные/изменённые)
table_vars = {v['name']: v for v in self.read_table()}
# Все переменные (в том числе новые, которых нет в XML)
all_vars_by_name = {v['name']: v for v in self.vars_list}
# Объединённый список переменных для записи
all_names = set(all_vars_by_name.keys())
for name in all_names:
v = all_vars_by_name[name]
v_table = table_vars.get(name)
var_elem = None
# Ищем уже существующий <var> в XML
for ve in vars_elem.findall('var'):
if ve.attrib.get('name') == name:
var_elem = ve
break
if var_elem is None:
var_elem = ET.SubElement(vars_elem, 'var', {'name': name})
def set_sub_elem_text(parent, tag, text):
el = parent.find(tag)
if el is None:
el = ET.SubElement(parent, tag)
el.text = str(text)
set_sub_elem_text(var_elem, 'show_var', v.get('show_var', 'false'))
set_sub_elem_text(var_elem, 'enable', v.get('enable', 'false'))
set_sub_elem_text(var_elem, 'shortname', v['shortname'])
set_sub_elem_text(var_elem, 'pt_type', v['pt_type'])
set_sub_elem_text(var_elem, 'iq_type', v['iq_type'])
set_sub_elem_text(var_elem, 'return_type', v['return_type'])
set_sub_elem_text(var_elem, 'type', v['type'])
# file/extern/static: из original_info, либо из v
file_val = v.get('file') or original_info.get(name, {}).get('file', '')
extern_val = v.get('extern') or original_info.get(name, {}).get('extern', '')
static_val = v.get('static') or original_info.get(name, {}).get('static', '')
set_sub_elem_text(var_elem, 'file', file_val)
set_sub_elem_text(var_elem, 'extern', extern_val)
set_sub_elem_text(var_elem, 'static', static_val)
ET.indent(tree, space=" ", level=0)
tree.write(self.xml_path, encoding='utf-8', xml_declaration=True)
except Exception as e:
print(f"Ошибка при сохранении XML: {e}")
if __name__ == "__main__":
app = QApplication(sys.argv)
editor = VarEditor()
editor.resize(900, 600)
editor.show()
sys.exit(app.exec())

581
setupVars_out.py Normal file
View File

@@ -0,0 +1,581 @@
import sys
import os
import subprocess
import xml.etree.ElementTree as ET
from generateVars import map_type_to_pt, get_iq_define, type_map
from enum import IntEnum
from scanVars import run_scan
from generateVars import run_generate
from PySide6.QtWidgets import (
QApplication, QWidget, QTableWidget, QTableWidgetItem,
QCheckBox, QComboBox, QLineEdit, QVBoxLayout, QHBoxLayout, QPushButton,
QCompleter, QAbstractItemView, QLabel, QMessageBox, QFileDialog, QTextEdit
)
from PySide6.QtGui import QTextCursor
from PySide6.QtCore import Qt, QProcess
class rows(IntEnum):
include = 0
name = 1
type = 2
pt_type = 3
iq_type = 4
ret_type = 5
short_name = 6
# 1. Парсим vars.xml
def make_absolute_path(path, base_path):
if not os.path.isabs(path):
return os.path.abspath(os.path.join(base_path, path))
return os.path.abspath(path)
def parse_vars(filename):
tree = ET.parse(filename)
root = tree.getroot()
vars_list = []
variables_elem = root.find('variables')
if variables_elem is not None:
for var in variables_elem.findall('var'):
name = var.attrib.get('name', '')
vars_list.append({
'name': name,
'enable': var.findtext('enable', 'false'),
'shortname': var.findtext('shortname', name),
'pt_type': var.findtext('pt_type', 'pt_unknown'),
'iq_type': var.findtext('iq_type', 'iq_none'),
'return_type': var.findtext('return_type', 'int'),
'type': var.findtext('type', 'unknown'),
'file': var.findtext('file', ''),
'extern': var.findtext('extern', 'false') == 'true',
'static': var.findtext('static', 'false') == 'true',
})
return vars_list
# 2. Парсим structSup.xml
def parse_structs(filename):
tree = ET.parse(filename)
root = tree.getroot()
structs = {}
typedef_map = {}
# --- Считываем структуры ---
structs_elem = root.find('structs')
if structs_elem is not None:
for struct in structs_elem.findall('struct'):
name = struct.attrib['name']
fields = {}
for field in struct.findall('field'):
fname = field.attrib.get('name')
ftype = field.attrib.get('type')
if fname and ftype:
fields[fname] = ftype
structs[name] = fields
# --- Считываем typedef-ы ---
typedefs_elem = root.find('typedefs')
if typedefs_elem is not None:
for typedef in typedefs_elem.findall('typedef'):
name = typedef.attrib.get('name')
target_type = typedef.attrib.get('type')
if name and target_type:
typedef_map[name.strip()] = target_type.strip()
return structs, typedef_map
class ProcessOutputWindow(QWidget):
def __init__(self, command, args):
super().__init__()
self.setWindowTitle("Поиск переменных...")
self.resize(600, 400)
self.layout = QVBoxLayout(self)
self.output_edit = QTextEdit()
self.output_edit.setReadOnly(True)
self.layout.addWidget(self.output_edit)
self.btn_close = QPushButton("Закрыть")
self.btn_close.setEnabled(False)
self.btn_close.clicked.connect(self.close)
self.layout.addWidget(self.btn_close)
self.process = QProcess(self)
self.process.setProcessChannelMode(QProcess.MergedChannels)
self.process.readyReadStandardOutput.connect(self.handle_stdout)
self.process.finished.connect(self.process_finished)
self.process.start(command, args)
def handle_stdout(self):
data = self.process.readAllStandardOutput()
text = data.data().decode('utf-8')
self.output_edit.append(text)
def process_finished(self):
self.output_edit.append("\n--- Процесс завершён ---")
self.btn_close.setEnabled(True)
# 3. UI: таблица с переменными
class VarEditor(QWidget):
def __init__(self):
super().__init__()
self.vars_list = []
self.structs = {}
self.typedef_map = {}
self.structs_xml_path = None # сюда запишем путь из <structs_xml>
self.initUI()
def initUI(self):
self.setWindowTitle("Variable Editor")
# --- Поля ввода пути проекта и XML ---
# XML Output
xml_layout = QHBoxLayout()
xml_layout.addWidget(QLabel("XML Output:"))
self.xml_output_edit = QLineEdit()
xml_layout.addWidget(self.xml_output_edit)
self.xml_output_edit.returnPressed.connect(self.read_xml_file)
btn_xml_browse = QPushButton("...")
btn_xml_browse.setFixedWidth(30)
xml_layout.addWidget(btn_xml_browse)
btn_xml_browse.clicked.connect(self.browse_xml_output)
# Project Path
proj_layout = QHBoxLayout()
proj_layout.addWidget(QLabel("Project Path:"))
self.proj_path_edit = QLineEdit()
proj_layout.addWidget(self.proj_path_edit)
btn_proj_browse = QPushButton("...")
btn_proj_browse.setFixedWidth(30)
proj_layout.addWidget(btn_proj_browse)
btn_proj_browse.clicked.connect(self.browse_proj_path)
# Makefile Path
makefile_layout = QHBoxLayout()
makefile_layout.addWidget(QLabel("Makefile Path (relative path):"))
self.makefile_edit = QLineEdit()
makefile_layout.addWidget(self.makefile_edit)
btn_makefile_browse = QPushButton("...")
btn_makefile_browse.setFixedWidth(30)
makefile_layout.addWidget(btn_makefile_browse)
btn_makefile_browse.clicked.connect(self.browse_makefile)
# Source Output File/Directory
source_output_layout = QHBoxLayout()
source_output_layout.addWidget(QLabel("Source Output File:"))
self.source_output_edit = QLineEdit()
source_output_layout.addWidget(self.source_output_edit)
btn_source_output_browse = QPushButton("...")
btn_source_output_browse.setFixedWidth(30)
source_output_layout.addWidget(btn_source_output_browse)
btn_source_output_browse.clicked.connect(self.browse_source_output)
self.btn_update_vars = QPushButton("Обновить данные о переменных")
self.btn_update_vars.clicked.connect(self.update_vars_data)
# Таблица переменных
self.table = QTableWidget(len(self.vars_list), 7)
self.table.setHorizontalHeaderLabels([
'Include',
'Name',
'Origin Type',
'Pointer Type',
'IQ Type',
'Return Type',
'Short Name'
])
self.table.setEditTriggers(QAbstractItemView.AllEditTriggers)
# Кнопка сохранения
btn_save = QPushButton("Build")
btn_save.clicked.connect(self.save_build)
# Основной layout
layout = QVBoxLayout()
layout.addLayout(xml_layout)
layout.addLayout(proj_layout)
layout.addLayout(makefile_layout)
layout.addWidget(self.btn_update_vars)
layout.addWidget(self.table)
layout.addWidget(btn_save)
layout.addLayout(source_output_layout)
self.setLayout(layout)
def update_vars_data(self):
proj_path = os.path.abspath(self.proj_path_edit.text().strip())
xml_path = os.path.abspath(self.xml_output_edit.text().strip())
makefile_path = make_absolute_path(self.makefile_edit.text().strip(), proj_path)
if not proj_path or not xml_path:
QMessageBox.warning(self, "Ошибка", "Пожалуйста, укажите пути проекта и XML.")
return
if not os.path.isfile(makefile_path):
QMessageBox.warning(self, "Ошибка", f"Makefile не найден по пути:\n{makefile_path}")
return
scanvars_exe = "scanVars.exe"
args = [proj_path, makefile_path, xml_path]
# Создаем и показываем окно с выводом процесса
self.proc_win = ProcessOutputWindow("python", [])
self.proc_win.show()
self.proc_win.output_edit.append("Запуск анализа переменных...")
# Запускаем в отдельном процессе через QProcess, если нужен live-вывод:
from threading import Thread
def run_scan_wrapper():
try:
run_scan(proj_path, makefile_path, xml_path)
self.proc_win.output_edit.append("\n--- Анализ завершён ---")
except Exception as e:
self.proc_win.output_edit.append(f"\n[ОШИБКА] {e}")
self.proc_win.btn_close.setEnabled(True)
self.after_scanvars_finished(0, 0)
Thread(target=run_scan_wrapper).start()
# Можно подписаться на сигнал завершения процесса, если хочешь обновить UI после
#self.proc_win.process.finished.connect(lambda exitCode, exitStatus: self.after_scanvars_finished(exitCode, exitStatus))
def save_build(self):
vars_out = []
for row in range(self.table.rowCount()):
include_cb = self.table.cellWidget(row, rows.include)
if not include_cb.isChecked():
continue
name_edit = self.table.cellWidget(row, rows.name)
pt_type_combo = self.table.cellWidget(row, rows.pt_type)
iq_combo = self.table.cellWidget(row, rows.iq_type)
ret_combo = self.table.cellWidget(row, rows.ret_type)
short_name_edit = self.table.cellWidget(row, rows.short_name)
var_data = {
'name': name_edit.text(),
'type': 'pt_' + pt_type_combo.currentText(),
'iq_type': iq_combo.currentText(),
'return_type': ret_combo.currentText() if ret_combo.currentText() else 'int',
'short_name': short_name_edit.text(),
}
vars_out.append(var_data)
# Здесь нужно указать абсолютные пути к проекту, xml и output (замени на свои)
proj_path = os.path.abspath(self.proj_path_edit.text().strip())
xml_path = os.path.abspath(self.xml_output_edit.text().strip())
output_dir_c_file = os.path.abspath(self.source_output_edit.text().strip())
if not proj_path or not xml_path or not output_dir_c_file:
QMessageBox.warning(self, "Ошибка", "Заполните все пути: проект, XML и output.")
return
try:
run_generate(proj_path, xml_path, output_dir_c_file)
QMessageBox.information(self, "Готово", "Файл debug_vars.c успешно сгенерирован.")
except Exception as e:
QMessageBox.critical(self, "Ошибка при генерации", str(e))
def browse_proj_path(self):
dir_path = QFileDialog.getExistingDirectory(self, "Выберите папку проекта")
if dir_path:
self.proj_path_edit.setText(dir_path)
def read_xml_file(self):
file_path = self.xml_output_edit.text().strip()
if file_path and not os.path.isfile(file_path):
return
self.vars_list = parse_vars(file_path)
try:
tree = ET.parse(file_path)
root = tree.getroot()
proj_path = self.proj_path_edit.text().strip()
if not proj_path:
# Если в поле ничего нет, пробуем взять из XML
proj_path_from_xml = root.attrib.get('proj_path', '').strip()
if proj_path_from_xml and os.path.isdir(proj_path_from_xml):
proj_path = proj_path_from_xml
self.proj_path_edit.setText(proj_path_from_xml)
else:
QMessageBox.warning(
self,
"Внимание",
"Путь к проекту (proj_path) не найден или не существует.\n"
"Пожалуйста, укажите его вручную в поле 'Project Path'."
)
else:
if not os.path.isdir(proj_path):
QMessageBox.warning(
self,
"Внимание",
f"Указанный путь к проекту не существует:\n{proj_path}\n"
"Пожалуйста, исправьте путь в поле 'Project Path'."
)
# --- makefile_path из атрибута ---
makefile_path = root.attrib.get('makefile_path', '').strip()
makefile_path_full = make_absolute_path(makefile_path, proj_path)
if makefile_path_full and os.path.isfile(makefile_path_full):
self.makefile_edit.setText(makefile_path)
# --- structs_path из атрибута ---
structs_path = root.attrib.get('structs_path', '').strip()
structs_path_full = make_absolute_path(structs_path, proj_path)
if structs_path_full and os.path.isfile(structs_path_full):
self.structs_xml_path = structs_path_full
self.structs, self.typedef_map = parse_structs(structs_path_full)
else:
self.structs_xml_path = None
self.update_table()
except Exception as e:
QMessageBox.warning(self, "Ошибка", f"Ошибка при чтении XML:\n{e}")
def browse_xml_output(self):
file_path, _ = QFileDialog.getSaveFileName(
self,
"Выберите XML файл",
filter="XML files (*.xml);;All Files (*)"
)
self.xml_output_edit.setText(file_path)
self.read_xml_file()
def browse_xml_struct(self):
file_path, _ = QFileDialog.getSaveFileName(self, "Выберите XML файл", filter="XML files (*.xml);;All Files (*)")
if file_path:
self.xml_output_edit.setText(file_path)
if os.path.isfile(file_path):
self.structs, self.typedef_map = parse_structs(file_path)
def browse_makefile(self):
file_path, _ = QFileDialog.getOpenFileName(
self, "Выберите Makefile", filter="Makefile (makefile);;All Files (*)"
)
if file_path:
self.makefile_edit.setText(file_path)
def browse_source_output(self):
dir_path = QFileDialog.getExistingDirectory(self, "Выберите папку для debug_vars.c")
if dir_path:
self.source_output_edit.setText(dir_path)
def after_scanvars_finished(self, exitCode, exitStatus):
xml_path = self.xml_output_edit.text().strip()
if not os.path.isfile(xml_path):
QMessageBox.critical(self, "Ошибка", f"Файл не найден: {xml_path}")
return
try:
# Читаем структуры, если задан путь
if self.structs_xml_path and os.path.isfile(self.structs_xml_path):
try:
self.structs, self.typedef_map = parse_structs(self.structs_xml_path)
# При необходимости обновите UI или сделайте что-то с self.structs
except Exception as e:
QMessageBox.warning(self, "Внимание", f"Не удалось загрузить структуры из {self.structs_xml_path}:\n{e}")
self.vars_list = parse_vars(xml_path)
self.update_table()
except Exception as e:
QMessageBox.critical(self, "Ошибка", f"Не удалось загрузить переменные:\n{e}")
def update_table(self):
self.type_options = list(dict.fromkeys(type_map.values()))
self.display_type_options = [t.replace('pt_', '') for t in self.type_options]
iq_types = ['iq_none', 'iq'] + [f'iq{i}' for i in range(1, 31)]
self.table.setRowCount(len(self.vars_list))
for row, var in enumerate(self.vars_list):
cb = QCheckBox()
enable_str = var.get('enable', 'false')
cb.setChecked(enable_str.lower() == 'true')
self.table.setCellWidget(row, rows.include, cb)
name_edit = QLineEdit(var['name'])
if var['type'] in self.structs:
completer = QCompleter(self.structs[var['type']].keys())
completer.setCaseSensitivity(Qt.CaseInsensitive)
name_edit.setCompleter(completer)
self.table.setCellWidget(row, rows.name, name_edit)
# Type (origin)
origin_type = var.get('type', '').strip()
origin_item = QTableWidgetItem(origin_type)
origin_item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) # read-only
self.table.setItem(row, rows.type, origin_item)
pt_type_combo = QComboBox()
pt_type_combo.addItems(self.display_type_options)
internal_type = map_type_to_pt(var['type'], var['name'], self.typedef_map)
display_type = internal_type.replace('pt_', '')
if display_type in self.display_type_options:
pt_type_combo.setCurrentText(display_type)
else:
pt_type_combo.addItem(display_type)
pt_type_combo.setCurrentText(display_type)
self.table.setCellWidget(row, rows.pt_type, pt_type_combo)
iq_combo = QComboBox()
iq_combo.addItems(iq_types)
iq_type = get_iq_define(var['type']) # Получаем IQ-тип, например 'iq24'
display_type = iq_type.replace('t_', '')
if iq_type in iq_types:
iq_combo.setCurrentText(display_type)
else:
iq_combo.addItem(display_type)
iq_combo.setCurrentText(display_type)
self.table.setCellWidget(row, rows.iq_type, iq_combo)
ret_combo = QComboBox()
ret_combo.addItems(iq_types)
self.table.setCellWidget(row, rows.ret_type, ret_combo)
short_name_edit = QLineEdit(var['name'])
self.table.setCellWidget(row, rows.short_name, short_name_edit)
cb.stateChanged.connect(self.save_table_to_xml)
name_edit.textChanged.connect(self.save_table_to_xml)
pt_type_combo.currentTextChanged.connect(self.save_table_to_xml)
iq_combo.currentTextChanged.connect(self.save_table_to_xml)
ret_combo.currentTextChanged.connect(self.save_table_to_xml)
short_name_edit.textChanged.connect(self.save_table_to_xml)
def save_table_to_xml(self):
def make_relative_path(abs_path, base_path):
try:
return os.path.relpath(abs_path, base_path).replace("\\", "/")
except ValueError:
return abs_path.replace("\\", "/")
xml_path = self.xml_output_edit.text().strip()
proj_path = self.proj_path_edit.text().strip()
makefile_path = self.makefile_edit.text().strip()
if not xml_path or not os.path.isfile(xml_path):
print("XML файл не найден или путь пустой")
return
try:
tree = ET.parse(xml_path)
root = tree.getroot()
# Обновим атрибуты с относительными путями
if os.path.isdir(proj_path):
root.set("proj_path", proj_path.replace("\\", "/"))
if os.path.isfile(makefile_path):
rel_makefile = make_relative_path(makefile_path, proj_path)
root.set("makefile_path", rel_makefile)
if self.structs_xml_path and os.path.isfile(self.structs_xml_path):
rel_struct_path = make_relative_path(self.structs_xml_path, proj_path)
root.set("structs_path", rel_struct_path)
vars_elem = root.find('variables')
if vars_elem is None:
# Если блока нет, создаём
vars_elem = ET.SubElement(root, 'variables')
original_info = {}
for var_elem in vars_elem.findall('var'):
name = var_elem.attrib.get('name')
if name:
original_info[name] = {
'type': var_elem.findtext('type', ''),
'file': var_elem.findtext('file', ''),
'extern': var_elem.findtext('extern', ''),
'static': var_elem.findtext('static', '')
}
# Собираем данные из таблицы
updated_vars = []
for row in range(self.table.rowCount()):
cb = self.table.cellWidget(row, 0)
name_edit = self.table.cellWidget(row, 1)
pt_type_combo = self.table.cellWidget(row, 3)
iq_combo = self.table.cellWidget(row, 4)
ret_combo = self.table.cellWidget(row, 5)
short_name_edit = self.table.cellWidget(row, 6)
var_name = name_edit.text()
# Берём оригинальные type и file из словаря, если есть
orig_type = original_info.get(var_name, {}).get('type', '')
orig_file = original_info.get(var_name, {}).get('file', '')
orig_extern = original_info.get(var_name, {}).get('extern', '')
orig_static = original_info.get(var_name, {}).get('static', '')
updated_vars.append({
'name': var_name,
'enable': cb.isChecked(),
'shortname': short_name_edit.text(),
'pt_type': 'pt_' + pt_type_combo.currentText(),
'iq_type': iq_combo.currentText(),
'return_type': ret_combo.currentText() or 'int',
'type': orig_type,
'file': orig_file,
'extern': orig_extern,
'static': orig_static,
})
# Обновляем или добавляем по одному var в XML
for v in updated_vars:
var_elem = None
for ve in vars_elem.findall('var'):
if ve.attrib.get('name') == v['name']:
var_elem = ve
break
if var_elem is None:
var_elem = ET.SubElement(vars_elem, 'var', {'name': v['name']})
def set_sub_elem_text(parent, tag, text):
el = parent.find(tag)
if el is None:
el = ET.SubElement(parent, tag)
el.text = str(text)
set_sub_elem_text(var_elem, 'enable', 'true' if v['enable'] else 'false')
set_sub_elem_text(var_elem, 'shortname', v['shortname'])
set_sub_elem_text(var_elem, 'pt_type', v['pt_type'])
set_sub_elem_text(var_elem, 'iq_type', v['iq_type'])
set_sub_elem_text(var_elem, 'return_type', v['return_type'])
set_sub_elem_text(var_elem, 'type', v['type'])
set_sub_elem_text(var_elem, 'file', v['file'])
set_sub_elem_text(var_elem, 'extern', v['extern'])
set_sub_elem_text(var_elem, 'static', v['static'])
# Сохраняем изменения
tree.write(xml_path, encoding='utf-8', xml_declaration=True)
except Exception as e:
print(f"Ошибка при сохранении XML: {e}")
if __name__ == "__main__":
app = QApplication(sys.argv)
editor = VarEditor()
editor.resize(900, 600)
editor.show()
sys.exit(app.exec())

2769
vars.xml
View File

@@ -1,3315 +1,3648 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<analysis proj_path="E:/.WORK/TMS/TMS_new_bus" makefile_path="Debug\makefile" structs_path="Src/DebugTools/structs.xml"> <analysis proj_path="F:/Work/Projects/TMS/TMS_new_bus" makefile_path="Debug/makefile" structs_path="Src/DebugTools/structs.xml">
<structs_xml>F:\Work\Projects\TMS\TMS_new_bus\Src\DebugTools\structs.xml</structs_xml>
<variables> <variables>
<var name="ADC0finishAddr"> <var name="ADC0finishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC0finishAddr</shortname> <shortname>ADC0finishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC0startAddr"> <var name="ADC0startAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC0startAddr</shortname> <shortname>ADC0startAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC1finishAddr"> <var name="ADC1finishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC1finishAddr</shortname> <shortname>ADC1finishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC1startAddr"> <var name="ADC1startAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC1startAddr</shortname> <shortname>ADC1startAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC2finishAddr"> <var name="ADC2finishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC2finishAddr</shortname> <shortname>ADC2finishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC2startAddr"> <var name="ADC2startAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC2startAddr</shortname> <shortname>ADC2startAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC_f"> <var name="ADC_f">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC_f</shortname> <shortname>ADC_f</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int[2][16]</type> <type>int[2][16]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC_sf"> <var name="ADC_sf">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADC_sf</shortname> <shortname>ADC_sf</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int[2][16]</type> <type>int[2][16]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADDR_FOR_ALL"> <var name="ADDR_FOR_ALL">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ADDR_FOR_ALL</shortname> <shortname>ADDR_FOR_ALL</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="BUSY"> <var name="BUSY">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>BUSY</shortname> <shortname>BUSY</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Bender"> <var name="Bender">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Bender</shortname> <shortname>Bender</shortname>
<pt_type>pt_arr_struct</pt_type> <pt_type>pt_arr_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>BENDER[2]</type> <type>BENDER[2]</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_answer_wait"> <var name="CAN_answer_wait">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_answer_wait</shortname> <shortname>CAN_answer_wait</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[32]</type> <type>int[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_count_cycle_input_units"> <var name="CAN_count_cycle_input_units">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_count_cycle_input_units</shortname> <shortname>CAN_count_cycle_input_units</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[8]</type> <type>int[8]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_no_answer"> <var name="CAN_no_answer">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_no_answer</shortname> <shortname>CAN_no_answer</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[32]</type> <type>int[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_refresh_cicle"> <var name="CAN_refresh_cicle">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_refresh_cicle</shortname> <shortname>CAN_refresh_cicle</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[32]</type> <type>int[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_request_sent"> <var name="CAN_request_sent">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_request_sent</shortname> <shortname>CAN_request_sent</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>iq_none</return_type>
<type>int[32]</type> <type>int[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_timeout"> <var name="CAN_timeout">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_timeout</shortname> <shortname>CAN_timeout</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[32]</type> <type>int[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CAN_timeout_cicle"> <var name="CAN_timeout_cicle">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CAN_timeout_cicle</shortname> <shortname>CAN_timeout_cicle</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[32]</type> <type>int[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CNTRL_ADDR"> <var name="CNTRL_ADDR">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CNTRL_ADDR</shortname> <shortname>CNTRL_ADDR</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CNTRL_ADDR_UNIVERSAL"> <var name="CNTRL_ADDR_UNIVERSAL">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CNTRL_ADDR_UNIVERSAL</shortname> <shortname>CNTRL_ADDR_UNIVERSAL</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>const int</type> <type>const int</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CONST_15"> <var name="CONST_15">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CONST_15</shortname> <shortname>CONST_15</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/myLibs/mathlib.c</file> <file>Src/DebugTools/Src/myLibs/mathlib.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CONST_23"> <var name="CONST_23">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CONST_23</shortname> <shortname>CONST_23</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/myLibs/mathlib.c</file> <file>Src/DebugTools/Src/myLibs/mathlib.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CanOpenUnites"> <var name="CanOpenUnites">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CanOpenUnites</shortname> <shortname>CanOpenUnites</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[30]</type> <type>int[30]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="CanTimeOutErrorTR"> <var name="CanTimeOutErrorTR">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>CanTimeOutErrorTR</shortname> <shortname>CanTimeOutErrorTR</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Controll"> <var name="Controll">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Controll</shortname> <shortname>Controll</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>XControll_reg</type> <type>XControll_reg</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Dpwm"> <var name="Dpwm">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Dpwm</shortname> <shortname>Dpwm</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Dpwm2"> <var name="Dpwm2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Dpwm2</shortname> <shortname>Dpwm2</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Dpwm4"> <var name="Dpwm4">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Dpwm4</shortname> <shortname>Dpwm4</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="EvaTimer1InterruptCount"> <var name="EvaTimer1InterruptCount">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>EvaTimer1InterruptCount</shortname> <shortname>EvaTimer1InterruptCount</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/281xEvTimersInit.c</file> <file>Src/DebugTools/Src/main/281xEvTimersInit.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="EvaTimer2InterruptCount"> <var name="EvaTimer2InterruptCount">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>EvaTimer2InterruptCount</shortname> <shortname>EvaTimer2InterruptCount</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/281xEvTimersInit.c</file> <file>Src/DebugTools/Src/main/281xEvTimersInit.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="EvbTimer3InterruptCount"> <var name="EvbTimer3InterruptCount">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>EvbTimer3InterruptCount</shortname> <shortname>EvbTimer3InterruptCount</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/281xEvTimersInit.c</file> <file>Src/DebugTools/Src/main/281xEvTimersInit.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="EvbTimer4InterruptCount"> <var name="EvbTimer4InterruptCount">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>EvbTimer4InterruptCount</shortname> <shortname>EvbTimer4InterruptCount</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/281xEvTimersInit.c</file> <file>Src/DebugTools/Src/main/281xEvTimersInit.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Fpwm"> <var name="Fpwm">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Fpwm</shortname> <shortname>Fpwm</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Gott"> <var name="Gott">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Gott</shortname> <shortname>Gott</shortname>
<pt_type>pt_arr_int8</pt_type> <pt_type>pt_arr_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char[8][16]</type> <type>char[8][16]</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="IN0finishAddr"> <var name="IN0finishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IN0finishAddr</shortname> <shortname>IN0finishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="IN0startAddr"> <var name="IN0startAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IN0startAddr</shortname> <shortname>IN0startAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="IN1finishAddr"> <var name="IN1finishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IN1finishAddr</shortname> <shortname>IN1finishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="IN1startAddr"> <var name="IN1startAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IN1startAddr</shortname> <shortname>IN1startAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="IN2finishAddr"> <var name="IN2finishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IN2finishAddr</shortname> <shortname>IN2finishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="IN2startAddr"> <var name="IN2startAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IN2startAddr</shortname> <shortname>IN2startAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="IQ_OUT_NOM"> <var name="IQ_OUT_NOM">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>IQ_OUT_NOM</shortname> <shortname>IQ_OUT_NOM</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="I_OUT_1_6_NOMINAL_IQ"> <var name="I_OUT_1_6_NOMINAL_IQ">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>I_OUT_1_6_NOMINAL_IQ</shortname> <shortname>I_OUT_1_6_NOMINAL_IQ</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="I_OUT_1_8_NOMINAL_IQ"> <var name="I_OUT_1_8_NOMINAL_IQ">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>I_OUT_1_8_NOMINAL_IQ</shortname> <shortname>I_OUT_1_8_NOMINAL_IQ</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="I_OUT_NOMINAL"> <var name="I_OUT_NOMINAL">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>I_OUT_NOMINAL</shortname> <shortname>I_OUT_NOMINAL</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="I_OUT_NOMINAL_IQ"> <var name="I_OUT_NOMINAL_IQ">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>I_OUT_NOMINAL_IQ</shortname> <shortname>I_OUT_NOMINAL_IQ</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="I_ZPT_NOMINAL_IQ"> <var name="I_ZPT_NOMINAL_IQ">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>I_ZPT_NOMINAL_IQ</shortname> <shortname>I_ZPT_NOMINAL_IQ</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Id_out_max_full"> <var name="Id_out_max_full">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Id_out_max_full</shortname> <shortname>Id_out_max_full</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/VectorControl/regul_power.c</file> <file>Src/DebugTools/Src/VectorControl/regul_power.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Id_out_max_low_speed"> <var name="Id_out_max_low_speed">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Id_out_max_low_speed</shortname> <shortname>Id_out_max_low_speed</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/VectorControl/regul_power.c</file> <file>Src/DebugTools/Src/VectorControl/regul_power.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Iq_out_max"> <var name="Iq_out_max">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Iq_out_max</shortname> <shortname>Iq_out_max</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Iq_out_nom"> <var name="Iq_out_nom">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Iq_out_nom</shortname> <shortname>Iq_out_nom</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/params_i_out.c</file> <file>Src/DebugTools/Src/main/params_i_out.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="K_LEM_ADC"> <var name="K_LEM_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>K_LEM_ADC</shortname> <shortname>K_LEM_ADC</shortname>
<pt_type>pt_arr_uint32</pt_type> <pt_type>pt_arr_uint32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>const unsigned long[20]</type> <type>const unsigned long[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="KmodTerm"> <var name="KmodTerm">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>KmodTerm</shortname> <shortname>KmodTerm</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ROTfinishAddr"> <var name="ROTfinishAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ROTfinishAddr</shortname> <shortname>ROTfinishAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="RS_Len"> <var name="RS_Len">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>RS_Len</shortname> <shortname>RS_Len</shortname>
<pt_type>pt_arr_uint16</pt_type> <pt_type>pt_arr_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int[70]</type> <type>unsigned int[70]</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="R_ADC"> <var name="R_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>R_ADC</shortname> <shortname>R_ADC</shortname>
<pt_type>pt_arr_uint16</pt_type> <pt_type>pt_arr_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>const unsigned int[20]</type> <type>const unsigned int[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="RotPlaneStartAddr"> <var name="RotPlaneStartAddr">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>RotPlaneStartAddr</shortname> <shortname>RotPlaneStartAddr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="SQRT_32"> <var name="SQRT_32">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>SQRT_32</shortname> <shortname>SQRT_32</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/myLibs/mathlib.c</file> <file>Src/DebugTools/Src/myLibs/mathlib.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Unites"> <var name="Unites">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Unites</shortname> <shortname>Unites</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[8][128]</type> <type>int[8][128]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="VAR_FREQ_PWM_XTICS"> <var name="VAR_FREQ_PWM_XTICS">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>VAR_FREQ_PWM_XTICS</shortname> <shortname>VAR_FREQ_PWM_XTICS</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="VAR_PERIOD_MAX_XTICS"> <var name="VAR_PERIOD_MAX_XTICS">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>VAR_PERIOD_MAX_XTICS</shortname> <shortname>VAR_PERIOD_MAX_XTICS</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="VAR_PERIOD_MIN_BR_XTICS"> <var name="VAR_PERIOD_MIN_BR_XTICS">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>VAR_PERIOD_MIN_BR_XTICS</shortname> <shortname>VAR_PERIOD_MIN_BR_XTICS</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="VAR_PERIOD_MIN_XTICS"> <var name="VAR_PERIOD_MIN_XTICS">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>VAR_PERIOD_MIN_XTICS</shortname> <shortname>VAR_PERIOD_MIN_XTICS</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="Zpwm"> <var name="Zpwm">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>Zpwm</shortname> <shortname>Zpwm</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="a"> <var name="a">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>a</shortname> <shortname>a</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>WINDING</type> <type>WINDING</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="addrToSent"> <var name="addrToSent">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>addrToSent</shortname> <shortname>addrToSent</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>volatile AddrToSent</type> <type>volatile AddrToSent</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="adr_read_from_modbus3"> <var name="adr_read_from_modbus3">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>adr_read_from_modbus3</shortname> <shortname>adr_read_from_modbus3</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="alarm_log_can"> <var name="alarm_log_can">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>alarm_log_can</shortname> <shortname>alarm_log_can</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ALARM_LOG_CAN</type> <type>ALARM_LOG_CAN</type>
<file>Src/myLibs/alarm_log_can.c</file> <file>Src/DebugTools/Src/myLibs/alarm_log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="alarm_log_can_setup"> <var name="alarm_log_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>alarm_log_can_setup</shortname> <shortname>alarm_log_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ALARM_LOG_CAN_SETUP</type> <type>ALARM_LOG_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="analog"> <var name="analog">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>analog</shortname> <shortname>analog</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ANALOG_VALUE</type> <type>ANALOG_VALUE</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ar_sa_all"> <var name="ar_sa_all">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ar_sa_all</shortname> <shortname>ar_sa_all</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[3][6][4][7]</type> <type>int[3][6][4][7]</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ar_tph"> <var name="ar_tph">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>ar_tph</shortname> <shortname>ar_tph</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq[7]</type> <type>_iq[7]</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="biTemperatureLimits"> <var name="biTemperatureLimits">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>biTemperatureLimits</shortname> <shortname>biTemperatureLimits</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[12]</type> <type>int[12]</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="biTemperatureWarnings"> <var name="biTemperatureWarnings">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>biTemperatureWarnings</shortname> <shortname>biTemperatureWarnings</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[12]</type> <type>int[12]</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="block_size_counter_fast"> <var name="block_size_counter_fast">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>block_size_counter_fast</shortname> <shortname>block_size_counter_fast</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="block_size_counter_slow"> <var name="block_size_counter_slow">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>block_size_counter_slow</shortname> <shortname>block_size_counter_slow</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="break_result_1"> <var name="break_result_1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>break_result_1</shortname> <shortname>break_result_1</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="break_result_2"> <var name="break_result_2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>break_result_2</shortname> <shortname>break_result_2</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="break_result_3"> <var name="break_result_3">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>break_result_3</shortname> <shortname>break_result_3</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="break_result_4"> <var name="break_result_4">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>break_result_4</shortname> <shortname>break_result_4</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="bvTemperatureLimits"> <var name="bvTemperatureLimits">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>bvTemperatureLimits</shortname> <shortname>bvTemperatureLimits</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[12]</type> <type>int[12]</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="bvTemperatureWarnings"> <var name="bvTemperatureWarnings">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>bvTemperatureWarnings</shortname> <shortname>bvTemperatureWarnings</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[12]</type> <type>int[12]</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="byte"> <var name="byte">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>byte</shortname> <shortname>byte</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>Byte</type> <type>Byte</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="c_s"> <var name="c_s">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>c_s</shortname> <shortname>c_s</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="calibration1"> <var name="calibration1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>calibration1</shortname> <shortname>calibration1</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/isolation.c</file> <file>Src/DebugTools/Src/main/isolation.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="calibration2"> <var name="calibration2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>calibration2</shortname> <shortname>calibration2</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/isolation.c</file> <file>Src/DebugTools/Src/main/isolation.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="callfunc"> <var name="callfunc">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>callfunc</shortname> <shortname>callfunc</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>test_functions</type> <type>test_functions</type>
<file>Src/main/Main.c</file> <file>Src/DebugTools/Src/main/Main.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="canopen_can_setup"> <var name="canopen_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>canopen_can_setup</shortname> <shortname>canopen_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>CANOPEN_CAN_SETUP</type> <type>CANOPEN_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="capnum0"> <var name="capnum0">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>capnum0</shortname> <shortname>capnum0</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="capnum1"> <var name="capnum1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>capnum1</shortname> <shortname>capnum1</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="capnum2"> <var name="capnum2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>capnum2</shortname> <shortname>capnum2</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="capnum3"> <var name="capnum3">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>capnum3</shortname> <shortname>capnum3</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="chNum"> <var name="chNum">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>chNum</shortname> <shortname>chNum</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/x_example_all.c</file> <file>Src/DebugTools/Src/myXilinx/x_example_all.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="chanell1"> <var name="chanell1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>chanell1</shortname> <shortname>chanell1</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>BREAK_PHASE_I</type> <type>BREAK_PHASE_I</type>
<file>Src/main/detect_phase.c</file> <file>Src/DebugTools/Src/main/detect_phase.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="chanell2"> <var name="chanell2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>chanell2</shortname> <shortname>chanell2</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>BREAK_PHASE_I</type> <type>BREAK_PHASE_I</type>
<file>Src/main/detect_phase.c</file> <file>Src/DebugTools/Src/main/detect_phase.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="cmd_3_or_16"> <var name="cmd_3_or_16">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cmd_3_or_16</shortname> <shortname>cmd_3_or_16</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="cmd_crc"> <var name="cmd_crc">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cmd_crc</shortname> <shortname>cmd_crc</shortname>
<pt_type>pt_arr_int8</pt_type> <pt_type>pt_arr_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char[4]</type> <type>char[4]</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="cmd_finish1"> <var name="cmd_finish1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cmd_finish1</shortname> <shortname>cmd_finish1</shortname>
<pt_type>pt_int8</pt_type> <pt_type>pt_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char</type> <type>char</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="cmd_finish2"> <var name="cmd_finish2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cmd_finish2</shortname> <shortname>cmd_finish2</shortname>
<pt_type>pt_int8</pt_type> <pt_type>pt_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char</type> <type>char</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="cmd_start"> <var name="cmd_start">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cmd_start</shortname> <shortname>cmd_start</shortname>
<pt_type>pt_arr_int8</pt_type> <pt_type>pt_arr_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char[5]</type> <type>char[5]</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="cmd_txt"> <var name="cmd_txt">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cmd_txt</shortname> <shortname>cmd_txt</shortname>
<pt_type>pt_arr_int8</pt_type> <pt_type>pt_arr_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char[4][8]</type> <type>char[4][8]</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="compress_size"> <var name="compress_size">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>compress_size</shortname> <shortname>compress_size</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/alarm_log_can.c</file> <file>Src/DebugTools/Src/myLibs/alarm_log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="controlReg"> <var name="controlReg">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>controlReg</shortname> <shortname>controlReg</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ControlReg</type> <type>ControlReg</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="cos_fi"> <var name="cos_fi">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cos_fi</shortname> <shortname>cos_fi</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>COS_FI_STRUCT</type> <type>COS_FI_STRUCT</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="count_error_sync"> <var name="count_error_sync">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>count_error_sync</shortname> <shortname>count_error_sync</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="count_modbus_table_changed"> <var name="count_modbus_table_changed">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>count_modbus_table_changed</shortname> <shortname>count_modbus_table_changed</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_fill_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_fill_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="count_run_pch"> <var name="count_run_pch">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>count_run_pch</shortname> <shortname>count_run_pch</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="counterSBWriteErrors"> <var name="counterSBWriteErrors">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>counterSBWriteErrors</shortname> <shortname>counterSBWriteErrors</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/x_serial_bus.c</file> <file>Src/DebugTools/Src/myXilinx/x_serial_bus.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="crc_16_tab"> <var name="crc_16_tab">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>crc_16_tab</shortname> <shortname>crc_16_tab</shortname>
<pt_type>pt_arr_uint16</pt_type> <pt_type>pt_arr_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>WORD[256]</type> <type>WORD[256]</type>
<file>Src/myXilinx/CRC_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/CRC_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="crypt"> <var name="crypt">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>crypt</shortname> <shortname>crypt</shortname>
<pt_type>pt_arr_int8</pt_type> <pt_type>pt_arr_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char[34]</type> <type>char[34]</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="cur_position_buf_modbus16"> <var name="cur_position_buf_modbus16">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cur_position_buf_modbus16</shortname> <shortname>cur_position_buf_modbus16</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/message_modbus.c</file> <file>Src/DebugTools/Src/myLibs/message_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="cur_position_buf_modbus16_can"> <var name="cur_position_buf_modbus16_can">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cur_position_buf_modbus16_can</shortname> <shortname>cur_position_buf_modbus16_can</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/message_modbus.c</file> <file>Src/DebugTools/Src/myLibs/message_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="cur_position_buf_modbus3"> <var name="cur_position_buf_modbus3">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cur_position_buf_modbus3</shortname> <shortname>cur_position_buf_modbus3</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/message_modbus.c</file> <file>Src/DebugTools/Src/myLibs/message_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="cycle"> <var name="cycle">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>cycle</shortname> <shortname>cycle</shortname>
<pt_type>pt_arr_struct</pt_type> <pt_type>pt_arr_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>CYCLE[32]</type> <type>CYCLE[32]</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="data_to_umu1_7f"> <var name="data_to_umu1_7f">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>data_to_umu1_7f</shortname> <shortname>data_to_umu1_7f</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="data_to_umu1_8"> <var name="data_to_umu1_8">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>data_to_umu1_8</shortname> <shortname>data_to_umu1_8</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="data_to_umu2_7f"> <var name="data_to_umu2_7f">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>data_to_umu2_7f</shortname> <shortname>data_to_umu2_7f</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="data_to_umu2_8"> <var name="data_to_umu2_8">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>data_to_umu2_8</shortname> <shortname>data_to_umu2_8</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/init_protect_levels.c</file> <file>Src/DebugTools/Src/main/init_protect_levels.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="delta_capnum"> <var name="delta_capnum">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>delta_capnum</shortname> <shortname>delta_capnum</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="delta_error"> <var name="delta_error">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>delta_error</shortname> <shortname>delta_error</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="doors"> <var name="doors">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>doors</shortname> <shortname>doors</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>volatile DOORS_STATUS</type> <type>volatile DOORS_STATUS</type>
<file>Src/main/doors_control.c</file> <file>Src/DebugTools/Src/main/doors_control.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="dq_to_ab"> <var name="dq_to_ab">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>dq_to_ab</shortname> <shortname>dq_to_ab</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>DQ_TO_ALPHABETA</type> <type>DQ_TO_ALPHABETA</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="enable_can"> <var name="enable_can">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>enable_can</shortname> <shortname>enable_can</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/message_modbus.c</file> <file>Src/DebugTools/Src/myLibs/message_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="enable_can_recive_after_units_box"> <var name="enable_can_recive_after_units_box">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>enable_can_recive_after_units_box</shortname> <shortname>enable_can_recive_after_units_box</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="err_level_adc"> <var name="err_level_adc">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>err_level_adc</shortname> <shortname>err_level_adc</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="err_level_adc_on_go"> <var name="err_level_adc_on_go">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>err_level_adc_on_go</shortname> <shortname>err_level_adc_on_go</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="err_main"> <var name="err_main">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>err_main</shortname> <shortname>err_main</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/Main.c</file> <file>Src/DebugTools/Src/main/Main.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="err_modbus16"> <var name="err_modbus16">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>err_modbus16</shortname> <shortname>err_modbus16</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="err_modbus3"> <var name="err_modbus3">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>err_modbus3</shortname> <shortname>err_modbus3</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="errors"> <var name="errors">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>errors</shortname> <shortname>errors</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ERRORS</type> <type>ERRORS</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="f"> <var name="f">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>f</shortname> <shortname>f</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>FLAG</type> <type>FLAG</type>
<file>Src/main/Main.c</file> <file>Src/DebugTools/Src/main/Main.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="fail"> <var name="fail">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>fail</shortname> <shortname>fail</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>volatile int</type> <type>volatile int</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="faults"> <var name="faults">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>faults</shortname> <shortname>faults</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>FAULTS</type> <type>FAULTS</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="fifo"> <var name="fifo">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>fifo</shortname> <shortname>fifo</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>FIFO</type> <type>FIFO</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="filter"> <var name="filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>filter</shortname> <shortname>filter</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ANALOG_VALUE</type> <type>ANALOG_VALUE</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_buf"> <var name="flag_buf">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_buf</shortname> <shortname>flag_buf</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_enable_can_from_mpu"> <var name="flag_enable_can_from_mpu">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_enable_can_from_mpu</shortname> <shortname>flag_enable_can_from_mpu</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_enable_can_from_terminal"> <var name="flag_enable_can_from_terminal">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_enable_can_from_terminal</shortname> <shortname>flag_enable_can_from_terminal</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_on_off_pch"> <var name="flag_on_off_pch">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_on_off_pch</shortname> <shortname>flag_on_off_pch</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_received_first_mess_from_MPU"> <var name="flag_received_first_mess_from_MPU">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_received_first_mess_from_MPU</shortname> <shortname>flag_received_first_mess_from_MPU</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_reverse"> <var name="flag_reverse">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_reverse</shortname> <shortname>flag_reverse</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_send_answer_rs"> <var name="flag_send_answer_rs">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_send_answer_rs</shortname> <shortname>flag_send_answer_rs</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_test_tabe_filled"> <var name="flag_test_tabe_filled">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_test_tabe_filled</shortname> <shortname>flag_test_tabe_filled</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_fill_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_fill_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="flag_we_int_pwm_on"> <var name="flag_we_int_pwm_on">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>flag_we_int_pwm_on</shortname> <shortname>flag_we_int_pwm_on</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="freq1"> <var name="freq1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>freq1</shortname> <shortname>freq1</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="freqTerm"> <var name="freqTerm">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>freqTerm</shortname> <shortname>freqTerm</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="global_time"> <var name="global_time">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>global_time</shortname> <shortname>global_time</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>GLOBAL_TIME</type> <type>GLOBAL_TIME</type>
<file>Src/main/global_time.c</file> <file>Src/DebugTools/Src/main/global_time.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="hb_logs_data"> <var name="hb_logs_data">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>hb_logs_data</shortname> <shortname>hb_logs_data</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="i"> <var name="i">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>i</shortname> <shortname>i</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="i1_out"> <var name="i1_out">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>i1_out</shortname> <shortname>i1_out</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>BREAK2_PHASE</type> <type>BREAK2_PHASE</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="i2_out"> <var name="i2_out">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>i2_out</shortname> <shortname>i2_out</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>BREAK2_PHASE</type> <type>BREAK2_PHASE</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="init_log"> <var name="init_log">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>init_log</shortname> <shortname>init_log</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[3]</type> <type>int[3]</type>
<file>Src/myLibs/log_can.c</file> <file>Src/DebugTools/Src/myLibs/log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq19_k_norm_ADC"> <var name="iq19_k_norm_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq19_k_norm_ADC</shortname> <shortname>iq19_k_norm_ADC</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq19</iq_type> <iq_type>t_iq19</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq19[20]</type> <type>_iq19[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq19_zero_ADC"> <var name="iq19_zero_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq19_zero_ADC</shortname> <shortname>iq19_zero_ADC</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq19</iq_type> <iq_type>t_iq19</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq19[20]</type> <type>_iq19[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq_alfa_coef"> <var name="iq_alfa_coef">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq_alfa_coef</shortname> <shortname>iq_alfa_coef</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq_k_norm_ADC"> <var name="iq_k_norm_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq_k_norm_ADC</shortname> <shortname>iq_k_norm_ADC</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq[20]</type> <type>_iq[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq_logpar"> <var name="iq_logpar">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq_logpar</shortname> <shortname>iq_logpar</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>IQ_LOGSPARAMS</type> <type>IQ_LOGSPARAMS</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq_max"> <var name="iq_max">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq_max</shortname> <shortname>iq_max</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/myLibs/svgen_dq_v2.c</file> <file>Src/DebugTools/Src/myLibs/svgen_dq_v2.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="iq_norm_ADC"> <var name="iq_norm_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>iq_norm_ADC</shortname> <shortname>iq_norm_ADC</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq[20]</type> <type>_iq[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="isolation1"> <var name="isolation1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>isolation1</shortname> <shortname>isolation1</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ISOLATION</type> <type>ISOLATION</type>
<file>Src/main/isolation.c</file> <file>Src/DebugTools/Src/main/isolation.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="isolation2"> <var name="isolation2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>isolation2</shortname> <shortname>isolation2</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ISOLATION</type> <type>ISOLATION</type>
<file>Src/main/isolation.c</file> <file>Src/DebugTools/Src/main/isolation.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="k1"> <var name="k1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>k1</shortname> <shortname>k1</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kI_D"> <var name="kI_D">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kI_D</shortname> <shortname>kI_D</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kI_D_Inv31"> <var name="kI_D_Inv31">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kI_D_Inv31</shortname> <shortname>kI_D_Inv31</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kI_Q"> <var name="kI_Q">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kI_Q</shortname> <shortname>kI_Q</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kI_Q_Inv31"> <var name="kI_Q_Inv31">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kI_Q_Inv31</shortname> <shortname>kI_Q_Inv31</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kP_D"> <var name="kP_D">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kP_D</shortname> <shortname>kP_D</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kP_D_Inv31"> <var name="kP_D_Inv31">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kP_D_Inv31</shortname> <shortname>kP_D_Inv31</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kP_Q"> <var name="kP_Q">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kP_Q</shortname> <shortname>kP_Q</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kP_Q_Inv31"> <var name="kP_Q_Inv31">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kP_Q_Inv31</shortname> <shortname>kP_Q_Inv31</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kan"> <var name="kan">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kan</shortname> <shortname>kan</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="koef_Base_stop_run"> <var name="koef_Base_stop_run">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Base_stop_run</shortname> <shortname>koef_Base_stop_run</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Iabc_filter"> <var name="koef_Iabc_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Iabc_filter</shortname> <shortname>koef_Iabc_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Im_filter"> <var name="koef_Im_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Im_filter</shortname> <shortname>koef_Im_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Im_filter_long"> <var name="koef_Im_filter_long">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Im_filter_long</shortname> <shortname>koef_Im_filter_long</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_K_stop_run"> <var name="koef_K_stop_run">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_K_stop_run</shortname> <shortname>koef_K_stop_run</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Krecup"> <var name="koef_Krecup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Krecup</shortname> <shortname>koef_Krecup</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Min_recup"> <var name="koef_Min_recup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Min_recup</shortname> <shortname>koef_Min_recup</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/break_regul.c</file> <file>Src/DebugTools/Src/main/break_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_TemperBSU_long_filter"> <var name="koef_TemperBSU_long_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_TemperBSU_long_filter</shortname> <shortname>koef_TemperBSU_long_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Ud_fast_filter"> <var name="koef_Ud_fast_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Ud_fast_filter</shortname> <shortname>koef_Ud_fast_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Ud_long_filter"> <var name="koef_Ud_long_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Ud_long_filter</shortname> <shortname>koef_Ud_long_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Wlong"> <var name="koef_Wlong">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Wlong</shortname> <shortname>koef_Wlong</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Wout_filter"> <var name="koef_Wout_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Wout_filter</shortname> <shortname>koef_Wout_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koef_Wout_filter_long"> <var name="koef_Wout_filter_long">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koef_Wout_filter_long</shortname> <shortname>koef_Wout_filter_long</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koeff_Fs_filter"> <var name="koeff_Fs_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koeff_Fs_filter</shortname> <shortname>koeff_Fs_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koeff_Idq_filter"> <var name="koeff_Idq_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koeff_Idq_filter</shortname> <shortname>koeff_Idq_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koeff_Iq_filter"> <var name="koeff_Iq_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koeff_Iq_filter</shortname> <shortname>koeff_Iq_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/VectorControl/regul_power.c</file> <file>Src/DebugTools/Src/VectorControl/regul_power.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koeff_Iq_filter_slow"> <var name="koeff_Iq_filter_slow">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koeff_Iq_filter_slow</shortname> <shortname>koeff_Iq_filter_slow</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koeff_Ud_filter"> <var name="koeff_Ud_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koeff_Ud_filter</shortname> <shortname>koeff_Ud_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="koeff_Uq_filter"> <var name="koeff_Uq_filter">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>koeff_Uq_filter</shortname> <shortname>koeff_Uq_filter</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="kom"> <var name="kom">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>kom</shortname> <shortname>kom</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/bender.c</file> <file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="length"> <var name="length">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>length</shortname> <shortname>length</shortname>
<pt_type>pt_uint32</pt_type> <pt_type>pt_uint32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>volatile unsigned long</type> <type>volatile unsigned long</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="level_on_off_break"> <var name="level_on_off_break">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>level_on_off_break</shortname> <shortname>level_on_off_break</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq[13][2]</type> <type>_iq[13][2]</type>
<file>Src/main/break_tools.c</file> <file>Src/DebugTools/Src/main/break_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="log_can"> <var name="log_can">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>log_can</shortname> <shortname>log_can</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>logcan_TypeDef</type> <type>logcan_TypeDef</type>
<file>Src/myLibs/log_can.c</file> <file>Src/DebugTools/Src/myLibs/log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="log_can_setup"> <var name="log_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>log_can_setup</shortname> <shortname>log_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>LOG_CAN_SETUP</type> <type>LOG_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="log_params"> <var name="log_params">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>log_params</shortname> <shortname>log_params</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>TYPE_LOG_PARAMS</type> <type>TYPE_LOG_PARAMS</type>
<file>Src/myLibs/log_params.c</file> <file>Src/DebugTools/Src/myLibs/log_params.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="logbuf_sync1"> <var name="logbuf_sync1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>logbuf_sync1</shortname> <shortname>logbuf_sync1</shortname>
<pt_type>pt_arr_int32</pt_type> <pt_type>pt_arr_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long[10]</type> <type>long[10]</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="logpar"> <var name="logpar">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>logpar</shortname> <shortname>logpar</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>LOGSPARAMS</type> <type>LOGSPARAMS</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="mPWM_a"> <var name="mPWM_a">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mPWM_a</shortname> <shortname>mPWM_a</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mPWM_b"> <var name="mPWM_b">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mPWM_b</shortname> <shortname>mPWM_b</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="m_PWM"> <var name="m_PWM">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>m_PWM</shortname> <shortname>m_PWM</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="mailboxs_can_setup"> <var name="mailboxs_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mailboxs_can_setup</shortname> <shortname>mailboxs_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MAILBOXS_CAN_SETUP</type> <type>MAILBOXS_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="manufactorerAndProductID"> <var name="manufactorerAndProductID">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>manufactorerAndProductID</shortname> <shortname>manufactorerAndProductID</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_can_in"> <var name="modbus_table_can_in">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_can_in</shortname> <shortname>modbus_table_can_in</shortname>
<pt_type>pt_ptr_union</pt_type> <pt_type>pt_ptr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT *</type> <type>MODBUS_REG_STRUCT *</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_can_out"> <var name="modbus_table_can_out">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_can_out</shortname> <shortname>modbus_table_can_out</shortname>
<pt_type>pt_ptr_union</pt_type> <pt_type>pt_ptr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT *</type> <type>MODBUS_REG_STRUCT *</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_in"> <var name="modbus_table_in">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_in</shortname> <shortname>modbus_table_in</shortname>
<pt_type>pt_arr_union</pt_type> <pt_type>pt_arr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT[450]</type> <type>MODBUS_REG_STRUCT[450]</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_out"> <var name="modbus_table_out">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_out</shortname> <shortname>modbus_table_out</shortname>
<pt_type>pt_arr_union</pt_type> <pt_type>pt_arr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT[450]</type> <type>MODBUS_REG_STRUCT[450]</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_rs_in"> <var name="modbus_table_rs_in">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_rs_in</shortname> <shortname>modbus_table_rs_in</shortname>
<pt_type>pt_ptr_union</pt_type> <pt_type>pt_ptr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT *</type> <type>MODBUS_REG_STRUCT *</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_rs_out"> <var name="modbus_table_rs_out">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_rs_out</shortname> <shortname>modbus_table_rs_out</shortname>
<pt_type>pt_ptr_union</pt_type> <pt_type>pt_ptr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT *</type> <type>MODBUS_REG_STRUCT *</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="modbus_table_test"> <var name="modbus_table_test">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>modbus_table_test</shortname> <shortname>modbus_table_test</shortname>
<pt_type>pt_arr_union</pt_type> <pt_type>pt_arr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT[450]</type> <type>MODBUS_REG_STRUCT[450]</type>
<file>Src/myLibs/modbus_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="mpu_can_setup"> <var name="mpu_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mpu_can_setup</shortname> <shortname>mpu_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MPU_CAN_SETUP</type> <type>MPU_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="mzz_limit_100"> <var name="mzz_limit_100">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_100</shortname> <shortname>mzz_limit_100</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_1000"> <var name="mzz_limit_1000">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_1000</shortname> <shortname>mzz_limit_1000</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_1100"> <var name="mzz_limit_1100">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_1100</shortname> <shortname>mzz_limit_1100</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_1200"> <var name="mzz_limit_1200">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_1200</shortname> <shortname>mzz_limit_1200</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_1400"> <var name="mzz_limit_1400">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_1400</shortname> <shortname>mzz_limit_1400</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_1500"> <var name="mzz_limit_1500">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_1500</shortname> <shortname>mzz_limit_1500</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_2000"> <var name="mzz_limit_2000">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_2000</shortname> <shortname>mzz_limit_2000</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="mzz_limit_500"> <var name="mzz_limit_500">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>mzz_limit_500</shortname> <shortname>mzz_limit_500</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="new_cycle_fifo"> <var name="new_cycle_fifo">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>new_cycle_fifo</shortname> <shortname>new_cycle_fifo</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>NEW_CYCLE_FIFO</type> <type>NEW_CYCLE_FIFO</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="no_write"> <var name="no_write">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>no_write</shortname> <shortname>no_write</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="no_write_slow"> <var name="no_write_slow">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>no_write_slow</shortname> <shortname>no_write_slow</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="number_modbus_table_changed"> <var name="number_modbus_table_changed">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>number_modbus_table_changed</shortname> <shortname>number_modbus_table_changed</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/modbus_fill_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_fill_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="optical_read_data"> <var name="optical_read_data">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>optical_read_data</shortname> <shortname>optical_read_data</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>OPTICAL_BUS_DATA</type> <type>OPTICAL_BUS_DATA</type>
<file>Src/main/optical_bus.c</file> <file>Src/DebugTools/Src/main/optical_bus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="optical_write_data"> <var name="optical_write_data">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>optical_write_data</shortname> <shortname>optical_write_data</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>OPTICAL_BUS_DATA</type> <type>OPTICAL_BUS_DATA</type>
<file>Src/main/optical_bus.c</file> <file>Src/DebugTools/Src/main/optical_bus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="options_controller"> <var name="options_controller">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>options_controller</shortname> <shortname>options_controller</shortname>
<pt_type>pt_arr_union</pt_type> <pt_type>pt_arr_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>MODBUS_REG_STRUCT[200]</type> <type>MODBUS_REG_STRUCT[200]</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidCur_Ki"> <var name="pidCur_Ki">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidCur_Ki</shortname> <shortname>pidCur_Ki</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidD"> <var name="pidD">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidD</shortname> <shortname>pidD</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidD2"> <var name="pidD2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidD2</shortname> <shortname>pidD2</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidFvect"> <var name="pidFvect">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidFvect</shortname> <shortname>pidFvect</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/regul_turns.c</file> <file>Src/DebugTools/Src/VectorControl/regul_turns.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidFvectKi_test"> <var name="pidFvectKi_test">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidFvectKi_test</shortname> <shortname>pidFvectKi_test</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/message2.c</file> <file>Src/DebugTools/Src/main/message2.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidFvectKp_test"> <var name="pidFvectKp_test">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidFvectKp_test</shortname> <shortname>pidFvectKp_test</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/message2.c</file> <file>Src/DebugTools/Src/main/message2.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidPvect"> <var name="pidPvect">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidPvect</shortname> <shortname>pidPvect</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/regul_power.c</file> <file>Src/DebugTools/Src/VectorControl/regul_power.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidQ"> <var name="pidQ">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidQ</shortname> <shortname>pidQ</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidQ2"> <var name="pidQ2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidQ2</shortname> <shortname>pidQ2</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidReg_koeffs"> <var name="pidReg_koeffs">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidReg_koeffs</shortname> <shortname>pidReg_koeffs</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG_KOEFFICIENTS</type> <type>PIDREG_KOEFFICIENTS</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pidTetta"> <var name="pidTetta">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pidTetta</shortname> <shortname>pidTetta</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PIDREG3</type> <type>PIDREG3</type>
<file>Src/VectorControl/teta_calc.c</file> <file>Src/DebugTools/Src/VectorControl/teta_calc.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="power_ratio"> <var name="power_ratio">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>power_ratio</shortname> <shortname>power_ratio</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>POWER_RATIO</type> <type>POWER_RATIO</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="prev_flag_buf"> <var name="prev_flag_buf">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>prev_flag_buf</shortname> <shortname>prev_flag_buf</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="prev_status_received"> <var name="prev_status_received">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>prev_status_received</shortname> <shortname>prev_status_received</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myLibs/log_can.c</file> <file>Src/DebugTools/Src/myLibs/log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="project"> <var name="project">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>project</shortname> <shortname>project</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>T_project</type> <type>T_project</type>
<file>Src/myXilinx/xp_project.c</file> <file>Src/DebugTools/Src/myXilinx/xp_project.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="pwmd"> <var name="pwmd">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>pwmd</shortname> <shortname>pwmd</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>PWMGEND</type> <type>PWMGEND</type>
<file>Src/main/PWMTMSHandle.c</file> <file>Src/DebugTools/Src/main/PWMTMSHandle.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="r_c_sbus"> <var name="r_c_sbus">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>r_c_sbus</shortname> <shortname>r_c_sbus</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>T_controller_read</type> <type>T_controller_read</type>
<file>Src/myXilinx/x_serial_bus.c</file> <file>Src/DebugTools/Src/myXilinx/x_serial_bus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="r_controller"> <var name="r_controller">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>r_controller</shortname> <shortname>r_controller</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>T_controller_read</type> <type>T_controller_read</type>
<file>Src/myXilinx/xp_hwp.c</file> <file>Src/DebugTools/Src/myXilinx/xp_hwp.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="refo"> <var name="refo">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>refo</shortname> <shortname>refo</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>FIFO</type> <type>FIFO</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="reply"> <var name="reply">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>reply</shortname> <shortname>reply</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>TMS_TO_TERMINAL_STRUCT</type> <type>TMS_TO_TERMINAL_STRUCT</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="reply_test_all"> <var name="reply_test_all">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>reply_test_all</shortname> <shortname>reply_test_all</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>TMS_TO_TERMINAL_TEST_ALL_STRUCT</type> <type>TMS_TO_TERMINAL_TEST_ALL_STRUCT</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions_modbus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="return_var"> <var name="return_var">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>return_var</shortname> <shortname>return_var</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/Main.c</file> <file>Src/DebugTools/Src/main/Main.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="rmp_freq"> <var name="rmp_freq">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>rmp_freq</shortname> <shortname>rmp_freq</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>RMP_MY1</type> <type>RMP_MY1</type>
<file>Src/main/PWMTools.c</file> <file>Src/DebugTools/Src/main/PWMTools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="rmp_wrot"> <var name="rmp_wrot">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>rmp_wrot</shortname> <shortname>rmp_wrot</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>RMP_MY1</type> <type>RMP_MY1</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="rotation_sensor"> <var name="rotation_sensor">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>rotation_sensor</shortname> <shortname>rotation_sensor</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>T_rotation_sensor</type> <type>T_rotation_sensor</type>
<file>Src/myXilinx/xp_rotation_sensor.c</file> <file>Src/DebugTools/Src/myXilinx/xp_rotation_sensor.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="rotor"> <var name="rotor">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>rotor</shortname> <shortname>rotor</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>ROTOR_VALUE</type> <type>ROTOR_VALUE</type>
<file>Src/main/rotation_speed.c</file> <file>Src/DebugTools/Src/main/rotation_speed.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="rs_a"> <var name="rs_a">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>rs_a</shortname> <shortname>rs_a</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>RS_DATA_STRUCT</type> <type>RS_DATA_STRUCT</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="rs_b"> <var name="rs_b">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>rs_b</shortname> <shortname>rs_b</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>RS_DATA_STRUCT</type> <type>RS_DATA_STRUCT</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="sincronisationFault"> <var name="sincronisationFault">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>sincronisationFault</shortname> <shortname>sincronisationFault</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myLibs/modbus_read_table.c</file> <file>Src/DebugTools/Src/myLibs/modbus_read_table.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="size_cmd15"> <var name="size_cmd15">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>size_cmd15</shortname> <shortname>size_cmd15</shortname>
<pt_type>pt_int8</pt_type> <pt_type>pt_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char</type> <type>char</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="size_cmd16"> <var name="size_cmd16">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>size_cmd16</shortname> <shortname>size_cmd16</shortname>
<pt_type>pt_int8</pt_type> <pt_type>pt_int8</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>char</type> <type>char</type>
<file>Src/myXilinx/RS_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/RS_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="size_fast_done"> <var name="size_fast_done">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>size_fast_done</shortname> <shortname>size_fast_done</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="size_slow_done"> <var name="size_slow_done">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>size_slow_done</shortname> <shortname>size_slow_done</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="stop_log"> <var name="stop_log">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>stop_log</shortname> <shortname>stop_log</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="stop_log_slow"> <var name="stop_log_slow">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>stop_log_slow</shortname> <shortname>stop_log_slow</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_to_memory.c</file> <file>Src/DebugTools/Src/myLibs/log_to_memory.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="svgen_dq_1"> <var name="svgen_dq_1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>svgen_dq_1</shortname> <shortname>svgen_dq_1</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>SVGENDQ</type> <type>SVGENDQ</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="svgen_dq_2"> <var name="svgen_dq_2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>svgen_dq_2</shortname> <shortname>svgen_dq_2</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>SVGENDQ</type> <type>SVGENDQ</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="svgen_pwm24_1"> <var name="svgen_pwm24_1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>svgen_pwm24_1</shortname> <shortname>svgen_pwm24_1</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>SVGEN_PWM24</type> <type>SVGEN_PWM24</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="svgen_pwm24_2"> <var name="svgen_pwm24_2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>svgen_pwm24_2</shortname> <shortname>svgen_pwm24_2</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>SVGEN_PWM24</type> <type>SVGEN_PWM24</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="temp"> <var name="temp">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>temp</shortname> <shortname>temp</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/sync_tools.c</file> <file>Src/DebugTools/Src/main/sync_tools.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="temperature_limit_koeff"> <var name="temperature_limit_koeff">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>temperature_limit_koeff</shortname> <shortname>temperature_limit_koeff</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/errors_temperature.c</file> <file>Src/DebugTools/Src/main/errors_temperature.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="temperature_warning_BI1"> <var name="temperature_warning_BI1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>temperature_warning_BI1</shortname> <shortname>temperature_warning_BI1</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>INVERTER_TEMPERATURES</type> <type>INVERTER_TEMPERATURES</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="temperature_warning_BI2"> <var name="temperature_warning_BI2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>temperature_warning_BI2</shortname> <shortname>temperature_warning_BI2</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>INVERTER_TEMPERATURES</type> <type>INVERTER_TEMPERATURES</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="temperature_warning_BV1"> <var name="temperature_warning_BV1">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>temperature_warning_BV1</shortname> <shortname>temperature_warning_BV1</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>RECTIFIER_TEMPERATURES</type> <type>RECTIFIER_TEMPERATURES</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="temperature_warning_BV2"> <var name="temperature_warning_BV2">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>temperature_warning_BV2</shortname> <shortname>temperature_warning_BV2</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>RECTIFIER_TEMPERATURES</type> <type>RECTIFIER_TEMPERATURES</type>
<file>Src/main/errors.c</file> <file>Src/DebugTools/Src/main/errors.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="terminal_can_setup"> <var name="terminal_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>terminal_can_setup</shortname> <shortname>terminal_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>TERMINAL_CAN_SETUP</type> <type>TERMINAL_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="tetta_calc"> <var name="tetta_calc">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>tetta_calc</shortname> <shortname>tetta_calc</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>TETTA_CALC</type> <type>TETTA_CALC</type>
<file>Src/VectorControl/teta_calc.c</file> <file>Src/DebugTools/Src/VectorControl/teta_calc.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="timCNT_alg"> <var name="timCNT_alg">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>timCNT_alg</shortname> <shortname>timCNT_alg</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="timCNT_prev"> <var name="timCNT_prev">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>timCNT_prev</shortname> <shortname>timCNT_prev</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="time"> <var name="time">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>time</shortname> <shortname>time</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="timePauseBENDER_Messages"> <var name="timePauseBENDER_Messages">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>timePauseBENDER_Messages</shortname> <shortname>timePauseBENDER_Messages</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/main22220.c</file> <file>Src/DebugTools/Src/main/main22220.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="timePauseCAN_Messages"> <var name="timePauseCAN_Messages">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>timePauseCAN_Messages</shortname> <shortname>timePauseCAN_Messages</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/main/main22220.c</file> <file>Src/DebugTools/Src/main/main22220.c</file>
<extern>false</extern> <extern>false</extern>
<static>true</static> <static>True</static>
</var> </var>
<var name="time_alg"> <var name="time_alg">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>time_alg</shortname> <shortname>time_alg</shortname>
<pt_type>pt_float</pt_type> <pt_type>pt_float</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>float</type> <type>float</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="time_pause_enable_can_from_mpu"> <var name="time_pause_enable_can_from_mpu">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>time_pause_enable_can_from_mpu</shortname> <shortname>time_pause_enable_can_from_mpu</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="time_pause_enable_can_from_terminal"> <var name="time_pause_enable_can_from_terminal">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>time_pause_enable_can_from_terminal</shortname> <shortname>time_pause_enable_can_from_terminal</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="time_pause_logs"> <var name="time_pause_logs">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>time_pause_logs</shortname> <shortname>time_pause_logs</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_can.c</file> <file>Src/DebugTools/Src/myLibs/log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="time_pause_titles"> <var name="time_pause_titles">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>time_pause_titles</shortname> <shortname>time_pause_titles</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int</type> <type>int</type>
<file>Src/myLibs/log_can.c</file> <file>Src/DebugTools/Src/myLibs/log_can.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="tryNumb"> <var name="tryNumb">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>tryNumb</shortname> <shortname>tryNumb</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>volatile int</type> <type>volatile int</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="unites_can_setup"> <var name="unites_can_setup">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>unites_can_setup</shortname> <shortname>unites_can_setup</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>UNITES_CAN_SETUP</type> <type>UNITES_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/DebugTools/Src/myLibs/CAN_Setup.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="var_numb"> <var name="var_numb">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>var_numb</shortname> <shortname>var_numb</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>long</type> <type>long</type>
<file>Src/main/Main.c</file> <file>Src/DebugTools/Src/main/Main.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="vect_control"> <var name="vect_control">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>vect_control</shortname> <shortname>vect_control</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>VECTOR_CONTROL</type> <type>VECTOR_CONTROL</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="water_cooler"> <var name="water_cooler">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>water_cooler</shortname> <shortname>water_cooler</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>WaterCooler</type> <type>WaterCooler</type>
<file>Src/myLibs/can_watercool.c</file> <file>Src/DebugTools/Src/myLibs/can_watercool.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="winding_displacement"> <var name="winding_displacement">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>winding_displacement</shortname> <shortname>winding_displacement</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/main/v_pwm24.c</file> <file>Src/DebugTools/Src/main/v_pwm24.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="word"> <var name="word">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>word</shortname> <shortname>word</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>Word</type> <type>Word</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="wordReversed"> <var name="wordReversed">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>wordReversed</shortname> <shortname>wordReversed</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>WordReversed</type> <type>WordReversed</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="wordToReverse"> <var name="wordToReverse">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>wordToReverse</shortname> <shortname>wordToReverse</shortname>
<pt_type>pt_union</pt_type> <pt_type>pt_union</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>WordToReverse</type> <type>WordToReverse</type>
<file>Src/myXilinx/xPeriphSP6_loader.c</file> <file>Src/DebugTools/Src/myXilinx/xPeriphSP6_loader.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="x_parallel_bus_project"> <var name="x_parallel_bus_project">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>x_parallel_bus_project</shortname> <shortname>x_parallel_bus_project</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>X_PARALLEL_BUS</type> <type>X_PARALLEL_BUS</type>
<file>Src/myXilinx/x_parallel_bus.c</file> <file>Src/DebugTools/Src/myXilinx/x_parallel_bus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="x_serial_bus_project"> <var name="x_serial_bus_project">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>x_serial_bus_project</shortname> <shortname>x_serial_bus_project</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>X_SERIAL_BUS</type> <type>X_SERIAL_BUS</type>
<file>Src/myXilinx/x_serial_bus.c</file> <file>Src/DebugTools/Src/myXilinx/x_serial_bus.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="xeeprom_controll_fast"> <var name="xeeprom_controll_fast">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>xeeprom_controll_fast</shortname> <shortname>xeeprom_controll_fast</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="xeeprom_controll_store"> <var name="xeeprom_controll_store">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>xeeprom_controll_store</shortname> <shortname>xeeprom_controll_store</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>unsigned int</type> <type>unsigned int</type>
<file>Src/myXilinx/Spartan2E_Functions.c</file> <file>Src/DebugTools/Src/myXilinx/Spartan2E_Functions.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="xpwm_time"> <var name="xpwm_time">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>xpwm_time</shortname> <shortname>xpwm_time</shortname>
<pt_type>pt_struct</pt_type> <pt_type>pt_struct</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>XPWM_TIME</type> <type>XPWM_TIME</type>
<file>Src/myXilinx/xp_write_xpwm_time.c</file> <file>Src/DebugTools/Src/myXilinx/xp_write_xpwm_time.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="zadan_Id_min"> <var name="zadan_Id_min">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>zadan_Id_min</shortname> <shortname>zadan_Id_min</shortname>
<pt_type>pt_int32</pt_type> <pt_type>pt_int32</pt_type>
<iq_type>iq</iq_type> <iq_type>t_iq</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>_iq</type> <type>_iq</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/DebugTools/Src/VectorControl/pwm_vector_regul.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="zero_ADC"> <var name="zero_ADC">
<enable>false</enable> <show_var>false</show_var>
<enable>true</enable>
<shortname>zero_ADC</shortname> <shortname>zero_ADC</shortname>
<pt_type>pt_arr_int16</pt_type> <pt_type>pt_arr_int16</pt_type>
<iq_type>iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>int</return_type>
<type>int[20]</type> <type>int[20]</type>
<file>Src/main/adc_tools.c</file> <file>Src/DebugTools/Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="Bender.KOhms">
<show_var>false</show_var>
<enable>true</enable>
<shortname>Bender.KOhms</shortname>
<pt_type>pt_uint16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type>
<type>unsigned int</type>
<file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="Bender.Times">
<show_var>false</show_var>
<enable>true</enable>
<shortname>Bender.Times</shortname>
<pt_type>pt_uint16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type>
<type>unsigned int</type>
<file>Src/DebugTools/Src/myLibs/bender.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="project.cds_tk.plane_address">
<show_var>true</show_var>
<enable>true</enable>
<shortname>project.cds_tk.plane_address</shortname>
<pt_type>pt_uint16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type>
<type>UInt16</type>
<file>Src/DebugTools/Src/myXilinx/xp_project.c</file>
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
</variables> </variables>
<includes> <includes>
<file>Src/myXilinx/xp_project.h</file>
<file>Src/myXilinx/RS_Functions_modbus.h</file> <file>Src/myXilinx/RS_Functions_modbus.h</file>
<file>Src/main/vector.h</file> <file>Src/main/vector.h</file>
<file>Src/myXilinx/xp_project.h</file> <file>Src/main/errors.h</file>
<file>Src/main/adc_tools.h</file>
<file>Src/VectorControl/pwm_vector_regul.h</file>
<file>Src/myXilinx/xp_write_xpwm_time.h</file>
<file>Src/myLibs/log_can.h</file>
<file>Src/main/f281xpwm.h</file>
<file>Src/main/v_pwm24.h</file> <file>Src/main/v_pwm24.h</file>
<file>Src/main/rotation_speed.h</file> <file>Src/main/rotation_speed.h</file>
<file>Src/main/f281xpwm.h</file>
<file>Src/main/errors.h</file>
<file>Src/myXilinx/xp_write_xpwm_time.h</file>
<file>Src/VectorControl/pwm_vector_regul.h</file>
<file>Src/VectorControl/dq_to_alphabeta_cos.h</file>
<file>Src/VectorControl/teta_calc.h</file> <file>Src/VectorControl/teta_calc.h</file>
<file>Src/main/adc_tools.h</file> <file>Src/VectorControl/dq_to_alphabeta_cos.h</file>
<file>Src/myLibs/log_can.h</file>
<file>Src/myXilinx/RS_Functions.h</file>
<file>Src/myXilinx/xp_controller.h</file> <file>Src/myXilinx/xp_controller.h</file>
<file>Src/myXilinx/xPeriphSP6_loader.h</file>
<file>Src/myXilinx/x_serial_bus.h</file>
<file>Src/myXilinx/x_parallel_bus.h</file> <file>Src/myXilinx/x_parallel_bus.h</file>
<file>Src/myXilinx/xp_rotation_sensor.h</file> <file>Src/myXilinx/xp_rotation_sensor.h</file>
<file>Src/myXilinx/xPeriphSP6_loader.h</file>
<file>Src/myXilinx/Spartan2E_Functions.h</file> <file>Src/myXilinx/Spartan2E_Functions.h</file>
<file>Src/myLibs/svgen_dq.h</file> <file>Src/myXilinx/x_serial_bus.h</file>
<file>Src/myXilinx/RS_Functions.h</file>
<file>Src/myLibs/detect_phase_break2.h</file> <file>Src/myLibs/detect_phase_break2.h</file>
<file>Src/myLibs/pid_reg3.h</file>
<file>Src/myXilinx/CRC_Functions.h</file>
<file>Src/myLibs/log_params.h</file>
<file>Src/myLibs/CAN_Setup.h</file>
<file>Src/myLibs/log_to_memory.h</file> <file>Src/myLibs/log_to_memory.h</file>
<file>Src/myLibs/log_params.h</file>
<file>Src/main/global_time.h</file> <file>Src/main/global_time.h</file>
<file>Src/myLibs/CAN_Setup.h</file>
<file>Src/myXilinx/CRC_Functions.h</file>
<file>Src/myLibs/svgen_dq.h</file>
<file>Src/myLibs/pid_reg3.h</file>
<file>Src/myLibs/IQmathLib.h</file> <file>Src/myLibs/IQmathLib.h</file>
<file>Src/main/doors_control.h</file> <file>Src/main/doors_control.h</file>
<file>Src/main/isolation.h</file> <file>Src/main/isolation.h</file>