Доработка. Рефактор
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user