Demo of the RA8875 Keypad to enter a username and password.
Dependencies: mbed RA8875 Keypad
Diff: main.cpp
- Revision:
- 1:0fea662d1826
- Parent:
- 0:5cf0d5f4ab84
- Child:
- 2:117fb9168afc
diff -r 5cf0d5f4ab84 -r 0fea662d1826 main.cpp --- a/main.cpp Mon Feb 08 02:47:49 2016 +0000 +++ b/main.cpp Fri Mar 04 12:24:32 2016 +0000 @@ -8,6 +8,29 @@ RA8875 lcd(p5, p6, p7, p12, NC, "tft"); // MOSI, MISO, SCK, /ChipSelect, /reset, name Keypad kp(lcd); +// 789 /( +// 456 *) +// 123 - +// 00. += +const char numberkeys[] = { + 5,'\x01', 10,'7',10,'8',10,'9', 5,'\x01', 10,'/',10,'(', 0,0, + 5,'\x01', 10,'4',10,'5',10,'6', 5,'\x01', 10,'*',10,')', 0,0, + 5,'\x01', 10,'1',10,'2',10,'3', 5,'\x01', 10,'-',10,KYBD_SYM_BS, 0,0, + 5,'\x01', 20,'0', 10,'.', 5,'\x01', 10,'+',10,'=', 0,0, + 0,0 +}; + +const Keypad::keyboard_t altkeyboard = { + 100, // x=100; left edge + 0, // y=0; computed from bottom up + 240, // width=240 + 0, // height=0; bottom of screen justified + 4, // rows + 6, // columns + numberkeys, // pointer to the keypad + numberkeys +}; + void CalibrateTS(void) { @@ -47,6 +70,7 @@ int main() { char name1[20], name2[20]; + bool toggle = false; pc.baud(460800); // I like a snappy terminal, so crank it up! pc.printf("\r\nDev Keypad - Build " __DATE__ " " __TIME__ "\r\n"); @@ -60,24 +84,37 @@ lcd.foreground(Yellow); lcd.background(Black); lcd.cls(); - lcd.puts(0,20, "Enter username and password\r\n"); - if (kp.GetString(name1, 20, "Username:")) { - lcd.printf("username: %s\r\n", name1); - if (kp.GetString(name2, 20, "Password:", '*')) { - lcd.printf("password: %s\r\n", name2); + if (!toggle) { + kp.SetKeyboard(); + lcd.puts(0,20, "Enter username and password\r\n"); + if (kp.GetString(name1, 20, "Username:")) { + //lcd.printf("username: %s\r\n", name1); + if (kp.GetString(name2, 20, "Password:", '*')) { + //lcd.printf("password: %s\r\n", name2); + kp.Erase(); + lcd.foreground(BrightRed); + lcd.background(Black); + lcd.cls(); + lcd.SetTextFontSize(2); + lcd.SetTextCursor(0,30); + lcd.printf("username: %s\r\npassword: %s\r\n", name1, name2); + lcd.SetTextFontSize(); + } + } else { kp.Erase(); + pc.printf("<esc>\r\n"); + } + } else { + kp.SetKeyboard(&altkeyboard, '='); + if (kp.GetString(name1, 20, "Calc:")) { lcd.foreground(BrightRed); lcd.background(Black); lcd.cls(); - lcd.SetTextFontSize(2); - lcd.SetTextCursor(0,30); - lcd.printf("username: %s\r\npassword: %s\r\n", name1, name2); - lcd.SetTextFontSize(); + lcd.SetTextCursor(0,40); + lcd.printf("Calculator: %s\r\n", name1); } - } else { - kp.Erase(); - pc.printf("<esc>\r\n"); } + toggle = !toggle; wait(5); } }