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