Доработка. Добавлено состояние приборов и линий связи в пакет.
This commit is contained in:
@@ -41,15 +41,43 @@ class TCP5P28 extends unit.Unit:
|
||||
const CMD_TYPE_TH: int = 2
|
||||
const CMD_TYPE_IN: int = 3
|
||||
|
||||
const PR_STATE: Dictionary = {
|
||||
'уарэп-эмс': [1, 1],
|
||||
'уарэп-яу07-1н': [9, 8],
|
||||
'уарэп-яу07-1в': [5, 4],
|
||||
'уарэп-яу07-1к': [13, 12],
|
||||
'уарэп-яу07-2н': [10, 9],
|
||||
'уарэп-яу07-2в': [6, 5],
|
||||
'уарэп-яу07-2к': [14, 13],
|
||||
'уарэп-яу07-3н': [11, 10],
|
||||
'уарэп-яу07-3в': [7, 6],
|
||||
'уарэп-яу07-3к': [15, 14],
|
||||
'уарэп-яу07-4н': [12, 11],
|
||||
'уарэп-яу07-4в': [8, 7],
|
||||
'уарэп-яу07-4к': [16, 15], }
|
||||
|
||||
signal get_threats(unit: TCP5P28) ## Сигнал запрос целей.
|
||||
signal get_interfers(unit: TCP5P28) ## Запрос состояния выполнения целеуказания.
|
||||
|
||||
var tx_stack: Array ## Массив пакетов для отправки.
|
||||
var uarep_state: int = 1 ## Флаги состояния прибора, 0 бит, состояние ПО
|
||||
var uarep_line: int = 3 ## Состояние линии связи с прибором
|
||||
var ext_cu = false
|
||||
func _init(nm) -> void:
|
||||
super._init(nm)
|
||||
ext_cu = ProjectSettings.get_setting('application/config/external_cu', false)
|
||||
ProjectSettings.connect('settings_changed', on_setting_changed)
|
||||
init_state()
|
||||
|
||||
func init_state():
|
||||
for key in PR_STATE.keys():
|
||||
var unit_key = settings.get_unit_key(key)
|
||||
var unit_pribor = network.units[unit_key]
|
||||
unit_pribor.connect('line_changed', Callable(self, 'pribor_line_changed').bind(key))
|
||||
|
||||
func pribor_line_changed(u, key):
|
||||
uarep_state = tools.set_bit(uarep_state, PR_STATE[key][0], u.online)
|
||||
uarep_line = tools.set_bit(uarep_state, PR_STATE[key][1], u.online)
|
||||
|
||||
func _to_string() -> String: return String('5П-28: "%s" %s ' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
|
||||
@@ -98,8 +126,8 @@ class TCP5P28 extends unit.Unit:
|
||||
data.resize(data_len)
|
||||
data.encode_u16(0, 0) # Код ошибки
|
||||
data.encode_u16(2, len(interfers)) # Количество целей
|
||||
data.encode_u32(4, 0) # Состояние УА-РЕП
|
||||
data.encode_u32(8, 0) # Состояние линий связи
|
||||
data.encode_u32(4, uarep_state) # Состояние УА-РЕП
|
||||
data.encode_u32(8, uarep_line) # Состояние линий связи
|
||||
for id in interfers.values():
|
||||
var cu_data: PackedByteArray = []
|
||||
cu_data.resize(4)
|
||||
|
||||
Reference in New Issue
Block a user