module LD220::Mode::UTC

Constants

ENHANCED_PREAMBLE

Public Instance Methods

clear() click to toggle source
# File lib/ld220/mode/utc.rb, line 8
def clear
  write "\x1f"
end
cursor(enabled) click to toggle source
# File lib/ld220/mode/utc.rb, line 18
def cursor(enabled)
  write enabled ? "\x13" : "\x14"
end
enhanced_cmd() { || ... } click to toggle source
# File lib/ld220/mode/utc.rb, line 49
def enhanced_cmd
  enhanced_mode
  yield
  standard_mode
end
enhanced_mode() click to toggle source
# File lib/ld220/mode/utc.rb, line 55
def enhanced_mode
  write "\x1b\x64"
end
move_cursor_to(pos) click to toggle source
# File lib/ld220/mode/utc.rb, line 22
def move_cursor_to(pos)
  raise ArgumentError, "Position must be between 0 and 39" unless (0..39).include? pos
  write "\x10#{pos.chr}"
end
reset() click to toggle source
# File lib/ld220/mode/utc.rb, line 12
def reset
  standard_mode
  move_cursor_to 0
  clear
end
scroll_msg(msg) click to toggle source
# File lib/ld220/mode/utc.rb, line 27
def scroll_msg(msg)
  msg = msg.to_s
  # Messages longer than 45 chars are accepted, but truncated
  raise ArgumentError, "Message must be 45 or fewer characters" if msg.length > 45
  enhanced_cmd { write "#{ENHANCED_PREAMBLE}\x44#{msg}\x0d" }
end
scroll_once(msg) click to toggle source
# File lib/ld220/mode/utc.rb, line 34
def scroll_once(msg)
  enhanced_cmd { write "#{ENHANCED_PREAMBLE}\x46#{msg}\x0d" }
end
show_time(time = Time.now) click to toggle source
# File lib/ld220/mode/utc.rb, line 45
def show_time(time = Time.now)
  enhanced_cmd { write "#{ENHANCED_PREAMBLE}\x45#{time.strftime "%H:%M"}\x0d" }
end
standard_mode() click to toggle source
# File lib/ld220/mode/utc.rb, line 59
def standard_mode
  write "\x1b\x0f\x0d"
end
stop_scroll() click to toggle source
# File lib/ld220/mode/utc.rb, line 38
def stop_scroll
  # There is no documented way to stop an infinite scroll.
  # However, using "scroll once" with an empty value gets us close
  scroll_once ''
  reset
end