Files
StickExporterTX/2D.py

120 lines
2.8 KiB
Python

from ast import While
import csv
from math import fabs
from msilib import make_id
from posixpath import split
from tkinter.filedialog import askopenfilename
from turtle import width
import pygame
import time
Pixelsize = 10
Size = 500
Height = Size/2
Width = Size
HeightMiddle = Height/2
WidthMiddle = Width/2
joystickScaleHeight = Height/2048
joystickScaleWidth = Width/2048
screen = pygame.display.set_mode((Width,Height+1))
pygame.display.set_caption('Log Test')
pygame.draw.rect(screen, (0,0,255), (WidthMiddle, 0, 1, Height))
pygame.display.flip()
log = askopenfilename()
ltime = []
rud = []
ele = []
thr = []
ail = []
with open(log, newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
ltime.append(row['Time'])
rud.append(row['Rud'])
ele.append(row['Ele'])
thr.append(row['Thr'])
ail.append(row['Ail'])
i = 0
while i != len(rud):
iRud = int(rud[i])
iEle = int(ele[i])
iThr = int(thr[i])
iAil = int(ail[i])
if iRud >= 0:
rud[i] = (iRud + 1024)*(joystickScaleWidth/2)
else:
rud[i] = (1024 - abs(iRud))*(joystickScaleWidth/2)
if iEle >= 0:
ele[i] = (iEle + 1024)*joystickScaleHeight
else:
ele[i] = (1024 - abs(iEle))*joystickScaleHeight
if iThr >= 0:
thr[i] = (iThr + 1024)*joystickScaleHeight
else:
thr[i] = (1024 - abs(iThr))*joystickScaleHeight
if iAil >= 0:
ail[i] = (iAil + 1024)*(joystickScaleWidth/2)
else:
ail[i] = (1024 - abs(iAil))*(joystickScaleWidth/2)
i+=1
splitTime = []
for e in ltime:
splitTime.append(e.split(":").pop(2).replace(".", ""))
meanTime = []
i = 0
f = False
for e in splitTime:
if f != False:
if int(e) < int(splitTime[i]):
meanTime.append(60000 - int(splitTime[i]) + int(e))
else:
meanTime.append(int(e) - int(splitTime[i]))
i+=1
else:
f = True
totalTime = 0
for e in meanTime:
totalTime+=e
timelineStep = Width/totalTime
pygame.draw.circle(screen, (255, 0, 0), (rud[0], ele[0]), Pixelsize)
while True:
i = 0
pastTime = 0
for e in meanTime:
time.sleep(e/1000)
pygame.draw.rect(screen, (0,0,0), (0, 0, Width, Height+1))
pygame.draw.rect(screen, (0,0,255), (WidthMiddle, 0, 1, Height))
pygame.draw.circle(screen, (255,0,0), (WidthMiddle+ail[i], Height-ele[i]), Pixelsize)
pygame.draw.circle(screen, (255,0,0), (rud[i], Height-thr[i]), Pixelsize)
pygame.draw.rect(screen, (0,255,0), (0, Height, pastTime*timelineStep, 1))
pygame.display.flip()
pastTime+=e
i+=1
for e in pygame.event.get():
if e.type == pygame.QUIT:
pygame.quit()
exit()