52 lines
1.5 KiB
GDScript
52 lines
1.5 KiB
GDScript
extends PanelContainer
|
|
|
|
|
|
var ip_label: Label
|
|
var data_instance: Node
|
|
|
|
var sensor_ip: String = "127.0.0.1"
|
|
var data_labels = ["PNT", "Accel", "Gyro", "Magnet", "2D Lidar"]
|
|
|
|
var provided_data: Array = [0, 0, 0, 0]
|
|
var data_columns: Array
|
|
|
|
@export var data_column_scene: PackedScene
|
|
|
|
|
|
func _setup_data_columns():
|
|
var container: HBoxContainer = get_node('HBoxContainer')
|
|
for i in range(provided_data.size()):
|
|
var spacer: Control = container.add_spacer(false)
|
|
spacer.size = Vector2(2, 0)
|
|
var column_instance = data_column_scene.instantiate()
|
|
column_instance.get_node('DataLabel').text = data_labels[i]
|
|
data_columns.append(column_instance)
|
|
if provided_data[i] == 0:
|
|
column_instance.get_node('DataValue').text = "False"
|
|
else:
|
|
column_instance.get_node('DataValue').text = "True"
|
|
container.add_child(column_instance)
|
|
|
|
func set_provided_data(incoming_sensor_ip: String, sensor_class: String):
|
|
sensor_ip = incoming_sensor_ip
|
|
ip_label = get_node('HBoxContainer/Label')
|
|
ip_label.text = sensor_ip
|
|
if sensor_class == "VEHICLE":
|
|
provided_data = [1, 1, 1, 1, 0]
|
|
elif sensor_class == "LIDAR_2D":
|
|
provided_data = [1, 1, 1, 0, 1]
|
|
if data_columns.size() == 0:
|
|
_setup_data_columns()
|
|
else:
|
|
for idx in range(provided_data.size()):
|
|
if provided_data[idx] == 0:
|
|
data_columns[idx].get_node('DataValue').text = "False"
|
|
else:
|
|
data_columns[idx].get_node('DataValue').text = "True"
|
|
|
|
func _on_approve_pressed() -> void:
|
|
ServerSignals.sensor_approved.emit(sensor_ip)
|
|
|
|
func _on_decline_pressed() -> void:
|
|
ServerSignals.sensor_declined.emit(sensor_ip)
|