-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.lua
More file actions
94 lines (74 loc) · 2.37 KB
/
Copy pathexample.lua
File metadata and controls
94 lines (74 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
pos_x = 0
function rgb565(red, green, blue)
return ((red & 0xf8) << 8) | ((green & 0xfc) << 3) | (blue >> 3);
end
function defaultFontXOffset(numChars, scale) --works with default font only
return numChars * 6 * scale;
end
function defaultFontYOffset(numRows, scale)
return numRows * 8 * scale;
end
start = 0;
diff = 0;
running = false;
reset = true;
sumPaused = 0;
function setup()
end
function loop()
if (hal:btn3Down() > 0) then
if (reset == true) then
start = hal:getLocalTime();
else
sumPaused = sumPaused + diff;
start = hal:getLocalTime();
end
running = true;
reset = false;
end
if (hal:btn2Down() > 0) then
if (running) then
running = false
else
diff = 0
sumPaused = 0
reset = true
end
end
hal:getCanvas():fillScreen(0);
hal:getCanvas():setTextColor(rgb565(255, 255, 255));
hal:getCanvas():setTextSize(2);
if (reset == true) then
hal:getCanvas():setCursor(220 - defaultFontXOffset(5, 2), 42);
hal:getCanvas():print("Start");
elseif (running == false) then
hal:getCanvas():setCursor(220 - defaultFontXOffset(8, 2), 42);
hal:getCanvas():print("Continue");
end
if (running == true) then
hal:getCanvas():setCursor(220 - defaultFontXOffset(4, 2), 182);
hal:getCanvas():print("Stop");
elseif (reset == false) then
hal:getCanvas():setCursor(220 - defaultFontXOffset(5, 2), 182);
hal:getCanvas():print("Reset");
end
if (running == true) then
diff = hal:getLocalTime() - start;
end
total = math.floor(diff + sumPaused);
deltaSeconds = (total) % 60;
deltaMinutes = (total // 60) % 60;
deltaHours = (total / 60 // 60) % 24;
deltaDays = total / 60 / 60 // 24;
hal:getCanvas():setTextSize(4);
if (deltaDays > 0) then
hal:getCanvas():setCursor(120 - defaultFontXOffset(deltaDays < 10 and 1 or 2, 4),
120 - defaultFontYOffset(1, 4) * 1.5);
hal:getCanvas():print(string.format("%dd", deltaDays));
end
hal:getCanvas():setCursor(defaultFontXOffset(1, 4), 120 - defaultFontYOffset(1, 4) / 2);
hal:getCanvas():print(string.format("%02d:%02d:%02d", deltaHours, deltaMinutes, deltaSeconds))
hal:flushCanvas()
end
function stop()
end