1 litera is almost ready

This commit is contained in:
2025-03-07 00:20:35 +03:00
parent 1c7aba948a
commit a7a4ffaa9e
9 changed files with 854 additions and 283 deletions

View File

@@ -16,11 +16,13 @@ var count_packet:int = 0
var flag_control_add: bool = false
var flag_fs_1_ready: bool = false
var flag_fs_2_ready: bool = false
var flag_fs_3_ready: bool = false
var flag_dkm: bool = false
var flag_ug: bool = false
var flag_modul_on_1: bool = false
var flag_modul_on_2: bool = false
var flag_start: bool = false
var prep_set_ug: int = 0
class Logger extends Node:
@@ -55,13 +57,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('port_fs_opened', _on_fs_status.bind(Constants.STATE_VAL.GOOD))
#Network.connect('port_fs_closed', _on_fs_status.bind(Constants.STATE_VAL.ERROR))
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'))
Network.connect('data_from_fs_3', _on_data_fs.bind('ФС-3'))
self.add_child(timer)
self.add_child(timer_03)
@@ -117,6 +117,8 @@ func _ready() -> void:
$socket_ym_pb/blok_ym_4,
$socket_ym_pb/blok_ym_5,
$socket_ym_pb/blok_ym_6,
$socket_ym_lb/blok_ym_litera_1,
]
_draw_control_panel_prd(Constants.CURRENT_MODE)
@@ -157,11 +159,12 @@ func _draw_control_panel_prd(pribor):
$soc_P1/MAA_2.rname = 'А23'
# Кассета П-2
$soc_P2.visible = false
# ДКМ
$soc_DKM/DKM_1.visible = false
$soc_DKM/DKM_2.fname = 'ДКМ-2'
$soc_DKM/DKM_3.fname = 'ДКМ-3'
# УМ УМ
$socket_ym_lb/blok_ym_litera_1.visible = false
elif pribor == Constants.MODE.PRD_B:
# Кассета У5
@@ -195,6 +198,8 @@ func _draw_control_panel_prd(pribor):
$soc_DKM/DKM_1.visible = false
$soc_DKM/DKM_2.fname = 'ДКМ-4'
$soc_DKM/DKM_3.fname = 'ДКМ-5'
# УМ УМ
$socket_ym_lb/blok_ym_litera_1.visible = false
elif pribor == Constants.MODE.PRD_K:
# Кассета У5
@@ -232,57 +237,64 @@ func _draw_control_panel_prd(pribor):
$soc_DKM/DKM_1.visible = true
$soc_DKM/DKM_2.fname = 'ДКМ-6'
$soc_DKM/DKM_3.fname = 'ДКМ-7'
# УМ УМ
$socket_ym_lb/blok_ym_litera_1.visible = true
func _on_fs_status_1(_name_port, status_fs_1: int):
$Kasseta_FS/ref_A1.state = status_fs_1
#if logger:
#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:
#var message: String = "Модуль ФС-2: %s" % name_port
#logger.info(message)
func fs_1_setup(freq):
await get_tree().create_timer(0.4).timeout
func fs_1_setup(freq: int, att: float):
await get_tree().create_timer(0.1).timeout
Network.set_fs_gen_status(true) ## отключен на true
await get_tree().create_timer(0.4).timeout
await get_tree().create_timer(0.1).timeout
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(18)) # Для литеры 4
Network.set_fs_attenuation(att) # Для литеры 2, 4, 6
Network.set_can_macro(freq)
Network.status_can_macro_1(true)
await get_tree().create_timer(0.4).timeout
await get_tree().create_timer(0.1).timeout
Network.set_fs_gen_status(false) ## отключен на true
await get_tree().create_timer(0.4).timeout
await get_tree().create_timer(0.1).timeout
Network.get_gen_state_1()
func fs_2_setup(freq):
await get_tree().create_timer(1.8).timeout
Network.set_fs_gen_status_2(true) ## отключен = true
func fs_2_setup(freq: int, att: float):
await get_tree().create_timer(0.8).timeout
Network.set_fs_gen_status_2(true) ## отключен = true
await get_tree().create_timer(0.1).timeout
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(16)) # Для литеры 5
Network.set_fs_attenuation_2(float(att)) # Для литеры 3, 5, 7
Network.set_can_macro_2(freq)
Network.status_can_macro_2(true)
await get_tree().create_timer(0.8).timeout
await get_tree().create_timer(0.1).timeout
Network.set_fs_gen_status_2(false) ## отключен = true
await get_tree().create_timer(0.8).timeout
await get_tree().create_timer(0.1).timeout
Network.get_gen_state_2()
func yau_07b_setup():
Network.write_port_isa(Constants.BASE_PORTS.UG+6, 58)
Network.write_port_isa(Constants.BASE_PORTS.UG+8, 58)
func fs_3_setup(freq: int, att: float):
await get_tree().create_timer(1.5).timeout
Network.set_fs_gen_status_3(true) ## отключен = true
await get_tree().create_timer(0.1).timeout
Network.get_gen_state_3()
Network.status_can_macro_3(false)
Network.set_fs_ferq_carrier_3(freq * 1_000_000)
Network.set_fs_attenuation_3(float(att)) # Для литеры 1
Network.set_can_macro_3(freq)
Network.status_can_macro_3(true)
await get_tree().create_timer(0.1).timeout
Network.set_fs_gen_status_3(false) ## отключен = true
await get_tree().create_timer(0.1).timeout
Network.get_gen_state_3()
func yau_07b_setup(angle_and_att: int):
Network.write_port_isa(Constants.BASE_PORTS.UG+0x6, angle_and_att)
Network.write_port_isa(Constants.BASE_PORTS.UG+0x8, angle_and_att)
Network.write_port_isa(Constants.BASE_PORTS.UG+0xA, (angle_and_att & 0x38)>>3)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, Constants.META.MODUL_UM_1)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 2<<13) ## Отключить модуляцию (литера 1)
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) ## Отключить модуляцию (литера 2)
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+2, Constants.META.MODUL_UM_3)
@@ -303,12 +315,22 @@ func _on_data_fs(fs_data:PackedByteArray, fs_name: String):
Constants.CMD.READ_GEN_STATUS:
if GRP == Constants.GROUP.GENERATOR:
if fs_data.decode_u32(0xC) == 0:
logger.info('✅ Состояние генератора %s: Включен' % fs_name)
if fs_name == 'ФС-1':
logger.info('✅ Состояние генератора %s: Включен' % fs_name)
$Kasseta_FS/ref_A1.state = Constants.STATE_VAL.GOOD
elif fs_name == 'ФС-2':
logger.info('✅ Состояние генератора %s: Включен' % fs_name)
$Kasseta_FS/ref_A2.state = Constants.STATE_VAL.GOOD
elif fs_name == 'ФС-3':
logger.info('✅ Состояние генератора %s: Включен' % fs_name)
$Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.GOOD
else:
if fs_name == 'ФС-1':
flag_fs_1_ready = false
if fs_name == 'ФС-2':
flag_fs_2_ready = false
if fs_name == 'ФС-3':
flag_fs_3_ready = false
logger.info('🛈 Состояние генератора %s: Отключен' % fs_name)
Constants.CMD.BASE_CAN_MACRO_READ:
if GRP == Constants.GROUP.BASE:
@@ -316,18 +338,18 @@ func _on_data_fs(fs_data:PackedByteArray, fs_name: String):
func _on_yau_received(status_yau):
#print(Network.unit.status.decode_u8(Constants.DataIndices.DKM))
if flag_control_add:
# Сбор урожая с УКП-1
var arr_power_ukp_1: Array = []
for i in range(6): ## Мощность от УКП_1
var numbre_scrape: int = 7 if Constants.CURRENT_MODE == Constants.MODE.PRD_K else 6
for i in range(numbre_scrape): ## Мощность от УКП_1
var power_ukp_1 = status_yau.decode_u16(Constants.DataIndices.POWER_UKP_1 + 2 * i)
arr_power_ukp_1.append(power_ukp_1)
if count_packet == 0:
array_pow_1 = arr_power_ukp_1
else:
for i in range(6):
for i in range(numbre_scrape):
if arr_power_ukp_1[i] > array_pow_1[i]:
array_pow_1[i] = arr_power_ukp_1[i]
# Сбор урожая с УКП-2
@@ -349,7 +371,7 @@ func _on_yau_feedback_receive(_status_yau):
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:
if Network.unit.isa_ports[Constants.BASE_PORTS.UG+6] == prep_set_ug and Network.unit.isa_ports[Constants.BASE_PORTS.UG+8] == prep_set_ug:
flag_ug = true
else:
flag_ug = false
@@ -361,27 +383,68 @@ func _on_yau_feedback_receive(_status_yau):
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) отключена!')
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) отключена!')
logger.info('🛈 Модуляция УМ (3, 5, 7) отключена!')
func _on_start_super_control():
$log_array/await.visible = true
logger = Logger.new(get_node('log_array'))
if (past_pribor != Constants.CURRENT_MODE):
_draw_control_panel_prd(Constants.CURRENT_MODE)
for i in count_cell:
node_cell_ind[i].state = Constants.STATE_VAL.NONE
flag_dkm = false
flag_ug = false
#timer.start(5)
for node in um_cell_ind:
node.value0 = 0
node.value1 = 0
node.state = Constants.STATE_VAL.NONE
if (past_pribor != Constants.CURRENT_MODE):
_draw_control_panel_prd(Constants.CURRENT_MODE)
## Temperature for
for i_temperature in range(6): ## Температура от УКП
if len(Network.unit.status) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_temperature:
var temperature_ukp_1 = Network.unit.status.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 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_2 = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * Constants.TEMP + 3
if TMP_1 > 70:
um_cell_ind[i_temperature].value0 = TMP_1
_status_prd()
$log_array/await.visible = false
#timer.start(5)
return
else:
um_cell_ind[i_temperature].value0 = TMP_1
if TMP_2 > 70:
um_cell_ind[i_temperature+6].value0 = TMP_2
_status_prd()
$log_array/await.visible = false
#timer.start(5)
return
else:
um_cell_ind[i_temperature+6].value0 = TMP_2
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
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:
um_cell_ind[12].value0 = TEMPERATURE
_status_prd()
$log_array/await.visible = false
#timer.start(5)
return
else:
um_cell_ind[12].value0 = TEMPERATURE
if (Network.unit.online):
$soc_y5/yau_07b.state = Constants.STATE_VAL.GOOD
logger.info("✅ ЯУ-07Б: Есть связь")
@@ -397,16 +460,30 @@ func _on_start_super_control():
$log_array/await.visible = false
if Network.unit_fs.online:
var fs_freq: Array = [0, 0, 0]
var fs_freq: Array
var fs_att_1: float
var fs_att_2: float
var fs_att_3: float
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
fs_freq[0] = Constants.FS_FREQ.f2
fs_freq[1] = Constants.FS_FREQ.f3
fs_freq.append(Constants.FS_FREQ.f2)
fs_att_1 = Constants.FS_ATT.att_1_prd_K1
fs_freq.append(Constants.FS_FREQ.f3)
fs_att_2 = Constants.FS_ATT.att_1_prd_K1
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]) # Гц
fs_freq.append(Constants.FS_FREQ.f4)
fs_freq.append(Constants.FS_FREQ.f5)
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K:
fs_freq.append(Constants.FS_FREQ.f6)
fs_att_1 = Constants.FS_ATT.att_1_prd_K1
fs_freq.append(Constants.FS_FREQ.f7)
fs_att_2 = Constants.FS_ATT.att_2_prd_K1
fs_freq.append(Constants.FS_FREQ.f1)
fs_att_3 = Constants.FS_ATT.att_3_prd_K1
fs_3_setup(fs_freq[2], fs_att_3)
logger.info('🛈 Настройка модулей ФС %s Гц, %s, %s АТТ' % [str(fs_freq), str(fs_att_1), str(fs_att_2)])
fs_1_setup(fs_freq[0], fs_att_1) # Гц
fs_2_setup(fs_freq[1], fs_att_2) # Гц
else:
logger.info('❌ Настройка модулей ФС')
@@ -440,42 +517,47 @@ func _status_cell(status):
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'))
var mask: int = 0x7
prep_set_ug = 0
var index_ray: int = Constants.RAY_DICT.find(' 25°')
var index_att: int = Constants.ATT_DICT.find(' 10.5 dB')
## Регулировка положением луча 1
prep_set_ug = set_bits(prep_set_ug, index_ray, mask)
## Регулировка положением луча 2
mask = 0x38
prep_set_ug = set_bits(prep_set_ug, index_att << 3, mask)
logger.info('🛈 %s: Настройка угла %s' % [node_cell_ind[2].get('fname'), Constants.RAY_DICT[index_ray]])
logger.info('🛈 %s: Настройка аттенюации %s' % [node_cell_ind[2].get('fname'), Constants.ATT_DICT[index_att]])
yau_07b_setup(prep_set_ug)
else:
logger.error('%s: Нет на связи, не буду продолжать' % node_cell_ind[3].get('fname'))
logger.error('%s: Нет на связи, не буду продолжать' % node_cell_ind[2].get('fname'))
else:
for i_node_unknow in range(5, 13):
node_cell_ind[i_node_unknow].state = Constants.STATE_VAL.NONE
func _on_timer():
if (Network.unit.online):
logger = Logger.new(get_node('log_array'))
logger.info("✅ ЯУ-07Б: Есть связь")
$soc_y5/yau_07b.state = Constants.STATE_VAL.GOOD
_status_cell(Network.unit.status)
else:
for i in range(1, count_cell-9):
node_cell_ind[i].state = Constants.STATE_VAL.NONE
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
logger.error("❌ ЯУ-07Б: Нет связи")
## Устанавливает биты в соответствии с маской
## [param v] - Прежние значения бит
## [param a] - Новые значения бит
## [param m] - Маска изменяемых бит
func set_bits(v, a, m):
return (~m) & v | a & m
if (Network.unit_fs.online):
logger.info('Настройка модулей ФС Гц:')
fs_1_setup(Constants.FS_FREQ.f2) # Гц
fs_2_setup(Constants.FS_FREQ.f3) # Гц
else:
logger.error('❌ Настройка модулей ФС')
func _on_timer():
_on_start_super_control()
func _on_fs_status(META:int):
if logger:
if META == Constants.META.CI_2_OT_FS or META == Constants.META.CI_4_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:
flag_fs_1_ready = true
elif META == Constants.META.CI_3_OT_FS or META == Constants.META.CI_5_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:
flag_fs_2_ready = true
elif META == Constants.META.CI_1_OT_FS:
flag_fs_3_ready = true
if flag_fs_1_ready and flag_fs_2_ready:
#dkm
@@ -487,32 +569,48 @@ func _on_fs_status(META:int):
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 1) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
if (dkm >> 2) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
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()
_status_prd()
$log_array/await.visible = false
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
$soc_DKM/DKM_2.state = (dkm >> 3) & 0x1
$soc_DKM/DKM_3.state = (dkm >> 4) & 0x1
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 3) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
if (dkm >> 4) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
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()
_status_prd()
$log_array/await.visible = false
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K:
$soc_DKM/DKM_1.state = (dkm >> 0) & 0x1
$soc_DKM/DKM_2.state = (dkm >> 5) & 0x1
@@ -520,6 +618,30 @@ func _on_fs_status(META:int):
$Kasseta_FS/Block_FS_PRD_K.state = $soc_DKM/DKM_1.state
$Kasseta_FS/ref_A3.state = $soc_DKM/DKM_2.state
$Kasseta_FS/ref_A4.state = $soc_DKM/DKM_3.state
if (dkm >> 0) & 0x1 == 1:
print('OK')
else:
print('FAIL: ', dkm)
if (dkm >> 5) & 0x1 == 1:
logger.info('%s: %s ' % [$Kasseta_FS/ref_A3.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A3.fname, 'Нет связи'])
if (dkm >> 6) & 0x1 == 1:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Включено'])
else:
logger.info('%s: %s' % [$Kasseta_FS/ref_A4.fname, 'Нет связи'])
if (dkm >> 5) & 0x1 == 1 and (dkm >> 6) & 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()
Network.set_fs_gen_status_3(true) ## отключен = true
Network.get_gen_state_3()
_status_prd()
$log_array/await.visible = false
func _on_modul_um():
@@ -548,6 +670,14 @@ func _on_timer_03():
Network.write_port_isa(Constants.BASE_PORTS.EMS_G+8, 0x4000)
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, 0x4000)
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()
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
Network.set_fs_gen_status_3(true) ## отключен = true
Network.get_gen_state_3()
flag_control_add = false
await get_tree().create_timer(1.0).timeout
logger.info('Количество принятых пакетов от ЯУ-07Б: %s пкт.' % count_packet)
@@ -574,27 +704,40 @@ func _status_prd():
var pribor_ispraven: bool = false
var min_dopusk: int = 40
if (status == count_cell-7):
var status_need = count_cell-7 if Constants.CURRENT_MODE != Constants.MODE.PRD_K else count_cell-4
if (status == status_need):
pribor_ispraven = true
var count_um: int = 0
for i_pow in array_pow_1:
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
if i_pow < min_dopusk:
pribor_ispraven = false
um_cell_ind[count_um+6].state = Constants.STATE_VAL.ERROR
else:
um_cell_ind[count_um+6].state = Constants.STATE_VAL.GOOD
count_um -=1
else:
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
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 = 'Прибор %s исправен' % Constants.ADDRESSES[Constants.CURRENT_MODE * 4][0]
$lbl_control.modulate = Color.AQUAMARINE