Module: LD220::Mode::UTC
- Defined in:
- lib/ld220/mode/utc.rb
Constant Summary collapse
- ENHANCED_PREAMBLE =
"\x1b\x75"
Instance Method Summary collapse
- #clear ⇒ Object
- #cursor(enabled) ⇒ Object
- #enhanced_cmd ⇒ Object
- #enhanced_mode ⇒ Object
- #move_cursor_to(pos) ⇒ Object
- #reset ⇒ Object
- #scroll_msg(msg) ⇒ Object
- #scroll_once(msg) ⇒ Object
- #show_time(time = Time.now) ⇒ Object
- #standard_mode ⇒ Object
- #stop_scroll ⇒ Object
Instance Method Details
#clear ⇒ Object
8 9 10 |
# File 'lib/ld220/mode/utc.rb', line 8 def clear write "\x1f" end |
#cursor(enabled) ⇒ Object
18 19 20 |
# File 'lib/ld220/mode/utc.rb', line 18 def cursor(enabled) write enabled ? "\x13" : "\x14" end |
#enhanced_cmd ⇒ Object
49 50 51 52 53 |
# File 'lib/ld220/mode/utc.rb', line 49 def enhanced_cmd enhanced_mode yield standard_mode end |
#enhanced_mode ⇒ Object
55 56 57 |
# File 'lib/ld220/mode/utc.rb', line 55 def enhanced_mode write "\x1b\x64" end |
#move_cursor_to(pos) ⇒ Object
22 23 24 25 |
# 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 ⇒ Object
12 13 14 15 16 |
# File 'lib/ld220/mode/utc.rb', line 12 def reset standard_mode move_cursor_to 0 clear end |
#scroll_msg(msg) ⇒ Object
27 28 29 30 31 32 |
# 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) ⇒ Object
34 35 36 |
# 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) ⇒ Object
45 46 47 |
# 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 ⇒ Object
59 60 61 |
# File 'lib/ld220/mode/utc.rb', line 59 def standard_mode write "\x1b\x0f\x0d" end |
#stop_scroll ⇒ Object
38 39 40 41 42 43 |
# 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 |