# @name Clock_S # @desc Small centered clock HH:MM or HH:MM:SS with customizable color and blinking colon # @author Avemer # @version 1.1 class Clock # USER VARIABLES var CLOCK_COLOR var BLINK_COLON var SHOW_SECONDS # ================ START OF USER SETTINGS ================ def init() # CLOCK COLOR # Format: 0xRRGGBB # Examples: # 0xFFFFFF White # 0xFF0000 Red # 0x00FF00 Green # 0x0000FF Blue # 0xFFFF00 Yellow # 0x00FFFF Cyan # 0xFF00FF Magenta self.CLOCK_COLOR = 0xFFFFFF # BLINK COLON # 1 = blinking # 0 = always visible self.BLINK_COLON = 1 # SHOW SECONDS # 1 = show seconds # 0 = hide seconds self.SHOW_SECONDS = 0 # ================ END OF USER SETTINGS ================ 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()