Files
car-os/networking/scripts/udp_broadcast.gd
T
2026-07-04 18:22:23 -06:00

43 lines
1.1 KiB
GDScript

# client_node.gd
class_name ClientNode
extends Node
var udp = PacketPeerUDP.new()
var connected = false
var fast_broadcast_rate = 1.0
var slow_broadcast_rate = 10.0
var current_broadcast_rate = fast_broadcast_rate
var last_broadcast = 0
var ip_address: String = ""
func _ready():
_try_set_ip()
udp.set_broadcast_enabled(true)
udp.set_dest_address("192.168.0.255", 5000)
SensorSignals.new_sensor_connected.connect(_on_sensor_connected)
func _process(delta):
if ip_address.length() == 0:
_try_set_ip()
return
last_broadcast += delta
if last_broadcast >= current_broadcast_rate:
# Try to contact server
last_broadcast = 0
var broadcast_str = ip_address + "|%s" % Time.get_datetime_string_from_system(true)
print('Broadcasting to UDP: ', broadcast_str)
udp.put_packet(broadcast_str.to_utf8_buffer())
func _try_set_ip():
for address in IP.get_local_addresses():
if address.begins_with("192"):
if address.ends_with("0.1"):
continue
ip_address = address
break
func _on_sensor_connected(sensor_ip, sensor_data):
current_broadcast_rate = slow_broadcast_rate