исправлен поиск и фильтрация

плюс делание всякого по коду для мк
This commit is contained in:
Razvalyaev 2025-07-11 17:57:29 +03:00
parent e4fcfd11d7
commit 0d54031dd5
8 changed files with 341 additions and 340 deletions

Binary file not shown.

View File

@ -228,7 +228,7 @@ class VariableSelectorDialog(QDialog):
text = self.search_input.text().strip() text = self.search_input.text().strip()
else: else:
text = text.strip() text = text.strip()
parts = self.split_path(text) parts = self.split_path(text)
path_parts = parts[:-1] if parts else [] path_parts = parts[:-1] if parts else []
prefix = parts[-1].lower() if parts else '' prefix = parts[-1].lower() if parts else ''
@ -238,8 +238,6 @@ class VariableSelectorDialog(QDialog):
completions = [] completions = []
def find_exact_node(parts): def find_exact_node(parts):
# Ищем точный узел по полному пути, используя node_index
# Постепенно собираем fullname из parts
if not parts: if not parts:
return None return None
fullname = parts[0] fullname = parts[0]
@ -251,7 +249,6 @@ class VariableSelectorDialog(QDialog):
base_text = text[:-1] # убираем '[' base_text = text[:-1] # убираем '['
parent_node = self.find_node_by_fullname(base_text) parent_node = self.find_node_by_fullname(base_text)
if not parent_node: if not parent_node:
# если base_text может содержать индекс типа foo[12], попробуем очистить
base_text_clean = re.sub(r'\[\d+\]$', '', base_text) base_text_clean = re.sub(r'\[\d+\]$', '', base_text)
parent_node = self.find_node_by_fullname(base_text_clean) parent_node = self.find_node_by_fullname(base_text_clean)
if parent_node: if parent_node:
@ -267,24 +264,22 @@ class VariableSelectorDialog(QDialog):
return completions return completions
if ends_with_sep: if ends_with_sep:
# Путь завершен, показываем детей узла
node = self.find_node_by_fullname(text[:-1]) node = self.find_node_by_fullname(text[:-1])
if node: if node:
completions.extend(node.child(i).text(0) for i in range(node.childCount())) completions.extend(node.child(i).text(0) for i in range(node.childCount()))
elif not path_parts: elif not path_parts:
# Первый уровень — по вхождению # Первый уровень — только если имя начинается с prefix
for i in range(self.tree.topLevelItemCount()): for i in range(self.tree.topLevelItemCount()):
item = self.tree.topLevelItem(i) item = self.tree.topLevelItem(i)
name = item.text(0).lower() name = item.text(0)
if prefix in name: if name.lower().startswith(prefix):
completions.append(item.text(0)) completions.append(name)
else: else:
node = find_exact_node(path_parts) node = find_exact_node(path_parts)
if node: if node:
for i in range(node.childCount()): for i in range(node.childCount()):
child = node.child(i) child = node.child(i)
name = child.text(0) name = child.text(0)
# Оптимизируем split_path - кэширование
name_parts = child.data(0, Qt.UserRole + 10) name_parts = child.data(0, Qt.UserRole + 10)
if name_parts is None: if name_parts is None:
name_parts = self.split_path(name) name_parts = self.split_path(name)
@ -292,16 +287,17 @@ class VariableSelectorDialog(QDialog):
if not name_parts: if not name_parts:
continue continue
last_part = name_parts[-1].lower() last_part = name_parts[-1].lower()
if prefix == '' or prefix in last_part: # здесь изменено if prefix == '' or last_part.startswith(prefix): # ← строго startswith
completions.append(name) completions.append(name)
self.completer.setModel(QStringListModel(completions))
self.completer.complete() self.completer.complete()
return completions return completions
# Функция для поиска узла с полным именем # Функция для поиска узла с полным именем
def find_node_by_fullname(self, name): def find_node_by_fullname(self, name):
return self.node_index.get(name.lower()) return self.node_index.get(name.lower())
@ -665,29 +661,27 @@ class VariableSelectorDialog(QDialog):
def filter_vars(vars_list, path_parts): def filter_vars(vars_list, path_parts):
"""Рекурсивно фильтруем vars_list по path_parts и возвращаем только подходящие.""" """Рекурсивно фильтруем vars_list по path_parts по вхождению на любом уровне."""
filtered = [] filtered = []
def matches_path(name, search_parts): def matches_path(name, search_parts):
name_parts = name.lower().split('.') name_parts = name.lower().split('.')
if len(name_parts) < len(search_parts): if len(name_parts) < len(search_parts):
return False return False
for sp, np in zip(search_parts, name_parts): for sp, np in zip(search_parts, name_parts):
if not np.startswith(sp): if sp not in np:
return False return False
return True return True
for var in vars_list: for var in vars_list:
fullname = var.get('fullname', var['name']) # желательно иметь полное имя fullname = var.get('fullname', var['name']) # желательно иметь полное имя
# Если фильтра нет — берем всё
if not path_parts or matches_path(fullname, path_parts): if not path_parts or matches_path(fullname, path_parts):
# Копируем узел с рекурсией по детям
new_var = var.copy() new_var = var.copy()
if 'children' in var: if 'children' in var:
new_var['children'] = filter_vars(var['children'], path_parts) new_var['children'] = filter_vars(var['children'], path_parts)
filtered.append(new_var) filtered.append(new_var)
else: else:
# Но даже если этот узел не подходит, может подойти его потомок
if 'children' in var: if 'children' in var:
child_filtered = filter_vars(var['children'], path_parts) child_filtered = filter_vars(var['children'], path_parts)
if child_filtered: if child_filtered:
@ -696,3 +690,5 @@ def filter_vars(vars_list, path_parts):
filtered.append(new_var) filtered.append(new_var)
return filtered return filtered

