доработка контроля

This commit is contained in:
2025-02-21 15:41:47 +03:00
parent 7a084d04e4
commit 70bca2ce57
4 changed files with 64 additions and 46 deletions

View File

@@ -743,7 +743,7 @@ offset_top = 36.0
offset_right = 66.0 offset_right = 66.0
offset_bottom = 210.0 offset_bottom = 210.0
self_size = Vector2i(50, 174) self_size = Vector2i(50, 174)
fname = "ДКМ1" fname = "ДКМ-1"
rname = " " rname = " "
[node name="soc_P2" type="NinePatchRect" parent="TabContainer/ControlPanel"] [node name="soc_P2" type="NinePatchRect" parent="TabContainer/ControlPanel"]

View File

@@ -363,3 +363,12 @@ enum META {
FGOZ_3 = 56, FGOZ_3 = 56,
FGOZ_5 = 56, FGOZ_5 = 56,
} }
enum FS_FREQ {
f1 = 430,
f2 = 932,
f3 = 1137,
f4 = 1300,
f5 = 1725,
f6 = 2750,
f7 = 4750,
}

View File

@@ -47,10 +47,11 @@ class Logger extends Node:
func _ready() -> void: func _ready() -> void:
Network.connect('port_fs_opened_1', _on_fs_status_1.bind(Constants.STATE_VAL.GOOD)) Network.connect('port_fs_opened_1', _on_fs_status_1.bind(Constants.STATE_VAL.GOOD))
Network.connect('port_fs_closed_1', _on_fs_status_1.bind(Constants.STATE_VAL.ERROR)) Network.connect('port_fs_closed_1', _on_fs_status_1.bind(Constants.STATE_VAL.ERROR))
Network.connect('data_from_fs_1', _on_data_fs_1) Network.connect('data_from_fs_1', _on_data_fs.bind('ФС-1'))
Network.connect('port_fs_opened_2', _on_fs_status_2.bind(Constants.STATE_VAL.GOOD)) Network.connect('port_fs_opened_2', _on_fs_status_2.bind(Constants.STATE_VAL.GOOD))
Network.connect('port_fs_closed_2', _on_fs_status_2.bind(Constants.STATE_VAL.ERROR)) Network.connect('port_fs_closed_2', _on_fs_status_2.bind(Constants.STATE_VAL.ERROR))
Network.connect('data_from_fs_2', _on_data_fs.bind('ФС-2'))
self.add_child(timer) self.add_child(timer)
timer.connect('timeout', Callable(self, '_on_timer')) timer.connect('timeout', Callable(self, '_on_timer'))
@@ -127,9 +128,11 @@ func _status_cell(status):
#dry_contact #dry_contact
if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD): if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD):
for i_node in range(5, 13): for i_node in range(5, 13):
var skip = false
if i_node == 10 or i_node == 11: if i_node == 10 or i_node == 11:
if Constants.CURRENT_MODE != Constants.MODE.PRD_K: skip = Constants.CURRENT_MODE != Constants.MODE.PRD_K
return
if not skip:
if ((dry_contact >> (i_node-5)) & 0x1) == 0: if ((dry_contact >> (i_node-5)) & 0x1) == 0:
node_cell_ind[i_node].state = Constants.STATE_VAL.GOOD node_cell_ind[i_node].state = Constants.STATE_VAL.GOOD
logger.info("%s : Есть связь ✅" % node_cell_ind[i_node].get('fname')) logger.info("%s : Есть связь ✅" % node_cell_ind[i_node].get('fname'))
@@ -171,10 +174,9 @@ func _status_prd():
status += 1 if (node_cell_ind[17].state == Constants.STATE_VAL.GOOD) else 0 status += 1 if (node_cell_ind[17].state == Constants.STATE_VAL.GOOD) else 0
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
if (status == count_cell-7): if (status == count_cell-3):
#$lbl_control.text = 'Прибор исправен' $lbl_control.text = 'Прибор исправен'
#$lbl_control.modulate = Color.AQUAMARINE $lbl_control.modulate = Color.AQUAMARINE
emit_signal('signal_on_start_timer_03')
else: else:
$lbl_control.text = 'Прибор неисправен' $lbl_control.text = 'Прибор неисправен'
$lbl_control.modulate = Color.CRIMSON $lbl_control.modulate = Color.CRIMSON
@@ -212,8 +214,8 @@ func _draw_control_panel_prd(pribor):
# ДКМ # ДКМ
$soc_DKM/DKM_1.visible = false $soc_DKM/DKM_1.visible = false
$soc_DKM/DKM_2.fname = 'ДКМ2' $soc_DKM/DKM_2.fname = 'ДКМ-2'
$soc_DKM/DKM_3.fname = 'ДКМ3' $soc_DKM/DKM_3.fname = 'ДКМ-3'
elif pribor == Constants.MODE.PRD_B: elif pribor == Constants.MODE.PRD_B:
# Кассета У5 # Кассета У5
@@ -245,8 +247,8 @@ func _draw_control_panel_prd(pribor):
$soc_P2.visible = false $soc_P2.visible = false
# ДКМ # ДКМ
$soc_DKM/DKM_1.visible = false $soc_DKM/DKM_1.visible = false
$soc_DKM/DKM_2.fname = 'ДКМ4' $soc_DKM/DKM_2.fname = 'ДКМ-4'
$soc_DKM/DKM_2.fname = 'ДКМ5' $soc_DKM/DKM_3.fname = 'ДКМ-5'
elif pribor == Constants.MODE.PRD_K: elif pribor == Constants.MODE.PRD_K:
# Кассета У5 # Кассета У5
@@ -282,8 +284,8 @@ func _draw_control_panel_prd(pribor):
$soc_P2.visible = true $soc_P2.visible = true
# ДКМ # ДКМ
$soc_DKM/DKM_1.visible = true $soc_DKM/DKM_1.visible = true
$soc_DKM/DKM_2.fname = 'ДКМ6' $soc_DKM/DKM_2.fname = 'ДКМ-6'
$soc_DKM/DKM_2.fname = 'ДКМ7' $soc_DKM/DKM_3.fname = 'ДКМ-7'
func _on_fs_status_1(_name_port, status_fs_1: int): func _on_fs_status_1(_name_port, status_fs_1: int):
@@ -292,6 +294,7 @@ func _on_fs_status_1(_name_port, status_fs_1: int):
#var message: String = "Модуль ФС-1: %s" % name_port #var message: String = "Модуль ФС-1: %s" % name_port
#logger.info(message) #logger.info(message)
func _on_fs_status_2(_name_port, status_fs_2): func _on_fs_status_2(_name_port, status_fs_2):
$Kasseta_FS/ref_A2.state = status_fs_2 $Kasseta_FS/ref_A2.state = status_fs_2
#if logger: #if logger:
@@ -300,12 +303,13 @@ func _on_fs_status_2(_name_port, status_fs_2):
func fs_1_setup(freq): func fs_1_setup(freq):
#Network.get_fs_gen_status(true) ## отключен пока что (поменять на false)
Network.status_can_macro_1(false) Network.status_can_macro_1(false)
Network.set_fs_ferq_carrier(freq * 1_000_000) Network.set_fs_ferq_carrier(freq * 1_000_000)
Network.set_fs_attenuation(float(19)) Network.set_fs_attenuation(float(19))
Network.set_can_macro(freq) Network.set_can_macro(freq)
Network.status_can_macro_1(true) Network.status_can_macro_1(true)
Network.get_fs_gen_status(true) ## отключен пока что (поменять на false) Network.get_fs_gen_status(false)
func fs_2_setup(freq): func fs_2_setup(freq):
@@ -320,32 +324,33 @@ func fs_2_setup(freq):
func yau_07b_setup(): func yau_07b_setup():
Network.write_port_isa(Constants.BASE_PORTS.UG+6, 56) Network.write_port_isa(Constants.BASE_PORTS.UG+6, 56)
Network.write_port_isa(Constants.BASE_PORTS.UG+8, 56) Network.write_port_isa(Constants.BASE_PORTS.UG+8, 56)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, 51) Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, Constants.META.MODUL_UM_2)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 2<<13) Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 2<<13)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, 52) Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, Constants.META.MODUL_UM_3)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 2<<13) Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 2<<13)
func _on_data_fs_1(fs_1_data): func _on_data_fs(fs_data:PackedByteArray, fs_name: String):
if logger: if logger:
var GRP = fs_1_data.decode_u8(0x0) var GRP = fs_data.decode_u8(0x0)
var CMD = fs_1_data.decode_u8(0x1) var CMD = fs_data.decode_u8(0x1)
match CMD: match CMD:
Constants.CMD.READ_CARRIER: Constants.CMD.READ_CARRIER:
if GRP == Constants.GROUP.BASE: if GRP == Constants.GROUP.BASE:
logger.info('В модуль ФС-1 установлена частота: %s МГц ✅' % (fs_1_data.decode_u64(0xC) / 1_000_000)) logger.info('В модуль %s установлена частота: %s МГц ✅' % [fs_name, (fs_data.decode_u64(0xC) / 1_000_000.0)])
Constants.CMD.READ_ATT: Constants.CMD.READ_ATT:
if GRP == Constants.GROUP.RF: if GRP == Constants.GROUP.RF:
logger.info('В модуль ФС-1 установлена аттенюация: %s dB ✅' % (fs_1_data.decode_float(0x18))) logger.info('В модуль %s установлена аттенюация: %s dB ✅' % [fs_name, (fs_data.decode_float(0x18))])
Constants.CMD.READ_GEN_STATUS: Constants.CMD.READ_GEN_STATUS:
if GRP == Constants.GROUP.GENERATOR: if GRP == Constants.GROUP.GENERATOR:
if fs_1_data.decode_u32(0xC) == 0: if fs_data.decode_u32(0xC) == 0:
logger.info('Состояние генератора ФС-1: Включен ✅') logger.info('Состояние генератора %s: Включен ✅' % fs_name)
emit_signal('signal_on_start_timer_03')
else: else:
logger.info('Состояние генератора ФС-1: Отключен ❌') logger.info('Состояние генератора %s: Отключен ❌' % fs_name)
Constants.CMD.BASE_CAN_MACRO_READ: Constants.CMD.BASE_CAN_MACRO_READ:
if GRP == Constants.GROUP.BASE: if GRP == Constants.GROUP.BASE:
logger.info('В модуль ФС-1 установлена частота CAN: %s МГц ✅' % (fs_1_data.decode_u16(0x20))) logger.info('В модуль %s установлена частота CAN: %s МГц ✅' % [fs_name, (fs_data.decode_u16(0x20))])
func _on_start_super_control(): func _on_start_super_control():
@@ -367,15 +372,18 @@ func _on_start_super_control():
logger.error("ЯУ-07Б: Нет связи ❌") logger.error("ЯУ-07Б: Нет связи ❌")
if Network.unit_fs.online: if Network.unit_fs.online:
logger.info('Настройка модуля ФС %s Гц' % 932) var fs_freq: Array = [0, 0, 0]
fs_1_setup(932) # Гц if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
fs_2_setup(1137) # Гц fs_freq[0] = Constants.FS_FREQ.f2
fs_freq[1] = Constants.FS_FREQ.f3
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
fs_freq[0] = Constants.FS_FREQ.f4
fs_freq[1] = Constants.FS_FREQ.f5
logger.info('Настройка модулей ФС %s Гц' % str(fs_freq))
fs_1_setup(fs_freq[0]) # Гц
fs_2_setup(fs_freq[1]) # Гц
else: else:
logger.info('Настройка модуля ФС ❌') logger.info('Настройка модулей ФС ❌')
_status_prd()
past_pribor = Constants.CURRENT_MODE
func _on_timer(): func _on_timer():
@@ -392,11 +400,11 @@ func _on_timer():
logger.error("ЯУ-07Б: Нет связи ❌") logger.error("ЯУ-07Б: Нет связи ❌")
if (Network.unit_fs.online): if (Network.unit_fs.online):
logger.info('Настройка модуля ФС %s Гц' % 932) logger.info('Настройка модулей ФС Гц')
fs_1_setup(932) # Гц fs_1_setup(Constants.FS_FREQ.f2) # Гц
fs_2_setup(1137) # Гц fs_2_setup(Constants.FS_FREQ.f3) # Гц
else: else:
logger.info('Настройка модуля ФС ❌') logger.error('Настройка модулей ФС ❌')
func _on_start_timer_03(): func _on_start_timer_03():
@@ -418,3 +426,4 @@ func _on_timer_03():
flag_control_on = false flag_control_on = false
logger.info('Количество принятых пакетов от ЯУ-07Б: %s пакета' % count_packet) logger.info('Количество принятых пакетов от ЯУ-07Б: %s пакета' % count_packet)
logger.info('Максимальные значения по мощности от УКП-1: %s ' % str(array_pow)) logger.info('Максимальные значения по мощности от УКП-1: %s ' % str(array_pow))
_status_prd()

View File

@@ -193,9 +193,9 @@ func on_line_changed(_unit) -> void:
emit_signal('yau_status_line', unit.online) emit_signal('yau_status_line', unit.online)
## Ессли отсутствует подключение к ячейке ЯУ-07 ## Ессли отсутствует подключение к ячейке ЯУ-07Б
func on_command_fail(_unit) -> void: func on_command_fail(_unit) -> void:
print_debug('Command send fail') print('Отсутствует подключение к ячейке ЯУ-07Б')
func on_command_change_device(meta_device): func on_command_change_device(meta_device):