Доработка. Рефактор

This commit is contained in:
sasha80
2026-03-30 11:17:17 +03:00
parent 21a0c0c012
commit d00fb92520
3 changed files with 34 additions and 34 deletions

View File

@@ -20,11 +20,11 @@ extends Panel
@export_color_no_alpha var color_odd: Color @export_color_no_alpha var color_odd: Color
## Цвет чётных строк шкалы ## Цвет чётных строк шкалы
@export_color_no_alpha var color_even: Color @export_color_no_alpha var color_even: Color
## Индекс колонки в таблице для разрешения работы приёмника ## Индекс колонки в таблице для управления работой приёмников
@export var column_cmd_rx: int @export var column_cmd_rx: int
## Индекс колонки в таблице для разрешения работы передатчика ## Индекс колонки в таблице для управления работой передатчиков
@export var column_cmd_tx: int @export var column_cmd_tx: int
## Максимальное количесво кластеров на одно устройство ## Максимальное количество кластеров на одно устройство
@export var max_clasters_per_unit: int @export var max_clasters_per_unit: int
## Сообщение пользователю ## Сообщение пользователю
@export var msg_select_unit: String @export var msg_select_unit: String
@@ -44,7 +44,7 @@ extends Panel
#endregion #endregion
#region Заполняется автоматически при запуске #region Заполняется автоматически при запуске
var name_to_index: Dictionary[StringName, int] ## Имя устройства -> Индекс var name_to_index: Dictionary[StringName, int] ## Имя устройства -> Индекс устройства
var name_to_scale: Dictionary[StringName, GridContainer] ## Имя устройства -> Шкала var name_to_scale: Dictionary[StringName, GridContainer] ## Имя устройства -> Шкала
var table_cell_row: Array var table_cell_row: Array
#endregion #endregion
@@ -67,8 +67,8 @@ var cmd_vs_info: Dictionary[StringName, Dictionary]
## Состояние кластера ## Состояние кластера
enum ClasterStatus { enum ClasterStatus {
DELETED, DELETED, ## Удалён (время ожидания обновления истекло)
RUNNING RUNNING ## Работает (информация обновляется)
} }
@@ -87,6 +87,7 @@ enum ClasterResult {
MISSMATCH = 2 ## Несоответствие MISSMATCH = 2 ## Несоответствие
} }
func _ready() -> void: func _ready() -> void:
# Инициализировать переменные # Инициализировать переменные
color_enabled.a = color_alpha color_enabled.a = color_alpha

View File

@@ -74,7 +74,7 @@ class OutDev extends InDev:
if btns_state.has(i_dev): if btns_state.has(i_dev):
btns_state[i_dev] = val btns_state[i_dev] = val
var data = 0 var data = 0
for i in range(yemsconsts.NUM_INPUT): for i in yemsconsts.NUM_INPUT:
data = data | (int(btns_state[i+1]) << i) data = data | (int(btns_state[i+1]) << i)
ports_data[isa_addr + 4] = data & 0xffff ports_data[isa_addr + 4] = data & 0xffff
ports_data[isa_addr + 6] = (data >> 16) & 0xffff ports_data[isa_addr + 6] = (data >> 16) & 0xffff

View File

