Рефактор.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user