summaryrefslogtreecommitdiff
path: root/2004/n/asserv/src/serial.c
diff options
context:
space:
mode:
authorschodet2004-04-17 10:23:24 +0000
committerschodet2004-04-17 10:23:24 +0000
commit726812225fd35cbe508f2a23293f0781fd0d9d39 (patch)
tree851dbf7ca8978f06c55e8f0d88eccc04db90897d /2004/n/asserv/src/serial.c
parent2344ef4ae9f20240c63e53c5f8bd77d83f9e5bd3 (diff)
Gestion du ttl.
Changement des acquitements. Mode asservissement en position (sans ack pour !v et ttl). Envois des motor stat.
Diffstat (limited to '2004/n/asserv/src/serial.c')
-rw-r--r--2004/n/asserv/src/serial.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/2004/n/asserv/src/serial.c b/2004/n/asserv/src/serial.c
index d9776de..5b48cc9 100644
--- a/2004/n/asserv/src/serial.c
+++ b/2004/n/asserv/src/serial.c
@@ -45,7 +45,7 @@ int serial_send_buf_n;
short serial_send_full;
/* Tampon d'emmision non fiable. */
-#define SERIAL_UNRELIABLE_SEND_BUF_LEN 20
+#define SERIAL_UNRELIABLE_SEND_BUF_LEN 34
char serial_unreliable_send_buf[SERIAL_UNRELIABLE_SEND_BUF_LEN];
int serial_unreliable_send_buf_n;
short serial_unreliable_send_full;
@@ -130,7 +130,8 @@ serial_send ()
else
putc (c);
/* On ne fait pas le test, normalement ne doit pas arriver.
- * assert (serial_send_buf_n < SERIAL_SEND_BUF_LEN); */
+ * assert (serial_unreliable_send_buf_n <
+ * SERIAL_UNRELIABLE_SEND_BUF_LEN); */
}
}
}
@@ -173,18 +174,18 @@ void
serial_send_error (char c)
{
serial_send_char ('!');
- serial_send_char ('e');
+ serial_send_char ('E');
serial_send_char (c);
serial_send_char (CRLF);
}
-/* Envoie un code ok. */
+/* Acquitte la trame en la renvoyant à l'expediteur. */
void
-serial_send_ok (char c)
+serial_send_ok (void)
{
- serial_send_char ('!');
- serial_send_char ('o');
- serial_send_char (c);
+ int i;
+ for (i = 0; i < serial_recv_buf_n; i++)
+ serial_send_char (serial_recv_buf[i]);
serial_send_char (CRLF);
}
@@ -193,7 +194,7 @@ void
serial_send_motor_stat (char side, unsigned int vacc, unsigned long &e, unsigned long &pwm)
{
serial_unreliable_send_char ('!');
- serial_unreliable_send_char ('m');
+ serial_unreliable_send_char ('M');
serial_unreliable_send_char (side);
serial_unreliable_send_int (vacc);
serial_unreliable_send_char (',');
@@ -208,13 +209,22 @@ void
serial_send_motor_cpt (signed long &g, signed long &d)
{
serial_unreliable_send_char ('!');
- serial_unreliable_send_char ('c');
+ serial_unreliable_send_char ('C');
serial_unreliable_send_long (g);
serial_unreliable_send_char (',');
serial_unreliable_send_long (d);
serial_unreliable_send_char (CRLF);
}
+/* Envoie un signal de fin de ttl. */
+void
+serial_send_motor_ttl (void)
+{
+ serial_send_char ('!');
+ serial_send_char ('T');
+ serial_send_char (CRLF);
+}
+
/* Envoie un caractère. */
void
serial_send_char (char c)