Чистка. Пока не нужно
This commit is contained in:
@@ -27,7 +27,7 @@ class SocketSerial extends SerialPort:
|
||||
tx_buffer.resize(256)
|
||||
|
||||
func send_to(data: PackedByteArray):
|
||||
tx_buffer[0] = 0x7e
|
||||
"""tx_buffer[0] = 0x7e
|
||||
var i: = 1
|
||||
for v in data:
|
||||
if v != 0x7e:
|
||||
@@ -42,7 +42,7 @@ class SocketSerial extends SerialPort:
|
||||
tx_buffer.encode_u16(i, v_sum)
|
||||
i += 2
|
||||
tx_buffer[i] = FLAG
|
||||
i += 1
|
||||
i += 1"""
|
||||
# Эта последовательность для запроса состояния, получена от разработчиков СПТ-25
|
||||
const tx_tula = [0x7e, 0x01, 0x04, 0xbb, 0x50, 0x7e]
|
||||
write_raw(tx_tula)
|
||||
|
||||
@@ -13,35 +13,9 @@ class SPT25 extends unit.Unit:
|
||||
|
||||
func _to_string() -> String: return String('СПТ-25 %s %s' % [self.name, ['отключен', 'на связи'][int(online)]])
|
||||
|
||||
##Вычисление контрольной суммы
|
||||
func sciCalcFCS(src: PackedByteArray) -> int:
|
||||
var P_DIV = 0
|
||||
var ln = src[0]
|
||||
var FCS = ~((src[2]<<8) + src[1])
|
||||
for i in range(3, ln):
|
||||
var C = src[i]
|
||||
for j in 8:
|
||||
if C & 1:
|
||||
if FCS & 1:
|
||||
FCS = ((FCS >> 1) | 0x8000)^P_DIV
|
||||
else:
|
||||
FCS = ((FCS >> 1) | 0x8000)
|
||||
else:
|
||||
if FCS & 1:
|
||||
FCS = (FCS >> 1) ^ P_DIV
|
||||
else:
|
||||
FCS = FCS >> 1
|
||||
C >>= 1
|
||||
for j in 16:
|
||||
if FCS & 1:
|
||||
FCS = (FCS >> 1) ^ P_DIV
|
||||
else:
|
||||
FCS = FCS >> 1
|
||||
return ~FCS
|
||||
|
||||
func _init(nm) -> void:
|
||||
self.name = nm
|
||||
tx_data.resize(5)
|
||||
tx_data.resize(6)
|
||||
tx_data[0] = 0 # Адрес абонента, которому предназначен пакет
|
||||
tx_data[1] = CmdCode.INFO # Тип пакета, КОД КОМАНДЫ - Получить информацию о состоянии преобразователя
|
||||
tx_data[2] = 0 # Данные
|
||||
|
||||
Reference in New Issue
Block a user