302 lines
7.2 KiB
Python
302 lines
7.2 KiB
Python
|
|
import kivy
|
|
import time
|
|
|
|
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 kivy.config import Config
|
|
|
|
from tkinter import filedialog
|
|
from tkinter import simpledialog
|
|
from KivyOnTop import register_topmost, unregister_topmost
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
from tkinter import *
|
|
|
|
folder_selected = filedialog.askopenfilename()
|
|
|
|
print(folder_selected)
|
|
|
|
Court_name = simpledialog.askstring(title="Court Name",prompt="What Court is this?\t\t\t")
|
|
|
|
print(Court_name)
|
|
#Builder.load_file('update_label.kv')
|
|
|
|
|
|
filePath = (folder_selected)
|
|
|
|
print(filePath)
|
|
|
|
root = Tk()
|
|
root.withdraw()
|
|
|
|
|
|
|
|
#f = open(r"C:\Users\William\Documents\University\BeepDetails.log", "r")
|
|
|
|
Builder.load_string("""
|
|
<MySec>:
|
|
rgba: (1,.2,.2,.2)
|
|
orientation: 'vertical'
|
|
|
|
BoxLayout:
|
|
size_hint: (1, .1)
|
|
canvas.before:
|
|
Color:
|
|
rgba: root.rgba
|
|
Rectangle:
|
|
size: self.size
|
|
pos: self.pos
|
|
|
|
Label:
|
|
id: Court_name
|
|
text: root.Court_name
|
|
font_size: 30
|
|
size_hint: (1, 1)
|
|
bold: True
|
|
|
|
BoxLayout:
|
|
size_hint: (1, .05)
|
|
canvas.before:
|
|
Color:
|
|
rgba: root.rgba
|
|
Rectangle:
|
|
size: self.size
|
|
pos: self.pos
|
|
|
|
Label:
|
|
id: Positive_text
|
|
text: 'Far'
|
|
font_size: 15
|
|
size_hint: (1, 1)
|
|
|
|
|
|
BoxLayout:
|
|
size_hint: (1, .35)
|
|
canvas.before:
|
|
Color:
|
|
rgba: root.rgba
|
|
Rectangle:
|
|
size: self.size
|
|
pos: self.pos
|
|
|
|
Label:
|
|
id: Positive
|
|
text: root.Positive
|
|
font_size: 80
|
|
size_hint: (1, 1)
|
|
|
|
BoxLayout:
|
|
size_hint: (1, .05)
|
|
canvas.before:
|
|
Color:
|
|
rgba: root.rgba
|
|
Rectangle:
|
|
size: self.size
|
|
pos: self.pos
|
|
|
|
Label:
|
|
id: Negative_text
|
|
text: 'Near'
|
|
font_size: 15
|
|
size_hint: (1, 1)
|
|
|
|
BoxLayout:
|
|
size_hint: (1, .35)
|
|
canvas.before:
|
|
Color:
|
|
rgba: root.rgba
|
|
Rectangle:
|
|
size: self.size
|
|
pos: self.pos
|
|
|
|
Label:
|
|
id: Negative
|
|
text: root.Negative
|
|
font_size: 80
|
|
size_hint: (1, 1)
|
|
|
|
|
|
|
|
BoxLayout:
|
|
size_hint: (1, .1)
|
|
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, 1)
|
|
bold: True
|
|
""")
|
|
Window.size = (300, 300)
|
|
|
|
|
|
def read_5th_line(filename,num):
|
|
with open(filename, 'r') as file:
|
|
lines = file.readlines()
|
|
if len(lines) >= 5:
|
|
fifth_line = lines[num].strip() # Index 4 represents the 5th line (0-based indexing)
|
|
return fifth_line
|
|
else:
|
|
return None
|
|
|
|
|
|
|
|
class MySec(BoxLayout):
|
|
Positive = StringProperty('')
|
|
info = StringProperty('')
|
|
Negative = StringProperty('')
|
|
Court_name = StringProperty('')
|
|
Config.set('kivy','window_icon','./Sunny.ico')
|
|
Config.set('graphics', 'always_on_top','1')
|
|
#Config.set('graphics','position', 'custom' )
|
|
Config.set('graphics','left',10)
|
|
Config.set('graphics','top',50)
|
|
Config.set('graphics','height',300)
|
|
Config.set('graphics','width',300)
|
|
Config.write()
|
|
|
|
|
|
|
|
|
|
|
|
class MyApp(App):
|
|
def build(self):
|
|
self.title = 'Sunny V1.0'
|
|
|
|
|
|
|
|
#register_topmost(Window, 'Sunny V1.0')
|
|
Clock.schedule_interval(lambda dt: self.update_time(), 5)
|
|
|
|
return MySec()
|
|
|
|
def update_time(self):
|
|
|
|
self.root.Court_name = Court_name
|
|
with open(filePath,'r') as f:
|
|
line_5 = read_5th_line(filePath,4)
|
|
print(datetime.now())
|
|
|
|
if line_5 == '"sunStrengthLinkBoth" : true,':
|
|
print('Sun Strength Linked')
|
|
self.root.info = 'Linked'
|
|
elif line_5 == '"sunStrengthLinkBoth" : false,':
|
|
print('Sun Strength NOT Linked')
|
|
self.root.info = 'NOT Linked'
|
|
else:
|
|
print("Error: Cant see if Sun Strength is Linked")
|
|
self.root.info = 'Error'
|
|
line_6 = read_5th_line(filePath,5)
|
|
XNeg = line_6.find('sunStrengthNegX')
|
|
XNeg = float(line_6[XNeg+19:XNeg+22])
|
|
print(XNeg)
|
|
|
|
line_7 = read_5th_line(filePath,6)
|
|
XPos = line_7.find('sunStrengthPosX')
|
|
XPos = float(line_7[XPos+19:XPos+22])
|
|
print(XPos)
|
|
print('\n')
|
|
Average = (XNeg + XPos)/2
|
|
Average = round(Average,1)
|
|
|
|
|
|
|
|
if Average == 0.0:
|
|
XNeg = str(XNeg)
|
|
XPos = str(XPos)
|
|
self.root.Negative = XNeg
|
|
self.root.Positive = XPos
|
|
self.root.rgba = [0/255, 10/255, 10/255, 1.0]
|
|
|
|
elif Average <= 0.1:
|
|
XNeg = str(XNeg)
|
|
XPos = str(XPos)
|
|
self.root.Negative = XNeg
|
|
self.root.Positive = XPos
|
|
self.root.rgba = [0/255, 58/255, 71/255, 1.0]
|
|
|
|
|
|
|
|
elif ((Average > 0.1) and (Average <= 0.3)):
|
|
XNeg = str(XNeg)
|
|
XPos = str(XPos)
|
|
self.root.Negative = XNeg
|
|
self.root.Positive = XPos
|
|
self.root.rgba = [0/255, 79/255, 97/255, 1.0]
|
|
|
|
|
|
|
|
elif ((Average > 0.3) and (Average <= 0.6)):
|
|
XNeg = str(XNeg)
|
|
XPos = str(XPos)
|
|
self.root.Negative = XNeg
|
|
self.root.Positive = XPos
|
|
self.root.rgba = [0/255, 117/255, 143/255, 1.0]
|
|
|
|
|
|
|
|
elif ((Average > 0.6) and (Average <= 0.9)):
|
|
XNeg = str(XNeg)
|
|
XPos = str(XPos)
|
|
self.root.Negative = XNeg
|
|
self.root.Positive = XPos
|
|
self.root.rgba = [0/255, 157/255, 192/255, 1.0]
|
|
|
|
|
|
|
|
|
|
elif Average > 0.9:
|
|
XNeg = str(XNeg)
|
|
XPos = str(XPos)
|
|
self.root.Negative = XNeg
|
|
self.root.Positive = XPos
|
|
self.root.rgba = [0/255, 208/255, 255/255, 1.0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
MyApp().run()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|