Отладка в КЭН 11 контроля прд
This commit is contained in:
@@ -118,6 +118,7 @@ class Fs:
|
||||
var pow_caps_rx: float = 0.0 ## Мощность излучения принятая от КАПС РПБ
|
||||
var freq_caps_rx: float = 0.0 ## Частота принятая от КАПС РПБ
|
||||
var width_caps_rx: float = 0.0 ## Ширина полосы принятая от КАПС РПБ
|
||||
var msvk: Array
|
||||
|
||||
signal update_modulation(index)
|
||||
|
||||
@@ -352,33 +353,31 @@ func check_dir():
|
||||
|
||||
## Производит приём состояния модулей ФС.
|
||||
func on_data_capsrpb_received(unit0: capsrpb.CapsRpb):
|
||||
if not unit0.json_dic.has('ts'): return
|
||||
if not unit0.json_dic['ts'] == 7 and not unit0.json_dic['ts'] == 5: return
|
||||
if unit0.json_dic.has('msvk'):
|
||||
for nfs in fs_caps_id:
|
||||
fs_dict[fs_caps_id[nfs]].msvk = unit0.json_dic['msvk'] if unit0.json_dic['msvk'].size()>0 else []
|
||||
if not unit0.json_dic.has('ts'): return
|
||||
if not unit0.json_dic['ts'] == 7: return
|
||||
if not unit0.json_dic.has('msfs'): return
|
||||
|
||||
var msfs = unit0.json_dic['msfs']
|
||||
for fs in msfs:
|
||||
if fs is Dictionary:
|
||||
if not fs.has('nmfs'):
|
||||
return
|
||||
var nmfs = int(fs['nmfs'])
|
||||
if not fs_caps_id.has(nmfs):
|
||||
continue
|
||||
var ii = fs_caps_id[nmfs]
|
||||
if not fs_dict.has(ii):
|
||||
continue
|
||||
var fs_module = fs_dict[ii]
|
||||
if fs.has('isg'):
|
||||
fs_module.isg = int(fs['isg'])
|
||||
if fs.has('pow'):
|
||||
fs_module.pow_caps_rx = int(fs['pow'])
|
||||
if fs.has('freq'):
|
||||
fs_module.freq_caps_rx = int(fs['freq'])
|
||||
if fs.has('width'):
|
||||
fs_module.width_caps_rx = int(fs['width'])
|
||||
|
||||
if unit0.json_dic.has('msfs'):
|
||||
var msfs = unit0.json_dic['msfs']
|
||||
for fs in msfs:
|
||||
if fs is Dictionary:
|
||||
if not fs.has('nmfs'):
|
||||
return
|
||||
var nmfs = int(fs['nmfs'])
|
||||
if not fs_caps_id.has(nmfs):
|
||||
continue
|
||||
var ii = fs_caps_id[nmfs]
|
||||
if not fs_dict.has(ii):
|
||||
continue
|
||||
var fs_module = fs_dict[ii]
|
||||
if fs.has('isg'):
|
||||
fs_module.isg = int(fs['isg'])
|
||||
if fs.has('pow'):
|
||||
fs_module.pow_caps_rx = int(fs['pow'])
|
||||
if fs.has('freq'):
|
||||
fs_module.freq_caps_rx = int(fs['freq'])
|
||||
if fs.has('width'):
|
||||
fs_module.width_caps_rx = int(fs['width'])
|
||||
signaller.emit_signal('fs_update_state', fs_dict)
|
||||
|
||||
|
||||
|
||||
@@ -103,7 +103,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)
|
||||
control_results.temperature = check_temperature_um(status, power_amplify)
|
||||
_process_dkm_status(status)
|
||||
if current_litera != 0:
|
||||
var tek_litera: Dictionary = power_result[current_litera]
|
||||
@@ -119,15 +119,9 @@ class TestPRD extends Node:
|
||||
if fs_key.is_empty():
|
||||
return
|
||||
|
||||
var fs_result := {fs_key: 0, 'fs_modulation': 'none'}
|
||||
var fs_result := {fs_key: 0}
|
||||
fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result)
|
||||
control_results[fs_key] = fs_result[fs_key]
|
||||
if fs_result.fs_modulation and not flag_fs_turn_on:
|
||||
print_debug('Помеха "Включено"')
|
||||
flag_fs_turn_on = true
|
||||
if not fs_result.fs_modulation and not flag_fs_turn_off:
|
||||
print('Помеха "Откючено"')
|
||||
flag_fs_turn_off = true
|
||||
|
||||
|
||||
##
|
||||
@@ -301,9 +295,20 @@ class TestPRD extends Node:
|
||||
_determine_self_name()
|
||||
var fs_mapping = _create_fs_mapping(self_name)
|
||||
signaller.conn(signaller.fs_update_state, Callable(self, 'on_fs_update_state').bind(fs_mapping))
|
||||
var unit_caps = network.get_unit_instance('уарэп-капсрпб')
|
||||
unit_caps.connect('data_received', Callable(self, 'on_interfer_status'))
|
||||
unit_prd.connect('data_received', Callable(self, 'on_data_received'))
|
||||
|
||||
|
||||
func on_interfer_status(packet_status: Object) -> void:
|
||||
if packet_status.json_dic.msvk.size() > 0 and not flag_fs_turn_on:
|
||||
flag_fs_turn_on = true
|
||||
print_debug('Излучение')
|
||||
elif packet_status.json_dic.msvk.size() == 0 and not flag_fs_turn_off:
|
||||
flag_fs_turn_off = true
|
||||
print_debug('Все тихо')
|
||||
|
||||
|
||||
func _determine_self_name() -> void:
|
||||
var current_unit = unit_prd.name
|
||||
var parts = current_unit.split('-')
|
||||
@@ -447,7 +452,7 @@ class TestPRD extends Node:
|
||||
|
||||
|
||||
## Проверка температур УМ от УКП
|
||||
static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void:
|
||||
static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> bool:
|
||||
const Constants: Dictionary = {
|
||||
'CONST_MIN_TEMP': -25,
|
||||
'MAXIMUM_CODE_ADC': 3796,
|
||||
@@ -458,6 +463,7 @@ class TestPRD extends Node:
|
||||
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
|
||||
var all_temp_is_ok: bool = true
|
||||
|
||||
if ukp1_online:
|
||||
var tmp_1: int
|
||||
@@ -466,11 +472,15 @@ class TestPRD extends Node:
|
||||
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 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
|
||||
if tmp_1>70:
|
||||
all_temp_is_ok = false
|
||||
|
||||
if ukp2_online:
|
||||
for i_temp in 6:
|
||||
@@ -478,9 +488,13 @@ class TestPRD extends Node:
|
||||
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
|
||||
if tmp_2>70:
|
||||
all_temp_is_ok = false
|
||||
else:
|
||||
power_amplifier[i_temp+6].value1 = tmp_2
|
||||
|
||||
if tmp_2>70:
|
||||
all_temp_is_ok = false
|
||||
return all_temp_is_ok
|
||||
|
||||
## Проверка ДКМ
|
||||
static func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> bool:
|
||||
@@ -528,7 +542,6 @@ class TestPRD extends Node:
|
||||
var rule: Dictionary = FS_RULES[rule_key]
|
||||
if _should_apply_rule(fs_num, rule, updated_results):
|
||||
updated_results[rule.key] = fs_data.isg
|
||||
updated_results['fs_modulation'] = fs_data.msvk.size() > 0
|
||||
break
|
||||
return updated_results
|
||||
|
||||
|
||||
Reference in New Issue
Block a user