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

плюс делание всякого по коду для мк
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()
else:
text = text.strip()
parts = self.split_path(text)
path_parts = parts[:-1] if parts else []
prefix = parts[-1].lower() if parts else ''
@ -238,8 +238,6 @@ class VariableSelectorDialog(QDialog):
completions = []
def find_exact_node(parts):
# Ищем точный узел по полному пути, используя node_index
# Постепенно собираем fullname из parts
if not parts:
return None
fullname = parts[0]
@ -251,7 +249,6 @@ class VariableSelectorDialog(QDialog):
base_text = text[:-1] # убираем '['
parent_node = self.find_node_by_fullname(base_text)
if not parent_node:
# если base_text может содержать индекс типа foo[12], попробуем очистить
base_text_clean = re.sub(r'\[\d+\]$', '', base_text)
parent_node = self.find_node_by_fullname(base_text_clean)
if parent_node:
@ -267,24 +264,22 @@ class VariableSelectorDialog(QDialog):
return completions
if ends_with_sep:
# Путь завершен, показываем детей узла
node = self.find_node_by_fullname(text[:-1])
if node:
completions.extend(node.child(i).text(0) for i in range(node.childCount()))
elif not path_parts:
# Первый уровень — по вхождению
# Первый уровень — только если имя начинается с prefix
for i in range(self.tree.topLevelItemCount()):
item = self.tree.topLevelItem(i)
name = item.text(0).lower()
if prefix in name:
completions.append(item.text(0))
name = item.text(0)
if name.lower().startswith(prefix):
completions.append(name)
else:
node = find_exact_node(path_parts)
if node:
for i in range(node.childCount()):
child = node.child(i)
name = child.text(0)
# Оптимизируем split_path - кэширование
name_parts = child.data(0, Qt.UserRole + 10)
if name_parts is None:
name_parts = self.split_path(name)
@ -292,16 +287,17 @@ class VariableSelectorDialog(QDialog):
if not name_parts:
continue
last_part = name_parts[-1].lower()
if prefix == '' or prefix in last_part: # здесь изменено
if prefix == '' or last_part.startswith(prefix): # ← строго startswith
completions.append(name)
self.completer.setModel(QStringListModel(completions))
self.completer.complete()
return completions
# Функция для поиска узла с полным именем
def find_node_by_fullname(self, name):
return self.node_index.get(name.lower())
@ -665,29 +661,27 @@ class VariableSelectorDialog(QDialog):
def filter_vars(vars_list, path_parts):
"""Рекурсивно фильтруем vars_list по path_parts и возвращаем только подходящие."""
"""Рекурсивно фильтруем vars_list по path_parts по вхождению на любом уровне."""
filtered = []
def matches_path(name, search_parts):
name_parts = name.lower().split('.')
if len(name_parts) < len(search_parts):
return False
for sp, np in zip(search_parts, name_parts):
if not np.startswith(sp):
if sp not in np:
return False
return True
for var in vars_list:
fullname = var.get('fullname', var['name']) # желательно иметь полное имя
# Если фильтра нет — берем всё
if not path_parts or matches_path(fullname, path_parts):
# Копируем узел с рекурсией по детям
new_var = var.copy()
if 'children' in var:
new_var['children'] = filter_vars(var['children'], path_parts)
filtered.append(new_var)
else:
# Но даже если этот узел не подходит, может подойти его потомок
if 'children' in var:
child_filtered = filter_vars(var['children'], path_parts)
if child_filtered:
@ -696,3 +690,5 @@ def filter_vars(vars_list, path_parts):
filtered.append(new_var)
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:
# {(char *)&some.deep.var.name , pt_uint16 , t_iq15 , "ShortName"},
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*"([^"]+)"',
line)
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)
if m:
full_varname = m.group(1) # e.g., some.deep.var.name
pt_type = m.group(2)
iq_type = m.group(3)
shortname = m.group(4)
return_type = m.group(4)
shortname = m.group(5)
parsed_vars[full_varname] = {
'pt_type': pt_type,
@ -161,7 +162,7 @@ def add_new_vars_to_xml(proj_path, xml_rel_path, output_path):
'enable': True,
'show_var': True,
'shortname': shortname,
'return_type': 'int',
'return_type': return_type,
'type': '', # Можешь дополнить из externs
'file': '', # Можешь дополнить из externs
'extern': False,
@ -330,8 +331,7 @@ def generate_vars_file(proj_path, xml_path, output_dir):
if not pt_type:
pt_type = map_type_to_pt(vtype, vname)
ret_type = info.get('pt_type')
ret_type = info.get('return_type')
if not ret_type:
pt_type = 't_iq_none'

View File

@ -86,7 +86,7 @@ def parse_vars(filename, typedef_map=None):
'shortname': var.findtext('shortname', name),
'pt_type': pt_type,
'iq_type': iq_type,
'return_type': var.findtext('return_type', 'int'),
'return_type': var.findtext('return_type', ''),
'type': var_type,
'file': var.findtext('file', ''),
'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)
{
@ -37,7 +52,7 @@ int Debug_ReadVar(DebugVar_t *var, long *return_long)
if (var == NULL)
return 1;
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;
convertDebugVarToIQx(var, return_long);
@ -65,8 +80,7 @@ int Debug_ReadVarName(DebugVar_t *var, char *name_ptr)
int Debug_LowLevel_Initialize(const uint8_t* external_date)
int Debug_LowLevel_Initialize(const char* external_date)
{
if (external_date == NULL) {
return -1;
@ -75,34 +89,19 @@ int Debug_LowLevel_Initialize(const uint8_t* external_date)
// Ïðåîáðàçóåì external_date â ñòðóêòóðó
DateTimeHex ext;
ext.year = (external_date[0] << 8) | external_date[1];
ext.month = external_date[2];
ext.day = external_date[3];
ext.day = external_date[2];
ext.month = external_date[3];
ext.hour = external_date[4];
ext.minute = external_date[5];
// Ïàðñèì BUILD_FULL_DATE "YYYYMMDD_HHMM"
// Çàïîëíèì ñòðóêòóðó build èç ìàêðîñîâ (ïðåäïîëàãàåì, ÷òî îíè ÷èñëîâûå)
DateTimeHex build;
char buf[5] = {0};
// Ãîä
memcpy(buf, BUILD_FULL_DATE + 0, 4);
build.year = (uint16_t)atoi(buf);
// Ìåñÿö
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);
build.year = BUILD_YEAR; // íàïðèìåð 2025
build.month = BUILD_MONTH; // íàïðèìåð 7
build.day = BUILD_DATA; // íàïðèìåð 11
build.hour = BUILD_HOURS; // íàïðèìåð 16
build.minute = BUILD_MINUTES;// íàïðèìåð 50
// Ñðàâíåíèå âñåõ ïîëåé
if (ext.year == build.year &&
@ -239,7 +238,7 @@ static int convertDebugVarToIQx(DebugVar_t *var, long *ret_var)
switch(var->return_type)
{
case t_iq_none:
iq_final = (int)_IQtoF(iq_united);
iq_final = (long)_IQtoF(iq_united);
break;
case t_iq1:
iq_final = _IQtoIQ1(iq_united);

View File

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

View File

@ -4,33 +4,33 @@
// Èíêëþäû äëÿ äîñòóïà ê ïåðåìåííûì
#include "vector.h"
#include "f281xpwm.h"
#include "log_can.h"
#include "RS_Functions_modbus.h"
#include "errors.h"
#include "pwm_vector_regul.h"
#include "f281xpwm.h"
#include "xp_project.h"
#include "xp_write_xpwm_time.h"
#include "v_pwm24.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 "dq_to_alphabeta_cos.h"
#include "teta_calc.h"
#include "CAN_Setup.h"
#include "log_to_memory.h"
#include "log_params.h"
#include "CRC_Functions.h"
#include "global_time.h"
#include "v_pwm24.h"
#include "dq_to_alphabeta_cos.h"
#include "RS_Functions.h"
#include "detect_phase_break2.h"
#include "x_parallel_bus.h"
#include "x_serial_bus.h"
#include "x_parallel_bus.h"
#include "Spartan2E_Functions.h"
#include "xp_controller.h"
#include "xPeriphSP6_loader.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 "svgen_dq.h"
#include "IQmathLib.h"
#include "doors_control.h"
#include "isolation.h"
@ -261,7 +261,6 @@ extern T_controller_read r_controller;
extern FIFO refo;
extern TMS_TO_TERMINAL_STRUCT reply;
extern TMS_TO_TERMINAL_TEST_ALL_STRUCT reply_test_all;
extern long return_var;
extern RMP_MY1 rmp_freq;
extern RMP_MY1 rmp_wrot;
extern T_rotation_sensor rotation_sensor;
@ -297,7 +296,6 @@ extern int time_pause_logs;
extern int time_pause_titles;
extern volatile int tryNumb;
extern UNITES_CAN_SETUP unites_can_setup;
extern long var_numb;
extern VECTOR_CONTROL vect_control;
extern WaterCooler water_cooler;
extern _iq winding_displacement;
@ -317,23 +315,23 @@ extern int zero_ADC[20];
int DebugVar_Qnt = 19;
#pragma DATA_SECTION(dbg_vars,".dbgvar_info")
DebugVar_t dbg_vars[] = {\
{(char *)&ADC1startAddr, pt_int16, t_iq_none, pt_int16, "ADC1StrAdr" }, \
{(char *)&project.cds_tk[0].plane_address, pt_uint16, t_iq_none, pt_uint16, "tk0_Adr" }, \
{(char *)&ADC_sf[0][0], pt_int16, t_iq_none, pt_int16, "ADC_sf00" }, \
{(char *)&ADC_sf[0][1], pt_int16, t_iq_none, pt_int16, "ADC_sf01" }, \
{(char *)&ADC_sf[0][2], pt_int16, t_iq_none, pt_int16, "ADC_sf02" }, \
{(char *)&ADC_sf[0][3], pt_int16, t_iq_none, pt_int16, "ADC_sf03" }, \
{(char *)&ADC_sf[0][4], pt_int16, t_iq_none, pt_int16, "ADC_sf04" }, \
{(char *)&ADC_sf[0][5], pt_int16, t_iq_none, pt_int16, "ADC_sf05" }, \
{(char *)&ADC_sf[0][6], pt_int16, t_iq_none, pt_int16, "ADC_sf06" }, \
{(char *)&ADC_sf[0][7], pt_int16, t_iq_none, pt_int16, "ADC_sf07" }, \
{(char *)&ADC_sf[0][8], pt_int16, t_iq_none, pt_int16, "ADC_sf08" }, \
{(char *)&ADC_sf[0][9], pt_int16, t_iq_none, pt_int16, "ADC_sf09" }, \
{(char *)&ADC_sf[0][10], pt_int16, t_iq_none, pt_int16, "ADC_sf010" }, \
{(char *)&ADC_sf[0][11], pt_int16, t_iq_none, pt_int16, "ADC_sf011" }, \
{(char *)&ADC_sf[0][12], pt_int16, t_iq_none, pt_int16, "ADC_sf012" }, \
{(char *)&ADC_sf[0][13], pt_int16, t_iq_none, pt_int16, "ADC_sf013" }, \
{(char *)&ADC_sf[0][14], pt_int16, t_iq_none, pt_int16, "ADC_sf014" }, \
{(char *)&ADC_sf[0][15], pt_int16, t_iq_none, pt_int16, "ADC_sf015" }, \
{(char *)&project.cds_tk[0].read.sbus.mask_protect_tk.all, pt_uint16, t_iq_none, pt_uint16, "project.cd" }, \
{(char *)&ADC0finishAddr, pt_int16, t_iq_none, t_iq_none, "ADC0EndAdr" }, \
{(char *)&ADC_f[0][0], pt_int16, t_iq_none, t_iq_none, "ADC_f00" }, \
{(char *)&ADC_f[0][1], pt_int16, t_iq_none, t_iq_none, "ADC_f01" }, \
{(char *)&ADC_f[0][2], pt_int16, t_iq_none, t_iq_none, "ADC_f02" }, \
{(char *)&ADC_f[0][3], pt_int16, t_iq_none, t_iq_none, "ADC_f03" }, \
{(char *)&ADC_f[0][4], pt_int16, t_iq_none, t_iq_none, "ADC_f04" }, \
{(char *)&ADC_f[0][5], pt_int16, t_iq_none, t_iq_none, "ADC_f05" }, \
{(char *)&ADC_f[0][6], pt_int16, t_iq_none, t_iq_none, "ADC_f06" }, \
{(char *)&ADC_f[0][7], pt_int16, t_iq, t_iq_none, "ADC_f07" }, \
{(char *)&ADC_f[0][8], pt_int16, t_iq_none, t_iq_none, "ADC_f08" }, \
{(char *)&ADC_f[0][9], pt_int16, t_iq_none, t_iq_none, "ADC_f09" }, \
{(char *)&ADC_f[0][10], pt_int16, t_iq_none, t_iq_none, "ADC_f010" }, \
{(char *)&ADC_f[0][11], pt_int16, t_iq_none, t_iq_none, "ADC_f011" }, \
{(char *)&ADC_f[0][12], pt_int16, t_iq_none, t_iq_none, "ADC_f012" }, \
{(char *)&ADC_f[0][13], pt_int16, t_iq_none, t_iq_none, "ADC_f013" }, \
{(char *)&ADC_f[0][14], pt_int16, t_iq_none, t_iq_none, "ADC_f014" }, \
{(char *)&ADC_f[0][15], pt_int16, t_iq_none, t_iq_none, "ADC_f015" }, \
{(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[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'?>
<analysis makefile_path="Debug/makefile" proj_path="F:/Work/Projects/TMS/TMS_new_bus" structs_path="Src/DebugTools/structs.xml">
<variables>
<var name="ADC1startAddr">
<var name="ADC0finishAddr">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC1StrAdr</shortname>
<shortname>ADC0EndAdr</shortname>
<pt_type>pt_int16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
@ -13,6 +13,42 @@
<extern>false</extern>
<static>false</static>
</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">
<show_var>false</show_var>
<enable>false</enable>
@ -2917,18 +2953,6 @@
<extern>false</extern>
<static>false</static>
</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">
<show_var>false</show_var>
<enable>false</enable>
@ -3373,18 +3397,6 @@
<extern>false</extern>
<static>false</static>
</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">
<show_var>false</show_var>
<enable>false</enable>
@ -3541,10 +3553,202 @@
<extern>false</extern>
<static>false</static>
</var>
<var name="project.cds_tk[0].plane_address">
<var name="ADC_f[0][0]">
<show_var>true</show_var>
<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>
<iq_type>t_iq_none</iq_type>
<return_type>t_iq_none</return_type>
@ -3553,205 +3757,13 @@
<extern>false</extern>
<static>false</static>
</var>
<var name="ADC_sf[0][0]">
<var name="project.cds_tk[1].plane_address">
<show_var>true</show_var>
<enable>true</enable>
<shortname>ADC_sf00</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>
<shortname>tk1_adr</shortname>
<pt_type>pt_uint16</pt_type>
<iq_type>t_iq_none</iq_type>
<return_type>iq_none</return_type>
<return_type>t_iq_none</return_type>
<type>UInt16</type>
<file>Src/myXilinx/xp_project.c</file>
<extern>false</extern>
@ -3760,33 +3772,33 @@
</variables>
<includes>
<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/main/errors.h</file>
<file>Src/VectorControl/pwm_vector_regul.h</file>
<file>Src/main/f281xpwm.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/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/VectorControl/dq_to_alphabeta_cos.h</file>
<file>Src/VectorControl/teta_calc.h</file>
<file>Src/myLibs/CAN_Setup.h</file>
<file>Src/myLibs/log_to_memory.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/main/v_pwm24.h</file>
<file>Src/VectorControl/dq_to_alphabeta_cos.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_parallel_bus.h</file>
<file>Src/myXilinx/Spartan2E_Functions.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/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/svgen_dq.h</file>
<file>Src/myLibs/IQmathLib.h</file>
<file>Src/main/doors_control.h</file>
<file>Src/main/isolation.h</file>
@ -4664,10 +4676,6 @@
<type>TMS_TO_TERMINAL_TEST_ALL_STRUCT</type>
<file>Src/myXilinx/RS_Functions_modbus.c</file>
</var>
<var name="return_var">
<type>long</type>
<file>Src/main/Main.c</file>
</var>
<var name="rmp_freq">
<type>RMP_MY1</type>
<file>Src/main/PWMTools.c</file>
@ -4808,10 +4816,6 @@
<type>UNITES_CAN_SETUP</type>
<file>Src/myLibs/CAN_Setup.c</file>
</var>
<var name="var_numb">
<type>long</type>
<file>Src/main/Main.c</file>
</var>
<var name="vect_control">
<type>VECTOR_CONTROL</type>
<file>Src/VectorControl/pwm_vector_regul.c</file>