From 351b15586232f7931ae8bbb2bc1ebc2de68052bc Mon Sep 17 00:00:00 2001 From: jp7g21 <jp7g21@soton.ac.uk> Date: Sun, 14 Nov 2021 02:01:53 +0000 Subject: [PATCH] Read mode --- duck/duck.c | 5 ++--- libduck/libduck.c | 9 +++++++++ libduck/libduck.h | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/duck/duck.c b/duck/duck.c index 8c8f856..c72638c 100644 --- a/duck/duck.c +++ b/duck/duck.c @@ -94,9 +94,8 @@ int main(int argc, char **argv) } } if (read_mode) { - while (1) { - char c; - if (read(duckfd, &c, 1) != 1) err( + read_duck_to_stdout(); + } close_duck(); return 0; } diff --git a/libduck/libduck.c b/libduck/libduck.c index 8fdee78..cb4e3ec 100644 --- a/libduck/libduck.c +++ b/libduck/libduck.c @@ -88,6 +88,15 @@ int duck_set_velocity(int motor, int deg_per_sec, int ms) return duck_printf("v %d %d %d\n", motor, deg_per_sec, ms); } +void read_duck_to_stdout(void) +{ + while (1) { + char c; + if (read(duckfd, &c, 1) != 1) err(EXIT_FAILURE, "Read failed\n"); + putchar(c); + } +} + void close_duck(void) { if (duck_debug_mode) { diff --git a/libduck/libduck.h b/libduck/libduck.h index bea82bd..68e17cb 100644 --- a/libduck/libduck.h +++ b/libduck/libduck.h @@ -16,6 +16,7 @@ void configure_duck(void); int duck_set_position(int motor, int angle); int duck_delay(int ms); int duck_set_velocity(int motor, int deg_per_sec, int ms); +void read_duck_to_stdout(void); void close_duck(void); #endif /* _LIBDUCK_H */ -- GitLab