Отлажен прд-в гд, осталась проблема "обращение к удалённому элементу", мониторинг температур
This commit is contained in:
@@ -163,10 +163,9 @@ class PRD:
|
||||
var set_ug_state: bool = true ## Необходимо ли записать в УГ настройки
|
||||
signal update_serviceability()
|
||||
|
||||
func _init(u_name, u_yau07, u_control: Object):
|
||||
func _init(u_name, u_yau07):
|
||||
prd_name = u_name
|
||||
unit_yau07 = u_yau07
|
||||
unit_control = u_control
|
||||
init_ems_g()
|
||||
|
||||
|
||||
@@ -284,11 +283,12 @@ func _ready() -> void:
|
||||
check_dir()
|
||||
for prd_name in PRD_NAMES:
|
||||
var unit_prd = network.get_unit_instance(prd_name)
|
||||
var control_pribor_prd = preload('res://scripts/pribor-prd.gd')
|
||||
var unit_control = control_pribor_prd.TestPRD.new({'unit_prd': unit_prd})
|
||||
add_child(unit_control)
|
||||
var new_prd = PRD.new(prd_name, unit_prd, unit_control)
|
||||
var new_prd = PRD.new(prd_name, unit_prd)
|
||||
prd_dict[prd_name] = new_prd
|
||||
var control_pribor_prd = preload('res://scripts/pribor-prd.gd')
|
||||
var unit_control = control_pribor_prd.TestPRD.new({'unit_prd': unit_prd}, new_prd.cmd_array)
|
||||
add_child(unit_control)
|
||||
new_prd.unit_control = unit_control
|
||||
for key in FS_PRD.keys():
|
||||
var fs = Fs.new(key, FS_PRD[key][0])
|
||||
fs_dict[key] = fs
|
||||
|
||||
@@ -241,13 +241,13 @@ class TestPRD extends Node:
|
||||
}
|
||||
|
||||
var power_for_litera: Dictionary = {
|
||||
1: {RAY_m5: [560, 400, 330, 560, 400, 330], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
2: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
3: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
4: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
5: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
6: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
7: {RAY_m5: [560, 400, 330, 560, 400, 330,], RAY_5: [560, 400, 330, 560, 400, 330,], RAY_15: [560, 400, 330, 560, 400, 330,], RAY_25: [560, 400, 330, 560, 400, 330,], RAY_35: [560, 400, 330, 560, 400, 330,], RAY_45: [560, 400, 330, 560, 400, 330,],},
|
||||
1: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
2: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
3: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
4: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
5: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
6: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
7: {RAY_m5: [], RAY_5: [], RAY_15: [], RAY_25: [], RAY_35: [], RAY_45: [],},
|
||||
}
|
||||
var constants: Dictionary
|
||||
var pribor_config: Dictionary
|
||||
@@ -263,7 +263,6 @@ class TestPRD extends Node:
|
||||
var flag_si_fs_input: bool = false
|
||||
var flag_si_fs_output: bool = false
|
||||
var unit_prd: Object
|
||||
var module_prd: Object
|
||||
var power_amplify: Array
|
||||
var power_result: Dictionary
|
||||
#var control_label: Label
|
||||
@@ -274,6 +273,7 @@ class TestPRD extends Node:
|
||||
signal update_progress(progress_value: float)
|
||||
signal update_max_value_progress(max_progress_value: int)
|
||||
var cc: int = 0
|
||||
var cmd_array: Array
|
||||
|
||||
var progress_value: float:
|
||||
set(v):
|
||||
@@ -285,13 +285,14 @@ class TestPRD extends Node:
|
||||
var ecms: Dictionary ## Словарь помеховых воздействий
|
||||
|
||||
## Инициализация аргуметнов
|
||||
func _init(init_data: Dictionary) -> void:
|
||||
func _init(init_data: Dictionary, cmd_array_from_prd: Array) -> void:
|
||||
unit_prd = init_data['unit_prd']
|
||||
cmd_array = cmd_array_from_prd
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
initialize_connections()
|
||||
_determine_self_name()
|
||||
initialize_connections()
|
||||
setup_timer()
|
||||
|
||||
|
||||
@@ -301,7 +302,7 @@ class TestPRD extends Node:
|
||||
|
||||
## Пакеты от ЯУ-07
|
||||
func on_data_received(unit_pribor: Object) -> void:
|
||||
if not is_inside_tree():
|
||||
if machine_timer.is_stopped():
|
||||
return
|
||||
|
||||
var status: PackedByteArray = unit_pribor.status
|
||||
@@ -369,7 +370,7 @@ class TestPRD extends Node:
|
||||
state = STATE_MACHINE.READ_ISA
|
||||
STATE_MACHINE.READ_ISA:
|
||||
if (unit_prd.cmd_state == unit_prd.CmdState.DONE) or (unit_prd.cmd_state == unit_prd.CmdState.FAIL):
|
||||
_handle_read_isa(module_prd, unit_prd, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3])
|
||||
_handle_read_isa(unit_prd, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3], cmd_array)
|
||||
flag_write_isa = false
|
||||
state = STATE_MACHINE.UG_SET_RAY
|
||||
STATE_MACHINE.UG_SET_RAY:
|
||||
@@ -483,15 +484,12 @@ class TestPRD extends Node:
|
||||
elif self_name == '1н' or self_name == '2н' or self_name == '3н' or self_name == '4н':
|
||||
dic_att['ATT_UM_1'] = constants.ATT_UM_2
|
||||
dic_att['ATT_UM_2'] = constants.ATT_UM_3
|
||||
|
||||
##var log_text = dic_att.ATT_UM_3 if current_litera == 1 else dic_att.ATT_UM_1 if current_litera in [2, 4, 6] else dic_att.ATT_UM_2
|
||||
## 'Выполняется настройка угла (%s) и атт (0x0%s)' % [dic_att.RAY_DOU_NUM, log_text]
|
||||
flag_write_isa = on_ug_setting(module_prd, unit_prd, dic_att)
|
||||
flag_write_isa = on_ug_setting(unit_prd, dic_att, cmd_array)
|
||||
|
||||
|
||||
## Таймер отправки команды в ЭМС-Г для модуляции
|
||||
func _on_ems_6666_timer() -> void:
|
||||
module_prd.cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [constants.BASE_ADDR_EMS_G, 6666]])
|
||||
cmd_array.append([unit_prd.CmdCode.WRITE_ISA, [constants.BASE_ADDR_EMS_G, 6666]])
|
||||
|
||||
|
||||
## Таймер вызова машины состояний
|
||||
@@ -690,10 +688,10 @@ class TestPRD extends Node:
|
||||
|
||||
|
||||
## Установка угла и аттенюации для УМ
|
||||
static func on_ug_setting(prd_module: Object, prd_unit: Object, settings_ug: Dictionary) -> bool:
|
||||
static func on_ug_setting(prd_unit: Object, settings_ug: Dictionary, prd_cmd_array: Array) -> bool:
|
||||
var result_1 = ((settings_ug.ATT_UM_1 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
var result_2 = ((settings_ug.ATT_UM_2 & 0x07) << 3) | (settings_ug.RAY_DOU_NUM & 0x07)
|
||||
prd_module.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_1, result_1,
|
||||
settings_ug.ADDR_UG_LITERA_2, result_2,
|
||||
settings_ug.ADDR_UG_LITERA_3, settings_ug.ATT_UM_3,
|
||||
]
|
||||
@@ -701,8 +699,8 @@ class TestPRD extends Node:
|
||||
return true
|
||||
|
||||
|
||||
static func _handle_read_isa(prd_module: Object, prd_unit: Object, read_isa_ports: Array) -> void:
|
||||
prd_module.cmd_array.append([prd_unit.CmdCode.READ_ISA, read_isa_ports])
|
||||
static func _handle_read_isa(prd_unit: Object, read_isa_ports: Array, prd_cmd_array) -> void:
|
||||
prd_cmd_array.append([prd_unit.CmdCode.READ_ISA, read_isa_ports])
|
||||
|
||||
|
||||
## Управаление модулем фс (включить/отключить излучение)
|
||||
@@ -771,14 +769,14 @@ class TestPRD extends Node:
|
||||
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
|
||||
#power_amplifier[i_temp].value1 = tmp_1
|
||||
if tmp_1>70:
|
||||
all_temp_is_ok = false
|
||||
|
||||
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
|
||||
#power_amplifier[6].value1 = tmp_1
|
||||
if tmp_1>70:
|
||||
all_temp_is_ok = false
|
||||
|
||||
@@ -787,11 +785,11 @@ 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)
|
||||
if power_amplifier.size() > 12:
|
||||
power_amplifier[i_temp+7].value1 = tmp_2
|
||||
#power_amplifier[i_temp+7].value1 = tmp_2
|
||||
if tmp_2>70:
|
||||
all_temp_is_ok = false
|
||||
else:
|
||||
power_amplifier[i_temp+6].value1 = tmp_2
|
||||
#power_amplifier[i_temp+6].value1 = tmp_2
|
||||
if tmp_2>70:
|
||||
all_temp_is_ok = false
|
||||
return all_temp_is_ok
|
||||
|
||||
Reference in New Issue
Block a user