diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2016-05-23 17:42:21 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2016-05-23 17:42:21 +0900 |
commit | eeb354119c0304c935095bed5fc155aa67f7250b (patch) | |
tree | a21638cb0c23e76aed02bce7b330ac600c3739b7 | |
parent | 72c3d59555d5c8359518ce9c141b40018f87e3ce (diff) |
Change example-cdc
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | example-cdc/sample.c | 4 | ||||
-rw-r--r-- | example-cdc/usb-cdc.c | 9 |
3 files changed, 14 insertions, 2 deletions
@@ -1,5 +1,8 @@ 2016-05-23 NIIBE Yutaka <gniibe@fsij.org> + * example-cdc/usb-cdc.c (tty_input_char): Include newline. + * example-cdc/sample.c: Handle newline. + * example-fs-bb48/usb-cdc.c: Update from example-cdc. * example-fs-bb48/tty.h: Likewise. * example-fs-bb48/sample.c: Follow the change. diff --git a/example-cdc/sample.c b/example-cdc/sample.c index 3de26c7..cb6c5ae 100644 --- a/example-cdc/sample.c +++ b/example-cdc/sample.c @@ -142,8 +142,10 @@ main (int argc, const char *argv[]) if (size < 0) break; - if (usec) + if (size) { + size--; + s[0] = hexchar (size >> 4); s[1] = hexchar (size & 0x0f); s[2] = ':'; diff --git a/example-cdc/usb-cdc.c b/example-cdc/usb-cdc.c index 7199ab6..b3e7598 100644 --- a/example-cdc/usb-cdc.c +++ b/example-cdc/usb-cdc.c @@ -548,6 +548,7 @@ tty_input_char (struct tty *t, int c) switch (c) { case 0x0d: /* Control-M */ + t->inputline[t->inputline_len++] = '\n'; tty_echo_char (t, 0x0d); tty_echo_char (t, 0x0a); t->flag_input_avail = 1; @@ -581,7 +582,7 @@ tty_input_char (struct tty *t, int c) } break; default: - if (t->inputline_len < sizeof (t->inputline)) + if (t->inputline_len < sizeof (t->inputline) - 1) { tty_echo_char (t, c); t->inputline[t->inputline_len++] = c; @@ -791,6 +792,12 @@ check_rx (void *arg) return 0; } +/* + * Returns -1 on connection close + * 0 on timeout. + * >0 length of the inputline (including final \n) + * + */ int tty_recv (struct tty *t, uint8_t *buf, uint32_t *timeout) { |