aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2016-05-23 17:42:21 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2016-05-23 17:42:21 +0900
commiteeb354119c0304c935095bed5fc155aa67f7250b (patch)
treea21638cb0c23e76aed02bce7b330ac600c3739b7
parent72c3d59555d5c8359518ce9c141b40018f87e3ce (diff)
Change example-cdc
-rw-r--r--ChangeLog3
-rw-r--r--example-cdc/sample.c4
-rw-r--r--example-cdc/usb-cdc.c9
3 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 17c5d1d..295c2b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
{