# @name Clock_S # @desc Small centered clock HH:MM or HH:MM:SS with customizable color and blinking colon # @author Avemer # @version 1.0 class Clock # SETTINGS # Clock color # Format: 0xRRGGBB # Examples: # 0xFFFFFF = White # 0xFF0000 = Red # 0x00FF00 = Green # 0x0000FF = Blue var CLOCK_COLOR # Colon blinking # 1 = blinking # 0 = always visible var BLINK_COLON # Seconds display # 1 = show seconds # 0 = hide seconds var SHOW_SECONDS def init() # USER SETTINGS self.CLOCK_COLOR = 0xFFFFFF self.BLINK_COLON = 1 self.SHOW_SECONDS = 1 end # MAIN LOOP # AWTRIX automatically calls draw(). def loop() end # DRAW CLOCK def draw() clear() # GET CURRENT TIME var h = hour() var m = minute() # Seconds are only used when SHOW_SECONDS = 1. var ss = second() # CONVERT NUMBERS TO TEXT var hh = str(h) var mm = str(m) var sec = str(ss) # Add leading zero to hours. if h < 10 hh = "0" + hh end # Add leading zero to minutes. if m < 10 mm = "0" + mm end # Add leading zero to seconds. if ss < 10 sec = "0" + sec end # CREATE TIME STRING var value = hh + ":" + mm # Add seconds if enabled. if self.SHOW_SECONDS == 1 value = value + ":" + sec end # BLINK COLON # If blinking is enabled, hide the colons # during odd-numbered seconds. if self.BLINK_COLON == 1 if ss % 2 == 1 value = hh + " " + mm if self.SHOW_SECONDS == 1 value = value + " " + sec end end end # CENTER TEXT HORIZONTALLY var w = text_ink_width(value) var x = int((width() - w) / 2) # DRAW TEXT text( x, 6, value, self.CLOCK_COLOR ) end # BUTTON def on_button(btn) end end return Clock()