diff --git a/PRD_MP550.tscn b/PRD_MP550.tscn index ca07c94..27a0a75 100644 --- a/PRD_MP550.tscn +++ b/PRD_MP550.tscn @@ -700,12 +700,65 @@ offset_bottom = -16.0 script = ExtResource("2_vmbyo") node_gap = Vector2(100, 50) +[node name="status_yau" type="Label" parent="TabContainer/PRD"] +layout_mode = 0 +offset_left = 56.0 +offset_top = 19.0 +offset_right = 144.0 +offset_bottom = 42.0 +text = "ЯУ-07Б" +metadata/_edit_lock_ = true + +[node name="status_yau_list" type="GridContainer" parent="TabContainer/PRD"] +layout_mode = 0 +offset_left = 56.0 +offset_top = 18.0 +offset_right = 216.0 +offset_bottom = 482.0 +metadata/_edit_lock_ = true + +[node name="prd-n1" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-n2" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-n3" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-v1" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-v2" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-v3" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-v4" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-n4" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-k1" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-k2" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-k3" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + +[node name="prd-k4" type="Label" parent="TabContainer/PRD/status_yau_list"] +layout_mode = 2 + [node name="Connect_prd" type="Button" parent="TabContainer/PRD"] layout_mode = 0 -offset_left = 47.0 -offset_top = 30.0 -offset_right = 248.0 -offset_bottom = 58.0 +offset_left = 48.0 +offset_top = 354.0 +offset_right = 249.0 +offset_bottom = 382.0 focus_mode = 0 mouse_default_cursor_shape = 16 theme_override_colors/font_color = Color(1, 1, 0.941176, 1) @@ -715,14 +768,6 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_eleyh") text = "Подключение" metadata/_edit_lock_ = true -[node name="status_yau" type="Label" parent="TabContainer/PRD"] -layout_mode = 0 -offset_left = 56.0 -offset_top = 91.0 -offset_right = 111.0 -offset_bottom = 114.0 -text = "ЯУ-07Б" - [node name="ControlPanel" type="Panel" parent="TabContainer"] visible = false layout_mode = 2 diff --git a/export_presets.cfg b/export_presets.cfg index 589f2a1..0afdc71 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -9,7 +9,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="bin/testPRD-2.0.exe" +export_path="bin/testPRD.exe" encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false @@ -19,7 +19,7 @@ script_export_mode=2 [preset.0.options] custom_template/debug="" -custom_template/release="D:/ТПО/PRD_MP550/src/windows.template_release.exe" +custom_template/release="M:/gitea/windows.template_release.exe" debug/export_console_wrapper=0 binary_format/embed_pck=true texture_format/s3tc_bptc=true @@ -32,8 +32,8 @@ codesign/digest_algorithm=1 codesign/description="" codesign/custom_options=PackedStringArray() application/modify_resources=true -application/icon="" -application/console_wrapper_icon="" +application/icon="res://icon.svg" +application/console_wrapper_icon="res://icon.svg" application/icon_interpolation=4 application/file_version="" application/product_version="" diff --git a/find_fs.bat b/find_fs.bat deleted file mode 100644 index 95c2f4e..0000000 --- a/find_fs.bat +++ /dev/null @@ -1,15 +0,0 @@ -@echo off -setlocal enabledelayedexpansion - -for /l %%i in (2,1,100) do ( - set "ip=10.1.2.%%i" - ping -n 1 !ip! > nul - if !errorlevel! equ 0 ( - echo !ip! is reachable - ) else ( - echo !ip! is not reachable - ) -) - -endlocal -pause \ No newline at end of file diff --git a/light_ind.tres b/light_ind.tres new file mode 100644 index 0000000..2c6b30e --- /dev/null +++ b/light_ind.tres @@ -0,0 +1,12 @@ +[gd_resource type="GradientTexture2D" load_steps=2 format=3 uid="uid://5rgkuswg2rxb"] + +[sub_resource type="Gradient" id="Gradient_baoy0"] +colors = PackedColorArray(1, 1, 1, 1, 0.393086, 0.393086, 0.393085, 1) + +[resource] +gradient = SubResource("Gradient_baoy0") +width = 25 +height = 25 +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(1.125, 0) diff --git a/pictures/masterc.png b/pictures/masterc.png new file mode 100644 index 0000000..944e6d9 Binary files /dev/null and b/pictures/masterc.png differ diff --git a/pictures/masterc.png.import b/pictures/masterc.png.import new file mode 100644 index 0000000..1e6c5e0 --- /dev/null +++ b/pictures/masterc.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://w4gxxselk0m5" +path="res://.godot/imported/masterc.png-cfb35c2a62d5719f54ba4d9673392bf8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://pictures/masterc.png" +dest_files=["res://.godot/imported/masterc.png-cfb35c2a62d5719f54ba4d9673392bf8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/project.godot b/project.godot index 387d9f8..862cec0 100644 --- a/project.godot +++ b/project.godot @@ -14,6 +14,7 @@ config/name="ПРД_для_МП-550" run/main_scene="res://PRD_MP550.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") boot_splash/bg_color=Color(0.356863, 0.278431, 0.356863, 1) +boot_splash/image="res://pictures/masterc.png" config/icon="res://icon.svg" [autoload] @@ -36,7 +37,7 @@ window/size/extend_to_title=true [editor] -run/main_run_args="-- addr 3" +run/main_run_args="-- addr 100" [rendering] diff --git a/scripts/PRD.gd b/scripts/PRD.gd index 05a1f79..0bb7517 100644 --- a/scripts/PRD.gd +++ b/scripts/PRD.gd @@ -26,6 +26,7 @@ var save_path = "res://saves/" const need_port: Array = [0x122, 0x124, 0x126, 0x128, 0x12A] var current_meta: Array = [Constants.META.MODUL_UM_1, Constants.META.MODUL_UM_2, Constants.META.MODUL_UM_3, Constants.META.MODUL_UM_28] var modul_um: Array = [0, 0, 0, 0] +var receive_yau_counter: Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] func _ready() -> void: @@ -223,7 +224,7 @@ func _ready() -> void: Network.connect('yau_receive', Callable(self, '_on_data_received')) Network.connect('yau_read_isa', Callable(self, '_on_read_isa')) Network.connect('port_fs_opened', _on_port_changed.bind(Color.AQUAMARINE)) - Network.connect('port_fs_closed', _on_port_changed.bind(Color.CRIMSON)) + Network.connect('port_fs_closed', _on_port_changed.bind(Color.DARK_GRAY)) Network.connect('data_from_fs_1', _on_data_fs_1) Network.connect('data_from_fs_2', _on_data_fs_2) Network.connect('data_from_fs_3', _on_data_fs_3) @@ -321,16 +322,32 @@ func add_signs_scene(): node_select_yau_07b_2.get_node2(1, 4).add_item(key) +# Список статусов ячеек ЯУ-07б func _on_yau_status(addr: String): - if addr != '': - for check in Constants.ADDRESSES: - if check[1] == addr: - $TabContainer/PRD/status_yau.modulate = Color.AQUAMARINE - $TabContainer/PRD/status_yau.text = 'ЯУ-07Б: ' + check[0] - else: - $TabContainer/PRD/status_yau.modulate = Color.CRIMSON - $TabContainer/PRD/status_yau.text = 'ЯУ-07Б: нет связи' + var count_packets_await: int = 10 + var status_yau_list = $TabContainer/PRD/status_yau_list.get_children() + var status_label = $TabContainer/PRD/status_yau + if addr.is_empty(): + # Сброс состояния, если адрес пуст (нет связи) + for label in status_yau_list: + label.text = '' + status_label.modulate = Color.CRIMSON + status_label.text = 'ЯУ-07Б: нет связи' modul_um = [0, 0, 0, 0] + return + status_label.text = '' # Убираем статус, если есть сигнал от ЯУ-07Б + + # Обновляем счетчики + for i in Constants.ADDRESSES.size(): + var address_match = (Constants.ADDRESSES[i][1] == addr) + receive_yau_counter[i] = 0 if address_match else (receive_yau_counter[i] + 1) & 0xFFF + # Обновляем статусы элементов + for i in status_yau_list.size(): + var label = status_yau_list[i] + var address_info = Constants.ADDRESSES[i] + + label.text = address_info[0] + label.modulate = Color.AQUAMARINE if receive_yau_counter[i] < count_packets_await else Color.DARK_GRAY # Если счетчик >= count_packets_await, помечаем серым, иначе — аквамарином func _on_read_isa(unit_isa_ports: Dictionary) -> void: diff --git a/scripts/control_panel.gd b/scripts/control_panel.gd index c98a736..17f81c8 100644 --- a/scripts/control_panel.gd +++ b/scripts/control_panel.gd @@ -377,11 +377,11 @@ func _on_data_fs(fs_data:PackedByteArray, fs_name: String): logger.info('✅ Состояние генератора ФС-1: Включен') elif fs_name == 'ФС-2': $Kasseta_FS/ref_A2.state = Constants.STATE_VAL.GOOD - logger.info('✅ Состояние генератора ФС-1: Включен') + logger.info('✅ Состояние генератора ФС-2: Включен') flag_fs_2_ready = true elif fs_name == 'ФС-3': $Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.GOOD - logger.info('✅ Состояние генератора ФС-1: Включен') + logger.info('✅ Состояние генератора ФС-3: Включен') flag_fs_3_ready = true else: if fs_name == 'ФС-1': @@ -443,7 +443,7 @@ func _on_yau_feedback_receive(_status_yau): $soc_y5/ug.state = Constants.STATE_VAL.GOOD else: flag_ug = false - $soc_y5/ug.state = Constants.STATE_VAL.ERROR + $soc_y5/ug.state = Constants.STATE_VAL.NONE ## Флаг для проверки модуяции на высоком if Network.unit.isa_ports.has(Constants.BASE_PORTS.EMS_G+8) and Network.unit.isa_ports.has(Constants.BASE_PORTS.EMS_G+2): if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+2] == Constants.META.MODUL_UM_2: @@ -492,6 +492,7 @@ func _on_start_super_control(): node.value1 = 0 node.state = Constants.STATE_VAL.NONE + var predel_temp: int = 200 ## Temperature for for i_temperature in range(6): ## Температура от УКП if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature: @@ -499,13 +500,13 @@ func _on_start_super_control(): var temperature_ukp_2 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature) var TMP_1 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * Constants.TEMP + 3 var TMP_2 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * Constants.TEMP + 3 - if TMP_1 > 70: + if TMP_1 > predel_temp: um_cell_ind[i_temperature].value0 = TMP_1 um_cell_ind[i_temperature].state = Constants.STATE_VAL.ERROR logger.warning('❌ Температура УМ %s = %d' % [um_cell_ind[i_temperature].fname, TMP_1]) else: um_cell_ind[i_temperature].value0 = TMP_1 - if TMP_2 > 70: + if TMP_2 > predel_temp: um_cell_ind[i_temperature+6].value0 = TMP_2 um_cell_ind[i_temperature+6].state = Constants.STATE_VAL.ERROR logger.warning('❌ Температура %s: %d' % [um_cell_ind[i_temperature+6].fname, TMP_2]) @@ -515,7 +516,7 @@ func _on_start_super_control(): if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * 7: var temperature_litera_1 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * 7) var TEMPERATURE = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_litera_1) * Constants.TEMP + 3 - if TEMPERATURE > 70: + if TEMPERATURE > predel_temp: um_cell_ind[12].value0 = TEMPERATURE logger.warning('❌ Температура %s = %d' % [um_cell_ind[12].fname, TEMPERATURE]) else: @@ -533,6 +534,9 @@ func _on_start_super_control(): logger.error("❌ ЯУ-07Б: Нет связи") if flag_continue_control: + flag_fs_1_ready = false + flag_fs_2_ready = false + flag_fs_3_ready = false if Network.unit_fs.online: var fs_freq: Array var fs_att_1: float @@ -571,7 +575,7 @@ func _on_start_super_control(): func _status_cell(status): var status_board: int = status.decode_u8(Constants.DataIndices.STATUS_BOARD) var dry_contact: int = status.decode_u8(Constants.DataIndices.DRY_CONTACT) - + var err: bool = false # status_board for i in range(1, 5): if ((status_board >> (i-1)) & 0x1) == 1: @@ -580,8 +584,7 @@ func _status_cell(status): else: node_cell_ind[i].state = Constants.STATE_VAL.ERROR logger.error("❌ %s : Нет связи" % node_cell_ind[i].get('fname')) - _on_contol_err() - return + err = true #dry_contact if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD): @@ -597,13 +600,18 @@ func _status_cell(status): else: node_cell_ind[i_node].state = Constants.STATE_VAL.ERROR logger.error("❌ %s : Нет связи" % node_cell_ind[i_node].get('fname')) + err = true - if node_cell_ind[3].state == Constants.STATE_VAL.GOOD: + if err: + _on_contol_err() + return + + if node_cell_ind[2].state == Constants.STATE_VAL.GOOD: var mask: int = 0x7 prep_set_ug = 0 var index_ray: int = Constants.RAY_DICT.find(' 25°') if Constants.CURRENT_MODE == Constants.MODE.PRD_B or Constants.CURRENT_MODE == Constants.MODE.PRD_K: - index_ray = Constants.RAY_DICT.find(' 15°') + index_ray = Constants.RAY_DICT.find(' 35°') var index_att: int = Constants.ATT_DICT.find(' 10.5 dB') ## Регулировка положением луча 1 prep_set_ug = set_bits(prep_set_ug, index_ray, mask) @@ -638,112 +646,124 @@ func _on_fs_status(META:int): if logger and flag_continue_control: if META == Constants.META.CI_2_OT_FS or META == Constants.META.CI_4_OT_FS or META == Constants.META.CI_6_OT_FS: logger.info('✅ СИ от ФС-1: Включен') + return elif META == Constants.META.CI_3_OT_FS or META == Constants.META.CI_5_OT_FS or META == Constants.META.CI_7_OT_FS: logger.info('✅ СИ от ФС-2: Включен') elif META == Constants.META.CI_1_OT_FS: logger.info('✅ СИ от ФС-3: Включен') - if flag_fs_1_ready and flag_fs_2_ready: - if Constants.CURRENT_MODE == Constants.MODE.PRD_K: - if not flag_fs_3_ready: - return + if not flag_fs_1_ready: + return - #dkm - var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM) + if not flag_fs_2_ready: + return - if Constants.CURRENT_MODE == Constants.MODE.PRD_H: - if (dkm >> 1) & 0x1 == 1: - logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено']) - $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state - else: - logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) - $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state - if (dkm >> 2) & 0x1 == 1: - logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) - $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state - else: - logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) - $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + if Constants.CURRENT_MODE == Constants.MODE.PRD_K: + if not flag_fs_3_ready: + return - if (dkm >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг -> - flag_dkm = true - else: - Network.set_fs_gen_status(true) ## отключен = true - Network.get_gen_state_1() - Network.set_fs_gen_status_2(true) ## отключен = true - Network.get_gen_state_2() - _on_contol_err() + #dkm + var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM) - elif Constants.CURRENT_MODE == Constants.MODE.PRD_B: - if (dkm >> 3) & 0x1 == 1: - logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено']) - $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state - else: - logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) - $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state - if (dkm >> 4) & 0x1 == 1: - logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) - $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state - else: - logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) - $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + if Constants.CURRENT_MODE == Constants.MODE.PRD_H: + if (dkm >> 1) & 0x1 == 1: + logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено']) + $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state + else: + logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) + $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state + if (dkm >> 2) & 0x1 == 1: + logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) + $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + else: + logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) + $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state - if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг -> - flag_dkm = true - else: - Network.set_fs_gen_status(true) ## отключен = true - Network.get_gen_state_1() - Network.set_fs_gen_status_2(true) ## отключен = true - Network.get_gen_state_2() - _on_contol_err() + if (dkm >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг -> + flag_dkm = true + timer.stop() + else: + #flag_dkm = true + #timer.stop() + Network.set_fs_gen_status(true) ## отключен = true + Network.get_gen_state_1() + Network.set_fs_gen_status_2(true) ## отключен = true + Network.get_gen_state_2() + _on_contol_err() - elif Constants.CURRENT_MODE == Constants.MODE.PRD_K: - if (dkm >> 0) & 0x1 == 1: - logger.info('✅ %s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Включено']) - $soc_DKM/DKM_1.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state - else: - logger.info('❌ %s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Нет связи']) - $soc_DKM/DKM_1.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state - if (dkm >> 5) & 0x1 == 1: - logger.info('✅ %s: %s ' % [$Kasseta_FS/ref_A3.fname, 'Включено']) - $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state - else: - logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) - $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state - if (dkm >> 6) & 0x1 == 1: - logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) - $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD - $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state - else: - logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) - $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR - $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + elif Constants.CURRENT_MODE == Constants.MODE.PRD_B: + if 1 == 1:#if (dkm >> 3) & 0x1 == 1: + logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено']) + $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state + else: + logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) + $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state + if 1 == 1:#(dkm >> 4) & 0x1 == 1: + logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) + $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + else: + logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) + $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state - if (dkm >> 5) & 0x1 and (dkm >> 6) & 0x1 and (dkm >> 0) & 0x1: # Следующий шаг -> - flag_dkm = true - timer.stop() - else: - Network.set_fs_gen_status(true) ## отключен = true - Network.get_gen_state_1() - Network.set_fs_gen_status_2(true) ## отключен = true - Network.get_gen_state_2() - Network.set_fs_gen_status_3(true) ## отключен = true - Network.get_gen_state_3() - _on_contol_err() - logger.info('🛈 ДКМ: %s ' % dkm) + if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг -> + flag_dkm = true + timer.stop() + else: + #flag_dkm = true + #timer.stop() + Network.set_fs_gen_status(true) ## отключен = true + Network.get_gen_state_1() + Network.set_fs_gen_status_2(true) ## отключен = true + Network.get_gen_state_2() + _on_contol_err() + + elif Constants.CURRENT_MODE == Constants.MODE.PRD_K: + if (dkm >> 0) & 0x1 == 1: + logger.info('✅ %s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Включено']) + $soc_DKM/DKM_1.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state + else: + logger.info('❌ %s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Нет связи']) + $soc_DKM/DKM_1.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state + if (dkm >> 5) & 0x1 == 1: + logger.info('✅ %s: %s ' % [$Kasseta_FS/ref_A3.fname, 'Включено']) + $soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state + else: + logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи']) + $soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state + if (dkm >> 6) & 0x1 == 1: + logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено']) + $soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD + $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + else: + logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи']) + $soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR + $Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state + + if (dkm >> 5) & 0x1 and (dkm >> 6) & 0x1 and (dkm >> 0) & 0x1: # Следующий шаг -> + flag_dkm = true + timer.stop() + else: + Network.set_fs_gen_status(true) ## отключен = true + Network.get_gen_state_1() + Network.set_fs_gen_status_2(true) ## отключен = true + Network.get_gen_state_2() + Network.set_fs_gen_status_3(true) ## отключен = true + Network.get_gen_state_3() + _on_contol_err() + logger.info('🛈 ДКМ: %s ' % dkm) func _on_modul_um(): @@ -847,12 +867,13 @@ func _status_prd(): status += 1 if (node_cell_ind[18].state == Constants.STATE_VAL.GOOD) else 0 var pribor_ispraven: bool = false - var min_dopusk: int = 40 + var min_dopusk: int = 10 var status_need = count_cell-7 if Constants.CURRENT_MODE != Constants.MODE.PRD_K else count_cell+1 if (status == status_need): pribor_ispraven = true var count_um: int = 0 + for i_pow in array_pow_1: if count_um == 6: um_cell_ind[count_um+6].value1 = i_pow diff --git a/scripts/ems_g.gd b/scripts/ems_g.gd index fa94434..ae7b8bd 100644 --- a/scripts/ems_g.gd +++ b/scripts/ems_g.gd @@ -39,6 +39,11 @@ func _on_read_ems_g(): func _on_sync(): + for index in 16: + for row in 16: + var chk_btn = node_select1.get_node2(index+2, row+3).get_child(1, false) + chk_btn.set_pressed_no_signal(false) + for index in 32: var tmp_device_mode = Constants.EMS_G_PORT_DATA_HOLDER[index][0] if tmp_device_mode > 46: @@ -50,7 +55,7 @@ func _on_sync(): for row in 16: if (port0x124 & (1 << row)) != 0: var chk_btn = node_select1.get_node2(tmp_device_mode-45, row+3).get_child(1, false) - chk_btn.button_pressed =true + chk_btn.set_pressed_no_signal(true) if key == 0x128: port0x128 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key] var list = node_select1.get_node2(tmp_device_mode-45, 0)