diff --git a/SimulationGraph/main.py b/SimulationGraph/main.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/impulse/UDP_App/DATA/RealData/_data-30sec.txt b/UDP_App/DATA/RealData/_data-30sec.txt similarity index 100% rename from impulse/UDP_App/DATA/RealData/_data-30sec.txt rename to UDP_App/DATA/RealData/_data-30sec.txt diff --git a/impulse/UDP_App/DATA/RealData/_data-60sec.txt b/UDP_App/DATA/RealData/_data-60sec.txt similarity index 100% rename from impulse/UDP_App/DATA/RealData/_data-60sec.txt rename to UDP_App/DATA/RealData/_data-60sec.txt diff --git a/impulse/UDP_App/DATA/RealData/data-30sec.txt b/UDP_App/DATA/RealData/data-30sec.txt similarity index 100% rename from impulse/UDP_App/DATA/RealData/data-30sec.txt rename to UDP_App/DATA/RealData/data-30sec.txt diff --git a/impulse/UDP_App/DATA/RealData/data-60sec.txt b/UDP_App/DATA/RealData/data-60sec.txt similarity index 100% rename from impulse/UDP_App/DATA/RealData/data-60sec.txt rename to UDP_App/DATA/RealData/data-60sec.txt diff --git a/impulse/UDP_App/DATA/TestData/backward-3sec.txt b/UDP_App/DATA/TestData/backward-3sec.txt similarity index 100% rename from impulse/UDP_App/DATA/TestData/backward-3sec.txt rename to UDP_App/DATA/TestData/backward-3sec.txt diff --git a/impulse/UDP_App/DATA/TestData/custom-movement.txt b/UDP_App/DATA/TestData/custom-movement.txt similarity index 100% rename from impulse/UDP_App/DATA/TestData/custom-movement.txt rename to UDP_App/DATA/TestData/custom-movement.txt diff --git a/impulse/UDP_App/DATA/TestData/forward-3sec.txt b/UDP_App/DATA/TestData/forward-3sec.txt similarity index 100% rename from impulse/UDP_App/DATA/TestData/forward-3sec.txt rename to UDP_App/DATA/TestData/forward-3sec.txt diff --git a/impulse/UDP_App/DATA/TestData/left-3sec.txt b/UDP_App/DATA/TestData/left-3sec.txt similarity index 100% rename from impulse/UDP_App/DATA/TestData/left-3sec.txt rename to UDP_App/DATA/TestData/left-3sec.txt diff --git a/impulse/UDP_App/DATA/TestData/right-3sec.txt b/UDP_App/DATA/TestData/right-3sec.txt similarity index 100% rename from impulse/UDP_App/DATA/TestData/right-3sec.txt rename to UDP_App/DATA/TestData/right-3sec.txt diff --git a/impulse/UDP_App/DATA/TestData/static-5sec.txt b/UDP_App/DATA/TestData/static-5sec.txt similarity index 100% rename from impulse/UDP_App/DATA/TestData/static-5sec.txt rename to UDP_App/DATA/TestData/static-5sec.txt diff --git a/impulse/UDP_App/UDPsender.py b/UDP_App/UDPsender.py similarity index 100% rename from impulse/UDP_App/UDPsender.py rename to UDP_App/UDPsender.py diff --git a/impulse/UDP_App/UDPsender_v1.py b/impulse/UDP_App/UDPsender_v1.py deleted file mode 100644 index d474b5441edf15b75d98d4d3f6e35a78ea42dd47..0000000000000000000000000000000000000000 --- a/impulse/UDP_App/UDPsender_v1.py +++ /dev/null @@ -1,96 +0,0 @@ -import socket -import random -import time -import pyautogui - -# UDP_IP = "192.168.1.112" # VR headset: 192.168.1.112 -UDP_IP = "127.0.0.1" -UDP_PORT = 5000 - -FOLDER_PATH = "DATA/" -SUBFOLDER_PATH = "TestData/" -# DATA = "static-5sec.txt" -# DATA = "forward-3sec.txt" -# DATA = "backward-3sec.txt" -# DATA = "left-3sec.txt" -# DATA = "right-3sec.txt" -# DATA = "custom-movement.txt" # left, right, back, left, right, left, right - -DATA = "" - -# SUBFOLDER_PATH = "RealData/" -# DATA = "data-30sec.txt" -# DATA = "data-60sec.txt" - -# refreshRate = 0.02 -refreshRate = 0.5 - -# Initialize spatial values -x = 0 -y = 0 -z = 0 -x_theta = 0 -y_theta = 0 -z_theta = 0 - -# Create a UDP socket -sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - - -# Aggregate values into a string -# Output format: (x, y, z, x_theta, y_theta, z_theta) -def aggregateValuesToString(x, y, z, x_theta, y_theta, z_theta): - return ( - str(x) - + "," - + str(y) - + "," - + str(z) - + "," - + str(x_theta) - + "," - + str(y_theta) - + "," - + str(z_theta) - ) - - -# Read data from file -if DATA != "": - - # If a file with data exist, let's use it - with open(FOLDER_PATH + SUBFOLDER_PATH + DATA) as file: - - for line in file: - - # Split the line into strings (it's seperated by spaces) - # strings = line.split('\x00') - strings = line.split("|") - - # Split each string into values (seperated by _) - for string in strings: - - values = string.split("_") - print(values) - # Assign values - timestamp, x, y, z, x_theta, y_theta, z_theta = values - - # Send values - data = aggregateValuesToString(x, y, z, x_theta, y_theta, z_theta) - sock.sendto(data.encode(), (UDP_IP, UDP_PORT)) - - # print(data) - - # Sleep for 0.1 seconds - time.sleep(refreshRate) - -# If no file with data exist, let's use mouse position -else: - while True: - # Use mouse position as data instead - x = pyautogui.position()[0] - z = pyautogui.position()[1] - data = aggregateValuesToString(x, y, z, x_theta, y_theta, z_theta) - sock.sendto(data.encode(), (UDP_IP, UDP_PORT)) - print("Sent: " + data) - time.sleep(refreshRate) diff --git a/impulse/UDP_App/UDPsender_v2.py b/impulse/UDP_App/UDPsender_v2.py deleted file mode 100644 index 7411bcae10ea56b0ca65cf50c61468b24269a7a1..0000000000000000000000000000000000000000 --- a/impulse/UDP_App/UDPsender_v2.py +++ /dev/null @@ -1,112 +0,0 @@ -import socket -import tkinter as tk - -# Window Configuration -WINDOW_SIZE = 400 -CENTER_X = WINDOW_SIZE // 2 -CENTER_Y = WINDOW_SIZE // 2 - -# UDP Configuration -UDP_IP = "127.0.0.1" -UDP_PORT = 5000 -sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - -# Rotation angle -y_theta = 0 - - -def aggregate_values_to_string(x, y, z, x_theta, y_theta, z_theta): - return f"{x},{y},{z},{x_theta},{y_theta},{z_theta}" - - -def send_mouse_position(event): - global y_theta - x = event.x - CENTER_X - y = event.y - CENTER_Y - z = 0 - x_theta = 0 - z_theta = 0 - - data = aggregate_values_to_string(x, y, z, x_theta, y_theta, z_theta) - sock.sendto(data.encode(), (UDP_IP, UDP_PORT)) - print("Sent:", data) - - -def adjust_rotation(event): - global y_theta - if event.delta > 0: - y_theta += 5 - else: - y_theta -= 5 - print(f"Rotation Angle (Y): {y_theta}°") - - -def draw_center_and_arrows(canvas): - CIRCLE_RADIUS = 20 - # Draw central circle - canvas.create_oval( - CENTER_X - CIRCLE_RADIUS, - CENTER_Y - CIRCLE_RADIUS, - CENTER_X + CIRCLE_RADIUS, - CENTER_Y + CIRCLE_RADIUS, - fill="black", - ) - - # Draw arrows - ARROW_MARGIN = 30 - ARROW_LENGTH = 150 - canvas.create_line( - CENTER_X, - CENTER_Y - ARROW_MARGIN, - CENTER_X, - CENTER_Y - ARROW_LENGTH, - arrow=tk.LAST, - width=2, - ) # Up - canvas.create_line( - CENTER_X + ARROW_MARGIN, - CENTER_Y, - CENTER_X + ARROW_LENGTH, - CENTER_Y, - arrow=tk.LAST, - width=2, - ) # Right - canvas.create_line( - CENTER_X, - CENTER_Y + ARROW_MARGIN, - CENTER_X, - CENTER_Y + ARROW_LENGTH, - arrow=tk.LAST, - width=2, - ) # Down - canvas.create_line( - CENTER_X - ARROW_MARGIN, - CENTER_Y, - CENTER_X - ARROW_LENGTH, - CENTER_Y, - arrow=tk.LAST, - width=2, - ) # Left - - -def main(): - root = tk.Tk() - root.title("Mouse Tracker") - root.geometry(f"{WINDOW_SIZE}x{WINDOW_SIZE}") - root.resizable(False, False) - - canvas = tk.Canvas(root, width=WINDOW_SIZE, height=WINDOW_SIZE, bg="white") - canvas.pack() - - draw_center_and_arrows(canvas) - - # Bind mouse movement event - root.bind("<Motion>", send_mouse_position) - # Bind mouse wheel event - root.bind("<MouseWheel>", adjust_rotation) - - root.mainloop() - - -if __name__ == "__main__": - main()