ну вроде чуть поменьше тормозит, но все равно неприятно. надо еще подумать
This commit is contained in:
parent
21082a38e0
commit
02f3124224
@ -149,7 +149,6 @@ class VariableSelectorDialog(QDialog):
|
|||||||
self.selected_vars_widget.filter_tree()
|
self.selected_vars_widget.filter_tree()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def on_add_clicked(self):
|
def on_add_clicked(self):
|
||||||
# Получаем все переменные из правой таблицы (selected_vars_widget)
|
# Получаем все переменные из правой таблицы (selected_vars_widget)
|
||||||
var_names = self.selected_vars_widget.get_all_var_names()
|
var_names = self.selected_vars_widget.get_all_var_names()
|
||||||
|
@ -123,6 +123,7 @@ class VariableTableWidget(QTableWidget):
|
|||||||
pt_combo.setCurrentText(value)
|
pt_combo.setCurrentText(value)
|
||||||
pt_combo.currentTextChanged.connect(on_change_callback)
|
pt_combo.currentTextChanged.connect(on_change_callback)
|
||||||
pt_combo.setStyleSheet(style_with_padding)
|
pt_combo.setStyleSheet(style_with_padding)
|
||||||
|
pt_combo.wheelEvent = lambda e: e.ignore()
|
||||||
self.setCellWidget(row, rows.pt_type, pt_combo)
|
self.setCellWidget(row, rows.pt_type, pt_combo)
|
||||||
|
|
||||||
# iq_type
|
# iq_type
|
||||||
|
@ -5,6 +5,8 @@ from PySide2.QtWidgets import (
|
|||||||
)
|
)
|
||||||
from PySide2.QtGui import QKeyEvent
|
from PySide2.QtGui import QKeyEvent
|
||||||
from PySide2.QtCore import Qt, QStringListModel
|
from PySide2.QtCore import Qt, QStringListModel
|
||||||
|
import pickle
|
||||||
|
import time
|
||||||
|
|
||||||
# Вспомогательные функции, которые теперь будут использоваться виджетом
|
# Вспомогательные функции, которые теперь будут использоваться виджетом
|
||||||
def split_path(path):
|
def split_path(path):
|
||||||
@ -183,59 +185,30 @@ class VariableSelectWidget(QWidget):
|
|||||||
|
|
||||||
def set_data(self, vars_list):
|
def set_data(self, vars_list):
|
||||||
"""Основной метод для загрузки данных в виджет."""
|
"""Основной метод для загрузки данных в виджет."""
|
||||||
self.expanded_vars = vars_list
|
self.expanded_vars = pickle.loads(pickle.dumps(vars_list, protocol=pickle.HIGHEST_PROTOCOL))
|
||||||
# self.build_completion_list() # Если нужна полная перестройка списка
|
# self.build_completion_list() # Если нужна полная перестройка списка
|
||||||
self.populate_tree()
|
self.populate_tree()
|
||||||
|
|
||||||
def _get_internal_selected_items(self):
|
|
||||||
"""Возвращает выделенные элементы и всех их потомков."""
|
|
||||||
selected = self.tree.selectedItems()
|
|
||||||
all_items = []
|
|
||||||
|
|
||||||
def collect_children(item):
|
|
||||||
items = [item]
|
|
||||||
for i in range(item.childCount()):
|
|
||||||
child = item.child(i)
|
|
||||||
items.extend(collect_children(child))
|
|
||||||
return items
|
|
||||||
|
|
||||||
for item in selected:
|
|
||||||
all_items.extend(collect_children(item))
|
|
||||||
|
|
||||||
return all_items
|
|
||||||
|
|
||||||
def _get_internal_selected_var_names(self):
|
|
||||||
"""Возвращает имена выделенных переменных."""
|
|
||||||
return [item.text(0) for item in self._get_internal_selected_items() if item.text(0)]
|
|
||||||
|
|
||||||
def get_selected_items(self):
|
|
||||||
"""Возвращает только конечные (leaf) выделенные элементы, исключая bitfield."""
|
|
||||||
selected = self.tree.selectedItems()
|
|
||||||
leaf_items = []
|
|
||||||
for item in selected:
|
|
||||||
# Проверка: если нет выбранных/видимых детей — это лист
|
|
||||||
if all(item.child(i).isHidden() or not item.child(i).isSelected() for i in range(item.childCount())):
|
|
||||||
item_type = item.data(0, Qt.UserRole)
|
|
||||||
if item_type and 'bitfield' in str(item_type).lower():
|
|
||||||
continue # Пропускаем битовые поля
|
|
||||||
leaf_items.append(item)
|
|
||||||
return leaf_items
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_selected_var_names(self):
|
|
||||||
"""Возвращает имена только конечных (leaf) переменных из выделенных."""
|
|
||||||
return [item.text(0) for item in self.get_selected_items() if item.text(0)]
|
|
||||||
|
|
||||||
|
|
||||||
def populate_tree(self, vars_list=None):
|
def populate_tree(self, vars_list=None):
|
||||||
if vars_list is None:
|
if vars_list is None:
|
||||||
vars_list = self.expanded_vars
|
vars_list = self.expanded_vars
|
||||||
|
self.tree.setUpdatesEnabled(False)
|
||||||
|
self.tree.blockSignals(True)
|
||||||
self.tree.clear()
|
self.tree.clear()
|
||||||
self.node_index.clear()
|
self.node_index.clear()
|
||||||
|
start_add = time.perf_counter()
|
||||||
|
stats = {'count': 0, 'time': 0.0}
|
||||||
for var in vars_list:
|
for var in vars_list:
|
||||||
self.add_tree_item_recursively(None, var)
|
self.add_tree_item_recursively(None, var, stats)
|
||||||
|
end_add = time.perf_counter()
|
||||||
|
|
||||||
|
print(f" add items: {end_add - start_add:.6f} s")
|
||||||
|
print(f" └ recursive only: {stats['time']:.6f} s")
|
||||||
|
print(f" └ total items: {stats['count']} шт")
|
||||||
|
|
||||||
|
self.tree.setUpdatesEnabled(True)
|
||||||
|
self.tree.blockSignals(False)
|
||||||
header = self.tree.header()
|
header = self.tree.header()
|
||||||
header.setSectionResizeMode(QHeaderView.Interactive) # вручную можно менять
|
header.setSectionResizeMode(QHeaderView.Interactive) # вручную можно менять
|
||||||
self.tree.setColumnWidth(0, 400)
|
self.tree.setColumnWidth(0, 400)
|
||||||
@ -253,41 +226,42 @@ class VariableSelectWidget(QWidget):
|
|||||||
return fullname
|
return fullname
|
||||||
|
|
||||||
|
|
||||||
def add_tree_item_recursively(self, parent, var):
|
def add_tree_item_recursively(self, parent, var, stats=None, parent_path=""):
|
||||||
"""
|
if stats is None:
|
||||||
Рекурсивно добавляет переменную и её дочерние поля в дерево.
|
stats = {'count': 0, 'time': 0.0}
|
||||||
Если parent == None, добавляет на верхний уровень.
|
|
||||||
"""
|
|
||||||
name = var['name']
|
|
||||||
type_str = var.get('type', '')
|
|
||||||
show_var = var.get('show_var', 'false') == 'true'
|
|
||||||
|
|
||||||
|
start = time.perf_counter()
|
||||||
|
|
||||||
|
name = var['name']
|
||||||
|
full_name = f"{parent_path}.{name}" if parent_path else name
|
||||||
|
full_name = full_name.replace('->', '.') # если нужно
|
||||||
|
|
||||||
|
type_str = var.get('type', '')
|
||||||
item = QTreeWidgetItem([name, type_str])
|
item = QTreeWidgetItem([name, type_str])
|
||||||
item.setData(0, Qt.UserRole, name)
|
item.setData(0, Qt.UserRole, name)
|
||||||
full_name = self.get_full_item_name(item)
|
|
||||||
self.node_index[full_name.lower()] = item
|
self.node_index[full_name.lower()] = item
|
||||||
|
|
||||||
# Делаем bitfield-поля неактивными
|
|
||||||
if "(bitfield:" in type_str:
|
if "(bitfield:" in type_str:
|
||||||
item.setDisabled(True)
|
item.setDisabled(True)
|
||||||
self.set_tool(item, "Битовые поля недоступны для выбора")
|
self.set_tool(item, "Битовые поля недоступны для выбора")
|
||||||
|
|
||||||
for i, attr in enumerate(['file', 'extern', 'static']):
|
for i, attr in enumerate(['file', 'extern', 'static']):
|
||||||
item.setData(0, Qt.UserRole + 1 + i, var.get(attr))
|
item.setData(0, Qt.UserRole + 1 + i, var.get(attr))
|
||||||
|
|
||||||
if show_var:
|
|
||||||
item.setForeground(0, Qt.gray)
|
|
||||||
item.setForeground(1, Qt.gray)
|
|
||||||
self.set_tool(item, "Уже добавлена")
|
|
||||||
|
|
||||||
if parent is None:
|
if parent is None:
|
||||||
self.tree.addTopLevelItem(item)
|
self.tree.addTopLevelItem(item)
|
||||||
else:
|
else:
|
||||||
parent.addChild(item)
|
parent.addChild(item)
|
||||||
|
|
||||||
|
stats['count'] += 1
|
||||||
|
|
||||||
for child in var.get('children', []):
|
for child in var.get('children', []):
|
||||||
self.add_tree_item_recursively(item, child)
|
self.add_tree_item_recursively(item, child, stats, parent_path=full_name)
|
||||||
|
|
||||||
|
end = time.perf_counter()
|
||||||
|
stats['time'] += end - start
|
||||||
|
return stats
|
||||||
|
|
||||||
|
|
||||||
def filter_tree(self):
|
def filter_tree(self):
|
||||||
text = self.search_input.text().strip().lower()
|
text = self.search_input.text().strip().lower()
|
||||||
@ -309,8 +283,6 @@ class VariableSelectWidget(QWidget):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def find_node_by_path(self, root_vars, path_list):
|
def find_node_by_path(self, root_vars, path_list):
|
||||||
current_level = root_vars
|
current_level = root_vars
|
||||||
node = None
|
node = None
|
||||||
@ -574,3 +546,45 @@ class VariableSelectWidget(QWidget):
|
|||||||
def get_all_var_names(self):
|
def get_all_var_names(self):
|
||||||
"""Возвращает имена всех конечных (leaf) переменных, исключая битовые поля и группы."""
|
"""Возвращает имена всех конечных (leaf) переменных, исключая битовые поля и группы."""
|
||||||
return [item.text(0) for item in self.get_all_items() if item.text(0)]
|
return [item.text(0) for item in self.get_all_items() if item.text(0)]
|
||||||
|
|
||||||
|
|
||||||
|
def _get_internal_selected_items(self):
|
||||||
|
"""Возвращает выделенные элементы и всех их потомков."""
|
||||||
|
selected = self.tree.selectedItems()
|
||||||
|
all_items = []
|
||||||
|
|
||||||
|
def collect_children(item):
|
||||||
|
items = [item]
|
||||||
|
for i in range(item.childCount()):
|
||||||
|
child = item.child(i)
|
||||||
|
items.extend(collect_children(child))
|
||||||
|
return items
|
||||||
|
|
||||||
|
for item in selected:
|
||||||
|
all_items.extend(collect_children(item))
|
||||||
|
|
||||||
|
return all_items
|
||||||
|
|
||||||
|
def _get_internal_selected_var_names(self):
|
||||||
|
"""Возвращает имена выделенных переменных."""
|
||||||
|
return [item.text(0) for item in self._get_internal_selected_items() if item.text(0)]
|
||||||
|
|
||||||
|
def get_selected_items(self):
|
||||||
|
"""Возвращает только конечные (leaf) выделенные элементы, исключая bitfield."""
|
||||||
|
selected = self.tree.selectedItems()
|
||||||
|
leaf_items = []
|
||||||
|
for item in selected:
|
||||||
|
# Проверка: если нет выбранных/видимых детей — это лист
|
||||||
|
if all(item.child(i).isHidden() or not item.child(i).isSelected() for i in range(item.childCount())):
|
||||||
|
item_type = item.data(0, Qt.UserRole)
|
||||||
|
if item_type and 'bitfield' in str(item_type).lower():
|
||||||
|
continue # Пропускаем битовые поля
|
||||||
|
leaf_items.append(item)
|
||||||
|
return leaf_items
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get_selected_var_names(self):
|
||||||
|
"""Возвращает имена только конечных (leaf) переменных из выделенных."""
|
||||||
|
return [item.text(0) for item in self.get_selected_items() if item.text(0)]
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@ from generateVars import map_type_to_pt, get_iq_define, type_map
|
|||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
import scanVars
|
import scanVars
|
||||||
import myXML
|
import myXML
|
||||||
|
import pickle
|
||||||
|
|
||||||
|
|
||||||
# Вспомогательные функции, которые теперь будут использоваться виджетом
|
# Вспомогательные функции, которые теперь будут использоваться виджетом
|
||||||
def split_path(path):
|
def split_path(path):
|
||||||
@ -543,9 +545,7 @@ def add_to_nested_tree(tree, var, path_parts, full_names=None, depth=0, source_t
|
|||||||
|
|
||||||
|
|
||||||
def split_vars_by_show_flag(expanded_vars):
|
def split_vars_by_show_flag(expanded_vars):
|
||||||
from copy import deepcopy
|
unselected_vars = pickle.loads(pickle.dumps(expanded_vars, protocol=pickle.HIGHEST_PROTOCOL))
|
||||||
|
|
||||||
unselected_vars = deepcopy(expanded_vars)
|
|
||||||
selected_vars = []
|
selected_vars = []
|
||||||
|
|
||||||
def find_and_remove(var_list, target_name):
|
def find_and_remove(var_list, target_name):
|
||||||
|
81
debug_vars.c
81
debug_vars.c
@ -3,34 +3,34 @@
|
|||||||
|
|
||||||
|
|
||||||
// Èíêëþäû äëÿ äîñòóïà ê ïåðåìåííûì
|
// Èíêëþäû äëÿ äîñòóïà ê ïåðåìåííûì
|
||||||
#include "vector.h"
|
#include "v_pwm24.h"
|
||||||
#include "RS_Functions_modbus.h"
|
|
||||||
#include "f281xpwm.h"
|
#include "f281xpwm.h"
|
||||||
#include "xp_project.h"
|
#include "xp_project.h"
|
||||||
#include "adc_tools.h"
|
#include "RS_Functions_modbus.h"
|
||||||
#include "errors.h"
|
|
||||||
#include "xp_write_xpwm_time.h"
|
|
||||||
#include "log_can.h"
|
|
||||||
#include "pwm_vector_regul.h"
|
#include "pwm_vector_regul.h"
|
||||||
|
#include "errors.h"
|
||||||
#include "rotation_speed.h"
|
#include "rotation_speed.h"
|
||||||
#include "teta_calc.h"
|
#include "teta_calc.h"
|
||||||
#include "v_pwm24.h"
|
#include "vector.h"
|
||||||
|
#include "adc_tools.h"
|
||||||
|
#include "log_can.h"
|
||||||
|
#include "xp_write_xpwm_time.h"
|
||||||
#include "dq_to_alphabeta_cos.h"
|
#include "dq_to_alphabeta_cos.h"
|
||||||
#include "RS_Functions.h"
|
#include "svgen_dq.h"
|
||||||
#include "x_serial_bus.h"
|
|
||||||
#include "x_parallel_bus.h"
|
#include "x_parallel_bus.h"
|
||||||
|
#include "x_serial_bus.h"
|
||||||
|
#include "xPeriphSP6_loader.h"
|
||||||
#include "Spartan2E_Functions.h"
|
#include "Spartan2E_Functions.h"
|
||||||
#include "xp_controller.h"
|
#include "xp_controller.h"
|
||||||
#include "xp_rotation_sensor.h"
|
#include "xp_rotation_sensor.h"
|
||||||
#include "xPeriphSP6_loader.h"
|
#include "RS_Functions.h"
|
||||||
#include "detect_phase_break2.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 "log_params.h"
|
||||||
|
#include "CRC_Functions.h"
|
||||||
|
#include "global_time.h"
|
||||||
|
#include "CAN_Setup.h"
|
||||||
|
#include "log_to_memory.h"
|
||||||
#include "IQmathLib.h"
|
#include "IQmathLib.h"
|
||||||
#include "doors_control.h"
|
#include "doors_control.h"
|
||||||
#include "isolation.h"
|
#include "isolation.h"
|
||||||
@ -261,6 +261,7 @@ 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;
|
||||||
@ -296,6 +297,7 @@ 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;
|
||||||
@ -312,26 +314,33 @@ extern int zero_ADC[20];
|
|||||||
|
|
||||||
|
|
||||||
// Îïðåäåëåíèå ìàññèâà ñ óêàçàòåëÿìè íà ïåðåìåííûå äëÿ îòëàäêè
|
// Îïðåäåëåíèå ìàññèâà ñ óêàçàòåëÿìè íà ïåðåìåííûå äëÿ îòëàäêè
|
||||||
int DebugVar_Qnt = 19;
|
int DebugVar_Qnt = 26;
|
||||||
#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, t_iq_none, "ADC0EndAdr" }, \
|
{(char *)&ADC0finishAddr, pt_int16, t_iq_none, t_iq_none, "ADC0finish" }, \
|
||||||
{(char *)&ADC_f[0][0], pt_int16, t_iq_none, t_iq_none, "ADC_f00" }, \
|
{(char *)&ADC_f[0][11], pt_int32, t_iq_none, t_iq_none, "ADC_f[0][1" }, \
|
||||||
{(char *)&ADC_f[0][1], pt_int16, t_iq_none, t_iq_none, "ADC_f01" }, \
|
{(char *)&ADC_f[0][12], pt_int16, t_iq_none, t_iq_none, "ADC_f[0][1" }, \
|
||||||
{(char *)&ADC_f[0][2], pt_int16, t_iq_none, t_iq_none, "ADC_f02" }, \
|
{(char *)&ADC_f[0][13], pt_int32, t_iq_none, t_iq_none, "ADC_f[0][1" }, \
|
||||||
{(char *)&ADC_f[0][3], pt_int16, t_iq_none, t_iq_none, "ADC_f03" }, \
|
{(char *)&ADC_f[0][14], pt_int16, t_iq_none, t_iq_none, "ADC_f[0][1" }, \
|
||||||
{(char *)&ADC_f[0][4], pt_int16, t_iq_none, t_iq_none, "ADC_f04" }, \
|
{(char *)&ADC_f[0][15], pt_int16, t_iq_none, t_iq_none, "ADC_f[0][1" }, \
|
||||||
{(char *)&ADC_f[0][5], pt_int16, t_iq_none, t_iq_none, "ADC_f05" }, \
|
{(char *)&ADC_f[1][0], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][0" }, \
|
||||||
{(char *)&ADC_f[0][6], pt_int16, t_iq_none, t_iq_none, "ADC_f06" }, \
|
{(char *)&ADC_f[1][1], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \
|
||||||
{(char *)&ADC_f[0][7], pt_int16, t_iq, t_iq_none, "ADC_f07" }, \
|
{(char *)&ADC_f[1][2], pt_int64, t_iq_none, t_iq_none, "ADC_f[1][2" }, \
|
||||||
{(char *)&ADC_f[0][8], pt_int16, t_iq_none, t_iq_none, "ADC_f08" }, \
|
{(char *)&ADC_f[1][3], pt_int32, t_iq_none, t_iq_none, "ADC_f[1][3" }, \
|
||||||
{(char *)&ADC_f[0][9], pt_int16, t_iq_none, t_iq_none, "ADC_f09" }, \
|
{(char *)&ADC_f[1][4], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][4" }, \
|
||||||
{(char *)&ADC_f[0][10], pt_int16, t_iq_none, t_iq_none, "ADC_f010" }, \
|
{(char *)&ADC_f[1][5], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][5" }, \
|
||||||
{(char *)&ADC_f[0][11], pt_int16, t_iq_none, t_iq_none, "ADC_f011" }, \
|
{(char *)&ADC_f[1][6], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][6" }, \
|
||||||
{(char *)&ADC_f[0][12], pt_int16, t_iq_none, t_iq_none, "ADC_f012" }, \
|
{(char *)&ADC_f[1][7], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][7" }, \
|
||||||
{(char *)&ADC_f[0][13], pt_int16, t_iq_none, t_iq_none, "ADC_f013" }, \
|
{(char *)&ADC_f[1][8], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][8" }, \
|
||||||
{(char *)&ADC_f[0][14], pt_int16, t_iq_none, t_iq_none, "ADC_f014" }, \
|
{(char *)&ADC_f[1][9], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][9" }, \
|
||||||
{(char *)&ADC_f[0][15], pt_int16, t_iq_none, t_iq_none, "ADC_f015" }, \
|
{(char *)&ADC_f[1][10], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \
|
||||||
{(char *)&project.cds_tk[2].read.sbus.mask_protect_tk.all, pt_uint16, t_iq_none, t_iq_none, "tk2_ackcur" }, \
|
{(char *)&ADC_f[1][11], pt_int16, t_iq1, t_iq_none, "ADC_f[1][1" }, \
|
||||||
{(char *)&project.cds_tk[1].plane_address, pt_uint16, t_iq_none, t_iq_none, "tk1_adr" }, \
|
{(char *)&ADC_f[1][12], pt_int32, t_iq_none, t_iq_none, "ADC_f[1][1" }, \
|
||||||
|
{(char *)&ADC_f[1][13], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \
|
||||||
|
{(char *)&ADC_f[1][14], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \
|
||||||
|
{(char *)&ADC_f[1][15], pt_int16, t_iq_none, t_iq_none, "ADC_f[1][1" }, \
|
||||||
|
{(char *)&project.cds_in[0].plane_address, pt_uint16, t_iq_none, t_iq_none, "project.cd" }, \
|
||||||
|
{(char *)&Bender[0].KOhms, pt_uint16, t_iq_none, t_iq_none, "Bender[0]." }, \
|
||||||
|
{(char *)&Bender[0].Times, pt_uint16, t_iq_none, t_iq_none, "Bender[0]." }, \
|
||||||
|
{(char *)&Bender[0].Error.all, pt_uint16, t_iq_none, t_iq_none, "Bender[0]." }, \
|
||||||
};
|
};
|
||||||
|
16
vars.xml
16
vars.xml
@ -2,12 +2,12 @@
|
|||||||
<analysis proj_path="E:/.WORK/TMS/TMS_new_bus" makefile_path="Debug/makefile" structs_path="Src/DebugTools/structs.xml">
|
<analysis proj_path="E:/.WORK/TMS/TMS_new_bus" makefile_path="Debug/makefile" structs_path="Src/DebugTools/structs.xml">
|
||||||
<variables>
|
<variables>
|
||||||
<var name="ADC0finishAddr">
|
<var name="ADC0finishAddr">
|
||||||
<show_var>false</show_var>
|
<show_var>true</show_var>
|
||||||
<enable>false</enable>
|
<enable>true</enable>
|
||||||
<shortname>ADC0finishAddr</shortname>
|
<shortname>ADC0finishAddr</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>int</return_type>
|
<return_type>t_iq_none</return_type>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
<file>Src/myXilinx/x_example_all.c</file>
|
<file>Src/myXilinx/x_example_all.c</file>
|
||||||
<extern>false</extern>
|
<extern>false</extern>
|
||||||
@ -3737,7 +3737,7 @@
|
|||||||
<show_var>true</show_var>
|
<show_var>true</show_var>
|
||||||
<enable>true</enable>
|
<enable>true</enable>
|
||||||
<shortname>ADC_f[0][13]</shortname>
|
<shortname>ADC_f[0][13]</shortname>
|
||||||
<pt_type>pt_int32</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>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
@ -3797,7 +3797,7 @@
|
|||||||
<show_var>true</show_var>
|
<show_var>true</show_var>
|
||||||
<enable>true</enable>
|
<enable>true</enable>
|
||||||
<shortname>ADC_f[1][2]</shortname>
|
<shortname>ADC_f[1][2]</shortname>
|
||||||
<pt_type>pt_int64</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>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
@ -3809,7 +3809,7 @@
|
|||||||
<show_var>true</show_var>
|
<show_var>true</show_var>
|
||||||
<enable>true</enable>
|
<enable>true</enable>
|
||||||
<shortname>ADC_f[1][3]</shortname>
|
<shortname>ADC_f[1][3]</shortname>
|
||||||
<pt_type>pt_int32</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>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
@ -3906,7 +3906,7 @@
|
|||||||
<enable>true</enable>
|
<enable>true</enable>
|
||||||
<shortname>ADC_f[1][11]</shortname>
|
<shortname>ADC_f[1][11]</shortname>
|
||||||
<pt_type>pt_int16</pt_type>
|
<pt_type>pt_int16</pt_type>
|
||||||
<iq_type>t_iq1</iq_type>
|
<iq_type>t_iq_none</iq_type>
|
||||||
<return_type>t_iq_none</return_type>
|
<return_type>t_iq_none</return_type>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
<file>Src/main/adc_tools.c</file>
|
<file>Src/main/adc_tools.c</file>
|
||||||
@ -3917,7 +3917,7 @@
|
|||||||
<show_var>true</show_var>
|
<show_var>true</show_var>
|
||||||
<enable>true</enable>
|
<enable>true</enable>
|
||||||
<shortname>ADC_f[1][12]</shortname>
|
<shortname>ADC_f[1][12]</shortname>
|
||||||
<pt_type>pt_int32</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>
|
||||||
<type>int</type>
|
<type>int</type>
|
||||||
|
Loading…
Reference in New Issue
Block a user