Доработка индикации прогресс бара, проверку загрузки файла, сброс результатов контроля
This commit is contained in:
@@ -2,6 +2,7 @@ class_name TestPRD
|
||||
extends Node
|
||||
# Константы
|
||||
const CONFIG_PATH = "user://config/setting_prd_control.json"
|
||||
const DEFAULT_CONFIG_PATH = "res://config/setting_prd_control.json"
|
||||
|
||||
const RAY_m5: String = "RAY_m5"
|
||||
const RAY_5: String = "RAY_5"
|
||||
@@ -61,6 +62,7 @@ var flag_fs_status_ok: bool = false
|
||||
var flag_si_fs_input: bool = false
|
||||
var flag_si_fs_output: bool = false
|
||||
var flag_in_control: bool = false
|
||||
var flag_control_is_over: bool = false
|
||||
var unit_prd: Object
|
||||
var control_timer: Timer = Timer.new()
|
||||
var ems_6666_timer: Timer = Timer.new()
|
||||
@@ -109,7 +111,24 @@ func _get_ray_key(machine_state: int) -> String:
|
||||
return _ray_state_mapping.get(machine_state, "")
|
||||
|
||||
|
||||
func _ensure_config_exists() -> bool:
|
||||
DirAccess.make_dir_recursive_absolute("user://config")
|
||||
if FileAccess.file_exists(CONFIG_PATH):
|
||||
return true
|
||||
if not FileAccess.file_exists(DEFAULT_CONFIG_PATH):
|
||||
return false
|
||||
var src := FileAccess.open(DEFAULT_CONFIG_PATH, FileAccess.READ)
|
||||
var dst := FileAccess.open(CONFIG_PATH, FileAccess.WRITE)
|
||||
if src == null or dst == null:
|
||||
return false
|
||||
dst.store_string(src.get_as_text())
|
||||
src.close()
|
||||
dst.close()
|
||||
return true
|
||||
|
||||
|
||||
func _load_configuration() -> void:
|
||||
if not _ensure_config_exists(): return
|
||||
var config_file = FileAccess.open(CONFIG_PATH, FileAccess.READ)
|
||||
if config_file:
|
||||
var json_text = config_file.get_as_text()
|
||||
@@ -184,13 +203,14 @@ func on_data_received(unit_pribor: Object) -> void:
|
||||
return
|
||||
|
||||
_process_dkm_status(status)
|
||||
if current_litera != 0:
|
||||
if current_litera != 0: # Формирование мощностей в литерах
|
||||
var tek_litera: Dictionary = power_for_litera[current_litera]
|
||||
var interes = _get_ray_key(state)
|
||||
if interes != '':
|
||||
tek_litera[_get_ray_key(state)] = power_um_ukp(status, current_litera, tek_litera[_get_ray_key(state)])
|
||||
power_for_litera[current_litera] = tek_litera
|
||||
|
||||
|
||||
var ems_input_1: int
|
||||
var ems_input_2: int
|
||||
var ems_input_lit_1: int
|
||||
@@ -202,17 +222,18 @@ var ems_output_lit_1: int
|
||||
func _get_data_index(key: String) -> int:
|
||||
return data_indices.get(key, -1)
|
||||
|
||||
|
||||
func socket_status_ems_g(packet_form_yau_07: PackedByteArray) -> void:
|
||||
if self_name in ['1н', '2н', '3н', '4н']:
|
||||
ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 9)) != 0
|
||||
ems_input_2 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 10)) != 0
|
||||
if self_name in ['1в', '2в', '3в', '4в']:
|
||||
ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 11)) != 0
|
||||
ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 12)) != 0
|
||||
ems_input_2 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 12)) != 0
|
||||
if self_name in ['1к', '2к', '3к', '4к']:
|
||||
ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 13)) != 0
|
||||
ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 14)) != 0
|
||||
ems_input_lit_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 8)) != 0
|
||||
ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 13)) != 0
|
||||
ems_input_2 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 14)) != 0
|
||||
|
||||
ems_output_1 = (packet_form_yau_07.decode_u16(_get_data_index('OUT_BLANK_PRD')) & (1 << 4)) != 0
|
||||
ems_output_2 = (packet_form_yau_07.decode_u16(_get_data_index('OUT_BLANK_PRD')) & (1 << 5)) != 0
|
||||
@@ -334,7 +355,8 @@ func state_control_machine() -> void:
|
||||
STATE_MACHINE.STOP_CONTROL:
|
||||
_handle_stop_control_state()
|
||||
## В машине состояний вызов изменения состояния прогресс бара контроля
|
||||
progressbar_status()
|
||||
if block_kasseta_y5_config['yau07']:
|
||||
progressbar_status()
|
||||
|
||||
|
||||
## 'Выполняется инициализация ФС-%s' % current_litera
|
||||
@@ -353,6 +375,7 @@ func _handle_init_state() -> void:
|
||||
control_results = on_control_result(block_ip_config, control_results)
|
||||
power_result = prep_power(power_for_litera, self_name)
|
||||
emit_signal('control_is_over')
|
||||
flag_control_is_over = true
|
||||
machine_timer.stop()
|
||||
|
||||
|
||||
@@ -530,12 +553,12 @@ func setup_timer() -> void:
|
||||
func on_mode_changed(in_tree: bool) -> void:
|
||||
flag_in_control = in_tree
|
||||
if not in_tree: ## TODO: Дополнительная проверка если контроль идет, если нет, то смысла вызывать нет
|
||||
flag_control_is_over = false
|
||||
progress_value = 0
|
||||
machine_timer.stop()
|
||||
state = STATE_MACHINE.INIT
|
||||
_handle_fs_turn_off_state()
|
||||
#prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]])
|
||||
|
||||
|
||||
|
||||
func _process_dkm_status(status: PackedByteArray) -> void:
|
||||
|
||||
Reference in New Issue
Block a user