-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayout.lua
More file actions
153 lines (116 loc) · 13.2 KB
/
layout.lua
File metadata and controls
153 lines (116 loc) · 13.2 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
local CurrentPage = PageNames[props["page_index"].Value]
local instructionsText = "Instructions:\r\rThe active LEDs are intended to show pages on the user interface.\r\rProvide the stop countdown button, or wire other buttons on the UCI so that end users can stop countdowns as necessary from the system off page.\r\rThe vacancy countdown & auto off both trigger the main countdown cycle, allowing the end user to cancel the shutdown if needed."
local colors = {
LightRed = {255, 128, 128}, -- Light red
MediumRed = {229, 57, 53 }, -- Mid red
DarkRed = {127, 0, 0 }, -- Dark red
LightGreen = {128, 224, 128}, -- Light green
MediumGreen = {46, 125, 50 }, -- Mid green
DarkGreen = {10, 61, 10 }, -- Dark green
LightBlue = {128, 179, 255}, -- Light blue
MediumBlue = {21, 101, 192}, -- Mid blue
DarkBlue = {10, 31, 92 }, -- Dark blue
}
local currentVerticalPosition = 5
local controlMargin = 5
local labelHeight = 25
local labelWidth = 160
local ledHeight = 25
local ledWidth = 25
local meterHeight = 25
local meterWidth = 100
local buttonWidth = 150
local buttonHeight = 50
local countdownTimeIndicatorWidth = 105
local countdownTimeIndicatorHeight = 105
local function getVerticalStartPosition(margin, start, height)
currentVerticalPosition = margin + start + height
return currentVerticalPosition
end
local function getHorizontalStartPosition(margin, start, width)
return margin + start + width
end
if CurrentPage == "Main" then
--header label row
table.insert(graphics, {Type="Label", Text="Sensors & Outputs", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 18, HTextAlign="Left"})
--occ sensor row / shutdown pulse row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, ledHeight)
table.insert(graphics, {Type="Label", Text="Occupancy Detected", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 12, HTextAlign="Left"})
local currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, labelWidth + (meterWidth / 2) - (ledWidth / 2))
layout["occupancy"] = { PrettyName = "Occupancy Sensor~Occupancy", Style = "Led", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {ledWidth, ledHeight}, Color = colors.LightRed }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, (meterWidth / 2) + (ledWidth / 2))
table.insert(graphics, {Type="Label", Text="Shutdown Pulse", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 12, HTextAlign="Left"})
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, labelWidth)
layout["shutdown"] = { PrettyName = "Outputs~Shutdown", Style = "Led", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {ledWidth, ledHeight}, Color = colors.DarkGreen }
---vacancy countdown row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, labelHeight)
table.insert(graphics, {Type="Label", Text="Vacancy Time Remaining", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 12, HTextAlign="Left"})
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, labelWidth)
layout["vacancy_time_remaining"] = { PrettyName = "Outputs~Vacancy Time Remaining", Style = "Meter", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {meterWidth, meterHeight}, Color = colors.MediumRed }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, meterWidth)
table.insert(graphics, {Type="Label", Text="Vacancy Countdown Active", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 12, HTextAlign="Left"})
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, labelWidth)
layout["occupancy_countdown_active"] = { PrettyName = "Outputs~Vacancy Countdown Active", Style = "Led", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {ledWidth, ledHeight}, Color = colors.MediumRed }
----countdown row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, labelHeight)
table.insert(graphics, {Type="Label", Text="Countdown Time Remaining", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 12, HTextAlign="Left"})
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, labelWidth)
layout["countdown_time_remaining"] = { PrettyName = "Outputs~Time Remaining", Style = "Meter", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {meterWidth, meterHeight}, Color = colors.MediumBlue }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, meterWidth)
table.insert(graphics, {Type="Label", Text="Countdown Active", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 12, HTextAlign="Left"})
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, labelWidth)
layout["countdown_active"] = { PrettyName = "Outputs~Countdown Active", Style = "Led", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {ledWidth, ledHeight}, Color = colors.LightBlue }
--vacancy time row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, ledHeight)
table.insert(graphics, {Type="Label", Text="Vacancy Time", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 18, HTextAlign="Left"})
--vacancy time button start row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, labelHeight)
layout["increment_vacancy_time"] = { PrettyName = "Occupancy Sensor~Increment Vacancy Time", Style="Button", Legend="Vacancy Time +", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.MediumRed, FontSize = 18, ButtonVisualStyle = "Flat"}
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, buttonWidth)
layout["vacancy_time_seconds"] = { PrettyName = "Occupancy Sensor~Vacancy Time", Style = "Text", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {countdownTimeIndicatorWidth, countdownTimeIndicatorHeight}, Color = colors.LightRed, FontSize = 18}
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, countdownTimeIndicatorWidth)
table.insert(graphics, {Type="Label", Text=instructionsText, Position = { currentHorizontalPosition, currentVerticalPosition}, Size = { labelWidth + controlMargin + ledWidth, (countdownTimeIndicatorHeight * 2 + controlMargin * 2 + labelHeight) }, FontSize= 12, HTextAlign = "Center"})
--vacancy time button end row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
layout["decrement_vacancy_time"] = { PrettyName = "Occupancy Sensor~Decrement Vacancy Time", Style="Button", Legend="Vacancy Time -", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.MediumRed, FontSize = 18, ButtonVisualStyle = "Flat" }
--countdown time adjustment label row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
table.insert(graphics, {Type="Label", Text="Countdown Time", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 18, HTextAlign="Left"})
--countdown time button start row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, labelHeight)
layout["increment_countdown_time"] = { PrettyName = "Countdown~Increment Countdown Time", Style="Button", Legend="Countdown Time +", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.MediumBlue, FontSize = 16, ButtonVisualStyle = "Flat" }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, buttonWidth)
layout["countdown_time_seconds"] = { PrettyName = "Countdown~Countdown Time", Style = "Text", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {countdownTimeIndicatorWidth, countdownTimeIndicatorHeight}, Color = colors.LightBlue, FontSize = 18}
--countdown time button end row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
layout["decrement_countdown_time"] = { PrettyName = "Countdown~Decrement Countdown Time", Style="Button", Legend="Countdown Time -", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.MediumBlue, FontSize = 16, ButtonVisualStyle = "Flat" }
--countdown label row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
table.insert(graphics, {Type="Label", Text="Countdown Control", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 18, HTextAlign="Left"})
--countdown control start row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, labelHeight)
layout["start_countdown"] = { PrettyName = "Countdown~Start Countdown", Style="Button", Legend="Start Countdown", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.DarkBlue, FontSize = 18, ButtonVisualStyle = "Flat" }
--countdown control end row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
layout["stop_countdown"] = { PrettyName = "Countdown~Stop Countdown", Style="Button", Legend="Stop Countdown", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.DarkBlue, FontSize = 18, ButtonVisualStyle = "Flat" }
--auto off label row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
table.insert(graphics, {Type="Label", Text="Auto Off", Position = {5, currentVerticalPosition}, Size = {labelWidth, labelHeight}, FontSize = 18, HTextAlign="Left"})
--auto off time indicator row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, labelHeight)
layout["auto_shutdown_hours"] = { PrettyName = "Auto Off~Time Hours", Style = "Text", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, FontSize = 18, Color = colors.LightGreen }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, labelWidth)
layout["auto_shutdown_minutes"] = { PrettyName = "Auto Off~Time Minutes", Style = "Text", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, FontSize = 18, Color = colors.LightGreen}
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, currentHorizontalPosition, labelWidth)
layout["auto_shutdown_pm"] = { PrettyName = "Auto Off~Time PM?", Style="Button", Legend="PM", ButtonStyle = "Toggle", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.MediumGreen, FontSize = 16, ButtonVisualStyle = "Flat" }
--auto off time start row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
layout["increment_shutdown_hours"] = { PrettyName = "Auto Off~Increment Hour", Style="Button", Legend="Hour +", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.DarkGreem, FontSize = 16, ButtonVisualStyle = "Flat" }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, labelWidth)
layout["increment_shutdown_minutes"] = { PrettyName = "Auto Off~Increment Minute", Style="Button", Legend="Minute +", ButtonStyle = "Momentary", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.DarkGreem, FontSize = 16, ButtonVisualStyle = "Flat" }
--auto off time end row
currentVerticalPosition = getVerticalStartPosition(controlMargin, currentVerticalPosition, buttonHeight)
layout["decrement_shutdown_hours"] = { PrettyName = "Auto Off~Decrement Hour", Style="Button", Legend="Hour -", ButtonStyle = "Momentary", Position = {5, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.DarkGreem, FontSize = 16, ButtonVisualStyle = "Flat" }
currentHorizontalPosition = getHorizontalStartPosition(controlMargin, 5, labelWidth)
layout["decrement_shutdown_minutes"] = { PrettyName = "Auto Off~Decrement Minute", Style="Button", Legend="Minute -", ButtonStyle = "Momentary", Position = {currentHorizontalPosition, currentVerticalPosition}, Size = {buttonWidth, buttonHeight}, Color = colors.DarkGreem, FontSize = 16, ButtonVisualStyle = "Flat" }
end