add git-hook-gdscript.sh

This commit is contained in:
2025-02-28 10:05:13 +03:00
parent 01c2072bdb
commit 96bef82f47
10 changed files with 453 additions and 257 deletions

View File

@@ -6,6 +6,7 @@ signal signal_on_modul_um()
var timer: Timer = Timer.new()
var timer_03: Timer = Timer.new()
var node_cell_ind: Array
var um_cell_ind: Array
var count_cell: int
var past_pribor: int
var logger: Node
@@ -69,6 +70,7 @@ func _ready() -> void:
timer_03.connect('timeout', Callable(self, '_on_timer_03'))
self.connect('signal_on_start_timer_03', Callable(self, '_on_start_timer_03'))
Network.connect('yau_receive', Callable(self, '_on_yau_received'))
Network.connect('yau_feedback_receive', Callable(self, '_on_yau_feedback_receive'))
self.connect('signal_on_modul_um', Callable(self, '_on_modul_um'))
node_cell_ind = [
@@ -101,6 +103,21 @@ func _ready() -> void:
$soc_DKM/DKM_3,
]
count_cell = len(node_cell_ind)
um_cell_ind = [
$socket_ym_lb/blok_ym_1,
$socket_ym_lb/blok_ym_2,
$socket_ym_lb/blok_ym_3,
$socket_ym_lb/blok_ym_4,
$socket_ym_lb/blok_ym_5,
$socket_ym_lb/blok_ym_6,
$socket_ym_pb/blok_ym_1,
$socket_ym_pb/blok_ym_2,
$socket_ym_pb/blok_ym_3,
$socket_ym_pb/blok_ym_4,
$socket_ym_pb/blok_ym_5,
$socket_ym_pb/blok_ym_6,
]
_draw_control_panel_prd(Constants.CURRENT_MODE)
@@ -238,7 +255,7 @@ func fs_1_setup(freq):
Network.get_gen_state_1()
Network.status_can_macro_1(false)
Network.set_fs_ferq_carrier(freq * 1_000_000)
Network.set_fs_attenuation(float(19))
Network.set_fs_attenuation(float(18)) # Для литеры 4
Network.set_can_macro(freq)
Network.status_can_macro_1(true)
await get_tree().create_timer(0.4).timeout
@@ -254,7 +271,7 @@ func fs_2_setup(freq):
Network.get_gen_state_2()
Network.status_can_macro_2(false)
Network.set_fs_ferq_carrier_2(freq * 1_000_000)
Network.set_fs_attenuation_2(float(19))
Network.set_fs_attenuation_2(float(16)) # Для литеры 5
Network.set_can_macro_2(freq)
Network.status_can_macro_2(true)
await get_tree().create_timer(0.8).timeout
@@ -279,23 +296,23 @@ func _on_data_fs(fs_data:PackedByteArray, fs_name: String):
match CMD:
Constants.CMD.READ_CARRIER:
if GRP == Constants.GROUP.BASE:
logger.info('В модуль %s установлена частота: %s МГц' % [fs_name, (fs_data.decode_u64(0xC) / 1_000_000.0)])
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('В модуль %s установлена аттенюация: %s dB' % [fs_name, (fs_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_data.decode_u32(0xC) == 0:
logger.info('Состояние генератора %s: Включен' % fs_name)
logger.info('Состояние генератора %s: Включен' % fs_name)
else:
if fs_name == 'ФС-1':
flag_fs_1_ready = false
if fs_name == 'ФС-2':
flag_fs_2_ready = false
logger.info('Состояние генератора %s: Отключен' % fs_name)
logger.info('🛈 Состояние генератора %s: Отключен' % fs_name)
Constants.CMD.BASE_CAN_MACRO_READ:
if GRP == Constants.GROUP.BASE:
logger.info('В модуль %s установлена частота CAN: %s МГц' % [fs_name, (fs_data.decode_u16(0x20))])
logger.info('В модуль %s установлена частота CAN: %s МГц' % [fs_name, (fs_data.decode_u16(0x20))])
func _on_yau_received(status_yau):
@@ -325,35 +342,33 @@ func _on_yau_received(status_yau):
if arr_power_ukp_2[i] > array_pow_2[i]:
array_pow_2[i] = arr_power_ukp_2[i]
count_packet += 1
if logger:
## Флаг для проверки настройки угла и аттенюации на двух литерах
if Network.unit.isa_ports.has(Constants.BASE_PORTS.UG+6) and Network.unit.isa_ports.has(Constants.BASE_PORTS.UG+8):
if Network.unit.isa_ports[Constants.BASE_PORTS.UG+6] == 58 and Network.unit.isa_ports[Constants.BASE_PORTS.UG+8] == 58:
flag_ug = true
else:
flag_ug = false
## Флаг для проверки модуяции на высоком
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+8] == 0x8000:
flag_modul_on_1 = true
print('Модуляция 1 включена!')
#logger.info('Модуляция УМ (2, 4, 6) включена!')
elif Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+8] == 0x4000:
flag_modul_on_1 = false
print('Модуляция 1 отключена!')
#logger.info('Модуляция УМ (2, 4, 6) отключена!')
if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+2] == Constants.META.MODUL_UM_3:
if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+8] == 0x8000:
flag_modul_on_2 = true
print('Модуляция 2 включена!')
#logger.info('Модуляция УМ (3, 5, 7) включена!')
elif Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+8] == 0x4000:
flag_modul_on_2 = false
print('Модуляция 2 отключена!')
#logger.info('Модуляция УМ (3, 5, 7) включена!!')
func _on_yau_feedback_receive(_status_yau):
## Флаг для проверки настройки угла и аттенюации на двух литерах
if Network.unit.isa_ports.has(Constants.BASE_PORTS.UG+6) and Network.unit.isa_ports.has(Constants.BASE_PORTS.UG+8):
if Network.unit.isa_ports[Constants.BASE_PORTS.UG+6] == 58 and Network.unit.isa_ports[Constants.BASE_PORTS.UG+8] == 58:
flag_ug = true
else:
flag_ug = false
## Флаг для проверки модуяции на высоком
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+8] == 0x8000 and (not flag_modul_on_1):
flag_modul_on_1 = true
logger.info('✅ Модуляция УМ (2, 4, 6) включена!')
elif Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+8] == 0x4000 and (flag_modul_on_1):
flag_modul_on_1 = false
logger.info('❌ Модуляция УМ (2, 4, 6) отключена!')
if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+2] == Constants.META.MODUL_UM_3:
if Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+8] == 0x8000 and (not flag_modul_on_2):
flag_modul_on_2 = true
logger.info('✅ Модуляция УМ (3, 5, 7) включена!')
elif Network.unit.isa_ports[Constants.BASE_PORTS.EMS_G+8] == 0x4000 and (flag_modul_on_2):
flag_modul_on_2 = false
logger.info('❌ Модуляция УМ (3, 5, 7) отключена!')
func _on_start_super_control():
$log_array/await.visible = true
logger = Logger.new(get_node('log_array'))
@@ -367,14 +382,16 @@ func _on_start_super_control():
_draw_control_panel_prd(Constants.CURRENT_MODE)
if (Network.unit.online):
$soc_y5/yau_07b.state = Constants.STATE_VAL.GOOD
logger.info("ЯУ-07Б: Есть связь")
logger.info("ЯУ-07Б: Есть связь")
_status_cell(Network.unit.status)
else:
for i in range(1, count_cell):
node_cell_ind[i].state = Constants.STATE_VAL.NONE
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
logger.error("ЯУ-07Б: Нет связи")
logger.error("ЯУ-07Б: Нет связи")
_status_prd()
$log_array/await.visible = false
if Network.unit_fs.online:
@@ -389,7 +406,7 @@ func _on_start_super_control():
fs_1_setup(fs_freq[0]) # Гц
fs_2_setup(fs_freq[1]) # Гц
else:
logger.info('Настройка модулей ФС')
logger.info('Настройка модулей ФС')
func _status_cell(status):
@@ -400,10 +417,10 @@ func _status_cell(status):
for i in range(1, 5):
if ((status_board >> (i-1)) & 0x1) == 1:
node_cell_ind[i].state = Constants.STATE_VAL.GOOD
logger.info("%s : Есть связь" % node_cell_ind[i].get('fname'))
logger.info("%s : Есть связь" % node_cell_ind[i].get('fname'))
else:
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'))
#dry_contact
if (node_cell_ind[2].state == Constants.STATE_VAL.GOOD):
@@ -415,10 +432,16 @@ func _status_cell(status):
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'))
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'))
logger.error("%s : Нет связи" % node_cell_ind[i_node].get('fname'))
if node_cell_ind[3].state == Constants.STATE_VAL.GOOD:
yau_07b_setup()
logger.info('%s: Настройка угла и аттенюации ...' % node_cell_ind[3].get('fname'))
else:
logger.error('%s: Нет на связи, не буду продолжать' % node_cell_ind[3].get('fname'))
else:
for i_node_unknow in range(5, 13):
node_cell_ind[i_node_unknow].state = Constants.STATE_VAL.NONE
@@ -427,7 +450,7 @@ func _status_cell(status):
func _on_timer():
if (Network.unit.online):
logger = Logger.new(get_node('log_array'))
logger.info("ЯУ-07Б: Есть связь")
logger.info("ЯУ-07Б: Есть связь")
$soc_y5/yau_07b.state = Constants.STATE_VAL.GOOD
_status_cell(Network.unit.status)
else:
@@ -435,14 +458,14 @@ func _on_timer():
node_cell_ind[i].state = Constants.STATE_VAL.NONE
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
logger.error("ЯУ-07Б: Нет связи")
logger.error("ЯУ-07Б: Нет связи")
if (Network.unit_fs.online):
logger.info('Настройка модулей ФС Гц:')
fs_1_setup(Constants.FS_FREQ.f2) # Гц
fs_2_setup(Constants.FS_FREQ.f3) # Гц
else:
logger.error('Настройка модулей ФС')
logger.error('Настройка модулей ФС')
func _on_fs_status(META:int):
@@ -455,7 +478,7 @@ func _on_fs_status(META:int):
if flag_fs_1_ready and flag_fs_2_ready:
#dkm
var dkm: int = Network.unit.status.decode_u8(Constants.DataIndices.DKM)
$DKM.text = str(dkm)
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
$soc_DKM/DKM_2.state = (dkm >> 1) & 0x1
$soc_DKM/DKM_3.state = (dkm >> 2) & 0x1
@@ -472,7 +495,6 @@ func _on_fs_status(META:int):
if (dkm >> 1) & 0x1 == 1 and (dkm >> 2) & 0x1 == 1: # Следующий шаг ->
flag_dkm = true
yau_07b_setup()
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
$soc_DKM/DKM_2.state = (dkm >> 3) & 0x1
$soc_DKM/DKM_3.state = (dkm >> 4) & 0x1
@@ -486,9 +508,9 @@ func _on_fs_status(META:int):
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
if (dkm >> 3) & 0x1 == 1 and (dkm >> 4) & 0x1 == 1: # Следующий шаг ->
flag_dkm = true
yau_07b_setup()
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K:
$soc_DKM/DKM_1.state = (dkm >> 0) & 0x1
$soc_DKM/DKM_2.state = (dkm >> 5) & 0x1
@@ -526,9 +548,9 @@ func _on_timer_03():
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 0x4000)
flag_control_add = false
await get_tree().create_timer(1.0).timeout
logger.info('Количество принятых пакетов от ЯУ-07Б: %s пакета' % count_packet)
logger.info('Максимальные значения по мощности от УКП-1: %s ' % str(array_pow_1))
logger.info('Максимальные значения по мощности от УКП-1: %s ' % str(array_pow_2))
logger.info('Количество принятых пакетов от ЯУ-07Б: %s пкт.' % count_packet)
logger.info('Максимальные значения мощностей от УКП-1: %s ' % str(array_pow_1))
logger.info('Максимальные значения мощности от УКП-2: %s ' % str(array_pow_2))
_status_prd()
$log_array/await.visible = false
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, Constants.META.CZI_1)
@@ -552,16 +574,28 @@ func _status_prd():
var min_dopusk: int = 40
if (status == count_cell-7):
pribor_ispraven = true
var count_um: int = 0
for i_pow in array_pow_1:
um_cell_ind[count_um].value1 = i_pow
if i_pow < min_dopusk:
pribor_ispraven = false
um_cell_ind[count_um].state = Constants.STATE_VAL.ERROR
else:
um_cell_ind[count_um].state = Constants.STATE_VAL.GOOD
count_um += 1
for i_pow in array_pow_2:
um_cell_ind[count_um].value1 = i_pow
if i_pow < min_dopusk:
pribor_ispraven = false
um_cell_ind[count_um].state = Constants.STATE_VAL.ERROR
else:
um_cell_ind[count_um].state = Constants.STATE_VAL.GOOD
count_um += 1
if pribor_ispraven:
$lbl_control.text = 'Прибор исправен'
$lbl_control.text = 'Прибор %s исправен' % Constants.ADDRESSES[Constants.CURRENT_MODE * 4][0]
$lbl_control.modulate = Color.AQUAMARINE
else:
$lbl_control.text = 'Прибор неисправен'
$lbl_control.text = 'Прибор %s неисправен' % Constants.ADDRESSES[Constants.CURRENT_MODE * 4][0]
$lbl_control.modulate = Color.CRIMSON