diff --git a/scenes/frame-ecm-params/scroll-ecm-params.gd b/scenes/frame-ecm-params/scroll-ecm-params.gd index 6ce798d..3769731 100644 --- a/scenes/frame-ecm-params/scroll-ecm-params.gd +++ b/scenes/frame-ecm-params/scroll-ecm-params.gd @@ -45,7 +45,6 @@ func init_table(): $table.set_meta('id', 0) signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(toggle_btn)) signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel')) - signaller.connect('emit_changed', Callable(self, 'on_emit_changed').bind(toggle_btn)) ## Called when the node enters the scene tree for the first time. @@ -113,8 +112,3 @@ func on_toggle_btn(toggle_btn): if not $table.has_meta('ecm'): return var ecm: interfer.Interfer = $table.get_meta('ecm') ecm.modulation = toggle_btn.button_pressed - - -func on_emit_changed(state, toggle_btn): - if not toggle_btn.disabled: - toggle_btn.button_pressed = state diff --git a/scenes/работа/работа.gd b/scenes/работа/работа.gd index 724eef0..31db96c 100644 --- a/scenes/работа/работа.gd +++ b/scenes/работа/работа.gd @@ -84,9 +84,6 @@ func on_threat_selected(th, ecm_btns): on_rto_threat_sel(th.id, ecm_btns) func on_enter_tree() -> void: call_deferred('on_button_strobe_pressed') -func on_btn_activate(val: bool): signaller.emit_signal('emit_changed', val) - - ## Обработчик нажатия на кнопку вид. func on_button_view_toggled(toggled: bool): signaller.emit_signal('map_mode_changed', int(toggled)) @@ -144,7 +141,7 @@ func _ready(): signaller.connect('update_coordinates_map', Callable(self, 'on_update_coordinates_label')) signaller.connect('update_scale_map', Callable(self, 'on_update_scale_label')) on_btn_center_toggled(true) - on_btn_activate_toggled(false) + on_btn_activate_toggled(true) func on_user_panning(): @@ -308,7 +305,6 @@ func on_button_pressed(btn_this, btn_others) -> void: var interfer_name: String = btn_this.get_meta('rfi_name') for key in fs_selected.keys(): fs_arr.append(prd.get_fs_param(key)) - print(fs_arr) signaller.emit_signal('interfer_init', interfer_name, fs_arr, interfer.POW_DEFAULT) @@ -514,6 +510,7 @@ func on_btn_center_toggled(toggled_on: bool) -> void: func on_btn_activate_toggled(toggled_on: bool) -> void: $btn_activate.tooltip_text = 'Включает подавление (%s)' % ('включено' if toggled_on else 'отключено') + signaller.emit_signal('emit_changed', toggled_on) func on_update_coordinates_label(coordinates_label) -> void: diff --git a/scenes/работа/работа.tscn b/scenes/работа/работа.tscn index 1336c77..64b1bbd 100644 --- a/scenes/работа/работа.tscn +++ b/scenes/работа/работа.tscn @@ -257,6 +257,7 @@ offset_right = 1136.0 offset_bottom = 1127.0 scale = Vector2(0.5, 0.5) toggle_mode = true +button_pressed = true action_mode = 0 texture_normal = ExtResource("10_cnr1s") texture_pressed = ExtResource("11_xp4y6") diff --git a/scenes/эмс/yems-boards.gd b/scenes/эмс/yems-boards.gd index 4b818f4..eac8030 100644 --- a/scenes/эмс/yems-boards.gd +++ b/scenes/эмс/yems-boards.gd @@ -297,15 +297,17 @@ class EmsBoard: if not check_dev_number(): continue if ports.has('%d'%(base_addr_isa + 4)): cur_dev.ports_data[base_addr_isa + 4] = int(ports['%d'%(base_addr_isa + 4)]) - else: continue + else: return false if ports.has('%d'%(base_addr_isa + 6)): - cur_dev.ports_data[base_addr_isa + 6] = int(ports['%d'%(base_addr_isa + 6)]) - else: continue + cur_dev.ports_data[base_addr_isa + 6] = int(ports['%d'%(base_addr_isa + 6)]) + else: return false if ports.has('%d'%(base_addr_isa + 8)): - cur_dev.ports_data[base_addr_isa + 8] = int(ports['%d'%(base_addr_isa + 8)]) - else: continue + cur_dev.ports_data[base_addr_isa + 8] = int(ports['%d'%(base_addr_isa + 8)]) + else: return false if ports.has('%d'%(base_addr_isa + 10)): - cur_dev.ports_data[base_addr_isa + 10] = int(ports['%d'%(base_addr_isa + 10)]) + cur_dev.ports_data[base_addr_isa + 10] = int(ports['%d'%(base_addr_isa + 10)]) + else: return false + return true func set_load_done(): state_board = LOADING diff --git a/scenes/эмс/эмс.gd b/scenes/эмс/эмс.gd index 5d394d5..ebb6d21 100644 --- a/scenes/эмс/эмс.gd +++ b/scenes/эмс/эмс.gd @@ -654,6 +654,9 @@ func _on_btn_load_pressed() -> void: if not json_data.has(str(board.id_board)): return var data = json_data[str(board.id_board)] - board.btn_load(data) - board.need_write = true - log.message(log.INFO, 'Произведено чтение настроек ЭМС из файла: %s' %fl_name) + var read_ok = board.btn_load(data) + if read_ok: + board.need_write = true + log.message(log.INFO, 'Произведено чтение настроек ЭМС из файла: %s, для платы %s' %[fl_name, board.id_board]) + else: + log.message(log.ERROR, 'Ошибка чтение настроек ЭМС из файла: %s' %fl_name) diff --git a/scripts/interfer.gd b/scripts/interfer.gd index 3600d96..00c3967 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -301,6 +301,11 @@ func interfer_create(u, interfer_name, ecms, param, kni, id, dict, source_interf func send_ecm(ecm, unit0) -> void: + if ecm.krp != INTERFER_OFF: + if not emit_enable: + return + elif not ecm.modulation: + return msg6_num += 1 var json_data = ecm.get_msg6_data(msg6_num) unit0.tx_stack.append(json_data) @@ -338,5 +343,3 @@ func push_id(id: int) -> void: func on_emit_changed(state, ecms) -> void: emit_enable = state - for ecm in ecms.values(): - ecm.modulation = state diff --git a/scripts/prd.gd b/scripts/prd.gd index 036b502..c2c273c 100644 --- a/scripts/prd.gd +++ b/scripts/prd.gd @@ -242,9 +242,14 @@ class PRD: var json_data = json_conv.get_data() yemsg_board.need_write = true yemsg_board.ems_load = yemsg_board.LoadState.IN_PROCESS - yemsg_board.btn_load(json_data) - yemsg_board.state_board = yemsg_board.WRITE - yemsg_board.start_rw_kems(false) + var read_ok = yemsg_board.btn_load(json_data) + if read_ok: + yemsg_board.state_board = yemsg_board.WRITE + yemsg_board.start_rw_kems(false) + else: + yemsg_board.ems_load = yemsg_board.LoadState.FAIL + yemsg_board.set_wait() + log.error('Не удалось прочитать файл настроек ячейки ЭМС-Г %s' %abs_dir) else: yemsg_board.ems_load = yemsg_board.LoadState.FAIL yemsg_board.set_wait()