View File

@ -147,13 +147,14 @@ def add_new_vars_to_xml(proj_path, xml_rel_path, output_path):
for line in f: for line in f:
# {(char *)&some.deep.var.name , pt_uint16 , t_iq15 , "ShortName"}, # {(char *)&some.deep.var.name , pt_uint16 , t_iq15 , "ShortName"},
m = re.match( m = re.match(
r'{\s*\(char\s*\*\)\s*&([a-zA-Z_][a-zA-Z0-9_]*)\s*,\s*(pt_\w+)\s*,\s*(t?iq_\w+)\s*,\s*"([^"]+)"', r'{\s*\(char\s*\*\)\s*&([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)\s*,\s*(pt_\w+)\s*,\s*(t?iq_\w+)\s*,\s*"([^"]+)"',
line) line)
if m: if m:
full_varname = m.group(1) # e.g., some.deep.var.name full_varname = m.group(1) # e.g., some.deep.var.name
pt_type = m.group(2) pt_type = m.group(2)
iq_type = m.group(3) iq_type = m.group(3)
shortname = m.group(4) return_type = m.group(4)
shortname = m.group(5)
parsed_vars[full_varname] = { parsed_vars[full_varname] = {
'pt_type': pt_type, 'pt_type': pt_type,
@ -161,7 +162,7 @@ def add_new_vars_to_xml(proj_path, xml_rel_path, output_path):
'enable': True, 'enable': True,
'show_var': True, 'show_var': True,
'shortname': shortname, 'shortname': shortname,
'return_type': 'int', 'return_type': return_type,
'type': '', # Можешь дополнить из externs 'type': '', # Можешь дополнить из externs
'file': '', # Можешь дополнить из externs 'file': '', # Можешь дополнить из externs
'extern': False, 'extern': False,
@ -330,8 +331,7 @@ def generate_vars_file(proj_path, xml_path, output_dir):
if not pt_type: if not pt_type:
pt_type = map_type_to_pt(vtype, vname) pt_type = map_type_to_pt(vtype, vname)
ret_type = info.get('return_type')
ret_type = info.get('pt_type')
if not ret_type: if not ret_type:
pt_type = 't_iq_none' pt_type = 't_iq_none'

View File

@ -86,7 +86,7 @@ def parse_vars(filename, typedef_map=None):
'shortname': var.findtext('shortname', name), 'shortname': var.findtext('shortname', name),
'pt_type': pt_type, 'pt_type': pt_type,
'iq_type': iq_type, 'iq_type': iq_type,
'return_type': var.findtext('return_type', 'int'), 'return_type': var.findtext('return_type', ''),
'type': var_type, 'type': var_type,
'file': var.findtext('file', ''), 'file': var.findtext('file', ''),
'extern': var.findtext('extern', 'false') == 'true', 'extern': var.findtext('extern', 'false') == 'true',

View File

@ -6,6 +6,21 @@ static int convertDebugVarToIQx(DebugVar_t *var, long *ret_var);
long var_numb = 1;
long return_var;
long return_ll_var;
DebugVar_t dbg_var_ll;
int result;
char ext_date[] = {7, 233, 11, 07, 16, 50};
int Debug_Test_Example(void)
{
result = Debug_ReadVar(&dbg_vars[var_numb], &return_var);
if(Debug_LowLevel_Initialize(ext_date) == 0)
result = Debug_LowLevel_ReadVar(&dbg_var_ll, &return_ll_var);
}
int Debug_LowLevel_ReadVar(DebugVar_t *var_ll, long *return_long) int Debug_LowLevel_ReadVar(DebugVar_t *var_ll, long *return_long)
{ {
@ -37,7 +52,7 @@ int Debug_ReadVar(DebugVar_t *var, long *return_long)
if (var == NULL) if (var == NULL)
return 1; return 1;
if((var->ptr_type == pt_struct) || (var->ptr_type == pt_union) || if((var->ptr_type == pt_struct) || (var->ptr_type == pt_union) ||
(var->ptr_type == pt_unknown) || (var->return_type == pt_unknown)) (var->ptr_type == pt_unknown))
return 1; return 1;
convertDebugVarToIQx(var, return_long); convertDebugVarToIQx(var, return_long);
@ -65,8 +80,7 @@ int Debug_ReadVarName(DebugVar_t *var, char *name_ptr)
int Debug_LowLevel_Initialize(const char* external_date)
int Debug_LowLevel_Initialize(const uint8_t* external_date)
{ {
if (external_date == NULL) { if (external_date == NULL) {
return -1; return -1;
@ -75,34 +89,19 @@ int Debug_LowLevel_Initialize(const uint8_t* external_date)
// Ïðåîáðàçóåì external_date â ñòðóêòóðó // Ïðåîáðàçóåì external_date â ñòðóêòóðó
DateTimeHex ext; DateTimeHex ext;
ext.year = (external_date[0] << 8) | external_date[1]; ext.year = (external_date[0] << 8) | external_date[1];
ext.month = external_date[2]; ext.day = external_date[2];
ext.day = external_date[3]; ext.month = external_date[3];
ext.hour = external_date[4]; ext.hour = external_date[4];
ext.minute = external_date[5]; ext.minute = external_date[5];
// Ïàðñèì BUILD_FULL_DATE "YYYYMMDD_HHMM" // Çàïîëíèì ñòðóêòóðó build èç ìàêðîñîâ (ïðåäïîëàãàåì, ÷òî îíè ÷èñëîâûå)
DateTimeHex build; DateTimeHex build;
char buf[5] = {0};
// Ãîä build.year = BUILD_YEAR; // íàïðèìåð 2025
memcpy(buf, BUILD_FULL_DATE + 0, 4); build.month = BUILD_MONTH; // íàïðèìåð 7
build.year = (uint16_t)atoi(buf); build.day = BUILD_DATA; // íàïðèìåð 11
build.hour = BUILD_HOURS; // íàïðèìåð 16
// Ìåñÿö build.minute = BUILD_MINUTES;// íàïðèìåð 50
memcpy(buf, BUILD_FULL_DATE + 4, 2);
build.month = (uint8_t)atoi(buf);
// Äåíü
memcpy(buf, BUILD_FULL_DATE + 6, 2);
build.day = (uint8_t)atoi(buf);
// ×àñ
memcpy(buf, BUILD_FULL_DATE + 9, 2);
build.hour = (uint8_t)atoi(buf);
// Ìèíóòû
memcpy(buf, BUILD_FULL_DATE + 11, 2);
build.minute = (uint8_t)atoi(buf);
// Ñðàâíåíèå âñåõ ïîëåé // Ñðàâíåíèå âñåõ ïîëåé
if (ext.year == build.year && if (ext.year == build.year &&
@ -239,7 +238,7 @@ static int convertDebugVarToIQx(DebugVar_t *var, long *ret_var)
switch(var->return_type) switch(var->return_type)
{ {
case t_iq_none: case t_iq_none:
iq_final = (int)_IQtoF(iq_united); iq_final = (long)_IQtoF(iq_united);
break; break;
case t_iq1: case t_iq1:
iq_final = _IQtoIQ1(iq_united); iq_final = _IQtoIQ1(iq_united);

View File

@ -78,19 +78,23 @@ typedef struct
typedef struct { typedef struct {
uint16_t year; int year;
uint8_t month; char month;
uint8_t day; char day;
uint8_t hour; char hour;
uint8_t minute; char minute;
} DateTimeHex; } DateTimeHex;
extern int DebugVar_Qnt; extern int DebugVar_Qnt;
extern DebugVar_t dbg_vars[]; extern DebugVar_t dbg_vars[];
int Debug_Test_Example(void);
int Debug_LowLevel_ReadVar(DebugVar_t *var_ll, long *return_long); int Debug_LowLevel_ReadVar(DebugVar_t *var_ll, long *return_long);
int Debug_ReadVar(DebugVar_t *var, long *return_long); int Debug_ReadVar(DebugVar_t *var, long *return_long);
int Debug_ReadVarName(DebugVar_t *var, char *name_ptr); int Debug_ReadVarName(DebugVar_t *var, char *name_ptr);
int Debug_LowLevel_Initialize(const char* external_date);
#endif //DEBUG_TOOLS #endif //DEBUG_TOOLS

View File

@ -4,33 +4,33 @@
// Èíêëþäû äëÿ äîñòóïà ê ïåðåìåííûì // Èíêëþäû äëÿ äîñòóïà ê ïåðåìåííûì
#include "vector.h" #include "vector.h"
#include "f281xpwm.h"
#include "log_can.h"
#include "RS_Functions_modbus.h" #include "RS_Functions_modbus.h"
#include "errors.h" #include "f281xpwm.h"
#include "pwm_vector_regul.h"
#include "xp_project.h" #include "xp_project.h"
#include "xp_write_xpwm_time.h"
#include "v_pwm24.h"
#include "adc_tools.h" #include "adc_tools.h"
#include "errors.h"
#include "xp_write_xpwm_time.h"
#include "log_can.h"
#include "pwm_vector_regul.h"
#include "rotation_speed.h" #include "rotation_speed.h"
#include "dq_to_alphabeta_cos.h"
#include "teta_calc.h" #include "teta_calc.h"
#include "CAN_Setup.h" #include "v_pwm24.h"
#include "log_to_memory.h" #include "dq_to_alphabeta_cos.h"
#include "log_params.h"
#include "CRC_Functions.h"
#include "global_time.h"
#include "RS_Functions.h" #include "RS_Functions.h"
#include "detect_phase_break2.h"
#include "x_parallel_bus.h"
#include "x_serial_bus.h" #include "x_serial_bus.h"
#include "x_parallel_bus.h"
#include "Spartan2E_Functions.h" #include "Spartan2E_Functions.h"
#include "xp_controller.h" #include "xp_controller.h"
#include "xPeriphSP6_loader.h"
#include "xp_rotation_sensor.h" #include "xp_rotation_sensor.h"
#include "svgen_dq.h" #include "xPeriphSP6_loader.h"
#include "detect_phase_break2.h"
#include "CRC_Functions.h"
#include "CAN_Setup.h"
#include "log_params.h"
#include "log_to_memory.h"
#include "global_time.h"
#include "pid_reg3.h" #include "pid_reg3.h"
#include "svgen_dq.h"
#include "IQmathLib.h" #include "IQmathLib.h"
#include "doors_control.h" #include "doors_control.h"
#include "isolation.h" #include "isolation.h"
@ -261,7 +261,6 @@ extern T_controller_read r_controller;
extern FIFO refo; extern FIFO refo;
extern TMS_TO_TERMINAL_STRUCT reply; extern TMS_TO_TERMINAL_STRUCT reply;
extern TMS_TO_TERMINAL_TEST_ALL_STRUCT reply_test_all; extern TMS_TO_TERMINAL_TEST_ALL_STRUCT reply_test_all;
extern long return_var;
extern RMP_MY1 rmp_freq; extern RMP_MY1 rmp_freq;
extern RMP_MY1 rmp_wrot; extern RMP_MY1 rmp_wrot;
extern T_rotation_sensor rotation_sensor; extern T_rotation_sensor rotation_sensor;
@ -297,7 +296,6 @@ extern int time_pause_logs;
extern int time_pause_titles; extern int time_pause_titles;
extern volatile int tryNumb; extern volatile int tryNumb;
extern UNITES_CAN_SETUP unites_can_setup; extern UNITES_CAN_SETUP unites_can_setup;
extern long var_numb;
extern VECTOR_CONTROL vect_control; extern VECTOR_CONTROL vect_control;
extern WaterCooler water_cooler; extern WaterCooler water_cooler;
extern _iq winding_displacement; extern _iq winding_displacement;
@ -317,23 +315,23 @@ extern int zero_ADC[20];
int DebugVar_Qnt = 19; int DebugVar_Qnt = 19;
#pragma DATA_SECTION(dbg_vars,".dbgvar_info") #pragma DATA_SECTION(dbg_vars,".dbgvar_info")
DebugVar_t dbg_vars[] = {\ DebugVar_t dbg_vars[] = {\
{(char *)&ADC1startAddr, pt_int16, t_iq_none, pt_int16, "ADC1StrAdr" }, \ {(char *)&ADC0finishAddr, pt_int16, t_iq_none, t_iq_none, "ADC0EndAdr" }, \
{(char *)&project.cds_tk[0].plane_address, pt_uint16, t_iq_none, pt_uint16, "tk0_Adr" }, \ {(char *)&ADC_f[0][0], pt_int16, t_iq_none, t_iq_none, "ADC_f00" }, \
{(char *)&ADC_sf[0][0], pt_int16, t_iq_none, pt_int16, "ADC_sf00" }, \ {(char *)&ADC_f[0][1], pt_int16, t_iq_none, t_iq_none, "ADC_f01" }, \
{(char *)&ADC_sf[0][1], pt_int16, t_iq_none, pt_int16, "ADC_sf01" }, \ {(char *)&ADC_f[0][2], pt_int16, t_iq_none, t_iq_none, "ADC_f02" }, \
{(char *)&ADC_sf[0][2], pt_int16, t_iq_none, pt_int16, "ADC_sf02" }, \ {(char *)&ADC_f[0][3], pt_int16, t_iq_none, t_iq_none, "ADC_f03" }, \
{(char *)&ADC_sf[0][3], pt_int16, t_iq_none, pt_int16, "ADC_sf03" }, \ {(char *)&ADC_f[0][4], pt_int16, t_iq_none, t_iq_none, "ADC_f04" }, \
{(char *)&ADC_sf[0][4], pt_int16, t_iq_none, pt_int16, "ADC_sf04" }, \ {(char *)&ADC_f[0][5], pt_int16, t_iq_none, t_iq_none, "ADC_f05" }, \
{(char *)&ADC_sf[0][5], pt_int16, t_iq_none, pt_int16, "ADC_sf05" }, \ {(char *)&ADC_f[0][6], pt_int16, t_iq_none, t_iq_none, "ADC_f06" }, \
{(char *)&ADC_sf[0][6], pt_int16, t_iq_none, pt_int16, "ADC_sf06" }, \ {(char *)&ADC_f[0][7], pt_int16, t_iq, t_iq_none, "ADC_f07" }, \
{(char *)&ADC_sf[0][7], pt_int16, t_iq_none, pt_int16, "ADC_sf07" }, \ {(char *)&ADC_f[0][8], pt_int16, t_iq_none, t_iq_none, "ADC_f08" }, \
{(char *)&ADC_sf[0][8], pt_int16, t_iq_none, pt_int16, "ADC_sf08" }, \ {(char *)&ADC_f[0][9], pt_int16, t_iq_none, t_iq_none, "ADC_f09" }, \
{(char *)&ADC_sf[0][9], pt_int16, t_iq_none, pt_int16, "ADC_sf09" }, \ {(char *)&ADC_f[0][10], pt_int16, t_iq_none, t_iq_none, "ADC_f010" }, \
{(char *)&ADC_sf[0][10], pt_int16, t_iq_none, pt_int16, "ADC_sf010" }, \ {(char *)&ADC_f[0][11], pt_int16, t_iq_none, t_iq_none, "ADC_f011" }, \
{(char *)&ADC_sf[0][11], pt_int16, t_iq_none, pt_int16, "ADC_sf011" }, \ {(char *)&ADC_f[0][12], pt_int16, t_iq_none, t_iq_none, "ADC_f012" }, \
{(char *)&ADC_sf[0][12], pt_int16, t_iq_none, pt_int16, "ADC_sf012" }, \ {(char *)&ADC_f[0][13], pt_int16, t_iq_none, t_iq_none, "ADC_f013" }, \
{(char *)&ADC_sf[0][13], pt_int16, t_iq_none, pt_int16, "ADC_sf013" }, \ {(char *)&ADC_f[0][14], pt_int16, t_iq_none, t_iq_none, "ADC_f014" }, \
{(char *)&ADC_sf[0][14], pt_int16, t_iq_none, pt_int16, "ADC_sf014" }, \ {(char *)&ADC_f[0][15], pt_int16, t_iq_none, t_iq_none, "ADC_f015" }, \
{(char *)&ADC_sf[0][15], pt_int16, t_iq_none, pt_int16, "ADC_sf015" }, \ {(char *)&project.cds_tk[2].read.sbus.mask_protect_tk.all, pt_uint16, t_iq_none, t_iq_none, "tk2_ackcur" }, \
{(char *)&project.cds_tk[0].read.sbus.mask_protect_tk.all, pt_uint16, t_iq_none, pt_uint16, "project.cd" }, \ {(char *)&project.cds_tk[1].plane_address, pt_uint16, t_iq_none, t_iq_none, "tk1_adr" }, \
}; };

498
vars.xml
View File

@ -1,10 +1,10 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<analysis makefile_path="Debug/makefile" proj_path="F:/Work/Projects/TMS/TMS_new_bus" structs_path="Src/DebugTools/structs.xml"> <analysis makefile_path="Debug/makefile" proj_path="F:/Work/Projects/TMS/TMS_new_bus" structs_path="Src/DebugTools/structs.xml">
<variables> <variables>
<var name="ADC1startAddr"> <var name="ADC0finishAddr">
<show_var>true</show_var> <show_var>true</show_var>
<enable>true</enable> <enable>true</enable>
<shortname>ADC1StrAdr</shortname> <shortname>ADC0EndAdr</shortname>
<pt_type>pt_int16</pt_type> <pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type> <return_type>t_iq_none</return_type>
@ -13,6 +13,42 @@
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC0startAddr">
<show_var>false</show_var>
<enable>false</enable>
<shortname>ADC0startAddr</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>int</return_type>
<type>int</type>
<file>Src/myXilinx/x_example_all.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC1finishAddr">
<show_var>false</show_var>
<enable>false</enable>
<shortname>ADC1finishAddr</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>int</return_type>
<type>int</type>
<file>Src/myXilinx/x_example_all.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC1startAddr">
<show_var>false</show_var>
<enable>false</enable>
<shortname>ADC1startAddr</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>int</return_type>
<type>int</type>
<file>Src/myXilinx/x_example_all.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC2finishAddr"> <var name="ADC2finishAddr">
<show_var>false</show_var> <show_var>false</show_var>
<enable>false</enable> <enable>false</enable>
@ -2917,18 +2953,6 @@
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="return_var">
<show_var>false</show_var>
<enable>false</enable>
<shortname>return_var</shortname>
<pt_type>pt_int32</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>int</return_type>
<type>long</type>
<file>Src/main/Main.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="rmp_freq"> <var name="rmp_freq">
<show_var>false</show_var> <show_var>false</show_var>
<enable>false</enable> <enable>false</enable>
@ -3373,18 +3397,6 @@
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="var_numb">
<show_var>false</show_var>
<enable>false</enable>
<shortname>var_numb</shortname>
<pt_type>pt_int32</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>int</return_type>
<type>long</type>
<file>Src/main/Main.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="vect_control"> <var name="vect_control">
<show_var>false</show_var> <show_var>false</show_var>
<enable>false</enable> <enable>false</enable>
@ -3541,10 +3553,202 @@
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="project.cds_tk[0].plane_address"> <var name="ADC_f[0][0]">
<show_var>true</show_var> <show_var>true</show_var>
<enable>true</enable> <enable>true</enable>
<shortname>tk0_Adr</shortname> <shortname>ADC_f00</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][1]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f01</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][2]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f02</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][3]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f03</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][4]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f04</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][5]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f05</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][6]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f06</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][7]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f07</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][8]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f08</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][9]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f09</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][10]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f010</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][11]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f011</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][12]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f012</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][13]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f013</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][14]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f014</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_f[0][15]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_f015</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="project.cds_tk[2].read.sbus.mask_protect_tk.all">
<show_var>true</show_var>
<enable>true</enable>
<shortname>tk2_ackcur</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>t_iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type> <return_type>t_iq_none</return_type>
@ -3553,205 +3757,13 @@
<extern>false</extern> <extern>false</extern>
<static>false</static> <static>false</static>
</var> </var>
<var name="ADC_sf[0][0]"> <var name="project.cds_tk[1].plane_address">
<show_var>true</show_var> <show_var>true</show_var>
<enable>true</enable> <enable>true</enable>
<shortname>ADC_sf00</shortname> <shortname>tk1_adr</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][1]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf01</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][2]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf02</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][3]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf03</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][4]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf04</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][5]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf05</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][6]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf06</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][7]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf07</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][8]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf08</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][9]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf09</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][10]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf010</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][11]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf011</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][12]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf012</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][13]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf013</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][14]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf014</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][15]">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf015</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
<type>int</type>
<file>Src/main/adc_tools.c</file>
<extern>false</extern>
<static>false</static>
</var>
<var name="project.cds_tk[0].read.sbus.mask_protect_tk.all">
<show_var>true</show_var>
<enable>true</enable>
<shortname>project.cds_tk[0].read.sbus.mask_protect_tk.all</shortname>
<pt_type>pt_uint16</pt_type> <pt_type>pt_uint16</pt_type>
<iq_type>t_iq_none</iq_type> <iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type> <return_type>t_iq_none</return_type>
<type>UInt16</type> <type>UInt16</type>
<file>Src/myXilinx/xp_project.c</file> <file>Src/myXilinx/xp_project.c</file>
<extern>false</extern> <extern>false</extern>
@ -3760,33 +3772,33 @@
</variables> </variables>
<includes> <includes>
<file>Src/main/vector.h</file> <file>Src/main/vector.h</file>
<file>Src/main/f281xpwm.h</file>
<file>Src/myLibs/log_can.h</file>
<file>Src/myXilinx/RS_Functions_modbus.h</file> <file>Src/myXilinx/RS_Functions_modbus.h</file>
<file>Src/main/errors.h</file> <file>Src/main/f281xpwm.h</file>
<file>Src/VectorControl/pwm_vector_regul.h</file>
<file>Src/myXilinx/xp_project.h</file> <file>Src/myXilinx/xp_project.h</file>
<file>Src/myXilinx/xp_write_xpwm_time.h</file>
<file>Src/main/v_pwm24.h</file>
<file>Src/main/adc_tools.h</file> <file>Src/main/adc_tools.h</file>
<file>Src/main/errors.h</file>
<file>Src/myXilinx/xp_write_xpwm_time.h</file>
<file>Src/myLibs/log_can.h</file>
<file>Src/VectorControl/pwm_vector_regul.h</file>
<file>Src/main/rotation_speed.h</file> <file>Src/main/rotation_speed.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/myLibs/CAN_Setup.h</file> <file>Src/main/v_pwm24.h</file>
<file>Src/myLibs/log_to_memory.h</file> <file>Src/VectorControl/dq_to_alphabeta_cos.h</file>
<file>Src/myLibs/log_params.h</file>
<file>Src/myXilinx/CRC_Functions.h</file>
<file>Src/main/global_time.h</file>
<file>Src/myXilinx/RS_Functions.h</file> <file>Src/myXilinx/RS_Functions.h</file>
<file>Src/myLibs/detect_phase_break2.h</file>
<file>Src/myXilinx/x_parallel_bus.h</file>
<file>Src/myXilinx/x_serial_bus.h</file> <file>Src/myXilinx/x_serial_bus.h</file>
<file>Src/myXilinx/x_parallel_bus.h</file>
<file>Src/myXilinx/Spartan2E_Functions.h</file> <file>Src/myXilinx/Spartan2E_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/xp_rotation_sensor.h</file> <file>Src/myXilinx/xp_rotation_sensor.h</file>
<file>Src/myLibs/svgen_dq.h</file> <file>Src/myXilinx/xPeriphSP6_loader.h</file>
<file>Src/myLibs/detect_phase_break2.h</file>
<file>Src/myXilinx/CRC_Functions.h</file>
<file>Src/myLibs/CAN_Setup.h</file>
<file>Src/myLibs/log_params.h</file>
<file>Src/myLibs/log_to_memory.h</file>
<file>Src/main/global_time.h</file>
<file>Src/myLibs/pid_reg3.h</file> <file>Src/myLibs/pid_reg3.h</file>
<file>Src/myLibs/svgen_dq.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>
@ -4664,10 +4676,6 @@
<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/myXilinx/RS_Functions_modbus.c</file>
</var> </var>
<var name="return_var">
<type>long</type>
<file>Src/main/Main.c</file>
</var>
<var name="rmp_freq"> <var name="rmp_freq">
<type>RMP_MY1</type> <type>RMP_MY1</type>
<file>Src/main/PWMTools.c</file> <file>Src/main/PWMTools.c</file>
@ -4808,10 +4816,6 @@
<type>UNITES_CAN_SETUP</type> <type>UNITES_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file> <file>Src/myLibs/CAN_Setup.c</file>
</var> </var>
<var name="var_numb">
<type>long</type>
<file>Src/main/Main.c</file>
</var>
<var name="vect_control"> <var name="vect_control">
<type>VECTOR_CONTROL</type> <type>VECTOR_CONTROL</type>
<file>Src/VectorControl/pwm_vector_regul.c</file> <file>Src/VectorControl/pwm_vector_regul.c</file>