diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index 67d3754..f78171f 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -117,14 +117,14 @@ func _ready() -> void: func on_state_mashine() -> void: control_prd.state_control_machine() - + block_ip_config_k = control_prd.block_config var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') for power_supply in node_ip_power_arr: var meta_ip = power_supply.get_meta('ip') if block_ip_config_k.has(meta_ip): power_supply.state = STATE_VAL.GOOD if block_ip_config_k[meta_ip][1] else STATE_VAL.ERROR - + control_results = control_prd.control_results if control_prd.current_fs == 1: $kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if control_results.dkm_1 else STATE_VAL.ERROR @@ -132,11 +132,11 @@ func on_state_mashine() -> void: $kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if control_results.dkm_6 else STATE_VAL.ERROR elif control_prd.current_fs == 7: $kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if control_results.dkm_7 else STATE_VAL.ERROR - + print(control_prd.power_result) if not control_prd.power_result['ray_25_1'] or not control_prd.power_result['ray_25_6'] or not control_prd.power_result['ray_25_7']: return - + var node_arr_power: Array = get_tree().get_nodes_in_group('power_amplifier') for i_pow in node_arr_power.size(): if i_pow < 1: @@ -195,63 +195,6 @@ func on_line_changed(unit_pribor: Object) -> void: set_default_state() -#func on_data_received(unit_pribor: Object) -> void: - #if not is_inside_tree(): - #return -# - #var status: PackedByteArray = unit_pribor.status - ## 1. Обновляем статусы блоков - #block_config_k = node_common_func.check_block_ip(status, block_config_k) - ## 2. Обновляем ноды power_supply - #var node_power_arr = get_tree().get_nodes_in_group('power_supply') - #for power_supply in node_power_arr: - #var meta_ip = power_supply.get_meta('ip') - #if block_config_k.has(meta_ip): - #power_supply.state = STATE_VAL.GOOD if block_config_k[meta_ip][1] else STATE_VAL.ERROR -# - #node_common_func.check_temperature_um(status, get_tree().get_nodes_in_group('power_amplifier')) -# - #if current_fs == 1 and control_results.fs_1: - #control_results = node_common_func.check_dkm(status, Constants.DKM_BIT_1, control_results) - #flag_check_dkm = control_results.dkm_1 - #elif current_fs == 6 and control_results.fs_6: - #control_results = node_common_func.check_dkm(status, Constants.DKM_BIT_6, control_results) - #flag_check_dkm = control_results.fs_6 - #elif current_fs == 7 and control_results.fs_7: - #control_results = node_common_func.check_dkm(status, Constants.DKM_BIT_7, control_results) - #flag_check_dkm = control_results.dkm_7 -# - #var power_result: Dictionary = {'ray_25' : []} -# - #if flag_check_dkm: - #power_result = node_common_func.power_um_ukp(status, current_fs, power_result) - - -#func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary) -> void: - #var fs_result: Dictionary - #if current_fs == 1: - #fs_result = {'fs_1': STATE_VAL.NONE} - #elif current_fs == 6: - #fs_result = {'fs_6': STATE_VAL.NONE} - #elif current_fs == 7: - #fs_result = {'fs_7': STATE_VAL.NONE} - #fs_result = node_common_func.on_fs_state(packet_type_7, fs_mapping, fs_result) -# - #var fs_array: Array = get_tree().get_nodes_in_group('fs') - #for fs in fs_array: - #var fs_meta: String = fs.get_meta('fs') - #fs.state = fs_result[fs_meta] - - -#func power_um_control_result() -> void: - #var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') - #control_results['power_um'] = true - #for amp in power_amplifier: - #if amp.state != STATE_VAL.GOOD: - #control_results['power_um'] = false - #break - - func on_mode_changed(in_tree: bool) -> void: if not in_tree: queue_free() diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index cf96eb7..e2029a5 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -53,17 +53,17 @@ class TestPRD extends Node: func _process(_delta: float) -> void: pass - + func on_data_received(unit_pribor: Object) -> void: if not is_inside_tree(): return - + var status: PackedByteArray = unit_pribor.status block_config = check_block_ip(status, block_config) check_temperature_um(status, power_amplify) - + if current_fs == 1 and control_results.fs_1: control_results = check_dkm(status, constants.DKM_BIT_1, control_results) flag_check_dkm = control_results.dkm_1 @@ -73,15 +73,15 @@ class TestPRD extends Node: elif current_fs == 7 and control_results.fs_7: control_results = check_dkm(status, constants.DKM_BIT_7, control_results) flag_check_dkm = control_results.dkm_7 - + if control_results.dkm_1 and current_fs == 1: power_result['ray_25_1'] = power_um_ukp(status, current_fs, power_result['ray_25_1']) if control_results.dkm_6 and current_fs == 6: power_result['ray_25_6'] = power_um_ukp(status, current_fs, power_result['ray_25_6']) if control_results.dkm_7 and current_fs == 7: power_result['ray_25_7'] = power_um_ukp(status, current_fs, power_result['ray_25_7']) - - + + func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary, fs_array: Array) -> void: var fs_result: Dictionary if current_fs == 1: @@ -96,7 +96,7 @@ class TestPRD extends Node: if fs_result.has(fs_meta): fs.state = fs_result[fs_meta] control_results[fs_meta] = fs_result[fs_meta] - + func state_control_machine() -> void: match state: @@ -107,21 +107,21 @@ class TestPRD extends Node: else: on_control_result() state = STATE_MASHINE.AWAIT - + STATE_MASHINE.FS_TURN_ON: control_label.text = 'Выполняется включение ФС-%s' % current_fs manage_fs(true, self_name, pribor_config, fs_parameters, current_fs, constants.POWER_UM) control_timer.wait_time = constants.TIMER_DELAY control_timer.start() state = STATE_MASHINE.FS_WORK - + STATE_MASHINE.FS_WORK: control_label.text = 'Выполняется проверка ФС-%s' % current_fs if (current_fs == 6 and flag_check_dkm and not flag_timer_started) or \ (current_fs == 7 and flag_check_dkm and not flag_timer_started) or \ (current_fs == 1 and not flag_timer_started): state = STATE_MASHINE.UG_SET - + STATE_MASHINE.UG_SET: control_label.text = 'Выполняется настройка угла (%s) и атт (%s, %s, %s)' % [constants.dou_ray_nuber, constants.attenutor_um_1, constants.attenutor_um_2, constants.attenutor_um_3] on_ug_setting() @@ -132,12 +132,12 @@ class TestPRD extends Node: module_prd.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [constants.BASE_ADDR_EMS_G, 6666]]) flag_timer_started = true state = STATE_MASHINE.FS_WORK - + STATE_MASHINE.FS_TURN_OFF: control_label.text = 'Выполняется отключение ФС-%s' % current_fs manage_fs(false, self_name, pribor_config, fs_parameters, current_fs, constants.POWER_UM) state = STATE_MASHINE.STOP_CONTROL - + STATE_MASHINE.STOP_CONTROL: control_label.text = 'Выполняется завершение проверки ФС-%s' % current_fs power_um_control_result() @@ -148,8 +148,8 @@ class TestPRD extends Node: 6: current_fs = 7 7: current_fs = 0 state = STATE_MASHINE.INIT - - + + func initialize_connections() -> void: var current_unit = unit_prd.name var parts = current_unit.split('-') @@ -182,12 +182,12 @@ class TestPRD extends Node: func on_control_result() -> void: print('on_control_result') - + func on_stop_control() -> void: state = STATE_MASHINE.FS_TURN_OFF - - + + func on_ug_setting() -> void: var result_1 = ((constants.attenutor_um_1 & 0x07) << 3) | (constants.dou_ray_nuber & 0x07) var result_2 = ((constants.attenutor_um_2 & 0x07) << 3) | (constants.dou_ray_nuber & 0x07) @@ -198,15 +198,15 @@ class TestPRD extends Node: module_prd.cmd_array.append([unit_prd.CmdCode.READ_ISA, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3]]) - + func power_um_control_result() -> void: control_results['power_um'] = true for amp in power_result[cur_ray]: if amp > constants.TEMP_THRESHOLD: control_results['power_um'] = false break - - + + static func manage_fs(mode: bool, pribor: String, p_conf: Dictionary, fs_params: Dictionary, cur_fs: int, power_um: int) -> void: # Получаем конфигурацию для текущего прибора var config: Dictionary = p_conf[pribor] @@ -227,7 +227,7 @@ class TestPRD extends Node: ]) signaller.emit_signal('interfer_init', interfer_name, fs_arr, power_um) - + ## Проверка касет П1 и ИП МА2000 static func check_block_ip(status_prd: PackedByteArray, block_ip_config: Dictionary) -> Dictionary: # Конфигурация проверяемых блоков @@ -239,7 +239,7 @@ class TestPRD extends Node: var status = status_prd[byte_dry] >> bit & 1 block_ip_config[block][1] = false if status else true return block_ip_config - + ## Проверка температур УМ от УКП static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void: const Constants: Dictionary = { @@ -269,8 +269,8 @@ class TestPRD extends Node: var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp) var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3) power_amplifier[i_temp+7].value0 = tmp_2 - - + + ## Проверка ДКМ static func check_dkm(status_prd: PackedByteArray, bit_dkm: int, dkm_result: Dictionary) -> Dictionary: var dkm: int = 28