Добавление обработки мощности от ум и заполнение сцены
This commit is contained in:
@@ -70,7 +70,7 @@ class TestPRD extends Node:
|
||||
var control_label: Label
|
||||
var control_timer: Timer = Timer.new()
|
||||
var ems_6666_timer: Timer = Timer.new()
|
||||
signal control_is_over(control_results)
|
||||
signal control_is_over(control_results, power_result)
|
||||
|
||||
|
||||
## Инициализация аргуметнов
|
||||
@@ -107,7 +107,7 @@ class TestPRD extends Node:
|
||||
var status: PackedByteArray = unit_pribor.status
|
||||
block_kasseta_y5_config = check_block_kasseta_y5(status, block_kasseta_y5_config)
|
||||
block_ip_config = check_block_ip(status, block_ip_config)
|
||||
check_temperature_um(status, power_amplify)
|
||||
#check_temperature_um(status, power_amplify)
|
||||
_process_dkm_status(status)
|
||||
if current_litera != 0:
|
||||
var tek_litera: Dictionary = power_result[current_litera]
|
||||
@@ -208,11 +208,13 @@ class TestPRD extends Node:
|
||||
func _handle_init_state() -> void:
|
||||
control_label.text = 'Выполняется инициализация ФС-%s' % current_litera
|
||||
if current_litera in [1, 2, 3, 4, 5, 6, 7]:
|
||||
state = STATE_MASHINE.FS_TURN_ON
|
||||
#state = STATE_MASHINE.STOP_CONTROL
|
||||
#state = STATE_MASHINE.FS_TURN_ON
|
||||
state = STATE_MASHINE.STOP_CONTROL
|
||||
else:
|
||||
control_results = on_control_result(block_ip_config, block_dkm_config, block_fs_config, control_results)
|
||||
emit_signal('control_is_over', control_results)
|
||||
var send_power_pack = prep_power(power_result, self_name)
|
||||
|
||||
emit_signal('control_is_over', control_results, send_power_pack)
|
||||
state = STATE_MASHINE.AWAIT
|
||||
|
||||
|
||||
@@ -443,39 +445,39 @@ class TestPRD extends Node:
|
||||
|
||||
|
||||
## Проверка температур УМ от УКП
|
||||
static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void:
|
||||
const Constants: Dictionary = {
|
||||
'CONST_MIN_TEMP': -25,
|
||||
'MAXIMUM_CODE_ADC': 3796,
|
||||
'MINIMUM_CODE_AD': 2660,
|
||||
'TEMPERATURE_UKP_1': 47,
|
||||
'TEMPERATURE_UKP_2': 79,
|
||||
}
|
||||
const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD)
|
||||
var ukp1_online: int = (status_prd[0] >> 2) & 1
|
||||
var ukp2_online = (status_prd[0] >> 3) & 1
|
||||
|
||||
if ukp1_online:
|
||||
var tmp_1: int
|
||||
var temperature_ukp_1: int
|
||||
for i_temp in 6:
|
||||
temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp)
|
||||
tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
||||
power_amplifier[i_temp].value0 = tmp_1
|
||||
|
||||
if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1
|
||||
temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7)
|
||||
tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
||||
power_amplifier[6].value0 = tmp_1
|
||||
|
||||
if ukp2_online:
|
||||
for i_temp in 6:
|
||||
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)
|
||||
if power_amplifier.size() > 12:
|
||||
power_amplifier[i_temp+7].value0 = tmp_2
|
||||
else:
|
||||
power_amplifier[i_temp+6].value0 = tmp_2
|
||||
#static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void:
|
||||
#const Constants: Dictionary = {
|
||||
#'CONST_MIN_TEMP': -25,
|
||||
#'MAXIMUM_CODE_ADC': 3796,
|
||||
#'MINIMUM_CODE_AD': 2660,
|
||||
#'TEMPERATURE_UKP_1': 47,
|
||||
#'TEMPERATURE_UKP_2': 79,
|
||||
#}
|
||||
#const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD)
|
||||
#var ukp1_online: int = (status_prd[0] >> 2) & 1
|
||||
#var ukp2_online = (status_prd[0] >> 3) & 1
|
||||
#
|
||||
#if ukp1_online:
|
||||
#var tmp_1: int
|
||||
#var temperature_ukp_1: int
|
||||
#for i_temp in 6:
|
||||
#temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp)
|
||||
#tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
||||
#power_amplifier[i_temp].value1 = tmp_1
|
||||
#
|
||||
#if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1
|
||||
#temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7)
|
||||
#tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3)
|
||||
#power_amplifier[6].value1 = tmp_1
|
||||
#
|
||||
#if ukp2_online:
|
||||
#for i_temp in 6:
|
||||
#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)
|
||||
#if power_amplifier.size() > 12:
|
||||
#power_amplifier[i_temp+7].value1 = tmp_2
|
||||
#else:
|
||||
#power_amplifier[i_temp+6].value1 = tmp_2
|
||||
|
||||
|
||||
## Проверка ДКМ
|
||||
@@ -645,13 +647,59 @@ class TestPRD extends Node:
|
||||
print_debug('dou_%s: false' % litera)
|
||||
all_dou_ok = false
|
||||
|
||||
print([litera, ray_dic])
|
||||
control_dic[dou] = all_dou_ok
|
||||
|
||||
return control_dic
|
||||
|
||||
|
||||
static func get_minimum_pow(pow_dic: Dictionary, cur_litera: int)-> Dictionary:
|
||||
var minimum_value_dic: Dictionary
|
||||
static func prep_power(power_dic: Dictionary, prd_name: String)-> Dictionary:
|
||||
const RAY_KEYS := ["RAY_m5", "RAY_5", "RAY_15", "RAY_25", "RAY_35", "RAY_45"]
|
||||
var prep_pow_dic: Dictionary = {}
|
||||
|
||||
return minimum_value_dic
|
||||
var arr_litera: Array[int]
|
||||
match prd_name:
|
||||
'1н', '2н', '3н', '4н':
|
||||
arr_litera = [2, 3]
|
||||
'1в', '2в', '3в', '4в':
|
||||
arr_litera = [4, 5]
|
||||
'1к', '2к', '3к', '4к':
|
||||
arr_litera = [6, 7, 1]
|
||||
|
||||
if not arr_litera:
|
||||
print_debug('Ошибка в prd_name')
|
||||
return prep_pow_dic
|
||||
|
||||
var um_names: Array[Array] = []
|
||||
if arr_litera.size() != 3:
|
||||
um_names = [
|
||||
['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'],
|
||||
['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12']
|
||||
]
|
||||
else:
|
||||
um_names = [
|
||||
['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'],
|
||||
['um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13'],
|
||||
['um_7'] # Особый случай для третьего элемента
|
||||
]
|
||||
|
||||
for litera_index in arr_litera.size():
|
||||
var litera: int = arr_litera[litera_index]
|
||||
var litera_data: Dictionary = power_dic.get(litera, {})
|
||||
var um_data: Array[Array] = [[], [], [], [], [], []]
|
||||
|
||||
for i in range(RAY_KEYS.size()):
|
||||
var ray_key: String = RAY_KEYS[i]
|
||||
var ray_array: Array = litera_data.get(ray_key, [])
|
||||
|
||||
if ray_array.size() == 1:
|
||||
var single_value = ray_array[0]
|
||||
for j in range(6):
|
||||
um_data[j].append(single_value)
|
||||
else:
|
||||
for j in range(6):
|
||||
um_data[j].append(ray_array[j] if j < ray_array.size() else 0)
|
||||
|
||||
var current_um_names: Array = um_names[litera_index]
|
||||
for um_index in range(current_um_names.size()):
|
||||
prep_pow_dic[current_um_names[um_index]] = um_data[um_index]
|
||||
return prep_pow_dic
|
||||
|
||||
Reference in New Issue
Block a user