//--------------------------------------------------------------------- // // Reach SLCD5 VGA macro demo file // Feb-22-2016 // //--------------------------------------------------------------------- /* single line comments can be 'C' style or C++ style */ // blank lines are allowed //--------------------------------------------------------------------- // The BMPload program generates a macros.h file that provides // the index number for each named macro //--------------------------------------------------------------------- // MACRO #1 // This is the macro that invokes the self-running demo. // It is the default value for the *DEMOMAC command, so it starts // if the SLCD is powered on with its serial port looped back to itself. //--------------------------------------------------------------------- #define power_on_loopback_demo bv 255 // sound on full in case it was turned off by uesr m optional_calibration // check for touch calibration m clear // clear screen m splash // start main demo #end //--------------------------------------------------------------------- // MACROS #2 - #6 // These macros implement a number pad at relative (0,0) // It assumes button BMP 10, 11 are loaded //--------------------------------------------------------------------- #define number_pad m clear // set black and white colors, clear screen // bitmap that holds displayed number xi 12 0 0 // set font 24 for buttons f 32 // define buttons bd 1 0 64 1 "1" 9 5 10 11 bd 2 64 64 1 "2" 9 5 10 11 bd 3 128 64 1 "3" 9 5 10 11 bd 4 0 128 1 "4" 9 5 10 11 bd 5 64 128 1 "5" 9 5 10 11 bd 6 128 128 1 "6" 9 5 10 11 bd 7 0 192 1 "7" 9 5 10 11 bd 8 64 192 1 "8" 9 5 10 11 bd 9 128 192 1 "9" 9 5 10 11 bd 10 0 256 1 "*" 9 5 10 11 bd 0 64 256 1 "0" 9 5 10 11 bd 11 128 256 1 "#" 9 5 10 11 // tell user we're done beep 10 #end //--------------------------------------------------------------------- // Macro to set font and color for input box display. Foregorund color // is XOR of background color to match the buttons //--------------------------------------------------------------------- #define grey24 S 333 CCC f 32 #end //--------------------------------------------------------------------- // These macros write text to the screen //--------------------------------------------------------------------- #define button_text m grey24 t "`0`" 20 8 #end //--------------------------------------------------------------------- // This macro enables the buttons specified in number_pad macro // to write text to the screen inside a bitmap //--------------------------------------------------------------------- #define attach_buttons xa 0 p button_text 0 xa 1 p button_text 1 xa 2 p button_text 2 xa 3 p button_text 3 xa 4 p button_text 4 xa 5 p button_text 5 xa 6 p button_text 6 xa 7 p button_text 7 xa 8 p button_text 8 xa 9 p button_text 9 #end //--------------------------------------------------------------------- // This macro creates a keypad and displays the key // using previous macros //--------------------------------------------------------------------- #define keypad_demo s 0 1 m number_pad m attach_buttons #end #define rand_draw p `R1:5` m rand_color tr `R0:639` `R90:379` `R0:639` `R90:379` `R0:639` `R90:379` m rand_color c `R40:599` `R130:339` `R10:40` :repeat #end #define rand_color s `R0:16` 1 #end #define demo_end m clear #end #define clear s 0 1 z #end #define next_button o 0 0 f 16B bd 1 514 404 1 "Next" 35 22 1 2 xm 1 `0` #end #define splash m clear xi 5 0 0 m next_button splash2 // create access to other demos: set p0 `(`Xc`-85)` `(`Ym`-70)` set p1 `(`Xc`+85)` `(`Ym`-15)` p3 S 0000FF FFFFFF r `p0` `p1` f16B ta CC t "Other Demos" `p0` `p1` xs 128 `p0` `p1` xm 128 other_demos ta LT #end // -------------- macros for other demos on SD Card ------------------ #define other_demos m clear // clear screen f 32B sc `Xc` 20 ta CT // text align align center top t "Reach SD Card Required\n" sc `Xc` `Ys` f 16B ta CT t "(cycle power or reset to exit these demos)" m color_box_button F00 150 "GFX Demo" 128 gfx_demo m color_box_button 0F0 250 "iKB Demo" 129 ikb_demo m color_box_button 00F 350 "RT2 Demo" 130 rt2_demo m back_button splash #end #define color_box_button // arg 0 is 3 HEX Chars of RGB foreground color // arg 1 is Y center of "button" // arg 2 is text of "button" // arg 3 is index (128-254) of "button" // arg 4 is name of attached macro o 0 0 set p0 `(`Xc`-95)` `(`1`-32)` set p1 `(`Xc`+95)` `(`1`+32)` S `0` FFF p3 r `p0` `p1` f 24B ta CC t "`2`" `p0` `p1` xs `3` `p0` `p1` xm `3` `4` ta LT #end #define gfx_demo m show_loading `0` *sdload /gfx_demo 1 #end #define ikb_demo m show_loading `0` *sdload /ikb_demo 1 #end #define rt2_demo m show_loading `0` *sdload /rt2_demo 1 #end #define show_loading m clear f 32B sc `Xc` 20 ta CT // text align align center top t "Loading `0` ..." w 500 #end #define back_button o 0 0 f 16B bd 1 514 404 1 "Back" 35 22 1 2 xm 1 `0` #end // ---------------- end macros for "other demos" --------------------- #define splash2 m clear // clear screen xi 6 0 0 m next_button_tr splash_slcd #end #define splash_slcd m clear xi 7 0 0 m next_button splash_fonts #end #define splash_fonts m clear // clear screen f 32 t "On-board Proportional Fonts" 30 5 sc 0 0 o 40 50 f 8s t "8 point font: the quick brown fox jumped over the lazy dog 0123456789" f 10 t "\n10 point: the quick brown fox jumped over the lazy dog 0123456789" f 12 t "\n12 point: the quick brown fox jumped over the lazy dog 0123456789" f 14 t "\n14 point: the quick brown fox jumped over the 0123456789" f 14B t "\n14 point bold: the quick brown fox jumped 0123456789" f 16 t "\n16 point: the quick brown fox jumped over 0123456789\n" f 16B t "16 point bold: quick brown fox jumped 0123456789\n" f 20 t "20 point: the quick brown fox jump 0123456789\n" f 20B t "20 point bold: quick brown fox 0123456789\n" f 24 t "24 point: quick brown fox jumped 012345\n" f 24B t "24 point bold: quick brown fox 012345\n" f 32 t "32 point: quick brown fox 0123\n" f 32B t "32 point bold: 0123\n" m next_button splash_fixed_fonts #end #define splash_keyboard m clear // clear screen // clear string memory mpop -1 f 24B t "Easy to use buttons" 145 0 f 16B // set up stateful button with macro callback m keyboard_button_display "Off" bd 2 100 48 2 "" "" 0 0 0 0 3 4 xa 2 p keyboard_button_display "On " xa 2 r keyboard_button_display "Off" // setup demo instant button bd 3 400 45 1 "Hold" 30 20 1 2 // adjust origin for keyboard o 0 144 // keyboard row one m keyboard_key 10 0 0 1 m keyboard_key 11 64 0 2 m keyboard_key 12 128 0 3 m keyboard_key 13 192 0 4 m keyboard_key 14 256 0 5 m keyboard_key 15 320 0 6 m keyboard_key 16 384 0 7 m keyboard_key 17 448 0 8 m keyboard_key 18 512 0 9 m keyboard_key 19 576 0 0 // keyboard row two m keyboard_key 20 0 64 Q m keyboard_key 21 64 64 W m keyboard_key 22 128 64 E m keyboard_key 23 192 64 R m keyboard_key 24 256 64 T m keyboard_key 25 320 64 Y m keyboard_key 26 384 64 U m keyboard_key 27 448 64 I m keyboard_key 28 512 64 O m keyboard_key 29 576 64 P // keyboard row three m keyboard_key 30 0 128 A m keyboard_key 31 64 128 S m keyboard_key 64 128 128 D m keyboard_key 33 192 128 F m keyboard_key 34 256 128 G m keyboard_key 35 320 128 H m keyboard_key 36 384 128 J m keyboard_key 37 448 128 K m keyboard_key 38 512 128 L m keyboard_key 39 576 128 " " // keyboard row four m keyboard_key 40 0 192 Z m keyboard_key 41 64 192 X m keyboard_key 42 128 192 C m keyboard_key 43 192 192 V m keyboard_key 44 256 192 B m keyboard_key 45 320 192 N m keyboard_key 46 384 192 M m keyboard_key 47 448 192 , m keyboard_key 48 512 192 - // special erase key bd 49 576 192 3 "rub" 5 9 10 11 xm 49 keyboard_erase // reset origin o 0 0 // draw cursor m keyboard_press // link to next screen m next_button splash_charts #end #define keyboard_button_display f 16B t "`0`" 170 68 #end #define keyboard_key bd `0` `1` `2` 1 "`3`" 22 18 10 11 xa `0` p keyboard_press "`3`" #end #define keyboard_press mpush "`0`" t "`M`_ " 0 114 #end #define keyboard_erase mpop 1 m keyboard_press #end #define splash_charts m clear // clear screen f 32B t "Data visualization charts" 56 0 // 5 levelbars o 86 80 m levelbar_init 0 o 192 80 m levelbar_init 1 o 298 80 m levelbar_init 2 o 404 80 m levelbar_init 3 o 510 80 m levelbar_init 4 // 1 long chart o 20 280 cd 0 0 0 601 99 1 3 1 100 008 2 F00 2 0F0 2 FFF p 2 l 602 0 602 100 l 0 100 602 100 o 0 0 // link to next screen - skip triangles m next_button color_bars m master_flopper #end #define levelbar_init ld `0` 0 0 40 160 0 0 1 888 100 F00 65 FF0 50 0F0 p 2 l 41 0 41 161 l 0 161 41 161 lv `0` 0 #end #define master_flopper // cycle through a prime (to slide on chart) number of relative randoms. // this thing updates REALLY fast so we need to slow it down a little. // 1 w 100 lv 0 `R10:50` lv 1 `R20:60` lv 2 `R20:60` lv 3 `R20:60` lv 4 `R10:50` cv 0 `R10:20` `R40:60` `R80:100` // 2 w 100 lv 0 `R10:50` lv 1 `R40:80` lv 2 `R40:90` lv 3 `R20:80` lv 4 `R10:50` cv 0 `R10:30` `R30:50` `R60:90` // 3 w 100 lv 0 `R20:70` lv 1 `R40:60` lv 2 `R60:100` lv 3 `R20:60` lv 4 `R20:50` cv 0 `R20:40` `R40:60` `R60:80` // 4 w 100 lv 0 `R20:50` lv 1 `R20:60` lv 2 `R60:80` lv 3 `R20:60` lv 4 `R20:50` cv 0 `R20:30` `R30:60` `R70:80` // 5 w 100 lv 0 `R30:50` lv 1 `R20:100` lv 2 `R40:100` lv 3 `R20:100` lv 4 `R30:50` cv 0 `R10:30` `R50:80` `R70:100` // 6 w 100 lv 0 `R40:80` lv 1 `R20:100` lv 2 `R40:100` lv 3 `R20:100` lv 4 `R40:80` cv 0 `R10:30` `R60:90` `R60:100` // 7 w 100 lv 0 `R20:50` lv 1 `R30:60` lv 2 `R60:80` lv 3 `R30:60` lv 4 `R20:50` cv 0 `R10:30` `R30:70` `R60:100` :repeat #end #define splash_drawing m clear f 18BC m center_cursor_horiz 10 ta CT // text align align center top t "Fast colorful drawing primitives!" m next_button splash_info m rand_draw #end #define splash_info m clear xi 8 0 0 s 0 1 // change this to "m next_button demo_end" to exit the demo instead of restarting it m next_button splash m logo_bounce #end #define logo_bounce // to the right and down o 15 0 xi 9 0 0 xi 9 1 2 xi 9 2 4 xi 9 3 6 xi 9 4 8 xi 9 5 10 xi 9 6 12 xi 9 7 14 xi 9 8 16 xi 9 9 18 xi 9 10 20 xi 9 11 22 xi 9 12 24 xi 9 13 26 xi 9 14 28 xi 9 15 30 xi 9 16 32 xi 9 17 34 xi 9 18 36 xi 9 19 38 xi 9 20 40 xi 9 21 42 xi 9 22 44 xi 9 23 46 xi 9 24 48 xi 9 25 50 xi 9 26 52 xi 9 27 54 xi 9 28 56 xi 9 29 58 xi 9 30 60 xi 9 31 62 xi 9 32 64 // to the right and up xi 9 34 64 xi 9 35 62 xi 9 36 60 xi 9 37 58 xi 9 38 56 xi 9 39 54 xi 9 40 52 xi 9 41 50 xi 9 42 48 xi 9 43 46 xi 9 44 44 xi 9 45 42 xi 9 46 40 xi 9 47 38 xi 9 48 36 xi 9 49 34 xi 9 50 32 xi 9 51 30 xi 9 52 28 xi 9 53 26 xi 9 54 24 xi 9 55 22 xi 9 56 20 xi 9 57 18 xi 9 58 16 xi 9 59 14 xi 9 60 12 xi 9 61 10 xi 9 62 8 xi 9 63 6 xi 9 64 4 xi 9 65 2 xi 9 66 0 // to the left and down xi 9 65 2 xi 9 64 4 xi 9 63 6 xi 9 62 8 xi 9 61 10 xi 9 60 12 xi 9 59 14 xi 9 58 16 xi 9 57 18 xi 9 56 20 xi 9 55 22 xi 9 54 24 xi 9 53 26 xi 9 52 28 xi 9 51 30 xi 9 50 32 xi 9 49 34 xi 9 48 36 xi 9 47 38 xi 9 46 40 xi 9 45 42 xi 9 44 44 xi 9 43 46 xi 9 42 48 xi 9 41 50 xi 9 40 52 xi 9 39 54 xi 9 38 56 xi 9 37 58 xi 9 36 60 xi 9 35 62 xi 9 34 64 xi 9 33 66 // to the left and up xi 9 32 64 xi 9 31 62 xi 9 30 60 xi 9 29 58 xi 9 28 56 xi 9 27 54 xi 9 26 52 xi 9 25 50 xi 9 24 48 xi 9 23 46 xi 9 22 44 xi 9 21 42 xi 9 20 40 xi 9 19 38 xi 9 18 36 xi 9 17 34 xi 9 16 32 xi 9 15 30 xi 9 14 28 xi 9 13 26 xi 9 12 24 xi 9 11 22 xi 9 10 20 xi 9 9 18 xi 9 8 16 xi 9 7 14 xi 9 6 12 xi 9 5 10 xi 9 4 8 xi 9 3 6 xi 9 2 4 xi 9 1 2 :repeat #end // to debug the mpush/mpop buffer #define display_memory t "`M`" #end // to debug poweron macros #define pontest beep 100 w 500 :repeat #end // startup calibration option #define optional_calibration s 0 1 z *debug 0 // whole screen is touch area xs 128 0 0 `Xm` `Ym` // if touched, execute macro "tc" xm 128 tc f24B t "Touch screen to calibrate." 20 100 w 1000 t "." w 1000 t "." w 1000 t "." w 1000 xc 128 #end ##---------- manuf_test macros ---------- #define manuf_test xbbs 255 s 0 1 z *debug 0 // // calibrate screen - not optional // whole screen is touch area xs 128 0 0 `Xm` `Ym` // if touched (specifically, on release), execute macro "calibrate_verify" xaq 128 r calibrate_verify f 24BC m center_cursor_horiz 20 ta CT // text align align center top t "Touch screen\nto calibrate\n(not optional)" #end #define calibrate_verify // calibrate screen tc // verify calibration m cal_verify // 'next' button to go to LCD test colors m manuf_test_next_button test_colors #end #define cal_verify // this is a stand-alone macro for manufacturing to use after running the // manuf_test, then power-cycling the module. this is to verify that EEPROM // has been updated properly. // // set color to 'yellow' from Demo's keyboard to highlight screen oddities S 000000 d2c58a z p 1 *debug 1 // to see 'X' at touch location // f 24BC m center_cursor_horiz 10 ta CT // text align align center top t "Touch anywhere\nBoxes beep" // set i8 10 // hotspot min offset from any edge set i9 30 // hotspot max offset from any edge // upper-left set i0 `i8` set i1 `i8` set i2 `i9` set i3 `i9` r `i0` `i1` `i2` `i3` xs 128 `i0` `i1` `i2` `i3` // upper-right set i0 `(`Xm`-`i9`)` set i1 `i8` set i2 `(`Xm`-`i8`)` set i3 `i9` r `i0` `i1` `i2` `i3` xs 129 `i0` `i1` `i2` `i3` // lower-left set i0 `i8` set i1 `(`Ym`-`i9`)` set i2 `i9` set i3 `(`Ym`-`i8`)` r `i0` `i1` `i2` `i3` xs 130 `i0` `i1` `i2` `i3` // lower-right set i0 `(`Xm`-`i9`)` set i1 `(`Ym`-`i9`)` set i2 `(`Xm`-`i8`)` set i3 `(`Ym`-`i8`)` r `i0` `i1` `i2` `i3` xs 131 `i0` `i1` `i2` `i3` // center set i0 `(`Xc`-`i8`)` set i1 `(`Yc`-`i8`)` set i2 `(`Xc`+`i8`)` set i3 `(`Yc`+`i8`)` r `i0` `i1` `i2` `i3` xs 132 `i0` `i1` `i2` `i3` #end // cycle display: black, red, green, blue, white, 'fruit-lady', // then onto next test #define test_colors s 0 1 *debug 0 z set i0 0 // color state xs 128 0 0 `Xm` `Ym` xm 128 test_utils_next_color f 24BC m center_cursor_horiz 10 ta CT // text align align center top t "The next few screens\ncycle colors,\ntouch screen anywhere\nto advance." #end #define test_utils_next_color m test_utils_cycle_colors:c`i0` set i0 `(`i0`+1)` #end // fill screen with specified color by drawing filled rectangle // (so as to not destroy full-screen hotspot) #define test_utils_cycle_colors :c0 // black r 0 0 `Xm` `Ym` 1 000 :c1 // red r 0 0 `Xm` `Ym` 1 F00 :c2 // green r 0 0 `Xm` `Ym` 1 0F0 :c3 // blue r 0 0 `Xm` `Ym` 1 00F :c4 // white r 0 0 `Xm` `Ym` 1 FFF :c5 // "fruit lady" xi 28 0 0 xm 128 beeper_backlight // remap hotspot to next test :default *debug 0 // just something to do if we do get here... #end // beeper and backlight control test #define beeper_backlight z *debounce 10 // fast response for sliders f 24BC m center_cursor_horiz 20 ta CT // text align align center top t "Beeper/Backlight Test" // // draw sliders and associated text m beeper_backlight_sliders_text:s`Xm`x`Ym` // // set beeper to max sv 128 255 // when beeper slider is released, make a beep xaq 128 r manuf_test_slider128_update // // set backlight to max sv 129 255 // implement setting m slider129_update // when backlight slider is touched, use it to change brightness xm 129 slider129_update // // link to next screen m manuf_test_next_button manuf_test_panel_pattern #end #define beeper_backlight_sliders_text // //////////////////// // VGA :s639x479 f 16 // display left slider - beeper control sl 128 21 100 150 22 5 0 1 1 255 10 t "Move\nand\nrelease\nto\nchange\nbeeper\nvolume" 200 150 // // display right slider - backlight control sl 129 21 459 150 22 5 0 1 1 255 10 t "Move\nto\nchange\npanel\nbacklight" 360 170 //////////////////// // WVGA :s799x479 f 16 // display left slider - beeper control sl 128 21 100 150 22 5 0 1 1 255 10 t "Move\nand\nrelease\nto\nchange\nbeeper\nvolume" 200 150 // // display right slider - backlight control sl 129 21 619 150 22 5 0 1 1 255 10 t "Move\nto\nchange\npanel\nbacklight" 520 170 //////////////////// // SVGA :s799x599 f 16 // display left slider - beeper control sl 128 21 100 150 22 5 0 1 1 255 10 t "Move\nand\nrelease\nto\nchange\nbeeper\nvolume" 200 150 // // display right slider - backlight control sl 129 21 619 150 22 5 0 1 1 255 10 t "Move\nto\nchange\npanel\nbacklight" 520 170 //////////////////// :default t "Unknown screen width!" //////////////////// #end #define manuf_test_panel_pattern xbbs 255 // restore full-brightness z f 24BC m center_cursor_horiz 20 ta CT t "Panel Alignment\nPattern" f 18BC m center_cursor_horiz `Yc` ta CB t "Make sure that lines meet\nat panel corners.\n\nTouch screen to continue." p 1 // big X l 0 0 `Xm` `Ym` l `Xm` 0 0 `Ym` // ^ set i0 `(`Xm`/2)` set i1 `(`Ym`/2)` l 0 `i1` `i0` 0 l `i0` 0 `Xm` `i1` // v l 0 `i1` `i0` `Ym` l `i0` `Ym` `Xm` `i1` // whole screen is touch area xs 128 0 0 `Xm` `Ym` xm 128 lcd_orientation #end // This macro demonstrates the use of the *orient command. #define lcd_orientation *debug 0 z set i0 0 // orient state (assumes default is '*orient 0') xs 128 0 0 `Xm` `Ym` xm 128 test_utils_next_orient f 24BC m center_cursor_horiz 10 ta CT // text align align center top t "Touch screen anywhere\nto change orientation\n(if LCD supports)" m test_utils_do_orient #end #define test_utils_next_orient m test_utils_cycle_orient:o`i0` #end // fill screen with specified color by drawing filled rectangle // (so as to not destroy full-screen hotspot) #define test_utils_cycle_orient :o0 set i0 1 m test_utils_do_orient :o1 set i0 2 m test_utils_do_orient :o2 set i0 3 m test_utils_do_orient :o3 set i0 0 m test_utils_do_orient //xd all (doesn't work prior to FW version 1.4.18) xd 128 m manuf_test_next_button done // similar button as "Next", lower-left, //// '86' is screen width - Next's 'X' - button width = 799-594-120 //bdc 2 86 404 1 "Again" 1 2 set i0 `(`Xc`/2)` // 1/4 screen - bitmap width set i0 `(`i0`-72)` set i1 `(`Ym`-82)` // subtract (height of bitmap plus 10 pixels offset) bdc 2 `i0` `i1` 1 "Again" 1 2 xm 2 lcd_orientation :default *debug 0 // just something to do if we do get here... #end // display *orient message in center of screen, issue *orient command #define test_utils_do_orient f 24BC m center_cursor_horiz `Yc` ta CT // text align align center top t "*orient `i0`" *orient `i0` #end #define done s 0 1 z f 24BC // center cursor in screen sc `Xc` `Yc` set i0 `(`Yc`-60)` sc `Xc` `i0` ta CC // text align center/center t "Done" // center cursor under "Done" message set i0 `(`Yc`+40)` sc `Xc` `i0` ta CC // text align center/center t "Power-cycle,\nthen use \"m cal_verify\"\nto verify calibration" #end #define manuf_test_slider128_update bvs `L128` beep 100 #end #define manuf_test_next_button // button bitmap is 60x36 f 16B set i0 `(`Xc`-60)` // subtract half of bitmap width set i1 `(`Ym`-82)` // subtract (height of bitmap plus 10 pixels offset) bdc 1 `i0` `i1` 1 "Next" 1 2 xm 1 `0` #end ##---------- End of manuf_test macros ---------- // calibrate then run demo #define tc tc m clear m splash #end #define splash_fixed_fonts m clear // clear screen f m24B t "Fixed Width Fonts Include:" 30 5 sc 0 0 o 40 50 f m8 t "8 point: the quick brown fox 0123456789 " f m8B t "8 point bold: over the lazy dog 0123456789" t "\n" f m10 t "10 point: the quick fox 0123456789 " f m10B t "10 pt bold: over 0123456789" t "\n" f m12 t "12 pt: the quick brown fox jumped over the lazy dog 0123456789" t "\n" f m12B t "12 pt bold: quick brown fox jumped lazy dog 0123456789" t "\n" f m16 t "16 pt: the quick brown fox jumped over the lazy dog 0123456789" t "\n" f m16B t "16 pt bold: quick brown fox jumped lazy dog 0123456789" t "\n" //f m20 //t "20 pt: the quick brown fox jumped over the lazy dog 0123456789" //t "\n" //f m20B //t "20 pt bold: quick brown fox jumped lazy dog 0123456789" //t "\n" f m24 t "24 pt: the quick brown fox jumped over the lazy dog 0123456789" t "\n" f m24B t "24 pt bold: quick brown fox jumped lazy dog 0123456789" t "\n" f m32 t "32 pt: the quick brown fox jumped over the lazy dog 0123456789" t "\n" f m32B t "32 pt bold: quick brown fox jumped lazy dog 0123456789" t "\n" f m48 t "48 pt / " f m64 t "64" m next_button splash_keyboard #end // run demo without calibrate #define demo_nocalib m clear m splash #end #define color_bars m clear // clear screen f m16B t "G\nR\nA\nD\nI\nE\nN\nT\nS" 600 50 s 0 1 m next_button demo_meter1 r 0 0 2 159 1 000000 r 0 160 2 319 1 000000 r 0 320 2 479 1 000000 r 2 0 4 159 1 010000 r 2 160 4 319 1 000100 r 2 320 4 479 1 000001 r 4 0 6 159 1 020000 r 4 160 6 319 1 000200 r 4 320 6 479 1 000002 r 6 0 8 159 1 030000 r 6 160 8 319 1 000300 r 6 320 8 479 1 000003 r 8 0 10 159 1 040000 r 8 160 10 319 1 000400 r 8 320 10 479 1 000004 r 10 0 12 159 1 050000 r 10 160 12 319 1 000500 r 10 320 12 479 1 000005 r 12 0 14 159 1 060000 r 12 160 14 319 1 000600 r 12 320 14 479 1 000006 r 14 0 16 159 1 070000 r 14 160 16 319 1 000700 r 14 320 16 479 1 000007 r 16 0 18 159 1 080000 r 16 160 18 319 1 000800 r 16 320 18 479 1 000008 r 18 0 20 159 1 090000 r 18 160 20 319 1 000900 r 18 320 20 479 1 000009 r 20 0 22 159 1 0a0000 r 20 160 22 319 1 000a00 r 20 320 22 479 1 00000a r 22 0 24 159 1 0b0000 r 22 160 24 319 1 000b00 r 22 320 24 479 1 00000b r 24 0 26 159 1 0c0000 r 24 160 26 319 1 000c00 r 24 320 26 479 1 00000c r 26 0 28 159 1 0d0000 r 26 160 28 319 1 000d00 r 26 320 28 479 1 00000d r 28 0 30 159 1 0e0000 r 28 160 30 319 1 000e00 r 28 320 30 479 1 00000e r 30 0 32 159 1 0f0000 r 30 160 32 319 1 000f00 r 30 320 32 479 1 00000f r 32 0 34 159 1 100000 r 32 160 34 319 1 001000 r 32 320 34 479 1 000010 r 34 0 36 159 1 110000 r 34 160 36 319 1 001100 r 34 320 36 479 1 000011 r 36 0 38 159 1 120000 r 36 160 38 319 1 001200 r 36 320 38 479 1 000012 r 38 0 40 159 1 130000 r 38 160 40 319 1 001300 r 38 320 40 479 1 000013 r 40 0 42 159 1 140000 r 40 160 42 319 1 001400 r 40 320 42 479 1 000014 r 42 0 44 159 1 150000 r 42 160 44 319 1 001500 r 42 320 44 479 1 000015 r 44 0 46 159 1 160000 r 44 160 46 319 1 001600 r 44 320 46 479 1 000016 r 46 0 48 159 1 170000 r 46 160 48 319 1 001700 r 46 320 48 479 1 000017 r 48 0 50 159 1 180000 r 48 160 50 319 1 001800 r 48 320 50 479 1 000018 r 50 0 52 159 1 190000 r 50 160 52 319 1 001900 r 50 320 52 479 1 000019 r 52 0 54 159 1 1a0000 r 52 160 54 319 1 001a00 r 52 320 54 479 1 00001a r 54 0 56 159 1 1b0000 r 54 160 56 319 1 001b00 r 54 320 56 479 1 00001b r 56 0 58 159 1 1c0000 r 56 160 58 319 1 001c00 r 56 320 58 479 1 00001c r 58 0 60 159 1 1d0000 r 58 160 60 319 1 001d00 r 58 320 60 479 1 00001d r 60 0 62 159 1 1e0000 r 60 160 62 319 1 001e00 r 60 320 62 479 1 00001e r 62 0 64 159 1 1f0000 r 62 160 64 319 1 001f00 r 62 320 64 479 1 00001f r 64 0 66 159 1 200000 r 64 160 66 319 1 002000 r 64 320 66 479 1 000020 r 66 0 68 159 1 210000 r 66 160 68 319 1 002100 r 66 320 68 479 1 000021 r 68 0 70 159 1 220000 r 68 160 70 319 1 002200 r 68 320 70 479 1 000022 r 70 0 72 159 1 230000 r 70 160 72 319 1 002300 r 70 320 72 479 1 000023 r 72 0 74 159 1 240000 r 72 160 74 319 1 002400 r 72 320 74 479 1 000024 r 74 0 76 159 1 250000 r 74 160 76 319 1 002500 r 74 320 76 479 1 000025 r 76 0 78 159 1 260000 r 76 160 78 319 1 002600 r 76 320 78 479 1 000026 r 78 0 80 159 1 270000 r 78 160 80 319 1 002700 r 78 320 80 479 1 000027 r 80 0 82 159 1 280000 r 80 160 82 319 1 002800 r 80 320 82 479 1 000028 r 82 0 84 159 1 290000 r 82 160 84 319 1 002900 r 82 320 84 479 1 000029 r 84 0 86 159 1 2a0000 r 84 160 86 319 1 002a00 r 84 320 86 479 1 00002a r 86 0 88 159 1 2b0000 r 86 160 88 319 1 002b00 r 86 320 88 479 1 00002b r 88 0 90 159 1 2c0000 r 88 160 90 319 1 002c00 r 88 320 90 479 1 00002c r 90 0 92 159 1 2d0000 r 90 160 92 319 1 002d00 r 90 320 92 479 1 00002d r 92 0 94 159 1 2e0000 r 92 160 94 319 1 002e00 r 92 320 94 479 1 00002e r 94 0 96 159 1 2f0000 r 94 160 96 319 1 002f00 r 94 320 96 479 1 00002f r 96 0 98 159 1 300000 r 96 160 98 319 1 003000 r 96 320 98 479 1 000030 r 98 0 100 159 1 310000 r 98 160 100 319 1 003100 r 98 320 100 479 1 000031 r 100 0 102 159 1 320000 r 100 160 102 319 1 003200 r 100 320 102 479 1 000032 r 102 0 104 159 1 330000 r 102 160 104 319 1 003300 r 102 320 104 479 1 000033 r 104 0 106 159 1 340000 r 104 160 106 319 1 003400 r 104 320 106 479 1 000034 r 106 0 108 159 1 350000 r 106 160 108 319 1 003500 r 106 320 108 479 1 000035 r 108 0 110 159 1 360000 r 108 160 110 319 1 003600 r 108 320 110 479 1 000036 r 110 0 112 159 1 370000 r 110 160 112 319 1 003700 r 110 320 112 479 1 000037 r 112 0 114 159 1 380000 r 112 160 114 319 1 003800 r 112 320 114 479 1 000038 r 114 0 116 159 1 390000 r 114 160 116 319 1 003900 r 114 320 116 479 1 000039 r 116 0 118 159 1 3a0000 r 116 160 118 319 1 003a00 r 116 320 118 479 1 00003a r 118 0 120 159 1 3b0000 r 118 160 120 319 1 003b00 r 118 320 120 479 1 00003b r 120 0 122 159 1 3c0000 r 120 160 122 319 1 003c00 r 120 320 122 479 1 00003c r 122 0 124 159 1 3d0000 r 122 160 124 319 1 003d00 r 122 320 124 479 1 00003d r 124 0 126 159 1 3e0000 r 124 160 126 319 1 003e00 r 124 320 126 479 1 00003e r 126 0 128 159 1 3f0000 r 126 160 128 319 1 003f00 r 126 320 128 479 1 00003f r 128 0 130 159 1 400000 r 128 160 130 319 1 004000 r 128 320 130 479 1 000040 r 130 0 132 159 1 410000 r 130 160 132 319 1 004100 r 130 320 132 479 1 000041 r 132 0 134 159 1 420000 r 132 160 134 319 1 004200 r 132 320 134 479 1 000042 r 134 0 136 159 1 430000 r 134 160 136 319 1 004300 r 134 320 136 479 1 000043 r 136 0 138 159 1 440000 r 136 160 138 319 1 004400 r 136 320 138 479 1 000044 r 138 0 140 159 1 450000 r 138 160 140 319 1 004500 r 138 320 140 479 1 000045 r 140 0 142 159 1 460000 r 140 160 142 319 1 004600 r 140 320 142 479 1 000046 r 142 0 144 159 1 470000 r 142 160 144 319 1 004700 r 142 320 144 479 1 000047 r 144 0 146 159 1 480000 r 144 160 146 319 1 004800 r 144 320 146 479 1 000048 r 146 0 148 159 1 490000 r 146 160 148 319 1 004900 r 146 320 148 479 1 000049 r 148 0 150 159 1 4a0000 r 148 160 150 319 1 004a00 r 148 320 150 479 1 00004a r 150 0 152 159 1 4b0000 r 150 160 152 319 1 004b00 r 150 320 152 479 1 00004b r 152 0 154 159 1 4c0000 r 152 160 154 319 1 004c00 r 152 320 154 479 1 00004c r 154 0 156 159 1 4d0000 r 154 160 156 319 1 004d00 r 154 320 156 479 1 00004d r 156 0 158 159 1 4e0000 r 156 160 158 319 1 004e00 r 156 320 158 479 1 00004e r 158 0 160 159 1 4f0000 r 158 160 160 319 1 004f00 r 158 320 160 479 1 00004f r 160 0 162 159 1 500000 r 160 160 162 319 1 005000 r 160 320 162 479 1 000050 r 162 0 164 159 1 510000 r 162 160 164 319 1 005100 r 162 320 164 479 1 000051 r 164 0 166 159 1 520000 r 164 160 166 319 1 005200 r 164 320 166 479 1 000052 r 166 0 168 159 1 530000 r 166 160 168 319 1 005300 r 166 320 168 479 1 000053 r 168 0 170 159 1 540000 r 168 160 170 319 1 005400 r 168 320 170 479 1 000054 r 170 0 172 159 1 550000 r 170 160 172 319 1 005500 r 170 320 172 479 1 000055 r 172 0 174 159 1 560000 r 172 160 174 319 1 005600 r 172 320 174 479 1 000056 r 174 0 176 159 1 570000 r 174 160 176 319 1 005700 r 174 320 176 479 1 000057 r 176 0 178 159 1 580000 r 176 160 178 319 1 005800 r 176 320 178 479 1 000058 r 178 0 180 159 1 590000 r 178 160 180 319 1 005900 r 178 320 180 479 1 000059 r 180 0 182 159 1 5a0000 r 180 160 182 319 1 005a00 r 180 320 182 479 1 00005a r 182 0 184 159 1 5b0000 r 182 160 184 319 1 005b00 r 182 320 184 479 1 00005b r 184 0 186 159 1 5c0000 r 184 160 186 319 1 005c00 r 184 320 186 479 1 00005c r 186 0 188 159 1 5d0000 r 186 160 188 319 1 005d00 r 186 320 188 479 1 00005d r 188 0 190 159 1 5e0000 r 188 160 190 319 1 005e00 r 188 320 190 479 1 00005e r 190 0 192 159 1 5f0000 r 190 160 192 319 1 005f00 r 190 320 192 479 1 00005f r 192 0 194 159 1 600000 r 192 160 194 319 1 006000 r 192 320 194 479 1 000060 r 194 0 196 159 1 610000 r 194 160 196 319 1 006100 r 194 320 196 479 1 000061 r 196 0 198 159 1 620000 r 196 160 198 319 1 006200 r 196 320 198 479 1 000062 r 198 0 200 159 1 630000 r 198 160 200 319 1 006300 r 198 320 200 479 1 000063 r 200 0 202 159 1 640000 r 200 160 202 319 1 006400 r 200 320 202 479 1 000064 r 202 0 204 159 1 650000 r 202 160 204 319 1 006500 r 202 320 204 479 1 000065 r 204 0 206 159 1 660000 r 204 160 206 319 1 006600 r 204 320 206 479 1 000066 r 206 0 208 159 1 670000 r 206 160 208 319 1 006700 r 206 320 208 479 1 000067 r 208 0 210 159 1 680000 r 208 160 210 319 1 006800 r 208 320 210 479 1 000068 r 210 0 212 159 1 690000 r 210 160 212 319 1 006900 r 210 320 212 479 1 000069 r 212 0 214 159 1 6a0000 r 212 160 214 319 1 006a00 r 212 320 214 479 1 00006a r 214 0 216 159 1 6b0000 r 214 160 216 319 1 006b00 r 214 320 216 479 1 00006b r 216 0 218 159 1 6c0000 r 216 160 218 319 1 006c00 r 216 320 218 479 1 00006c r 218 0 220 159 1 6d0000 r 218 160 220 319 1 006d00 r 218 320 220 479 1 00006d r 220 0 222 159 1 6e0000 r 220 160 222 319 1 006e00 r 220 320 222 479 1 00006e r 222 0 224 159 1 6f0000 r 222 160 224 319 1 006f00 r 222 320 224 479 1 00006f r 224 0 226 159 1 700000 r 224 160 226 319 1 007000 r 224 320 226 479 1 000070 r 226 0 228 159 1 710000 r 226 160 228 319 1 007100 r 226 320 228 479 1 000071 r 228 0 230 159 1 720000 r 228 160 230 319 1 007200 r 228 320 230 479 1 000072 r 230 0 232 159 1 730000 r 230 160 232 319 1 007300 r 230 320 232 479 1 000073 r 232 0 234 159 1 740000 r 232 160 234 319 1 007400 r 232 320 234 479 1 000074 r 234 0 236 159 1 750000 r 234 160 236 319 1 007500 r 234 320 236 479 1 000075 r 236 0 238 159 1 760000 r 236 160 238 319 1 007600 r 236 320 238 479 1 000076 r 238 0 240 159 1 770000 r 238 160 240 319 1 007700 r 238 320 240 479 1 000077 r 240 0 242 159 1 780000 r 240 160 242 319 1 007800 r 240 320 242 479 1 000078 r 242 0 244 159 1 790000 r 242 160 244 319 1 007900 r 242 320 244 479 1 000079 r 244 0 246 159 1 7a0000 r 244 160 246 319 1 007a00 r 244 320 246 479 1 00007a r 246 0 248 159 1 7b0000 r 246 160 248 319 1 007b00 r 246 320 248 479 1 00007b r 248 0 250 159 1 7c0000 r 248 160 250 319 1 007c00 r 248 320 250 479 1 00007c r 250 0 252 159 1 7d0000 r 250 160 252 319 1 007d00 r 250 320 252 479 1 00007d r 252 0 254 159 1 7e0000 r 252 160 254 319 1 007e00 r 252 320 254 479 1 00007e r 254 0 256 159 1 7f0000 r 254 160 256 319 1 007f00 r 254 320 256 479 1 00007f r 256 0 258 159 1 800000 r 256 160 258 319 1 008000 r 256 320 258 479 1 000080 r 258 0 260 159 1 810000 r 258 160 260 319 1 008100 r 258 320 260 479 1 000081 r 260 0 262 159 1 820000 r 260 160 262 319 1 008200 r 260 320 262 479 1 000082 r 262 0 264 159 1 830000 r 262 160 264 319 1 008300 r 262 320 264 479 1 000083 r 264 0 266 159 1 840000 r 264 160 266 319 1 008400 r 264 320 266 479 1 000084 r 266 0 268 159 1 850000 r 266 160 268 319 1 008500 r 266 320 268 479 1 000085 r 268 0 270 159 1 860000 r 268 160 270 319 1 008600 r 268 320 270 479 1 000086 r 270 0 272 159 1 870000 r 270 160 272 319 1 008700 r 270 320 272 479 1 000087 r 272 0 274 159 1 880000 r 272 160 274 319 1 008800 r 272 320 274 479 1 000088 r 274 0 276 159 1 890000 r 274 160 276 319 1 008900 r 274 320 276 479 1 000089 r 276 0 278 159 1 8a0000 r 276 160 278 319 1 008a00 r 276 320 278 479 1 00008a r 278 0 280 159 1 8b0000 r 278 160 280 319 1 008b00 r 278 320 280 479 1 00008b r 280 0 282 159 1 8c0000 r 280 160 282 319 1 008c00 r 280 320 282 479 1 00008c r 282 0 284 159 1 8d0000 r 282 160 284 319 1 008d00 r 282 320 284 479 1 00008d r 284 0 286 159 1 8e0000 r 284 160 286 319 1 008e00 r 284 320 286 479 1 00008e r 286 0 288 159 1 8f0000 r 286 160 288 319 1 008f00 r 286 320 288 479 1 00008f r 288 0 290 159 1 900000 r 288 160 290 319 1 009000 r 288 320 290 479 1 000090 r 290 0 292 159 1 910000 r 290 160 292 319 1 009100 r 290 320 292 479 1 000091 r 292 0 294 159 1 920000 r 292 160 294 319 1 009200 r 292 320 294 479 1 000092 r 294 0 296 159 1 930000 r 294 160 296 319 1 009300 r 294 320 296 479 1 000093 r 296 0 298 159 1 940000 r 296 160 298 319 1 009400 r 296 320 298 479 1 000094 r 298 0 300 159 1 950000 r 298 160 300 319 1 009500 r 298 320 300 479 1 000095 r 300 0 302 159 1 960000 r 300 160 302 319 1 009600 r 300 320 302 479 1 000096 r 302 0 304 159 1 970000 r 302 160 304 319 1 009700 r 302 320 304 479 1 000097 r 304 0 306 159 1 980000 r 304 160 306 319 1 009800 r 304 320 306 479 1 000098 r 306 0 308 159 1 990000 r 306 160 308 319 1 009900 r 306 320 308 479 1 000099 r 308 0 310 159 1 9a0000 r 308 160 310 319 1 009a00 r 308 320 310 479 1 00009a r 310 0 312 159 1 9b0000 r 310 160 312 319 1 009b00 r 310 320 312 479 1 00009b r 312 0 314 159 1 9c0000 r 312 160 314 319 1 009c00 r 312 320 314 479 1 00009c r 314 0 316 159 1 9d0000 r 314 160 316 319 1 009d00 r 314 320 316 479 1 00009d r 316 0 318 159 1 9e0000 r 316 160 318 319 1 009e00 r 316 320 318 479 1 00009e r 318 0 320 159 1 9f0000 r 318 160 320 319 1 009f00 r 318 320 320 479 1 00009f r 320 0 322 159 1 a00000 r 320 160 322 319 1 00a000 r 320 320 322 479 1 0000a0 r 322 0 324 159 1 a10000 r 322 160 324 319 1 00a100 r 322 320 324 479 1 0000a1 r 324 0 326 159 1 a20000 r 324 160 326 319 1 00a200 r 324 320 326 479 1 0000a2 r 326 0 328 159 1 a30000 r 326 160 328 319 1 00a300 r 326 320 328 479 1 0000a3 r 328 0 330 159 1 a40000 r 328 160 330 319 1 00a400 r 328 320 330 479 1 0000a4 r 330 0 332 159 1 a50000 r 330 160 332 319 1 00a500 r 330 320 332 479 1 0000a5 r 332 0 334 159 1 a60000 r 332 160 334 319 1 00a600 r 332 320 334 479 1 0000a6 r 334 0 336 159 1 a70000 r 334 160 336 319 1 00a700 r 334 320 336 479 1 0000a7 r 336 0 338 159 1 a80000 r 336 160 338 319 1 00a800 r 336 320 338 479 1 0000a8 r 338 0 340 159 1 a90000 r 338 160 340 319 1 00a900 r 338 320 340 479 1 0000a9 r 340 0 342 159 1 aa0000 r 340 160 342 319 1 00aa00 r 340 320 342 479 1 0000aa r 342 0 344 159 1 ab0000 r 342 160 344 319 1 00ab00 r 342 320 344 479 1 0000ab r 344 0 346 159 1 ac0000 r 344 160 346 319 1 00ac00 r 344 320 346 479 1 0000ac r 346 0 348 159 1 ad0000 r 346 160 348 319 1 00ad00 r 346 320 348 479 1 0000ad r 348 0 350 159 1 ae0000 r 348 160 350 319 1 00ae00 r 348 320 350 479 1 0000ae r 350 0 352 159 1 af0000 r 350 160 352 319 1 00af00 r 350 320 352 479 1 0000af r 352 0 354 159 1 b00000 r 352 160 354 319 1 00b000 r 352 320 354 479 1 0000b0 r 354 0 356 159 1 b10000 r 354 160 356 319 1 00b100 r 354 320 356 479 1 0000b1 r 356 0 358 159 1 b20000 r 356 160 358 319 1 00b200 r 356 320 358 479 1 0000b2 r 358 0 360 159 1 b30000 r 358 160 360 319 1 00b300 r 358 320 360 479 1 0000b3 r 360 0 362 159 1 b40000 r 360 160 362 319 1 00b400 r 360 320 362 479 1 0000b4 r 362 0 364 159 1 b50000 r 362 160 364 319 1 00b500 r 362 320 364 479 1 0000b5 r 364 0 366 159 1 b60000 r 364 160 366 319 1 00b600 r 364 320 366 479 1 0000b6 r 366 0 368 159 1 b70000 r 366 160 368 319 1 00b700 r 366 320 368 479 1 0000b7 r 368 0 370 159 1 b80000 r 368 160 370 319 1 00b800 r 368 320 370 479 1 0000b8 r 370 0 372 159 1 b90000 r 370 160 372 319 1 00b900 r 370 320 372 479 1 0000b9 r 372 0 374 159 1 ba0000 r 372 160 374 319 1 00ba00 r 372 320 374 479 1 0000ba r 374 0 376 159 1 bb0000 r 374 160 376 319 1 00bb00 r 374 320 376 479 1 0000bb r 376 0 378 159 1 bc0000 r 376 160 378 319 1 00bc00 r 376 320 378 479 1 0000bc r 378 0 380 159 1 bd0000 r 378 160 380 319 1 00bd00 r 378 320 380 479 1 0000bd r 380 0 382 159 1 be0000 r 380 160 382 319 1 00be00 r 380 320 382 479 1 0000be r 382 0 384 159 1 bf0000 r 382 160 384 319 1 00bf00 r 382 320 384 479 1 0000bf r 384 0 386 159 1 c00000 r 384 160 386 319 1 00c000 r 384 320 386 479 1 0000c0 r 386 0 388 159 1 c10000 r 386 160 388 319 1 00c100 r 386 320 388 479 1 0000c1 r 388 0 390 159 1 c20000 r 388 160 390 319 1 00c200 r 388 320 390 479 1 0000c2 r 390 0 392 159 1 c30000 r 390 160 392 319 1 00c300 r 390 320 392 479 1 0000c3 r 392 0 394 159 1 c40000 r 392 160 394 319 1 00c400 r 392 320 394 479 1 0000c4 r 394 0 396 159 1 c50000 r 394 160 396 319 1 00c500 r 394 320 396 479 1 0000c5 r 396 0 398 159 1 c60000 r 396 160 398 319 1 00c600 r 396 320 398 479 1 0000c6 r 398 0 400 159 1 c70000 r 398 160 400 319 1 00c700 r 398 320 400 479 1 0000c7 r 400 0 402 159 1 c80000 r 400 160 402 319 1 00c800 r 400 320 402 479 1 0000c8 r 402 0 404 159 1 c90000 r 402 160 404 319 1 00c900 r 402 320 404 479 1 0000c9 r 404 0 406 159 1 ca0000 r 404 160 406 319 1 00ca00 r 404 320 406 479 1 0000ca r 406 0 408 159 1 cb0000 r 406 160 408 319 1 00cb00 r 406 320 408 479 1 0000cb r 408 0 410 159 1 cc0000 r 408 160 410 319 1 00cc00 r 408 320 410 479 1 0000cc r 410 0 412 159 1 cd0000 r 410 160 412 319 1 00cd00 r 410 320 412 479 1 0000cd r 412 0 414 159 1 ce0000 r 412 160 414 319 1 00ce00 r 412 320 414 479 1 0000ce r 414 0 416 159 1 cf0000 r 414 160 416 319 1 00cf00 r 414 320 416 479 1 0000cf r 416 0 418 159 1 d00000 r 416 160 418 319 1 00d000 r 416 320 418 479 1 0000d0 r 418 0 420 159 1 d10000 r 418 160 420 319 1 00d100 r 418 320 420 479 1 0000d1 r 420 0 422 159 1 d20000 r 420 160 422 319 1 00d200 r 420 320 422 479 1 0000d2 r 422 0 424 159 1 d30000 r 422 160 424 319 1 00d300 r 422 320 424 479 1 0000d3 r 424 0 426 159 1 d40000 r 424 160 426 319 1 00d400 r 424 320 426 479 1 0000d4 r 426 0 428 159 1 d50000 r 426 160 428 319 1 00d500 r 426 320 428 479 1 0000d5 r 428 0 430 159 1 d60000 r 428 160 430 319 1 00d600 r 428 320 430 479 1 0000d6 r 430 0 432 159 1 d70000 r 430 160 432 319 1 00d700 r 430 320 432 479 1 0000d7 r 432 0 434 159 1 d80000 r 432 160 434 319 1 00d800 r 432 320 434 479 1 0000d8 r 434 0 436 159 1 d90000 r 434 160 436 319 1 00d900 r 434 320 436 479 1 0000d9 r 436 0 438 159 1 da0000 r 436 160 438 319 1 00da00 r 436 320 438 479 1 0000da r 438 0 440 159 1 db0000 r 438 160 440 319 1 00db00 r 438 320 440 479 1 0000db r 440 0 442 159 1 dc0000 r 440 160 442 319 1 00dc00 r 440 320 442 479 1 0000dc r 442 0 444 159 1 dd0000 r 442 160 444 319 1 00dd00 r 442 320 444 479 1 0000dd r 444 0 446 159 1 de0000 r 444 160 446 319 1 00de00 r 444 320 446 479 1 0000de r 446 0 448 159 1 df0000 r 446 160 448 319 1 00df00 r 446 320 448 479 1 0000df r 448 0 450 159 1 e00000 r 448 160 450 319 1 00e000 r 448 320 450 479 1 0000e0 r 450 0 452 159 1 e10000 r 450 160 452 319 1 00e100 r 450 320 452 479 1 0000e1 r 452 0 454 159 1 e20000 r 452 160 454 319 1 00e200 r 452 320 454 479 1 0000e2 r 454 0 456 159 1 e30000 r 454 160 456 319 1 00e300 r 454 320 456 479 1 0000e3 r 456 0 458 159 1 e40000 r 456 160 458 319 1 00e400 r 456 320 458 479 1 0000e4 r 458 0 460 159 1 e50000 r 458 160 460 319 1 00e500 r 458 320 460 479 1 0000e5 r 460 0 462 159 1 e60000 r 460 160 462 319 1 00e600 r 460 320 462 479 1 0000e6 r 462 0 464 159 1 e70000 r 462 160 464 319 1 00e700 r 462 320 464 479 1 0000e7 r 464 0 466 159 1 e80000 r 464 160 466 319 1 00e800 r 464 320 466 479 1 0000e8 r 466 0 468 159 1 e90000 r 466 160 468 319 1 00e900 r 466 320 468 479 1 0000e9 r 468 0 470 159 1 ea0000 r 468 160 470 319 1 00ea00 r 468 320 470 479 1 0000ea r 470 0 472 159 1 eb0000 r 470 160 472 319 1 00eb00 r 470 320 472 479 1 0000eb r 472 0 474 159 1 ec0000 r 472 160 474 319 1 00ec00 r 472 320 474 479 1 0000ec r 474 0 476 159 1 ed0000 r 474 160 476 319 1 00ed00 r 474 320 476 479 1 0000ed r 476 0 478 159 1 ee0000 r 476 160 478 319 1 00ee00 r 476 320 478 479 1 0000ee r 478 0 480 159 1 ef0000 r 478 160 480 319 1 00ef00 r 478 320 480 479 1 0000ef r 480 0 482 159 1 f00000 r 480 160 482 319 1 00f000 r 480 320 482 479 1 0000f0 r 482 0 484 159 1 f10000 r 482 160 484 319 1 00f100 r 482 320 484 479 1 0000f1 r 484 0 486 159 1 f20000 r 484 160 486 319 1 00f200 r 484 320 486 479 1 0000f2 r 486 0 488 159 1 f30000 r 486 160 488 319 1 00f300 r 486 320 488 479 1 0000f3 r 488 0 490 159 1 f40000 r 488 160 490 319 1 00f400 r 488 320 490 479 1 0000f4 r 490 0 492 159 1 f50000 r 490 160 492 319 1 00f500 r 490 320 492 479 1 0000f5 r 492 0 494 159 1 f60000 r 492 160 494 319 1 00f600 r 492 320 494 479 1 0000f6 r 494 0 496 159 1 f70000 r 494 160 496 319 1 00f700 r 494 320 496 479 1 0000f7 r 496 0 498 159 1 f80000 r 496 160 498 319 1 00f800 r 496 320 498 479 1 0000f8 r 498 0 500 159 1 f90000 r 498 160 500 319 1 00f900 r 498 320 500 479 1 0000f9 r 500 0 502 159 1 fa0000 r 500 160 502 319 1 00fa00 r 500 320 502 479 1 0000fa r 502 0 504 159 1 fb0000 r 502 160 504 319 1 00fb00 r 502 320 504 479 1 0000fb r 504 0 506 159 1 fc0000 r 504 160 506 319 1 00fc00 r 504 320 506 479 1 0000fc r 506 0 508 159 1 fd0000 r 506 160 508 319 1 00fd00 r 506 320 508 479 1 0000fd r 508 0 510 159 1 fe0000 r 508 160 510 319 1 00fe00 r 508 320 510 479 1 0000fe r 510 0 512 159 1 ff0000 r 510 160 512 319 1 00ff00 r 510 320 512 479 1 0000ff #end // demo meter 1 #define demo_meter1 //Reversed colors m clear // clear screen s 1 0 z f 24BC m center_cursor_horiz 10 ta CT // text align align center top t "Gauges Meter Demo" m next_button_black demo_slider //Display and move meter m create_meter1 m meters_move #end #define create_meter1 S FF0000 FFFFFF // red needle // md .. needle polygon points ... //SPEED md 0 15 70 60 1 10 150 10 58 234 159 157 5 15 -5 15 0 150 //RPM md 1 16 360 120 1 0 35 0 58 225 114 114 5 10 -5 10 0 100 #end #define meters_move m move_meter_slow 0 10 m move_meter_slow 1 1 m move_meter_slow 1 3 m move_meter_slow 1 5 m move_meter_slow 0 11 m move_meter_slow 0 12 m move_meter_slow 1 4 m move_meter_slow 0 13 m move_meter_slow 0 14 m move_meter_slow 0 15 m move_meter_slow 0 16 m move_meter_slow 0 17 m move_meter_slow 0 18 m move_meter_slow 0 19 m move_meter_slow 0 20 m move_meter_slow 1 7 m move_meter_slow 1 9 m move_meter_slow 1 11 m move_meter_slow 1 15 m move_meter_slow 0 21 m move_meter_slow 0 22 m move_meter_slow 1 14 m move_meter_slow 1 10 m move_meter_slow 0 23 m move_meter_slow 0 24 m move_meter_slow 0 25 m move_meter_slow 0 26 m move_meter_slow 0 27 m move_meter_slow 0 28 m move_meter_slow 0 29 m move_meter_slow 0 30 m move_meter_slow 0 31 m move_meter_slow 0 32 m move_meter_slow 0 33 m move_meter_slow 0 34 m move_meter_slow 0 35 m move_meter_slow 0 36 m move_meter_slow 0 37 m move_meter_slow 0 38 m move_meter_slow 0 39 m move_meter_slow 0 40 m move_meter_slow 0 41 m move_meter_slow 0 42 m move_meter_slow 0 43 m move_meter_slow 0 44 m move_meter_slow 0 45 m move_meter_slow 0 46 m move_meter_slow 0 47 m move_meter_slow 0 48 m move_meter_slow 0 49 m move_meter_slow 0 50 m move_meter_slow 0 51 m move_meter_slow 0 52 m move_meter_slow 0 53 m move_meter_slow 0 54 m move_meter_slow 0 55 m move_meter_slow 0 56 m move_meter_slow 0 57 m move_meter_slow 0 58 m move_meter_slow 0 59 m move_meter_slow 0 60 m move_meter_slow 0 59 m move_meter_slow 0 58 m move_meter_slow 0 57 m move_meter_slow 0 56 m move_meter_slow 0 55 m move_meter_slow 0 54 m move_meter_slow 0 53 m move_meter_slow 0 52 m move_meter_slow 0 51 m move_meter_slow 0 50 m move_meter_slow 0 45 m move_meter_slow 0 44 m move_meter_slow 0 43 m move_meter_slow 0 40 m move_meter_slow 0 35 m move_meter_slow 0 33 m move_meter_slow 0 30 m move_meter_slow 0 25 m move_meter_slow 0 22 m move_meter_slow 0 20 m move_meter_slow 0 19 m move_meter_slow 0 15 m move_meter_slow 0 12 m move_meter_slow 0 10 :repeat #end #define move_meter_slow mv `0` `1` w 50 #end #define next_button_black o 0 0 s 1 0 f 16B bd 1 514 404 1 "Next" 35 22 17 2 xm 1 `0` #end #define next_button_tr o 0 0 s 5 1 //Red on White (transparent only) f 16B bd 1 514 404 1 "Next" 35 22 18 2 xm 1 `0` #end // SLCDM Demo Features added below... // demo the slider control #define demo_slider m clear // clear screen f 24BC t "Slider Control Demo" 210 20 // display left slider sl 128 19 240 210 20 0 0 1 1 50 0 m slider128_update // display its value // when slider is touched, update the displayed value xm 128 slider128_update // display right slider and text sl 129 21 320 145 22 5 0 1 1 255 10 f 20 t "Move\nto\nchange\npanel\nbacklight" 445 145 // set to max sv 129 255 // implement setting m slider129_update // when slider is touched, use it to change brightness xm 129 slider129_update // link to next screen m next_button demo_sliding_compass #end #define slider128_update f 24 ta CT // text align align center top t " `L128` " 262 145 #end #define slider129_update xbbs `L129` #end // demo the sliding compass #define demo_sliding_compass m clear // clear screen f 24BC m center_cursor_horiz 20 ta CT t "Sliding Compass Demo" // compass pointer indicator tr 322 211 302 156 342 156 F00 // display initial compass slide xio 23 220 211 1 200 0 m next_button animated_gifs m compass_slide_action #end #define compass_slide_action xbbs 255 // make sure we are on full bright from last screen //move the compass around m compass_slide_offset 5 75 m compass_slide_offset 7 75 m compass_slide_offset 9 75 m compass_slide_offset 11 75 m compass_slide_offset 13 75 m compass_slide_offset 15 75 m compass_slide_offset 17 75 m compass_slide_offset 19 75 m compass_slide_offset 21 75 m compass_slide_offset 23 75 m compass_slide_offset 25 75 m compass_slide_offset 27 75 m compass_slide_offset 29 75 m compass_slide_offset 31 75 m compass_slide_offset 33 75 m compass_slide_offset 35 75 m compass_slide_offset 37 75 m compass_slide_offset 39 75 m compass_slide_offset 41 75 m compass_slide_offset 43 75 m compass_slide_offset 45 75 m compass_slide_offset 44 75 m compass_slide_offset 45 75 m compass_slide_offset 46 75 m compass_slide_offset 47 75 m compass_slide_offset 48 75 m compass_slide_offset 49 75 m compass_slide_offset 50 75 m compass_slide_offset 51 100 m compass_slide_offset 50 75 m compass_slide_offset 49 75 m compass_slide_offset 48 75 m compass_slide_offset 47 75 m compass_slide_offset 45 75 m compass_slide_offset 43 75 m compass_slide_offset 41 75 m compass_slide_offset 39 75 m compass_slide_offset 37 75 m compass_slide_offset 35 75 m compass_slide_offset 33 75 m compass_slide_offset 31 75 m compass_slide_offset 29 75 m compass_slide_offset 27 75 m compass_slide_offset 25 75 m compass_slide_offset 23 75 m compass_slide_offset 21 75 m compass_slide_offset 19 75 m compass_slide_offset 17 75 m compass_slide_offset 15 75 m compass_slide_offset 13 75 m compass_slide_offset 11 75 m compass_slide_offset 9 75 m compass_slide_offset 7 75 m compass_slide_offset 5 75 m compass_slide_offset 3 75 m compass_slide_offset 2 75 m compass_slide_offset 1 75 m compass_slide_offset 0 75 :repeat #end #define compass_slide_offset xio 23 220 211 1 200 `0` w `1` #end // This macro demonstrates the use of animated GIFs. #define animated_gifs m clear // clear screen f 24BC m center_cursor_horiz 20 ta CT t "Animated GIF Demo" // calculate location of GIF based on screen center and gif size. // assumes animated gif (27_TripleSpiralLabyrinthAnimated.gif)is 347x163. set i0 `(`Xc`-174)` set i1 `(`Yc`-163)` agif 1 27 `i0` `i1` 0 m next_button macro_parms #end // This macro demonstrates the use macro parameters. // Refer to Software reference section, // "Macro Parameters (Arguments)". #define macro_parms m clear // clear screen f 24BC m center_cursor_horiz 20 ta CT // text align align center top t "Macro Parameter Demo" f 24 m center_cursor_horiz 65 ta CT t "Macros can accept up to ten parameters!" m display_parms Reach products allow you to always touch every single customer. m next_button macro_labels #end #define display_parms m center_cursor_horiz 100 ta CT // text align align center top t "Below is the macro list:" f 16 m center_cursor_horiz 135 ta CT t "#1:`0` #2:`1` #3:`2` #4:`3` #5:`4`\n" ta CT t "#6:`5` #7:`6` #8:`7` #9:`8` #10:`9`" f 24 ta CT m center_cursor_horiz 200 t "Parameters combined with text command:" f 16 m center_cursor_horiz 260 ta CT tf 0 500 "`0` `1` `2` `3` `4` `5` `6` `7` `8` `9`" #end // This macro demonstrates the use of Labels. // Refer to Software reference section, // "Special macro arguments and commands". #define macro_labels // Common Code Area m clear // clear screen f 24BC m center_cursor_horiz 20 ta CT // text align align center top t "Macro Label Demo" f 24 m center_cursor_horiz 70 ta CT // text align align center top t "Macros can contain control \":labels\"!" f 20 bdc 0 288 130 2 "ON" "OFF" 13 14 // This line assigns a macro (with a pre-defined label) to a button state xm 0 execute_labels:s0_1 execute_labels:s0_0 m next_button state_save_restore_demo #end #define execute_labels t "Common code in macro \"execute_labels\" executed." 80 200 :s0_1 t "Macro label \":s0_1\" executed. " 100 240 :s0_0 t "Macro label \":s0_0\" executed. " 100 240 #end //--------------------------------------------------------------------- // HORIZONTALLY CENTER CURSOR at given Y value //--------------------------------------------------------------------- #define center_cursor_horiz sc `Xc` `0` #end //--------------------------------------------------------------------- // STATE SAVE/RESTORE DEMO //--------------------------------------------------------------------- #define state_save_restore_demo m clear m center_cursor_horiz 12 f 24BC ta CT t "Drawing State\nSave/Restore Demo\n\n" f 24 ta CT t "Normal State\n" w 1000 m red_state w 1000 ta CT t "Normal Again" // link to next screen: m next_button more_features w 3000 :repeat #end #define red_state ss S FFF F00 f 24B ta CT t "\n\n White on Red State \n" sr #end #define more_features m clear // clear screen xi 24 0 0 // show next buttton now because macro will stop on error // if CH48 font was not downloaded m next_button panel_pattern // show chinese font f 13 t "(Error - CH48 font not downloaded!!)" 100 380 utf8 on // enable UTF8 test f CH48 // select downloaded font t "UNICODE:\xe4\xb8\x9c\xe4\xb8\x9a" 100 380 anic f 32B // Red text s 5 1 t "ANIMATION" 100 250 // Green text S 0f0 fff tf 0 "FLASHING TEXT" 100 120 f 8x8 ani 1 wvr 188 ani 1 xi 26 370 250 ani 1 y 50 ani 1 wvr 188 ani 1 xi 25 370 250 ani 1 wvr 188 ani 1 xi 26 470 250 ani 1 y 50 ani 1 wvr 188 ani 1 xi 25 470 250 ani 1 wvr 188 ani 1 xi 26 570 250 ani 1 y 50 ani 1 wvr 188 ani 1 xi 25 570 250 ani 1 y 50 anie 1 #end //--------------------------------------------------------------------- // This macro simply creates a pattern to check the pixel alignment. //--------------------------------------------------------------------- #define panel_pattern m clear f 32B m center_cursor_horiz 20 ta CT t "Panel Alignment\nPattern" f 18BC m center_cursor_horiz 160 ta CT t "Make sure that lines meet\nat panel corners." m center_cursor_horiz `Yc` ta CT t "Supports VGA: 640 X 480" p 1 // big X l 0 0 639 479 l 639 0 0 479 // ^ l 0 239 319 0 l 319 0 639 239 // v l 0 239 319 479 l 319 479 639 239 m next_button splash_drawing #end