Mauro Carvalho Chehab | 065504d | 2019-04-14 07:59:32 -0300 | [diff] [blame] | 1 | ====================================== |
| 2 | Parallel port LCD/Keypad Panel support |
| 3 | ====================================== |
| 4 | |
Willy Tarreau | 7005b58 | 2008-11-13 17:18:59 -0800 | [diff] [blame] | 5 | Some LCDs allow you to define up to 8 characters, mapped to ASCII |
| 6 | characters 0 to 7. The escape code to define a new character is |
| 7 | '\e[LG' followed by one digit from 0 to 7, representing the character |
| 8 | number, and up to 8 couples of hex digits terminated by a semi-colon |
| 9 | (';'). Each couple of digits represents a line, with 1-bits for each |
Matt LaPlante | 19f5946 | 2009-04-27 15:06:31 +0200 | [diff] [blame] | 10 | illuminated pixel with LSB on the right. Lines are numbered from the |
Willy Tarreau | 7005b58 | 2008-11-13 17:18:59 -0800 | [diff] [blame] | 11 | top of the character to the bottom. On a 5x7 matrix, only the 5 lower |
| 12 | bits of the 7 first bytes are used for each character. If the string |
| 13 | is incomplete, only complete lines will be redefined. Here are some |
Mauro Carvalho Chehab | 065504d | 2019-04-14 07:59:32 -0300 | [diff] [blame] | 14 | examples:: |
Willy Tarreau | 7005b58 | 2008-11-13 17:18:59 -0800 | [diff] [blame] | 15 | |
| 16 | printf "\e[LG0010101050D1F0C04;" => 0 = [enter] |
| 17 | printf "\e[LG1040E1F0000000000;" => 1 = [up] |
| 18 | printf "\e[LG2000000001F0E0400;" => 2 = [down] |
| 19 | printf "\e[LG3040E1F001F0E0400;" => 3 = [up-down] |
| 20 | printf "\e[LG40002060E1E0E0602;" => 4 = [left] |
| 21 | printf "\e[LG500080C0E0F0E0C08;" => 5 = [right] |
| 22 | printf "\e[LG60016051516141400;" => 6 = "IP" |
| 23 | |
| 24 | printf "\e[LG00103071F1F070301;" => big speaker |
| 25 | printf "\e[LG00002061E1E060200;" => small speaker |
| 26 | |
| 27 | Willy |