@@ -63,17 +63,16 @@ func init_boards():
init_tbl_files() init_tbl_files()
$scrl_files/tbl_files.pin_header($scrl_files, self) $scrl_files/tbl_files.pin_header($scrl_files, self)
unit_ems.connect('data_received', Callable(self, 'on_data_ems_received')) unit_ems.connect('data_received', on_data_ems_received)
unit_ems.connect('command_done', Callable(self, 'on_command_done')) unit_ems.connect('command_done', on_command_done)
unit_ems.connect('line_changed', Callable(self, 'on_line_changed')) unit_ems.connect('line_changed', on_line_changed)
for board in g_boards.values(): for board in g_boards.values():
board.connect('upd_delay_offset', Callable(self, 'on_upd_delay_offset')) board.connect('upd_delay_offset', on_upd_delay_offset)
board.connect('upd_o_state', Callable(self, 'on_upd_o_state')) board.connect('upd_o_state', on_upd_o_state)
$btn_connect.connect('pressed', Callable(self, 'on_btn_connect')) $btn_connect.connect('pressed', on_btn_connect)
$btn_disconnect.connect('pressed', Callable(self, 'on_btn_disconnect').bind(unit_ems)) $btn_disconnect.connect('pressed', on_btn_disconnect.bind(unit_ems))
$btn_flash_read.button_connect('pressed', Callable(self, 'on_btn_flash_read').bind($btn_flash_read)) $btn_flash_read.button_connect('pressed', on_btn_flash_read.bind($btn_flash_read))
$btn_flash_write.button_connect('pressed', Callable(self, 'on_btn_flash_write').bind($btn_flash_write)) $btn_flash_write.button_connect('pressed', on_btn_flash_write.bind($btn_flash_write))
## Обработчик нажатия кнопки disconnect. ## Обработчик нажатия кнопки disconnect.
@@ -140,7 +139,7 @@ func init_tbl_files():
tools.fill_files_table($scrl_files/tbl_files, yemsconsts.files_folder, FILES_ROWS_TYPES) tools.fill_files_table($scrl_files/tbl_files, yemsconsts.files_folder, FILES_ROWS_TYPES)
$scrl_files/tbl_files.set_columns_alignments(yemsconsts.FILES_ROWS_ALIGNMENT) $scrl_files/tbl_files.set_columns_alignments(yemsconsts.FILES_ROWS_ALIGNMENT)
$scrl_files/tbl_files.set_columns_min_size(yemsconsts.FILES_COLUMN_WIDTHS) $scrl_files/tbl_files.set_columns_min_size(yemsconsts.FILES_COLUMN_WIDTHS)
$scrl_files/tbl_files.connect('row_pressed', Callable(self, 'on_pressed_file')) $scrl_files/tbl_files.connect('row_pressed', on_pressed_file)
for i_row in $scrl_files/tbl_files.get_rows_count(): for i_row in $scrl_files/tbl_files.get_rows_count():
disable_edit($scrl_files/tbl_files, len(FILES_ROWS_TYPES), i_row) disable_edit($scrl_files/tbl_files, len(FILES_ROWS_TYPES), i_row)
@@ -179,8 +178,8 @@ func init_tbl_in():
$scrollin/tbl_in.set_node_user_data(i, row_index, [in_dev, board]) $scrollin/tbl_in.set_node_user_data(i, row_index, [in_dev, board])
$scrollin/tbl_in.set_columns_alignments(yams_alligment_in) $scrollin/tbl_in.set_columns_alignments(yams_alligment_in)
$scrollin/tbl_in.set_columns_min_size(column_size) $scrollin/tbl_in.set_columns_min_size(column_size)
$scrollin/tbl_in.connect('row_pressed', Callable(self, 'on_row_pressed_in')) $scrollin/tbl_in.connect('row_pressed', on_row_pressed_in)
$scrollin/tbl_in.connect('selected_changed', Callable(self, 'on_selected_changed_in')) $scrollin/tbl_in.connect('selected_changed', on_selected_changed_in)
# Инициализация таблицы изменения параметров входа и списка выходов связанных с ним # Инициализация таблицы изменения параметров входа и списка выходов связанных с ним
header_text[0] = 'Вход' header_text[0] = 'Вход'
@@ -188,8 +187,8 @@ func init_tbl_in():
$scrl_in_set/tbl_in_set.set_header_text(header_text) $scrl_in_set/tbl_in_set.set_header_text(header_text)
$scrl_in_set/tbl_in_set.set_columns_alignments(yams_alligment_in) $scrl_in_set/tbl_in_set.set_columns_alignments(yams_alligment_in)
$scrl_in_set/tbl_in_set.set_columns_min_size(column_size) $scrl_in_set/tbl_in_set.set_columns_min_size(column_size)
$scrl_in_set/tbl_in_set.connect('row_pressed', Callable(self, 'on_row_pressed_si')) $scrl_in_set/tbl_in_set.connect('row_pressed', on_row_pressed_si)
$scrl_in_set/tbl_in_set.connect('selected_changed', Callable(self, 'on_selected_changed_si')) $scrl_in_set/tbl_in_set.connect('selected_changed', on_selected_changed_si)
## Обработчик редактирования Entry в таблице параметров входов/выходов. ## Обработчик редактирования Entry в таблице параметров входов/выходов.
@@ -302,16 +301,16 @@ func init_tbl_out():
cell.editable = false cell.editable = false
$scrollout/tbl_out.set_columns_min_size([250, 100, 70, 70, 70, 100]) $scrollout/tbl_out.set_columns_min_size([250, 100, 70, 70, 70, 100])
$scrollout/tbl_out.set_columns_alignments(yams_alligment_out) $scrollout/tbl_out.set_columns_alignments(yams_alligment_out)
$scrollout/tbl_out.connect('row_pressed', Callable(self, 'on_row_pressed_out')) $scrollout/tbl_out.connect('row_pressed', on_row_pressed_out)
$scrollout/tbl_out.connect('selected_changed', Callable(self, 'on_selected_changed_out')) $scrollout/tbl_out.connect('selected_changed', on_selected_changed_out)
# Инициализация таблицы изменения параметров выхода и списка входов связанных с ним # Инициализация таблицы изменения параметров выхода и списка входов связанных с ним
header_text[0] = 'Выход' header_text[0] = 'Выход'
$scrl_out_set/tbl_out_set.set_header([TableHeader, TableHeader, CellFront, CellFrontRear, TableHeader, TableHeader]) $scrl_out_set/tbl_out_set.set_header([TableHeader, TableHeader, CellFront, CellFrontRear, TableHeader, TableHeader])
$scrl_out_set/tbl_out_set.set_header_text(header_text) $scrl_out_set/tbl_out_set.set_header_text(header_text)
$scrl_out_set/tbl_out_set.set_columns_min_size([250, 100, 70, 70, 70, 100]) $scrl_out_set/tbl_out_set.set_columns_min_size([250, 100, 70, 70, 70, 100])
$scrl_out_set/tbl_out_set.connect('row_pressed', Callable(self, 'on_row_pressed_so')) $scrl_out_set/tbl_out_set.connect('row_pressed', on_row_pressed_so)
$scrl_out_set/tbl_out_set.connect('selected_changed', Callable(self, 'on_selected_changed_so')) $scrl_out_set/tbl_out_set.connect('selected_changed', on_selected_changed_so)
## Обработчик выбора строки в таблице соединений выхода и изменения параметров. ## Обработчик выбора строки в таблице соединений выхода и изменения параметров.
@@ -357,7 +356,7 @@ func set_out_dev(dev):
var mode = $scrl_out_set/tbl_out_set.get_node2(5, 0) var mode = $scrl_out_set/tbl_out_set.get_node2(5, 0)
for opt in OUT_MODE: for opt in OUT_MODE:
mode.add_item(opt) mode.add_item(opt)
mode.connect('item_selected', Callable(self, 'on_switch_done').bind(dev)) mode.connect('item_selected', on_switch_done.bind(dev))
mode.select(dev.mode) mode.select(dev.mode)
@@ -532,20 +531,20 @@ func on_upd_delay_offset(_board, dev):
tbl = $scrollout/tbl_out tbl = $scrollout/tbl_out
var le_delay = tbl.get_node2(TABLE_ENTRY_COLUMNS[0], dev.tbl_row_id) var le_delay = tbl.get_node2(TABLE_ENTRY_COLUMNS[0], dev.tbl_row_id)
var le_offset = tbl.get_node2(TABLE_ENTRY_COLUMNS[1], dev.tbl_row_id) var le_offset = tbl.get_node2(TABLE_ENTRY_COLUMNS[1], dev.tbl_row_id)
le_delay.set_text(str('%3.1f' % dev.delay)) le_delay.set_text('%3.1f' % dev.delay)
le_offset.set_text(str('%3.1f' % dev.offset)) le_offset.set_text('%3.1f' % dev.offset)
if $scrl_in_set/tbl_in_set.get_rows_count(): if $scrl_in_set/tbl_in_set.get_rows_count():
var sel_dev = $scrl_in_set/tbl_in_set.get_node_user_data(0, 0) var sel_dev = $scrl_in_set/tbl_in_set.get_node_user_data(0, 0)
var l_delay = $scrl_in_set/tbl_in_set.get_node2(2, 0) var l_delay = $scrl_in_set/tbl_in_set.get_node2(2, 0)
var l_offset = $scrl_in_set/tbl_in_set.get_node2(3, 0) var l_offset = $scrl_in_set/tbl_in_set.get_node2(3, 0)
l_delay.set_text(str('%3.1f' % sel_dev.delay)) l_delay.set_text('%3.1f' % sel_dev.delay)
l_offset.set_text(str('%3.1f' % sel_dev.offset)) l_offset.set_text('%3.1f' % sel_dev.offset)
if $scrl_out_set/tbl_out_set.get_rows_count(): if $scrl_out_set/tbl_out_set.get_rows_count():
var sel_dev = $scrl_out_set/tbl_out_set.get_node_user_data(0, 0) var sel_dev = $scrl_out_set/tbl_out_set.get_node_user_data(0, 0)
var l_delay = $scrl_out_set/tbl_out_set.get_node2(2, 0) var l_delay = $scrl_out_set/tbl_out_set.get_node2(2, 0)
var l_offset = $scrl_out_set/tbl_out_set.get_node2(3, 0) var l_offset = $scrl_out_set/tbl_out_set.get_node2(3, 0)
l_delay.set_text(str('%3.1f' % sel_dev.delay)) l_delay.set_text('%3.1f' % sel_dev.delay)
l_offset.set_text(str('%3.1f' % sel_dev.offset)) l_offset.set_text('%3.1f' % sel_dev.offset)
## Вызывается по обновлению информации о режиме выходов ## Вызывается по обновлению информации о режиме выходов
@@ -662,4 +661,4 @@ func _on_btn_load_pressed() -> void:
board.need_write = true board.need_write = true
log.message(log.INFO, 'Произведено чтение настроек ЭМС из файла: %s, для платы %s' %[fl_name, board.id_board]) log.message(log.INFO, 'Произведено чтение настроек ЭМС из файла: %s, для платы %s' %[fl_name, board.id_board])
else: else:
log.message(log.ERROR, 'Ошибка чтение настроек ЭМС из файла: %s' %fl_name) log.message(log.ERROR, 'Ошибка чтение настроек ЭМС из файла: %s' % fl_name)