Рефактор. Сетевой модуль.
This commit is contained in:
@@ -42,32 +42,28 @@ class SocketSerial extends SerialPort:
|
||||
i += 2
|
||||
tx_buffer[i] = FLAG
|
||||
i += 1
|
||||
write_raw(tx_buffer.slice(0, i))
|
||||
# Эта последовательность для запроса состояния, получена от разработчиков СПТ-25
|
||||
const tx_tula = [0x7e, 0x01, 0x04, 0xbb, 0x50, 0x7e]
|
||||
write_raw(tx_tula)
|
||||
|
||||
func _to_string() -> String: return 'последовательный порт \"%s\" @ %d (%s)' % [self.port, self.baudrate, 'открыт' if is_open() else 'закрыт']
|
||||
|
||||
func get_check_sum(src: PackedByteArray) -> int:
|
||||
var fsc: = ~((src[1]<<8) + src[0])
|
||||
var fcs: = (~((src[1] << 8) + src[0])) & 0xffff
|
||||
for i: int in range(2, src.size()):
|
||||
var chr: = src[i]
|
||||
for j: int in 8:
|
||||
if chr & 1:
|
||||
if fsc & 1:
|
||||
fsc = ((fsc >> 1) | FSC_MASK) ^ P_DIV
|
||||
if fcs & 1:
|
||||
fcs = ((fcs >> 1) | FSC_MASK) ^ P_DIV
|
||||
else:
|
||||
fsc = ((fsc >> 1) | FSC_MASK)
|
||||
fcs = ((fcs >> 1) | FSC_MASK)
|
||||
else:
|
||||
if fsc & 1:
|
||||
fsc = (fsc >> 1) ^ P_DIV
|
||||
else:
|
||||
fsc = fsc >> 1
|
||||
fcs = (fcs >> 1) ^ P_DIV if fcs & 1 else fcs >> 1
|
||||
chr >>= 1
|
||||
for j: int in 16:
|
||||
if fsc & 1:
|
||||
fsc = (fsc >> 1) ^ P_DIV
|
||||
else:
|
||||
fsc = fsc >> 1
|
||||
return ~fsc
|
||||
for j: int in 16:
|
||||
fcs = (fcs >> 1) ^ P_DIV if fcs & 1 else fcs >> 1
|
||||
return (~fcs) & 0xffff
|
||||
|
||||
func try_open(parsing_proc: Callable):
|
||||
if is_open():
|
||||
@@ -327,7 +323,7 @@ func poll_receive_tcp(sock: SocketTCP) -> bool:
|
||||
if sock.is_connection_available(): # Проверить, если кто то пытается подключиться
|
||||
var client: = sock.take_connection() # Принять соединение
|
||||
sock.peerstream.set_stream_peer(client) # Привязать поток к новому клиенту
|
||||
log.info('подключен: %s:%d к порту: %d' % [ client.get_connected_host(), client.get_connected_port(), client.get_local_port() ] )
|
||||
log.info('подключен: %s:%d к порту: %d' % [ client.get_connected_host(), client.get_connected_port(), client.get_local_port() ])
|
||||
var peer = sock.peerstream.get_stream_peer()
|
||||
if peer:
|
||||
while true:
|
||||
|
||||
Reference in New Issue
Block a user