в процессе отладки отправки помех
This commit is contained in:
@@ -218,6 +218,7 @@ func _ready() -> void:
|
||||
ProjectSettings.connect('settings_changed', on_settings_changed)
|
||||
var unit_nav: = network.get_unit_instance('навигация')
|
||||
unit_nav.connect('data_received', on_nav_data_received.bind(unit_caps))
|
||||
call_deferred('emit_signal', 'interfer_resized', ecms)
|
||||
|
||||
|
||||
func on_trenazh_mode(val: bool): trenazh_mode = val
|
||||
|
||||
@@ -14,7 +14,7 @@ const PROGRESS_RAY_STATES: float = 50.0
|
||||
const PROGRESS_COMPLETE: float = 100.0
|
||||
|
||||
## Константы для работы с лучами управления
|
||||
const COUNT_PACK_POWER_RECIEVE = 5
|
||||
const COUNT_PACK_POWER_RECIEVE = 15
|
||||
const RAY_MASK = 0x07
|
||||
const SPECIAL_LITERAS = [3, 5, 7]
|
||||
const RAY_m5: String = 'RAY_m5'
|
||||
@@ -212,7 +212,6 @@ func _initialize_default_states() -> void:
|
||||
'control_results': control_results.duplicate(true),
|
||||
'power_result': power_result.duplicate(true),
|
||||
'temperature_um': temperature_um.duplicate(true),
|
||||
'ecms': ecms.duplicate(true),
|
||||
|
||||
# Конфигурации блоков
|
||||
'block_ip_config': block_ip_config.duplicate(true),
|
||||
@@ -410,6 +409,8 @@ func _handle_init_state() -> void:
|
||||
func _handle_fs_turn_on_state() -> void:
|
||||
_set_status('Включение ФС-%s' % current_litera)
|
||||
manage_fs(self_name, pribor_config, fs_parameters, current_litera, constants.POWER_UM)
|
||||
current_ecm_key = take_ecm_id(ecms, self_name, current_litera)
|
||||
flags.ecm_is_comming = current_ecm_key != -1
|
||||
control_timer.wait_time = constants.TIMER_DELAY
|
||||
control_timer.start()
|
||||
state = STATE_MACHINE.FS_WORK
|
||||
@@ -429,29 +430,27 @@ static func take_ecm_id(ecm_dic: Dictionary, device_name: String, current_lit: i
|
||||
|
||||
## Обработка состояния FS_WORK - проверка работы ФС
|
||||
func _handle_fs_work_state() -> void:
|
||||
_set_status('Проверка связи сервиса КАПС РПБ')
|
||||
if not flags.ecm_is_comming: return
|
||||
if current_ecm_key != 0 and flags.fs_status_ok:
|
||||
_set_status('Проверка связи сервиса КАПС РПБ')
|
||||
_set_status('Ожидание выполнения помехи состояние %s литеры %s' % [ecms[current_ecm_key].svk, current_litera])
|
||||
if current_ecm_key > 0 and ecms[current_ecm_key].svk == 1:
|
||||
if not flags.si_fs_input:
|
||||
_set_status('Ожидание сигнала излучения от ФС-%s' % current_litera)
|
||||
else:
|
||||
_set_status('Проверка ФС-%s' % current_litera)
|
||||
# Если ФС в порядке
|
||||
if (current_litera == 2 and control_results.fs_2) or \
|
||||
(current_litera == 3 and control_results.fs_3) or \
|
||||
(current_litera == 4 and control_results.fs_4) or \
|
||||
(current_litera == 5 and control_results.fs_5) or \
|
||||
(current_litera == 6 and control_results.fs_6) or \
|
||||
(current_litera == 7 and control_results.fs_7) or \
|
||||
(current_litera == 1 and control_results.fs_1):
|
||||
if not block_kasseta_y5_config['yau07']:
|
||||
_set_status('Ожидание данных от ЯУ-07...')
|
||||
return # НЕ переходим дальше пока нет данных от сервиса МП550
|
||||
(current_litera == 3 and control_results.fs_3) or \
|
||||
(current_litera == 4 and control_results.fs_4) or \
|
||||
(current_litera == 5 and control_results.fs_5) or \
|
||||
(current_litera == 6 and control_results.fs_6) or \
|
||||
(current_litera == 7 and control_results.fs_7) or \
|
||||
(current_litera == 1 and control_results.fs_1):
|
||||
if not block_kasseta_y5_config['yau07']:
|
||||
_set_status('Ожидание данных от ЯУ-07...')
|
||||
return # НЕ переходим дальше пока нет данных от сервиса МП550
|
||||
|
||||
if flags.only_fs:
|
||||
state = STATE_MACHINE.IN_EMS_STOP
|
||||
else:
|
||||
state = STATE_MACHINE.UG_SET_RAY_5 if current_litera == 1 else STATE_MACHINE.UG_SET_RAY_CTRL
|
||||
if flags.only_fs:
|
||||
state = STATE_MACHINE.IN_EMS_STOP
|
||||
else:
|
||||
state = STATE_MACHINE.UG_SET_RAY_5 if current_litera == 1 else STATE_MACHINE.UG_SET_RAY_CTRL
|
||||
|
||||
|
||||
## Обработка состояния CHECK_KASSETA - проверка кассеты Y5
|
||||
@@ -556,7 +555,7 @@ func _handle_ray_write_mode(ray_num: int) -> void:
|
||||
if not _can_write_ray():
|
||||
return
|
||||
|
||||
if ray_num == 0 and current_litera != 1 and not control_timer.is_stopped():
|
||||
if (ray_num == 6 or ray_num == 5) and not control_timer.is_stopped():
|
||||
control_timer.stop()
|
||||
# Установка луча
|
||||
if not flags.write_isa:
|
||||
@@ -580,6 +579,7 @@ func _process_ray_value(ray_value: int) -> void:
|
||||
control_results = check_dou_result(control_results, power_for_litera, self_name, current_litera, constants)
|
||||
state = STATE_MACHINE.IN_EMS_STOP
|
||||
6:
|
||||
if count_packets_power < COUNT_PACK_POWER_RECIEVE: return
|
||||
state = STATE_MACHINE.UG_SET_RAY_0
|
||||
|
||||
|
||||
@@ -737,6 +737,7 @@ func on_state_mashine():
|
||||
func on_stop_control() -> void:
|
||||
if state == STATE_MACHINE.UG_SET_RAY:
|
||||
flags.no_trust_yau07 = true
|
||||
push_error('no_trust_yau07: ', self_name)
|
||||
state = STATE_MACHINE.IN_EMS_STOP
|
||||
#endregion
|
||||
|
||||
@@ -845,8 +846,6 @@ func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary) -> vo
|
||||
## Обработка изменения размера интерферометра
|
||||
func on_interfer_resized(ecms_dic: Dictionary) -> void:
|
||||
ecms = ecms_dic
|
||||
current_ecm_key = take_ecm_id(ecms, self_name, current_litera)
|
||||
flags.ecm_is_comming = (current_ecm_key != 0) # Явное установление состояния
|
||||
|
||||
|
||||
## Обработка запуска контроля устройства
|
||||
@@ -996,17 +995,19 @@ static func on_y5_control_result(block_kasseta: Dictionary) -> bool:
|
||||
|
||||
## Установка угла и аттенюации для УМ
|
||||
static func on_ug_setting(prd_unit: Object, settings_ug: Dictionary, prd_cmd_array: Array, cur_litera: int) -> bool:
|
||||
var result: int
|
||||
if cur_litera in [2, 4, 6]:
|
||||
result = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result]])
|
||||
elif cur_litera in [3, 5, 7]:
|
||||
result = ((settings_ug.ATT_UM_2 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_2, result]])
|
||||
elif cur_litera == 1:
|
||||
result = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result]])
|
||||
var result_1: int
|
||||
var result_2: int
|
||||
if cur_litera == 1:
|
||||
result_1 = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result_1]])
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_3, settings_ug.ATT_UM_3]])
|
||||
else:
|
||||
#if cur_litera in [2, 4, 6]:
|
||||
result_1 = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_1, result_1]])
|
||||
#elif cur_litera in [3, 5, 7]:
|
||||
result_2 = ((settings_ug.ATT_UM_2 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_cmd_array.append([prd_unit.CmdCode.WRITE_ISA, [settings_ug.ADDR_UG_LITERA_2, result_2]])
|
||||
return true
|
||||
|
||||
|
||||
@@ -1348,7 +1349,6 @@ func restore_default_states() -> void:
|
||||
control_results = _default_states['control_results'].duplicate(true)
|
||||
power_result = _default_states['power_result'].duplicate(true)
|
||||
temperature_um = _default_states['temperature_um'].duplicate(true)
|
||||
ecms = _default_states['ecms'].duplicate(true)
|
||||
block_ip_config = _default_states['block_ip_config'].duplicate(true)
|
||||
|
||||
# Остановка таймеров
|
||||
|
||||
Reference in New Issue
Block a user