Доработка interfer_resized и отправка по таймеру магическое число в порт
This commit is contained in:
@@ -121,6 +121,7 @@ func on_interfer_new(ecm, table_index):
|
||||
|
||||
|
||||
func on_interfer_off(ecm, ecms, thrs, table_index):
|
||||
var sz = ecms.size()
|
||||
$table.remove_row(table_index[ecm.ispp])
|
||||
rehash(table_index)
|
||||
ecms.erase(ecm.ispp)
|
||||
@@ -132,6 +133,8 @@ func on_interfer_off(ecm, ecms, thrs, table_index):
|
||||
$table.get_selected_rows(sel_rows)
|
||||
if not len(sel_rows):
|
||||
signaller.emit_signal('interfer_selected', null)
|
||||
if sz != ecms.size():
|
||||
interfer.call_deferred('emit_signal', 'interfer_resized', ecms)
|
||||
|
||||
|
||||
## Перестраивает индекс таблицы. Вызывать при удалении строки
|
||||
|
||||
@@ -206,7 +206,6 @@ func on_data_capsrpb_received(unit0: capsrpb.CapsRpb, ecms: Dictionary) -> void:
|
||||
if not unit0.json_dic.has('msvk'): return
|
||||
if not (unit0.json_dic['msvk'] is Array): return
|
||||
var msvk = unit0.json_dic['msvk']
|
||||
var sz: = ecms.size()
|
||||
for dic_msvk in msvk:
|
||||
if not (dic_msvk is Dictionary): continue
|
||||
if dic_msvk.has('ispp'):
|
||||
@@ -220,8 +219,6 @@ func on_data_capsrpb_received(unit0: capsrpb.CapsRpb, ecms: Dictionary) -> void:
|
||||
ecm.set_from_dic(dic_msvk)
|
||||
ecm.krp = INTERFER_OFF
|
||||
send_ecm(ecm, unit0)
|
||||
if sz != ecms.size():
|
||||
call_deferred('emit_signal', 'interfer_resized', ecms)
|
||||
|
||||
|
||||
## Вызыватся, когда пользователь выбрал помеху и выбраны цели.
|
||||
@@ -282,6 +279,7 @@ func on_interfer_rcv(interfer_params: Array, unit0, ecms) -> void:
|
||||
|
||||
|
||||
func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interfer, power) -> void:
|
||||
var sz = ecms.size()
|
||||
var ispp: int = 0
|
||||
if interfer_name == 'k1':
|
||||
param['dur'] = 1.0 # Необходимо добавить параметры управления
|
||||
@@ -326,6 +324,8 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf
|
||||
thrs.erase(ispp)
|
||||
ecm.tick_tx = Time.get_ticks_msec()
|
||||
send_ecm(ecm, u)
|
||||
if sz != ecms.size():
|
||||
call_deferred('emit_signal', 'interfer_resized', ecms)
|
||||
|
||||
|
||||
func send_ecm(ecm, unit0) -> void:
|
||||
|
||||
@@ -330,6 +330,7 @@ func update_fs_state(ecms):
|
||||
for prd_module in prd_dict.values(): ## Отправка команды на исполнение в ПРД
|
||||
if prd_module.state != PrdState.WORK: continue
|
||||
if not prd_module.unit_yau07.online: continue
|
||||
prd_module.cmd_array.append([prd_module.unit_yau07.CmdCode.WRITE_ISA, [prd_module.yemsg_board.base_addr_isa, 6666]])
|
||||
var um_data_array: Array = []
|
||||
for fs in prd_module.fs_dic.values():
|
||||
if not prd_module.ug_online: continue
|
||||
|
||||
@@ -68,8 +68,9 @@ class TestPRD extends Node:
|
||||
var control_timer: Timer = Timer.new()
|
||||
var ems_6666_timer: Timer = Timer.new()
|
||||
signal control_is_over(control_results, power_result)
|
||||
var flag_fs_turn_on: bool = false
|
||||
var flag_fs_turn_off: bool = false
|
||||
|
||||
|
||||
var ecms: Dictionary ## Словарь помеховых воздействий
|
||||
|
||||
## Инициализация аргуметнов
|
||||
func _init(init_data: Dictionary) -> void:
|
||||
@@ -133,7 +134,7 @@ class TestPRD extends Node:
|
||||
_handle_fs_turn_on_state()
|
||||
state = STATE_MASHINE.FS_WORK
|
||||
STATE_MASHINE.FS_WORK:
|
||||
if flag_fs_turn_on:
|
||||
if ecms.size():
|
||||
_handle_fs_work_state()
|
||||
STATE_MASHINE.CHEK_KASSETA_Y5:
|
||||
if block_kasseta_y5_config['yau07']:
|
||||
@@ -205,7 +206,7 @@ class TestPRD extends Node:
|
||||
func _handle_init_state() -> void:
|
||||
control_label.text = 'Выполняется инициализация ФС-%s' % current_litera
|
||||
if current_litera in [1, 2, 3, 4, 5, 6, 7]:
|
||||
if flag_fs_turn_off:
|
||||
if not ecms.size():
|
||||
state = STATE_MASHINE.FS_TURN_ON
|
||||
else:
|
||||
control_results = on_control_result(block_ip_config, control_results)
|
||||
@@ -268,7 +269,6 @@ class TestPRD extends Node:
|
||||
|
||||
func _handle_fs_turn_off_state() -> void:
|
||||
control_label.text = 'Выполняется отключение ФС-%s' % current_litera
|
||||
flag_fs_turn_off = false
|
||||
manage_fs(false, self_name, pribor_config, fs_parameters, current_litera, constants.POWER_UM)
|
||||
|
||||
|
||||
@@ -295,18 +295,12 @@ class TestPRD extends Node:
|
||||
_determine_self_name()
|
||||
var fs_mapping = _create_fs_mapping(self_name)
|
||||
signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping))
|
||||
var unit_caps = network.get_unit_instance('уарэп-капсрпб')
|
||||
unit_caps.connect('data_received', Callable(self, 'on_interfer_status'))
|
||||
interfer.connect('interfer_resized', Callable(self, 'on_interfer_resized'))
|
||||
unit_prd.connect('data_received', Callable(self, 'on_data_received'))
|
||||
|
||||
|
||||
func on_interfer_status(packet_status: Object) -> void:
|
||||
if packet_status.json_dic.msvk.size() > 0 and not flag_fs_turn_on:
|
||||
flag_fs_turn_on = true
|
||||
print_debug('Излучение')
|
||||
elif packet_status.json_dic.msvk.size() == 0 and not flag_fs_turn_off:
|
||||
flag_fs_turn_off = true
|
||||
print_debug('Все тихо')
|
||||
func on_interfer_resized(ecms_dic: Dictionary) -> void:
|
||||
ecms = ecms_dic
|
||||
|
||||
|
||||
func _determine_self_name() -> void:
|
||||
|
||||
Reference in New Issue
Block a user