diff --git a/scripts/interfer.gd b/scripts/interfer.gd index ccede7aa..3ac2b4de 100644 --- a/scripts/interfer.gd +++ b/scripts/interfer.gd @@ -3,7 +3,7 @@ extends Node ## Представление помехи ## Состояние выполнения сеанса помехи -const ITERFER_STATE = { +const INTERFER_STATE = { 0: 'идёт подготовка к выполнению', 1: 'выполняется', 2: 'не выполнена по причине ошибки в команде', @@ -29,15 +29,15 @@ const ITERFER_MODE = { ## Сеанс помехи class Interfer: - var ss: int = 0 ## Счётчик сообщений + var ss: int = 0 ## Счётчик сообщений. var ispp: int = 0 ## Индекс сеанса. - var state: = 0 ## Состояние сеанса. Ответ КАПСРПБ. Возможные значения в [param ITERFER_STATE] - var krp: String = '' ## Тип помехи. Возможные значения в [param INTERFER_MODE] - var powp: float = 0.0 ## Мощность излучения выраженная в процентах - var kni: = 0.0 ## Курсовой угол направления излучения - var params: = {} ## Параметры помехи - var get: Array[String] ## Запрос массива параметров (список запрошенных параметров) - var retss: int ## Значение счётчика сообщения в котором был произведён запрос массива параметров + var state: = 0 ## Состояние сеанса. Ответ КАПСРПБ. Возможные значения в [param ITERFER_STATE]. + var krp: String = '' ## Тип помехи. Возможные значения в [param INTERFER_MODE]. + var powp: float = 0.0 ## Мощность излучения выраженная в процентах. + var kni: = 0.0 ## Курсовой угол направления излучения. + var params: = {} ## Параметры помехи. + var get: Array[String] ## Запрос массива параметров (список запрошенных параметров). + var retss: int ## Значение счётчика сообщения в котором был произведён запрос массива параметров. func set_from_dic(dic: Dictionary): diff --git a/scripts/yau07.gd b/scripts/yau07.gd index e71e40a4..aec65d17 100644 --- a/scripts/yau07.gd +++ b/scripts/yau07.gd @@ -43,7 +43,7 @@ class YaU07: var online = false ## Состояние связи с ячейкой var status: = PackedByteArray() ## Поле "состояние прибора" var tick = 0.0 ## Текущее тик-время в мс - var tx_data: = [] ## Буфер отправленный + var tx_data: = PackedByteArray() ## Буфер отправленный var tx_len = 0 ## Длина последнего отправленного пакета func _to_string() -> String: return String('яу07: %s %s' % [self.name, ['отключен', 'на связи'][int(online)]]) @@ -81,7 +81,7 @@ class YaU07: return rc - func send_isa(cmd_code: int, ports_data: PackedByteArray) -> bool: + func send_isa(cmd_code: int, ports_data: Array) -> bool: if (cmd_state == CmdState.WAIT) \ or (cmd_state == CmdState.SEND) \ or (cmd_state == CmdState.UNCK): @@ -102,7 +102,7 @@ class YaU07: var i: = 0 for word in ports_data: - Tools.set_wordi(tx_data, 8 + i, word) + tx_data.encode_u16(8 + i, word) i += 2 cmd_state = CmdState.SEND return true @@ -126,7 +126,7 @@ class YaU07: return rx_data[cmd_code_pos] # "код команды" - func parse_isa(rx_data, status_len) -> bool: + func parse_isa(rx_data: PackedByteArray, status_len) -> bool: var ports_count_pos = status_len + 10 # Положение в приёмном буфере количества портов if rx_data.size() < ports_count_pos: return false @@ -139,11 +139,11 @@ class YaU07: var i: = 0 while i < ports_count: var shift: = i * 4 - var isa_addr = Tools.ibytes_to_word(rx_data, addr_pos + shift) # Адрес порта ISA яу-07 - var isa_data = Tools.ibytes_to_word(rx_data, data_pos + shift) # Данные порта ISA яу-07 + var isa_addr = rx_data.decode_u16(addr_pos + shift) # Адрес порта ISA яу-07 + var isa_data = rx_data.decode_u16(data_pos + shift) # Данные порта ISA яу-07 isa_ports[isa_addr] = isa_data i += 1 - cmd_data = rx_data.subarray(addr_pos, (addr_pos + ports_count * 4) - 1) + cmd_data = rx_data.slice(addr_pos, (addr_pos + ports_count * 4) - 1) return i > 0 @@ -162,11 +162,11 @@ class YaU07: if rx_data_len < 11: return false - cmd_num_rx = Tools.ibytes_to_word(rx_data, 2) + cmd_num_rx = rx_data.decode_u16(2) if cmd_state == CmdState.UNCK: cmd_state = CmdState.DONE - var status_len = Tools.ibytes_to_word(rx_data, 6) # Длина массива байтового "состояние прибора" + var status_len = rx_data.decode_u16(6) # Длина массива байтового "состояние прибора" if rx_data_len < (status_len + 6): return false var i: = 0