Skip to content
Snippets Groups Projects
Commit 3150c8b3 authored by Daniel Hoffend's avatar Daniel Hoffend
Browse files

make linter happy

parent 28b92164
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ import os ...@@ -10,6 +10,7 @@ import os
CONFIG_NAME = "clock.json" CONFIG_NAME = "clock.json"
class Time: class Time:
def __init__(self, start=0): def __init__(self, start=0):
self.time = start self.time = start
...@@ -31,10 +32,21 @@ class Time: ...@@ -31,10 +32,21 @@ class Time:
def hour(self): def hour(self):
return (self.time / 3600) % 24 return (self.time / 3600) % 24
class Clock: class Clock:
def __init__(self, sizex = 80, sizey = 80, radius = 38, offsetx = 30, def __init__(
hour_hand = True, minute_hand = True, second_hand = True, console_out = False, self,
run_once = False, update_interval = 0): sizex=80,
sizey=80,
radius=38,
offsetx=30,
hour_hand=True,
minute_hand=True,
second_hand=True,
console_out=False,
run_once=False,
update_interval=0,
):
self.sizex = sizex self.sizex = sizex
self.sizey = sizey self.sizey = sizey
self.radius = radius self.radius = radius
...@@ -43,7 +55,9 @@ class Clock: ...@@ -43,7 +55,9 @@ class Clock:
self.minute_hand = minute_hand self.minute_hand = minute_hand
self.second_hand = second_hand self.second_hand = second_hand
self.console_out = console_out self.console_out = console_out
self.update_interval = update_interval if update_interval != 0 else (1 if self.second_hand else 30) self.update_interval = (
update_interval if update_interval != 0 else (1 if self.second_hand else 30)
)
self.run_once = run_once self.run_once = run_once
self.offsetx = offsetx self.offsetx = offsetx
self.time = Time() self.time = Time()
...@@ -107,10 +121,14 @@ class Clock: ...@@ -107,10 +121,14 @@ class Clock:
self.setTheme(self.theme) self.setTheme(self.theme)
def readConfig(self): def readConfig(self):
with open(CONFIG_NAME, 'r') as f: with open(CONFIG_NAME, "r") as f:
try: try:
c = ujson.loads(f.read()) c = ujson.loads(f.read())
if "themes" in c and len(c["themes"]) > 0 and isinstance(c["themes"], list): if (
"themes" in c
and len(c["themes"]) > 0
and isinstance(c["themes"], list)
):
self.themes = c["themes"] self.themes = c["themes"]
if "theme" and isinstance(c["theme"], int): if "theme" and isinstance(c["theme"], int):
self.theme = c["theme"] self.theme = c["theme"]
...@@ -118,48 +136,45 @@ class Clock: ...@@ -118,48 +136,45 @@ class Clock:
print("parsing %s failed" % CONFIG_NAME) print("parsing %s failed" % CONFIG_NAME)
def writeConfig(self): def writeConfig(self):
with open(CONFIG_NAME, 'w') as f: with open(CONFIG_NAME, "w") as f:
f.write(ujson.dumps({ f.write(ujson.dumps({"theme": self.theme, "themes": self.themes}))
"theme": self.theme,
"themes": self.themes,
}))
def setTheme(self, theme): def setTheme(self, theme):
self.theme = theme % len(self.themes) self.theme = theme % len(self.themes)
self.background_col = ( self.background_col = (
self.themes[self.theme]['background'] self.themes[self.theme]["background"]
if 'background' in self.themes[self.theme] if "background" in self.themes[self.theme]
else self.default_themes[0]['background'] else self.default_themes[0]["background"]
) )
self.center_col = ( self.center_col = (
self.themes[self.theme]['center'] self.themes[self.theme]["center"]
if 'center' in self.themes[self.theme] if "center" in self.themes[self.theme]
else self.default_themes[0]['center'] else self.default_themes[0]["center"]
) )
self.m1_col = ( self.m1_col = (
self.themes[self.theme]['m1'] self.themes[self.theme]["m1"]
if 'm1' in self.themes[self.theme] if "m1" in self.themes[self.theme]
else self.default_themes[0]['m1'] else self.default_themes[0]["m1"]
) )
self.m5_col = ( self.m5_col = (
self.themes[self.theme]['m5'] self.themes[self.theme]["m5"]
if 'm5' in self.themes[self.theme] if "m5" in self.themes[self.theme]
else self.default_themes[0]['m5'] else self.default_themes[0]["m5"]
) )
self.hour_hand_col = ( self.hour_hand_col = (
self.themes[self.theme]['hour_hand'] self.themes[self.theme]["hour_hand"]
if 'hour_hand' in self.themes[self.theme] if "hour_hand" in self.themes[self.theme]
else self.default_themes[0]['hour_hand'] else self.default_themes[0]["hour_hand"]
) )
self.minute_hand_col = ( self.minute_hand_col = (
self.themes[self.theme]['minute_hand'] self.themes[self.theme]["minute_hand"]
if 'minute_hand' in self.themes[self.theme] if "minute_hand" in self.themes[self.theme]
else self.default_themes[0]['minute_hand'] else self.default_themes[0]["minute_hand"]
) )
self.second_hand_col = ( self.second_hand_col = (
self.themes[self.theme]['second_hand'] self.themes[self.theme]["second_hand"]
if 'second_hand' in self.themes[self.theme] if "second_hand" in self.themes[self.theme]
else self.default_themes[0]['second_hand'] else self.default_themes[0]["second_hand"]
) )
def loop(self): def loop(self):
...@@ -196,7 +211,11 @@ class Clock: ...@@ -196,7 +211,11 @@ class Clock:
d.clear() d.clear()
for x in range(len(image)): for x in range(len(image)):
for y in range(len(image[x])): for y in range(len(image[x])):
d.pixel(x + self.offsetx, y, col = (255, 255, 255) if image[x][y] else (0, 0, 0)) d.pixel(
x + self.offsetx,
y,
col=(255, 255, 255) if image[x][y] else (0, 0, 0),
)
d.update() d.update()
def updateClock(self, disp): def updateClock(self, disp):
...@@ -204,7 +223,13 @@ class Clock: ...@@ -204,7 +223,13 @@ class Clock:
localtime = utime.localtime() localtime = utime.localtime()
disp.pixel(self.center[0] + self.offsetx, self.center[1], col=self.center_col) disp.pixel(self.center[0] + self.offsetx, self.center[1], col=self.center_col)
hour_coords = self.circlePoint(math.radians((((localtime[3]%12)/12.) if localtime[3] else 0)*360 + 270 + (localtime[4]/2))) hour_coords = self.circlePoint(
math.radians(
(((localtime[3] % 12) / 12.0) if localtime[3] else 0) * 360
+ 270
+ (localtime[4] / 2)
)
)
minute_coords = self.circlePoint(math.radians(localtime[4] * 6 + 270)) minute_coords = self.circlePoint(math.radians(localtime[4] * 6 + 270))
second_coords = self.circlePoint(math.radians(localtime[5] * 6 + 270)) second_coords = self.circlePoint(math.radians(localtime[5] * 6 + 270))
...@@ -219,30 +244,65 @@ class Clock: ...@@ -219,30 +244,65 @@ class Clock:
self.addLine(disp, coords, self.center, 1, col=self.m1_col) self.addLine(disp, coords, self.center, 1, col=self.m1_col)
if self.hour_hand: if self.hour_hand:
self.addLine(disp, self.center, hour_coords, int(self.radius / 3), 1, col = self.hour_hand_col) self.addLine(
disp,
self.center,
hour_coords,
int(self.radius / 3),
1,
col=self.hour_hand_col,
)
if self.minute_hand: if self.minute_hand:
self.addLine(disp, self.center, minute_coords, int(self.radius / 2), col = self.minute_hand_col) self.addLine(
disp,
self.center,
minute_coords,
int(self.radius / 2),
col=self.minute_hand_col,
)
if self.second_hand: if self.second_hand:
self.addLine(disp, self.center, second_coords, self.radius - int(self.radius/8.), col = self.second_hand_col) self.addLine(
disp,
self.center,
second_coords,
self.radius - int(self.radius / 8.0),
col=self.second_hand_col,
)
if self.console_out: if self.console_out:
for y in range(self.radius * 2): for y in range(self.radius * 2):
line = "" line = ""
for x in range(self.radius * 2): for x in range(self.radius * 2):
line = line + ("." if image[(self.center[1]-self.radius)+y][(self.center[0]-self.radius)+x] else " ") line = line + (
"."
if image[(self.center[1] - self.radius) + y][
(self.center[0] - self.radius) + x
]
else " "
)
print(line) print(line)
disp.update() disp.update()
def circlePoint(self, t): def circlePoint(self, t):
return (int(round(self.radius*math.cos(t))) + self.center[0], int(round(self.radius*math.sin(t))) + self.center[1]) return (
int(round(self.radius * math.cos(t))) + self.center[0],
int(round(self.radius * math.sin(t))) + self.center[1],
)
def addLine(self, disp, source, aim, length, thickness=1, col=(255, 255, 255)): def addLine(self, disp, source, aim, length, thickness=1, col=(255, 255, 255)):
vector = self.subVector(aim, source) vector = self.subVector(aim, source)
vector = self.normVector(vector) vector = self.normVector(vector)
destination = self.addVector(source, self.multiplyVector(vector, length)) destination = self.addVector(source, self.multiplyVector(vector, length))
disp.line(round(source[0]) + self.offsetx, round(source[1]), round(destination[0]) + self.offsetx, round(destination[1]), col=col, size=thickness) disp.line(
round(source[0]) + self.offsetx,
round(source[1]),
round(destination[0]) + self.offsetx,
round(destination[1]),
col=col,
size=thickness,
)
def normVector(self, v): def normVector(self, v):
length = math.sqrt(sum([i ** 2 for i in v])) length = math.sqrt(sum([i ** 2 for i in v]))
...@@ -266,5 +326,6 @@ class Clock: ...@@ -266,5 +326,6 @@ class Clock:
def multiplyVector(self, v, multiplier): def multiplyVector(self, v, multiplier):
return tuple([i * multiplier for i in v]) return tuple([i * multiplier for i in v])
clock = Clock() clock = Clock()
clock.loop() clock.loop()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment