Files
Beeps/beeptimes.py
T
2022-06-14 12:10:53 +00:00

299 lines
7.6 KiB
Python

import kivy
import time
#kivy.require('1.11.0') # replace with your current kivy version !
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.clock import Clock
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivy.core.window import Window
from tkinter import filedialog
from tkinter import simpledialog
from KivyOnTop import register_topmost, unregister_topmost
from tkinter import *
root = Tk()
root.withdraw()
folder_selected = filedialog.askopenfilename()
print(folder_selected)
Court_name = simpledialog.askstring(title="Court Name",prompt="What Court is this?")
print(Court_name)
#Builder.load_file('update_label.kv')
filePath = (folder_selected)
print(filePath)
#f = open(r"C:\Users\William\Documents\University\BeepDetails.log", "r")
Builder.load_string("""
<MySec>:
rgba: (1,.2,.2,.2)
orientation: 'vertical'
Label:
id: Court_name
text: root.Court_name
font_size: 30
size_hint:(1,.2)
bold: True
canvas.before:
Color:
rgba: root.rgba
Rectangle:
size: self.size
pos: self.pos
Label:
id: kv_sec
text: root.seconds_string
font_size: 70
size_hint:(1,.5)
canvas.before:
Color:
rgba: root.rgba
Rectangle:
size: self.size
pos: self.pos
Label:
id: average
text: root.average
font_size: 25
size_hint:(1,.2)
canvas.before:
Color:
rgba: root.rgba
Rectangle:
size: self.size
pos: self.pos
Label:
id: info
text: root.info
font_size: 30
size_hint:(1,.2)
bold: True
canvas.before:
Color:
rgba: root.rgba
Rectangle:
size: self.size
pos: self.pos
""")
Window.size = (300, 300)
list = [0] * 10
class MySec(BoxLayout):
seconds_string = StringProperty('')
info = StringProperty('')
average = StringProperty('')
Court_name = StringProperty('')
#rgba = StringProperty('')
class MyApp(App):
def build(self):
self.title = 'Beeper V2.1'
register_topmost(Window, 'Beeper V2.1')
Clock.schedule_interval(lambda dt: self.update_time(), 0.5)
return MySec()
def update_time(self):
if list[9] != 0:
del list[9]
else:
self.root.Court_name = Court_name
with open(filePath,'r') as f:
lastLine = None
lines = f.readlines()
if lines[-1] != lastLine:
lastLine = lines[-1]
BC = lastLine.find("Bounce Count")
BC = lastLine[BC+14:BC+15]
BC = int(BC)
if BC == 0:
CN = lastLine.find("Crosses Net")
CN = lastLine[CN+13:CN+17]
if CN == 'true':
diff = lastLine.find("Time Diff")
diff = lastLine[diff+11:diff+19]
diff = float(diff)
diff = round((diff * 1000),1)
if diff <= 120:
diff1 = (str(diff)+'ms')
self.root.seconds_string = diff1
self.root.info = 'Cheating?'
if list[0] != diff:
list.insert(0,diff)
avg = str(round((sum(list)/10),1))
self.root.average = ('10 beep average:' + avg)
self.root.rgba = [218/255,165/255,32/255,1]
else:
pass
elif ((diff > 120) and (diff <= 150)):
diff1 = (str(diff)+'ms')
self.root.seconds_string = diff1
self.root.info = 'Looking good'
if list[0] != diff:
list.insert(0,diff)
avg = str(round((sum(list)/10),1))
self.root.average = ('10 beep average:' + avg)
self.root.rgba = [19/255,229/255,19/255,1]
else:
pass
elif ((diff > 150) and (diff <= 250)):
diff1 = (str(diff)+'ms')
self.root.seconds_string = diff1
self.root.info = 'Little slow'
if list[0] != diff:
list.insert(0,diff)
avg = str(round((sum(list)/10),1))
self.root.average = ('10 beep average:' + avg)
self.root.rgba = [235/255,116/255,19/255,1]
else:
pass
elif ((diff > 250) and (diff <= 350)):
diff1 = (str(diff)+'ms')
self.root.seconds_string = diff1
self.root.info = 'Noticeable slow'
if list[0] != diff:
list.insert(0,diff)
avg = str(round((sum(list)/10),1))
self.root.average = ('10 beep average:' + avg)
self.root.rgba = [219/255,0/255,0/255,1]
else:
pass
elif diff > 351:
diff1 = (str(diff)+'ms')
self.root.seconds_string = diff1
self.root.info = 'Help!!!'
if list[0] != diff:
list.insert(0,diff)
avg = str(round((sum(list)/10),1))
self.root.average = ('10 beep average:' + avg)
self.root.rgba = [90/255,4/255,4/255,1]
else:
pass
else:
pass
else:
pass
if __name__ == '__main__':
MyApp().run()
# with open(filePath,'r') as f:
# lastLine = None
# lines = f.readlines()
# if lines[-1] != lastLine:
# lastLine = lines[-1]
# return Label(text= lastLine)
#def update(self):
# lastLine = None