Отладка контроля, загрузки ЭМС-Г, состояния ЯУ-07
This commit is contained in:
@@ -700,12 +700,65 @@ offset_bottom = -16.0
|
|||||||
script = ExtResource("2_vmbyo")
|
script = ExtResource("2_vmbyo")
|
||||||
node_gap = Vector2(100, 50)
|
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"]
|
[node name="Connect_prd" type="Button" parent="TabContainer/PRD"]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 47.0
|
offset_left = 48.0
|
||||||
offset_top = 30.0
|
offset_top = 354.0
|
||||||
offset_right = 248.0
|
offset_right = 249.0
|
||||||
offset_bottom = 58.0
|
offset_bottom = 382.0
|
||||||
focus_mode = 0
|
focus_mode = 0
|
||||||
mouse_default_cursor_shape = 16
|
mouse_default_cursor_shape = 16
|
||||||
theme_override_colors/font_color = Color(1, 1, 0.941176, 1)
|
theme_override_colors/font_color = Color(1, 1, 0.941176, 1)
|
||||||
@@ -715,14 +768,6 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_eleyh")
|
|||||||
text = "Подключение"
|
text = "Подключение"
|
||||||
metadata/_edit_lock_ = true
|
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"]
|
[node name="ControlPanel" type="Panel" parent="TabContainer"]
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ custom_features=""
|
|||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="bin/testPRD-2.0.exe"
|
export_path="bin/testPRD.exe"
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
encrypt_pck=false
|
encrypt_pck=false
|
||||||
@@ -19,7 +19,7 @@ script_export_mode=2
|
|||||||
[preset.0.options]
|
[preset.0.options]
|
||||||
|
|
||||||
custom_template/debug=""
|
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
|
debug/export_console_wrapper=0
|
||||||
binary_format/embed_pck=true
|
binary_format/embed_pck=true
|
||||||
texture_format/s3tc_bptc=true
|
texture_format/s3tc_bptc=true
|
||||||
@@ -32,8 +32,8 @@ codesign/digest_algorithm=1
|
|||||||
codesign/description=""
|
codesign/description=""
|
||||||
codesign/custom_options=PackedStringArray()
|
codesign/custom_options=PackedStringArray()
|
||||||
application/modify_resources=true
|
application/modify_resources=true
|
||||||
application/icon=""
|
application/icon="res://icon.svg"
|
||||||
application/console_wrapper_icon=""
|
application/console_wrapper_icon="res://icon.svg"
|
||||||
application/icon_interpolation=4
|
application/icon_interpolation=4
|
||||||
application/file_version=""
|
application/file_version=""
|
||||||
application/product_version=""
|
application/product_version=""
|
||||||
|
|||||||
15
find_fs.bat
15
find_fs.bat
@@ -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
|
|
||||||
12
light_ind.tres
Normal file
12
light_ind.tres
Normal file
@@ -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)
|
||||||
BIN
pictures/masterc.png
Normal file
BIN
pictures/masterc.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
34
pictures/masterc.png.import
Normal file
34
pictures/masterc.png.import
Normal file
@@ -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
|
||||||
@@ -14,6 +14,7 @@ config/name="ПРД_для_МП-550"
|
|||||||
run/main_scene="res://PRD_MP550.tscn"
|
run/main_scene="res://PRD_MP550.tscn"
|
||||||
config/features=PackedStringArray("4.3", "GL Compatibility")
|
config/features=PackedStringArray("4.3", "GL Compatibility")
|
||||||
boot_splash/bg_color=Color(0.356863, 0.278431, 0.356863, 1)
|
boot_splash/bg_color=Color(0.356863, 0.278431, 0.356863, 1)
|
||||||
|
boot_splash/image="res://pictures/masterc.png"
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
@@ -36,7 +37,7 @@ window/size/extend_to_title=true
|
|||||||
|
|
||||||
[editor]
|
[editor]
|
||||||
|
|
||||||
run/main_run_args="-- addr 3"
|
run/main_run_args="-- addr 100"
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ var save_path = "res://saves/"
|
|||||||
const need_port: Array = [0x122, 0x124, 0x126, 0x128, 0x12A]
|
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 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 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:
|
func _ready() -> void:
|
||||||
@@ -223,7 +224,7 @@ func _ready() -> void:
|
|||||||
Network.connect('yau_receive', Callable(self, '_on_data_received'))
|
Network.connect('yau_receive', Callable(self, '_on_data_received'))
|
||||||
Network.connect('yau_read_isa', Callable(self, '_on_read_isa'))
|
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_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_1', _on_data_fs_1)
|
||||||
Network.connect('data_from_fs_2', _on_data_fs_2)
|
Network.connect('data_from_fs_2', _on_data_fs_2)
|
||||||
Network.connect('data_from_fs_3', _on_data_fs_3)
|
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)
|
node_select_yau_07b_2.get_node2(1, 4).add_item(key)
|
||||||
|
|
||||||
|
|
||||||
|
# Список статусов ячеек ЯУ-07б
|
||||||
func _on_yau_status(addr: String):
|
func _on_yau_status(addr: String):
|
||||||
if addr != '':
|
var count_packets_await: int = 10
|
||||||
for check in Constants.ADDRESSES:
|
var status_yau_list = $TabContainer/PRD/status_yau_list.get_children()
|
||||||
if check[1] == addr:
|
var status_label = $TabContainer/PRD/status_yau
|
||||||
$TabContainer/PRD/status_yau.modulate = Color.AQUAMARINE
|
if addr.is_empty():
|
||||||
$TabContainer/PRD/status_yau.text = 'ЯУ-07Б: ' + check[0]
|
# Сброс состояния, если адрес пуст (нет связи)
|
||||||
else:
|
for label in status_yau_list:
|
||||||
$TabContainer/PRD/status_yau.modulate = Color.CRIMSON
|
label.text = ''
|
||||||
$TabContainer/PRD/status_yau.text = 'ЯУ-07Б: нет связи'
|
status_label.modulate = Color.CRIMSON
|
||||||
|
status_label.text = 'ЯУ-07Б: нет связи'
|
||||||
modul_um = [0, 0, 0, 0]
|
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:
|
func _on_read_isa(unit_isa_ports: Dictionary) -> void:
|
||||||
|
|||||||
@@ -377,11 +377,11 @@ func _on_data_fs(fs_data:PackedByteArray, fs_name: String):
|
|||||||
logger.info('✅ Состояние генератора ФС-1: Включен')
|
logger.info('✅ Состояние генератора ФС-1: Включен')
|
||||||
elif fs_name == 'ФС-2':
|
elif fs_name == 'ФС-2':
|
||||||
$Kasseta_FS/ref_A2.state = Constants.STATE_VAL.GOOD
|
$Kasseta_FS/ref_A2.state = Constants.STATE_VAL.GOOD
|
||||||
logger.info('✅ Состояние генератора ФС-1: Включен')
|
logger.info('✅ Состояние генератора ФС-2: Включен')
|
||||||
flag_fs_2_ready = true
|
flag_fs_2_ready = true
|
||||||
elif fs_name == 'ФС-3':
|
elif fs_name == 'ФС-3':
|
||||||
$Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.GOOD
|
$Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.GOOD
|
||||||
logger.info('✅ Состояние генератора ФС-1: Включен')
|
logger.info('✅ Состояние генератора ФС-3: Включен')
|
||||||
flag_fs_3_ready = true
|
flag_fs_3_ready = true
|
||||||
else:
|
else:
|
||||||
if fs_name == 'ФС-1':
|
if fs_name == 'ФС-1':
|
||||||
@@ -443,7 +443,7 @@ func _on_yau_feedback_receive(_status_yau):
|
|||||||
$soc_y5/ug.state = Constants.STATE_VAL.GOOD
|
$soc_y5/ug.state = Constants.STATE_VAL.GOOD
|
||||||
else:
|
else:
|
||||||
flag_ug = false
|
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.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:
|
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.value1 = 0
|
||||||
node.state = Constants.STATE_VAL.NONE
|
node.state = Constants.STATE_VAL.NONE
|
||||||
|
|
||||||
|
var predel_temp: int = 200
|
||||||
## Temperature for
|
## Temperature for
|
||||||
for i_temperature in range(6): ## Температура от УКП
|
for i_temperature in range(6): ## Температура от УКП
|
||||||
if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature:
|
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 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_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
|
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].value0 = TMP_1
|
||||||
um_cell_ind[i_temperature].state = Constants.STATE_VAL.ERROR
|
um_cell_ind[i_temperature].state = Constants.STATE_VAL.ERROR
|
||||||
logger.warning('❌ Температура УМ %s = %d' % [um_cell_ind[i_temperature].fname, TMP_1])
|
logger.warning('❌ Температура УМ %s = %d' % [um_cell_ind[i_temperature].fname, TMP_1])
|
||||||
else:
|
else:
|
||||||
um_cell_ind[i_temperature].value0 = TMP_1
|
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].value0 = TMP_2
|
||||||
um_cell_ind[i_temperature+6].state = Constants.STATE_VAL.ERROR
|
um_cell_ind[i_temperature+6].state = Constants.STATE_VAL.ERROR
|
||||||
logger.warning('❌ Температура %s: %d' % [um_cell_ind[i_temperature+6].fname, TMP_2])
|
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:
|
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_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
|
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
|
um_cell_ind[12].value0 = TEMPERATURE
|
||||||
logger.warning('❌ Температура %s = %d' % [um_cell_ind[12].fname, TEMPERATURE])
|
logger.warning('❌ Температура %s = %d' % [um_cell_ind[12].fname, TEMPERATURE])
|
||||||
else:
|
else:
|
||||||
@@ -533,6 +534,9 @@ func _on_start_super_control():
|
|||||||
logger.error("❌ ЯУ-07Б: Нет связи")
|
logger.error("❌ ЯУ-07Б: Нет связи")
|
||||||
|
|
||||||
if flag_continue_control:
|
if flag_continue_control:
|
||||||
|
flag_fs_1_ready = false
|
||||||
|
flag_fs_2_ready = false
|
||||||
|
flag_fs_3_ready = false
|
||||||
if Network.unit_fs.online:
|
if Network.unit_fs.online:
|
||||||
var fs_freq: Array
|
var fs_freq: Array
|
||||||
var fs_att_1: float
|
var fs_att_1: float
|
||||||
@@ -571,7 +575,7 @@ func _on_start_super_control():
|
|||||||
func _status_cell(status):
|
func _status_cell(status):
|
||||||
var status_board: int = status.decode_u8(Constants.DataIndices.STATUS_BOARD)
|
var status_board: int = status.decode_u8(Constants.DataIndices.STATUS_BOARD)
|
||||||
var dry_contact: int = status.decode_u8(Constants.DataIndices.DRY_CONTACT)
|
var dry_contact: int = status.decode_u8(Constants.DataIndices.DRY_CONTACT)
|
||||||
|
var err: bool = false
|
||||||
# status_board
|
# status_board
|
||||||
for i in range(1, 5):
|
for i in range(1, 5):
|
||||||
if ((status_board >> (i-1)) & 0x1) == 1:
|
if ((status_board >> (i-1)) & 0x1) == 1:
|
||||||
@@ -580,8 +584,7 @@ func _status_cell(status):
|
|||||||
else:
|
else:
|
||||||
node_cell_ind[i].state = Constants.STATE_VAL.ERROR
|
node_cell_ind[i].state = Constants.STATE_VAL.ERROR
|
||||||
logger.error("❌ %s : Нет связи" % node_cell_ind[i].get('fname'))
|
logger.error("❌ %s : Нет связи" % node_cell_ind[i].get('fname'))
|
||||||
_on_contol_err()
|
err = true
|
||||||
return
|
|
||||||
|
|
||||||
#dry_contact
|
#dry_contact
|
||||||
if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD):
|
if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD):
|
||||||
@@ -597,13 +600,18 @@ func _status_cell(status):
|
|||||||
else:
|
else:
|
||||||
node_cell_ind[i_node].state = Constants.STATE_VAL.ERROR
|
node_cell_ind[i_node].state = Constants.STATE_VAL.ERROR
|
||||||
logger.error("❌ %s : Нет связи" % node_cell_ind[i_node].get('fname'))
|
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
|
var mask: int = 0x7
|
||||||
prep_set_ug = 0
|
prep_set_ug = 0
|
||||||
var index_ray: int = Constants.RAY_DICT.find(' 25°')
|
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:
|
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')
|
var index_att: int = Constants.ATT_DICT.find(' 10.5 dB')
|
||||||
## Регулировка положением луча 1
|
## Регулировка положением луча 1
|
||||||
prep_set_ug = set_bits(prep_set_ug, index_ray, mask)
|
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 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:
|
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: Включен')
|
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:
|
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: Включен')
|
logger.info('✅ СИ от ФС-2: Включен')
|
||||||
elif META == Constants.META.CI_1_OT_FS:
|
elif META == Constants.META.CI_1_OT_FS:
|
||||||
logger.info('✅ СИ от ФС-3: Включен')
|
logger.info('✅ СИ от ФС-3: Включен')
|
||||||
|
|
||||||
|
|
||||||
if flag_fs_1_ready and flag_fs_2_ready:
|
if not flag_fs_1_ready:
|
||||||
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
return
|
||||||
if not flag_fs_3_ready:
|
|
||||||
return
|
|
||||||
|
|
||||||
#dkm
|
if not flag_fs_2_ready:
|
||||||
var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM)
|
return
|
||||||
|
|
||||||
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
|
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
||||||
if (dkm >> 1) & 0x1 == 1:
|
if not flag_fs_3_ready:
|
||||||
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
|
return
|
||||||
$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 >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг ->
|
#dkm
|
||||||
flag_dkm = true
|
var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM)
|
||||||
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()
|
|
||||||
|
|
||||||
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
|
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
|
||||||
if (dkm >> 3) & 0x1 == 1:
|
if (dkm >> 1) & 0x1 == 1:
|
||||||
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
|
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
|
||||||
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
|
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
|
||||||
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
||||||
else:
|
else:
|
||||||
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
|
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
|
||||||
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
|
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
|
||||||
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
||||||
if (dkm >> 4) & 0x1 == 1:
|
if (dkm >> 2) & 0x1 == 1:
|
||||||
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
|
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
|
||||||
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
|
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
|
||||||
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
|
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
|
||||||
else:
|
else:
|
||||||
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
|
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
|
||||||
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
|
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
|
||||||
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
|
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
|
||||||
|
|
||||||
if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг ->
|
if (dkm >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг ->
|
||||||
flag_dkm = true
|
flag_dkm = true
|
||||||
else:
|
timer.stop()
|
||||||
Network.set_fs_gen_status(true) ## отключен = true
|
else:
|
||||||
Network.get_gen_state_1()
|
#flag_dkm = true
|
||||||
Network.set_fs_gen_status_2(true) ## отключен = true
|
#timer.stop()
|
||||||
Network.get_gen_state_2()
|
Network.set_fs_gen_status(true) ## отключен = true
|
||||||
_on_contol_err()
|
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:
|
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
|
||||||
if (dkm >> 0) & 0x1 == 1:
|
if 1 == 1:#if (dkm >> 3) & 0x1 == 1:
|
||||||
logger.info('✅ %s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Включено'])
|
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
|
||||||
$soc_DKM/DKM_1.state = Constants.STATE_VAL.GOOD
|
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
|
||||||
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state
|
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
||||||
else:
|
else:
|
||||||
logger.info('❌ %s: %s ' % [$Kasseta_FS/Block_FS_PRD_K.fname, 'Нет связи'])
|
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
|
||||||
$soc_DKM/DKM_1.state = Constants.STATE_VAL.ERROR
|
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
|
||||||
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state
|
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
||||||
if (dkm >> 5) & 0x1 == 1:
|
if 1 == 1:#(dkm >> 4) & 0x1 == 1:
|
||||||
logger.info('✅ %s: %s ' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
|
logger.info('✅ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
|
||||||
$soc_DKM/DKM_2.state = Constants.STATE_VAL.GOOD
|
$soc_DKM/DKM_3.state = Constants.STATE_VAL.GOOD
|
||||||
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
|
||||||
else:
|
else:
|
||||||
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
|
logger.info('❌ %s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
|
||||||
$soc_DKM/DKM_2.state = Constants.STATE_VAL.ERROR
|
$soc_DKM/DKM_3.state = Constants.STATE_VAL.ERROR
|
||||||
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
|
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.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: # Следующий шаг ->
|
if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг ->
|
||||||
flag_dkm = true
|
flag_dkm = true
|
||||||
timer.stop()
|
timer.stop()
|
||||||
else:
|
else:
|
||||||
Network.set_fs_gen_status(true) ## отключен = true
|
#flag_dkm = true
|
||||||
Network.get_gen_state_1()
|
#timer.stop()
|
||||||
Network.set_fs_gen_status_2(true) ## отключен = true
|
Network.set_fs_gen_status(true) ## отключен = true
|
||||||
Network.get_gen_state_2()
|
Network.get_gen_state_1()
|
||||||
Network.set_fs_gen_status_3(true) ## отключен = true
|
Network.set_fs_gen_status_2(true) ## отключен = true
|
||||||
Network.get_gen_state_3()
|
Network.get_gen_state_2()
|
||||||
_on_contol_err()
|
_on_contol_err()
|
||||||
logger.info('🛈 ДКМ: %s ' % dkm)
|
|
||||||
|
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():
|
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
|
status += 1 if (node_cell_ind[18].state == Constants.STATE_VAL.GOOD) else 0
|
||||||
|
|
||||||
var pribor_ispraven: bool = false
|
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
|
var status_need = count_cell-7 if Constants.CURRENT_MODE != Constants.MODE.PRD_K else count_cell+1
|
||||||
if (status == status_need):
|
if (status == status_need):
|
||||||
pribor_ispraven = true
|
pribor_ispraven = true
|
||||||
|
|
||||||
var count_um: int = 0
|
var count_um: int = 0
|
||||||
|
|
||||||
for i_pow in array_pow_1:
|
for i_pow in array_pow_1:
|
||||||
if count_um == 6:
|
if count_um == 6:
|
||||||
um_cell_ind[count_um+6].value1 = i_pow
|
um_cell_ind[count_um+6].value1 = i_pow
|
||||||
|
|||||||
@@ -39,6 +39,11 @@ func _on_read_ems_g():
|
|||||||
|
|
||||||
|
|
||||||
func _on_sync():
|
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:
|
for index in 32:
|
||||||
var tmp_device_mode = Constants.EMS_G_PORT_DATA_HOLDER[index][0]
|
var tmp_device_mode = Constants.EMS_G_PORT_DATA_HOLDER[index][0]
|
||||||
if tmp_device_mode > 46:
|
if tmp_device_mode > 46:
|
||||||
@@ -50,7 +55,7 @@ func _on_sync():
|
|||||||
for row in 16:
|
for row in 16:
|
||||||
if (port0x124 & (1 << row)) != 0:
|
if (port0x124 & (1 << row)) != 0:
|
||||||
var chk_btn = node_select1.get_node2(tmp_device_mode-45, row+3).get_child(1, false)
|
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:
|
if key == 0x128:
|
||||||
port0x128 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key]
|
port0x128 = Constants.EMS_G_PORT_DATA_HOLDER[index][1][key]
|
||||||
var list = node_select1.get_node2(tmp_device_mode-45, 0)
|
var list = node_select1.get_node2(tmp_device_mode-45, 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user