дорабтока отслеживания счетчика команда фс
This commit is contained in:
@@ -93,6 +93,8 @@ class ClientFs extends Node:
|
|||||||
var command_stack: Array
|
var command_stack: Array
|
||||||
var status: = PackedByteArray() ## Поле "состояние прибора"
|
var status: = PackedByteArray() ## Поле "состояние прибора"
|
||||||
var counter: int = 0
|
var counter: int = 0
|
||||||
|
var send_count: int = 0
|
||||||
|
var missed_packets: int = 0
|
||||||
var online: bool = false ## Состояние связи с ФС
|
var online: bool = false ## Состояние связи с ФС
|
||||||
|
|
||||||
func _init(nm):
|
func _init(nm):
|
||||||
@@ -145,6 +147,7 @@ class ClientFs extends Node:
|
|||||||
_status = _stream.STATUS_NONE
|
_status = _stream.STATUS_NONE
|
||||||
command_stack = []
|
command_stack = []
|
||||||
counter = 0
|
counter = 0
|
||||||
|
send_count = 0
|
||||||
if _stream.connect_to_host(host, port) != OK:
|
if _stream.connect_to_host(host, port) != OK:
|
||||||
print_debug("Error connecting to host.")
|
print_debug("Error connecting to host.")
|
||||||
emit_signal("error_connect")
|
emit_signal("error_connect")
|
||||||
@@ -160,6 +163,16 @@ class ClientFs extends Node:
|
|||||||
return final_crc
|
return final_crc
|
||||||
|
|
||||||
func _form_packet(group: int, cmd: int, index_size: int, data = null) -> PackedByteArray:
|
func _form_packet(group: int, cmd: int, index_size: int, data = null) -> PackedByteArray:
|
||||||
|
var previous_count = send_count
|
||||||
|
send_count = counter
|
||||||
|
print([self_name, previous_count, counter])
|
||||||
|
if previous_count != 0 && (counter - previous_count) != 1:
|
||||||
|
var skipped = counter - previous_count - 1
|
||||||
|
missed_packets += skipped
|
||||||
|
print_debug("ALARM: Пропущено %d пакетов (было: %d, стало: %d)" % [skipped, previous_count, counter])
|
||||||
|
print_debug("Группа: %d, Команда: %d" % [group, cmd])
|
||||||
|
|
||||||
|
# Формируем пакет
|
||||||
var packet = PackedByteArray()
|
var packet = PackedByteArray()
|
||||||
packet.resize(index_size)
|
packet.resize(index_size)
|
||||||
packet.encode_u8(GROUP_OFFSET, group)
|
packet.encode_u8(GROUP_OFFSET, group)
|
||||||
@@ -176,6 +189,7 @@ class ClientFs extends Node:
|
|||||||
packet.encode_u32(packet.size() - 4, crc)
|
packet.encode_u32(packet.size() - 4, crc)
|
||||||
command_stack.append(packet)
|
command_stack.append(packet)
|
||||||
|
|
||||||
|
|
||||||
func send_fs_data() -> bool:
|
func send_fs_data() -> bool:
|
||||||
if _status != _stream.STATUS_CONNECTED:
|
if _status != _stream.STATUS_CONNECTED:
|
||||||
print("Send_fs_data Error: Stream is not currently connected.")
|
print("Send_fs_data Error: Stream is not currently connected.")
|
||||||
@@ -196,13 +210,14 @@ class ClientFs extends Node:
|
|||||||
func start_session():
|
func start_session():
|
||||||
command_stack = []
|
command_stack = []
|
||||||
counter = 0
|
counter = 0
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.START_SESSION, INDEX_SIZE, counter)
|
send_count = 0
|
||||||
|
var packet = _form_packet(GROUP.BASE, CmdCode.START_SESSION, INDEX_SIZE)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
## MSK модуляция
|
## MSK модуляция
|
||||||
func set_configure_state_msk_modul_1() -> void:
|
func set_configure_state_msk_modul_1() -> void:
|
||||||
var index_size = 0x20
|
var index_size = 0x20
|
||||||
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_CONFIGURE, index_size, counter)
|
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_CONFIGURE, index_size)
|
||||||
packet.encode_u8(0x3, 0x09)
|
packet.encode_u8(0x3, 0x09)
|
||||||
packet.encode_u16(0x8, 0x0014)
|
packet.encode_u16(0x8, 0x0014)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
@@ -210,7 +225,7 @@ class ClientFs extends Node:
|
|||||||
## Constant модуляция
|
## Constant модуляция
|
||||||
func set_configure_state_msk_const():
|
func set_configure_state_msk_const():
|
||||||
var index_size = 0x20
|
var index_size = 0x20
|
||||||
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_CONFIGURE, index_size, counter)
|
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_CONFIGURE, index_size)
|
||||||
packet.encode_u8(0x3, 0x09)
|
packet.encode_u8(0x3, 0x09)
|
||||||
packet.encode_u16(0x8, 0x0014)
|
packet.encode_u16(0x8, 0x0014)
|
||||||
packet.encode_u8(0x1C, 0x0f)
|
packet.encode_u8(0x1C, 0x0f)
|
||||||
@@ -218,35 +233,35 @@ class ClientFs extends Node:
|
|||||||
|
|
||||||
func set_gen_state(button_state: bool):
|
func set_gen_state(button_state: bool):
|
||||||
var index_size = 0x1C
|
var index_size = 0x1C
|
||||||
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_GEN_STATUS, index_size, counter)
|
var packet = _form_packet(GROUP.GENERATOR, CmdCode.SET_GEN_STATUS, index_size)
|
||||||
packet.encode_u16(0x8, 0x0010)
|
packet.encode_u16(0x8, 0x0010)
|
||||||
packet.encode_u32(0xC, button_state) ## MODE GEN STATUS
|
packet.encode_u32(0xC, button_state) ## MODE GEN STATUS
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func status_can_macro_exec(button_state: bool):
|
func status_can_macro_exec(button_state: bool):
|
||||||
var index_size = 0x1C
|
var index_size = 0x1C
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.STATUS_CAN_MACRO, index_size, counter)
|
var packet = _form_packet(GROUP.BASE, CmdCode.STATUS_CAN_MACRO, index_size)
|
||||||
packet.encode_u16(0x8, 0x0010)
|
packet.encode_u16(0x8, 0x0010)
|
||||||
packet.encode_u32(0xC, button_state) ## mode can status
|
packet.encode_u32(0xC, button_state) ## mode can status
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func set_carrier(installation_frequency: int):
|
func set_carrier(installation_frequency: int):
|
||||||
var index_size = 0x1C
|
var index_size = 0x1C
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.SET_CARRIER, index_size, counter)
|
var packet = _form_packet(GROUP.BASE, CmdCode.SET_CARRIER, index_size)
|
||||||
packet.encode_u16(0x8, 0x10)
|
packet.encode_u16(0x8, 0x10)
|
||||||
packet.encode_u64(0xC, installation_frequency) ## uint64_t freq low dword/high dword
|
packet.encode_u64(0xC, installation_frequency) ## uint64_t freq low dword/high dword
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func set_att_batch(attenuation: float):
|
func set_att_batch(attenuation: float):
|
||||||
var index_size = 0x1C
|
var index_size = 0x1C
|
||||||
var packet = _form_packet(GROUP.RF, CmdCode.SET_ATT, index_size, counter)
|
var packet = _form_packet(GROUP.RF, CmdCode.SET_ATT, index_size)
|
||||||
packet.encode_u16(0x8, 0x10)
|
packet.encode_u16(0x8, 0x10)
|
||||||
packet.encode_float(0x18, attenuation)
|
packet.encode_float(0x18, attenuation)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func set_base_can_macro(installation_can_frequency: int):
|
func set_base_can_macro(installation_can_frequency: int):
|
||||||
var index_size = 0x34
|
var index_size = 0x34
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_CAN_MACRO_WRITE, index_size, counter)
|
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_CAN_MACRO_WRITE, index_size)
|
||||||
packet.encode_u16(0x08, 0x28)
|
packet.encode_u16(0x08, 0x28)
|
||||||
packet.encode_u8(0x1C, 0x01)
|
packet.encode_u8(0x1C, 0x01)
|
||||||
packet.encode_u8(0x1D, 0x42)
|
packet.encode_u8(0x1D, 0x42)
|
||||||
@@ -257,23 +272,23 @@ class ClientFs extends Node:
|
|||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func get_carrier():
|
func get_carrier():
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.READ_CARRIER, INDEX_SIZE, counter)
|
var packet = _form_packet(GROUP.BASE, CmdCode.READ_CARRIER, INDEX_SIZE)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func get_att_batch():
|
func get_att_batch():
|
||||||
var packet = _form_packet(GROUP.RF, CmdCode.READ_ATT, INDEX_SIZE, counter)
|
var packet = _form_packet(GROUP.RF, CmdCode.READ_ATT, INDEX_SIZE)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func get_gen_state():
|
func get_gen_state():
|
||||||
var packet = _form_packet(GROUP.GENERATOR, CmdCode.READ_GEN_STATUS, INDEX_SIZE, counter)
|
var packet = _form_packet(GROUP.GENERATOR, CmdCode.READ_GEN_STATUS, INDEX_SIZE)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func get_base_current_temp():
|
func get_base_current_temp():
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_GET_CURRENT_TEMP, INDEX_SIZE, counter)
|
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_GET_CURRENT_TEMP, INDEX_SIZE)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
func get_base_can_macro():
|
func get_base_can_macro():
|
||||||
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_CAN_MACRO_READ, INDEX_SIZE, counter)
|
var packet = _form_packet(GROUP.BASE, CmdCode.BASE_CAN_MACRO_READ, INDEX_SIZE)
|
||||||
send_packet_to(packet)
|
send_packet_to(packet)
|
||||||
|
|
||||||
# Разорвать соединение с ФС
|
# Разорвать соединение с ФС
|
||||||
|
|||||||
@@ -818,7 +818,7 @@ func set_bits(v, a, m):
|
|||||||
|
|
||||||
## ФС Connect close
|
## ФС Connect close
|
||||||
func _on_port_changed(client_addr: String, unit_fs_client: Node, status) -> void:
|
func _on_port_changed(client_addr: String, unit_fs_client: Node, status) -> void:
|
||||||
var loging = 'Соединение ...' if status == Constants.STATE_VAL.NONE else 'Подключено!' if status == Constants.STATE_VAL.GOOD else 'Ошибка'
|
var loging = 'Соединение ...' if status == Constants.STATE_VAL.NONE else 'Подключено' if status == Constants.STATE_VAL.GOOD else 'Ошибка'
|
||||||
var color = Color.AQUAMARINE if status == Constants.STATE_VAL.GOOD else Color.DARK_GRAY if status == Constants.STATE_VAL.NONE else Color.CRIMSON
|
var color = Color.AQUAMARINE if status == Constants.STATE_VAL.GOOD else Color.DARK_GRAY if status == Constants.STATE_VAL.NONE else Color.CRIMSON
|
||||||
|
|
||||||
if unit_fs_client == Network.unit_fs_1:
|
if unit_fs_client == Network.unit_fs_1:
|
||||||
|
|||||||
@@ -488,66 +488,68 @@ func _on_start_super_control():
|
|||||||
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
|
$soc_y5/yau_07b.state = Constants.STATE_VAL.ERROR
|
||||||
logger.error("❌ ЯУ-07Б: Нет связи")
|
logger.error("❌ ЯУ-07Б: Нет связи")
|
||||||
|
|
||||||
if flag_continue_control:
|
if not flag_continue_control:
|
||||||
flag_fs_1_ready = false
|
return
|
||||||
flag_fs_2_ready = false
|
# Сброс флагов готовности
|
||||||
flag_fs_3_ready = false
|
flag_fs_1_ready = false
|
||||||
var fs_freq: Array
|
flag_fs_2_ready = false
|
||||||
if Network.unit_fs_1.online:
|
flag_fs_3_ready = false
|
||||||
var fs_att_1: float
|
|
||||||
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
|
|
||||||
fs_freq.append(Constants.FS_FREQ.f2)
|
|
||||||
fs_att_1 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][0]
|
|
||||||
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
|
|
||||||
fs_freq.append(Constants.FS_FREQ.f4)
|
|
||||||
fs_att_1 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][0]
|
|
||||||
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
|
||||||
fs_freq.append(Constants.FS_FREQ.f6)
|
|
||||||
fs_att_1 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][0]
|
|
||||||
|
|
||||||
fs_freq.append(Constants.FS_FREQ.f1)
|
var selected_id = self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()
|
||||||
|
var device_key = Constants.ADDRESSES[selected_id][0]
|
||||||
|
|
||||||
logger.info('🛈 Настройка модуля ФС %s Гц, [%s] АТТ' % [str(fs_freq[0]), str(fs_att_1)])
|
if not await _setup_fs_module(Network.unit_fs_1, Constants.CURRENT_MODE, device_key, 0):
|
||||||
fs_setup(Network.unit_fs_1, fs_freq[0], fs_att_1) # Гц
|
return
|
||||||
else:
|
|
||||||
logger.info('❌ Модуль ФС-1: нет связи')
|
if not await _setup_fs_module(Network.unit_fs_2, Constants.CURRENT_MODE, device_key, 1):
|
||||||
_on_contol_err()
|
return
|
||||||
|
|
||||||
|
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
||||||
|
if not await _setup_fs_module(Network.unit_fs_3, Constants.CURRENT_MODE, device_key, 2, Constants.FS_FREQ.f1):
|
||||||
return
|
return
|
||||||
|
|
||||||
if Network.unit_fs_2.online:
|
# Запуск таймера
|
||||||
var fs_att_2: float
|
timer.set_one_shot(true)
|
||||||
if Constants.CURRENT_MODE == Constants.MODE.PRD_H:
|
timer.set_wait_time(10)
|
||||||
fs_freq.append(Constants.FS_FREQ.f3)
|
timer.start()
|
||||||
fs_att_2 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][1]
|
|
||||||
elif Constants.CURRENT_MODE == Constants.MODE.PRD_B:
|
|
||||||
fs_freq.append(Constants.FS_FREQ.f5)
|
|
||||||
fs_att_2 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][1]
|
|
||||||
elif Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
|
||||||
fs_freq.append(Constants.FS_FREQ.f7)
|
|
||||||
fs_att_2 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][1]
|
|
||||||
logger.info('🛈 Настройка модуля ФС %s Гц, [%s] АТТ' % [str(fs_freq[1]), str(fs_att_2)])
|
|
||||||
await get_tree().create_timer(1.0).timeout
|
|
||||||
fs_setup(Network.unit_fs_2, fs_freq[1], fs_att_2) # Гц
|
|
||||||
else:
|
|
||||||
logger.info('❌ Модуль ФС-2: нет связи')
|
|
||||||
_on_contol_err()
|
|
||||||
return
|
|
||||||
|
|
||||||
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
|
||||||
if Network.unit_fs_3.online:
|
|
||||||
var fs_att_3: float
|
|
||||||
fs_att_3 = Constants.FS_ATT[Constants.ADDRESSES[self.get_parent().get_child(0).get_child(1).get_node2(1, 0).get_selected_id()][0]][2]
|
|
||||||
logger.info('🛈 Настройка модуля ФС %s Гц, [%s] АТТ' % [str(fs_freq[2]), str(fs_att_3)])
|
|
||||||
await get_tree().create_timer(1.0).timeout
|
|
||||||
fs_setup(Network.unit_fs_3, fs_freq[2], fs_att_3)
|
|
||||||
else:
|
|
||||||
logger.info('❌ Модуль ФС-3: нет связи')
|
|
||||||
_on_contol_err()
|
|
||||||
return
|
|
||||||
|
|
||||||
timer.set_one_shot(true)
|
func _setup_fs_module(unit, mode, device_key, att_index, custom_freq = null) -> bool:
|
||||||
timer.set_wait_time(10)
|
if not unit.online:
|
||||||
timer.start()
|
logger.info('❌ Модуль %s: нет связи' % unit.name)
|
||||||
|
_on_contol_err()
|
||||||
|
return false
|
||||||
|
|
||||||
|
var freq: int
|
||||||
|
var att: float
|
||||||
|
|
||||||
|
match mode:
|
||||||
|
Constants.MODE.PRD_H:
|
||||||
|
freq = Constants.FS_FREQ.f2 if att_index == 0 else Constants.FS_FREQ.f3
|
||||||
|
att = Constants.FS_ATT[device_key][att_index]
|
||||||
|
|
||||||
|
Constants.MODE.PRD_B:
|
||||||
|
freq = Constants.FS_FREQ.f4 if att_index == 0 else Constants.FS_FREQ.f5
|
||||||
|
att = Constants.FS_ATT[device_key][att_index]
|
||||||
|
|
||||||
|
Constants.MODE.PRD_K:
|
||||||
|
freq = Constants.FS_FREQ.f6 if att_index == 0 else Constants.FS_FREQ.f7
|
||||||
|
att = Constants.FS_ATT[device_key][att_index]
|
||||||
|
if custom_freq != null:
|
||||||
|
freq = custom_freq
|
||||||
|
|
||||||
|
logger.info('🛈 Настройка модуля %s: %s Гц, [%s] АТТ' % [unit.name, str(freq), str(att)])
|
||||||
|
|
||||||
|
if att > 20:
|
||||||
|
logger.info('❌ Аттенюация выше 20 dB')
|
||||||
|
_on_contol_err()
|
||||||
|
return false
|
||||||
|
|
||||||
|
if att_index > 0:
|
||||||
|
await get_tree().create_timer(1.5).timeout
|
||||||
|
|
||||||
|
fs_setup(unit, freq, att)
|
||||||
|
return true
|
||||||
|
|
||||||
|
|
||||||
func _status_cell(status):
|
func _status_cell(status):
|
||||||
@@ -749,8 +751,13 @@ func _on_timer_03():
|
|||||||
|
|
||||||
|
|
||||||
func _on_contol_err():
|
func _on_contol_err():
|
||||||
|
await get_tree().create_timer(1.0).timeout
|
||||||
logger.warning('❌❌❌')
|
logger.warning('❌❌❌')
|
||||||
flag_continue_control = false
|
flag_continue_control = false
|
||||||
|
command_fs_off(Network.unit_fs_1)
|
||||||
|
command_fs_off(Network.unit_fs_2)
|
||||||
|
if Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
||||||
|
command_fs_off(Network.unit_fs_3)
|
||||||
_status_prd()
|
_status_prd()
|
||||||
|
|
||||||
|
|
||||||
@@ -764,7 +771,7 @@ func _on_timer():
|
|||||||
if not flag_fs_2_ready:
|
if not flag_fs_2_ready:
|
||||||
$Kasseta_FS/ref_A2.state = Constants.STATE_VAL.ERROR
|
$Kasseta_FS/ref_A2.state = Constants.STATE_VAL.ERROR
|
||||||
logger.warning('❌ Модуль ФС-2: нет связи')
|
logger.warning('❌ Модуль ФС-2: нет связи')
|
||||||
if not flag_fs_3_ready:
|
if not flag_fs_3_ready and Constants.CURRENT_MODE == Constants.MODE.PRD_K:
|
||||||
$Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.ERROR
|
$Kasseta_FS/FS_PRD_K.state = Constants.STATE_VAL.ERROR
|
||||||
logger.warning('❌ Модуль ФС-3: нет связи')
|
logger.warning('❌ Модуль ФС-3: нет связи')
|
||||||
if not flag_fs_1_ready or not flag_fs_2_ready:
|
if not flag_fs_1_ready or not flag_fs_2_ready:
|
||||||
@@ -780,7 +787,6 @@ func _on_timer():
|
|||||||
$soc_y5/ug.state = Constants.STATE_VAL.ERROR
|
$soc_y5/ug.state = Constants.STATE_VAL.ERROR
|
||||||
logger.warning('❌ Разьем УГ: нет связи')
|
logger.warning('❌ Разьем УГ: нет связи')
|
||||||
_on_contol_err()
|
_on_contol_err()
|
||||||
_on_timer_03()
|
|
||||||
|
|
||||||
|
|
||||||
func _status_prd():
|
func _status_prd():
|
||||||
|
|||||||
@@ -152,8 +152,7 @@ func _on_connect_change(unit_state_connect) -> void:
|
|||||||
print_debug("%s" % unit_state_connect)
|
print_debug("%s" % unit_state_connect)
|
||||||
|
|
||||||
|
|
||||||
func on_command_change_device(meta_device):
|
func on_command_change_device(meta_device: Array):
|
||||||
print(meta_device)
|
|
||||||
send_array = []
|
send_array = []
|
||||||
ip_address_yau = meta_device[0]
|
ip_address_yau = meta_device[0]
|
||||||
ip_port_yau = meta_device[1]
|
ip_port_yau = meta_device[1]
|
||||||
@@ -166,39 +165,59 @@ func on_command_change_device(meta_device):
|
|||||||
unit_fs_2.connect_to_host(meta_device[4], Constants.PORT_FS)
|
unit_fs_2.connect_to_host(meta_device[4], Constants.PORT_FS)
|
||||||
|
|
||||||
await get_tree().create_timer(0.1).timeout
|
await get_tree().create_timer(0.1).timeout
|
||||||
setup_fs(unit_fs_1, meta_device[2])
|
setup_fs(unit_fs_1, meta_device)
|
||||||
setup_fs(unit_fs_2, meta_device[2])
|
setup_fs(unit_fs_2, meta_device)
|
||||||
#ip_fs_3 = meta_device[5]
|
#ip_fs_3 = meta_device[5]
|
||||||
|
|
||||||
|
|
||||||
func setup_fs(unit_fs: Node, mode_prd: int) -> void:
|
func setup_fs(unit_fs: Node, meta_device: Array) -> void:
|
||||||
|
var mode_prd = meta_device[2]
|
||||||
|
var device: String
|
||||||
var freq: int
|
var freq: int
|
||||||
var att: float
|
var att: float
|
||||||
|
|
||||||
if mode_prd == Constants.MODE.PRD_H:
|
match mode_prd:
|
||||||
freq = Constants.FS_FREQ.f2 if unit_fs == Network.unit_fs_1 else Constants.FS_FREQ.f3
|
Constants.MODE.PRD_H:
|
||||||
att = Constants.FS_ATT['ПРД-Н1'][0] if unit_fs == Network.unit_fs_1 else Constants.FS_ATT['ПРД-Н1'][1]
|
device = _find_device_address(meta_device[0], 0, 4)
|
||||||
|
freq = Constants.FS_FREQ.f2 if unit_fs == Network.unit_fs_1 else Constants.FS_FREQ.f3
|
||||||
|
att = _get_att_value(device, unit_fs == Network.unit_fs_1)
|
||||||
|
Constants.MODE.PRD_B:
|
||||||
|
device = _find_device_address(meta_device[0], 4, 8)
|
||||||
|
freq = Constants.FS_FREQ.f4 if unit_fs == Network.unit_fs_1 else Constants.FS_FREQ.f5
|
||||||
|
att = _get_att_value(device, unit_fs == Network.unit_fs_1)
|
||||||
|
Constants.MODE.PRD_K:
|
||||||
|
device = _find_device_address(meta_device[0], 8, 12)
|
||||||
|
freq = Constants.FS_FREQ.f6 if unit_fs == Network.unit_fs_1 else Constants.FS_FREQ.f7
|
||||||
|
att = _get_att_value(device, unit_fs == Network.unit_fs_1)
|
||||||
|
|
||||||
elif mode_prd == Constants.MODE.PRD_B:
|
if not unit_fs.online:
|
||||||
freq = Constants.FS_FREQ.f4 if unit_fs == Network.unit_fs_1 else Constants.FS_FREQ.f5
|
return
|
||||||
att = Constants.FS_ATT['ПРД-В1'][0] if unit_fs == Network.unit_fs_1 else Constants.FS_ATT['ПРД-В1'][1]
|
|
||||||
|
|
||||||
elif mode_prd == Constants.MODE.PRD_K:
|
await _setup_fs_device(unit_fs, freq, att)
|
||||||
freq = Constants.FS_FREQ.f6 if unit_fs == Network.unit_fs_1 else Constants.FS_FREQ.f7
|
|
||||||
att = Constants.FS_ATT['ПРД-К1'][0] if unit_fs == Network.unit_fs_1 else Constants.FS_ATT['ПРД-К1'][1]
|
|
||||||
#var freq = Constants.FS_FREQ.f1 if unit_fs = Network.unit_fs_1 else
|
|
||||||
|
|
||||||
if unit_fs.online:
|
|
||||||
unit_fs.set_gen_state(false)
|
|
||||||
await get_tree().create_timer(0.3).timeout
|
|
||||||
unit_fs.get_gen_state()
|
|
||||||
unit_fs.set_gen_state(true)
|
|
||||||
await get_tree().create_timer(0.3).timeout
|
|
||||||
unit_fs.set_carrier(freq * 1_000_000)
|
|
||||||
unit_fs.set_att_batch(att)
|
|
||||||
|
|
||||||
unit_fs.get_carrier()
|
func _find_device_address(address: String, start_idx: int, end_idx: int) -> String:
|
||||||
unit_fs.get_att_batch()
|
for i_dev in range(start_idx, end_idx):
|
||||||
unit_fs.get_base_current_temp()
|
if address == Constants.ADDRESSES[i_dev][1]:
|
||||||
unit_fs.get_base_can_macro()
|
return Constants.ADDRESSES[i_dev][0]
|
||||||
unit_fs.get_gen_state()
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
func _get_att_value(device: String, is_unit_fs1: bool) -> float:
|
||||||
|
return Constants.FS_ATT[device][0] if is_unit_fs1 else Constants.FS_ATT[device][1]
|
||||||
|
|
||||||
|
|
||||||
|
# Асинхронная настройка модуля
|
||||||
|
func _setup_fs_device(unit_fs: Node, freq: int, att: float) -> void:
|
||||||
|
unit_fs.set_gen_state(false)
|
||||||
|
await get_tree().create_timer(0.3).timeout
|
||||||
|
unit_fs.get_gen_state()
|
||||||
|
unit_fs.set_gen_state(true)
|
||||||
|
await get_tree().create_timer(0.3).timeout
|
||||||
|
unit_fs.set_carrier(freq * 1_000_000)
|
||||||
|
unit_fs.set_att_batch(att)
|
||||||
|
unit_fs.get_carrier()
|
||||||
|
unit_fs.get_att_batch()
|
||||||
|
unit_fs.get_base_current_temp()
|
||||||
|
unit_fs.get_base_can_macro()
|
||||||
|
unit_fs.get_gen_state()
|
||||||
|
|||||||
Reference in New Issue
Block a user