From 99d75ed6142cd3c05cf440ec61aba55ed2f0ac71 Mon Sep 17 00:00:00 2001 From: schodet Date: Thu, 1 Jan 2004 17:56:42 +0000 Subject: Ajout de la vérification de la présence du '!'. --- 2004/n/asserv/src/serial.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to '2004/n/asserv/src/serial.c') diff --git a/2004/n/asserv/src/serial.c b/2004/n/asserv/src/serial.c index ef18c02..16374bf 100644 --- a/2004/n/asserv/src/serial.c +++ b/2004/n/asserv/src/serial.c @@ -78,10 +78,12 @@ serial_recv () if (serial_recv_buf_n) serial_recv_full = 1; } - else if (c == '!' || serial_recv_buf_n >= SERIAL_RECV_BUF_LEN) - serial_recv_buf_n = 0; else + { + if (c == '!' || serial_recv_buf_n >= SERIAL_RECV_BUF_LEN) + serial_recv_buf_n = 0; serial_recv_buf[serial_recv_buf_n++] = c; + } } /* Envois des caractères. */ @@ -139,8 +141,9 @@ serial_parse (void) /* Si le tampon n'est pas plein, bye, bye. */ if (!serial_recv_full || serial_recv_working) return; serial_recv_working = 1; - /* Vérifie la taille du tampon. */ - if (serial_recv_buf_n) + /* Vérifie la présence de caractère de début de séquence et la taille du + * tampon. */ + if (serial_recv_buf_n > 1 && serial_recv_buf[0] == '!') { /* Est-ce une commande moteur. */ if (!motor_parse ()) @@ -156,6 +159,8 @@ serial_parse (void) } } } + else + serial_send_error ('?'); serial_recv_buf_n = 0; serial_recv_working = 0; serial_recv_full = 0; -- cgit v1.2.3