#344 element redraws and shorter assert messages

This commit is contained in:
Mikayla Fischler
2023-09-29 19:34:10 -04:00
parent 70831b49d2
commit ed4180a072
35 changed files with 610 additions and 556 deletions

View File

@@ -25,13 +25,13 @@ local flasher = require("graphics.flasher")
---@param args alarm_indicator_light
---@return graphics_element element, element_id id
local function alarm_indicator_light(args)
assert(type(args.label) == "string", "graphics.elements.indicators.alight: label is a required field")
assert(type(args.c1) == "number", "graphics.elements.indicators.alight: c1 is a required field")
assert(type(args.c2) == "number", "graphics.elements.indicators.alight: c2 is a required field")
assert(type(args.c3) == "number", "graphics.elements.indicators.alight: c3 is a required field")
assert(type(args.label) == "string", "indicators.alight: label is a required field")
assert(type(args.c1) == "number", "indicators.alight: c1 is a required field")
assert(type(args.c2) == "number", "indicators.alight: c2 is a required field")
assert(type(args.c3) == "number", "indicators.alight: c3 is a required field")
if args.flash then
assert(util.is_int(args.period), "graphics.elements.indicators.alight: period is a required field if flash is enabled")
assert(util.is_int(args.period), "indicators.alight: period is a required field if flash is enabled")
end
-- single line
@@ -51,6 +51,8 @@ local function alarm_indicator_light(args)
-- create new graphics element base object
local e = element.new(args)
e.value = 1
-- called by flasher when enabled
local function flash_callback()
e.w_set_cur(1, 1)
@@ -105,9 +107,14 @@ local function alarm_indicator_light(args)
---@param val integer indicator state
function e.set_value(val) e.on_update(val) end
-- write label and initial indicator light
e.on_update(1)
e.w_write(args.label)
-- draw label and indicator light
function e.redraw()
e.on_update(e.value)
e.w_write(args.label)
end
-- initial draw
e.redraw()
return e.complete()
end