Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: PCAL955x ST7567 SoftPWM
Revision 1:18ac195ad292, committed 2016-11-05
- Comitter:
- uLipe
- Date:
- Sat Nov 05 23:26:29 2016 +0000
- Parent:
- 0:6504c8e693e1
- Commit message:
- added backspace suuport independent of terminal tool;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Nov 04 23:59:49 2016 +0000
+++ b/main.cpp Sat Nov 05 23:26:29 2016 +0000
@@ -240,7 +240,7 @@
led1 = led2 = led3 = 1;
pc_serial.printf("******************************************************************\n\r");
- pc_serial.printf("*** Welcome to NXP FTF Simple Sheell application ****\n\r");
+ pc_serial.printf("*** Welcome to NXP FTF Simple Shell application ****\n\r");
pc_serial.printf("*** Type some commands or just Enter key to see the available ****\n\r");
pc_serial.printf("******************************************************************\n\r");
pc_serial.printf(">>");
@@ -250,22 +250,36 @@
if(pc_serial.readable()) {
bool new_cmd = false;
-
/* get the incoming character */
char c = pc_serial.getc();
- pc_serial.putc(c);
-
-
- /* is a enter ? */
+
if( (c == '\n') || (c == '\r')) {
+ /* handle enter key */
new_cmd = true;
- pc_serial.getc();
+ pc_serial.printf("\n\r");
+
+ }else if( (c == 0x7F) || (c == 0x08)){
+ /* handle backspace and del keys */
+ pc_serial.printf("\033[1D");
+ pc_serial.putc(' ');
+ pc_serial.printf("\033[1D");
+
+ read_ptr--;
+ if(read_ptr < -1) read_ptr = 1023;
+ serial_buffer[read_ptr] = ' ';
+
} else {
+ /* loopback the pressed key */
+ pc_serial.putc(c);
+
+ /* store the incoming character on command circular buffer */
serial_buffer[read_ptr] = c;
read_ptr = (read_ptr + 1) % 1024;
}
+
+
if(new_cmd != false) {
/* command arrived, has other characters? */
if(read_ptr != 0) {