Доработка. Открытие порта во время работы

This commit is contained in:
sasha80
2024-10-24 16:34:40 +03:00
parent 4d36f64642
commit 4932f241d6

View File

@@ -7,7 +7,14 @@ const SERIAL_PROTO: = {'uart': spt25.SPT25 }
class Serial extends SerialPort:
pass
func send_to(data: PackedByteArray):
write_raw(data)
func try_open(parsing_proc: Callable):
if not is_open():
open(port)
if is_open():
data_received.connect(parsing_proc)
start_monitoring(timeout)
class Socket extends PacketPeerUDP:
@@ -71,11 +78,12 @@ func create_tcpsocket(nm) -> SocketTCP:
return sock
func create_serial(nm) -> SerialPort:
func create_serial(nm) -> Serial:
var port = repsettings.UnitProfiles[nm][1]
var baud = repsettings.UnitProfiles[nm][2][0]
var sp: = SerialPort.new()
var sp: = Serial.new()
sp.baudrate = baud
sp.timeout = 20000
var rc = sp.open(port)
if rc != Error.OK:
log.message(log.ERROR, 'Невозможно открыть порт \"%s\" для \"%s\"' % [port, nm])
@@ -126,9 +134,7 @@ func _ready() -> void:
units_serial[unit_key] = unit
units[unit_key] = unit
serials[unit_key] = serial
if serial.is_open():
serial.data_received.connect(unit.parse)
serial.start_monitoring(20000)
tcp_sockets.append([create_tcpsocket('уарэп-5п28'), units_tcp[repsettings.get_unit_key('уарэп-5п28')]])
@@ -207,7 +213,7 @@ func _process(_delta: float) -> void:
var unit = units_serial[key]
var serial = serials[key]
match unit.process(tick):
Error.OK: serial.write_raw(unit.tx_data)
Error.OK: serial.send_to(unit.tx_data)
Error.FAILED: emit_signal('socket_error', 'ошибка: \"%s\"' % unit.name)
for sock_unit in tcp_sockets:
var sock = sock_unit[0]