diff --git a/scripts/network.gd b/scripts/network.gd index 81048a7c..19de36b9 100644 --- a/scripts/network.gd +++ b/scripts/network.gd @@ -95,14 +95,22 @@ func create_serial(nm) -> Serial: return sp -func _ready() -> void: - log.info('Модуль работы с сетью готов') +func init_sockets(): poll_sockets.append(create_socket('уарэп-яу07-частный')) poll_sockets.append(create_socket('уарэп-яу07-общий')) poll_sockets.append(create_socket('уарэп-капсрпб')) poll_sockets.append(create_socket('уарэп-щ3')) sock_unicast = poll_sockets[0] sock_capsrpb = poll_sockets[2] + log.info('Модуль работы с сетью готов') + + +func _ready() -> void: + var tmr_wsa = Timer.new() + add_child(tmr_wsa) + tmr_wsa.one_shot = true + tmr_wsa.connect('timeout', init_sockets) + tmr_wsa.start(5.0) for unit_name in settings.UnitProfiles: var st = settings.UnitProfiles[unit_name] @@ -215,8 +223,11 @@ func _process(_delta: float) -> void: for addr in units_udp: var unit = units[addr] match unit.process(tick): - Error.OK: sock_unicast.send_to([addr[0], dst_ports[addr]], unit.tx_data.slice(0, unit.tx_len)) - Error.FAILED: emit_signal('socket_error', 'ошибка: %s %s:%d' % [unit, addr[0], addr[1]]) + Error.OK: + if sock_unicast: + sock_unicast.send_to([addr[0], dst_ports[addr]], unit.tx_data.slice(0, unit.tx_len)) + Error.FAILED: + emit_signal('socket_error', 'ошибка: %s %s:%d' % [unit, addr[0], addr[1]]) for key in units_serial: var unit = units_serial[key] var serial = serials[key]